@oxy.so/bloom 2.12.4 → 3.0.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.
- package/README.md +4 -4
- package/docs/button-group.mdx +46 -4
- package/docs/composition.mdx +159 -0
- package/docs/field.mdx +39 -1
- package/docs/glass.mdx +46 -0
- package/docs/layout.mdx +72 -4
- package/docs/migrating-to-3.0.mdx +169 -0
- package/docs/page-header.mdx +192 -36
- package/lib/commonjs/button/Button.js +2 -0
- package/lib/commonjs/button/Button.js.map +1 -1
- package/lib/commonjs/button-group/ButtonGroup.js +124 -19
- package/lib/commonjs/button-group/ButtonGroup.js.map +1 -1
- package/lib/commonjs/control-surface/ControlSurface.js +46 -0
- package/lib/commonjs/control-surface/ControlSurface.js.map +1 -0
- package/lib/commonjs/control-surface/context.js +84 -0
- package/lib/commonjs/control-surface/context.js.map +1 -0
- package/lib/commonjs/control-surface/index.js +26 -0
- package/lib/commonjs/control-surface/index.js.map +1 -0
- package/lib/commonjs/control-surface/types.js +6 -0
- package/lib/commonjs/control-surface/types.js.map +1 -0
- package/lib/commonjs/field/Field.js +71 -26
- package/lib/commonjs/field/Field.js.map +1 -1
- package/lib/commonjs/field/context.js +80 -0
- package/lib/commonjs/field/context.js.map +1 -0
- package/lib/commonjs/field/index.js +7 -0
- package/lib/commonjs/field/index.js.map +1 -1
- package/lib/commonjs/floating/TriggerSlot.js +32 -0
- package/lib/commonjs/floating/TriggerSlot.js.map +1 -1
- package/lib/commonjs/glass/GlassIsland.js +107 -0
- package/lib/commonjs/glass/GlassIsland.js.map +1 -0
- package/lib/commonjs/glass/GlassSurface.js +4 -1
- package/lib/commonjs/glass/GlassSurface.js.map +1 -1
- package/lib/commonjs/glass/index.js +7 -0
- package/lib/commonjs/glass/index.js.map +1 -1
- package/lib/commonjs/index.js +564 -517
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +564 -517
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/label/Label.js +4 -1
- package/lib/commonjs/label/Label.js.map +1 -1
- package/lib/commonjs/layout/bottom-edge.js +3 -42
- package/lib/commonjs/layout/bottom-edge.js.map +1 -1
- package/lib/commonjs/layout/edge-store.js +65 -0
- package/lib/commonjs/layout/edge-store.js.map +1 -0
- package/lib/commonjs/layout/index.js +32 -0
- package/lib/commonjs/layout/index.js.map +1 -1
- package/lib/commonjs/layout/scroll-offset.js +83 -0
- package/lib/commonjs/layout/scroll-offset.js.map +1 -0
- package/lib/commonjs/layout/top-edge.js +109 -0
- package/lib/commonjs/layout/top-edge.js.map +1 -0
- package/lib/commonjs/page-header/EdgeScrim.js +136 -0
- package/lib/commonjs/page-header/EdgeScrim.js.map +1 -0
- package/lib/commonjs/page-header/PageHeader.js +236 -61
- package/lib/commonjs/page-header/PageHeader.js.map +1 -1
- package/lib/commonjs/provider/BloomProvider.js +5 -2
- package/lib/commonjs/provider/BloomProvider.js.map +1 -1
- package/lib/commonjs/social-button/OxyMark.js +2 -2
- package/lib/commonjs/social-button/OxyMark.js.map +1 -1
- package/lib/commonjs/social-button/SocialButton.js +2 -2
- package/lib/commonjs/social-button/SocialButton.js.map +1 -1
- package/lib/commonjs/styles/svg-id.js +29 -0
- package/lib/commonjs/styles/svg-id.js.map +1 -0
- package/lib/commonjs/text-field/TextField.js +39 -6
- package/lib/commonjs/text-field/TextField.js.map +1 -1
- package/lib/commonjs/theme/glass-colors.js +81 -1
- package/lib/commonjs/theme/glass-colors.js.map +1 -1
- package/lib/module/button/Button.js +2 -0
- package/lib/module/button/Button.js.map +1 -1
- package/lib/module/button-group/ButtonGroup.js +124 -19
- package/lib/module/button-group/ButtonGroup.js.map +1 -1
- package/lib/module/control-surface/ControlSurface.js +41 -0
- package/lib/module/control-surface/ControlSurface.js.map +1 -0
- package/lib/module/control-surface/context.js +77 -0
- package/lib/module/control-surface/context.js.map +1 -0
- package/lib/module/control-surface/index.js +5 -0
- package/lib/module/control-surface/index.js.map +1 -0
- package/lib/module/control-surface/types.js +4 -0
- package/lib/module/control-surface/types.js.map +1 -0
- package/lib/module/field/Field.js +72 -27
- package/lib/module/field/Field.js.map +1 -1
- package/lib/module/field/context.js +74 -0
- package/lib/module/field/context.js.map +1 -0
- package/lib/module/field/index.js +1 -0
- package/lib/module/field/index.js.map +1 -1
- package/lib/module/floating/TriggerSlot.js +33 -1
- package/lib/module/floating/TriggerSlot.js.map +1 -1
- package/lib/module/glass/GlassIsland.js +102 -0
- package/lib/module/glass/GlassIsland.js.map +1 -0
- package/lib/module/glass/GlassSurface.js +5 -2
- package/lib/module/glass/GlassSurface.js.map +1 -1
- package/lib/module/glass/index.js +1 -0
- package/lib/module/glass/index.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +2 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/label/Label.js +4 -1
- package/lib/module/label/Label.js.map +1 -1
- package/lib/module/layout/bottom-edge.js +2 -41
- package/lib/module/layout/bottom-edge.js.map +1 -1
- package/lib/module/layout/edge-store.js +58 -0
- package/lib/module/layout/edge-store.js.map +1 -0
- package/lib/module/layout/index.js +8 -3
- package/lib/module/layout/index.js.map +1 -1
- package/lib/module/layout/scroll-offset.js +77 -0
- package/lib/module/layout/scroll-offset.js.map +1 -0
- package/lib/module/layout/top-edge.js +102 -0
- package/lib/module/layout/top-edge.js.map +1 -0
- package/lib/module/page-header/EdgeScrim.js +132 -0
- package/lib/module/page-header/EdgeScrim.js.map +1 -0
- package/lib/module/page-header/PageHeader.js +233 -58
- package/lib/module/page-header/PageHeader.js.map +1 -1
- package/lib/module/provider/BloomProvider.js +5 -2
- package/lib/module/provider/BloomProvider.js.map +1 -1
- package/lib/module/social-button/OxyMark.js +1 -1
- package/lib/module/social-button/OxyMark.js.map +1 -1
- package/lib/module/social-button/SocialButton.js +1 -1
- package/lib/module/social-button/SocialButton.js.map +1 -1
- package/lib/module/styles/svg-id.js +26 -0
- package/lib/module/styles/svg-id.js.map +1 -0
- package/lib/module/text-field/TextField.js +39 -6
- package/lib/module/text-field/TextField.js.map +1 -1
- package/lib/module/theme/glass-colors.js +79 -0
- package/lib/module/theme/glass-colors.js.map +1 -1
- package/lib/typescript/commonjs/button/Button.d.ts.map +1 -1
- package/lib/typescript/commonjs/button-group/ButtonGroup.d.ts.map +1 -1
- package/lib/typescript/commonjs/button-group/types.d.ts +61 -5
- package/lib/typescript/commonjs/button-group/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/control-surface/ControlSurface.d.ts +4 -0
- package/lib/typescript/commonjs/control-surface/ControlSurface.d.ts.map +1 -0
- package/lib/typescript/commonjs/control-surface/context.d.ts +21 -0
- package/lib/typescript/commonjs/control-surface/context.d.ts.map +1 -0
- package/lib/typescript/commonjs/control-surface/index.d.ts +4 -0
- package/lib/typescript/commonjs/control-surface/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/control-surface/types.d.ts +37 -0
- package/lib/typescript/commonjs/control-surface/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/field/Field.d.ts +1 -1
- package/lib/typescript/commonjs/field/Field.d.ts.map +1 -1
- package/lib/typescript/commonjs/field/context.d.ts +55 -0
- package/lib/typescript/commonjs/field/context.d.ts.map +1 -0
- package/lib/typescript/commonjs/field/index.d.ts +2 -0
- package/lib/typescript/commonjs/field/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/field/types.d.ts +22 -3
- package/lib/typescript/commonjs/field/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/floating/TriggerSlot.d.ts.map +1 -1
- package/lib/typescript/commonjs/glass/GlassIsland.d.ts +4 -0
- package/lib/typescript/commonjs/glass/GlassIsland.d.ts.map +1 -0
- package/lib/typescript/commonjs/glass/GlassSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/glass/index.d.ts +2 -1
- package/lib/typescript/commonjs/glass/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/glass/types.d.ts +43 -0
- package/lib/typescript/commonjs/glass/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +2 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/label/Label.d.ts.map +1 -1
- package/lib/typescript/commonjs/label/types.d.ts +7 -1
- package/lib/typescript/commonjs/label/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/bottom-edge.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/edge-store.d.ts +31 -0
- package/lib/typescript/commonjs/layout/edge-store.d.ts.map +1 -0
- package/lib/typescript/commonjs/layout/index.d.ts +8 -3
- package/lib/typescript/commonjs/layout/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/layout/scroll-offset.d.ts +16 -0
- package/lib/typescript/commonjs/layout/scroll-offset.d.ts.map +1 -0
- package/lib/typescript/commonjs/layout/top-edge.d.ts +77 -0
- package/lib/typescript/commonjs/layout/top-edge.d.ts.map +1 -0
- package/lib/typescript/commonjs/page-header/EdgeScrim.d.ts +95 -0
- package/lib/typescript/commonjs/page-header/EdgeScrim.d.ts.map +1 -0
- package/lib/typescript/commonjs/page-header/PageHeader.d.ts +1 -1
- package/lib/typescript/commonjs/page-header/PageHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/page-header/index.d.ts +1 -1
- package/lib/typescript/commonjs/page-header/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/page-header/types.d.ts +97 -10
- package/lib/typescript/commonjs/page-header/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/provider/BloomProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/styles/svg-id.d.ts +20 -0
- package/lib/typescript/commonjs/styles/svg-id.d.ts.map +1 -0
- package/lib/typescript/commonjs/text-field/TextField.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/glass-colors.d.ts +67 -0
- package/lib/typescript/commonjs/theme/glass-colors.d.ts.map +1 -1
- package/lib/typescript/module/button/Button.d.ts.map +1 -1
- package/lib/typescript/module/button-group/ButtonGroup.d.ts.map +1 -1
- package/lib/typescript/module/button-group/types.d.ts +61 -5
- package/lib/typescript/module/button-group/types.d.ts.map +1 -1
- package/lib/typescript/module/control-surface/ControlSurface.d.ts +4 -0
- package/lib/typescript/module/control-surface/ControlSurface.d.ts.map +1 -0
- package/lib/typescript/module/control-surface/context.d.ts +21 -0
- package/lib/typescript/module/control-surface/context.d.ts.map +1 -0
- package/lib/typescript/module/control-surface/index.d.ts +4 -0
- package/lib/typescript/module/control-surface/index.d.ts.map +1 -0
- package/lib/typescript/module/control-surface/types.d.ts +37 -0
- package/lib/typescript/module/control-surface/types.d.ts.map +1 -0
- package/lib/typescript/module/field/Field.d.ts +1 -1
- package/lib/typescript/module/field/Field.d.ts.map +1 -1
- package/lib/typescript/module/field/context.d.ts +55 -0
- package/lib/typescript/module/field/context.d.ts.map +1 -0
- package/lib/typescript/module/field/index.d.ts +2 -0
- package/lib/typescript/module/field/index.d.ts.map +1 -1
- package/lib/typescript/module/field/types.d.ts +22 -3
- package/lib/typescript/module/field/types.d.ts.map +1 -1
- package/lib/typescript/module/floating/TriggerSlot.d.ts.map +1 -1
- package/lib/typescript/module/glass/GlassIsland.d.ts +4 -0
- package/lib/typescript/module/glass/GlassIsland.d.ts.map +1 -0
- package/lib/typescript/module/glass/GlassSurface.d.ts.map +1 -1
- package/lib/typescript/module/glass/index.d.ts +2 -1
- package/lib/typescript/module/glass/index.d.ts.map +1 -1
- package/lib/typescript/module/glass/types.d.ts +43 -0
- package/lib/typescript/module/glass/types.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +2 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/label/Label.d.ts.map +1 -1
- package/lib/typescript/module/label/types.d.ts +7 -1
- package/lib/typescript/module/label/types.d.ts.map +1 -1
- package/lib/typescript/module/layout/bottom-edge.d.ts.map +1 -1
- package/lib/typescript/module/layout/edge-store.d.ts +31 -0
- package/lib/typescript/module/layout/edge-store.d.ts.map +1 -0
- package/lib/typescript/module/layout/index.d.ts +8 -3
- package/lib/typescript/module/layout/index.d.ts.map +1 -1
- package/lib/typescript/module/layout/scroll-offset.d.ts +16 -0
- package/lib/typescript/module/layout/scroll-offset.d.ts.map +1 -0
- package/lib/typescript/module/layout/top-edge.d.ts +77 -0
- package/lib/typescript/module/layout/top-edge.d.ts.map +1 -0
- package/lib/typescript/module/page-header/EdgeScrim.d.ts +95 -0
- package/lib/typescript/module/page-header/EdgeScrim.d.ts.map +1 -0
- package/lib/typescript/module/page-header/PageHeader.d.ts +1 -1
- package/lib/typescript/module/page-header/PageHeader.d.ts.map +1 -1
- package/lib/typescript/module/page-header/index.d.ts +1 -1
- package/lib/typescript/module/page-header/index.d.ts.map +1 -1
- package/lib/typescript/module/page-header/types.d.ts +97 -10
- package/lib/typescript/module/page-header/types.d.ts.map +1 -1
- package/lib/typescript/module/provider/BloomProvider.d.ts.map +1 -1
- package/lib/typescript/module/styles/svg-id.d.ts +20 -0
- package/lib/typescript/module/styles/svg-id.d.ts.map +1 -0
- package/lib/typescript/module/text-field/TextField.d.ts.map +1 -1
- package/lib/typescript/module/theme/glass-colors.d.ts +67 -0
- package/lib/typescript/module/theme/glass-colors.d.ts.map +1 -1
- package/package.json +15 -1
- package/src/button/Button.tsx +10 -1
- package/src/button-group/ButtonGroup.tsx +146 -19
- package/src/button-group/types.ts +68 -5
- package/src/control-surface/ControlSurface.tsx +41 -0
- package/src/control-surface/context.ts +81 -0
- package/src/control-surface/index.ts +4 -0
- package/src/control-surface/types.ts +40 -0
- package/src/field/Field.tsx +84 -27
- package/src/field/context.ts +110 -0
- package/src/field/index.ts +3 -0
- package/src/field/types.ts +22 -3
- package/src/floating/TriggerSlot.tsx +35 -1
- package/src/glass/GlassIsland.tsx +109 -0
- package/src/glass/GlassSurface.tsx +26 -2
- package/src/glass/index.ts +3 -0
- package/src/glass/types.ts +45 -0
- package/src/index.ts +6 -0
- package/src/index.web.ts +6 -0
- package/src/label/Label.tsx +3 -1
- package/src/label/types.ts +7 -1
- package/src/layout/bottom-edge.tsx +3 -56
- package/src/layout/edge-store.ts +69 -0
- package/src/layout/index.ts +8 -3
- package/src/layout/scroll-offset.ts +76 -0
- package/src/layout/top-edge.tsx +109 -0
- package/src/page-header/EdgeScrim.tsx +118 -0
- package/src/page-header/PageHeader.tsx +253 -61
- package/src/page-header/index.ts +9 -1
- package/src/page-header/types.ts +103 -10
- package/src/provider/BloomProvider.tsx +12 -1
- package/src/social-button/OxyMark.tsx +1 -1
- package/src/social-button/SocialButton.tsx +1 -1
- package/src/styles/svg-id.ts +23 -0
- package/src/text-field/TextField.tsx +44 -5
- package/src/theme/glass-colors.ts +80 -0
- package/lib/commonjs/social-button/use-svg-id.js +0 -16
- package/lib/commonjs/social-button/use-svg-id.js.map +0 -1
- package/lib/module/social-button/use-svg-id.js +0 -13
- package/lib/module/social-button/use-svg-id.js.map +0 -1
- package/lib/typescript/commonjs/social-button/use-svg-id.d.ts +0 -7
- package/lib/typescript/commonjs/social-button/use-svg-id.d.ts.map +0 -1
- package/lib/typescript/module/social-button/use-svg-id.d.ts +0 -7
- package/lib/typescript/module/social-button/use-svg-id.d.ts.map +0 -1
- package/src/social-button/use-svg-id.ts +0 -10
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SCRIM_TAIL_RATIO = exports.SCRIM_STOPS = exports.EdgeScrim = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeSvg = _interopRequireWildcard(require("react-native-svg"));
|
|
10
|
+
var _svgId = require("../styles/svg-id.js");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
/**
|
|
14
|
+
* The floating header's EDGE EFFECT: the page colour at the top, fading to
|
|
15
|
+
* nothing below the islands.
|
|
16
|
+
*
|
|
17
|
+
* ── WHY IT IS A GRADIENT AND NOT A BLUR ─────────────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* It is the thing that lets a title sit on a photograph and still be read, and
|
|
20
|
+
* it has exactly one job: no horizontal line anywhere. A translucent rectangle
|
|
21
|
+
* — even a blurred one — ends at its own bottom edge, and that edge is a line
|
|
22
|
+
* across the screen whether or not it is drawn. Apple's scroll edge effect is
|
|
23
|
+
* described the same way: it protects legibility at the edge and must not read
|
|
24
|
+
* as a slab over the content.
|
|
25
|
+
*
|
|
26
|
+
* It is NOT a blur of varying intensity, and saying so matters because the two
|
|
27
|
+
* are easy to conflate and only one of them is here. `backdrop-filter` and
|
|
28
|
+
* `expo-blur` both take a single radius for the whole surface; a falloff would
|
|
29
|
+
* need the ten stacked layers `progressive-blur` uses, which is a real cost for
|
|
30
|
+
* a strip this size. This is an opacity ramp of one flat colour, and that is
|
|
31
|
+
* all it claims to be.
|
|
32
|
+
*
|
|
33
|
+
* ── THE STOPS ───────────────────────────────────────────────────────────────
|
|
34
|
+
*
|
|
35
|
+
* Four of them, shaped as an ease-out rather than a straight line. A LINEAR
|
|
36
|
+
* ramp of opacity is perceptually not linear: it holds too much colour through
|
|
37
|
+
* the middle and then falls off visibly in the last fifth, which puts a soft
|
|
38
|
+
* but findable band across the content. Weighting the fall earlier spends the
|
|
39
|
+
* gradient's height where the eye is looking — the region behind the title —
|
|
40
|
+
* and arrives at zero gently.
|
|
41
|
+
*
|
|
42
|
+
* `TAIL_RATIO` extends the ramp BELOW the header's own box. The header is as
|
|
43
|
+
* tall as its islands plus its padding; the fade needs room after that, or it
|
|
44
|
+
* finishes at the same place the layout does, which is the line again.
|
|
45
|
+
*
|
|
46
|
+
* ── `stopOpacity`, NOT AN `rgba()` STOP ─────────────────────────────────────
|
|
47
|
+
*
|
|
48
|
+
* `react-native-svg` parses `stopColor` for its RGB and DISCARDS the alpha
|
|
49
|
+
* channel, so an `rgba(…, 0.4)` stop renders at FULL strength on native and
|
|
50
|
+
* correctly on web. That is the exact defect documented on `GLASS_SHEEN` in
|
|
51
|
+
* `theme/glass-colors.ts`, where it painted an Android pane as an achromatic
|
|
52
|
+
* white-to-black wipe while every gate stayed green. The colour and the opacity
|
|
53
|
+
* travel here in separate props for the same reason.
|
|
54
|
+
*
|
|
55
|
+
* ── `width="100%"` IS NOT REDUNDANT ─────────────────────────────────────────
|
|
56
|
+
*
|
|
57
|
+
* An `<svg>` is a REPLACED element. With `width: auto` its used width is its
|
|
58
|
+
* INTRINSIC width, and an SVG with no intrinsic size falls back to CSS's
|
|
59
|
+
* default 300 x 150 — so `position: absolute; left: 0; right: 0` does NOT
|
|
60
|
+
* stretch it: `right` is over-constrained and dropped. Measured in Chrome
|
|
61
|
+
* before this prop existed: a 760px-wide header painted a 300 x 150 block of
|
|
62
|
+
* scrim with a hard vertical edge down the middle of the screen, over content
|
|
63
|
+
* that was otherwise untouched.
|
|
64
|
+
*
|
|
65
|
+
* Native is unaffected — react-native-svg lays its host view out with flexbox
|
|
66
|
+
* there — which is exactly why the omission survives review: it is correct on
|
|
67
|
+
* the platform most of this library is tested on. Gate:
|
|
68
|
+
* `src/__tests__/svg-absolute-fill-size.test.ts`.
|
|
69
|
+
*
|
|
70
|
+
* ── THE GRADIENT ID ─────────────────────────────────────────────────────────
|
|
71
|
+
*
|
|
72
|
+
* From `useSvgIdPrefix`, which is `useId` with React's punctuation stripped.
|
|
73
|
+
* Two headers on one page (a split view) must not resolve each other's
|
|
74
|
+
* `url(#…)`, and a module-scope counter — which is what `GlassSurface` uses,
|
|
75
|
+
* and which is right for a native-only surface — increments in a different
|
|
76
|
+
* order on the server than during hydration, so an SSR'd page would reference a
|
|
77
|
+
* gradient that is not there.
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
/** How far past the header's own height the fade continues, as a ratio of it. */
|
|
81
|
+
const SCRIM_TAIL_RATIO = exports.SCRIM_TAIL_RATIO = 0.55;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Offset down the ramp -> how much of the page colour survives there.
|
|
85
|
+
*
|
|
86
|
+
* Read as: solid behind the title, nine tenths gone by three quarters of the
|
|
87
|
+
* way down, nothing at the bottom.
|
|
88
|
+
*/
|
|
89
|
+
const SCRIM_STOPS = exports.SCRIM_STOPS = [{
|
|
90
|
+
offset: 0,
|
|
91
|
+
opacity: 1
|
|
92
|
+
}, {
|
|
93
|
+
offset: 0.42,
|
|
94
|
+
opacity: 0.86
|
|
95
|
+
}, {
|
|
96
|
+
offset: 0.72,
|
|
97
|
+
opacity: 0.38
|
|
98
|
+
}, {
|
|
99
|
+
offset: 1,
|
|
100
|
+
opacity: 0
|
|
101
|
+
}];
|
|
102
|
+
const EdgeScrimComponent = ({
|
|
103
|
+
color,
|
|
104
|
+
testID
|
|
105
|
+
}) => {
|
|
106
|
+
const id = `${(0, _svgId.useSvgIdPrefix)('bloom-page-header-scrim')}gradient`;
|
|
107
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.default, {
|
|
108
|
+
width: "100%",
|
|
109
|
+
height: "100%",
|
|
110
|
+
style: _reactNative.StyleSheet.absoluteFill,
|
|
111
|
+
testID: testID,
|
|
112
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Defs, {
|
|
113
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.LinearGradient, {
|
|
114
|
+
id: id,
|
|
115
|
+
x1: "0",
|
|
116
|
+
y1: "0",
|
|
117
|
+
x2: "0",
|
|
118
|
+
y2: "1",
|
|
119
|
+
children: SCRIM_STOPS.map(stop => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Stop, {
|
|
120
|
+
offset: String(stop.offset),
|
|
121
|
+
stopColor: color,
|
|
122
|
+
stopOpacity: stop.opacity
|
|
123
|
+
}, stop.offset))
|
|
124
|
+
})
|
|
125
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
|
|
126
|
+
x: "0",
|
|
127
|
+
y: "0",
|
|
128
|
+
width: "100%",
|
|
129
|
+
height: "100%",
|
|
130
|
+
fill: `url(#${id})`
|
|
131
|
+
})]
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
const EdgeScrim = exports.EdgeScrim = /*#__PURE__*/(0, _react.memo)(EdgeScrimComponent);
|
|
135
|
+
EdgeScrim.displayName = 'PageHeaderEdgeScrim';
|
|
136
|
+
//# sourceMappingURL=EdgeScrim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSvg","_svgId","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SCRIM_TAIL_RATIO","exports","SCRIM_STOPS","offset","opacity","EdgeScrimComponent","color","testID","id","useSvgIdPrefix","jsxs","width","height","style","StyleSheet","absoluteFill","children","jsx","Defs","LinearGradient","x1","y1","x2","y2","map","stop","Stop","String","stopColor","stopOpacity","Rect","x","y","fill","EdgeScrim","memo","displayName"],"sourceRoot":"../../../src","sources":["page-header/EdgeScrim.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,32 +10,65 @@ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reani
|
|
|
10
10
|
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
11
11
|
var _button = require("../button");
|
|
12
12
|
var _shared = require("../button/shared.js");
|
|
13
|
-
var _index = require("../
|
|
13
|
+
var _index = require("../button-group/index.js");
|
|
14
|
+
var _index2 = require("../control-surface/index.js");
|
|
15
|
+
var _index3 = require("../glass/index.js");
|
|
16
|
+
var _index4 = require("../icons/remix/index.js");
|
|
17
|
+
var _index5 = require("../layout/index.js");
|
|
14
18
|
var _breakpoints = require("../styles/breakpoints.js");
|
|
15
19
|
var _webViewStyle = require("../styles/web-view-style.js");
|
|
16
20
|
var _zIndex = require("../styles/z-index.js");
|
|
17
21
|
var _useTheme = require("../theme/use-theme.js");
|
|
18
|
-
var
|
|
22
|
+
var _index6 = require("../typography/index.js");
|
|
23
|
+
var _EdgeScrim = require("./EdgeScrim.js");
|
|
19
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
25
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
21
26
|
/**
|
|
22
|
-
* `PageHeader`: a screen's top
|
|
23
|
-
* node and actions, composed from the vocabulary Bloom's template headers and
|
|
24
|
-
* the settings modal's compact header use:
|
|
27
|
+
* `PageHeader`: a screen's top chrome.
|
|
25
28
|
*
|
|
26
|
-
*
|
|
27
|
-
* back secondary medium icon button (36, pill, shadow-xs), RiArrowLeftLine 20
|
|
28
|
-
* start group gap 6 (template header `gap-1.5`)
|
|
29
|
-
* title headline-medium, text-primary, px 4 (template `px-1`), one line
|
|
30
|
-
* subtitle body-2-regular, text-secondary (neutral-500), one line
|
|
31
|
-
* actions gap 10 (template `gap-2.5`)
|
|
32
|
-
* background background/full — card / dark neutral-925
|
|
33
|
-
* separator 1px separator-border — neutral-200 / dark neutral-800
|
|
34
|
-
* shadow shadow-xs, fading in with scroll
|
|
29
|
+
* ── THE DEFAULT IS FLOATING ─────────────────────────────────────────────────
|
|
35
30
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
31
|
+
* Not a bar. The back button sits in its OWN translucent capsule, the actions
|
|
32
|
+
* the consumer declared as a group share ONE island, the title floats between
|
|
33
|
+
* them, and the whole thing ends in a vertical gradient rather than a hairline.
|
|
34
|
+
* Content passes under it.
|
|
35
|
+
*
|
|
36
|
+
* Three things follow from that, and each is a prop rather than an assumption:
|
|
37
|
+
*
|
|
38
|
+
* `presentation` `floating` | `bar` — islands, or Bloom's flat strip
|
|
39
|
+
* `placement` `inline` | `overlay` — who reserves the space
|
|
40
|
+
* `scrim`/`titleReveal` — the edge effect and the title,
|
|
41
|
+
* separately
|
|
42
|
+
*
|
|
43
|
+
* The last pair used to be one flag. `transparent` faded the background in with
|
|
44
|
+
* scroll AND hid the title, which is right for a header over a hero photo and
|
|
45
|
+
* wrong everywhere else — and a header that inherited it got both behaviours
|
|
46
|
+
* whether or not it wanted either. They are two questions with two answers now.
|
|
47
|
+
*
|
|
48
|
+
* ── THE ISLANDS ARE THE CONSUMER'S GROUPING ─────────────────────────────────
|
|
49
|
+
*
|
|
50
|
+
* The header never infers grouping by reading its children's types. The
|
|
51
|
+
* `actions` slot is wrapped in a `ControlSurface` with `material: 'glass'`, so
|
|
52
|
+
* a `ButtonGroup` placed there becomes one island with no prop written on it,
|
|
53
|
+
* and two `ButtonGroup`s become two islands. That is a declaration the consumer
|
|
54
|
+
* makes, which is the only way the header can be right about which actions
|
|
55
|
+
* belong together.
|
|
56
|
+
*
|
|
57
|
+
* floating bar
|
|
58
|
+
* chrome islands + gradient opaque strip + hairline + shadow
|
|
59
|
+
* back 36 capsule, glass secondary medium icon `Button`
|
|
60
|
+
* title headline-medium, no capsule headline-medium
|
|
61
|
+
* scroll drives the scrim drives border, background, shadow
|
|
62
|
+
*
|
|
63
|
+
* The geometry both share:
|
|
64
|
+
*
|
|
65
|
+
* bar min-height 56, side inset 16 (below `sm`) / 24
|
|
66
|
+
* islands 36 tall (34 + hairline), 8 apart
|
|
67
|
+
* title headline-medium, text-primary, one line
|
|
68
|
+
* subtitle body-2-regular, secondary, one line
|
|
69
|
+
*
|
|
70
|
+
* Scroll-linked, not timed: everything interpolates over `[0, scrollThreshold]`
|
|
71
|
+
* of the resolved scroll offset. No press scale.
|
|
39
72
|
*/
|
|
40
73
|
|
|
41
74
|
const BAR_HEIGHT = 56;
|
|
@@ -44,8 +77,30 @@ const INSET_WIDE = 24;
|
|
|
44
77
|
const START_GAP = 6;
|
|
45
78
|
const ROW_GAP = 8;
|
|
46
79
|
const ACTIONS_GAP = 10;
|
|
80
|
+
const FLOATING_ACTIONS_GAP = 8;
|
|
47
81
|
const TITLE_PADDING = 4;
|
|
48
82
|
const DEFAULT_THRESHOLD = 20;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* The narrowest the centred title may be squeezed to before it stops yielding
|
|
86
|
+
* to the two sides.
|
|
87
|
+
*
|
|
88
|
+
* Without a floor the centring inset is `max(startWidth, endWidth)` applied to
|
|
89
|
+
* BOTH sides, so on a narrow container two wide sides can ask for more than the
|
|
90
|
+
* container has — and `left + right > width` is a box of negative width, which
|
|
91
|
+
* on web collapses the title to nothing and on native logs a layout error. The
|
|
92
|
+
* title stops centring before that happens and simply sits off-centre, which is
|
|
93
|
+
* the lesser of the two wrongs and the one a reader can still use.
|
|
94
|
+
*/
|
|
95
|
+
const MIN_CENTERED_TITLE_WIDTH = 96;
|
|
96
|
+
|
|
97
|
+
/** 44pt touch target from a 36pt capsule. Only for an island that stands alone. */
|
|
98
|
+
const CAPSULE_HIT_SLOP = {
|
|
99
|
+
top: 4,
|
|
100
|
+
bottom: 4,
|
|
101
|
+
left: 4,
|
|
102
|
+
right: 4
|
|
103
|
+
};
|
|
49
104
|
const NO_INSETS = {
|
|
50
105
|
top: 0,
|
|
51
106
|
right: 0,
|
|
@@ -57,12 +112,17 @@ function PageHeaderComponent({
|
|
|
57
112
|
subtitle,
|
|
58
113
|
titleAlign = 'start',
|
|
59
114
|
headingLevel = 1,
|
|
115
|
+
titleReveal = 'always',
|
|
116
|
+
presentation = 'floating',
|
|
117
|
+
placement = 'inline',
|
|
60
118
|
onBack,
|
|
61
119
|
backLabel = 'Back',
|
|
62
120
|
leading,
|
|
63
121
|
actions,
|
|
64
122
|
border = 'auto',
|
|
65
123
|
transparent = false,
|
|
124
|
+
scrim = 'auto',
|
|
125
|
+
scrimColor,
|
|
66
126
|
scrollY: externalScrollY,
|
|
67
127
|
scrollThreshold = DEFAULT_THRESHOLD,
|
|
68
128
|
sticky = true,
|
|
@@ -71,13 +131,32 @@ function PageHeaderComponent({
|
|
|
71
131
|
testID
|
|
72
132
|
}) {
|
|
73
133
|
const isWeb = _reactNative.Platform.OS === 'web';
|
|
134
|
+
const floating = presentation === 'floating';
|
|
135
|
+
const overlay = placement === 'overlay';
|
|
74
136
|
const theme = (0, _useTheme.useTheme)();
|
|
75
|
-
const {
|
|
76
|
-
width
|
|
77
|
-
} = (0, _reactNative.useWindowDimensions)();
|
|
78
137
|
const insets = (0, _react.useContext)(_reactNativeSafeAreaContext.SafeAreaInsetsContext) ?? NO_INSETS;
|
|
79
138
|
const padTop = safeArea ?? !isWeb ? insets.top : 0;
|
|
139
|
+
|
|
140
|
+
// The header sizes itself against its CONTAINER, not the window: a desktop
|
|
141
|
+
// split view puts a 380px panel next to a 1200px one, and a window-derived
|
|
142
|
+
// inset gives the narrow panel the wide padding. The window is only the seed
|
|
143
|
+
// for the first frame, before `onLayout` has reported.
|
|
144
|
+
const windowWidth = (0, _reactNative.useWindowDimensions)().width;
|
|
145
|
+
const [measuredWidth, setMeasuredWidth] = (0, _react.useState)(0);
|
|
146
|
+
const [measuredHeight, setMeasuredHeight] = (0, _react.useState)(0);
|
|
147
|
+
const width = measuredWidth || windowWidth;
|
|
148
|
+
const height = measuredHeight || padTop + BAR_HEIGHT;
|
|
80
149
|
const sideInset = width >= _breakpoints.BREAKPOINTS.sm ? INSET_WIDE : INSET_COMPACT;
|
|
150
|
+
const onContainerLayout = e => {
|
|
151
|
+
setMeasuredWidth(e.nativeEvent.layout.width);
|
|
152
|
+
setMeasuredHeight(e.nativeEvent.layout.height);
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
// An overlaying header occupies no layout, so it declares what it covers and
|
|
156
|
+
// the content reads it back. Measured rather than computed: a second title
|
|
157
|
+
// line, an enlarged font or a notch all move it, and every one of those is a
|
|
158
|
+
// case a constant was written to survive and does not.
|
|
159
|
+
(0, _index5.useClaimTopEdge)(overlay ? height : 0);
|
|
81
160
|
const paint = (0, _react.useMemo)(() => {
|
|
82
161
|
const {
|
|
83
162
|
neutral
|
|
@@ -94,12 +173,19 @@ function PageHeaderComponent({
|
|
|
94
173
|
shadow: _shared.BUTTON_SHADOW.light
|
|
95
174
|
};
|
|
96
175
|
}, [theme]);
|
|
97
|
-
const internalScrollY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
98
|
-
const scrollY = externalScrollY ?? internalScrollY;
|
|
99
176
|
|
|
100
|
-
//
|
|
177
|
+
// ── The scroll owner ──────────────────────────────────────────────────────
|
|
178
|
+
//
|
|
179
|
+
// Prop, then the nearest `ScrollOffsetProvider`, then the document on web.
|
|
180
|
+
// The context step is the one that matters for a Bloom composition: without
|
|
181
|
+
// it a header inside a scrolling panel followed `window.scrollY`, which on a
|
|
182
|
+
// desktop shell never moves, so the header looked deliberately inert.
|
|
183
|
+
const contextScrollY = (0, _index5.useScrollOffset)();
|
|
184
|
+
const internalScrollY = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
185
|
+
const scrollY = externalScrollY ?? contextScrollY ?? internalScrollY;
|
|
186
|
+
const followsWindow = !externalScrollY && !contextScrollY;
|
|
101
187
|
(0, _react.useEffect)(() => {
|
|
102
|
-
if (!isWeb ||
|
|
188
|
+
if (!isWeb || !followsWindow || typeof window === 'undefined') return undefined;
|
|
103
189
|
const onScroll = () => {
|
|
104
190
|
internalScrollY.value = window.scrollY;
|
|
105
191
|
};
|
|
@@ -108,7 +194,7 @@ function PageHeaderComponent({
|
|
|
108
194
|
passive: true
|
|
109
195
|
});
|
|
110
196
|
return () => window.removeEventListener('scroll', onScroll);
|
|
111
|
-
}, [isWeb,
|
|
197
|
+
}, [isWeb, followsWindow, internalScrollY]);
|
|
112
198
|
const threshold = Math.max(1, scrollThreshold);
|
|
113
199
|
const shadowStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
114
200
|
opacity: (0, _reactNativeReanimated.interpolate)(scrollY.value, [0, threshold], [0, 1], _reactNativeReanimated.Extrapolation.CLAMP)
|
|
@@ -116,27 +202,39 @@ function PageHeaderComponent({
|
|
|
116
202
|
const backgroundStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
117
203
|
opacity: transparent ? (0, _reactNativeReanimated.interpolate)(scrollY.value, [0, threshold], [0, 1], _reactNativeReanimated.Extrapolation.CLAMP) : 1
|
|
118
204
|
}), [scrollY, threshold, transparent]);
|
|
205
|
+
const scrimStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
206
|
+
opacity: scrim === 'always' ? 1 : scrim === 'none' ? 0 : (0, _reactNativeReanimated.interpolate)(scrollY.value, [0, threshold], [0, 1], _reactNativeReanimated.Extrapolation.CLAMP)
|
|
207
|
+
}), [scrollY, threshold, scrim]);
|
|
119
208
|
|
|
120
|
-
//
|
|
209
|
+
// Separate from the background's: a header can be transparent and still name
|
|
210
|
+
// its screen, and one over a hero photo can do the opposite.
|
|
121
211
|
const titleStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
122
|
-
opacity:
|
|
123
|
-
}), [scrollY, threshold,
|
|
212
|
+
opacity: titleReveal === 'always' ? 1 : (0, _reactNativeReanimated.interpolate)(scrollY.value, [0, threshold], [0, 1], _reactNativeReanimated.Extrapolation.CLAMP)
|
|
213
|
+
}), [scrollY, threshold, titleReveal]);
|
|
124
214
|
const borderStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
125
215
|
opacity: border === 'always' ? 1 : border === 'none' ? 0 : (0, _reactNativeReanimated.interpolate)(scrollY.value, [0, threshold], [0, 1], _reactNativeReanimated.Extrapolation.CLAMP)
|
|
126
216
|
}), [scrollY, threshold, border]);
|
|
127
217
|
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
|
|
131
|
-
|
|
218
|
+
// ── Centring ──────────────────────────────────────────────────────────────
|
|
219
|
+
//
|
|
220
|
+
// Inset the title by the WIDER side so it sits on the container's centre
|
|
221
|
+
// whatever the two sides hold. A slot that is not rendered contributes 0
|
|
222
|
+
// rather than its last measurement: `onLayout` does not fire on unmount, so a
|
|
223
|
+
// header that loses its actions would otherwise keep centring around them.
|
|
224
|
+
const [startMeasure, setStartMeasure] = (0, _react.useState)(0);
|
|
225
|
+
const [endMeasure, setEndMeasure] = (0, _react.useState)(0);
|
|
132
226
|
const centered = titleAlign === 'center';
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
const
|
|
227
|
+
const hasStart = onBack != null || leading != null;
|
|
228
|
+
const hasEnd = actions != null;
|
|
229
|
+
const startWidth = hasStart ? startMeasure : 0;
|
|
230
|
+
const endWidth = hasEnd ? endMeasure : 0;
|
|
231
|
+
const onStartLayout = e => setStartMeasure(e.nativeEvent.layout.width);
|
|
232
|
+
const onEndLayout = e => setEndMeasure(e.nativeEvent.layout.width);
|
|
233
|
+
const centerInset = Math.min(Math.max(startWidth, endWidth) + ROW_GAP, Math.max(0, (width - 2 * sideInset - MIN_CENTERED_TITLE_WIDTH) / 2));
|
|
136
234
|
const titleBlock = title != null || subtitle != null ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
|
|
137
235
|
style: [styles.titleBlock, centered ? styles.titleBlockCentered : styles.titleBlockStart, titleStyle],
|
|
138
236
|
testID: testID ? `${testID}-title-block` : undefined,
|
|
139
|
-
children: [typeof title === 'string' || typeof title === 'number' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
237
|
+
children: [typeof title === 'string' || typeof title === 'number' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index6.Text, {
|
|
140
238
|
role: "heading",
|
|
141
239
|
"aria-level": headingLevel,
|
|
142
240
|
variant: "headline-medium",
|
|
@@ -147,7 +245,7 @@ function PageHeaderComponent({
|
|
|
147
245
|
},
|
|
148
246
|
testID: testID ? `${testID}-title` : undefined,
|
|
149
247
|
children: title
|
|
150
|
-
}) : title, typeof subtitle === 'string' || typeof subtitle === 'number' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
248
|
+
}) : title, typeof subtitle === 'string' || typeof subtitle === 'number' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index6.Text, {
|
|
151
249
|
variant: "body-2-regular",
|
|
152
250
|
numberOfLines: 1,
|
|
153
251
|
style: {
|
|
@@ -158,16 +256,56 @@ function PageHeaderComponent({
|
|
|
158
256
|
children: subtitle
|
|
159
257
|
}) : subtitle]
|
|
160
258
|
}) : null;
|
|
161
|
-
const
|
|
259
|
+
const backButton = onBack ? floating ?
|
|
260
|
+
/*#__PURE__*/
|
|
261
|
+
// Its own island: a back action is not a member of the page's action
|
|
262
|
+
// group, and a `role="group"` of one is noise a screen reader reads out.
|
|
263
|
+
// The control inside is a `ButtonGroupItem` because that is Bloom's
|
|
264
|
+
// island-aware control — it reads the material `GlassIsland` publishes
|
|
265
|
+
// and paints flush — rather than a second implementation of the same
|
|
266
|
+
// hover, press, focus and disabled behaviour.
|
|
267
|
+
(0, _jsxRuntime.jsx)(_index3.GlassIsland, {
|
|
268
|
+
testID: testID ? `${testID}-back-island` : undefined,
|
|
269
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ButtonGroupItem, {
|
|
270
|
+
iconOnly: true,
|
|
271
|
+
leadingIcon: _index4.RiArrowLeftLine,
|
|
272
|
+
accessibilityLabel: backLabel,
|
|
273
|
+
onPress: onBack,
|
|
274
|
+
hitSlop: CAPSULE_HIT_SLOP,
|
|
275
|
+
testID: testID ? `${testID}-back` : undefined
|
|
276
|
+
})
|
|
277
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
|
|
278
|
+
variant: "secondary",
|
|
279
|
+
size: "medium",
|
|
280
|
+
iconOnly: true,
|
|
281
|
+
leadingIcon: _index4.RiArrowLeftLine,
|
|
282
|
+
accessibilityLabel: backLabel,
|
|
283
|
+
onPress: onBack,
|
|
284
|
+
testID: testID ? `${testID}-back` : undefined
|
|
285
|
+
}) : null;
|
|
286
|
+
const containerWeb = isWeb && sticky && !overlay ? {
|
|
162
287
|
position: _webViewStyle.WEB_POSITION_STICKY,
|
|
163
288
|
top: 0,
|
|
164
289
|
zIndex: _zIndex.Z_INDEX.floating
|
|
165
290
|
} : null;
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
291
|
+
const chrome = floating ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
292
|
+
// A PROP: react-native-web resolves `none` from the prop path only, and
|
|
293
|
+
// the scrim must never take a press meant for the content under it.
|
|
294
|
+
pointerEvents: "none",
|
|
295
|
+
style: [styles.scrim, {
|
|
296
|
+
height: height * (1 + _EdgeScrim.SCRIM_TAIL_RATIO)
|
|
297
|
+
}, scrimStyle],
|
|
298
|
+
testID: testID ? `${testID}-scrim` : undefined,
|
|
299
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_EdgeScrim.EdgeScrim
|
|
300
|
+
// The PAGE colour by default: the scrim's job is to fade content into
|
|
301
|
+
// the surface it is leaving, so the right colour is the one that
|
|
302
|
+
// surface already is. A screen that paints its own background has to
|
|
303
|
+
// say so — the header cannot read the pixel behind it.
|
|
304
|
+
, {
|
|
305
|
+
color: scrimColor ?? theme.colors.background,
|
|
306
|
+
testID: testID ? `${testID}-scrim-gradient` : undefined
|
|
307
|
+
})
|
|
308
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
171
309
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
172
310
|
pointerEvents: "none",
|
|
173
311
|
style: [_reactNative.StyleSheet.absoluteFill, {
|
|
@@ -186,33 +324,59 @@ function PageHeaderComponent({
|
|
|
186
324
|
backgroundColor: paint.separator
|
|
187
325
|
}, borderStyle],
|
|
188
326
|
testID: testID ? `${testID}-border` : undefined
|
|
189
|
-
})
|
|
327
|
+
})]
|
|
328
|
+
});
|
|
329
|
+
const actionsSlot = actions ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
330
|
+
style: [styles.actions, {
|
|
331
|
+
gap: floating ? FLOATING_ACTIONS_GAP : ACTIONS_GAP
|
|
332
|
+
}],
|
|
333
|
+
onLayout: centered ? onEndLayout : undefined
|
|
334
|
+
// `box-none` so the gaps BETWEEN islands stay transparent to touch. A
|
|
335
|
+
// floating header covers content it does not own, and an invisible
|
|
336
|
+
// rectangle that swallows presses across the width of the screen is the
|
|
337
|
+
// defect this presentation could most easily ship.
|
|
338
|
+
//
|
|
339
|
+
// FLOATING ONLY, and the asymmetry is the point: a `bar` is an OPAQUE
|
|
340
|
+
// strip, and letting presses through the part of it that draws no control
|
|
341
|
+
// would hand a click on solid chrome to whatever list row is scrolled
|
|
342
|
+
// underneath.
|
|
343
|
+
,
|
|
344
|
+
pointerEvents: floating ? 'box-none' : undefined,
|
|
345
|
+
testID: testID ? `${testID}-actions` : undefined,
|
|
346
|
+
children: floating ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.ControlSurface, {
|
|
347
|
+
material: "glass",
|
|
348
|
+
children: actions
|
|
349
|
+
}) : actions
|
|
350
|
+
}) : null;
|
|
351
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
352
|
+
testID: testID,
|
|
353
|
+
onLayout: onContainerLayout,
|
|
354
|
+
pointerEvents: overlay ? 'box-none' : undefined,
|
|
355
|
+
style: [styles.container, {
|
|
356
|
+
paddingTop: padTop
|
|
357
|
+
}, overlay ? [styles.overlay, {
|
|
358
|
+
zIndex: _zIndex.Z_INDEX.floating
|
|
359
|
+
}] : null, containerWeb, style],
|
|
360
|
+
children: [chrome, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
190
361
|
style: [styles.bar, {
|
|
191
362
|
paddingLeft: sideInset,
|
|
192
363
|
paddingRight: sideInset
|
|
193
364
|
}],
|
|
365
|
+
pointerEvents: floating ? 'box-none' : undefined,
|
|
194
366
|
testID: testID ? `${testID}-bar` : undefined,
|
|
195
367
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
196
368
|
style: [styles.start, !centered && styles.startFill],
|
|
197
369
|
onLayout: centered ? onStartLayout : undefined,
|
|
370
|
+
pointerEvents: floating ? 'box-none' : undefined,
|
|
198
371
|
testID: testID ? `${testID}-start` : undefined,
|
|
199
|
-
children: [
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
leadingIcon: _index.RiArrowLeftLine,
|
|
204
|
-
accessibilityLabel: backLabel,
|
|
205
|
-
onPress: onBack,
|
|
206
|
-
testID: testID ? `${testID}-back` : undefined
|
|
207
|
-
}) : null, leading, centered ? null : titleBlock]
|
|
372
|
+
children: [backButton, floating && leading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.ControlSurface, {
|
|
373
|
+
material: "glass",
|
|
374
|
+
children: leading
|
|
375
|
+
}) : leading, centered ? null : titleBlock]
|
|
208
376
|
}), centered ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
209
|
-
style: styles.spacer
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
onLayout: centered ? onEndLayout : undefined,
|
|
213
|
-
testID: testID ? `${testID}-actions` : undefined,
|
|
214
|
-
children: actions
|
|
215
|
-
}) : null, centered && titleBlock ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
377
|
+
style: styles.spacer,
|
|
378
|
+
pointerEvents: "none"
|
|
379
|
+
}) : null, actionsSlot, centered && titleBlock ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
216
380
|
pointerEvents: "box-none",
|
|
217
381
|
style: [styles.centerSlot, {
|
|
218
382
|
left: sideInset + centerInset,
|
|
@@ -229,6 +393,18 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
229
393
|
width: '100%',
|
|
230
394
|
position: 'relative'
|
|
231
395
|
},
|
|
396
|
+
overlay: {
|
|
397
|
+
position: 'absolute',
|
|
398
|
+
top: 0,
|
|
399
|
+
left: 0,
|
|
400
|
+
right: 0
|
|
401
|
+
},
|
|
402
|
+
scrim: {
|
|
403
|
+
position: 'absolute',
|
|
404
|
+
top: 0,
|
|
405
|
+
left: 0,
|
|
406
|
+
right: 0
|
|
407
|
+
},
|
|
232
408
|
border: {
|
|
233
409
|
position: 'absolute',
|
|
234
410
|
left: 0,
|
|
@@ -277,7 +453,6 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
277
453
|
flexDirection: 'row',
|
|
278
454
|
alignItems: 'center',
|
|
279
455
|
justifyContent: 'flex-end',
|
|
280
|
-
gap: ACTIONS_GAP,
|
|
281
456
|
flexShrink: 0
|
|
282
457
|
}
|
|
283
458
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_button","_shared","_index","_breakpoints","_webViewStyle","_zIndex","_useTheme","_index2","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BAR_HEIGHT","INSET_COMPACT","INSET_WIDE","START_GAP","ROW_GAP","ACTIONS_GAP","TITLE_PADDING","DEFAULT_THRESHOLD","NO_INSETS","top","right","bottom","left","PageHeaderComponent","title","subtitle","titleAlign","headingLevel","onBack","backLabel","leading","actions","border","transparent","scrollY","externalScrollY","scrollThreshold","sticky","safeArea","style","testID","isWeb","Platform","OS","theme","useTheme","width","useWindowDimensions","insets","useContext","SafeAreaInsetsContext","padTop","sideInset","BREAKPOINTS","sm","paint","useMemo","neutral","resolveButtonRamps","isDark","background","mixColor","separator","textSecondary","shadow","BUTTON_SHADOW","dark","colors","card","light","internalScrollY","useSharedValue","useEffect","window","undefined","onScroll","value","addEventListener","passive","removeEventListener","threshold","Math","max","shadowStyle","useAnimatedStyle","opacity","interpolate","Extrapolation","CLAMP","backgroundStyle","titleStyle","borderStyle","startWidth","setStartWidth","useState","endWidth","setEndWidth","centered","onStartLayout","nativeEvent","layout","onEndLayout","centerInset","titleBlock","jsxs","View","styles","titleBlockCentered","titleBlockStart","children","jsx","Text","role","variant","numberOfLines","color","text","textAlign","containerWeb","position","WEB_POSITION_STICKY","zIndex","Z_INDEX","floating","container","paddingTop","pointerEvents","StyleSheet","absoluteFill","boxShadow","backgroundColor","bar","paddingLeft","paddingRight","start","startFill","onLayout","Button","size","iconOnly","leadingIcon","RiArrowLeftLine","accessibilityLabel","onPress","spacer","centerSlot","create","height","minHeight","flexDirection","alignItems","gap","paddingBottom","minWidth","flex","justifyContent","flexShrink","PageHeader","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["page-header/PageHeader.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,sBAAA,GAAAH,uBAAA,CAAAC,OAAA;AAMA,IAAAG,2BAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AAAqC,IAAAY,WAAA,GAAAZ,OAAA;AAAA,SAAAD,wBAAAc,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAhB,uBAAA,YAAAA,CAAAc,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAGrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMkB,UAAU,GAAG,EAAE;AACrB,MAAMC,aAAa,GAAG,EAAE;AACxB,MAAMC,UAAU,GAAG,EAAE;AACrB,MAAMC,SAAS,GAAG,CAAC;AACnB,MAAMC,OAAO,GAAG,CAAC;AACjB,MAAMC,WAAW,GAAG,EAAE;AACtB,MAAMC,aAAa,GAAG,CAAC;AACvB,MAAMC,iBAAiB,GAAG,EAAE;AAE5B,MAAMC,SAAS,GAAG;EAAEC,GAAG,EAAE,CAAC;EAAEC,KAAK,EAAE,CAAC;EAAEC,MAAM,EAAE,CAAC;EAAEC,IAAI,EAAE;AAAE,CAAC;AAE1D,SAASC,mBAAmBA,CAAC;EAC3BC,KAAK;EACLC,QAAQ;EACRC,UAAU,GAAG,OAAO;EACpBC,YAAY,GAAG,CAAC;EAChBC,MAAM;EACNC,SAAS,GAAG,MAAM;EAClBC,OAAO;EACPC,OAAO;EACPC,MAAM,GAAG,MAAM;EACfC,WAAW,GAAG,KAAK;EACnBC,OAAO,EAAEC,eAAe;EACxBC,eAAe,GAAGnB,iBAAiB;EACnCoB,MAAM,GAAG,IAAI;EACbC,QAAQ;EACRC,KAAK;EACLC;AACe,CAAC,EAAE;EAClB,MAAMC,KAAK,GAAGC,qBAAQ,CAACC,EAAE,KAAK,KAAK;EACnC,MAAMC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EACvC,MAAMC,MAAM,GAAG,IAAAC,iBAAU,EAACC,iDAAqB,CAAC,IAAIhC,SAAS;EAC7D,MAAMiC,MAAM,GAAIb,QAAQ,IAAI,CAACG,KAAK,GAAIO,MAAM,CAAC7B,GAAG,GAAG,CAAC;EACpD,MAAMiC,SAAS,GAAGN,KAAK,IAAIO,wBAAW,CAACC,EAAE,GAAG1C,UAAU,GAAGD,aAAa;EAEtE,MAAM4C,KAAK,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC1B,MAAM;MAAEC;IAAQ,CAAC,GAAG,IAAAC,0BAAkB,EAACd,KAAK,CAAC;IAC7C,OAAOA,KAAK,CAACe,MAAM,GACf;MACEC,UAAU,EAAE,IAAAC,gBAAQ,EAACJ,OAAO,CAAC,GAAG,CAAC,EAAEA,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;MACrDK,SAAS,EAAEL,OAAO,CAAC,GAAG,CAAC;MACvBM,aAAa,EAAEN,OAAO,CAAC,GAAG,CAAC;MAC3BO,MAAM,EAAEC,qBAAa,CAACC;IACxB,CAAC,GACD;MACEN,UAAU,EAAEhB,KAAK,CAACuB,MAAM,CAACC,IAAI;MAC7BN,SAAS,EAAEL,OAAO,CAAC,GAAG,CAAC;MACvBM,aAAa,EAAEN,OAAO,CAAC,GAAG,CAAC;MAC3BO,MAAM,EAAEC,qBAAa,CAACI;IACxB,CAAC;EACP,CAAC,EAAE,CAACzB,KAAK,CAAC,CAAC;EAEX,MAAM0B,eAAe,GAAG,IAAAC,qCAAc,EAAC,CAAC,CAAC;EACzC,MAAMrC,OAAO,GAAGC,eAAe,IAAImC,eAAe;;EAElD;EACA,IAAAE,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC/B,KAAK,IAAIN,eAAe,IAAI,OAAOsC,MAAM,KAAK,WAAW,EAAE,OAAOC,SAAS;IAChF,MAAMC,QAAQ,GAAGA,CAAA,KAAM;MACrBL,eAAe,CAACM,KAAK,GAAGH,MAAM,CAACvC,OAAO;IACxC,CAAC;IACDyC,QAAQ,CAAC,CAAC;IACVF,MAAM,CAACI,gBAAgB,CAAC,QAAQ,EAAEF,QAAQ,EAAE;MAAEG,OAAO,EAAE;IAAK,CAAC,CAAC;IAC9D,OAAO,MAAML,MAAM,CAACM,mBAAmB,CAAC,QAAQ,EAAEJ,QAAQ,CAAC;EAC7D,CAAC,EAAE,CAAClC,KAAK,EAAEN,eAAe,EAAEmC,eAAe,CAAC,CAAC;EAE7C,MAAMU,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE9C,eAAe,CAAC;EAE9C,MAAM+C,WAAW,GAAG,IAAAC,uCAAgB,EAAC,OAAO;IAC1CC,OAAO,EAAE,IAAAC,kCAAW,EAACpD,OAAO,CAAC0C,KAAK,EAAE,CAAC,CAAC,EAAEI,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEO,oCAAa,CAACC,KAAK;EACjF,CAAC,CAAC,EAAE,CAACtD,OAAO,EAAE8C,SAAS,CAAC,CAAC;EAEzB,MAAMS,eAAe,GAAG,IAAAL,uCAAgB,EAAC,OAAO;IAC9CC,OAAO,EAAEpD,WAAW,GAChB,IAAAqD,kCAAW,EAACpD,OAAO,CAAC0C,KAAK,EAAE,CAAC,CAAC,EAAEI,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEO,oCAAa,CAACC,KAAK,CAAC,GACvE;EACN,CAAC,CAAC,EAAE,CAACtD,OAAO,EAAE8C,SAAS,EAAE/C,WAAW,CAAC,CAAC;;EAEtC;EACA,MAAMyD,UAAU,GAAG,IAAAN,uCAAgB,EAAC,OAAO;IACzCC,OAAO,EAAEpD,WAAW,GAChB,IAAAqD,kCAAW,EAACpD,OAAO,CAAC0C,KAAK,EAAE,CAAC,CAAC,EAAEI,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEO,oCAAa,CAACC,KAAK,CAAC,GACvE;EACN,CAAC,CAAC,EAAE,CAACtD,OAAO,EAAE8C,SAAS,EAAE/C,WAAW,CAAC,CAAC;EAEtC,MAAM0D,WAAW,GAAG,IAAAP,uCAAgB,EAAC,OAAO;IAC1CC,OAAO,EACLrD,MAAM,KAAK,QAAQ,GACf,CAAC,GACDA,MAAM,KAAK,MAAM,GACf,CAAC,GACD,IAAAsD,kCAAW,EAACpD,OAAO,CAAC0C,KAAK,EAAE,CAAC,CAAC,EAAEI,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEO,oCAAa,CAACC,KAAK;EAChF,CAAC,CAAC,EAAE,CAACtD,OAAO,EAAE8C,SAAS,EAAEhD,MAAM,CAAC,CAAC;;EAEjC;EACA;EACA,MAAM,CAAC4D,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EAC/C,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAF,eAAQ,EAAC,CAAC,CAAC;EAC3C,MAAMG,QAAQ,GAAGvE,UAAU,KAAK,QAAQ;EACxC,MAAMwE,aAAa,GAAI3G,CAAoB,IAAKsG,aAAa,CAACtG,CAAC,CAAC4G,WAAW,CAACC,MAAM,CAACtD,KAAK,CAAC;EACzF,MAAMuD,WAAW,GAAI9G,CAAoB,IAAKyG,WAAW,CAACzG,CAAC,CAAC4G,WAAW,CAACC,MAAM,CAACtD,KAAK,CAAC;EACrF,MAAMwD,WAAW,GAAGrB,IAAI,CAACC,GAAG,CAACU,UAAU,EAAEG,QAAQ,CAAC,GAAGjF,OAAO;EAE5D,MAAMyF,UAAU,GACd/E,KAAK,IAAI,IAAI,IAAIC,QAAQ,IAAI,IAAI,gBAC/B,IAAAnC,WAAA,CAAAkH,IAAA,EAAC5H,sBAAA,CAAAqB,OAAQ,CAACwG,IAAI;IACZlE,KAAK,EAAE,CACLmE,MAAM,CAACH,UAAU,EACjBN,QAAQ,GAAGS,MAAM,CAACC,kBAAkB,GAAGD,MAAM,CAACE,eAAe,EAC7DlB,UAAU,CACV;IACFlD,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,cAAc,GAAGkC,SAAU;IAAAmC,QAAA,GAEpD,OAAOrF,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,gBACrD,IAAAlC,WAAA,CAAAwH,GAAA,EAACzH,OAAA,CAAA0H,IAAI;MACHC,IAAI,EAAC,SAAS;MACd,cAAYrF,YAAa;MACzBsF,OAAO,EAAC,iBAAiB;MACzBC,aAAa,EAAE,CAAE;MACjB3E,KAAK,EAAE;QAAE4E,KAAK,EAAEvE,KAAK,CAACuB,MAAM,CAACiD,IAAI;QAAEC,SAAS,EAAEpB,QAAQ,GAAG,QAAQ,GAAG;MAAO,CAAE;MAC7EzD,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,QAAQ,GAAGkC,SAAU;MAAAmC,QAAA,EAE9CrF;IAAK,CACF,CAAC,GAEPA,KACD,EACA,OAAOC,QAAQ,KAAK,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,gBAC3D,IAAAnC,WAAA,CAAAwH,GAAA,EAACzH,OAAA,CAAA0H,IAAI;MACHE,OAAO,EAAC,gBAAgB;MACxBC,aAAa,EAAE,CAAE;MACjB3E,KAAK,EAAE;QAAE4E,KAAK,EAAE5D,KAAK,CAACQ,aAAa;QAAEsD,SAAS,EAAEpB,QAAQ,GAAG,QAAQ,GAAG;MAAO,CAAE;MAC/EzD,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,WAAW,GAAGkC,SAAU;MAAAmC,QAAA,EAEjDpF;IAAQ,CACL,CAAC,GAEPA,QACD;EAAA,CACY,CAAC,GACd,IAAI;EAEV,MAAM6F,YAAgC,GACpC7E,KAAK,IAAIJ,MAAM,GAAG;IAAEkF,QAAQ,EAAEC,iCAAmB;IAAErG,GAAG,EAAE,CAAC;IAAEsG,MAAM,EAAEC,eAAO,CAACC;EAAS,CAAC,GAAG,IAAI;EAE9F,oBACE,IAAArI,WAAA,CAAAkH,IAAA,EAAC7H,YAAA,CAAA8H,IAAI;IACHjE,MAAM,EAAEA,MAAO;IACfD,KAAK,EAAE,CAACmE,MAAM,CAACkB,SAAS,EAAE;MAAEC,UAAU,EAAE1E;IAAO,CAAC,EAAEmE,YAAY,EAAE/E,KAAK,CAAE;IAAAsE,QAAA,gBAEvE,IAAAvH,WAAA,CAAAwH,GAAA,EAAClI,sBAAA,CAAAqB,OAAQ,CAACwG,IAAI;MACZqB,aAAa,EAAC,MAAM;MACpBvF,KAAK,EAAE,CAACwF,uBAAU,CAACC,YAAY,EAAE;QAAEC,SAAS,EAAE1E,KAAK,CAACS;MAAO,CAAC,EAAEmB,WAAW,CAAE;MAC3E3C,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,SAAS,GAAGkC;IAAU,CACjD,CAAC,eACF,IAAApF,WAAA,CAAAwH,GAAA,EAAClI,sBAAA,CAAAqB,OAAQ,CAACwG,IAAI;MACZqB,aAAa,EAAC,MAAM;MACpBvF,KAAK,EAAE,CAACwF,uBAAU,CAACC,YAAY,EAAE;QAAEE,eAAe,EAAE3E,KAAK,CAACK;MAAW,CAAC,EAAE6B,eAAe,CAAE;MACzFjD,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,aAAa,GAAGkC;IAAU,CACrD,CAAC,eACF,IAAApF,WAAA,CAAAwH,GAAA,EAAClI,sBAAA,CAAAqB,OAAQ,CAACwG,IAAI;MACZqB,aAAa,EAAC,MAAM;MACpBvF,KAAK,EAAE,CAACmE,MAAM,CAAC1E,MAAM,EAAE;QAAEkG,eAAe,EAAE3E,KAAK,CAACO;MAAU,CAAC,EAAE6B,WAAW,CAAE;MAC1EnD,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,SAAS,GAAGkC;IAAU,CACjD,CAAC,eACF,IAAApF,WAAA,CAAAkH,IAAA,EAAC7H,YAAA,CAAA8H,IAAI;MACHlE,KAAK,EAAE,CAACmE,MAAM,CAACyB,GAAG,EAAE;QAAEC,WAAW,EAAEhF,SAAS;QAAEiF,YAAY,EAAEjF;MAAU,CAAC,CAAE;MACzEZ,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,MAAM,GAAGkC,SAAU;MAAAmC,QAAA,gBAE7C,IAAAvH,WAAA,CAAAkH,IAAA,EAAC7H,YAAA,CAAA8H,IAAI;QACHlE,KAAK,EAAE,CAACmE,MAAM,CAAC4B,KAAK,EAAE,CAACrC,QAAQ,IAAIS,MAAM,CAAC6B,SAAS,CAAE;QACrDC,QAAQ,EAAEvC,QAAQ,GAAGC,aAAa,GAAGxB,SAAU;QAC/ClC,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,QAAQ,GAAGkC,SAAU;QAAAmC,QAAA,GAE9CjF,MAAM,gBACL,IAAAtC,WAAA,CAAAwH,GAAA,EAAChI,OAAA,CAAA2J,MAAM;UACLxB,OAAO,EAAC,WAAW;UACnByB,IAAI,EAAC,QAAQ;UACbC,QAAQ;UACRC,WAAW,EAAEC,sBAAgB;UAC7BC,kBAAkB,EAAEjH,SAAU;UAC9BkH,OAAO,EAAEnH,MAAO;UAChBY,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,OAAO,GAAGkC;QAAU,CAC/C,CAAC,GACA,IAAI,EACP5C,OAAO,EACPmE,QAAQ,GAAG,IAAI,GAAGM,UAAU;MAAA,CACzB,CAAC,EACNN,QAAQ,gBAAG,IAAA3G,WAAA,CAAAwH,GAAA,EAACnI,YAAA,CAAA8H,IAAI;QAAClE,KAAK,EAAEmE,MAAM,CAACsC;MAAO,CAAE,CAAC,GAAG,IAAI,EAChDjH,OAAO,gBACN,IAAAzC,WAAA,CAAAwH,GAAA,EAACnI,YAAA,CAAA8H,IAAI;QACHlE,KAAK,EAAEmE,MAAM,CAAC3E,OAAQ;QACtByG,QAAQ,EAAEvC,QAAQ,GAAGI,WAAW,GAAG3B,SAAU;QAC7ClC,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,UAAU,GAAGkC,SAAU;QAAAmC,QAAA,EAEhD9E;MAAO,CACJ,CAAC,GACL,IAAI,EACPkE,QAAQ,IAAIM,UAAU,gBACrB,IAAAjH,WAAA,CAAAwH,GAAA,EAACnI,YAAA,CAAA8H,IAAI;QACHqB,aAAa,EAAC,UAAU;QACxBvF,KAAK,EAAE,CAACmE,MAAM,CAACuC,UAAU,EAAE;UAAE3H,IAAI,EAAE8B,SAAS,GAAGkD,WAAW;UAAElF,KAAK,EAAEgC,SAAS,GAAGkD;QAAY,CAAC,CAAE;QAC9F9D,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,SAAS,GAAGkC,SAAU;QAAAmC,QAAA,EAE/CN;MAAU,CACP,CAAC,GACL,IAAI;IAAA,CACJ,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,MAAMG,MAAM,GAAGqB,uBAAU,CAACmB,MAAM,CAAC;EAC/BtB,SAAS,EAAE;IACT9E,KAAK,EAAE,MAAM;IACbyE,QAAQ,EAAE;EACZ,CAAC;EACDvF,MAAM,EAAE;IACNuF,QAAQ,EAAE,UAAU;IACpBjG,IAAI,EAAE,CAAC;IACPF,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACT8H,MAAM,EAAE;EACV,CAAC;EACDhB,GAAG,EAAE;IACHiB,SAAS,EAAE1I,UAAU;IACrB2I,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAEzI,OAAO;IACZ+G,UAAU,EAAE,CAAC;IACb2B,aAAa,EAAE;EACjB,CAAC;EACDlB,KAAK,EAAE;IACLe,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE1I,SAAS;IACd4I,QAAQ,EAAE;EACZ,CAAC;EACDlB,SAAS,EAAE;IACTmB,IAAI,EAAE;EACR,CAAC;EACDV,MAAM,EAAE;IACNU,IAAI,EAAE;EACR,CAAC;EACDnD,UAAU,EAAE;IACVkD,QAAQ,EAAE,CAAC;IACXrB,WAAW,EAAEpH,aAAa;IAC1BqH,YAAY,EAAErH;EAChB,CAAC;EACD4F,eAAe,EAAE;IACf8C,IAAI,EAAE;EACR,CAAC;EACD/C,kBAAkB,EAAE;IAClB2C,UAAU,EAAE;EACd,CAAC;EACDL,UAAU,EAAE;IACV1B,QAAQ,EAAE,UAAU;IACpBpG,GAAG,EAAE,CAAC;IACNE,MAAM,EAAE,CAAC;IACTsI,cAAc,EAAE;EAClB,CAAC;EACD5H,OAAO,EAAE;IACPsH,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBK,cAAc,EAAE,UAAU;IAC1BJ,GAAG,EAAExI,WAAW;IAChB6I,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEK,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAG,IAAAE,WAAI,EAACxI,mBAAmB,CAAC;AACnDsI,UAAU,CAACG,WAAW,GAAG,YAAY","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_button","_shared","_index","_index2","_index3","_index4","_index5","_breakpoints","_webViewStyle","_zIndex","_useTheme","_index6","_EdgeScrim","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BAR_HEIGHT","INSET_COMPACT","INSET_WIDE","START_GAP","ROW_GAP","ACTIONS_GAP","FLOATING_ACTIONS_GAP","TITLE_PADDING","DEFAULT_THRESHOLD","MIN_CENTERED_TITLE_WIDTH","CAPSULE_HIT_SLOP","top","bottom","left","right","NO_INSETS","PageHeaderComponent","title","subtitle","titleAlign","headingLevel","titleReveal","presentation","placement","onBack","backLabel","leading","actions","border","transparent","scrim","scrimColor","scrollY","externalScrollY","scrollThreshold","sticky","safeArea","style","testID","isWeb","Platform","OS","floating","overlay","theme","useTheme","insets","useContext","SafeAreaInsetsContext","padTop","windowWidth","useWindowDimensions","width","measuredWidth","setMeasuredWidth","useState","measuredHeight","setMeasuredHeight","height","sideInset","BREAKPOINTS","sm","onContainerLayout","nativeEvent","layout","useClaimTopEdge","paint","useMemo","neutral","resolveButtonRamps","isDark","background","mixColor","separator","textSecondary","shadow","BUTTON_SHADOW","dark","colors","card","light","contextScrollY","useScrollOffset","internalScrollY","useSharedValue","followsWindow","useEffect","window","undefined","onScroll","value","addEventListener","passive","removeEventListener","threshold","Math","max","shadowStyle","useAnimatedStyle","opacity","interpolate","Extrapolation","CLAMP","backgroundStyle","scrimStyle","titleStyle","borderStyle","startMeasure","setStartMeasure","endMeasure","setEndMeasure","centered","hasStart","hasEnd","startWidth","endWidth","onStartLayout","onEndLayout","centerInset","min","titleBlock","jsxs","View","styles","titleBlockCentered","titleBlockStart","children","jsx","Text","role","variant","numberOfLines","color","text","textAlign","backButton","GlassIsland","ButtonGroupItem","iconOnly","leadingIcon","RiArrowLeftLine","accessibilityLabel","onPress","hitSlop","Button","size","containerWeb","position","WEB_POSITION_STICKY","zIndex","Z_INDEX","chrome","pointerEvents","SCRIM_TAIL_RATIO","EdgeScrim","Fragment","StyleSheet","absoluteFill","boxShadow","backgroundColor","actionsSlot","gap","onLayout","ControlSurface","material","container","paddingTop","bar","paddingLeft","paddingRight","start","startFill","spacer","centerSlot","create","minHeight","flexDirection","alignItems","paddingBottom","minWidth","flex","justifyContent","flexShrink","PageHeader","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["page-header/PageHeader.tsx"],"mappings":"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","ignoreList":[]}
|