@oxyhq/bloom 1.12.0 → 1.14.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 (114) hide show
  1. package/README.md +1 -1
  2. package/docs/avatar.mdx +46 -5
  3. package/docs/index.mdx +1 -1
  4. package/docs/layout.mdx +21 -35
  5. package/docs/tab-bar.mdx +35 -0
  6. package/lib/commonjs/avatar/Avatar.js +24 -8
  7. package/lib/commonjs/avatar/Avatar.js.map +1 -1
  8. package/lib/commonjs/avatar/AvatarRing.js +13 -12
  9. package/lib/commonjs/avatar/AvatarRing.js.map +1 -1
  10. package/lib/commonjs/avatar/index.js +19 -0
  11. package/lib/commonjs/avatar/index.js.map +1 -1
  12. package/lib/commonjs/avatar/resolve-shape.js +43 -0
  13. package/lib/commonjs/avatar/resolve-shape.js.map +1 -0
  14. package/lib/commonjs/avatar/shape-paths.js +174 -0
  15. package/lib/commonjs/avatar/shape-paths.js.map +1 -0
  16. package/lib/commonjs/fab/Fab.js +4 -55
  17. package/lib/commonjs/fab/Fab.js.map +1 -1
  18. package/lib/commonjs/fab/Fab.web.js +1 -29
  19. package/lib/commonjs/fab/Fab.web.js.map +1 -1
  20. package/lib/commonjs/layout/bottom-edge.js +47 -92
  21. package/lib/commonjs/layout/bottom-edge.js.map +1 -1
  22. package/lib/commonjs/layout/index.js +0 -6
  23. package/lib/commonjs/layout/index.js.map +1 -1
  24. package/lib/commonjs/tab-bar/TabBarBase.js +59 -29
  25. package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -1
  26. package/lib/commonjs/tab-bar/expo-router/RouterTabBar.js +5 -0
  27. package/lib/commonjs/tab-bar/expo-router/RouterTabBar.js.map +1 -1
  28. package/lib/module/avatar/Avatar.js +24 -8
  29. package/lib/module/avatar/Avatar.js.map +1 -1
  30. package/lib/module/avatar/AvatarRing.js +13 -12
  31. package/lib/module/avatar/AvatarRing.js.map +1 -1
  32. package/lib/module/avatar/index.js +1 -0
  33. package/lib/module/avatar/index.js.map +1 -1
  34. package/lib/module/avatar/resolve-shape.js +40 -0
  35. package/lib/module/avatar/resolve-shape.js.map +1 -0
  36. package/lib/module/avatar/shape-paths.js +170 -0
  37. package/lib/module/avatar/shape-paths.js.map +1 -0
  38. package/lib/module/fab/Fab.js +6 -57
  39. package/lib/module/fab/Fab.js.map +1 -1
  40. package/lib/module/fab/Fab.web.js +2 -30
  41. package/lib/module/fab/Fab.web.js.map +1 -1
  42. package/lib/module/layout/bottom-edge.js +47 -91
  43. package/lib/module/layout/bottom-edge.js.map +1 -1
  44. package/lib/module/layout/index.js +1 -1
  45. package/lib/module/layout/index.js.map +1 -1
  46. package/lib/module/tab-bar/TabBarBase.js +60 -30
  47. package/lib/module/tab-bar/TabBarBase.js.map +1 -1
  48. package/lib/module/tab-bar/expo-router/RouterTabBar.js +5 -0
  49. package/lib/module/tab-bar/expo-router/RouterTabBar.js.map +1 -1
  50. package/lib/typescript/commonjs/avatar/Avatar.d.ts.map +1 -1
  51. package/lib/typescript/commonjs/avatar/AvatarRing.d.ts +4 -3
  52. package/lib/typescript/commonjs/avatar/AvatarRing.d.ts.map +1 -1
  53. package/lib/typescript/commonjs/avatar/index.d.ts +3 -1
  54. package/lib/typescript/commonjs/avatar/index.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/avatar/resolve-shape.d.ts +17 -0
  56. package/lib/typescript/commonjs/avatar/resolve-shape.d.ts.map +1 -0
  57. package/lib/typescript/commonjs/avatar/shape-paths.d.ts +27 -0
  58. package/lib/typescript/commonjs/avatar/shape-paths.d.ts.map +1 -0
  59. package/lib/typescript/commonjs/avatar/types.d.ts +30 -3
  60. package/lib/typescript/commonjs/avatar/types.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/fab/Fab.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/fab/Fab.web.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/layout/bottom-edge.d.ts +31 -57
  64. package/lib/typescript/commonjs/layout/bottom-edge.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/layout/index.d.ts +1 -1
  66. package/lib/typescript/commonjs/layout/index.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/tab-bar/expo-router/RouterTabBar.d.ts +5 -0
  69. package/lib/typescript/commonjs/tab-bar/expo-router/RouterTabBar.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/tab-bar/types.d.ts +36 -5
  71. package/lib/typescript/commonjs/tab-bar/types.d.ts.map +1 -1
  72. package/lib/typescript/module/avatar/Avatar.d.ts.map +1 -1
  73. package/lib/typescript/module/avatar/AvatarRing.d.ts +4 -3
  74. package/lib/typescript/module/avatar/AvatarRing.d.ts.map +1 -1
  75. package/lib/typescript/module/avatar/index.d.ts +3 -1
  76. package/lib/typescript/module/avatar/index.d.ts.map +1 -1
  77. package/lib/typescript/module/avatar/resolve-shape.d.ts +17 -0
  78. package/lib/typescript/module/avatar/resolve-shape.d.ts.map +1 -0
  79. package/lib/typescript/module/avatar/shape-paths.d.ts +27 -0
  80. package/lib/typescript/module/avatar/shape-paths.d.ts.map +1 -0
  81. package/lib/typescript/module/avatar/types.d.ts +30 -3
  82. package/lib/typescript/module/avatar/types.d.ts.map +1 -1
  83. package/lib/typescript/module/fab/Fab.d.ts.map +1 -1
  84. package/lib/typescript/module/fab/Fab.web.d.ts.map +1 -1
  85. package/lib/typescript/module/layout/bottom-edge.d.ts +31 -57
  86. package/lib/typescript/module/layout/bottom-edge.d.ts.map +1 -1
  87. package/lib/typescript/module/layout/index.d.ts +1 -1
  88. package/lib/typescript/module/layout/index.d.ts.map +1 -1
  89. package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -1
  90. package/lib/typescript/module/tab-bar/expo-router/RouterTabBar.d.ts +5 -0
  91. package/lib/typescript/module/tab-bar/expo-router/RouterTabBar.d.ts.map +1 -1
  92. package/lib/typescript/module/tab-bar/types.d.ts +36 -5
  93. package/lib/typescript/module/tab-bar/types.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/src/avatar/Avatar.tsx +27 -10
  96. package/src/avatar/AvatarRing.tsx +21 -14
  97. package/src/avatar/index.ts +7 -0
  98. package/src/avatar/resolve-shape.ts +33 -0
  99. package/src/avatar/shape-paths.ts +150 -0
  100. package/src/avatar/types.ts +32 -3
  101. package/src/fab/Fab.tsx +4 -57
  102. package/src/fab/Fab.web.tsx +2 -31
  103. package/src/layout/bottom-edge.tsx +54 -108
  104. package/src/layout/index.ts +1 -6
  105. package/src/tab-bar/TabBarBase.tsx +74 -37
  106. package/src/tab-bar/expo-router/RouterTabBar.tsx +5 -0
  107. package/src/tab-bar/types.ts +36 -5
  108. package/src/__tests__/support/collision-fixture-barrel.ts +0 -20
  109. package/src/__tests__/support/constructed-style-sheets.ts +0 -68
  110. package/src/__tests__/support/press-host.ts +0 -30
  111. package/src/__tests__/support/rendered-style.ts +0 -99
  112. package/src/__tests__/support/unread-hook-fixture.ts +0 -33
  113. package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +0 -7682
  114. package/src/theme/__tests__/fixtures/color-engine-golden.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useCallback","useId","useMemo","useBottomEdgeCollapsed","useBottomEdgeInset","useTheme","animation","borderRadius","pressedSurface","interactiveWebCss","useInteractiveWebCss","flattenWebStyle","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","MIN_NUMERIC_ICON_BOX","resolveSize","size","Math","max","round","DEFAULT_OFFSET","DEFAULT_Z_INDEX","STYLE_ID","BLOOM_FAB_CSS","selector","varPrefix","base","transition","hover","declarations","pressDeclarations","outlineOffset","placementStyle","placement","offset","bottomEdgeInset","style","position","isBottom","bottom","marginTop","top","alignSelf","marginRight","marginLeft","resolveVariant","variant","c","background","secondary","foreground","secondaryForeground","ring","tertiary","tertiaryForeground","card","text","primary","primaryForeground","FabWebComponent","onPress","onClick","icon","children","label","disabled","accessibilityLabel","ariaLabelProp","accessibilityHint","labelStyle","className","testID","zIndex","id","title","type","bottomEdgeCollapsed","hidden","theme","reactId","resolvedId","sizeConfig","isExtended","length","content","variantColors","colors","restShadow","shadow","hoverShadow","containerStyle","color","full","height","fontWeight","pressScale","opacity","pointerEvents","pad","paddingLeft","paddingRight","width","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","resolvedStyle","resolvedLabelStyle","undefined","tabIndex","display","alignItems","justifyContent","Fab","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useCallback","useId","useMemo","useBottomEdgeInset","useTheme","animation","borderRadius","pressedSurface","interactiveWebCss","useInteractiveWebCss","flattenWebStyle","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","MIN_NUMERIC_ICON_BOX","resolveSize","size","Math","max","round","DEFAULT_OFFSET","DEFAULT_Z_INDEX","STYLE_ID","BLOOM_FAB_CSS","selector","varPrefix","base","transition","hover","declarations","pressDeclarations","outlineOffset","placementStyle","placement","offset","bottomEdgeInset","style","position","isBottom","bottom","marginTop","top","alignSelf","marginRight","marginLeft","resolveVariant","variant","c","background","secondary","foreground","secondaryForeground","ring","tertiary","tertiaryForeground","card","text","primary","primaryForeground","FabWebComponent","onPress","onClick","icon","children","label","disabled","accessibilityLabel","ariaLabelProp","accessibilityHint","labelStyle","className","testID","zIndex","id","title","type","theme","reactId","resolvedId","sizeConfig","isExtended","length","content","variantColors","colors","restShadow","shadow","hoverShadow","containerStyle","color","full","height","fontWeight","pressScale","pad","paddingLeft","paddingRight","width","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","resolvedStyle","resolvedLabelStyle","undefined","display","alignItems","justifyContent","Fab","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -29,32 +29,27 @@
