@multiplatform.one/forms 7.45.0 → 7.46.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 (241) hide show
  1. package/dist/cjs/AdaptivePopup/index.native.js +1 -1
  2. package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
  3. package/dist/cjs/Button/index.native.js +1 -1
  4. package/dist/cjs/Button/index.native.js.map +1 -1
  5. package/dist/cjs/Chip/index.native.js.map +1 -1
  6. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  7. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  8. package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  9. package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  10. package/dist/cjs/ContextualSaveBar/index.native.js +3 -3
  11. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  12. package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  13. package/dist/cjs/ControlGroup/index.native.js +1 -1
  14. package/dist/cjs/ControlGroup/index.native.js.map +1 -1
  15. package/dist/cjs/DescriptionList/index.native.js +2 -2
  16. package/dist/cjs/DescriptionList/index.native.js.map +1 -1
  17. package/dist/cjs/ErrorSummary.native.js.map +1 -1
  18. package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
  19. package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
  20. package/dist/cjs/FieldDisplay/index.native.js +1 -1
  21. package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
  22. package/dist/cjs/FieldGroup.native.js.map +1 -1
  23. package/dist/cjs/FloatingPanel/index.cjs +158 -40
  24. package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -1
  25. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
  26. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  27. package/dist/cjs/Form/index.native.js +1 -1
  28. package/dist/cjs/Form/index.native.js.map +1 -1
  29. package/dist/cjs/Form/submissionController.native.js.map +1 -1
  30. package/dist/cjs/Form/validateOn.native.js.map +1 -1
  31. package/dist/cjs/FormGrid.native.js.map +1 -1
  32. package/dist/cjs/FormSection.native.js.map +1 -1
  33. package/dist/cjs/InputParts/index.native.js.map +1 -1
  34. package/dist/cjs/Label/index.native.js.map +1 -1
  35. package/dist/cjs/MediaPicker/base64.native.js.map +1 -1
  36. package/dist/cjs/MediaPicker/payload.native.js.map +1 -1
  37. package/dist/cjs/MediaPicker/types.native.js.map +1 -1
  38. package/dist/cjs/MediaPicker/useMediaPicker.native.js.map +1 -1
  39. package/dist/cjs/Skeleton/index.native.js.map +1 -1
  40. package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
  41. package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
  42. package/dist/cjs/Table/index.native.js.map +1 -1
  43. package/dist/cjs/Wheel/haptic.native.js.map +1 -1
  44. package/dist/cjs/Wheel/index.native.js.map +1 -1
  45. package/dist/cjs/Wheel/wheelShared.native.js.map +1 -1
  46. package/dist/cjs/actionLabel.native.js.map +1 -1
  47. package/dist/cjs/fieldDefaults.native.js.map +1 -1
  48. package/dist/cjs/fieldLayout.native.js +1 -1
  49. package/dist/cjs/fieldLayout.native.js.map +1 -1
  50. package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
  51. package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
  52. package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
  53. package/dist/cjs/fields/Barcode/index.native.js +2 -2
  54. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  55. package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
  56. package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
  57. package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -1
  58. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  59. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  60. package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  61. package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  62. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +1 -1
  63. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  64. package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  65. package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
  66. package/dist/cjs/fields/ColorPicker/index.native.js +3 -3
  67. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  68. package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
  69. package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
  70. package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
  71. package/dist/cjs/fields/Combobox/index.native.js +6 -6
  72. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  73. package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
  74. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
  75. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  76. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +3 -3
  77. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  78. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +2 -2
  79. package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
  80. package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
  81. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
  82. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  83. package/dist/cjs/fields/DatePicker/catalog.native.js +2 -2
  84. package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
  85. package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  86. package/dist/cjs/fields/DatePicker/index.native.js +2 -2
  87. package/dist/cjs/fields/DatePicker/parts.native.js +2 -2
  88. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  89. package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
  90. package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
  91. package/dist/cjs/fields/Duration/index.native.js +3 -3
  92. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  93. package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  94. package/dist/cjs/fields/FileUpload/index.native.js +2 -2
  95. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  96. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  97. package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  98. package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
  99. package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -1
  100. package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -1
  101. package/dist/cjs/fields/Geolocation/index.native.js +5 -5
  102. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  103. package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
  104. package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
  105. package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  106. package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  107. package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
  108. package/dist/cjs/fields/Icon/index.native.js +3 -3
  109. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  110. package/dist/cjs/fields/ImageField/index.native.js +2 -2
  111. package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
  112. package/dist/cjs/fields/Input/index.native.js +3 -3
  113. package/dist/cjs/fields/Input/index.native.js.map +1 -1
  114. package/dist/cjs/fields/MentionInput/index.native.js +3 -3
  115. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  116. package/dist/cjs/fields/OTPInput/index.native.js +3 -3
  117. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  118. package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
  119. package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
  120. package/dist/cjs/fields/PhoneInput/index.native.js +3 -3
  121. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  122. package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
  123. package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -1
  124. package/dist/cjs/fields/Progress/index.native.js +1 -1
  125. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  126. package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
  127. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  128. package/dist/cjs/fields/Rating/index.native.js +1 -1
  129. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  130. package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
  131. package/dist/cjs/fields/Rating/types.native.js.map +1 -1
  132. package/dist/cjs/fields/SearchInput/index.native.js +2 -2
  133. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  134. package/dist/cjs/fields/Select/index.native.js +4 -4
  135. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  136. package/dist/cjs/fields/Signature/index.native.js +2 -2
  137. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  138. package/dist/cjs/fields/Slider/index.native.js +1 -1
  139. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  140. package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
  141. package/dist/cjs/fields/Stepper/index.native.js +2 -2
  142. package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
  143. package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  144. package/dist/cjs/fields/Switch/footprint.native.js.map +1 -1
  145. package/dist/cjs/fields/Switch/index.native.js +2 -2
  146. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  147. package/dist/cjs/fields/TextArea/index.native.js +2 -2
  148. package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
  149. package/dist/cjs/fields/TimePicker/catalog.native.js +3 -3
  150. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
  151. package/dist/cjs/fields/TimePicker/index.native.js +2 -2
  152. package/dist/cjs/fields/TimePicker/parts.native.js +1 -1
  153. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  154. package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  155. package/dist/cjs/fields/TimeRangeScrubber/index.native.js +2 -2
  156. package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
  157. package/dist/cjs/fields/ToggleGroup/index.native.js +1 -1
  158. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  159. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  160. package/dist/cjs/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  161. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  162. package/dist/cjs/fields/nativeSelect.native.js.map +1 -1
  163. package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
  164. package/dist/cjs/formSpacing.native.js.map +1 -1
  165. package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
  166. package/dist/cjs/index.native.js +44 -44
  167. package/dist/cjs/index.native.js.map +1 -1
  168. package/dist/cjs/keyboard/KeyboardDoneBar.native.js +1 -1
  169. package/dist/cjs/keyboard/chain.native.js.map +1 -1
  170. package/dist/cjs/keyboard/index.native.js.map +1 -1
  171. package/dist/cjs/keyboard/types.native.js.map +1 -1
  172. package/dist/cjs/requiredMarking.native.js.map +1 -1
  173. package/dist/cjs/shared/TimeColumn.native.js +1 -1
  174. package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
  175. package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
  176. package/dist/cjs/shared/colorRamps.native.js.map +1 -1
  177. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  178. package/dist/cjs/shared/floatingList.native.js +1 -1
  179. package/dist/cjs/shared/floatingList.native.js.map +1 -1
  180. package/dist/cjs/shared/focusManagement.cjs +3 -3
  181. package/dist/cjs/shared/focusManagement.native.js +3 -3
  182. package/dist/cjs/shared/focusManagement.native.js.map +1 -1
  183. package/dist/cjs/shared/groupContext.native.js.map +1 -1
  184. package/dist/cjs/shared/i18n.native.js.map +1 -1
  185. package/dist/cjs/shared/instantMotion.native.js.map +1 -1
  186. package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
  187. package/dist/cjs/shared/nativeAutoFocus.native.js.map +1 -1
  188. package/dist/cjs/shared/panelPortal.native.js.map +1 -1
  189. package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -1
  190. package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
  191. package/dist/cjs/shared/t.native.js.map +1 -1
  192. package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
  193. package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
  194. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  195. package/dist/cjs/shared/useSheetEscapeDismiss.cjs +5 -4
  196. package/dist/cjs/shared/useSheetEscapeDismiss.native.js +5 -3
  197. package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
  198. package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
  199. package/dist/cjs/shared/utils.native.js +1 -1
  200. package/dist/cjs/shared/utils.native.js.map +1 -1
  201. package/dist/cjs/shared/zIndex.native.js.map +1 -1
  202. package/dist/cjs/themedPrimitives.native.js.map +1 -1
  203. package/dist/cjs/types.native.js.map +1 -1
  204. package/dist/cjs/utils/LinkCell.native.js.map +1 -1
  205. package/dist/esm/FloatingPanel/index.mjs +160 -42
  206. package/dist/esm/FloatingPanel/index.mjs.map +1 -1
  207. package/dist/esm/shared/focusManagement.mjs +3 -3
  208. package/dist/esm/shared/focusManagement.mjs.map +1 -1
  209. package/dist/esm/shared/focusManagement.native.js +3 -3
  210. package/dist/esm/shared/focusManagement.native.js.map +1 -1
  211. package/dist/esm/shared/useSheetEscapeDismiss.mjs +5 -4
  212. package/dist/esm/shared/useSheetEscapeDismiss.mjs.map +1 -1
  213. package/dist/esm/shared/useSheetEscapeDismiss.native.js +5 -3
  214. package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
  215. package/dist/jsx/FloatingPanel/index.mjs +160 -42
  216. package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
  217. package/dist/jsx/index.native.js.map +1 -1
  218. package/dist/jsx/shared/focusManagement.mjs +3 -3
  219. package/dist/jsx/shared/focusManagement.mjs.map +1 -1
  220. package/dist/jsx/shared/focusManagement.native.js +3 -3
  221. package/dist/jsx/shared/focusManagement.native.js.map +1 -1
  222. package/dist/jsx/shared/useSheetEscapeDismiss.mjs +5 -4
  223. package/dist/jsx/shared/useSheetEscapeDismiss.mjs.map +1 -1
  224. package/dist/jsx/shared/useSheetEscapeDismiss.native.js +5 -3
  225. package/dist/jsx/shared/useSheetEscapeDismiss.native.js.map +1 -1
  226. package/package.json +8 -8
  227. package/src/FloatingPanel/FloatingPanel.coverTrigger.spec.tsx +184 -0
  228. package/src/FloatingPanel/FloatingPanel.spec.tsx +3 -5
  229. package/src/FloatingPanel/FloatingPanel.stories.tsx +26 -0
  230. package/src/FloatingPanel/index.tsx +255 -59
  231. package/src/FloatingPanel/useFloatingPanel.spec.tsx +4 -2
  232. package/src/shared/focusManagement.spec.tsx +11 -1
  233. package/src/shared/focusManagement.ts +16 -7
  234. package/src/shared/interactionHooks.spec.tsx +13 -0
  235. package/src/shared/useSheetEscapeDismiss.ts +9 -4
  236. package/types/FloatingPanel/index.d.ts +9 -1
  237. package/types/FloatingPanel/index.d.ts.map +1 -1
  238. package/types/shared/focusManagement.d.ts +10 -5
  239. package/types/shared/focusManagement.d.ts.map +1 -1
  240. package/types/shared/useSheetEscapeDismiss.d.ts +1 -1
  241. package/types/shared/useSheetEscapeDismiss.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","isWeb","useDialogContext","wasKeyboardFocus","useResolvedKnobs","motionHideDelayMs","_instanceof","left","right","Symbol","hasInstance","FOCUSABLE","canUseDom","canUseDom2","document","focusIsDropped","insideEl","ae","activeElement","body","documentElement","contains","useCaptureOnOpen","open","prevRef","wasOpenRef","generationRef","current","restoreLater","delayMs","insideRef","skipReturnFocusRef","generation","restore","restore2","_ref","target","isConnected","focus","preventScroll","focusVisible","requestAnimationFrame","setTimeout","useReturnFocusOnClose","knobProps","restoreDelayMsRef","motion","scrim","transition","useSheetModalFocus","frameRef","frame","addEventListener","focusIn","focusIn2","first","querySelector","innerRaf","raf","onKeyDown","onKeyDown2","e","key","focusables","Array","from","querySelectorAll","filter","el","offsetWidth","offsetHeight","length","preventDefault","last","shiftKey","cancelAnimationFrame","removeEventListener"],"sources":["../../../src/shared/focusManagement.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","isWeb","useDialogContext","wasKeyboardFocus","useResolvedKnobs","motionHideDelayMs","_instanceof","left","right","Symbol","hasInstance","FOCUSABLE","canUseDom","canUseDom2","document","focusIsDropped","insideEl","ae","activeElement","body","documentElement","contains","useCaptureOnOpen","open","prevRef","wasOpenRef","generationRef","current","restoreLater","delayMs","insideRef","skipReturnFocusRef","generation","restore","restore2","_ref","target","isConnected","focus","preventScroll","focusVisible","requestAnimationFrame","setTimeout","useReturnFocusOnClose","knobProps","restoreDelayMsRef","motion","scrim","transition","useSheetModalFocus","frameRef","frame","addEventListener","focusIn","focusIn2","first","querySelector","innerRaf","raf","onKeyDown","onKeyDown2","e","key","focusables","Array","from","querySelectorAll","filter","el","offsetWidth","offsetHeight","length","preventDefault","last","shiftKey","cancelAnimationFrame","removeEventListener"],"sources":["../../../src/shared/focusManagement.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { useEffect, useRef } from "react";
