@lodev09/react-native-true-sheet 4.0.0-beta.14 → 4.0.0-beta.15

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 (54) hide show
  1. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +28 -6
  2. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +99 -7
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +12 -0
  4. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +18 -7
  5. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +40 -39
  6. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +18 -8
  7. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +14 -8
  8. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +8 -1
  9. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +32 -5
  10. package/ios/TrueSheetContainerView.h +17 -4
  11. package/ios/TrueSheetContainerView.mm +23 -6
  12. package/ios/TrueSheetContentView.h +13 -1
  13. package/ios/TrueSheetContentView.mm +93 -35
  14. package/ios/TrueSheetFooterView.mm +19 -5
  15. package/ios/TrueSheetView.mm +29 -28
  16. package/ios/TrueSheetViewController.h +21 -1
  17. package/ios/TrueSheetViewController.mm +54 -16
  18. package/ios/core/TrueSheetDetentCalculator.h +6 -1
  19. package/ios/core/TrueSheetDetentCalculator.mm +9 -4
  20. package/ios/core/TrueSheetKeyboardObserver.mm +2 -0
  21. package/lib/module/TrueSheet.js +8 -5
  22. package/lib/module/TrueSheet.js.map +1 -1
  23. package/lib/module/TrueSheet.web.js +135 -32
  24. package/lib/module/TrueSheet.web.js.map +1 -1
  25. package/lib/module/TrueSheetPeek.web.js +20 -15
  26. package/lib/module/TrueSheetPeek.web.js.map +1 -1
  27. package/lib/module/fabric/TrueSheetViewNativeComponent.ts +5 -3
  28. package/lib/module/navigation/expo-router/index.js +5 -4
  29. package/lib/module/navigation/expo-router/index.js.map +1 -1
  30. package/lib/module/web/constants.js +1 -1
  31. package/lib/module/web/constants.js.map +1 -1
  32. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  33. package/lib/typescript/src/TrueSheet.types.d.ts +64 -25
  34. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
  35. package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
  36. package/lib/typescript/src/TrueSheetPeek.web.d.ts +8 -4
  37. package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
  38. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +5 -3
  39. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
  40. package/lib/typescript/src/navigation/expo-router/index.d.ts +5 -3
  41. package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -1
  42. package/lib/typescript/src/navigation/types.d.ts +1 -1
  43. package/lib/typescript/src/navigation/types.d.ts.map +1 -1
  44. package/lib/typescript/src/web/constants.d.ts +1 -1
  45. package/lib/typescript/src/web/constants.d.ts.map +1 -1
  46. package/package.json +7 -6
  47. package/src/TrueSheet.tsx +7 -4
  48. package/src/TrueSheet.types.ts +67 -25
  49. package/src/TrueSheet.web.tsx +154 -30
  50. package/src/TrueSheetPeek.web.tsx +25 -23
  51. package/src/fabric/TrueSheetViewNativeComponent.ts +5 -3
  52. package/src/navigation/expo-router/index.ts +8 -11
  53. package/src/navigation/types.ts +3 -2
  54. package/src/web/constants.ts +1 -1
@@ -119,6 +119,7 @@ static char TrueSheetAccessibilityWindowPreviousElementsKey;
119
119
  _grabber = YES;
120
120
  _draggable = YES;
121
121
  _scrollingExpandsSheet = YES;
122
+ _footerAvoidsKeyboard = YES;
122
123
  _dismissible = YES;
123
124
  _dimmed = YES;
124
125
  _dimmedDetentIndex = @(0);
@@ -268,7 +269,6 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
268
269
  * unpadded.
269
270
  */
