@oxy.so/bloom 4.4.0 → 4.5.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 (91) hide show
  1. package/docs/layout.mdx +36 -0
  2. package/docs/page-header.mdx +16 -0
  3. package/docs/sidebar.mdx +6 -0
  4. package/lib/commonjs/index.js +21 -0
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/index.web.js +21 -0
  7. package/lib/commonjs/index.web.js.map +1 -1
  8. package/lib/commonjs/layout/StickySection.js +106 -0
  9. package/lib/commonjs/layout/StickySection.js.map +1 -0
  10. package/lib/commonjs/layout/header-dock.js +61 -0
  11. package/lib/commonjs/layout/header-dock.js.map +1 -0
  12. package/lib/commonjs/layout/index.js +20 -0
  13. package/lib/commonjs/layout/index.js.map +1 -1
  14. package/lib/commonjs/page-header/PageHeader.js +38 -14
  15. package/lib/commonjs/page-header/PageHeader.js.map +1 -1
  16. package/lib/commonjs/sidebar/Sidebar.js +121 -108
  17. package/lib/commonjs/sidebar/Sidebar.js.map +1 -1
  18. package/lib/commonjs/sidebar/SidebarRail.js +70 -48
  19. package/lib/commonjs/sidebar/SidebarRail.js.map +1 -1
  20. package/lib/commonjs/styles/web-view-style.js +6 -0
  21. package/lib/commonjs/styles/web-view-style.js.map +1 -1
  22. package/lib/module/index.js +1 -1
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/index.web.js +1 -1
  25. package/lib/module/index.web.js.map +1 -1
  26. package/lib/module/layout/StickySection.js +101 -0
  27. package/lib/module/layout/StickySection.js.map +1 -0
  28. package/lib/module/layout/header-dock.js +54 -0
  29. package/lib/module/layout/header-dock.js.map +1 -0
  30. package/lib/module/layout/index.js +2 -0
  31. package/lib/module/layout/index.js.map +1 -1
  32. package/lib/module/page-header/PageHeader.js +38 -14
  33. package/lib/module/page-header/PageHeader.js.map +1 -1
  34. package/lib/module/sidebar/Sidebar.js +121 -108
  35. package/lib/module/sidebar/Sidebar.js.map +1 -1
  36. package/lib/module/sidebar/SidebarRail.js +70 -48
  37. package/lib/module/sidebar/SidebarRail.js.map +1 -1
  38. package/lib/module/styles/web-view-style.js +5 -0
  39. package/lib/module/styles/web-view-style.js.map +1 -1
  40. package/lib/typescript/commonjs/index.d.ts +2 -1
  41. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/index.web.d.ts +2 -1
  43. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/layout/StickySection.d.ts +8 -0
  45. package/lib/typescript/commonjs/layout/StickySection.d.ts.map +1 -0
  46. package/lib/typescript/commonjs/layout/header-dock.d.ts +21 -0
  47. package/lib/typescript/commonjs/layout/header-dock.d.ts.map +1 -0
  48. package/lib/typescript/commonjs/layout/index.d.ts +3 -0
  49. package/lib/typescript/commonjs/layout/index.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/page-header/PageHeader.d.ts.map +1 -1
  51. package/lib/typescript/commonjs/page-header/types.d.ts +10 -6
  52. package/lib/typescript/commonjs/page-header/types.d.ts.map +1 -1
  53. package/lib/typescript/commonjs/sidebar/Sidebar.d.ts.map +1 -1
  54. package/lib/typescript/commonjs/sidebar/SidebarRail.d.ts +1 -1
  55. package/lib/typescript/commonjs/sidebar/SidebarRail.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/sidebar/types.d.ts +2 -0
  57. package/lib/typescript/commonjs/sidebar/types.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/styles/web-view-style.d.ts +2 -0
  59. package/lib/typescript/commonjs/styles/web-view-style.d.ts.map +1 -1
  60. package/lib/typescript/module/index.d.ts +2 -1
  61. package/lib/typescript/module/index.d.ts.map +1 -1
  62. package/lib/typescript/module/index.web.d.ts +2 -1
  63. package/lib/typescript/module/index.web.d.ts.map +1 -1
  64. package/lib/typescript/module/layout/StickySection.d.ts +8 -0
  65. package/lib/typescript/module/layout/StickySection.d.ts.map +1 -0
  66. package/lib/typescript/module/layout/header-dock.d.ts +21 -0
  67. package/lib/typescript/module/layout/header-dock.d.ts.map +1 -0
  68. package/lib/typescript/module/layout/index.d.ts +3 -0
  69. package/lib/typescript/module/layout/index.d.ts.map +1 -1
  70. package/lib/typescript/module/page-header/PageHeader.d.ts.map +1 -1
  71. package/lib/typescript/module/page-header/types.d.ts +10 -6
  72. package/lib/typescript/module/page-header/types.d.ts.map +1 -1
  73. package/lib/typescript/module/sidebar/Sidebar.d.ts.map +1 -1
  74. package/lib/typescript/module/sidebar/SidebarRail.d.ts +1 -1
  75. package/lib/typescript/module/sidebar/SidebarRail.d.ts.map +1 -1
  76. package/lib/typescript/module/sidebar/types.d.ts +2 -0
  77. package/lib/typescript/module/sidebar/types.d.ts.map +1 -1
  78. package/lib/typescript/module/styles/web-view-style.d.ts +2 -0
  79. package/lib/typescript/module/styles/web-view-style.d.ts.map +1 -1
  80. package/package.json +1 -1
  81. package/src/index.ts +4 -0
  82. package/src/index.web.ts +4 -0
  83. package/src/layout/StickySection.tsx +75 -0
  84. package/src/layout/header-dock.tsx +42 -0
  85. package/src/layout/index.ts +4 -0
  86. package/src/page-header/PageHeader.tsx +26 -12
  87. package/src/page-header/types.ts +10 -6
  88. package/src/sidebar/Sidebar.tsx +3 -0
  89. package/src/sidebar/SidebarRail.tsx +6 -1
  90. package/src/sidebar/types.ts +2 -0
  91. package/src/styles/web-view-style.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/sidebar/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/sidebar/types.ts"],"names":[],"mappings":"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"}