2
2
  import { isWeb } from "tamagui";
3
- function useSheetEscapeDismiss(enabled, onDismiss) {
3
+ function useSheetEscapeDismiss(enabled, onDismiss, target = "window") {
4
4
  const onDismissRef = useRef(onDismiss);
5
5
  onDismissRef.current = onDismiss;
6
6
  useEffect(() => {
@@ -9,9 +9,10 @@ function useSheetEscapeDismiss(enabled, onDismiss) {
9
9
  if (event.key !== "Escape" || event.defaultPrevented) return;
10
10
  onDismissRef.current();
11
11
  };
12
- window.addEventListener("keydown", onKeyDown);
13
- return () => window.removeEventListener("keydown", onKeyDown);
14
- }, [enabled]);
12
+ const node = target === "document" ? document : window;
13
+ node.addEventListener("keydown", onKeyDown);
14
+ return () => node.removeEventListener("keydown", onKeyDown);
15
+ }, [enabled, target]);
15
16
  }
16
17
  export { useSheetEscapeDismiss };
17
18
  //# sourceMappingURL=useSheetEscapeDismiss.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","isWeb","useSheetEscapeDismiss","enabled","onDismiss","onDismissRef","current","onKeyDown","event","key","defaultPrevented","window","addEventListener","removeEventListener"],"sources":["../../../src/shared/useSheetEscapeDismiss.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAClC,SAASC,KAAA,QAAa;AAYf,SAASC,sBAAsBC,OAAA,EAAkBC,SAAA,EAAuB;EAC7E,MAAMC,YAAA,GAAeL,MAAA,CAAOI,SAAS;EACrCC,YAAA,CAAaC,OAAA,GAAUF,SAAA;EACvBL,SAAA,CAAU,MAAM;IACd,IAAI,CAACE,KAAA,IAAS,CAACE,OAAA,EAAS;IACxB,MAAMI,SAAA,GAAaC,KAAA,IAAyB;MAC1C,IAAIA,KAAA,CAAMC,GAAA,KAAQ,YAAYD,KAAA,CAAME,gBAAA,EAAkB;MACtDL,YAAA,CAAaC,OAAA,CAAQ;IACvB;IACAK,MAAA,CAAOC,gBAAA,CAAiB,WAAWL,SAAS;IAC5C,OAAO,MAAMI,MAAA,CAAOE,mBAAA,CAAoB,WAAWN,SAAS;EAC9D,GAAG,CAACJ,OAAO,CAAC;AACd","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","isWeb","useSheetEscapeDismiss","enabled","onDismiss","target","onDismissRef","current","onKeyDown","event","key","defaultPrevented","node","document","window","addEventListener","removeEventListener"],"sources":["../../../src/shared/useSheetEscapeDismiss.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAClC,SAASC,KAAA,QAAa;AAYf,SAASC,sBACdC,OAAA,EACAC,SAAA,EACAC,MAAA,GAAgC,UAChC;EACA,MAAMC,YAAA,GAAeN,MAAA,CAAOI,SAAS;EACrCE,YAAA,CAAaC,OAAA,GAAUH,SAAA;EACvBL,SAAA,CAAU,MAAM;IACd,IAAI,CAACE,KAAA,IAAS,CAACE,OAAA,EAAS;IACxB,MAAMK,SAAA,GAAaC,KAAA,IAAyB;MAC1C,IAAIA,KAAA,CAAMC,GAAA,KAAQ,YAAYD,KAAA,CAAME,gBAAA,EAAkB;MACtDL,YAAA,CAAaC,OAAA,CAAQ;IACvB;IACA,MAAMK,IAAA,GAAOP,MAAA,KAAW,aAAaQ,QAAA,GAAWC,MAAA;IAChDF,IAAA,CAAKG,gBAAA,CAAiB,WAAWP,SAA0B;IAC3D,OAAO,MAAMI,IAAA,CAAKI,mBAAA,CAAoB,WAAWR,SAA0B;EAC7E,GAAG,CAACL,OAAA,EAASE,MAAM,CAAC;AACtB","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import { useEffect, useRef } from "react";