29
29
  * edge, so two surfaces at that edge overlap rather than stack; the tallest is
30
30
  * what a new surface has to clear. Summing would strand it at twice the height.
31
31
  *
32
- * ## A size and a state, because they travel differently
33
- *
34
- * A surface that collapses — the tab bar minimizes 58 -> 44 on scroll publishes
35
- * two things, and only one of them is a measurement:
36
- *
37
- * - RESERVED (`useBottomEdgeInset`) never shrinks while the claimant is
38
- * mounted. It is what must be kept permanently free: a list's bottom
39
- * padding, a toast stack's offset. Shrinking it on collapse would jitter a
40
- * list's content size on every scroll and jump a toast 14px mid-display,
41
- * because the bar re-expands the instant the user scrolls back up.
42
- * - COLLAPSED (`useBottomEdgeCollapsed`) is a boolean, deliberately, and this
43
- * is the part that was learned the hard way. It first shipped as a live
44
- * PIXEL height so a FAB could ride down with the bar — and it felt broken on
45
- * a device. The bar animates on the UI thread; a React consumer learns about
46
- * the change through `runOnJS` plus two render passes, so its motion STARTS
47
- * one to three frames late, worst exactly while scrolling because that is
48
- * when the JS thread is busiest. No spring config fixes a variable start
49
- * delay.
50
- *
51
- * Two things moving together betray that lag; a state change does not. A reader
52
- * that FADES on this boolean has no spatial relationship to violate, so the same
53
- * few frames of latency are imperceptible. That is why the channel is a state and
54
- * not a geometry: it is the shape of signal that survives the trip to the JS
55
- * thread. Anything that genuinely must track the collapse per-frame has to read
56
- * the tab bar's own shared value on the UI thread instead — React state is the
57
- * wrong transport for it, at any width.
32
+ * ## What does NOT belong here: the collapse
33
+ *
34
+ * The tab bar minimizes 58 -> 44 on scroll, and this registry twice tried to
35
+ * publish that so a FAB could react first as a live pixel height (1.11.0), then
36
+ * as a boolean (1.12.0). Both felt wrong on a device, for the same reason, and
37
+ * the reason is structural rather than a matter of tuning:
38
+ *
39
+ * the bar animates on the UI thread, while anything reading it from here
40
+ * arrives via `runOnJS` plus two React render passes.
41
+ *
42
+ * So a consumer's reaction STARTS one to three frames after the bar's, and the
43
+ * delay is variable worst exactly while scrolling, because that is when the JS
44
+ * thread is busiest. Fading instead of moving does not hide it either: the eye
45
+ * still sees two pieces of chrome change at different moments.
46
+ *
47
+ * A collapse is MOTION, and motion that must stay in lock-step with a
48
+ * reanimated animation has to travel as a shared value on the UI thread. React
49
+ * state is the wrong transport at any width, so it is not offered here at all.
50
+ * The app owns that signal — Mention drives its header, its bar and its FAB from
51
+ * one `SharedValue` through `useAnimatedStyle` and this registry stays what it
52
+ * is good at: GEOMETRY. Where things are, not when they move.
58
53
  *
