react-native-collapsible-sticky-header 0.0.0-stage → 0.1.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 (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +569 -2
  3. package/lib/commonjs/Badge.js +65 -0
  4. package/lib/commonjs/Badge.js.map +1 -0
  5. package/lib/commonjs/CollapsibleStickyHeaderScreen.js +386 -0
  6. package/lib/commonjs/CollapsibleStickyHeaderScreen.js.map +1 -0
  7. package/lib/commonjs/HeaderGreeting.js +122 -0
  8. package/lib/commonjs/HeaderGreeting.js.map +1 -0
  9. package/lib/commonjs/HeaderNavBar.js +219 -0
  10. package/lib/commonjs/HeaderNavBar.js.map +1 -0
  11. package/lib/commonjs/ImageOrNode.js +40 -0
  12. package/lib/commonjs/ImageOrNode.js.map +1 -0
  13. package/lib/commonjs/animations.js +34 -0
  14. package/lib/commonjs/animations.js.map +1 -0
  15. package/lib/commonjs/index.js +122 -0
  16. package/lib/commonjs/index.js.map +1 -0
  17. package/lib/commonjs/optionalGradient.js +24 -0
  18. package/lib/commonjs/optionalGradient.js.map +1 -0
  19. package/lib/commonjs/package.json +1 -0
  20. package/lib/commonjs/theme.js +93 -0
  21. package/lib/commonjs/theme.js.map +1 -0
  22. package/lib/commonjs/types.js +6 -0
  23. package/lib/commonjs/types.js.map +1 -0
  24. package/lib/commonjs/useStickyHeader.js +143 -0
  25. package/lib/commonjs/useStickyHeader.js.map +1 -0
  26. package/lib/commonjs/utils.js +90 -0
  27. package/lib/commonjs/utils.js.map +1 -0
  28. package/lib/module/Badge.js +61 -0
  29. package/lib/module/Badge.js.map +1 -0
  30. package/lib/module/CollapsibleStickyHeaderScreen.js +379 -0
  31. package/lib/module/CollapsibleStickyHeaderScreen.js.map +1 -0
  32. package/lib/module/HeaderGreeting.js +118 -0
  33. package/lib/module/HeaderGreeting.js.map +1 -0
  34. package/lib/module/HeaderNavBar.js +215 -0
  35. package/lib/module/HeaderNavBar.js.map +1 -0
  36. package/lib/module/ImageOrNode.js +36 -0
  37. package/lib/module/ImageOrNode.js.map +1 -0
  38. package/lib/module/animations.js +28 -0
  39. package/lib/module/animations.js.map +1 -0
  40. package/lib/module/index.js +11 -0
  41. package/lib/module/index.js.map +1 -0
  42. package/lib/module/optionalGradient.js +20 -0
  43. package/lib/module/optionalGradient.js.map +1 -0
  44. package/lib/module/package.json +1 -0
  45. package/lib/module/theme.js +88 -0
  46. package/lib/module/theme.js.map +1 -0
  47. package/lib/module/types.js +4 -0
  48. package/lib/module/types.js.map +1 -0
  49. package/lib/module/useStickyHeader.js +138 -0
  50. package/lib/module/useStickyHeader.js.map +1 -0
  51. package/lib/module/utils.js +78 -0
  52. package/lib/module/utils.js.map +1 -0
  53. package/lib/typescript/commonjs/package.json +1 -0
  54. package/lib/typescript/commonjs/src/Badge.d.ts +20 -0
  55. package/lib/typescript/commonjs/src/Badge.d.ts.map +1 -0
  56. package/lib/typescript/commonjs/src/CollapsibleStickyHeaderScreen.d.ts +10 -0
  57. package/lib/typescript/commonjs/src/CollapsibleStickyHeaderScreen.d.ts.map +1 -0
  58. package/lib/typescript/commonjs/src/HeaderGreeting.d.ts +33 -0
  59. package/lib/typescript/commonjs/src/HeaderGreeting.d.ts.map +1 -0
  60. package/lib/typescript/commonjs/src/HeaderNavBar.d.ts +48 -0
  61. package/lib/typescript/commonjs/src/HeaderNavBar.d.ts.map +1 -0
  62. package/lib/typescript/commonjs/src/ImageOrNode.d.ts +16 -0
  63. package/lib/typescript/commonjs/src/ImageOrNode.d.ts.map +1 -0
  64. package/lib/typescript/commonjs/src/animations.d.ts +9 -0
  65. package/lib/typescript/commonjs/src/animations.d.ts.map +1 -0
  66. package/lib/typescript/commonjs/src/index.d.ts +10 -0
  67. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  68. package/lib/typescript/commonjs/src/optionalGradient.d.ts +13 -0
  69. package/lib/typescript/commonjs/src/optionalGradient.d.ts.map +1 -0
  70. package/lib/typescript/commonjs/src/theme.d.ts +81 -0
  71. package/lib/typescript/commonjs/src/theme.d.ts.map +1 -0
  72. package/lib/typescript/commonjs/src/types.d.ts +244 -0
  73. package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
  74. package/lib/typescript/commonjs/src/useStickyHeader.d.ts +12 -0
  75. package/lib/typescript/commonjs/src/useStickyHeader.d.ts.map +1 -0
  76. package/lib/typescript/commonjs/src/utils.d.ts +30 -0
  77. package/lib/typescript/commonjs/src/utils.d.ts.map +1 -0
  78. package/lib/typescript/module/package.json +1 -0
  79. package/lib/typescript/module/src/Badge.d.ts +20 -0
  80. package/lib/typescript/module/src/Badge.d.ts.map +1 -0
  81. package/lib/typescript/module/src/CollapsibleStickyHeaderScreen.d.ts +10 -0
  82. package/lib/typescript/module/src/CollapsibleStickyHeaderScreen.d.ts.map +1 -0
  83. package/lib/typescript/module/src/HeaderGreeting.d.ts +33 -0
  84. package/lib/typescript/module/src/HeaderGreeting.d.ts.map +1 -0
  85. package/lib/typescript/module/src/HeaderNavBar.d.ts +48 -0
  86. package/lib/typescript/module/src/HeaderNavBar.d.ts.map +1 -0
  87. package/lib/typescript/module/src/ImageOrNode.d.ts +16 -0
  88. package/lib/typescript/module/src/ImageOrNode.d.ts.map +1 -0
  89. package/lib/typescript/module/src/animations.d.ts +9 -0
  90. package/lib/typescript/module/src/animations.d.ts.map +1 -0
  91. package/lib/typescript/module/src/index.d.ts +10 -0
  92. package/lib/typescript/module/src/index.d.ts.map +1 -0
  93. package/lib/typescript/module/src/optionalGradient.d.ts +13 -0
  94. package/lib/typescript/module/src/optionalGradient.d.ts.map +1 -0
  95. package/lib/typescript/module/src/theme.d.ts +81 -0
  96. package/lib/typescript/module/src/theme.d.ts.map +1 -0
  97. package/lib/typescript/module/src/types.d.ts +244 -0
  98. package/lib/typescript/module/src/types.d.ts.map +1 -0
  99. package/lib/typescript/module/src/useStickyHeader.d.ts +12 -0
  100. package/lib/typescript/module/src/useStickyHeader.d.ts.map +1 -0
  101. package/lib/typescript/module/src/utils.d.ts +30 -0
  102. package/lib/typescript/module/src/utils.d.ts.map +1 -0
  103. package/package.json +142 -4
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HeaderNavBar = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _Badge = require("./Badge.js");
10
+ var _ImageOrNode = require("./ImageOrNode.js");
11
+ var _theme = require("./theme.js");
12
+ var _utils = require("./utils.js");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ const DEFAULT_SHOW = ['logo', 'avatar', 'title', 'actions'];
15
+ const ActionButton = /*#__PURE__*/(0, _react.memo)(function ActionButton({
16
+ action,
17
+ variant,
18
+ color,
19
+ size,
20
+ theme
21
+ }) {
22
+ const iconColor = action.color ?? color;
23
+ const iconSize = action.size ?? size;
24
+ const hit = theme.actionSize;
25
+ const icon = typeof action.icon === 'function' ? action.icon({
26
+ color: iconColor,
27
+ size: iconSize,
28
+ variant
29
+ }) : action.icon;
30
+ const count = action.badgeCount ?? 0;
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
32
+ testID: action.testID ?? `sticky-header-action-${action.key}-${variant}`,
33
+ onPress: action.onPress,
34
+ accessibilityRole: "button",
35
+ accessibilityLabel: action.accessibilityLabel,
36
+ accessibilityHint: action.accessibilityHint,
37
+ accessibilityValue: count > 0 ? {
38
+ text: (0, _utils.formatBadgeCount)(count, _utils.DEFAULT_BADGE_MAX)
39
+ } : undefined,
40
+ hitSlop: 4,
41
+ style: ({
42
+ pressed
43
+ }) => [styles.action, {
44
+ width: hit,
45
+ height: hit,
46
+ borderRadius: hit / 2,
47
+ backgroundColor: variant === 'overlay' ? theme.colors.actionBgOverlay : theme.colors.actionBgSolid,
48
+ opacity: pressed ? theme.pressedOpacity : 1
49
+ }, action.style],
50
+ children: [icon, count > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Badge.Badge, {
51
+ count: count,
52
+ color: theme.colors.badge,
53
+ textColor: theme.colors.badgeText,
54
+ borderColor: theme.colors.badgeBorder,
55
+ size: theme.badgeSize,
56
+ style: styles.badge
57
+ }) : null]
58
+ });
59
+ });
60
+ const HeaderNavBar = exports.HeaderNavBar = /*#__PURE__*/(0, _react.memo)(function HeaderNavBar({
61
+ variant = 'overlay',
62
+ logo,
63
+ logoSize,
64
+ logoStyle,
65
+ logoAccessibilityLabel,
66
+ onLogoPress,
67
+ title,
68
+ titleStyle,
69
+ avatar,
70
+ avatarSize,
71
+ avatarStyle,
72
+ onAvatarPress,
73
+ avatarAccessibilityLabel = 'Profile',
74
+ actions,
75
+ show = DEFAULT_SHOW,
76
+ iconColor,
77
+ iconSize,
78
+ theme: themeOverrides,
79
+ resolvedTheme,
80
+ children,
81
+ style,
82
+ testID
83
+ }) {
84
+ const theme = (0, _react.useMemo)(() => resolvedTheme ?? (0, _theme.createTheme)(themeOverrides), [resolvedTheme, themeOverrides]);
85
+ const {
86
+ actions: limited,
87
+ overflow
88
+ } = (0, _utils.limitActions)(actions);
89
+ (0, _react.useEffect)(() => (0, _utils.warnActionOverflow)(overflow), [overflow]);
90
+ const shown = !show.includes('actions') ? [] : variant === 'solid' ? limited.filter(a => a.showInSticky !== false) : limited;
91
+ const defaultLogoSize = variant === 'overlay' ? theme.logoSize.expanded : theme.logoSize.compact;
92
+ const size = {
93
+ ...defaultLogoSize,
94
+ ...logoSize
95
+ };
96
+ const color = iconColor ?? (variant === 'overlay' ? theme.colors.iconOverlay : theme.colors.iconSolid);
97
+ const padding = theme.spacing.navBar[variant];
98
+ let logoNode = null;
99
+ if (logo != null && logo !== false) {
100
+ const image = /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImageOrNode.ImageOrNode, {
101
+ value: logo,
102
+ testID: `sticky-header-logo-${variant}`,
103
+ accessibilityLabel: onLogoPress ? undefined : logoAccessibilityLabel,
104
+ style: [{
105
+ width: size.width,
106
+ height: size.height
107
+ }, logoStyle]
108
+ });
109
+ logoNode = onLogoPress ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
110
+ testID: `sticky-header-nav-logo-${variant}`,
111
+ onPress: onLogoPress,
112
+ hitSlop: 4,
113
+ accessibilityRole: "button",
114
+ accessibilityLabel: logoAccessibilityLabel ?? 'Logo',
115
+ children: image
116
+ }) : image;
117
+ }
118
+ let avatarNode = null;
119
+ if (avatar != null && avatar !== false) {
120
+ const d = avatarSize ?? (variant === 'solid' ? theme.avatarSizeCompact : theme.avatarSize);
121
+ const image = /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImageOrNode.ImageOrNode, {
122
+ value: avatar,
123
+ resizeMode: "cover",
124
+ accessibilityLabel: onAvatarPress ? undefined : avatarAccessibilityLabel,
125
+ style: [{
126
+ width: d,
127
+ height: d,
128
+ borderRadius: d / 2,
129
+ overflow: 'hidden'
130
+ }, avatarStyle]
131
+ });
132
+ avatarNode = onAvatarPress ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
133
+ testID: `sticky-header-nav-avatar-${variant}`,
134
+ onPress: onAvatarPress,
135
+ hitSlop: 6,
136
+ accessibilityRole: "button",
137
+ accessibilityLabel: avatarAccessibilityLabel,
138
+ children: image
139
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
140
+ testID: `sticky-header-nav-avatar-${variant}`,
141
+ children: image
142
+ });
143
+ }
144
+ let titleNode = null;
145
+ if (title != null && title !== false) {
146
+ titleNode = typeof title === 'string' || typeof title === 'number' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
147
+ testID: `sticky-header-nav-title-${variant}`,
148
+ accessibilityRole: "header",
149
+ numberOfLines: 1,
150
+ style: [styles.title, {
151
+ color: variant === 'solid' ? theme.colors.stickyTitle : theme.colors.title,
152
+ fontSize: theme.typography.stickyTitleSize
153
+ }, titleStyle],
154
+ children: title
155
+ }) : title;
156
+ }
157
+ const leadingNodes = {
158
+ logo: logoNode,
159
+ avatar: avatarNode,
160
+ title: titleNode
161
+ };
162
+ const leading = show.filter(item => item !== 'actions').filter(item => leadingNodes[item] != null).map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Fragment, {
163
+ children: leadingNodes[item]
164
+ }, item));
165
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
166
+ testID: testID ?? `sticky-header-nav-${variant}`,
167
+ style: [styles.bar, padding, style],
168
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
169
+ testID: `sticky-header-nav-leading-${variant}`,
170
+ style: [styles.leading, {
171
+ gap: theme.spacing.leadingGap
172
+ }],
173
+ children: leading
174
+ }), children, shown.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
175
+ style: [styles.actions, {
176
+ gap: theme.spacing.actionGap
177
+ }],
178
+ children: shown.map(action => /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
179
+ action: action,
180
+ variant: variant,
181
+ color: color,
182
+ size: iconSize ?? theme.iconSize,
183
+ theme: theme
184
+ }, action.key))
185
+ }) : null]
186
+ });
187
+ });
188
+ const styles = _reactNative.StyleSheet.create({
189
+ bar: {
190
+ flexDirection: 'row',
191
+ alignItems: 'center',
192
+ justifyContent: 'space-between'
193
+ },
194
+ leading: {
195
+ flexDirection: 'row',
196
+ alignItems: 'center',
197
+ flexShrink: 1,
198
+ minWidth: 0
199
+ },
200
+ title: {
201
+ fontWeight: '600',
202
+ flexShrink: 1
203
+ },
204
+ actions: {
205
+ flexDirection: 'row',
206
+ alignItems: 'center',
207
+ flexShrink: 0
208
+ },
209
+ action: {
210
+ alignItems: 'center',
211
+ justifyContent: 'center'
212
+ },
213
+ badge: {
214
+ position: 'absolute',
215
+ top: -2,
216
+ end: -2
217
+ }
218
+ });
219
+ //# sourceMappingURL=HeaderNavBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_Badge","_ImageOrNode","_theme","_utils","_jsxRuntime","DEFAULT_SHOW","ActionButton","memo","action","variant","color","size","theme","iconColor","iconSize","hit","actionSize","icon","count","badgeCount","jsxs","Pressable","testID","key","onPress","accessibilityRole","accessibilityLabel","accessibilityHint","accessibilityValue","text","formatBadgeCount","DEFAULT_BADGE_MAX","undefined","hitSlop","style","pressed","styles","width","height","borderRadius","backgroundColor","colors","actionBgOverlay","actionBgSolid","opacity","pressedOpacity","children","jsx","Badge","badge","textColor","badgeText","borderColor","badgeBorder","badgeSize","HeaderNavBar","exports","logo","logoSize","logoStyle","logoAccessibilityLabel","onLogoPress","title","titleStyle","avatar","avatarSize","avatarStyle","onAvatarPress","avatarAccessibilityLabel","actions","show","themeOverrides","resolvedTheme","useMemo","createTheme","limited","overflow","limitActions","useEffect","warnActionOverflow","shown","includes","filter","a","showInSticky","defaultLogoSize","expanded","compact","iconOverlay","iconSolid","padding","spacing","navBar","logoNode","image","ImageOrNode","value","avatarNode","d","avatarSizeCompact","resizeMode","View","titleNode","Text","numberOfLines","stickyTitle","fontSize","typography","stickyTitleSize","leadingNodes","leading","item","map","Fragment","bar","gap","leadingGap","length","actionGap","StyleSheet","create","flexDirection","alignItems","justifyContent","flexShrink","minWidth","fontWeight","position","top","end"],"sourceRoot":"../../src","sources":["HeaderNavBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImageOrNode = ImageOrNode;
7
+ var _reactNative = require("react-native");
8
+ var _utils = require("./utils.js");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /** Renders an image source as an `Image`, anything else as-is. */
11
+ function ImageOrNode({
12
+ value,
13
+ style,
14
+ accessibilityLabel,
15
+ resizeMode = 'contain',
16
+ testID
17
+ }) {
18
+ if (value == null || value === false) return null;
19
+ if ((0, _utils.isImageSource)(value)) {
20
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
21
+ testID: testID,
22
+ source: value,
23
+ resizeMode: resizeMode,
24
+ accessibilityRole: accessibilityLabel ? 'image' : undefined,
25
+ accessibilityLabel: accessibilityLabel,
26
+ accessible: !!accessibilityLabel,
27
+ style: style
28
+ });
29
+ }
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
31
+ testID: testID,
32
+ accessibilityLabel: accessibilityLabel,
33
+ style: [{
34
+ alignItems: 'center',
35
+ justifyContent: 'center'
36
+ }, style],
37
+ children: value
38
+ });
39
+ }
40
+ //# sourceMappingURL=ImageOrNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_utils","_jsxRuntime","ImageOrNode","value","style","accessibilityLabel","resizeMode","testID","isImageSource","jsx","Image","source","accessibilityRole","undefined","accessible","View","alignItems","justifyContent","children"],"sourceRoot":"../../src","sources":["ImageOrNode.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAD,OAAA;AAAwC,IAAAE,WAAA,GAAAF,OAAA;AAYxC;AACO,SAASG,WAAWA,CAAC;EAC1BC,KAAK;EACLC,KAAK;EACLC,kBAAkB;EAClBC,UAAU,GAAG,SAAS;EACtBC;AACK,CAAC,EAAa;EACnB,IAAIJ,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,KAAK,EAAE,OAAO,IAAI;EACjD,IAAI,IAAAK,oBAAa,EAACL,KAAK,CAAC,EAAE;IACxB,oBACE,IAAAF,WAAA,CAAAQ,GAAA,EAACX,YAAA,CAAAY,KAAK;MACJH,MAAM,EAAEA,MAAO;MACfI,MAAM,EAAER,KAAM;MACdG,UAAU,EAAEA,UAAW;MACvBM,iBAAiB,EAAEP,kBAAkB,GAAG,OAAO,GAAGQ,SAAU;MAC5DR,kBAAkB,EAAEA,kBAAmB;MACvCS,UAAU,EAAE,CAAC,CAACT,kBAAmB;MACjCD,KAAK,EAAEA;IAA+B,CACvC,CAAC;EAEN;EACA,oBACE,IAAAH,WAAA,CAAAQ,GAAA,EAACX,YAAA,CAAAiB,IAAI;IACHR,MAAM,EAAEA,MAAO;IACfF,kBAAkB,EAAEA,kBAAmB;IACvCD,KAAK,EAAE,CACL;MAAEY,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAS,CAAC,EAClDb,KAAK,CACL;IAAAc,QAAA,EAEDf;EAAK,CACF,CAAC;AAEX","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fadeStickyAnimation = void 0;
7
+ exports.slideStickyAnimation = slideStickyAnimation;
8
+ /** Default sticky bar animation: fade in. */
9
+ const fadeStickyAnimation = progress => {
10
+ 'worklet';
11
+
12
+ return {
13
+ opacity: progress
14
+ };
15
+ };
16
+
17
+ /**
18
+ * Slides the sticky bar down from above while fading it in.
19
+ * @param distance How far above its resting place the bar starts. Default 120.
20
+ */
21
+ exports.fadeStickyAnimation = fadeStickyAnimation;
22
+ function slideStickyAnimation(distance = 120) {
23
+ return progress => {
24
+ 'worklet';
25
+
26
+ return {
27
+ opacity: progress > 0 ? 1 : 0,
28
+ transform: [{
29
+ translateY: (progress - 1) * distance
30
+ }]
31
+ };
32
+ };
33
+ }
34
+ //# sourceMappingURL=animations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fadeStickyAnimation","progress","opacity","exports","slideStickyAnimation","distance","transform","translateY"],"sourceRoot":"../../src","sources":["animations.ts"],"mappings":";;;;;;;AAEA;AACO,MAAMA,mBAAsC,GAAIC,QAAQ,IAAK;EAClE,SAAS;;EACT,OAAO;IAAEC,OAAO,EAAED;EAAS,CAAC;AAC9B,CAAC;;AAED;AACA;AACA;AACA;AAHAE,OAAA,CAAAH,mBAAA,GAAAA,mBAAA;AAIO,SAASI,oBAAoBA,CAACC,QAAQ,GAAG,GAAG,EAAqB;EACtE,OAAQJ,QAAQ,IAAK;IACnB,SAAS;;IACT,OAAO;MACLC,OAAO,EAAED,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;MAC7BK,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAE,CAACN,QAAQ,GAAG,CAAC,IAAII;MAAS,CAAC;IACvD,CAAC;EACH,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Badge", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Badge.Badge;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "CollapsibleStickyHeaderScreen", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _CollapsibleStickyHeaderScreen.CollapsibleStickyHeaderScreen;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "DEFAULT_BADGE_MAX", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _utils.DEFAULT_BADGE_MAX;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "DEFAULT_COLLAPSE_TRANSLATE_Y", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _useStickyHeader.DEFAULT_COLLAPSE_TRANSLATE_Y;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "DEFAULT_STICKY_FADE_DISTANCE", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _useStickyHeader.DEFAULT_STICKY_FADE_DISTANCE;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "DEFAULT_STICKY_POINTER_OFFSET", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _useStickyHeader.DEFAULT_STICKY_POINTER_OFFSET;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "HeaderGreeting", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _HeaderGreeting.HeaderGreeting;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "HeaderNavBar", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _HeaderNavBar.HeaderNavBar;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "MAX_HEADER_ACTIONS", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _utils.MAX_HEADER_ACTIONS;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "computeThreshold", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _utils.computeThreshold;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "createTheme", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _theme.createTheme;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "defaultTheme", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _theme.defaultTheme;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "fadeStickyAnimation", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _animations.fadeStickyAnimation;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "getCollapseProgress", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _utils.getCollapseProgress;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "getStickyProgress", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _utils.getStickyProgress;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "isStickyAt", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _utils.isStickyAt;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "slideStickyAnimation", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _animations.slideStickyAnimation;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "useStickyHeader", {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _useStickyHeader.useStickyHeader;
112
+ }
113
+ });
114
+ var _CollapsibleStickyHeaderScreen = require("./CollapsibleStickyHeaderScreen.js");
115
+ var _useStickyHeader = require("./useStickyHeader.js");
116
+ var _HeaderNavBar = require("./HeaderNavBar.js");
117
+ var _HeaderGreeting = require("./HeaderGreeting.js");
118
+ var _Badge = require("./Badge.js");
119
+ var _theme = require("./theme.js");
120
+ var _utils = require("./utils.js");
121
+ var _animations = require("./animations.js");
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_CollapsibleStickyHeaderScreen","require","_useStickyHeader","_HeaderNavBar","_HeaderGreeting","_Badge","_theme","_utils","_animations"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,8BAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAMA,IAAAE,aAAA,GAAAF,OAAA;AAKA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAQA,IAAAM,MAAA,GAAAN,OAAA;AAQA,IAAAO,WAAA,GAAAP,OAAA","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getLinearGradient = getLinearGradient;
7
+ let cached;
8
+
9
+ /**
10
+ * Resolves `expo-linear-gradient` when it is installed. The require sits in a
11
+ * try/catch so Metro treats it as an optional dependency.
12
+ */
13
+ function getLinearGradient() {
14
+ if (cached === undefined) {
15
+ try {
16
+ const mod = require('expo-linear-gradient');
17
+ cached = mod.LinearGradient ?? null;
18
+ } catch {
19
+ cached = null;
20
+ }
21
+ }
22
+ return cached;
23
+ }
24
+ //# sourceMappingURL=optionalGradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cached","getLinearGradient","undefined","mod","require","LinearGradient"],"sourceRoot":"../../src","sources":["optionalGradient.ts"],"mappings":";;;;;;AAWA,IAAIA,MAA6C;;AAEjD;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAAA,EAA8B;EAC7D,IAAID,MAAM,KAAKE,SAAS,EAAE;IACxB,IAAI;MACF,MAAMC,GAAG,GAAGC,OAAO,CAAC,sBAAsB,CAEzC;MACDJ,MAAM,GAAGG,GAAG,CAACE,cAAc,IAAI,IAAI;IACrC,CAAC,CAAC,MAAM;MACNL,MAAM,GAAG,IAAI;IACf;EACF;EACA,OAAOA,MAAM;AACf","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createTheme = createTheme;
7
+ exports.defaultTheme = void 0;
8
+ /** Neutral defaults. Brand colors belong in your own theme. */
9
+ const defaultTheme = exports.defaultTheme = {
10
+ colors: {
11
+ stickyBg: '#ffffff',
12
+ headerBg: 'transparent',
13
+ iconOverlay: '#ffffff',
14
+ iconSolid: '#1f2937',
15
+ actionBgOverlay: 'transparent',
16
+ actionBgSolid: 'transparent',
17
+ badge: '#ef4444',
18
+ badgeText: '#ffffff',
19
+ badgeBorder: '#ffffff',
20
+ greeting: '#ffffff',
21
+ title: '#ffffff',
22
+ subtitle: 'rgba(255,255,255,0.85)',
23
+ stickyTitle: '#111827',
24
+ fade: ['transparent', '#ffffff'],
25
+ shadow: '#000000'
26
+ },
27
+ spacing: {
28
+ horizontal: 16,
29
+ actionGap: 8,
30
+ avatarGap: 12,
31
+ leadingGap: 8,
32
+ navBar: {
33
+ overlay: {
34
+ paddingHorizontal: 16,
35
+ paddingVertical: 8
36
+ },
37
+ solid: {
38
+ paddingHorizontal: 16,
39
+ paddingVertical: 4
40
+ }
41
+ }
42
+ },
43
+ radius: {
44
+ headerBottom: 0
45
+ },
46
+ pressedOpacity: 0.6,
47
+ iconSize: 22,
48
+ actionSize: 36,
49
+ avatarSize: 44,
50
+ avatarSizeCompact: 32,
51
+ badgeSize: 18,
52
+ logoSize: {
53
+ expanded: {
54
+ width: 100,
55
+ height: 75
56
+ },
57
+ compact: {
58
+ width: 64,
59
+ height: 48
60
+ }
61
+ },
62
+ typography: {
63
+ greetingSize: 14,
64
+ titleSize: 24,
65
+ subtitleSize: 14,
66
+ stickyTitleSize: 17
67
+ }
68
+ };
69
+ function isPlainObject(value) {
70
+ return typeof value === 'object' && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
71
+ }
72
+ function deepMerge(base, overrides) {
73
+ if (!overrides) return base;
74
+ const out = {
75
+ ...base
76
+ };
77
+ for (const key of Object.keys(overrides)) {
78
+ const next = overrides[key];
79
+ if (next === undefined) continue;
80
+ const prev = out[key];
81
+ out[key] = isPlainObject(prev) && isPlainObject(next) ? deepMerge(prev, next) : next;
82
+ }
83
+ return out;
84
+ }
85
+
86
+ /**
87
+ * Deep-merges one or more partial themes over the defaults. Arrays (such as
88
+ * `colors.fade`) are replaced, not merged.
89
+ */
90
+ function createTheme(...overrides) {
91
+ return overrides.reduce((theme, o) => deepMerge(theme, o), defaultTheme);
92
+ }
93
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["defaultTheme","exports","colors","stickyBg","headerBg","iconOverlay","iconSolid","actionBgOverlay","actionBgSolid","badge","badgeText","badgeBorder","greeting","title","subtitle","stickyTitle","fade","shadow","spacing","horizontal","actionGap","avatarGap","leadingGap","navBar","overlay","paddingHorizontal","paddingVertical","solid","radius","headerBottom","pressedOpacity","iconSize","actionSize","avatarSize","avatarSizeCompact","badgeSize","logoSize","expanded","width","height","compact","typography","greetingSize","titleSize","subtitleSize","stickyTitleSize","isPlainObject","value","Array","isArray","Object","getPrototypeOf","prototype","deepMerge","base","overrides","out","key","keys","next","undefined","prev","createTheme","reduce","theme","o"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":";;;;;;;AA+EA;AACO,MAAMA,YAA+B,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC7CE,MAAM,EAAE;IACNC,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,aAAa;IACvBC,WAAW,EAAE,SAAS;IACtBC,SAAS,EAAE,SAAS;IACpBC,eAAe,EAAE,aAAa;IAC9BC,aAAa,EAAE,aAAa;IAC5BC,KAAK,EAAE,SAAS;IAChBC,SAAS,EAAE,SAAS;IACpBC,WAAW,EAAE,SAAS;IACtBC,QAAQ,EAAE,SAAS;IACnBC,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE,wBAAwB;IAClCC,WAAW,EAAE,SAAS;IACtBC,IAAI,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;IAChCC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACPC,UAAU,EAAE,EAAE;IACdC,SAAS,EAAE,CAAC;IACZC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE,CAAC;IACbC,MAAM,EAAE;MACNC,OAAO,EAAE;QAAEC,iBAAiB,EAAE,EAAE;QAAEC,eAAe,EAAE;MAAE,CAAC;MACtDC,KAAK,EAAE;QAAEF,iBAAiB,EAAE,EAAE;QAAEC,eAAe,EAAE;MAAE;IACrD;EACF,CAAC;EACDE,MAAM,EAAE;IACNC,YAAY,EAAE;EAChB,CAAC;EACDC,cAAc,EAAE,GAAG;EACnBC,QAAQ,EAAE,EAAE;EACZC,UAAU,EAAE,EAAE;EACdC,UAAU,EAAE,EAAE;EACdC,iBAAiB,EAAE,EAAE;EACrBC,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE;IACRC,QAAQ,EAAE;MAAEC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAC;IACpCC,OAAO,EAAE;MAAEF,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE;IAAG;EACnC,CAAC;EACDE,UAAU,EAAE;IACVC,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAE,EAAE;IACbC,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAE;EACnB;AACF,CAAC;AAED,SAASC,aAAaA,CAACC,KAAc,EAAoC;EACvE,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,CAACC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,IACrBG,MAAM,CAACC,cAAc,CAACJ,KAAK,CAAC,KAAKG,MAAM,CAACE,SAAS;AAErD;AAEA,SAASC,SAASA,CAAIC,IAAO,EAAEC,SAAqC,EAAK;EACvE,IAAI,CAACA,SAAS,EAAE,OAAOD,IAAI;EAC3B,MAAME,GAA4B,GAAG;IAAE,GAAIF;EAAiC,CAAC;EAC7E,KAAK,MAAMG,GAAG,IAAIP,MAAM,CAACQ,IAAI,CAACH,SAAS,CAAC,EAAE;IACxC,MAAMI,IAAI,GAAIJ,SAAS,CAA6BE,GAAG,CAAC;IACxD,IAAIE,IAAI,KAAKC,SAAS,EAAE;IACxB,MAAMC,IAAI,GAAGL,GAAG,CAACC,GAAG,CAAC;IACrBD,GAAG,CAACC,GAAG,CAAC,GACNX,aAAa,CAACe,IAAI,CAAC,IAAIf,aAAa,CAACa,IAAI,CAAC,GACtCN,SAAS,CAACQ,IAAI,EAAEF,IAAgC,CAAC,GACjDA,IAAI;EACZ;EACA,OAAOH,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACO,SAASM,WAAWA,CACzB,GAAGP,SAAwD,EACxC;EACnB,OAAOA,SAAS,CAACQ,MAAM,CACrB,CAACC,KAAK,EAAEC,CAAC,KAAKZ,SAAS,CAACW,KAAK,EAAEC,CAAC,CAAC,EACjCjE,YACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}