2
2
  import { isWeb } from "tamagui";
3
3
  function useSheetEscapeDismiss(enabled, onDismiss) {
4
+ var target = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "window";
4
5
  var onDismissRef = useRef(onDismiss);
5
6
  onDismissRef.current = onDismiss;
6
7
  useEffect(function () {
@@ -9,11 +10,12 @@ function useSheetEscapeDismiss(enabled, onDismiss) {
9
10
  if (event.key !== "Escape" || event.defaultPrevented) return;
10
11
  onDismissRef.current();
11
12
  };
12
- window.addEventListener("keydown", onKeyDown);
13
+ var node = target === "document" ? document : window;
14
+ node.addEventListener("keydown", onKeyDown);
13
15
  return function () {
14
- return window.removeEventListener("keydown", onKeyDown);
16
+ return node.removeEventListener("keydown", onKeyDown);
15
17
  };
16
- }, [enabled]);
18
+ }, [enabled, target]);
17
19
  }
18
20
  export { useSheetEscapeDismiss };
19
21
  //# sourceMappingURL=useSheetEscapeDismiss.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","isWeb","useSheetEscapeDismiss","enabled","onDismiss","onDismissRef","current","onKeyDown","onKeyDown2","event","key","defaultPrevented","window","addEventListener","removeEventListener"],"sources":["../../../src/shared/useSheetEscapeDismiss.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAClC,SAASC,KAAA,QAAa;AAYf,SAASC,sBAAsBC,OAAA,EAAkBC,SAAA,EAAuB;EAC7E,IAAAC,YAAM,GAAAL,MAAe,CAAAI,SAAO;EAC5BC,YAAA,CAAaC,OAAA,GAAUF,SAAA;EACvBL,SAAA,CAAU,YAAM;IACd,IAAI,CAACE,KAAA,IAAS,CAACE,OAAA,EAAS;IACxB,IAAAI,SAAM,YAAaC,UAAyBA,CAAAC,KAAA;MAC1C,IAAIA,KAAA,CAAMC,GAAA,KAAQ,YAAYD,KAAA,CAAME,gBAAA,EAAkB;MACtDN,YAAA,CAAaC,OAAA,CAAQ;IACvB;IACAM,MAAA,CAAOC,gBAAA,CAAiB,WAAWN,SAAS;IAC5C,OAAO,YAAM;MACX,OAAOK,MAAC,CAAAE,mBAAA,YAAAP,SAAA;IACd","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","isWeb","useSheetEscapeDismiss","enabled","onDismiss","target","arguments","length","onDismissRef","current","onKeyDown","onKeyDown2","event","key","defaultPrevented","node","document","window","addEventListener","removeEventListener"],"sources":["../../../src/shared/useSheetEscapeDismiss.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,MAAA,QAAc;AAClC,SAASC,KAAA,QAAa;AAYf,SAASC,sBACdC,OAAA,EACAC,SAAA,EACA;EAEA,IAAAC,MAAM,GAAAC,SAAe,CAAAC,MAAO,QAASD,SAAA,iBAAAA,SAAA;EACrC,IAAAE,YAAa,GAAAR,MAAU,CAAAI,SAAA;EACvBI,YAAU,CAAAC,OAAM,GAAAL,SAAA;EACdL,SAAK,aAAU;IACf,KAAAE,KAAM,KAAAE,OAAa;IACjB,IAAAO,SAAU,YAAQC,UAAYA,CAAAC,KAAM;MACpC,IAAAA,KAAA,CAAAC,GAAa,aAAQ,IAAAD,KAAA,CAAAE,gBAAA;MACvBN,YAAA,CAAAC,OAAA;IACA;IACA,IAAAM,IAAK,GAAAV,MAAA,KAAiB,aAAWW,QAA0B,GAAAC,MAAA;IAC3DF,IAAA,CAAAG,gBAAkB,YAAAR,SAAoB;IACxC,OAAI,YAAgB;MACtB,OAAAK,IAAA,CAAAI,mBAAA,YAAAT,SAAA","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { transitionProps } from "@multiplatform.one/theme";
