@multiplatform.one/forms 7.80.0 → 7.81.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 (587) hide show
  1. package/dist/cjs/AdaptivePopup/index.cjs +1 -1
  2. package/dist/cjs/AdaptivePopup/index.native.js +3 -3
  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.cjs +12 -5
  8. package/dist/cjs/Button/index.native.js +16 -8
  9. package/dist/cjs/Button/index.native.js.map +1 -1
  10. package/dist/cjs/Button/webGlass.native.js.map +1 -1
  11. package/dist/cjs/Chip/index.native.js.map +1 -1
  12. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  13. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  14. package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  15. package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  16. package/dist/cjs/ContextualSaveBar/index.native.js +3 -3
  17. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  18. package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  19. package/dist/cjs/ControlGroup/index.native.js +1 -1
  20. package/dist/cjs/ControlGroup/index.native.js.map +1 -1
  21. package/dist/cjs/DescriptionList/index.native.js +2 -2
  22. package/dist/cjs/DescriptionList/index.native.js.map +1 -1
  23. package/dist/cjs/ErrorSummary.native.js.map +1 -1
  24. package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
  25. package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
  26. package/dist/cjs/FieldDisplay/index.native.js +1 -1
  27. package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
  28. package/dist/cjs/FieldGroup.native.js.map +1 -1
  29. package/dist/cjs/FloatingPanel/PanelHeader.cjs +3 -8
  30. package/dist/cjs/FloatingPanel/PanelHeader.native.js +3 -8
  31. package/dist/cjs/FloatingPanel/PanelHeader.native.js.map +1 -1
  32. package/dist/cjs/FloatingPanel/RegularPanel.native.js.map +1 -1
  33. package/dist/cjs/FloatingPanel/compactFace.native.js.map +1 -1
  34. package/dist/cjs/FloatingPanel/containingBlock.native.js.map +1 -1
  35. package/dist/cjs/FloatingPanel/coverRect.cjs +0 -8
  36. package/dist/cjs/FloatingPanel/coverRect.native.js +0 -8
  37. package/dist/cjs/FloatingPanel/coverRect.native.js.map +1 -1
  38. package/dist/cjs/FloatingPanel/echoContext.cjs +5 -27
  39. package/dist/cjs/FloatingPanel/echoContext.native.js +5 -28
  40. package/dist/cjs/FloatingPanel/echoContext.native.js.map +1 -1
  41. package/dist/cjs/FloatingPanel/index.cjs +49 -131
  42. package/dist/cjs/FloatingPanel/index.native.js +26 -91
  43. package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
  44. package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -1
  45. package/dist/cjs/FloatingPanel/paintedBox.native.js.map +1 -1
  46. package/dist/cjs/FloatingPanel/panelWidth.native.js.map +1 -1
  47. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
  48. package/dist/cjs/FloatingPanel/regularPlacement.native.js.map +1 -1
  49. package/dist/cjs/FloatingPanel/trailingAction.native.js +1 -1
  50. package/dist/cjs/FloatingPanel/trailingAction.native.js.map +1 -1
  51. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  52. package/dist/cjs/Form/index.native.js +1 -1
  53. package/dist/cjs/Form/index.native.js.map +1 -1
  54. package/dist/cjs/Form/submissionController.native.js.map +1 -1
  55. package/dist/cjs/Form/validateOn.native.js.map +1 -1
  56. package/dist/cjs/FormGrid.native.js.map +1 -1
  57. package/dist/cjs/FormSection.native.js.map +1 -1
  58. package/dist/cjs/InputParts/PasswordReveal.native.js.map +1 -1
  59. package/dist/cjs/InputParts/index.native.js.map +1 -1
  60. package/dist/cjs/InputParts/keyboardAppearance.native.js.map +1 -1
  61. package/dist/cjs/Label/index.native.js.map +1 -1
  62. package/dist/cjs/MediaPicker/base64.native.js.map +1 -1
  63. package/dist/cjs/MediaPicker/payload.native.js.map +1 -1
  64. package/dist/cjs/MediaPicker/types.native.js.map +1 -1
  65. package/dist/cjs/MediaPicker/useMediaPicker.native.js.map +1 -1
  66. package/dist/cjs/Skeleton/index.native.js.map +1 -1
  67. package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
  68. package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
  69. package/dist/cjs/Table/index.native.js.map +1 -1
  70. package/dist/cjs/Wheel/haptic.native.js.map +1 -1
  71. package/dist/cjs/Wheel/index.native.js.map +1 -1
  72. package/dist/cjs/Wheel/wheelShared.native.js.map +1 -1
  73. package/dist/cjs/actionLabel.native.js.map +1 -1
  74. package/dist/cjs/fieldDefaults.native.js.map +1 -1
  75. package/dist/cjs/fieldLayout.native.js +1 -1
  76. package/dist/cjs/fieldLayout.native.js.map +1 -1
  77. package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
  78. package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
  79. package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
  80. package/dist/cjs/fields/Barcode/index.native.js +2 -2
  81. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  82. package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
  83. package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
  84. package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -1
  85. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  86. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  87. package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  88. package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  89. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +1 -1
  90. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  91. package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  92. package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
  93. package/dist/cjs/fields/ColorPicker/SystemColorField.native.js.map +1 -1
  94. package/dist/cjs/fields/ColorPicker/index.native.js +2 -2
  95. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  96. package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
  97. package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
  98. package/dist/cjs/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
  99. package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
  100. package/dist/cjs/fields/Combobox/index.cjs +3 -10
  101. package/dist/cjs/fields/Combobox/index.native.js +8 -15
  102. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  103. package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
  104. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
  105. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  106. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +3 -3
  107. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  108. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +2 -2
  109. package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
  110. package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
  111. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
  112. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  113. package/dist/cjs/fields/DatePicker/catalog.native.js +2 -2
  114. package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
  115. package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  116. package/dist/cjs/fields/DatePicker/index.native.js +2 -2
  117. package/dist/cjs/fields/DatePicker/parts.native.js +2 -2
  118. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  119. package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
  120. package/dist/cjs/fields/Duration/DurationWheel.native.js +1 -1
  121. package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
  122. package/dist/cjs/fields/Duration/durationWheelTypes.native.js.map +1 -1
  123. package/dist/cjs/fields/Duration/index.native.js +3 -3
  124. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  125. package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  126. package/dist/cjs/fields/FileUpload/index.native.js +2 -2
  127. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  128. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  129. package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  130. package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
  131. package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -1
  132. package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -1
  133. package/dist/cjs/fields/Geolocation/index.native.js +5 -5
  134. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  135. package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
  136. package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
  137. package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  138. package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  139. package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
  140. package/dist/cjs/fields/Icon/index.native.js +3 -3
  141. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  142. package/dist/cjs/fields/ImageField/index.native.js +2 -2
  143. package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
  144. package/dist/cjs/fields/Input/index.native.js +3 -3
  145. package/dist/cjs/fields/Input/index.native.js.map +1 -1
  146. package/dist/cjs/fields/MentionInput/index.native.js +3 -3
  147. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  148. package/dist/cjs/fields/OTPInput/index.native.js +3 -3
  149. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  150. package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
  151. package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
  152. package/dist/cjs/fields/PhoneInput/index.native.js +3 -3
  153. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  154. package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
  155. package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -1
  156. package/dist/cjs/fields/Progress/index.native.js +1 -1
  157. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  158. package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
  159. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  160. package/dist/cjs/fields/Rating/index.native.js +1 -1
  161. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  162. package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
  163. package/dist/cjs/fields/Rating/types.native.js.map +1 -1
  164. package/dist/cjs/fields/SearchInput/index.native.js +2 -2
  165. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  166. package/dist/cjs/fields/Select/InlineChoices.cjs +4 -8
  167. package/dist/cjs/fields/Select/InlineChoices.native.js +4 -8
  168. package/dist/cjs/fields/Select/InlineChoices.native.js.map +1 -1
  169. package/dist/cjs/fields/Select/SheetPickerRow.native.js.map +1 -1
  170. package/dist/cjs/fields/Select/index.cjs +46 -199
  171. package/dist/cjs/fields/Select/index.native.js +56 -211
  172. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  173. package/dist/cjs/fields/Select/shouldInlineChoices.native.js.map +1 -1
  174. package/dist/cjs/fields/Signature/index.native.js +2 -2
  175. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  176. package/dist/cjs/fields/Slider/index.native.js +1 -1
  177. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  178. package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
  179. package/dist/cjs/fields/Stepper/index.native.js +2 -2
  180. package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
  181. package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  182. package/dist/cjs/fields/Switch/footprint.native.js.map +1 -1
  183. package/dist/cjs/fields/Switch/index.native.js +2 -2
  184. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  185. package/dist/cjs/fields/TextArea/index.native.js +2 -2
  186. package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
  187. package/dist/cjs/fields/TimePicker/catalog.native.js +3 -3
  188. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
  189. package/dist/cjs/fields/TimePicker/index.native.js +2 -2
  190. package/dist/cjs/fields/TimePicker/parts.native.js +1 -1
  191. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  192. package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  193. package/dist/cjs/fields/TimeRangeScrubber/index.native.js +2 -2
  194. package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
  195. package/dist/cjs/fields/ToggleGroup/index.native.js +1 -1
  196. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  197. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.cjs +2 -2
  198. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +3 -3
  199. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  200. package/dist/cjs/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  201. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  202. package/dist/cjs/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
  203. package/dist/cjs/fields/nativeSelect.native.js.map +1 -1
  204. package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
  205. package/dist/cjs/formSpacing.native.js.map +1 -1
  206. package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
  207. package/dist/cjs/index.cjs +4 -0
  208. package/dist/cjs/index.native.js +49 -45
  209. package/dist/cjs/index.native.js.map +1 -1
  210. package/dist/cjs/keyboard/KeyboardDoneBar.native.js +1 -1
  211. package/dist/cjs/keyboard/chain.native.js.map +1 -1
  212. package/dist/cjs/keyboard/index.native.js.map +1 -1
  213. package/dist/cjs/keyboard/types.native.js.map +1 -1
  214. package/dist/cjs/requiredMarking.native.js.map +1 -1
  215. package/dist/cjs/shared/CheckGlyph.cjs +40 -0
  216. package/dist/cjs/shared/CheckGlyph.native.js +44 -0
  217. package/dist/cjs/shared/CheckGlyph.native.js.map +1 -0
  218. package/dist/cjs/shared/TimeColumn.native.js +1 -1
  219. package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
  220. package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
  221. package/dist/cjs/shared/choiceRowPress.native.js.map +1 -1
  222. package/dist/cjs/shared/colorRamps.native.js.map +1 -1
  223. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  224. package/dist/cjs/shared/fieldRowContext.native.js.map +1 -1
  225. package/dist/cjs/shared/floatingList.cjs +82 -3
  226. package/dist/cjs/shared/floatingList.native.js +96 -6
  227. package/dist/cjs/shared/floatingList.native.js.map +1 -1
  228. package/dist/cjs/shared/focusManagement.native.js.map +1 -1
  229. package/dist/cjs/shared/groupContext.native.js.map +1 -1
  230. package/dist/cjs/shared/i18n.native.js.map +1 -1
  231. package/dist/cjs/shared/instantMotion.native.js.map +1 -1
  232. package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
  233. package/dist/cjs/shared/nativeAutoFocus.native.js.map +1 -1
  234. package/dist/cjs/shared/overlaySizeClass.native.js.map +1 -1
  235. package/dist/cjs/shared/overlayStack.native.js.map +1 -1
  236. package/dist/cjs/shared/panelPortal.native.js.map +1 -1
  237. package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -1
  238. package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
  239. package/dist/cjs/shared/restoreRetries.native.js.map +1 -1
  240. package/dist/cjs/shared/sheetNavigation.native.js.map +1 -1
  241. package/dist/cjs/shared/systemControlModules.gnome.native.js.map +1 -1
  242. package/dist/cjs/shared/systemControls.native.js.map +1 -1
  243. package/dist/cjs/shared/t.native.js.map +1 -1
  244. package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
  245. package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
  246. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  247. package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
  248. package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
  249. package/dist/cjs/shared/utils.native.js +1 -1
  250. package/dist/cjs/shared/utils.native.js.map +1 -1
  251. package/dist/cjs/shared/zIndex.native.js.map +1 -1
  252. package/dist/cjs/standardActions.native.js.map +1 -1
  253. package/dist/cjs/themedPrimitives.native.js.map +1 -1
  254. package/dist/cjs/types.native.js.map +1 -1
  255. package/dist/cjs/utils/LinkCell.native.js.map +1 -1
  256. package/dist/esm/AdaptivePopup/index.mjs +2 -2
  257. package/dist/esm/AdaptivePopup/index.mjs.map +1 -1
  258. package/dist/esm/AdaptivePopup/index.native.js +2 -2
  259. package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
  260. package/dist/esm/Button/IconButtonGroup.native.js.map +1 -1
  261. package/dist/esm/Button/circleGlyph.native.js.map +1 -1
  262. package/dist/esm/Button/iconButtonGroupContext.native.js.map +1 -1
  263. package/dist/esm/Button/index.mjs +12 -5
  264. package/dist/esm/Button/index.mjs.map +1 -1
  265. package/dist/esm/Button/index.native.js +14 -6
  266. package/dist/esm/Button/index.native.js.map +1 -1
  267. package/dist/esm/Button/webGlass.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/PanelHeader.mjs +3 -8
  282. package/dist/esm/FloatingPanel/PanelHeader.mjs.map +1 -1
  283. package/dist/esm/FloatingPanel/PanelHeader.native.js +3 -8
  284. package/dist/esm/FloatingPanel/PanelHeader.native.js.map +1 -1
  285. package/dist/esm/FloatingPanel/RegularPanel.native.js.map +1 -1
  286. package/dist/esm/FloatingPanel/compactFace.native.js.map +1 -1
  287. package/dist/esm/FloatingPanel/containingBlock.native.js.map +1 -1
  288. package/dist/esm/FloatingPanel/coverRect.mjs +1 -8
  289. package/dist/esm/FloatingPanel/coverRect.mjs.map +1 -1
  290. package/dist/esm/FloatingPanel/coverRect.native.js +1 -8
  291. package/dist/esm/FloatingPanel/coverRect.native.js.map +1 -1
  292. package/dist/esm/FloatingPanel/echoContext.mjs +4 -24
  293. package/dist/esm/FloatingPanel/echoContext.mjs.map +1 -1
  294. package/dist/esm/FloatingPanel/echoContext.native.js +4 -25
  295. package/dist/esm/FloatingPanel/echoContext.native.js.map +1 -1
  296. package/dist/esm/FloatingPanel/index.mjs +53 -135
  297. package/dist/esm/FloatingPanel/index.mjs.map +1 -1
  298. package/dist/esm/FloatingPanel/index.native.js +30 -95
  299. package/dist/esm/FloatingPanel/index.native.js.map +1 -1
  300. package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -1
  301. package/dist/esm/FloatingPanel/paintedBox.native.js.map +1 -1
  302. package/dist/esm/FloatingPanel/panelWidth.native.js.map +1 -1
  303. package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
  304. package/dist/esm/FloatingPanel/regularPlacement.native.js.map +1 -1
  305. package/dist/esm/FloatingPanel/trailingAction.native.js.map +1 -1
  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.native.js.map +1 -1
  314. package/dist/esm/InputParts/keyboardAppearance.native.js.map +1 -1
  315. package/dist/esm/Label/index.native.js.map +1 -1
  316. package/dist/esm/MediaPicker/base64.native.js.map +1 -1
  317. package/dist/esm/MediaPicker/payload.native.js.map +1 -1
  318. package/dist/esm/MediaPicker/types.native.js.map +1 -1
  319. package/dist/esm/MediaPicker/useMediaPicker.native.js.map +1 -1
  320. package/dist/esm/Skeleton/index.native.js.map +1 -1
  321. package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
  322. package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
  323. package/dist/esm/Table/index.native.js.map +1 -1
  324. package/dist/esm/Wheel/haptic.native.js.map +1 -1
  325. package/dist/esm/Wheel/index.native.js.map +1 -1
  326. package/dist/esm/Wheel/wheelShared.native.js.map +1 -1
  327. package/dist/esm/actionLabel.native.js.map +1 -1
  328. package/dist/esm/fieldDefaults.native.js.map +1 -1
  329. package/dist/esm/fieldLayout.native.js.map +1 -1
  330. package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
  331. package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
  332. package/dist/esm/fields/Barcode/index.native.js.map +1 -1
  333. package/dist/esm/fields/Barcode/qr.native.js.map +1 -1
  334. package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
  335. package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
  336. package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  337. package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  338. package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  339. package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  340. package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  341. package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
  342. package/dist/esm/fields/ColorPicker/SystemColorField.native.js.map +1 -1
  343. package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
  344. package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
  345. package/dist/esm/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
  346. package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
  347. package/dist/esm/fields/Combobox/index.mjs +4 -11
  348. package/dist/esm/fields/Combobox/index.mjs.map +1 -1
  349. package/dist/esm/fields/Combobox/index.native.js +4 -11
  350. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  351. package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
  352. package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  353. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  354. package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
  355. package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  356. package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -1
  357. package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  358. package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
  359. package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
  360. package/dist/esm/fields/Duration/durationMath.native.js.map +1 -1
  361. package/dist/esm/fields/Duration/durationWheelTypes.native.js.map +1 -1
  362. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  363. package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  364. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  365. package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  366. package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  367. package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -1
  368. package/dist/esm/fields/Geolocation/geocoder.native.js.map +1 -1
  369. package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -1
  370. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  371. package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
  372. package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
  373. package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  374. package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  375. package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
  376. package/dist/esm/fields/Icon/index.native.js.map +1 -1
  377. package/dist/esm/fields/ImageField/index.native.js.map +1 -1
  378. package/dist/esm/fields/Input/index.native.js.map +1 -1
  379. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  380. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  381. package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
  382. package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
  383. package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
  384. package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
  385. package/dist/esm/fields/PhoneInput/regionNames.native.js.map +1 -1
  386. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  387. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  388. package/dist/esm/fields/Rating/index.native.js.map +1 -1
  389. package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -1
  390. package/dist/esm/fields/Rating/types.native.js.map +1 -1
  391. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  392. package/dist/esm/fields/Select/InlineChoices.mjs +2 -6
  393. package/dist/esm/fields/Select/InlineChoices.mjs.map +1 -1
  394. package/dist/esm/fields/Select/InlineChoices.native.js +2 -6
  395. package/dist/esm/fields/Select/InlineChoices.native.js.map +1 -1
  396. package/dist/esm/fields/Select/SheetPickerRow.native.js.map +1 -1
  397. package/dist/esm/fields/Select/index.mjs +49 -202
  398. package/dist/esm/fields/Select/index.mjs.map +1 -1
  399. package/dist/esm/fields/Select/index.native.js +55 -210
  400. package/dist/esm/fields/Select/index.native.js.map +1 -1
  401. package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -1
  402. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  403. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  404. package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
  405. package/dist/esm/fields/Stepper/index.native.js.map +1 -1
  406. package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  407. package/dist/esm/fields/Switch/footprint.native.js.map +1 -1
  408. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  409. package/dist/esm/fields/TextArea/index.native.js.map +1 -1
  410. package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
  411. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  412. package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  413. package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
  414. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  415. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs +3 -3
  416. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -1
  417. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js +3 -3
  418. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  419. package/dist/esm/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  420. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  421. package/dist/esm/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
  422. package/dist/esm/fields/nativeSelect.native.js.map +1 -1
  423. package/dist/esm/fields/selectedOrder.native.js.map +1 -1
  424. package/dist/esm/formSpacing.native.js.map +1 -1
  425. package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
  426. package/dist/esm/index.mjs +3 -1
  427. package/dist/esm/index.mjs.map +1 -1
  428. package/dist/esm/index.native.js +3 -1
  429. package/dist/esm/index.native.js.map +1 -1
  430. package/dist/esm/keyboard/chain.native.js.map +1 -1
  431. package/dist/esm/keyboard/index.native.js.map +1 -1
  432. package/dist/esm/keyboard/types.native.js.map +1 -1
  433. package/dist/esm/requiredMarking.native.js.map +1 -1
  434. package/dist/esm/shared/CheckGlyph.mjs +15 -0
  435. package/dist/esm/shared/CheckGlyph.mjs.map +1 -0
  436. package/dist/esm/shared/CheckGlyph.native.js +16 -0
  437. package/dist/esm/shared/CheckGlyph.native.js.map +1 -0
  438. package/dist/esm/shared/TimeColumn.native.js.map +1 -1
  439. package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
  440. package/dist/esm/shared/choiceRowPress.native.js.map +1 -1
  441. package/dist/esm/shared/colorRamps.native.js.map +1 -1
  442. package/dist/esm/shared/devWarn.native.js.map +1 -1
  443. package/dist/esm/shared/fieldRowContext.native.js.map +1 -1
  444. package/dist/esm/shared/floatingList.mjs +80 -4
  445. package/dist/esm/shared/floatingList.mjs.map +1 -1
  446. package/dist/esm/shared/floatingList.native.js +93 -6
  447. package/dist/esm/shared/floatingList.native.js.map +1 -1
  448. package/dist/esm/shared/focusManagement.native.js.map +1 -1
  449. package/dist/esm/shared/groupContext.native.js.map +1 -1
  450. package/dist/esm/shared/i18n.native.js.map +1 -1
  451. package/dist/esm/shared/instantMotion.native.js.map +1 -1
  452. package/dist/esm/shared/nativeA11y.native.js.map +1 -1
  453. package/dist/esm/shared/nativeAutoFocus.native.js.map +1 -1
  454. package/dist/esm/shared/overlaySizeClass.native.js.map +1 -1
  455. package/dist/esm/shared/overlayStack.native.js.map +1 -1
  456. package/dist/esm/shared/panelPortal.native.js.map +1 -1
  457. package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -1
  458. package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
  459. package/dist/esm/shared/restoreRetries.native.js.map +1 -1
  460. package/dist/esm/shared/sheetNavigation.native.js.map +1 -1
  461. package/dist/esm/shared/systemControlModules.gnome.native.js.map +1 -1
  462. package/dist/esm/shared/systemControls.native.js.map +1 -1
  463. package/dist/esm/shared/t.native.js.map +1 -1
  464. package/dist/esm/shared/tableCellContext.native.js.map +1 -1
  465. package/dist/esm/shared/useDragScroll.native.js.map +1 -1
  466. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  467. package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
  468. package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
  469. package/dist/esm/shared/utils.native.js.map +1 -1
  470. package/dist/esm/shared/zIndex.native.js.map +1 -1
  471. package/dist/esm/standardActions.native.js.map +1 -1
  472. package/dist/esm/themedPrimitives.native.js.map +1 -1
  473. package/dist/esm/types.native.js.map +1 -1
  474. package/dist/esm/utils/LinkCell.native.js.map +1 -1
  475. package/dist/jsx/AdaptivePopup/index.mjs +2 -2
  476. package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
  477. package/dist/jsx/AdaptivePopup/index.native.js +1 -1
  478. package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
  479. package/dist/jsx/Button/index.mjs +12 -5
  480. package/dist/jsx/Button/index.mjs.map +1 -1
  481. package/dist/jsx/Button/index.native.js +14 -6
  482. package/dist/jsx/Button/index.native.js.map +1 -1
  483. package/dist/jsx/FloatingPanel/PanelHeader.mjs +3 -8
  484. package/dist/jsx/FloatingPanel/PanelHeader.mjs.map +1 -1
  485. package/dist/jsx/FloatingPanel/PanelHeader.native.js +3 -8
  486. package/dist/jsx/FloatingPanel/PanelHeader.native.js.map +1 -1
  487. package/dist/jsx/FloatingPanel/coverRect.mjs +1 -8
  488. package/dist/jsx/FloatingPanel/coverRect.mjs.map +1 -1
  489. package/dist/jsx/FloatingPanel/coverRect.native.js +0 -8
  490. package/dist/jsx/FloatingPanel/coverRect.native.js.map +1 -1
  491. package/dist/jsx/FloatingPanel/echoContext.mjs +4 -24
  492. package/dist/jsx/FloatingPanel/echoContext.mjs.map +1 -1
  493. package/dist/jsx/FloatingPanel/echoContext.native.js +5 -28
  494. package/dist/jsx/FloatingPanel/echoContext.native.js.map +1 -1
  495. package/dist/jsx/FloatingPanel/index.mjs +53 -135
  496. package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
  497. package/dist/jsx/FloatingPanel/index.native.js +26 -91
  498. package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
  499. package/dist/jsx/fields/Combobox/index.mjs +4 -11
  500. package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
  501. package/dist/jsx/fields/Combobox/index.native.js +3 -10
  502. package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
  503. package/dist/jsx/fields/Select/InlineChoices.mjs +2 -6
  504. package/dist/jsx/fields/Select/InlineChoices.mjs.map +1 -1
  505. package/dist/jsx/fields/Select/InlineChoices.native.js +4 -8
  506. package/dist/jsx/fields/Select/InlineChoices.native.js.map +1 -1
  507. package/dist/jsx/fields/Select/index.mjs +49 -202
  508. package/dist/jsx/fields/Select/index.mjs.map +1 -1
  509. package/dist/jsx/fields/Select/index.native.js +52 -207
  510. package/dist/jsx/fields/Select/index.native.js.map +1 -1
  511. package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs +3 -3
  512. package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.mjs.map +1 -1
  513. package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js +2 -2
  514. package/dist/jsx/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  515. package/dist/jsx/index.js +3 -1
  516. package/dist/jsx/index.js.map +1 -1
  517. package/dist/jsx/index.mjs +3 -1
  518. package/dist/jsx/index.mjs.map +1 -1
  519. package/dist/jsx/index.native.js +4 -0
  520. package/dist/jsx/index.native.js.map +1 -1
  521. package/dist/jsx/shared/CheckGlyph.mjs +15 -0
  522. package/dist/jsx/shared/CheckGlyph.mjs.map +1 -0
  523. package/dist/jsx/shared/CheckGlyph.native.js +44 -0
  524. package/dist/jsx/shared/CheckGlyph.native.js.map +1 -0
  525. package/dist/jsx/shared/floatingList.mjs +80 -4
  526. package/dist/jsx/shared/floatingList.mjs.map +1 -1
  527. package/dist/jsx/shared/floatingList.native.js +95 -5
  528. package/dist/jsx/shared/floatingList.native.js.map +1 -1
  529. package/package.json +8 -8
  530. package/src/AdaptivePopup/index.tsx +2 -2
  531. package/src/Button/Button.iconButton.spec.tsx +39 -0
  532. package/src/Button/index.tsx +20 -8
  533. package/src/FloatingPanel/FloatingPanel.iconCover.spec.tsx +279 -0
  534. package/src/FloatingPanel/FloatingPanel.menuFace.native.spec.tsx +78 -69
  535. package/src/FloatingPanel/FloatingPanel.seamlessCover.spec.tsx +12 -0
  536. package/src/FloatingPanel/PanelHeader.tsx +4 -12
  537. package/src/FloatingPanel/coverRect.ts +2 -15
  538. package/src/FloatingPanel/echoContext.ts +6 -40
  539. package/src/FloatingPanel/index.native.tsx +36 -145
  540. package/src/FloatingPanel/index.tsx +61 -187
  541. package/src/FloatingPanel/pointAnchor.spec.ts +1 -1
  542. package/src/FloatingPanel/pointAnchor.ts +4 -4
  543. package/src/fields/Combobox/index.tsx +4 -9
  544. package/src/fields/Select/InlineChoices.tsx +2 -2
  545. package/src/fields/Select/Select.containingBlock.spec.tsx +131 -130
  546. package/src/fields/Select/Select.stories.tsx +10 -0
  547. package/src/fields/Select/index.tsx +66 -253
  548. package/src/fields/nativeDateTime/OsDateTimeSheet.tsx +3 -3
  549. package/src/index.ts +2 -1
  550. package/src/shared/CheckGlyph.tsx +12 -0
  551. package/src/shared/floatingList.spec.tsx +154 -1
  552. package/src/shared/floatingList.tsx +125 -8
  553. package/types/Button/index.d.ts.map +1 -1
  554. package/types/FloatingPanel/PanelHeader.d.ts +1 -6
  555. package/types/FloatingPanel/PanelHeader.d.ts.map +1 -1
  556. package/types/FloatingPanel/coverRect.d.ts +2 -11
  557. package/types/FloatingPanel/coverRect.d.ts.map +1 -1
  558. package/types/FloatingPanel/echoContext.d.ts +5 -22
  559. package/types/FloatingPanel/echoContext.d.ts.map +1 -1
  560. package/types/FloatingPanel/index.d.ts +6 -8
  561. package/types/FloatingPanel/index.d.ts.map +1 -1
  562. package/types/FloatingPanel/index.native.d.ts +1 -1
  563. package/types/FloatingPanel/index.native.d.ts.map +1 -1
  564. package/types/FloatingPanel/pointAnchor.d.ts +4 -4
  565. package/types/fields/Combobox/index.d.ts.map +1 -1
  566. package/types/fields/Select/index.d.ts.map +1 -1
  567. package/types/index.d.ts +2 -1
  568. package/types/index.d.ts.map +1 -1
  569. package/types/shared/CheckGlyph.d.ts +10 -0
  570. package/types/shared/CheckGlyph.d.ts.map +1 -0
  571. package/types/shared/floatingList.d.ts +55 -1
  572. package/types/shared/floatingList.d.ts.map +1 -1
  573. package/dist/cjs/FloatingPanel/iconEcho.cjs +0 -106
  574. package/dist/cjs/FloatingPanel/iconEcho.native.js +0 -116
  575. package/dist/cjs/FloatingPanel/iconEcho.native.js.map +0 -1
  576. package/dist/esm/FloatingPanel/iconEcho.mjs +0 -79
  577. package/dist/esm/FloatingPanel/iconEcho.mjs.map +0 -1
  578. package/dist/esm/FloatingPanel/iconEcho.native.js +0 -86
  579. package/dist/esm/FloatingPanel/iconEcho.native.js.map +0 -1
  580. package/dist/jsx/FloatingPanel/iconEcho.mjs +0 -79
  581. package/dist/jsx/FloatingPanel/iconEcho.mjs.map +0 -1
  582. package/dist/jsx/FloatingPanel/iconEcho.native.js +0 -116
  583. package/dist/jsx/FloatingPanel/iconEcho.native.js.map +0 -1
  584. package/src/FloatingPanel/FloatingPanel.iconEcho.spec.tsx +0 -357
  585. package/src/FloatingPanel/iconEcho.tsx +0 -124
  586. package/types/FloatingPanel/iconEcho.d.ts +0 -29
  587. package/types/FloatingPanel/iconEcho.d.ts.map +0 -1