270
271
  - (CGFloat)maxNaturalDetentHeight {
271
- CGFloat applied = [self.footerHeight floatValue] > 0 ? _appliedFooterBottomInset : 0;
272
272
  CGFloat maxHeight = 0;
273
273
 
274
274
  for (id detent in self.detents) {
@@ -279,11 +279,9 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
279
279
  CGFloat value = [detent doubleValue];
280
280
  CGFloat height = 0;
281
281
  if (value == -1) {
282
- // Auto counts a relative footer's (padded) height
283
- height = [_detentCalculator autoHeight] - (_absoluteFooter ? 0 : applied);
282
+ height = [_detentCalculator autoHeightForKeyboardHeight:0] - [self autoDetentBottomInset];
284
283
  } else if (value == -2) {
285
- // Peek counts an absolute footer's (padded) height
286
- height = [_detentCalculator peekHeight] - (_absoluteFooter ? applied : 0);
284
+ height = [_detentCalculator peekHeight] - [self peekDetentBottomInset];
287
285
  } else if (value > 0 && value <= 1) {
288
286
  height = value * self.screenHeight;
289
287
  }
@@ -331,14 +329,27 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
331
329
  return [self bottomSafeAreaForHeight:[self maxNaturalDetentHeight]];
332
330
  }
333
331
 
332
+ // Re-resolve alongside the keyboard animation as its overlap with the pinned
333
+ // footer changes, including keyboard height changes while already visible.
334
+ - (void)setKeyboardHeight:(CGFloat)keyboardHeight {
335
+ if (_keyboardHeight == keyboardHeight) {
336
+ return;
337
+ }
338
+ _keyboardHeight = keyboardHeight;
339
+
340
+ if (_footerInsetAdjustment && !_footerAvoidsKeyboard && self.isPresented) {
341
+ [self setupSheetDetentsForSizeChange];
342
+ }
343
+ }
344
+
334
345
  /**
335
- * Bottom inset excluded from the auto detent. A relative footer owns the
336
- * sheet's bottom edge and carries the inset in its height (see
337
- * footerBottomInset) — subtract exactly what was baked in so UIKit's own
338
- * safe-area layout doesn't double it.
346
+ * Bottom inset excluded from the auto detent. A relative footer (or an
347
+ * absolute one padding the scrollable) owns the sheet's bottom edge and
348
+ * carries the inset in its height (see footerBottomInset) — subtract exactly
349
+ * what was baked in so UIKit's own safe-area layout doesn't double it.
339
350
  */
340
351
  - (CGFloat)autoDetentBottomInset {
341
- if (_absoluteFooter || [self.footerHeight floatValue] <= 0) {
352
+ if ((_absoluteFooter && !self.footerInsetAdjustment) || [self.footerHeight floatValue] <= 0) {
342
353
  return 0;
343
354
  }
344
355
 
@@ -689,8 +700,10 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
689
700
  }
690
701
 
691
702
  // Dismissing with the keyboard up skips the hide notification — don't let
692
- // the stale flag block learning on the next present.
703
+ // the stale flag block learning on the next present, or a stale height keep
704
+ // the footer out of the auto detent.
693
705
  _keyboardSheetGrown = NO;
706
+ _keyboardHeight = 0;
694
707
 
695
708
  [self emitDidDismissEvents];
696
709
  }
@@ -1171,7 +1184,7 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
1171
1184
  */
1172
1185
  - (void)setupSheetDetentsForSizeChange {
1173
1186
  if (@available(iOS 16.0, *)) {
1174
- CGFloat autoHeight = [_detentCalculator autoHeight];
1187
+ CGFloat autoHeight = [_detentCalculator autoHeightForKeyboardHeight:_keyboardHeight];
1175
1188
  CGFloat peekHeight = [_detentCalculator peekHeight];
1176
1189
 
1177
1190
  if (fabs(autoHeight - _autoDetentHeight) < 0.5 && fabs(peekHeight - _peekDetentHeight) < 0.5) {
@@ -1204,7 +1217,7 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
1204
1217
  NSMutableArray<UISheetPresentationControllerDetent *> *detents = [NSMutableArray array];
1205
1218
  [_detentCalculator clearResolvedHeights];
1206
1219
 
1207
- _autoDetentHeight = [_detentCalculator autoHeight];
1220
+ _autoDetentHeight = [_detentCalculator autoHeightForKeyboardHeight:_keyboardHeight];
1208
1221
  _peekDetentHeight = [_detentCalculator peekHeight];
1209
1222
 
1210
1223
  for (NSInteger index = 0; index < self.detents.count; index++) {
@@ -1412,7 +1425,7 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
1412
1425
  #if RNTS_IPHONE_OS_VERSION_AVAILABLE(26_1) && !TARGET_OS_MACCATALYST
1413
1426
  if (@available(iOS 26.1, *)) {
1414
1427
  if (!self.isDesignCompatibilityMode) {
1415
- if (self.backgroundColor || hasBlur) {
1428
+ if (!self.glass || hasBlur) {
1416
1429
  self.sheet.backgroundEffect = [UIColorEffect effectWithColor:[UIColor clearColor]];
1417
1430
  } else {
1418
1431
  self.sheet.backgroundEffect = nil;
@@ -1513,9 +1526,24 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
1513
1526
  }
1514
1527
 
1515
1528
  - (BOOL)isAnchored {
1516
- return self.anchor == TrueSheetViewAnchor::Left || self.anchor == TrueSheetViewAnchor::Right;
1529
+ return self.placement == TrueSheetViewPlacement::Leading || self.placement == TrueSheetViewPlacement::Trailing;
1517
1530
  }
1518
1531
 
1532
+ #if RNTS_IPHONE_OS_VERSION_AVAILABLE(27_0)
1533
+ - (UISheetPresentationControllerPlacement)preferredPlacement API_AVAILABLE(ios(27.0)) {
1534
+ switch (self.placement) {
1535
+ case TrueSheetViewPlacement::Leading:
1536
+ return UISheetPresentationControllerPlacementLeading;
1537
+ case TrueSheetViewPlacement::Center:
1538
+ return UISheetPresentationControllerPlacementCenter;
1539
+ case TrueSheetViewPlacement::Trailing:
1540
+ return UISheetPresentationControllerPlacementTrailing;
1541
+ case TrueSheetViewPlacement::Automatic:
1542
+ return UISheetPresentationControllerPlacementAutomatic;
1543
+ }
1544
+ }
1545
+ #endif
1546
+
1519
1547
  - (void)setupAnchorViewInView:(UIView *)parentView {
1520
1548
  if (!parentView)
1521
1549
  return;
@@ -1523,6 +1551,16 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
1523
1551
  [_anchorView removeFromSuperview];
1524
1552
  _anchorView = nil;
1525
1553
 
1554
+ #if RNTS_IPHONE_OS_VERSION_AVAILABLE(27_0)
1555
+ // iOS 27 exposes native placement. `sourceView` must stay nil since it overrides `preferredPlacement`.
1556
+ if (@available(iOS 27.0, *)) {
1557
+ self.sheetPresentationController.sourceView = nil;
1558
+ self.sheetPresentationController.preferredPlacement = [self preferredPlacement];
1559
+ return;
1560
+ }
1561
+ #endif
1562
+
1563
+ // Pre-27 has no explicit center, so `center` falls back to the system default like `automatic`.
1526
1564
  if (!self.isAnchored) {
1527
1565
  self.sheetPresentationController.sourceView = nil;
1528
1566
  return;
@@ -1534,7 +1572,7 @@ static BOOL TrueSheetIsPhoneIdiom(void) {
1534
1572
  [parentView addSubview:_anchorView];
1535
1573
 
1536
1574
  NSLayoutAnchor *horizontalAnchor =
1537
- self.anchor == TrueSheetViewAnchor::Right ? parentView.trailingAnchor : parentView.leadingAnchor;
1575
+ self.placement == TrueSheetViewPlacement::Trailing ? parentView.trailingAnchor : parentView.leadingAnchor;
1538
1576
 
1539
1577
  [NSLayoutConstraint activateConstraints:@[
1540
1578
  [_anchorView.bottomAnchor constraintEqualToAnchor:parentView.bottomAnchor],
@@ -24,6 +24,9 @@ NS_ASSUME_NONNULL_BEGIN
24
24
  @property (nonatomic, readonly) BOOL absoluteHeader;
25
25
  @property (nonatomic, strong, readonly, nullable) NSNumber *footerHeight;
26
26
  @property (nonatomic, readonly) BOOL absoluteFooter;
27
+ @property (nonatomic, readonly) BOOL footerInsetAdjustment;
28
+ @property (nonatomic, readonly) BOOL footerAvoidsKeyboard;
29
+ @property (nonatomic, readonly) CGFloat appliedFooterBottomInset;
27
30
  @property (nonatomic, strong, readonly, nullable) NSNumber *peekContentHeight;
28
31
 
29
32
  @end
@@ -47,8 +50,10 @@ NS_ASSUME_NONNULL_BEGIN
47
50
  /**
48
51
  Returns the height for auto (-1) detents: content + header + footer height.
49
52
  An absolute (floating) header or footer contributes no height.
53
+ A pinned footer contributes only its overlap above the keyboard. UIKit adds
54
+ the keyboard expansion separately. Pass 0 for the keyboard-free height.
50
55
  */
51
- - (CGFloat)autoHeight;
56
+ - (CGFloat)autoHeightForKeyboardHeight:(CGFloat)keyboardHeight;
52
57
 
53
58
  /**
54
59
  Returns the height for peek (-2) detents: header + footer + peek content height.
@@ -19,7 +19,7 @@
19
19
  if (index >= 0 && index < (NSInteger)detents.count) {
20
20
  CGFloat value = [detents[index] doubleValue];
21
21
  if (value == -1) {
22
- return [self autoHeight] / self.delegate.screenHeight;
22
+ return [self autoHeightForKeyboardHeight:0] / self.delegate.screenHeight;
23
23
  }
24
24
  if (value == -2) {
25
25
  return [self peekHeight] / self.delegate.screenHeight;
@@ -29,10 +29,15 @@
29
29
  return 0;
30
30
  }
31
31
 
32
- - (CGFloat)autoHeight {
33
- // An absolute (floating) header or footer overlaps the content, so it contributes no height
32
+ - (CGFloat)autoHeightForKeyboardHeight:(CGFloat)keyboardHeight {
33
+ // An absolute (floating) header or footer overlaps the content, so it contributes no height —
34
+ // unless the footer pads the scrollable, then the content ends above it like a relative footer
34
35
  CGFloat headerHeight = self.delegate.absoluteHeader ? 0 : [self.delegate.headerHeight floatValue];
35
- CGFloat footerHeight = self.delegate.absoluteFooter ? 0 : [self.delegate.footerHeight floatValue];
36
+ BOOL floatingFooter = self.delegate.absoluteFooter && !self.delegate.footerInsetAdjustment;
37
+ CGFloat footerHeight = floatingFooter ? 0 : [self.delegate.footerHeight floatValue];
38
+ if (self.delegate.absoluteFooter && !floatingFooter && !self.delegate.footerAvoidsKeyboard) {
39
+ footerHeight -= MIN(keyboardHeight, MAX(0, footerHeight - self.delegate.appliedFooterBottomInset));
40
+ }
36
41
  return [self.delegate.contentHeight floatValue] + headerHeight + footerHeight;
37
42
  }
38
43
 
@@ -98,6 +98,8 @@
98
98
  });
99
99
  }
100
100
 
101
+ _viewController.keyboardHeight = keyboardHeight;
102
+
101
103
  for (id<TrueSheetKeyboardObserverDelegate> delegate in _delegates) {
102
104
  if (keyboardHeight > 0) {
103
105
  [delegate keyboardWillShow:keyboardHeight duration:duration curve:curve];
@@ -450,11 +450,12 @@ export class TrueSheet extends PureComponent {
450
450
  dimmedDetentIndex,
451
451
  backgroundBlur,
452
452
  blurOptions,
453
+ glass = true,
453
454
  cornerRadius,
454
455
  maxContentHeight,
455
456
  maxContentWidth,
456
- anchor = 'center',
457
- anchorOffset,
457
+ placement = 'automatic',
458
+ placementOffset,
458
459
  scrollableOptions,
459
460
  footerOptions,
460
461
  presentation = 'page',
@@ -517,6 +518,7 @@ export class TrueSheet extends PureComponent {
517
518
  detents: resolvedDetents,
518
519
  backgroundBlur: backgroundBlur,
519
520
  blurOptions: blurOptions,
521
+ glass: glass,
520
522
  backgroundColor: backgroundColor,
521
523
  cornerRadius: cornerRadius,
522
524
  grabber: grabber,
@@ -530,14 +532,15 @@ export class TrueSheet extends PureComponent {
530
532
  draggable: draggable,
531
533
  maxContentHeight: maxContentHeight,
532
534
  maxContentWidth: maxContentWidth,
533
- anchor: anchor,
534
- anchorOffset: anchorOffset,
535
+ placement: placement,
536
+ placementOffset: placementOffset,
535
537
  scrollableHandle: this.state.scrollableHandle ?? -1,
536
538
  scrollableOptions: scrollableOptions,
537
539
  headerOptions: headerOptions,
538
540
  footerOptions: {
539
541
  footerPosition: footerOptions?.position,
540
- keyboardOffset: footerOptions?.keyboardOffset
542
+ keyboardOffset: footerOptions?.keyboardOffset,
543
+ avoidKeyboard: footerOptions?.avoidKeyboard
541
544
  },
542
545
  presentation: presentation,
543
546
  insetAdjustment: insetAdjustment,
@@ -1 +1 @@
1
- {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","useEffect","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","BackHandler","RootTagContext","findNodeHandle","processColor","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AppContainer","__DEV__","require","default","LINKING_ERROR","select","ios","Error","stopTouchPropagation","event","stopPropagation","stopResponderNegotiation","InitialPresentGate","onReady","TrueSheet","displayName","contextType","backHandlerSubscription","isPresented","isSheetVisible","instances","presentationResolver","isPresenting","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","lazy","state","shouldRenderNativeView","initialPresentReady","scrollableHandle","onMount","bind","onWillDismiss","onDidDismiss","onDismissAttempt","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","handleBackPress","onVisibilityChange","onInitialPresentReady","setState","updateScrollableHandle","scrollableRef","current","error","console","warn","detents","length","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","present","animated","dismiss","dismissStack","resize","dismissAll","registerInstance","unregisterInstance","OS","remove","addEventListener","nativeEvent","visible","dismissible","onBackPress","Promise","resolve","presentByRef","resizeByRef","dismissByRef","dismissStackByRef","componentDidMount","componentDidUpdate","prevProps","prevInitialDetentIndex","componentWillUnmount","render","backgroundColor","draggable","grabber","grabberOptions","accessibilityOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","blurOptions","cornerRadius","maxContentHeight","maxContentWidth","anchor","anchorOffset","scrollableOptions","footerOptions","presentation","children","style","header","headerStyle","headerOptions","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","autoPresent","gatedInitialDetentIndex","cachedGrabberOptions","resolvedGrabberOptions","color","sheetContent","styles","position","absoluteHeader","autoBottomInset","absoluteFooter","relativeFooter","ref","sheetView","footerPosition","keyboardOffset","onStartShouldSetResponder","onMoveShouldSetResponder","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","container","rootTag","context","rootViewStyle","inspectorHost","internal_excludeLogBox","create","absoluteFill","zIndex","pointerEvents","display","top","left","right","marginTop","bottom"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","useEffect","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","BackHandler","RootTagContext","findNodeHandle","processColor","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AppContainer","__DEV__","require","default","LINKING_ERROR","select","ios","Error","stopTouchPropagation","event","stopPropagation","stopResponderNegotiation","InitialPresentGate","onReady","TrueSheet","displayName","contextType","backHandlerSubscription","isPresented","isSheetVisible","instances","presentationResolver","isPresenting","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","lazy","state","shouldRenderNativeView","initialPresentReady","scrollableHandle","onMount","bind","onWillDismiss","onDidDismiss","onDismissAttempt","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","handleBackPress","onVisibilityChange","onInitialPresentReady","setState","updateScrollableHandle","scrollableRef","current","error","console","warn","detents","length","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","present","animated","dismiss","dismissStack","resize","dismissAll","registerInstance","unregisterInstance","OS","remove","addEventListener","nativeEvent","visible","dismissible","onBackPress","Promise","resolve","presentByRef","resizeByRef","dismissByRef","dismissStackByRef","componentDidMount","componentDidUpdate","prevProps","prevInitialDetentIndex","componentWillUnmount","render","backgroundColor","draggable","grabber","grabberOptions","accessibilityOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","backgroundBlur","blurOptions","glass","cornerRadius","maxContentHeight","maxContentWidth","placement","placementOffset","scrollableOptions","footerOptions","presentation","children","style","header","headerStyle","headerOptions","footer","footerStyle","insetAdjustment","rest","resolvedDetents","slice","map","autoPresent","gatedInitialDetentIndex","cachedGrabberOptions","resolvedGrabberOptions","color","sheetContent","styles","position","absoluteHeader","autoBottomInset","absoluteFooter","relativeFooter","ref","sheetView","footerPosition","keyboardOffset","avoidKeyboard","onStartShouldSetResponder","onMoveShouldSetResponder","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","container","rootTag","context","rootViewStyle","inspectorHost","internal_excludeLogBox","create","absoluteFill","zIndex","pointerEvents","display","top","left","right","marginTop","bottom"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { createElement, forwardRef, isValidElement, useCallback, useEffect, useI
5
5
  import { StyleSheet, useColorScheme, useWindowDimensions, View } from 'react-native';
6
6
  import { measurePeekContentHeight, TrueSheetPeekContext } from "./TrueSheetPeek.web.js";
7
7
  import { usePortalContainer, useRegisterSheet, useSheetStack } from "./TrueSheetProvider.web.js";
8
- import { COLOR_SURFACE_CONTAINER_LOW_DARK, COLOR_SURFACE_CONTAINER_LOW_LIGHT, DEFAULT_ANCHOR_OFFSET, DEFAULT_CORNER_RADIUS, DEFAULT_DETACHED_OFFSET, DEFAULT_FORM_SHEET_HEIGHT_RATIO, DEFAULT_FORM_SHEET_WIDTH, DEFAULT_GRABBER_COLOR_DARK, DEFAULT_GRABBER_COLOR_LIGHT, DEFAULT_GRABBER_HEIGHT, DEFAULT_GRABBER_TOP_MARGIN, DEFAULT_GRABBER_WIDTH, DEFAULT_MAX_WIDTH } from "./web/constants.js";
8
+ import { COLOR_SURFACE_CONTAINER_LOW_DARK, COLOR_SURFACE_CONTAINER_LOW_LIGHT, DEFAULT_PLACEMENT_OFFSET, DEFAULT_CORNER_RADIUS, DEFAULT_DETACHED_OFFSET, DEFAULT_FORM_SHEET_HEIGHT_RATIO, DEFAULT_FORM_SHEET_WIDTH, DEFAULT_GRABBER_COLOR_DARK, DEFAULT_GRABBER_COLOR_LIGHT, DEFAULT_GRABBER_HEIGHT, DEFAULT_GRABBER_TOP_MARGIN, DEFAULT_GRABBER_WIDTH, DEFAULT_MAX_WIDTH } from "./web/constants.js";
9
9
  import { getDOMElement } from "./web/dom.js";
10
10
  import { Drawer } from "./web/vaul/index.js";
11
11
  import { DEFAULT_PEEK_HEIGHT, DRAG_CLASS, TRANSITIONS } from "./web/vaul/constants.js";
@@ -32,8 +32,8 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
32
32
  backgroundColor: backgroundColorProp,
33
33
  maxContentHeight,
34
34
  maxContentWidth,
35
- anchor = 'center',
36
- anchorOffset = DEFAULT_ANCHOR_OFFSET,
35
+ placement = 'automatic',
36
+ placementOffset = DEFAULT_PLACEMENT_OFFSET,
37
37
  scrollableRef,
38
38
  scrollableOptions,
39
39
  grabber = true,
@@ -201,16 +201,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
201
201
  const [peekContentHeight, setPeekContentHeight] = useState(0);
202
202
  const contentRef = useRef(null);
203
203
  const peekElRef = useRef(null);
204
- const peekContext = useMemo(() => ({
205
- contentRef,
206
- peekRef: peekElRef,
207
- setPeekContentHeight
208
- }), []);
209
-
210
- // The peek's own onLayout only fires when *it* resizes. Content added above
211
- // it moves it without resizing it, so re-measure its offset whenever the
212
- // content view's layout changes.
213
- const handleContentLayout = useCallback(() => {
204
+ const measurePeek = useCallback(() => {
214
205
  const peekEl = getDOMElement(peekElRef.current);
215
206
  const contentEl = getDOMElement(contentRef.current);
216
207
  if (peekEl && contentEl) {
@@ -218,6 +209,29 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
218
209
  }
219
210
  }, []);
220
211
 
212
+ // Last-attached wins — during a screen swap the incoming peek mounts before
213
+ // the outgoing one unmounts, so the outgoing detach must not clear it.
214
+ const peekContext = useMemo(() => ({
215
+ contentRef,
216
+ attachPeek: view => {
217
+ peekElRef.current = view;
218
+ measurePeek();
219
+ },
220
+ detachPeek: view => {
221
+ if (peekElRef.current !== view) return;
222
+ peekElRef.current = null;
223
+ setPeekContentHeight(0);
224
+ },
225
+ measurePeek: view => {
226
+ if (peekElRef.current === view) measurePeek();
227
+ }
228
+ }), [measurePeek]);
229
+
230
+ // The peek's own onLayout only fires when *it* resizes. Content added above
231
+ // it moves it without resizing it, so re-measure its offset whenever the
232
+ // content view's layout changes.
233
+ const handleContentLayout = measurePeek;
234
+
221
235
  // An absolute (floating) header overlaps the content, so it contributes no
222
236
  // height to the 'auto' detent measurement.
223
237
  const absoluteHeader = headerOptions?.position === 'absolute';
@@ -258,10 +272,15 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
258
272
  const [hasBoundedScrollable, setHasBoundedScrollable] = useState(false);
259
273
  const [scrollableAutoHeight, setScrollableAutoHeight] = useState(0);
260
274
  const detectedScrollerRef = useRef(null);
275
+ // Bottom padding applied to the plugged scrollable for an absolute footer
276
+ // (see the footer inset effect below)
277
+ const footerInsetRef = useRef(0);
261
278
 
262
279
  // Natural content height (header + content + footer, with a detected
263
280
  // scrollable's viewport replaced by its content size) — the height the
264
- // content wants regardless of the sheet's bounds.
281
+ // content wants regardless of the sheet's bounds. An absolute footer's inset
282
+ // on the scrollable counts like a relative footer's height, so the content
283
+ // ends above the footer (mirrors native's auto detent).
265
284
  const measureNaturalHeight = useCallback(() => {
266
285
  const contentEl = getDOMElement(contentRef.current);
267
286
  if (!contentEl || !contentEl.isConnected) return 0;
@@ -271,7 +290,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
271
290
  const scroller = detectedScrollerRef.current;
272
291
  const scrollContent = scroller?.firstElementChild;
273
292
  if (scroller?.isConnected && scrollContent instanceof HTMLElement) {
274
- height += scrollContent.offsetHeight - scroller.clientHeight;
293
+ height += scrollContent.offsetHeight - scroller.clientHeight + footerInsetRef.current;
275
294
  }
276
295
  return Math.max(0, height);
277
296
  }, []);
@@ -613,6 +632,90 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
613
632
  });
614
633
  }, [interpolateFromPosition, updateSizedLayoutHeight]);
615
634
 
635
+ // Web mirror of native's footer inset (`contentInsetAdjustment`
636
+ // 'automatic' | 'footer'): pad the plugged scrollable by how much the
637
+ // absolute footer covers it. Measured from layout offsets (not client rects)
638
+ // so in-flight transforms don't skew it — the footer's bottom sits at the
639
+ // visible bottom of the layout container, so only a scroller reaching that
640
+ // edge gets an inset, and a safe-area lift (or a short scroller) shrinks it.
641
+ // Padding on the scroll container extends its scrollable overflow, like a
642
+ // native content inset.
643
+ const insetBehavior = scrollableOptions?.contentInsetAdjustment ?? 'automatic';
644
+ const footerInsetAdjustment = Boolean(footer) && absoluteFooter && (insetBehavior === 'automatic' || insetBehavior === 'footer');
645
+ useEffect(() => {
646
+ if (!isOpen || !footerInsetAdjustment || !scrollableRef) return undefined;
647
+ let canceled = false;
648
+ let rafId = 0;
649
+ let mutationObserver = null;
650
+ let resizeObserver = null;
651
+ let scroller = null;
652
+ const reset = () => {
653
+ if (scroller) scroller.style.paddingBottom = '';
654
+ footerInsetRef.current = 0;
655
+ };
656
+ const apply = () => {
657
+ const footerEl = getDOMElement(footerElRef.current);
658
+ const container = sizedLayoutRef.current ?? drawerContentRef.current;
659
+ if (!scroller?.isConnected || !footerEl || !container) return;
660
+
661
+ // Measure without our own padding so an unbounded scroller (sized by its
662
+ // content) doesn't grow by the inset and feed back into the overlap.
663
+ scroller.style.paddingBottom = '';
664
+ let bottom = scroller.offsetTop + scroller.offsetHeight;
665
+ let el = scroller.offsetParent;
666
+ while (el && el !== container) {
667
+ bottom += el.offsetTop;
668
+ el = el.offsetParent;
669
+ }
670
+ const footerTop = container.offsetHeight - footerEl.offsetHeight;
671
+ const inset = el ? Math.max(0, bottom - footerTop) : 0;
672
+ footerInsetRef.current = inset;
673
+ scroller.style.paddingBottom = inset > 0 ? `${inset}px` : '';
674
+ };
675
+
676
+ // (Re)resolve the plugged scrollable — a conditional remount swaps the node
677
+ const observe = () => {
678
+ const resolved = getScrollableElement(scrollableRef.current);
679
+ const next = resolved?.isConnected ? resolved : null;
680
+ if (next === scroller && resizeObserver) return;
681
+ reset();
682
+ resizeObserver?.disconnect();
683
+ resizeObserver = null;
684
+ scroller = next;
685
+ if (!scroller) return;
686
+ resizeObserver = new ResizeObserver(apply);
687
+ resizeObserver.observe(scroller);
688
+ const footerEl = getDOMElement(footerElRef.current);
689
+ if (footerEl) resizeObserver.observe(footerEl);
690
+ const container = sizedLayoutRef.current ?? drawerContentRef.current;
691
+ if (container) resizeObserver.observe(container);
692
+ apply();
693
+ };
694
+ const attach = () => {
695
+ if (canceled) return;
696
+ const drawerEl = drawerContentRef.current;
697
+ if (!drawerEl || !drawerEl.isConnected) {
698
+ // Radix Presence defers the portal mount; poll until the drawer is live.
699
+ rafId = window.requestAnimationFrame(attach);
700
+ return;
701
+ }
702
+ observe();
703
+ mutationObserver = new MutationObserver(observe);
704
+ mutationObserver.observe(drawerEl, {
705
+ childList: true,
706
+ subtree: true
707
+ });
708
+ };
709
+ rafId = window.requestAnimationFrame(attach);
710
+ return () => {
711
+ canceled = true;
712
+ window.cancelAnimationFrame(rafId);
713
+ mutationObserver?.disconnect();
714
+ resizeObserver?.disconnect();
715
+ reset();
716
+ };
717
+ }, [isOpen, footerInsetAdjustment, scrollableRef]);
718
+
616
719
  // Fire onMount once after first render. React-mount is the earliest point
617
720
  // the component is ready for imperative calls, matching the native
618
721
  // "ready for present" contract. Declared before the present/dismiss effect
@@ -1023,11 +1126,11 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
1023
1126
  // Lift content above iOS home indicator / bottom safe area when enabled.
1024
1127
  // A relative footer owns the inset instead (see resolvedFooterStyle); an
1025
1128
  // absolute footer floats over the content, so the content keeps its lift.
1026
- // A plugged scrollable keeps the lift too (contentInsetAdjustmentBehavior,
1027
- // default on) — disable it to scroll edge-to-edge behind the indicator
1028
- // with user-applied content padding.
1029
- paddingBottom: insetAdjustment === 'automatic' && !(footerOwnsInset && !absoluteFooter) && (!scrollableRef || (scrollableOptions?.contentInsetAdjustmentBehavior ?? true)) ? 'env(safe-area-inset-bottom, 0px)' : 0
1030
- }), [backgroundColor, effectiveCornerRadius, insetAdjustment, footerOwnsInset, absoluteFooter, scrollableRef, scrollableOptions]);
1129
+ // A plugged scrollable keeps the lift too (contentInsetAdjustment
1130
+ // 'automatic' | 'safe-area') — 'footer' | 'never' scroll edge-to-edge
1131
+ // behind the indicator with user-applied content padding.
1132
+ paddingBottom: insetAdjustment === 'automatic' && !(footerOwnsInset && !absoluteFooter) && (!scrollableRef || insetBehavior === 'automatic' || insetBehavior === 'safe-area') ? 'env(safe-area-inset-bottom, 0px)' : 0
1133
+ }), [backgroundColor, effectiveCornerRadius, insetAdjustment, footerOwnsInset, absoluteFooter, scrollableRef, insetBehavior]);
1031
1134
  const defaultGrabberColor = colorScheme === 'dark' ? DEFAULT_GRABBER_COLOR_DARK : DEFAULT_GRABBER_COLOR_LIGHT;
1032
1135
  const grabberHeight = grabberOptions?.height ?? DEFAULT_GRABBER_HEIGHT;
1033
1136
 
@@ -1058,7 +1161,7 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
1058
1161
  // `maxContentWidth` is ignored ('form' is absolute).
1059
1162
  // - presentation='page' → `maxContentWidth` (any viewport) or
1060
1163
  // DEFAULT_MAX_WIDTH (tablet/landscape readability cap).
1061
- // Detached without a width constraint applies anchorOffset on both edges so
1164
+ // Detached without a width constraint applies placementOffset on both edges so
1062
1165
  // the floating card breathes from the viewport sides.
1063
1166
  const wrapperStyle = useMemo(() => {
1064
1167
  // Mobile portrait ignores width sizing entirely (matches iOS/Android:
@@ -1070,23 +1173,23 @@ const TrueSheetComponent = /*#__PURE__*/forwardRef((props, ref) => {
1070
1173
  const next = {};
1071
1174
  if (dropShadow) next.filter = dropShadow;
1072
1175
  if (!needsMargins) return next;
1073
- let marginLeft;
1074
- let marginRight;
1176
+ let marginInlineStart;
1177
+ let marginInlineEnd;
1075
1178
  if (isFormSheet) {
1076
- marginLeft = 'auto';
1077
- marginRight = 'auto';
1179
+ marginInlineStart = 'auto';
1180
+ marginInlineEnd = 'auto';
1078
1181
  } else if (maxWidth == null) {
1079
- marginLeft = anchorOffset;
1080
- marginRight = anchorOffset;
1182
+ marginInlineStart = placementOffset;
1183
+ marginInlineEnd = placementOffset;
1081
1184
  } else {
1082
- marginLeft = anchor === 'left' ? anchorOffset : 'auto';
1083
- marginRight = anchor === 'right' ? anchorOffset : 'auto';
1185
+ marginInlineStart = placement === 'leading' ? placementOffset : 'auto';
1186
+ marginInlineEnd = placement === 'trailing' ? placementOffset : 'auto';
1084
1187
  }
1085
1188
  if (maxWidth != null) next.maxWidth = maxWidth;
1086
- next.marginLeft = marginLeft;
1087
- next.marginRight = marginRight;
1189
+ next.marginInlineStart = marginInlineStart;
1190
+ next.marginInlineEnd = marginInlineEnd;
1088
1191
  return next;
1089
- }, [isLandscapeOrTablet, isFormSheet, maxContentWidth, presentation, anchor, anchorOffset, effectiveDetached, dropShadow]);
1192
+ }, [isLandscapeOrTablet, isFormSheet, maxContentWidth, presentation, placement, placementOffset, effectiveDetached, dropShadow]);
1090
1193
 
1091
1194
  // Absolute-position the grabber so it overlays the content top-edge
1092
1195
  // instead of consuming flow height — mirrors native iOS/Android, where