2
- import { useCallback, useEffect, useLayoutEffect, useRef, useState, useSyncExternalStore } from "react";
3
- import { OVERLAY_ANCHOR_GAP, OVERLAY_ATTACH_GAP, OVERLAY_BREAKPOINT, Surface, useResolvedKnobs, wasKeyboardFocus, ensureKeyboardModalityTracking } from "@multiplatform.one/theme";
2
+ import { cloneElement, isValidElement, useCallback, useEffect, useLayoutEffect, useRef, useState, useSyncExternalStore } from "react";
3
+ import { OVERLAY_ANCHOR_GAP, OVERLAY_ATTACH_GAP, OVERLAY_BREAKPOINT, Surface, useResolvedKnobs, wasKeyboardFocus, ensureKeyboardModalityTracking, motionDurationMs } from "@multiplatform.one/theme";
4
4
  import { isWeb, Sheet, View, YStack } from "tamagui";
5
5
  import { useClick, useDismiss, useInteractions } from "@floating-ui/react";
6
6
  import { ScrollArrow } from "../shared/floatingList.mjs";
@@ -71,8 +71,10 @@ function fixedContainingBlockOrigin(element) {
71
71
  left: 0
72
72
  };
73
73
  }
74
- function isRtl() {
75
- return isWeb && typeof document !== "undefined" && document.documentElement.getAttribute("dir") === "rtl";
74
+ function isRtl(element) {
75
+ if (!isWeb || typeof document === "undefined") return false;
76
+ const direction = element ? getComputedStyle(element).direction : "";
77
+ return direction ? direction === "rtl" : (element?.closest("[dir]") ?? document.documentElement).getAttribute("dir") === "rtl";
76
78
  }
77
79
  function panelTransformOrigin(placement) {
78
80
  const rtl = isRtl();
@@ -84,37 +86,76 @@ function panelTransformOrigin(placement) {
84
86
  const ECHO_STRIPPED_ATTRIBUTES = ["id", "for", "name", "data-testid", "aria-label", "aria-controls", "aria-labelledby", "aria-describedby", "aria-activedescendant"];
85
87
  function TriggerEchoRow({
86
88
  sourceRef,
87
- onPress
89
+ onPress,
90
+ children,
91
+ anchorRect,
92
+ source
88
93
  }) {
89
94
  const rowRef = useRef(null);
95
+ const visualRef = useRef(null);
90
96
  useLayoutEffect(() => {
91
97
  const row = rowRef.current;
92
- const source = sourceRef.current;
93
- if (!row || !source || typeof source.cloneNode !== "function") return;
94
- const snapshot = source.cloneNode(true);
95
- const sourceFields = source.querySelectorAll("input, textarea");
96
- const snapshotFields = snapshot.querySelectorAll("input, textarea");
97
- sourceFields.forEach((field, index) => {
98
- const copy = snapshotFields[index];
99
- if (copy) copy.value = field.value;
100
- });
101
- for (const node of [snapshot, ...Array.from(snapshot.querySelectorAll("*"))]) {
102
- for (const name of ECHO_STRIPPED_ATTRIBUTES) node.removeAttribute(name);
103
- if (node.hasAttribute("tabindex") || node.matches("input, textarea, button, a, select")) {
104
- node.setAttribute("tabindex", "-1");
98
+ const source2 = sourceRef.current;
99
+ if (!row || !source2 || typeof source2.cloneNode !== "function") return;
100
+ const sync = () => {
101
+ const control = source2.matches(PANEL_FOCUSABLE) ? source2 : source2.querySelector(PANEL_FOCUSABLE);
102
+ const labelledBy = control?.getAttribute("aria-labelledby");
103
+ const label = control?.getAttribute("aria-label") || labelledBy?.split(/\s+/).map(id => document.getElementById(id)?.textContent || "").join(" ") || control?.textContent || source2.textContent || "";
104
+ row.setAttribute("aria-label", label);
105
+ const rect = anchorRect ?? source2.getBoundingClientRect();
106
+ row.style.width = `${rect.width}px`;
107
+ row.style.height = `${rect.height}px`;
108
+ const rtl = isRtl(source2);
109
+ row.style.alignSelf = "flex-start";
110
+ const frameStyle = row.parentElement ? getComputedStyle(row.parentElement) : null;
111
+ row.style.marginTop = `${-(parseFloat(frameStyle?.borderTopWidth || "0") || 0)}px`;
112
+ row.style.position = "sticky";
113
+ row.style.top = row.style.marginTop;
114
+ row.style.zIndex = "1";
115
+ row.style.marginLeft = rtl ? "" : `${-(parseFloat(frameStyle?.borderLeftWidth || "0") || 0)}px`;
116
+ row.style.marginRight = rtl ? `${-(parseFloat(frameStyle?.borderRightWidth || "0") || 0)}px` : "";
117
+ const snapshot = children == null ? source2.cloneNode(true) : visualRef.current;
118
+ if (!snapshot) return;
119
+ const sourceFields = source2.querySelectorAll("input, textarea");
120
+ const snapshotFields = snapshot.querySelectorAll("input, textarea");
121
+ sourceFields.forEach((field, index) => {
122
+ const copy = snapshotFields[index];
123
+ if (copy) copy.value = field.value;
124
+ });
125
+ for (const node of [snapshot, ...Array.from(snapshot.querySelectorAll("*"))]) {
126
+ for (const name of ECHO_STRIPPED_ATTRIBUTES) node.removeAttribute(name);
127
+ if (node.hasAttribute("tabindex") || node.matches("input, textarea, button, a, select")) {
128
+ node.setAttribute("tabindex", "-1");
129
+ }
105
130
  }
106
- }
107
- snapshot.setAttribute("inert", "");
108
- row.replaceChildren(snapshot);
109
- });
131
+ snapshot.setAttribute("inert", "");
132
+ snapshot.setAttribute("aria-hidden", "true");
133
+ if (children == null) visualRef.current?.replaceChildren(snapshot);
134
+ };
135
+ sync();
136
+ if (typeof ResizeObserver === "undefined") return;
137
+ const observer = new ResizeObserver(sync);
138
+ observer.observe(source2);
139
+ return () => observer.disconnect();
140
+ }, [sourceRef, source, children, anchorRect]);
110
141
  return /* @__PURE__ */jsx(View, {
111
142
  ref: rowRef,
112
143
  "data-fp-trigger-row": "",
113
- "aria-hidden": true,
144
+ role: "button",
145
+ "aria-expanded": true,
146
+ tabIndex: -1,
114
147
  cursor: "pointer",
115
148
  onPress,
116
149
  flexShrink: 0,
117
- pointerEvents: "auto"
150
+ pointerEvents: "auto",
151
+ children: /* @__PURE__ */jsx(View, {
152
+ ref: visualRef,
153
+ pointerEvents: "none",
154
+ "aria-hidden": true,
155
+ children: isValidElement(children) ? cloneElement(children, {
156
+ ref: null
157
+ }) : children
158
+ })
118
159
  });
119
160
  }
120
161
  const overlayFloatBreakpoint = OVERLAY_BREAKPOINT;
@@ -136,6 +177,7 @@ function FloatingPanel(props) {
136
177
  const shouldUseSheet = props.sheet ?? (!isWeb || !viewportGtSm);
137
178
  const panelProps = {
138
179
  ...props,
180
+ cover: props.anchorMode ? props.anchorMode === "cover-trigger" : props.cover,
139
181
  children: /* @__PURE__ */jsx(Surface, {
140
182
  painted: false,
141
183
  children: props.children
@@ -176,7 +218,8 @@ function FloatingPanelSheet({
176
218
  transition: transitionProp,
177
219
  header,
178
220
  scrollViewProps,
179
- openOn = "press"
221
+ openOn = "press",
222
+ escapeTarget = "window"
180
223
  }) {
181
224
  const {
182
225
  knobProps
@@ -197,7 +240,7 @@ function FloatingPanelSheet({
197
240
  if (next) setPosition(0);
198
241
  onOpenChange(next);
199
242
  };
200
- useSheetEscapeDismiss(open, () => handleOpenChange(false));
243
+ useSheetEscapeDismiss(open, () => handleOpenChange(false), escapeTarget);
201
244
  const sheetFrameRef = useRef(null);
202
245
  useParkedFrameInert(open, sheetFrameRef);
203
246
  useSheetModalFocus(open, sheetFrameRef, skipReturnFocusRef);
@@ -218,7 +261,7 @@ function FloatingPanelSheet({
218
261
  onClickCapture: openFromTrigger
219
262
  } : void 0;
220
263
  return /* @__PURE__ */jsxs(Fragment, {
221
- children: [/* @__PURE__ */jsxs(View, {
264
+ children: [trigger != null && /* @__PURE__ */jsxs(View, {
222
265
  flexDirection: "row",
223
266
  alignItems: "center",
224
267
  width: triggerSizing === "content" ? "auto" : "100%",
@@ -254,6 +297,7 @@ function FloatingPanelSheet({
254
297
  opacity: 0
255
298
  }
256
299
  }), /* @__PURE__ */jsx(Sheet.Handle, {}), /* @__PURE__ */jsxs(Sheet.Frame, {
300
+ "data-testid": "floating-panel-sheet",
257
301
  ...{
258
302
  ref: sheetFrameRef,
259
303
  tabIndex: -1
@@ -286,8 +330,12 @@ function FloatingPanelWeb({
286
330
  contentPadding = "default",
287
331
  openOn = "press",
288
332
  cover = true,
289
- triggerEcho = true
333
+ triggerEcho = true,
334
+ triggerRow,
335
+ anchorRect,
336
+ ...sheetProps
290
337
  }) {
338
+ const [collisionSheet, setCollisionSheet] = useState(false);
291
339
  const isFill = sizing === "fill";
292
340
  const isContextMenu = openOn === "contextmenu";
293
341
  const overlayStyleRef = useRef(null);
@@ -313,7 +361,7 @@ function FloatingPanelWeb({
313
361
  pointPlacementRef.current = null;
314
362
  };
315
363
  const panel = useFloatingPanel({
316
- open,
364
+ open: open && !collisionSheet,
317
365
  onOpenChange,
318
366
  disabled,
319
367
  repositionRef: repositionFnRef,
@@ -324,13 +372,18 @@ function FloatingPanelWeb({
324
372
  cover,
325
373
  onBeforeOpen: resetPosition
326
374
  });
327
- useReturnFocusOnClose(open, skipReturnFocusRef);
328
- useKeyboardFocusIntoPanel(open && panel.mounted, panel.refs.floating, keyboardOpenRef);
375
+ useReturnFocusOnClose(open, skipReturnFocusRef, panel.refs.floating);
376
+ useKeyboardFocusIntoPanel(open && panel.mounted && !collisionSheet, panel.refs.floating, keyboardOpenRef);
329
377
  useEffect(() => {
330
378
  if (open) return;
331
379
  keyboardOpenRef.current = false;
332
380
  anchorPointRef.current = null;
333
381
  }, [open]);
382
+ useEffect(() => {
383
+ if (open || !collisionSheet) return;
384
+ const timer = setTimeout(() => setCollisionSheet(false), motionDurationMs(panel.knobProps.motion.slide.transition));
385
+ return () => clearTimeout(timer);
386
+ }, [open, collisionSheet, panel.knobProps.motion.slide.transition]);
334
387
  const repositionOverlay = useCallback(() => {
335
388
  const dropdownElement = panel.refs.floating.current;
336
389
  const trig = panel.triggerRef.current;
@@ -341,10 +394,17 @@ function FloatingPanelWeb({
341
394
  dropdownElement.scrollTop = 0;
342
395
  }
343
396
  const point = isContextMenu ? anchorPointRef.current ?? referenceCornerPoint(trig, isRtl()) : null;
397
+ const measured = anchorRect ? {
398
+ ...anchorRect,
399
+ top: anchorRect.y,
400
+ left: anchorRect.x,
401
+ right: anchorRect.x + anchorRect.width,
402
+ bottom: anchorRect.y + anchorRect.height
403
+ } : trig.getBoundingClientRect();
344
404
  const triggerBounds = point ? {
345
405
  top: point.y,
346
406
  bottom: point.y
347
- } : trig.getBoundingClientRect();
407
+ } : measured;
348
408
  const viewportHeight = window.innerHeight;
349
409
  const cs = getComputedStyle(dropdownElement);
350
410
  const borderTopWidth = parseFloat(cs.borderTopWidth) || 0;
@@ -354,6 +414,46 @@ function FloatingPanelWeb({
354
414
  const totalContentHeight = scrollContentHeight + totalBorderWidth;
355
415
  const liveTransition = panel.panelTransition;
356
416
  const containingBlock = fixedContainingBlockOrigin(dropdownElement);
417
+ if (cover && !point) {
418
+ const rtl = isRtl(trig);
419
+ const viewport = window.visualViewport;
420
+ const viewportLeft = viewport?.offsetLeft ?? 0;
421
+ const viewportTop = viewport?.offsetTop ?? 0;
422
+ const viewportRight = viewportLeft + (viewport?.width ?? (document.documentElement.clientWidth || window.innerWidth));
423
+ const viewportBottom = viewportTop + (viewport?.height ?? window.innerHeight);
424
+ dropdownElement.style.left = `${viewportLeft - containingBlock.left}px`;
425
+ const layoutStyle = getComputedStyle(dropdownElement);
426
+ const scale = layoutStyle.transform && layoutStyle.transform !== "none" && typeof DOMMatrixReadOnly !== "undefined" ? Math.abs(new DOMMatrixReadOnly(layoutStyle.transform).a) : 1;
427
+ const layoutWidth = dropdownElement.getBoundingClientRect().width / (scale || 1);
428
+ const width = Math.max(layoutWidth || dropdownElement.offsetWidth, measured.width);
429
+ const left = rtl ? measured.right - width : measured.left;
430
+ const firstActionHeight = contentRef.current?.querySelector(PANEL_FOCUSABLE)?.getBoundingClientRect().height || Number(panel.knobProps.menuRow.minHeight) || totalContentHeight;
431
+ const bodyStyle = contentRef.current ? getComputedStyle(contentRef.current) : null;
432
+ const bodyPadding = (parseFloat(bodyStyle?.paddingTop || "0") || 0) + (parseFloat(bodyStyle?.paddingBottom || "0") || 0);
433
+ const neededHeight = sheetProps.scrollable ? Math.min(totalContentHeight, measured.height + firstActionHeight + bodyPadding + totalBorderWidth) : totalContentHeight;
434
+ if (measured.width > 0 && measured.height > 0 && (left < viewportLeft || left + width > Math.max(measured.right, viewportRight - panelViewportPadding) || measured.right > viewportRight || measured.top < viewportTop || measured.top + Math.max(neededHeight, measured.height) > viewportBottom - panelViewportPadding)) {
435
+ dropdownElement.style.visibility = "hidden";
436
+ setCollisionSheet(true);
437
+ return;
438
+ }
439
+ const top2 = measured.top - containingBlock.top;
440
+ const cssLeft2 = left - containingBlock.left;
441
+ const maxHeight = Math.max(0, viewportBottom - panelViewportPadding - measured.top);
442
+ dropdownElement.style.top = `${top2}px`;
443
+ dropdownElement.style.left = `${cssLeft2}px`;
444
+ dropdownElement.style.maxHeight = `${maxHeight}px`;
445
+ dropdownElement.dir = rtl ? "rtl" : "ltr";
446
+ dropdownElement.style.transformOrigin = rtl ? "top right" : "top left";
447
+ dropdownElement.style.visibility = "visible";
448
+ overlayStyleRef.current = {
449
+ top: top2,
450
+ left: cssLeft2,
451
+ maxHeight
452
+ };
453
+ panel.initializingRef.current = false;
454
+ if (isInitial) dropdownElement.style.transition = liveTransition;
455
+ return;
456
+ }
357
457
  let isDropup = panel.placement.startsWith("top");
358
458
  let cssLeft;
359
459
  if (point) {
@@ -474,13 +574,14 @@ function FloatingPanelWeb({
474
574
  });
475
575
  }
476
576
  });
477
- }, [isFill, isContextMenu, cover, panel.placement, panel.refs, panel.triggerRef, panel.updateArrows, panel.panelTransition]);
577
+ }, [isFill, isContextMenu, cover, anchorRect, sheetProps.scrollable, panel.placement, panel.refs, panel.triggerRef, panel.updateArrows, panel.panelTransition]);
478
578
  repositionFnRef.current = repositionOverlay;
479
579
  const click = useClick(panel.context, {
480
580
  event: "mousedown",
481
- enabled: !isContextMenu
581
+ enabled: !isContextMenu && !collisionSheet
482
582
  });
483
583
  const dismiss = useDismiss(panel.context, {
584
+ enabled: !collisionSheet,
484
585
  // Use 'click' instead of default 'pointerdown' so scrolling to the bottom
485
586
  // (e.g. via wheel/trackpad or scroll arrow hover) doesn't trigger outside-press.
486
587
  outsidePressEvent: "click",
@@ -495,10 +596,10 @@ function FloatingPanelWeb({
495
596
  useLayoutEffect(() => {
496
597
  if (!open || !panel.mounted) return;
497
598
  repositionOverlay();
498
- }, [open, panel.mounted, repositionOverlay, panel.y]);
599
+ }, [open, panel.mounted, repositionOverlay, panel.y, panel.x]);
499
600
  useLayoutEffect(() => {
500
601
  const content = contentRef.current;
501
- if (!open || !panel.mounted || !isFill || !content || typeof ResizeObserver === "undefined") {
602
+ if (!open || !panel.mounted || !isFill && !cover || !content || typeof ResizeObserver === "undefined") {
502
603
  return;
503
604
  }
504
605
  let frame = 0;
@@ -510,15 +611,16 @@ function FloatingPanelWeb({
510
611
  });
511
612
  });
512
613
  observer.observe(content);
614
+ if (panel.triggerRef.current) observer.observe(panel.triggerRef.current);
513
615
  return () => {
514
616
  observer.disconnect();
515
617
  if (frame) cancelAnimationFrame(frame);
516
618
  };
517
- }, [open, panel.mounted, isFill, repositionOverlay]);
619
+ }, [open, panel.mounted, isFill, cover, repositionOverlay, panel.triggerRef]);
518
620
  const handleScroll = useCallback(event => {
519
621
  const el = event.target;
520
622
  panel.updateArrows(el);
521
- if (isFill) return;
623
+ if (isFill || cover && !isContextMenu) return;
522
624
  if (panel.initializingRef.current) {
523
625
  lastScrollTopRef.current = el.scrollTop;
524
626
  return;
@@ -541,7 +643,7 @@ function FloatingPanelWeb({
541
643
  grownRef.current = true;
542
644
  repositionFnRef.current?.();
543
645
  }
544
- }, [isFill, panel.updateArrows]);
646
+ }, [isFill, cover, isContextMenu, panel.updateArrows]);
545
647
  const webTransition = panel.panelTransition;
546
648
  const {
547
649
  style: elevatedSurfaceStyle,
@@ -596,11 +698,21 @@ function FloatingPanelWeb({
596
698
  return /* @__PURE__ */jsxs(Fragment, {
597
699
  children: [/* @__PURE__ */jsx(View, {
598
700
  ...referenceProps,
701
+ alignSelf: sheetProps.triggerSizing === "content" ? "flex-start" : void 0,
599
702
  cursor: disabled ? "not-allowed" : "pointer",
600
703
  opacity: disabled ? 0.5 : 1,
601
704
  "data-fp-reference": "",
602
705
  children: trigger
603
- }), panel.mounted && /* @__PURE__ */jsx(PanelPortal, {
706
+ }), collisionSheet && /* @__PURE__ */jsx(FloatingPanelSheet, {
707
+ ...sheetProps,
708
+ open,
709
+ onOpenChange,
710
+ trigger: null,
711
+ escapeTarget: "document",
712
+ skipReturnFocusRef,
713
+ contentPadding,
714
+ children
715
+ }), panel.mounted && !collisionSheet && /* @__PURE__ */jsx(PanelPortal, {
604
716
  anchor: panel.triggerRef.current,
605
717
  children: /* @__PURE__ */jsxs(YStack, {
606
718
  ...getFloatingProps({
@@ -613,6 +725,9 @@ function FloatingPanelWeb({
613
725
  scrollbarWidth: "none",
614
726
  zIndex: zIndex.dropdown,
615
727
  overflow: "auto",
728
+ ...(cover && !isContextMenu ? {
729
+ overflowX: "hidden"
730
+ } : {}),
616
731
  ...panel.floatingStyleRef.current,
617
732
  ...(overlayStyleRef.current ? {
618
733
  maxHeight: overlayStyleRef.current.maxHeight
@@ -623,7 +738,7 @@ function FloatingPanelWeb({
623
738
  // then positions against this box and is clipped by its scroll.
624
739
  transform: panel.visible ? "none" : "scale(0.96)",
625
740
  transition: webTransition,
626
- transformOrigin: panelTransformOrigin(pointPlacementRef.current ? `${pointPlacementRef.current.dropup ? "top" : "bottom"}-${pointPlacementRef.current.alignEnd ? "end" : "start"}` : panel.placement)
741
+ 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)
627
742
  },
628
743
  onScroll: handleScroll,
629
744
  onTransitionEnd: event => {
@@ -641,7 +756,10 @@ function FloatingPanelWeb({
641
756
  paddingVertical: 0,
642
757
  children: [isContextMenu || !cover || !triggerEcho ? null : /* @__PURE__ */jsx(TriggerEchoRow, {
643
758
  sourceRef: panel.triggerRef,
644
- onPress: () => onOpenChange(false)
759
+ source: trigger,
760
+ anchorRect,
761
+ onPress: () => onOpenChange(false),
762
+ children: triggerRow
645
763
  }), /* @__PURE__ */jsx(ScrollArrow, {
646
764
  direction: "up",
647
765
  scrollRef: panel.refs.floating,