@@ -1,4 +1,9 @@
1
- import { transitionProps } from "@multiplatform.one/theme";
1
+ import {
2
+ transitionProps,
3
+ overlayScrim,
4
+ sheetGrabber,
5
+ sheetGrabberClearance,
6
+ } from "@multiplatform.one/theme";
2
7
  import type { ReactNode, RefObject, UIEvent } from "react";
3
8
  import {
4
9
  cloneElement,
@@ -15,7 +20,6 @@ import {
15
20
  OVERLAY_ATTACH_GAP,
16
21
  OVERLAY_BREAKPOINT,
17
22
  Surface,
18
- SurfaceContext,
19
23
  useResolvedKnobs,
20
24
  wasKeyboardFocus,
21
25
  ensureKeyboardModalityTracking,
@@ -41,14 +45,8 @@ import { OverlayStackProvider, useInsideOverlay, useOverlayZIndex } from "../sha
41
45
  import { resolveCompactFace, type CompactFace } from "./compactFace";
42
46
  import { isNestedPanelAction, type PanelActionEvent } from "./nestedAction";
43
47
  import { PanelPortal } from "./PanelPortal";
44
- import {
45
- echoHeaderBox,
46
- PanelIconEchoBoxContext,
47
- sameEchoBox,
48
- type PanelIconEchoBox,
49
- } from "./echoContext";
50
- import { iconEchoElement, iconEchoOverlays, type IconEcho } from "./iconEcho";
51
- import { echoInCover, iconCoverRect } from "./coverRect";
48
+ import { PanelSheetContext } from "./echoContext";
49
+ import { iconCoverRect } from "./coverRect";
52
50
  import { groupSurfaceOf, paintedTriggerBox } from "./paintedBox";
53
51
  import {
54
52
  contextMenuPoint,
@@ -103,14 +101,13 @@ export interface FloatingPanelProps {
103
101
  */
104
102
  coverAlign?: "start" | "auto";
105
103
  /**
106
- * An icon-only trigger's covering panel draws the pressed button again in
107
- * its own spot as an X, same size and plate, the way iOS morphs a + into an
108
- * X (LC-112, FZ-8480 Round 37). `"close"` lays the X over the content's
109
- * header row; `"menu"` gives it its own band above the rows. It closes the
110
- * panel and reads "Close". The panel never slides off the button: it opens
111
- * down from the button's top edge, or up from its bottom edge.
104
+ * The trigger is an icon-only button (LC-112, FZ-8665 Round 45). Its panel
105
+ * covers the surface the button is seen on, a glass capsule or its press
106
+ * target, and repeats nothing: the content starts at the panel's top edge,
107
+ * and a press outside it closes it. The panel never slides off the button:
108
+ * it opens down from the button's top edge, or up from its bottom edge.
112
109
  */
113
- iconEcho?: IconEcho;
110
+ iconCover?: boolean;
114
111
  /**
115
112
  * Optional control rendered beside the trigger but OUTSIDE the native press
116
113
  * capture (e.g. DatePicker/ColorPicker clear). On native the trigger subtree
@@ -410,7 +407,6 @@ export function TriggerEchoRow({
410
407
  const stretched = grown > rect.width;
411
408
  row.style.width = `${stretched ? grown : rect.width}px`;
412
409
  row.style.height = `${rect.height}px`;
413
- const rtl = isRtl(source);
414
410
  row.style.alignSelf = "flex-start";
415
411
  const frameStyle = row.parentElement ? getComputedStyle(row.parentElement) : null;
416
412
  row.style.position = "sticky";
@@ -419,12 +415,10 @@ export function TriggerEchoRow({
419
415
  row.style.zIndex = "1";
420
416
  // Sticky over a scrolled body, so it carries the panel's own fill.
421
417
  row.style.backgroundColor = frameStyle?.backgroundColor ?? "";
422
- row.style.marginLeft = rtl
423
- ? ""
424
- : `${-(parseFloat(frameStyle?.borderLeftWidth || "0") || 0)}px`;
425
- row.style.marginRight = rtl
426
- ? `${-(parseFloat(frameStyle?.borderRightWidth || "0") || 0)}px`
427
- : "";
418
+ // Both sides overlap the frame's border, so a trigger-wide row fits a
419
+ // trigger-wide panel instead of pushing it a border wider (FZ-8557).
420
+ row.style.marginLeft = `${-(parseFloat(frameStyle?.borderLeftWidth || "0") || 0)}px`;
421
+ row.style.marginRight = `${-(parseFloat(frameStyle?.borderRightWidth || "0") || 0)}px`;
428
422
  const snapshot =
429
423
  children == null ? (source.cloneNode(true) as HTMLElement) : visualRef.current;
430
424
  if (!snapshot) return;
@@ -521,97 +515,6 @@ export function placeEchoOverTrigger(
521
515
  }
522
516
  }
523
517
 
524
- /**
525
- * The band an icon trigger's echo rides (LC-112, FZ-8480): as tall as the
526
- * trigger, sticky on the panel's top edge (or its bottom edge when the panel
527
- * opened upward), filled with the panel's surface so scrolled rows pass under
528
- * it. It comes last in the document, so a keyboard open lands on the panel's
529
- * content and the echo is the last tab stop; CSS order draws it first.
530
- */
531
- function IconEchoRow({ children }: { children: ReactNode }) {
532
- return (
533
- <View
534
- data-fp-icon-echo=""
535
- flexShrink={0}
536
- alignSelf="stretch"
537
- pointerEvents="box-none"
538
- style={{ order: -1, position: "sticky", zIndex: 1 }}
539
- >
540
- <View data-fp-icon-echo-box="" alignItems="flex-start" justifyContent="flex-start">
541
- {children}
542
- </View>
543
- </View>
544
- );
545
- }
546
-
547
- /**
548
- * Lay the icon echo on the trigger's measured box: the band is the trigger's
549
- * height on the edge the panel shares with it, and the box sits `offset` in
550
- * from the panel's start edge, pulled back over the frame's border so the
551
- * button lands exactly where the trigger is. An overlaid echo (an X) takes no
552
- * height of its own and lets the content show beside it.
553
- */
554
- function placeIconEcho(
555
- panelElement: HTMLElement,
556
- {
557
- offset,
558
- width,
559
- height,
560
- up,
561
- overlay,
562
- group = null,
563
- }: {
564
- offset: number;
565
- width: number;
566
- height: number;
567
- up: boolean;
568
- overlay: boolean;
569
- /**
570
- * The surface the panel covers when it is not the trigger's own box (a
571
- * grouped capsule, or the 44pt target of a smaller avatar): the band
572
- * covers all of it, and only the pressed trigger shows, at its own spot.
573
- */
574
- group?: { top: number; height: number } | null;
575
- },
576
- ) {
577
- const row = panelElement.querySelector<HTMLElement>("[data-fp-icon-echo]");
578
- const box = row?.querySelector<HTMLElement>("[data-fp-icon-echo-box]");
579
- if (!row || !box) return;
580
- const frame = getComputedStyle(panelElement);
581
- const border = (side: "Top" | "Bottom" | "Left" | "Right") =>
582
- parseFloat(frame[`border${side}Width`] || "0") || 0;
583
- const rtl = panelElement.dir === "rtl";
584
- row.style.order = up ? "1" : "-1";
585
- row.style.height = `${height}px`;
586
- row.style.backgroundColor = overlay ? "transparent" : frame.backgroundColor;
587
- if (up) {
588
- row.style.top = "";
589
- row.style.marginTop = "";
590
- row.style.marginBottom = `${-border("Bottom")}px`;
591
- row.style.bottom = row.style.marginBottom;
592
- } else {
593
- row.style.bottom = "";
594
- row.style.marginTop = `${-border("Top")}px`;
595
- row.style.marginBottom = overlay ? `${-(height - border("Top"))}px` : "";
596
- row.style.top = row.style.marginTop;
597
- }
598
- row.setAttribute("data-fp-icon-echo", overlay ? "overlay" : "band");
599
- if (group) {
600
- row.style.height = `${group.height}px`;
601
- if (!up && overlay) row.style.marginBottom = `${-(group.height - border("Top"))}px`;
602
- }
603
- row.style.marginLeft = `${-border("Left")}px`;
604
- row.style.marginRight = `${-border("Right")}px`;
605
- box.style.width = `${width}px`;
606
- box.style.height = `${height}px`;
607
- box.style.marginLeft = rtl ? "" : `${offset}px`;
608
- box.style.marginRight = rtl ? `${offset}px` : "";
609
- box.style.alignSelf = "flex-start";
610
- box.style.marginTop = group ? `${group.top}px` : "";
611
- box.style.position = "relative";
612
- box.style.zIndex = "1";
613
- }
614
-
615
518
  /** The box that lays an element out, past any `display: contents` wrappers. */
616
519
  function layoutParentOf(element: HTMLElement | null): HTMLElement | null {
617
520
  let parent = element?.parentElement ?? null;
@@ -815,11 +718,11 @@ function FloatingPanelSheet({
815
718
  >
816
719
  <Sheet.Overlay
817
720
  {...transitionProps(scrimMotion)}
818
- backgroundColor="$shadow6"
721
+ backgroundColor={overlayScrim}
819
722
  enterStyle={{ opacity: 0 }}
820
723
  exitStyle={{ opacity: 0 }}
821
724
  />
822
- <Sheet.Handle />
725
+ <Sheet.Handle {...sheetGrabber} aria-label="Resize" />
823
726
  <Sheet.Frame
824
727
  data-testid="floating-panel-sheet"
825
728
  // Sheet.Frame forwards its ref at runtime; the styled prop type
@@ -829,19 +732,32 @@ function FloatingPanelSheet({
829
732
  {...knobProps.elevatedSurface}
830
733
  borderBottomLeftRadius={0}
831
734
  borderBottomRightRadius={0}
735
+ // A sheet spans the screen: only its top edge meets the page, so the
736
+ // sides and bottom draw no border beside a full-width row (FZ-8557).
737
+ borderLeftWidth={0}
738
+ borderRightWidth={0}
739
+ borderBottomWidth={0}
832
740
  {...panelChromeFocus}
833
741
  padding={framePadding}
742
+ {...(contentPadding === "none" ? { paddingTop: sheetGrabberClearance } : null)}
834
743
  gap={frameGap}
835
744
  >
836
745
  <OverlayStackProvider zIndex={sheetZIndex}>
837
- {header}
838
- {scrollable ? (
839
- <Sheet.ScrollView flex={header ? 1 : undefined} {...scrollViewProps}>
840
- {children}
841
- </Sheet.ScrollView>
842
- ) : (
843
- children
844
- )}
746
+ <PanelSheetContext.Provider value>
747
+ {header}
748
+ {scrollable ? (
749
+ <Sheet.ScrollView flex={header ? 1 : undefined} {...scrollViewProps}>
750
+ {children}
751
+ </Sheet.ScrollView>
752
+ ) : (
753
+ children
754
+ )}
755
+ {contentPadding === "none" ? (
756
+ // An edge-to-edge list clears the home indicator (HIG); a padded
757
+ // frame's own padding already does.
758
+ <View style={{ height: "env(safe-area-inset-bottom)" }} flexShrink={0} />
759
+ ) : null}
760
+ </PanelSheetContext.Provider>
845
761
  </OverlayStackProvider>
846
762
  </Sheet.Frame>
847
763
  </Sheet>
@@ -867,7 +783,7 @@ function FloatingPanelWeb({
867
783
  cover = true,
868
784
  triggerEcho = true,
869
785
  coverAlign = "start",
870
- iconEcho,
786
+ iconCover,
871
787
  triggerRow,
872
788
  anchorRect,
873
789
  clampCollisions = false,
@@ -880,10 +796,8 @@ function FloatingPanelWeb({
880
796
  // A context menu anchored on its trigger (a bar button's long-press menu)
881
797
  // covers the trigger like any other menu; only a free one opens at the point.
882
798
  const pointMenu = isContextMenu && sheetProps.anchorMode !== "cover-trigger";
883
- const showIconEcho = cover && !pointMenu && iconEcho != null;
884
- const triggerSurface = SurfaceContext.useStyledContext();
885
- const iconEchoUpRef = useRef(false);
886
- const [echoBox, setEchoBox] = useState<PanelIconEchoBox | null>(null);
799
+ const coversIcon = cover && !pointMenu && iconCover === true;
800
+ const openedUpRef = useRef(false);
887
801
  const overlayStyleRef = useRef<{ top: number; left?: number; maxHeight: number } | null>(null);
888
802
  const pinnedTopRef = useRef(0);
889
803
  const pinnedHeightRef = useRef(0);
@@ -996,11 +910,10 @@ function FloatingPanelWeb({
996
910
  const viewportBottom = viewportTop + (viewport?.height ?? window.innerHeight);
997
911
  dropdownElement.style.left = `${viewportLeft - containingBlock.left}px`;
998
912
  // LC-112 (FZ-8480 Round 37): a grouped icon trigger's surface is the
999
- // group's plate, so the panel covers the whole plate; only the pressed
1000
- // trigger shows, as its X.
1001
- const groupSurface = showIconEcho ? groupSurfaceOf(trig) : null;
913
+ // group's plate, so the panel covers the whole plate.
914
+ const groupSurface = coversIcon ? groupSurfaceOf(trig) : null;
1002
915
  const groupBox = groupSurface?.getBoundingClientRect() ?? null;
1003
- if (showIconEcho) dropdownElement.style.minWidth = groupBox ? `${groupBox.width}px` : "";
916
+ if (coversIcon) dropdownElement.style.minWidth = groupBox ? `${groupBox.width}px` : "";
1004
917
  const layoutStyle = getComputedStyle(dropdownElement);
1005
918
  const scale =
1006
919
  layoutStyle.transform &&
@@ -1069,7 +982,7 @@ function FloatingPanelWeb({
1069
982
  : totalContentHeight;
1070
983
  // LC-112 (FZ-8480): an icon trigger's panel covers the surface the
1071
984
  // trigger is seen on: its capsule, else its press target.
1072
- const painted = showIconEcho ? paintedTriggerBox(trig, measured) : null;
985
+ const painted = coversIcon ? paintedTriggerBox(trig, measured) : null;
1073
986
  const coverRect = painted
1074
987
  ? iconCoverRect(
1075
988
  {
@@ -1088,20 +1001,14 @@ function FloatingPanelWeb({
1088
1001
  : null,
1089
1002
  )
1090
1003
  : null;
1091
- const echoCover = coverRect
1092
- ? echoInCover(
1093
- { x: measured.left, y: measured.top, width: measured.width, height: measured.height },
1094
- coverRect,
1095
- )
1096
- : null;
1097
1004
  let placedTop = measured.top;
1098
1005
  let placedLeft = left;
1099
1006
  let placedMaxHeight: number | null = null;
1100
- iconEchoUpRef.current = false;
1007
+ openedUpRef.current = false;
1101
1008
  if (coverRect && measured.width > 0 && measured.height > 0) {
1102
- // LC-112 (FZ-8480): the button is drawn again in its own spot, so the
1103
- // panel stays on it: down from its top edge, or up from its bottom.
1104
- // It covers the button's plate and press box where they reach past it.
1009
+ // LC-112 (FZ-8480): the panel stays on its button: down from its top
1010
+ // edge, or up from its bottom. It covers the button's plate and press
1011
+ // box where they reach past it.
1105
1012
  const placed = placeOverTrigger({
1106
1013
  trigger: coverRect,
1107
1014
  width,
@@ -1120,7 +1027,7 @@ function FloatingPanelWeb({
1120
1027
  if (!slides) placedLeft = placed.left;
1121
1028
  alignEnd = placed.end;
1122
1029
  placedMaxHeight = placed.maxHeight;
1123
- iconEchoUpRef.current = placed.up;
1030
+ openedUpRef.current = placed.up;
1124
1031
  } else if (
1125
1032
  measured.width > 0 &&
1126
1033
  measured.height > 0 &&
@@ -1162,33 +1069,9 @@ function FloatingPanelWeb({
1162
1069
  alignEnd = placed.end;
1163
1070
  }
1164
1071
  coverAlignEndRef.current = alignEnd;
1165
- const echoStart = echoOffset({
1166
- triggerLeft: measured.left,
1167
- triggerRight: measured.right,
1168
- panelLeft: placedLeft,
1169
- panelWidth: width,
1170
- rtl,
1171
- });
1172
- const echoOverlays = iconEcho != null && iconEchoOverlays(iconEcho, iconEchoUpRef.current);
1173
- const nextEchoBox =
1174
- showIconEcho && echoOverlays
1175
- ? echoHeaderBox({
1176
- offset: echoStart,
1177
- width: measured.width,
1178
- height: echoCover?.height ?? measured.height,
1179
- panelWidth: width,
1180
- rtl,
1181
- })
1182
- : null;
1183
- setEchoBox((previous) => (sameEchoBox(previous, nextEchoBox) ? previous : nextEchoBox));
1184
- placeIconEcho(dropdownElement, {
1185
- offset: echoStart,
1186
- width: measured.width,
1187
- height: measured.height,
1188
- up: iconEchoUpRef.current,
1189
- overlay: echoOverlays,
1190
- group: echoCover,
1191
- });
1072
+ // A whole-pixel start edge: at a half pixel the rows paint a device
1073
+ // pixel short of the panel's far edge, a gutter of panel fill (FZ-8557).
1074
+ placedLeft = Math.round(placedLeft);
1192
1075
  placeEchoOverTrigger(
1193
1076
  dropdownElement,
1194
1077
  {
@@ -1208,7 +1091,7 @@ function FloatingPanelWeb({
1208
1091
  dropdownElement.style.left = `${cssLeft}px`;
1209
1092
  dropdownElement.style.maxHeight = `${maxHeight}px`;
1210
1093
  dropdownElement.dir = rtl ? "rtl" : "ltr";
1211
- dropdownElement.style.transformOrigin = `${iconEchoUpRef.current ? "bottom" : "top"} ${rtl !== alignEnd ? "right" : "left"}`;
1094
+ dropdownElement.style.transformOrigin = `${openedUpRef.current ? "bottom" : "top"} ${rtl !== alignEnd ? "right" : "left"}`;
1212
1095
  dropdownElement.style.visibility = "visible";
1213
1096
  overlayStyleRef.current = { top, left: cssLeft, maxHeight };
1214
1097
  panel.initializingRef.current = false;
@@ -1369,7 +1252,7 @@ function FloatingPanelWeb({
1369
1252
  isFill,
1370
1253
  isContextMenu,
1371
1254
  pointMenu,
1372
- showIconEcho,
1255
+ coversIcon,
1373
1256
  cover,
1374
1257
  anchorRect,
1375
1258
  clampCollisions,
@@ -1644,7 +1527,7 @@ function FloatingPanelWeb({
1644
1527
  transition: webTransition,
1645
1528
  transformOrigin:
1646
1529
  cover && !pointMenu
1647
- ? `${iconEchoUpRef.current ? "bottom" : "top"} ${
1530
+ ? `${openedUpRef.current ? "bottom" : "top"} ${
1648
1531
  isRtl(panel.triggerRef.current) !== coverAlignEndRef.current
1649
1532
  ? "right"
1650
1533
  : "left"
@@ -1680,7 +1563,7 @@ function FloatingPanelWeb({
1680
1563
  paddingVertical={0}
1681
1564
  paddingBottom={panel.coverCornerInset || 0}
1682
1565
  >
1683
- {pointMenu || !cover || !triggerEcho || showIconEcho ? null : (
1566
+ {pointMenu || !cover || !triggerEcho || coversIcon ? null : (
1684
1567
  <TriggerEchoRow
1685
1568
  sourceRef={panel.triggerRef}
1686
1569
  source={trigger}
@@ -1701,11 +1584,7 @@ function FloatingPanelWeb({
1701
1584
  {...(contentPadding !== "none" ? panel.knobProps.panelPadding : undefined)}
1702
1585
  {...(contentPadding !== "none" ? panel.knobProps.gapLg : undefined)}
1703
1586
  >
1704
- <OverlayStackProvider zIndex={panelZIndex}>
1705
- <PanelIconEchoBoxContext.Provider value={echoBox}>
1706
- {children}
1707
- </PanelIconEchoBoxContext.Provider>
1708
- </OverlayStackProvider>
1587
+ <OverlayStackProvider zIndex={panelZIndex}>{children}</OverlayStackProvider>
1709
1588
  </View>
1710
1589
  <ScrollArrow
1711
1590
  direction="down"
@@ -1713,11 +1592,6 @@ function FloatingPanelWeb({
1713
1592
  visible={panel.arrowDown}
1714
1593
  arrowScrollDirRef={panel.arrowScrollDirRef}
1715
1594
  />
1716
- {showIconEcho && iconEcho ? (
1717
- <IconEchoRow>
1718
- {iconEchoElement(trigger, iconEcho, () => onOpenChange(false), triggerSurface)}
1719
- </IconEchoRow>
1720
- ) : null}
1721
1595
  </YStack>
1722
1596
  </Theme>
1723
1597
  </PanelPortal>
@@ -277,7 +277,7 @@ describe("placeOverTrigger (FZ-7830, LC-112 where no sheet may take it)", () =>
277
277
  });
278
278
  });
279
279
 
280
- describe("placeOverTrigger pinned: an echoed icon trigger stays in its spot (LC-112, FZ-8480)", () => {
280
+ describe("placeOverTrigger pinned: a panel stays on its icon trigger (LC-112, FZ-8480)", () => {
281
281
  const phone: PanelBounds = { top: 57, left: 10, right: 380, bottom: 800 };
282
282
 
283
283
  it("opens down from the button's top edge where the menu fits", () => {
@@ -169,10 +169,10 @@ export function placeOverTrigger({
169
169
  */
170
170
  align?: "start" | "auto";
171
171
  /**
172
- * The menu echoes its icon trigger in the button's own spot (LC-112,
173
- * FZ-8480), so it never slides off the button vertically: it opens down
174
- * from the button's top edge, or up from its bottom edge where there is
175
- * more room above, and scrolls what still does not fit.
172
+ * The menu covers its icon trigger (LC-112, FZ-8480), so it never slides
173
+ * off the button vertically: it opens down from the button's top edge, or
174
+ * up from its bottom edge where there is more room above, and scrolls what
175
+ * still does not fit.
176
176
  */
177
177
  pinned?: boolean;
178
178
  }): TriggerPlacement {
@@ -1,4 +1,5 @@
1
1
  import { useTouchSurface } from "@multiplatform.one/theme";
2
+ import { CheckGlyph } from "../../shared/CheckGlyph";
2
3
  import type { ReactNode } from "react";
3
4
  import {
4
5
  Fragment,
@@ -11,13 +12,7 @@ import {
11
12
  memo,
12
13
  } from "react";
13
14
  import { useTranslation } from "../../shared/i18n";
14
- import {
15
- CaretDownIcon,
16
- CheckIcon,
17
- MagnifyingGlassIcon,
18
- PlusIcon,
19
- XIcon,
20
- } from "@phosphor-icons/react";
15
+ import { CaretDownIcon, MagnifyingGlassIcon, PlusIcon, XIcon } from "@phosphor-icons/react";
21
16
  import {
22
17
  useClick,
23
18
  useDismiss,
@@ -427,7 +422,7 @@ const ComboboxItem = memo(function ComboboxItem({
427
422
  {option.label}
428
423
  </Text>
429
424
  )}
430
- {isSelected && <CheckIcon size={14} weight="bold" color={ctx.markColor} />}
425
+ {isSelected && <CheckGlyph />}
431
426
  </ComboboxRow>
432
427
  );
433
428
  });
@@ -2237,7 +2232,7 @@ function NativeComboboxCore({
2237
2232
  {option.label}
2238
2233
  </Text>
2239
2234
  )}
2240
- {selected && <CheckIcon size={14} weight="bold" color={markColor} />}
2235
+ {selected && <CheckGlyph />}
2241
2236
  </View>
2242
2237
  );
2243
2238
  return (
@@ -1,5 +1,5 @@
1
1
  import { hairline, IconSlot, keyboardFocusRingProps } from "@multiplatform.one/theme";
2
- import { CheckIcon } from "@phosphor-icons/react";
2
+ import { CheckGlyph } from "../../shared/CheckGlyph";
3
3
  import { useRef, type KeyboardEvent, type ReactNode } from "react";
4
4
  import { Pressable } from "react-native";
5
5
  import { isWeb, Text, View, XStack, YStack } from "tamagui";
@@ -100,7 +100,7 @@ export function InlineChoices({
100
100
  >
101
101
  {option.label}
102
102
  </Text>
103
- {selected ? <CheckIcon size={14} weight="bold" color={markColor} /> : null}
103
+ {selected ? <CheckGlyph /> : null}
104
104
  </XStack>
105
105
  );
106
106