@@ -110,4 +110,6 @@ export interface WebCssStyle extends ViewStyle {
110
110
  */
111
111
  [customProperty: `--${string}`]: string | undefined;
112
112
  }
113
+ /** Position a secondary sticky row below measured chrome, retaining panel inset. */
114
+ export declare function webSurfaceStickyTopPlus(px: number): ViewStyle['top'];
113
115
  //# sourceMappingURL=web-view-style.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-view-style.d.ts","sourceRoot":"","sources":["../../../../src/styles/web-view-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,EAAc,SAAS,CAAC,UAAU,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAe,SAAS,CAAC,UAAU,CAAC,CAAC;AAErE,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,EAA2C,SAAS,CAAC,KAAK,CAAC,CAAC;AAE/F;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,EAAe,SAAS,CAAC,QAAQ,CAAC,CAAC;AACnE,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAEtE;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAa,SAAS,CAAC,UAAU,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACjD,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;IAC1D;;;;;;;;;OASG;IACH,CAAC,cAAc,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC;CACrD"}
1
+ {"version":3,"file":"web-view-style.d.ts","sourceRoot":"","sources":["../../../../src/styles/web-view-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,EAAc,SAAS,CAAC,UAAU,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAe,SAAS,CAAC,UAAU,CAAC,CAAC;AAErE,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,EAA2C,SAAS,CAAC,KAAK,CAAC,CAAC;AAE/F;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,EAAe,SAAS,CAAC,QAAQ,CAAC,CAAC;AACnE,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAEtE;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAa,SAAS,CAAC,UAAU,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACjD,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;IAC1D;;;;;;;;;OASG;IACH,CAAC,cAAc,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC;CACrD;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAEpE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxy.so/bloom",
3
- "version": "4.4.0",
3
+ "version": "4.5.0",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
6
6
  "main": "lib/commonjs/index.js",
package/src/index.ts CHANGED
@@ -167,7 +167,11 @@ export {
167
167
  ScrollOffsetProvider,
168
168
  useScrollOffset,
169
169
  ScreenScope,
170
+ HeaderDockProvider,
171
+ useHeaderDockInset,
172
+ StickySection,
170
173
  } from './layout';
174
+ export type { StickySectionProps } from './layout';
171
175
  export { Fab } from './fab';
172
176
  export type { FabProps, FabVariant, FabSize, FabPlacement, FabMinimizeBehavior } from './fab';
173
177
  export { FrostedIconButton } from './frosted-icon-button';
package/src/index.web.ts CHANGED
@@ -172,7 +172,11 @@ export {
172
172
  ScrollOffsetProvider,
173
173
  useScrollOffset,
174
174
  ScreenScope,
175
+ HeaderDockProvider,
176
+ useHeaderDockInset,
177
+ StickySection,
175
178
  } from './layout';
179
+ export type { StickySectionProps } from './layout';
176
180
  export { Fab } from './fab/index.web';
177
181
  export type { FabProps, FabVariant, FabSize, FabPlacement, FabMinimizeBehavior } from './fab/index.web';
178
182
  export { FrostedIconButton } from './frosted-icon-button/index.web';
@@ -0,0 +1,75 @@
1
+ import React, { useCallback, useEffect, useRef } from 'react';
2
+ import { Platform, View, type ViewProps } from 'react-native';
3
+ import { useSurfaceFill } from '../styles/surface-levels';
4
+ import { Z_INDEX } from '../styles/z-index';
5
+ import { WEB_POSITION_STICKY, webSurfaceStickyTopPlus, type WebCssStyle } from '../styles/web-view-style';
6
+ import { useHeaderDockContext } from './header-dock';
7
+ import { useTopEdgeInset } from './top-edge';
8
+
9
+ export interface StickySectionProps extends ViewProps {
10
+ /** Native: this sticky child's Y in the list content, measured by its owner. */
11
+ offset?: number;
12
+ }
13
+
14
+ /** One docking section. Native lists retain ownership of stickyHeaderIndices. */
15
+ export function StickySection({children, offset, style, onLayout, ...props}: StickySectionProps) {
16
+ const dock = useHeaderDockContext();
17
+ const top = useTopEdgeInset();
18
+ const fill = useSurfaceFill();
19
+ const marker = useRef<View>(null);
20
+ const section = useRef<View>(null);
21
+ const owner = useRef({});
22
+ const measure = useCallback(() => {
23
+ if (!dock) return;
24
+ if (Platform.OS !== 'web') {
25
+ if (offset !== undefined) {
26
+ dock.targets.current.set(owner.current, offset);
27
+ dock.sectionOffset.value = offset;
28
+ }
29
+ return;
30
+ }
31
+ const anchor = marker.current as unknown as HTMLElement | null;
32
+ const sticky = section.current as unknown as HTMLElement | null;
33
+ if (!anchor?.getBoundingClientRect || !sticky) return;
34
+ // The zero-height marker remains in normal flow while the section sticks.
35
+ // Its coordinate is measured against the actual scrolling viewport.
36
+ let viewportTop = 0;
37
+ for (let parent = anchor.parentElement; parent; parent = parent.parentElement) {
38
+ if (/(auto|scroll)/.test(getComputedStyle(parent).overflowY)) {
39
+ viewportTop = parent.getBoundingClientRect().top + parent.clientTop;
40
+ break;
41
+ }
42
+ }
43
+ const stickyTop = Number.parseFloat(getComputedStyle(sticky).top) || top;
44
+ const measuredOffset = anchor.getBoundingClientRect().top - viewportTop + dock.scrollY.value - stickyTop + top;
45
+ dock.targets.current.set(owner.current, measuredOffset);
46
+ dock.sectionOffset.value = measuredOffset;
47
+ }, [dock, offset, top]);
48
+ useEffect(() => {
49
+ measure();
50
+ if (Platform.OS !== 'web') return;
51
+ const anchor = marker.current as unknown as HTMLElement | null;
52
+ const observer = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(measure);
53
+ // Ancestor size changes cover delayed hero images/fonts without a scroll listener.
54
+ for (let element = anchor?.parentElement; element; element = element.parentElement) observer?.observe(element);
55
+ window.addEventListener('resize', measure);
56
+ return () => { observer?.disconnect(); window.removeEventListener('resize', measure); };
57
+ }, [measure]);
58
+ useEffect(() => () => {
59
+ if (!dock) return;
60
+ dock.targets.current.delete(owner.current);
61
+ // Virtualized lists may mount a sticky clone alongside the original cell.
62
+ // Removing that clone must restore the still-mounted original's target.
63
+ let remaining = Number.POSITIVE_INFINITY;
64
+ for (const target of dock.targets.current.values()) remaining = target;
65
+ dock.sectionOffset.value = remaining;
66
+ }, [dock]);
67
+ const stickyStyle: WebCssStyle = Platform.OS === 'web'
68
+ ? {position:WEB_POSITION_STICKY, top:webSurfaceStickyTopPlus(top), zIndex:Z_INDEX.raised}
69
+ : {zIndex:Z_INDEX.raised};
70
+ return <>
71
+ {Platform.OS === 'web' && <View ref={marker} pointerEvents="none" style={{height:0}} />}
72
+ <View {...props} ref={section} onLayout={event => {measure(); onLayout?.(event);}}
73
+ style={[stickyStyle, {backgroundColor:fill}, style]}>{children}</View>
74
+ </>;
75
+ }
@@ -0,0 +1,42 @@
1
+ import React, { createContext, useContext, useMemo, useRef, useState, type PropsWithChildren } from 'react';
2
+ import { Platform } from 'react-native';
3
+ import { useDerivedValue, useSharedValue, type SharedValue } from 'react-native-reanimated';
4
+ import { useScreenContext } from '../screen/context';
5
+ import { useScrollOffset } from './scroll-offset';
6
+ import { TopEdgeProvider, useTopEdgeInset } from './top-edge';
7
+
8
+ interface HeaderDockState {
9
+ scrollY: SharedValue<number>;
10
+ headerHeight: SharedValue<number>;
11
+ overlay: SharedValue<boolean>;
12
+ overlaps: boolean;
13
+ setOverlaps: React.Dispatch<React.SetStateAction<boolean>>;
14
+ sectionOffset: SharedValue<number>;
15
+ progress: SharedValue<number>;
16
+ targets: React.MutableRefObject<Map<object, number>>;
17
+ }
18
+ const HeaderDockContext = createContext<HeaderDockState | null>(null);
19
+ export function useHeaderDockContext() { return useContext(HeaderDockContext); }
20
+
21
+ /** Native lists already below an inline header need no additional clearance. */
22
+ export function useHeaderDockInset(): number {
23
+ const dock = useHeaderDockContext();
24
+ const height = useTopEdgeInset();
25
+ return Platform.OS === 'web' || dock?.overlaps ? height : 0;
26
+ }
27
+
28
+ /** Pairs one header and its docking section without rendering on scroll frames. */
29
+ export function HeaderDockProvider({ children, scrollY: supplied }: PropsWithChildren<{ scrollY?: SharedValue<number> }>) {
30
+ const screen = useScreenContext();
31
+ const contextual = useScrollOffset();
32
+ const rest = useSharedValue(0);
33
+ const scrollY = supplied ?? screen?.scrollY ?? contextual ?? rest;
34
+ const headerHeight = useSharedValue(0);
35
+ const overlay = useSharedValue(false);
36
+ const [overlaps, setOverlaps] = useState(false);
37
+ const sectionOffset = useSharedValue(Number.POSITIVE_INFINITY);
38
+ const targets = useRef(new Map<object, number>());
39
+ const progress = useDerivedValue(() => Math.min(1, Math.max(0, (scrollY.value - sectionOffset.value + (Platform.OS === 'web' || overlay.value ? headerHeight.value : 0) + 12) / 12)), [scrollY, sectionOffset, headerHeight, overlay]);
40
+ const value = useMemo(() => ({scrollY,headerHeight,sectionOffset,progress,targets,overlay,overlaps,setOverlaps}), [scrollY,headerHeight,sectionOffset,progress,overlay,overlaps]);
41
+ return <TopEdgeProvider><HeaderDockContext.Provider value={value}>{children}</HeaderDockContext.Provider></TopEdgeProvider>;
42
+ }
@@ -14,3 +14,7 @@ export { BottomEdgeProvider, useBottomEdgeInset, useClaimBottomEdge } from './bo
14
14
  export { TopEdgeProvider, useClaimTopEdge, useTopEdgeInset } from './top-edge';
15
15
  export { ScrollOffsetProvider, useScrollOffset } from './scroll-offset';
16
16
  export { ScreenScope } from './screen-scope';
17
+
18
+ export { HeaderDockProvider, useHeaderDockInset } from './header-dock';
19
+ export { StickySection } from './StickySection';
20
+ export type { StickySectionProps } from './StickySection';
@@ -16,6 +16,7 @@ import Animated, {
16
16
  } from 'react-native-reanimated';
17
17
  import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
18
18
 
19
+ import { useHeaderDockContext } from '../layout/header-dock';
19
20
  import { useSurfaceFill } from '../styles/surface-levels';
20
21
  import { useScreenContext } from '../screen/context';
21
22
  import { Button } from '../button';
@@ -161,7 +162,16 @@ function PageHeaderComponent({
161
162
  // the content reads it back. Measured rather than computed: a second title
162
163
  // line, an enlarged font or a notch all move it, and every one of those is a
163
164
  // case a constant was written to survive and does not.
164
- useClaimTopEdge(overlay ? height : 0);
165
+ const dock = useHeaderDockContext();
166
+ const dockProgress = dock?.progress;
167
+ useClaimTopEdge(overlay || placement === 'overlap' || dock ? height : 0);
168
+ useEffect(() => {
169
+ if (!dock) return;
170
+ dock.headerHeight.value = height;
171
+ dock.overlay.value = overlay || placement === 'overlap';
172
+ dock.setOverlaps(overlay || placement === 'overlap');
173
+ return () => { dock.headerHeight.value = 0; };
174
+ }, [dock, height, overlay, placement]);
165
175
 
166
176
  const paint = useMemo(() => {
167
177
  return {
@@ -181,8 +191,8 @@ function PageHeaderComponent({
181
191
  const screen = useScreenContext();
182
192
  const contextScrollY = useScrollOffset();
183
193
  const internalScrollY = useSharedValue(0);
184
- const scrollY = externalScrollY ?? screen?.scrollY ?? contextScrollY ?? internalScrollY;
185
- const followsWindow = !externalScrollY && !screen && !contextScrollY;
194
+ const scrollY = externalScrollY ?? dock?.scrollY ?? screen?.scrollY ?? contextScrollY ?? internalScrollY;
195
+ const followsWindow = !externalScrollY && !dock && !screen && !contextScrollY;
186
196
 
187
197
  useEffect(() => {
188
198
  if (!isWeb || !followsWindow || typeof window === 'undefined') return undefined;
@@ -196,12 +206,12 @@ function PageHeaderComponent({
196
206
 
197
207
  const threshold = Math.max(1, Number.isFinite(scrollThreshold) ? scrollThreshold : DEFAULT_THRESHOLD);
198
208
  const revealOffset = Math.max(0, Number.isFinite(titleRevealOffset) ? titleRevealOffset : 0);
199
- const [titleHidden, setTitleHidden] = useState(() => titleReveal === 'onScroll' && scrollY.value <= revealOffset);
200
- useEffect(() => { setTitleHidden(titleReveal === 'onScroll' && scrollY.value <= revealOffset); }, [titleReveal, scrollY, revealOffset]);
209
+ const [titleHidden, setTitleHidden] = useState(() => (titleReveal === 'onDock' ? (dockProgress?.value ?? 0) <= 0 : titleReveal === 'onScroll' && scrollY.value <= revealOffset));
210
+ useEffect(() => { setTitleHidden((titleReveal === 'onDock' ? (dockProgress?.value ?? 0) <= 0 : titleReveal === 'onScroll' && scrollY.value <= revealOffset)); }, [titleReveal, scrollY, revealOffset, dockProgress]);
201
211
  useAnimatedReaction(
202
- () => titleReveal === 'onScroll' && scrollY.value <= revealOffset,
212
+ () => (titleReveal === 'onDock' ? (dockProgress?.value ?? 0) <= 0 : titleReveal === 'onScroll' && scrollY.value <= revealOffset),
203
213
  (hidden, previous) => { if (hidden !== previous) runOnJS(setTitleHidden)(hidden); },
204
- [titleReveal, scrollY, revealOffset, setTitleHidden],
214
+ [titleReveal, scrollY, revealOffset, setTitleHidden, dockProgress],
205
215
  );
206
216
 
207
217
  const shadowStyle = useAnimatedStyle(() => ({
@@ -215,13 +225,13 @@ function PageHeaderComponent({
215
225
  }), [scrollY, threshold, transparent]);
216
226
 
217
227
  const scrimStyle = useAnimatedStyle(() => ({
218
- opacity:
228
+ opacity: (1 - (dockProgress?.value ?? 0)) * (
219
229
  scrim === 'always'
220
230
  ? 1
221
231
  : scrim === 'none'
222
232
  ? 0
223
- : interpolate(scrollY.value, [0, threshold], [0, 1], Extrapolation.CLAMP),
224
- }), [scrollY, threshold, scrim]);
233
+ : interpolate(scrollY.value, [0, threshold], [0, 1], Extrapolation.CLAMP)),
234
+ }), [scrollY, threshold, scrim, dockProgress]);
225
235
 
226
236
  // Separate from the background's: a header can be transparent and still name
227
237
  // its screen, and one over a hero photo can do the opposite.
@@ -229,8 +239,8 @@ function PageHeaderComponent({
229
239
  opacity:
230
240
  titleReveal === 'always'
231
241
  ? 1
232
- : Math.min(1, Math.max(0, (scrollY.value - revealOffset) / threshold)),
233
- }), [scrollY, threshold, titleReveal, revealOffset]);
242
+ : titleReveal === 'onDock' ? (dockProgress?.value ?? 0) : Math.min(1, Math.max(0, (scrollY.value - revealOffset) / threshold)),
243
+ }), [scrollY, threshold, titleReveal, revealOffset, dockProgress]);
234
244
 
235
245
  const borderStyle = useAnimatedStyle(() => ({
236
246
  opacity:
@@ -342,6 +352,7 @@ function PageHeaderComponent({
342
352
  transitionProperty: 'top', transitionDuration: 'var(--bloom-panel-inset-duration, 0ms)', transitionTimingFunction: 'ease-in-out' }
343
353
  : null;
344
354
 
355
+ const dockFillStyle = useAnimatedStyle(() => ({ opacity: dockProgress?.value ?? 0 }), [dockProgress]);
345
356
  const chrome = floating ? (
346
357
  <Animated.View
347
358
  // A PROP: react-native-web resolves `none` from the prop path only, and
@@ -407,10 +418,13 @@ function PageHeaderComponent({
407
418
  { paddingTop: padTop },
408
419
  overlay ? [styles.overlay, { zIndex: Z_INDEX.floating }] : null,
409
420
  containerWeb,
421
+ placement === 'overlap' ? { marginBottom: -height, zIndex: Z_INDEX.floating } : null,
410
422
  style,
411
423
  ]}
412
424
  >
413
425
  {chrome}
426
+ {floating && dock ? <Animated.View pointerEvents="none" testID={testID ? `${testID}-docked-fill` : undefined}
427
+ style={[StyleSheet.absoluteFill, {backgroundColor: surfaceFill}, dockFillStyle]} /> : null}
414
428
  <View
415
429
  style={[styles.bar, { paddingLeft: sideInset, paddingRight: sideInset }]}
416
430
  pointerEvents={floating ? 'box-none' : undefined}
@@ -30,11 +30,14 @@ export type PageHeaderPresentation = 'floating' | 'bar';
30
30
  * at the top of the container and scrolls under the islands. The header then
31
31
  * CLAIMS its measured height on `layout/top-edge`, and the content reads it
32
32
  * with `useTopEdgeInset()` so its first item is not born underneath. This is
33
- * the placement the floating presentation was designed for; the two are
34
- * separate props because a floating header above a fixed panel is also a real
35
- * arrangement.
33
+ * placement the floating presentation was designed for.
34
+ *
35
+ * `overlap` keeps document stickiness while allowing the following hero to
36
+ * start behind the measured header; native places it before the list.
37
+ * Placement and presentation remain independent: a floating header above a
38
+ * fixed panel is also a supported arrangement.
36
39
  */
37
- export type PageHeaderPlacement = 'inline' | 'overlay';
40
+ export type PageHeaderPlacement = 'inline' | 'overlay' | 'overlap';
38
41
 
39
42
  /**
40
43
  * The bottom separator: `auto` fades it in once the page has scrolled past
@@ -60,13 +63,14 @@ export type PageHeaderScrim = 'auto' | 'always' | 'none';
60
63
  *
61
64
  * `always` (default) is the ordinary screen header. `onScroll` holds the title
62
65
  * back and fades it in with the scrim — the shape a header over a hero photo
63
- * wants, where the photo already names the screen.
66
+ * wants, where the photo already names the screen. `onDock` uses the paired
67
+ * StickySection arrival instead, inside HeaderDockProvider.
64
68
  *
65
69
  * It is a prop of its own rather than a side effect of the background, because
66
70
  * the two are different questions and conflating them is how every header that
67
71
  * turned transparent also lost its title.
68
72
  */
69
- export type PageHeaderTitleReveal = 'always' | 'onScroll';
73
+ export type PageHeaderTitleReveal = 'always' | 'onScroll' | 'onDock';
70
74
 
71
75
  export interface PageHeaderProps {
72
76
  /** A string renders as the heading; a node renders as-is (and owns its own semantics). */
@@ -141,6 +141,7 @@ function SearchField({
141
141
  const SidebarPanel: React.FC<SidebarProps> = ({
142
142
  items = [],
143
143
  primaryAction,
144
+ contentAlignment = 'start',
144
145
  content,
145
146
  onScroll,
146
147
  footer,
@@ -634,6 +635,7 @@ const SidebarPanel: React.FC<SidebarProps> = ({
634
635
  style,
635
636
  ]}
636
637
  >
638
+ <View testID={`${testID ?? 'sidebar'}-main-region`} style={{ width: '100%', minHeight: 0, flexShrink: 1, ...(contentAlignment === 'center' ? { flex: 1, justifyContent: 'center' as const } : {}) }}>
637
639
  <View style={{ width: '100%', minHeight: 0, flexShrink: 1 }}>
638
640
  {/* Fixed chrome shares the panel's morph, never the destination scroll.
639
641
  The viewport reaches half a control behind it, so rows dissolve
@@ -697,6 +699,7 @@ const SidebarPanel: React.FC<SidebarProps> = ({
697
699
  </SidebarScrollArea>
698
700
  {primaryAction ? <SidebarPrimaryAction action={primaryAction} collapsed={collapsed} testID={testID ? `${testID}-primary-action` : undefined} /> : null}
699
701
  </View>
702
+ </View>
700
703
 
701
704
  <View style={{ width: '100%', flexShrink: 0, gap: 12, paddingTop: hasTree ? 12 : 0 }}>
702
705
  {showThemeToggle ? (
@@ -29,6 +29,7 @@ export function SidebarRail({
29
29
  logo,
30
30
  items = [],
31
31
  primaryAction,
32
+ contentAlignment = 'start',
32
33
  footer,
33
34
  secondaryItems = [],
34
35
  selected,
@@ -81,6 +82,8 @@ export function SidebarRail({
81
82
  style,
82
83
  ]}
83
84
  >
85
+ <View testID={`${testID ?? 'sidebar'}-main-region`} style={{ flex: 1, minHeight: 0, justifyContent: contentAlignment === 'center' ? 'center' : undefined }}>
86
+ <View style={{ minHeight: 0, flexShrink: 1, ...(contentAlignment === 'start' ? { flex: 1 } : {}) }}>
84
87
  {logo ? (
85
88
  <View style={{ flexShrink: 0, alignItems: 'center', paddingTop: 24 }}>
86
89
  <SidebarLogoView logo={logo} showWordmark={false} testID="sidebar-logo" />
@@ -90,7 +93,7 @@ export function SidebarRail({
90
93
  fadeColor={palette.flat}
91
94
  testID={testID ? `${testID}-scroll` : 'sidebar-rail-scroll'}
92
95
  {...(IS_WEB ? { dataSet: { bloomSidebarScroll: 'none' } } : {})}
93
- style={{ flex: 1 }}
96
+ style={contentAlignment === 'center' ? { flexGrow: 0, flexShrink: 1, minHeight: 0 } : { flex: 1 }}
94
97
  contentContainerStyle={{
95
98
  flexGrow: 1,
96
99
  justifyContent: 'center',
@@ -109,6 +112,8 @@ export function SidebarRail({
109
112
  {primaryAction ? <View style={{ flexShrink: 0, paddingLeft: 8, paddingRight: 8, paddingBottom: 24 }}>
110
113
  <SidebarPrimaryAction action={primaryAction} rail testID={testID ? `${testID}-primary-action` : undefined} />
111
114
  </View> : null}
115
+ </View>
116
+ </View>
112
117
  {secondaryItems.length > 0 ? (
113
118
  <View
114
119
  role="navigation"
@@ -232,6 +232,8 @@ export interface SidebarUserMenuProps {
232
232
  }
233
233
 
234
234
  export interface SidebarProps {
235
+ /** Center the main navigation group in space above the persistent footer. */
236
+ contentAlignment?: 'start' | 'center';
235
237
  /** App-owned destination content after the built-in rows/tree, inside the same
236
238
  * scroll viewport. Hidden and noninteractive while collapsed; remains mounted
237
239
  * so pagination and disclosure state survive. Not rendered in variant="rail".
@@ -118,3 +118,8 @@ export interface WebCssStyle extends ViewStyle {
118
118
  */
119
119
  [customProperty: `--${string}`]: string | undefined;
120
120
  }
121
+
122
+ /** Position a secondary sticky row below measured chrome, retaining panel inset. */
123
+ export function webSurfaceStickyTopPlus(px: number): ViewStyle['top'] {
124
+ return `calc(var(--bloom-panel-sticky-top, 0px) + ${px}px)` as ViewStyle['top'];
125
+ }