59
54
  * ## Why an external store
60
55
  *
@@ -69,25 +64,17 @@ import { jsx as _jsx } from "react/jsx-runtime";
69
64
  function createBottomEdgeStore() {
70
65
  const claims = new Map();
71
66
  const listeners = new Set();
72
- let reserved = 0;
73
- let collapsed = false;
67
+ let inset = 0;
74
68
  const recompute = () => {
75
- let nextReserved = 0;
76
- // ANY claimant collapsing collapses the edge. With the one floating bar this
77
- // is written for the two readings coincide; where they would not, "something
78
- // at this edge just retracted" is still the signal a reader wants, and it is
79
- // the safe direction — a FAB that fades when it did not strictly have to
80
- // beats one that stays put over a bar that left.
81
- let nextCollapsed = false;
82
- for (const claim of claims.values()) {
83
- if (claim.reserved > nextReserved) nextReserved = claim.reserved;
84
- if (claim.collapsed) nextCollapsed = true;
69
+ let next = 0;
70
+ for (const height of claims.values()) {
71
+ if (height > next) next = height;
85
72
  }
86
- // Bail before notifying: a re-registration at an unchanged footprint (every
87
- // render of a claimant that did not move) must not re-render every reader.
88
- if (nextReserved === reserved && nextCollapsed === collapsed) return;
89
- reserved = nextReserved;
90
- collapsed = nextCollapsed;
73
+ // Bail before notifying: a re-registration at an unchanged height (every
74
+ // render of a claimant whose footprint did not move) must not re-render
75
+ // every reader.
76
+ if (next === inset) return;
77
+ inset = next;
91
78
  for (const listener of listeners) listener();
92
79
  };
93
80
  return {
@@ -97,15 +84,10 @@ function createBottomEdgeStore() {
97
84
  listeners.delete(onChange);
98
85
  };
99
86
  },
100
- getReserved: () => reserved,
101
- getCollapsed: () => collapsed,
102
- claim(id, nextReserved, nextCollapsed) {
103
- const existing = claims.get(id);
104
- if (existing?.reserved === nextReserved && existing.collapsed === nextCollapsed) return;
105
- claims.set(id, {
106
- reserved: nextReserved,
107
- collapsed: nextCollapsed
108
- });
87
+ getInset: () => inset,
88
+ claim(id, height) {
89
+ if (claims.get(id) === height) return;
90
+ claims.set(id, height);
109
91
  recompute();
110
92
  },
111
93
  release(id) {
@@ -137,18 +119,15 @@ BottomEdgeProvider.displayName = 'BottomEdgeProvider';
137
119
  // would resubscribe `useSyncExternalStore` on every render.
138
120
  const NO_SUBSCRIPTION = () => () => {};
139
121
  const NO_INSET = () => 0;
140
- const NO_COLLAPSE = () => false;
141
122
 
142
123
  /**
143
- * How much of the bottom edge is permanently RESERVED, in px.
124
+ * How much of the bottom edge is already occupied, in px.
144
125
  *
145
- * Never shrinks while its claimant is mounted, so it is the number for anything
146
- * that must not move as the user scrolls — a list's bottom padding, a toast
147
- * stack's offset:
126
+ * Add it to whatever offset the surface would otherwise use:
148
127
  *
149
128
  * ```tsx
150
- * const reserved = useBottomEdgeInset();
151
- * <FlatList contentContainerStyle={{ paddingBottom: reserved + 12 }} />
129
+ * const occupied = useBottomEdgeInset();
130
+ * <View style={{ position: 'absolute', bottom: windowEdgeGap(insets.bottom) + occupied }} />
152
131
  * ```
153
132
  *
154
133
  * `0` outside a provider, and `0` on the first commit even inside one — a claim
@@ -158,50 +137,27 @@ const NO_COLLAPSE = () => false;
158
137
  */
159
138
  export function useBottomEdgeInset() {
160
139
  const store = useContext(BottomEdgeContext);
161
- return useSyncExternalStore(store?.subscribe ?? NO_SUBSCRIPTION, store?.getReserved ?? NO_INSET, store?.getReserved ?? NO_INSET);
162
- }
163
-
164
- /**
165
- * Whether the surface owning the bottom edge is currently COLLAPSED — the tab
166
- * bar minimized on scroll.
167
- *
168
- * A boolean rather than a live height, on purpose: see the note at the top of
169
- * this file. A reader should FADE or otherwise change state on it, never try to
170
- * stay geometrically locked to the collapsing surface — that lock is what a
171
- * React-state channel cannot deliver, because the surface animates on the UI
172
- * thread and this arrives one to three frames later.
173
- *
174
- * ```tsx
175
- * const collapsed = useBottomEdgeCollapsed();
176
- * // fade out; do not chase the bar's new top edge
177
- * ```
178
- *
179
- * `false` outside a provider.
180
- */
181
- export function useBottomEdgeCollapsed() {
182
- const store = useContext(BottomEdgeContext);
183
- return useSyncExternalStore(store?.subscribe ?? NO_SUBSCRIPTION, store?.getCollapsed ?? NO_COLLAPSE, store?.getCollapsed ?? NO_COLLAPSE);
140
+ return useSyncExternalStore(store?.subscribe ?? NO_SUBSCRIPTION, store?.getInset ?? NO_INSET, store?.getInset ?? NO_INSET);
184
141
  }
185
142
 
186
143
  /**
187
- * Claim the bottom edge for as long as the caller is mounted.
144
+ * Claim `height` px of the bottom edge for as long as the caller is mounted.
188
145
  *
189
146
  * The claimant owns its own placement — claiming does not move it. It declares
190
- * the space it occupies so that everything reading the edge stays off it. Pass
191
- * the FULL footprint (the surface's height plus the gap it holds off the window
192
- * edge), which is the same number the surface positions itself with, and keep it
193
- * at the surface's FULL size even while collapsed: `reserved` is what must stay
194
- * permanently free, and the collapse is reported separately by `collapsed`.
147
+ * the space it occupies so that everything reading `useBottomEdgeInset()` stays
148
+ * off it. Pass the FULL footprint (the surface's height plus the gap it holds
149
+ * off the window edge), which is the same number the surface positions itself
150
+ * with.
195
151
  *
196
152
  * A no-op outside a provider, so a surface stays usable standalone.
197
153
  */
198
- export function useClaimBottomEdge(reserved, collapsed = false) {
154
+ export function useClaimBottomEdge(height) {
199
155
  const store = useContext(BottomEdgeContext);
200
156
  const id = useId();
201
157
  useEffect(() => {
202
158
  if (!store) return;
203
- store.claim(id, reserved, collapsed);
159
+ store.claim(id, height);
204
160
  return () => store.release(id);
205
- }, [store, id, reserved, collapsed]);
161
+ }, [store, id, height]);
206
162
  }
207
163
  //# sourceMappingURL=bottom-edge.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useEffect","useId","useState","useSyncExternalStore","jsx","_jsx","createBottomEdgeStore","claims","Map","listeners","Set","reserved","collapsed","recompute","nextReserved","nextCollapsed","claim","values","listener","subscribe","onChange","add","delete","getReserved","getCollapsed","id","existing","get","set","release","BottomEdgeContext","BottomEdgeProvider","children","store","Provider","value","displayName","NO_SUBSCRIPTION","NO_INSET","NO_COLLAPSE","useBottomEdgeInset","useBottomEdgeCollapsed","useClaimBottomEdge"],"sourceRoot":"../../../src","sources":["layout/bottom-edge.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useEffect","useId","useState","useSyncExternalStore","jsx","_jsx","createBottomEdgeStore","claims","Map","listeners","Set","inset","recompute","next","height","values","listener","subscribe","onChange","add","delete","getInset","claim","id","get","set","release","BottomEdgeContext","BottomEdgeProvider","children","store","Provider","value","displayName","NO_SUBSCRIPTION","NO_INSET","useBottomEdgeInset","useClaimBottomEdge"],"sourceRoot":"../../../src","sources":["layout/bottom-edge.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,5 +7,5 @@
7
7
  * parked there". A surface that floats at the bottom needs both.
8
8
  */
9
9
  export { EDGE_GAP, windowEdgeGap } from "./edge.js";
10
- export { BottomEdgeProvider, useBottomEdgeInset, useBottomEdgeCollapsed, useClaimBottomEdge } from "./bottom-edge.js";
10
+ export { BottomEdgeProvider, useBottomEdgeInset, useClaimBottomEdge } from "./bottom-edge.js";
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EDGE_GAP","windowEdgeGap","BottomEdgeProvider","useBottomEdgeInset","useBottomEdgeCollapsed","useClaimBottomEdge"],"sourceRoot":"../../../src","sources":["layout/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,WAAQ;AAChD,SACEC,kBAAkB,EAClBC,kBAAkB,EAClBC,sBAAsB,EACtBC,kBAAkB,QACb,kBAAe","ignoreList":[]}
1
+ {"version":3,"names":["EDGE_GAP","windowEdgeGap","BottomEdgeProvider","useBottomEdgeInset","useClaimBottomEdge"],"sourceRoot":"../../../src","sources":["layout/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,WAAQ;AAChD,SAASC,kBAAkB,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAQ,kBAAe","ignoreList":[]}
@@ -15,7 +15,7 @@
15
15
  * react-native-screens, so this file is safe in a web bundle and in a
16
16
  * consumer's type-check.
17
17
  */
18
- import { Children, createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
18
+ import { Children, createContext, useCallback, useContext, useEffect, useMemo } from 'react';
19
19
  import { Pressable, StyleSheet, useWindowDimensions, View } from 'react-native';
20
20
  import { Gesture, GestureDetector } from 'react-native-gesture-handler';
21
21
  import Animated, { Extrapolation, interpolate, interpolateColor, runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
@@ -42,6 +42,7 @@ function TabBarBody({
42
42
  Blur,
43
43
  children,
44
44
  activeIndex,
45
+ activeProgress,
45
46
  onIndexChange,
46
47
  onIndexLongPress,
47
48
  theme: themeOverrides,
@@ -121,6 +122,28 @@ function TabBarBody({
121
122
  // a legitimate effect (external-system sync), the same shape `Tabs` uses for
122
123
  // its underline. The focus-driven path is handled per-button instead — see
123
124
  // `TabBarButtonBody`.
125
+ // DRIVEN path: a pager owns the highlight's position and writes it every
126
+ // frame, so the position is COPIED rather than sprung — a spring chasing a
127
+ // per-frame value lags behind the finger, which is the whole thing this path
128
+ // exists to avoid.
129
+ //
130
+ // `useAnimatedReaction` cannot be called conditionally, so an unsupplied
131
+ // `activeProgress` is stood in for by a shared value nothing ever writes and
132
+ // the reaction returns early. `driven` changing flips the identity of `source`
133
+ // too, and both are in the deps array, so the reaction re-registers either
134
+ // way.
135
+ //
136
+ // Scrubbing still wins: a finger on the BAR is a direct manipulation of the
137
+ // bar and must not be fought by the pager's settle animation.
138
+ // (Deps: see the CRITICAL note below.)
139
+ const idleProgress = useSharedValue(0);
140
+ const driven = activeProgress !== undefined;
141
+ const source = activeProgress ?? idleProgress;
142
+ useAnimatedReaction(() => source.value, value => {
143
+ if (!driven) return;
144
+ if (isDragging.value) return;
145
+ slideIndex.value = value;
146
+ }, [source, driven, isDragging, slideIndex]);
124
147
  useEffect(() => {
125
148
  if (activeIndex === undefined) return;
126
149
  // While scrubbing the finger owns the highlight; never fight it.
@@ -141,9 +164,16 @@ function TabBarBody({
141
164
  // stale index would animate out of a position the user never saw, and would
142
165
  // light up every tab in between on the way. Interrupted mid-fade it is
143
166
  // still on screen, so from there it slides as it always does.
144
- slideIndex.value = highlightOpacity.value === 0 ? activeIndex : withSpring(activeIndex, SLIDE_SPRING);
167
+ //
168
+ // On the DRIVEN path this effect keeps owning visibility and gives up the
169
+ // position: the driver is already writing `slideIndex` every frame, and a
170
+ // spring started here would drag the capsule across the bar between two of
171
+ // its writes.
172
+ if (!driven) {
173
+ slideIndex.value = highlightOpacity.value === 0 ? activeIndex : withSpring(activeIndex, SLIDE_SPRING);
174
+ }
145
175
  highlightOpacity.value = withTiming(1, HIGHLIGHT_FADE);
146
- }, [activeIndex, hasSelection, slideIndex, highlightOpacity, isDragging]);
176
+ }, [activeIndex, hasSelection, driven, slideIndex, highlightOpacity, isDragging]);
147
177
 
148
178
  // Scrubbing: the highlight tracks the finger 1:1 while dragging (no spring —
149
179
  // it must feel attached), haptic ticks fire on boundary crossings, and
@@ -209,7 +239,14 @@ function TabBarBody({
209
239
  const index = Math.round(indexAtX(event.x, progress.value));
210
240
  // Same rule as the controlled path above: appear at the tapped tab when
211
241
  // hidden, slide to it when already on screen.
212
- slideIndex.value = highlightOpacity.value === 0 ? index : withSpring(index, SLIDE_SPRING);
242
+ //
243
+ // A tap is a discrete writer, so on the DRIVEN path it stands down like
244
+ // the others and the driver carries the highlight to the tapped tab.
245
+ // The scrub is the one gesture that does not: a finger dragging the
246
+ // pill is manipulating the bar itself, not asking for a page.
247
+ if (!driven) {
248
+ slideIndex.value = highlightOpacity.value === 0 ? index : withSpring(index, SLIDE_SPRING);
249
+ }
213
250
  highlightOpacity.value = withTiming(1, HIGHLIGHT_FADE);
214
251
  setMinimized(minimized, 0);
215
252
  runOnJS(selectIndex)(index);
@@ -229,7 +266,7 @@ function TabBarBody({
229
266
  runOnJS(longPressIndex)(Math.round(indexAtX(event.x, progress.value)));
230
267
  });
231
268
  return Gesture.Race(pan, tap, longPress);
232
- }, [barOuterWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, isDragging, lastTicked, slideIndex, highlightOpacity, minimized, progress]);
269
+ }, [barOuterWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, driven, isDragging, lastTicked, slideIndex, highlightOpacity, minimized, progress]);
233
270
 
234
271
  // CRITICAL — every shared value and every scalar a mapper READS must appear
235
272
  // in its dependency array. On web WITHOUT the react-native-worklets babel
@@ -304,29 +341,13 @@ function TabBarBody({
304
341
  // its own layout can never drift from where the bar actually sits.
305
342
  const bottomOffset = windowEdgeGap(insets.bottom);
306
343
 
307
- // Whether the bar has settled into its minimized size, as REACT state.
308
- //
309
- // Reacting on `target` rather than on `progress` is what keeps this cheap:
310
- // `target` is the binary 0/1 the minimize spring is heading for, so this fires
311
- // twice per scroll gesture instead of once per frame. Crossing `progress > 0.5`
312
- // would work too and would cost the same, but it would report the change
313
- // halfway through the animation rather than when it was decided.
314
- const [isMinimized, setIsMinimized] = useState(false);
315
- useAnimatedReaction(() => minimized.target.value, (target, previous) => {
316
- if (target !== previous) runOnJS(setIsMinimized)(target === 1);
317
- }, [minimized]);
318
-
319
344
  // Publish what the bar occupies so anything else at this edge stacks above it
320
- // rather than behind it. Same numbers `useTabBarFootprint` reports, derived
321
- // from the same geometry, so a consumer reading either can never disagree with
322
- // where the bar actually sits.
323
- //
324
- // RESERVED stays the EXPANDED height even while minimized: the bar re-expands
325
- // the moment the user scrolls back up, so anything that permanently reserves
326
- // space (a list's bottom padding, a toast) must keep room for the full pill or
327
- // it would jitter on every scroll. The collapse travels as its own STATE — see
328
- // `layout/bottom-edge` for why it is a boolean and not the live height.
329
- useClaimBottomEdge(bottomOffset + EXPANDED_HEIGHT, isMinimized);
345
+ // rather than behind it. Same number `useTabBarFootprint` reports, derived from
346
+ // the same two values, so a consumer reading either can never disagree with
347
+ // where the bar actually sits. The EXPANDED height on purpose: the bar
348
+ // minimizes on scroll and re-expands, so claiming the minimized height would
349
+ // drop a FAB onto the pill the moment the user scrolled back up.
350
+ useClaimBottomEdge(bottomOffset + EXPANDED_HEIGHT);
330
351
 
331
352
  // How centring and the animated inset compose: centring is STATIC and belongs
332
353
  // to the wrap, the inset stays ANIMATED on the pill inside it. The wrap is
@@ -349,8 +370,9 @@ function TabBarBody({
349
370
  isDragging,
350
371
  theme,
351
372
  activeIndex,
373
+ driven,
352
374
  selectIndex
353
- }), [slideIndex, highlightOpacity, isDragging, theme, activeIndex, selectIndex]);
375
+ }), [slideIndex, highlightOpacity, isDragging, theme, activeIndex, driven, selectIndex]);
354
376
  return /*#__PURE__*/_jsxs(View, {
355
377
  ...viewProps,
356
378
  pointerEvents: "box-none",
@@ -424,6 +446,10 @@ function TabBarButtonBody({
424
446
  useEffect(() => {
425
447
  if (isFocused === undefined || !isFocused || !bar) return;
426
448
  if (bar.isDragging.value) return;
449
+ // A driver owns the position — see `TabBarProps.activeProgress`. It is
450
+ // already tracking this same focus change; springing from here as well would
451
+ // be a second writer on one shared value.
452
+ if (bar.driven) return;
427
453
  bar.slideIndex.value = withSpring(index, SLIDE_SPRING);
428
454
  }, [isFocused, index, bar]);
429
455
 
@@ -485,8 +511,12 @@ function TabBarButtonBody({
485
511
  // for assistive-technology activation (VoiceOver) and keyboard focus.
486
512
  if (bar) {
487
513
  // Appear at the tab when hidden, slide to it when visible — the same
488
- // rule the tap gesture and the controlled path follow.
489
- bar.slideIndex.value = bar.highlightOpacity.value === 0 ? index : withSpring(index, SLIDE_SPRING);
514
+ // rule the tap gesture and the controlled path follow. Skipped on the
515
+ // driven path, where the position belongs to the driver and this
516
+ // press will reach it as an ordinary selection.
517
+ if (!bar.driven) {
518
+ bar.slideIndex.value = bar.highlightOpacity.value === 0 ? index : withSpring(index, SLIDE_SPRING);
519
+ }
490
520
  bar.highlightOpacity.value = withTiming(1, HIGHLIGHT_FADE);
491
521
  }
492
522
  setMinimized(minimized, 0);
@@ -1 +1 @@
1
- {"version":3,"names":["Children","createContext","useCallback","useContext","useEffect","useMemo","useState","Pressable","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","Animated","Extrapolation","interpolate","interpolateColor","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","useSafeAreaInsets","useHaptics","useClaimBottomEdge","windowEdgeGap","setMinimized","useMinimizeState","BAR_MARGIN","BLUR_BLEED","EXPANDED_HEIGHT","HIGHLIGHT_EXPANDED","HIGHLIGHT_FADE","HIGHLIGHT_MINIMIZED","ICON_SIZE","ITEM_GAP","ITEM_PAD_V","LABEL_FONT_SIZE","LONG_PRESS_MIN_DURATION","MINIMIZED_HEIGHT","MINIMIZED_INSET","ROW_PAD_H","SLIDE_SPRING","useTabBarTheme","jsx","_jsx","jsxs","_jsxs","BarContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","blur","maxWidth","style","viewProps","insets","width","windowWidth","minimized","progress","tabCount","Math","max","count","hasSelection","undefined","Number","isInteger","slideIndex","highlightOpacity","isDragging","lastTicked","impact","barOuterWidth","min","tick","selectIndex","index","longPressIndex","hasLongPress","value","gesture","indexAtX","x","minimizedValue","sideInset","CLAMP","barWidth","itemWidth","raw","pan","Pan","activeOffsetX","failOffsetY","onStart","event","round","onUpdate","rounded","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","barStyle","height","inset","marginLeft","marginRight","shapeStyle","borderRadius","highlightStyle","barHeight","top","opacity","transform","translateX","bottomOffset","bottom","isMinimized","setIsMinimized","target","previous","constrainedWrapStyle","alignSelf","barContext","pointerEvents","styles","root","direction","intensity","position","left","right","barWrap","marginBottom","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","standaloneTheme","focused","activeGlyphStyle","proximity","abs","labelStyle","color","activeTint","inactiveTint","boxStyle","accessibilityLabel","label","state","button","itemBox","tint","size","active","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","marginHorizontal","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","paddingTop","overflow","fontSize","fontWeight","marginTop"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Children","createContext","useCallback","useContext","useEffect","useMemo","Pressable","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","Animated","Extrapolation","interpolate","interpolateColor","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","useSafeAreaInsets","useHaptics","useClaimBottomEdge","windowEdgeGap","setMinimized","useMinimizeState","BAR_MARGIN","BLUR_BLEED","EXPANDED_HEIGHT","HIGHLIGHT_EXPANDED","HIGHLIGHT_FADE","HIGHLIGHT_MINIMIZED","ICON_SIZE","ITEM_GAP","ITEM_PAD_V","LABEL_FONT_SIZE","LONG_PRESS_MIN_DURATION","MINIMIZED_HEIGHT","MINIMIZED_INSET","ROW_PAD_H","SLIDE_SPRING","useTabBarTheme","jsx","_jsx","jsxs","_jsxs","BarContext","TabBarBody","Surface","Blur","children","activeIndex","activeProgress","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","blur","maxWidth","style","viewProps","insets","width","windowWidth","minimized","progress","tabCount","Math","max","count","hasSelection","undefined","Number","isInteger","slideIndex","highlightOpacity","isDragging","lastTicked","impact","barOuterWidth","min","tick","selectIndex","index","longPressIndex","hasLongPress","idleProgress","driven","source","value","gesture","indexAtX","x","minimizedValue","sideInset","CLAMP","barWidth","itemWidth","raw","pan","Pan","activeOffsetX","failOffsetY","onStart","event","round","onUpdate","rounded","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","barStyle","height","inset","marginLeft","marginRight","shapeStyle","borderRadius","highlightStyle","barHeight","top","opacity","transform","translateX","bottomOffset","bottom","constrainedWrapStyle","alignSelf","barContext","pointerEvents","styles","root","direction","intensity","position","left","right","barWrap","marginBottom","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","standaloneTheme","focused","activeGlyphStyle","proximity","abs","labelStyle","color","activeTint","inactiveTint","boxStyle","accessibilityLabel","label","state","button","itemBox","tint","size","active","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","marginHorizontal","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","paddingTop","overflow","fontSize","fontWeight","marginTop"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,11 @@ import { TabBar, TabBarButton } from '../index';
19
19
  * by each trigger's own focus (see `RouterTabBarButton`), which is what keeps it
20
20
  * correct through deep links, back gestures and any other programmatic
21
21
  * navigation. Setting both would put two writers on one shared value.
22
+ *
23
+ * `activeProgress` is NOT omitted, and that is not an oversight. It answers a
24
+ * different question — where the highlight is, not whether there is one — so a
25
+ * router-focused bar whose screens are PAGED can pass it and keep the focus
26
+ * path for selection. See `TabBarProps.activeProgress`.
22
27
  */
23
28
  import { jsx as _jsx } from "react/jsx-runtime";
24
29
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["TabBar","TabBarButton","jsx","_jsx","RouterTabBar","asChild","_asChild","props","displayName","RouterTabBarButton","item","index","href","_href"],"sourceRoot":"../../../../src","sources":["tab-bar/expo-router/RouterTabBar.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,MAAM,EAAEC,YAAY,QAAQ,UAAU;;AAG/C;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,GAAA,IAAAC,IAAA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAC;EAC3B;EACA;EACA;EACAC,OAAO,EAAEC,QAAQ;EACjB,GAAGC;AACc,CAAC,EAAE;EACpB,oBAAOJ,IAAA,CAACH,MAAM;IAAA,GAAKO;EAAK,CAAG,CAAC;AAC9B;AAEAH,YAAY,CAACI,WAAW,GAAG,cAAc;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,IAAI;EACJC,KAAK;EACL;EACA;EACA;EACAC,IAAI,EAAEC,KAAK;EACX,GAAGN;AACoB,CAAC,EAAE;EAC1B,oBAAOJ,IAAA,CAACF,YAAY;IAAA,GAAKM,KAAK;IAAEG,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9D;AAEAF,kBAAkB,CAACD,WAAW,GAAG,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["TabBar","TabBarButton","jsx","_jsx","RouterTabBar","asChild","_asChild","props","displayName","RouterTabBarButton","item","index","href","_href"],"sourceRoot":"../../../../src","sources":["tab-bar/expo-router/RouterTabBar.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,MAAM,EAAEC,YAAY,QAAQ,UAAU;;AAG/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,SAAAC,GAAA,IAAAC,IAAA;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAAC;EAC3B;EACA;EACA;EACAC,OAAO,EAAEC,QAAQ;EACjB,GAAGC;AACc,CAAC,EAAE;EACpB,oBAAOJ,IAAA,CAACH,MAAM;IAAA,GAAKO;EAAK,CAAG,CAAC;AAC9B;AAEAH,YAAY,CAACI,WAAW,GAAG,cAAc;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,IAAI;EACJC,KAAK;EACL;EACA;EACA;EACAC,IAAI,EAAEC,KAAK;EACX,GAAGN;AACoB,CAAC,EAAE;EAC1B,oBAAOJ,IAAA,CAACF,YAAY;IAAA,GAAKM,KAAK;IAAEG,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9D;AAEAF,kBAAkB,CAACD,WAAW,GAAG,oBAAoB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAa/D,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,SAAS,CAAC;AAsY7D,eAAO,MAAM,MAAM,yCAAwB,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAa/D,OAAO,KAAK,EAAE,WAAW,EAAqC,MAAM,SAAS,CAAC;AAuZ9E,eAAO,MAAM,MAAM,yCAAwB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import type { AvatarRingGradientDirection, AvatarShape } from './types';
2
+ import type { ResolvedAvatarShape } from './resolve-shape';
3
+ import type { AvatarRingGradientDirection } from './types';
3
4
  /**
4
5
  * Size of the box the ring occupies. With `gap === 0` the ring overlays the
5
6
  * avatar edge and the box equals the avatar size (footprint unchanged). With
@@ -11,8 +12,8 @@ export declare function getRingOuterSize(size: number, width: number, gap: numbe
11
12
  interface AvatarRingProps {
12
13
  /** Avatar diameter in px (the inner content size, before any gap). */
13
14
  size: number;
14
- /** Matches the avatar shape. */
15
- shape: AvatarShape;
15
+ /** The avatar's resolved outline, or `null` for a circle. */
16
+ shape: ResolvedAvatarShape;
16
17
  /** Solid ring: one color. Gradient ring: 2+ colors. */
17
18
  colors: string | string[];
18
19
  /** Ring stroke width in px. */
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarRing.d.ts","sourceRoot":"","sources":["../../../../src/avatar/AvatarRing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAM7C,OAAO,KAAK,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOxE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,UAAU,eAAe;IACvB,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,uDAAuD;IACvD,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,iBAAiB,EAAE,2BAA2B,CAAC;CAChD;AA2HD,eAAO,MAAM,UAAU,6CAA4B,CAAC"}
1
+ {"version":3,"file":"AvatarRing.d.ts","sourceRoot":"","sources":["../../../../src/avatar/AvatarRing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAK7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAO3D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,UAAU,eAAe;IACvB,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,KAAK,EAAE,mBAAmB,CAAC;IAC3B,uDAAuD;IACvD,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,iBAAiB,EAAE,2BAA2B,CAAC;CAChD;AAkID,eAAO,MAAM,UAAU,6CAA4B,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export { Avatar } from './Avatar';
2
2
  export { AvatarPlaceholderProvider } from './context';
3
3
  export type { AvatarPlaceholderConfig } from './context';
4
- export type { AvatarProps, AvatarShape, AvatarRingConfig, AvatarRingGradientDirection, } from './types';
4
+ export type { AvatarProps, AvatarShape, AvatarShapePath, AvatarRingConfig, AvatarRingGradientDirection, } from './types';
5
5
  export { defaultAvatarSource } from './default-avatar';
6
+ export { AVATAR_SHAPE_PATHS, AVATAR_SHAPE_LABELS, NAMED_SHAPE_VIEW_BOX, } from './shape-paths';
7
+ export type { AvatarShapeName } from './shape-paths';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,YAAY,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,YAAY,EACV,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}