@oxyhq/bloom 0.29.5 → 0.30.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 (199) hide show
  1. package/lib/commonjs/activity-heatmap/ActivityHeatmap.js +304 -0
  2. package/lib/commonjs/activity-heatmap/ActivityHeatmap.js.map +1 -0
  3. package/lib/commonjs/activity-heatmap/bucketByDay.js +51 -0
  4. package/lib/commonjs/activity-heatmap/bucketByDay.js.map +1 -0
  5. package/lib/commonjs/activity-heatmap/index.js +20 -0
  6. package/lib/commonjs/activity-heatmap/index.js.map +1 -0
  7. package/lib/commonjs/activity-heatmap/types.js +6 -0
  8. package/lib/commonjs/activity-heatmap/types.js.map +1 -0
  9. package/lib/commonjs/avatar-group/AvatarGroupBase.js +42 -18
  10. package/lib/commonjs/avatar-group/AvatarGroupBase.js.map +1 -1
  11. package/lib/commonjs/composition-bar/CompositionBar.js +159 -0
  12. package/lib/commonjs/composition-bar/CompositionBar.js.map +1 -0
  13. package/lib/commonjs/composition-bar/index.js +13 -0
  14. package/lib/commonjs/composition-bar/index.js.map +1 -0
  15. package/lib/commonjs/composition-bar/types.js +6 -0
  16. package/lib/commonjs/composition-bar/types.js.map +1 -0
  17. package/lib/commonjs/dot-grid-meter/DotGridMeter.js +69 -0
  18. package/lib/commonjs/dot-grid-meter/DotGridMeter.js.map +1 -0
  19. package/lib/commonjs/dot-grid-meter/index.js +13 -0
  20. package/lib/commonjs/dot-grid-meter/index.js.map +1 -0
  21. package/lib/commonjs/dot-grid-meter/types.js +6 -0
  22. package/lib/commonjs/dot-grid-meter/types.js.map +1 -0
  23. package/lib/commonjs/index.js +59 -12
  24. package/lib/commonjs/index.js.map +1 -1
  25. package/lib/commonjs/index.web.js +59 -12
  26. package/lib/commonjs/index.web.js.map +1 -1
  27. package/lib/commonjs/profile-card/ProfileCard.js +301 -0
  28. package/lib/commonjs/profile-card/ProfileCard.js.map +1 -0
  29. package/lib/commonjs/profile-card/index.js +13 -0
  30. package/lib/commonjs/profile-card/index.js.map +1 -0
  31. package/lib/commonjs/profile-card/types.js +6 -0
  32. package/lib/commonjs/profile-card/types.js.map +1 -0
  33. package/lib/commonjs/stat-bar/StatBar.js +210 -0
  34. package/lib/commonjs/stat-bar/StatBar.js.map +1 -0
  35. package/lib/commonjs/stat-bar/index.js +13 -0
  36. package/lib/commonjs/stat-bar/index.js.map +1 -0
  37. package/lib/commonjs/stat-bar/types.js +6 -0
  38. package/lib/commonjs/stat-bar/types.js.map +1 -0
  39. package/lib/commonjs/typography/index.js +4 -5
  40. package/lib/commonjs/typography/index.js.map +1 -1
  41. package/lib/commonjs/typography/styled-text.js +12 -19
  42. package/lib/commonjs/typography/styled-text.js.map +1 -1
  43. package/lib/module/activity-heatmap/ActivityHeatmap.js +299 -0
  44. package/lib/module/activity-heatmap/ActivityHeatmap.js.map +1 -0
  45. package/lib/module/activity-heatmap/bucketByDay.js +47 -0
  46. package/lib/module/activity-heatmap/bucketByDay.js.map +1 -0
  47. package/lib/module/activity-heatmap/index.js +5 -0
  48. package/lib/module/activity-heatmap/index.js.map +1 -0
  49. package/lib/module/activity-heatmap/types.js +4 -0
  50. package/lib/module/activity-heatmap/types.js.map +1 -0
  51. package/lib/module/avatar-group/AvatarGroupBase.js +42 -18
  52. package/lib/module/avatar-group/AvatarGroupBase.js.map +1 -1
  53. package/lib/module/composition-bar/CompositionBar.js +154 -0
  54. package/lib/module/composition-bar/CompositionBar.js.map +1 -0
  55. package/lib/module/composition-bar/index.js +4 -0
  56. package/lib/module/composition-bar/index.js.map +1 -0
  57. package/lib/module/composition-bar/types.js +4 -0
  58. package/lib/module/composition-bar/types.js.map +1 -0
  59. package/lib/module/dot-grid-meter/DotGridMeter.js +64 -0
  60. package/lib/module/dot-grid-meter/DotGridMeter.js.map +1 -0
  61. package/lib/module/dot-grid-meter/index.js +4 -0
  62. package/lib/module/dot-grid-meter/index.js.map +1 -0
  63. package/lib/module/dot-grid-meter/types.js +4 -0
  64. package/lib/module/dot-grid-meter/types.js.map +1 -0
  65. package/lib/module/index.js +6 -0
  66. package/lib/module/index.js.map +1 -1
  67. package/lib/module/index.web.js +6 -0
  68. package/lib/module/index.web.js.map +1 -1
  69. package/lib/module/profile-card/ProfileCard.js +296 -0
  70. package/lib/module/profile-card/ProfileCard.js.map +1 -0
  71. package/lib/module/profile-card/index.js +4 -0
  72. package/lib/module/profile-card/index.js.map +1 -0
  73. package/lib/module/profile-card/types.js +4 -0
  74. package/lib/module/profile-card/types.js.map +1 -0
  75. package/lib/module/stat-bar/StatBar.js +205 -0
  76. package/lib/module/stat-bar/StatBar.js.map +1 -0
  77. package/lib/module/stat-bar/index.js +4 -0
  78. package/lib/module/stat-bar/index.js.map +1 -0
  79. package/lib/module/stat-bar/types.js +4 -0
  80. package/lib/module/stat-bar/types.js.map +1 -0
  81. package/lib/module/typography/index.js +5 -6
  82. package/lib/module/typography/index.js.map +1 -1
  83. package/lib/module/typography/styled-text.js +12 -19
  84. package/lib/module/typography/styled-text.js.map +1 -1
  85. package/lib/typescript/commonjs/activity-heatmap/ActivityHeatmap.d.ts +4 -0
  86. package/lib/typescript/commonjs/activity-heatmap/ActivityHeatmap.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/activity-heatmap/bucketByDay.d.ts +9 -0
  88. package/lib/typescript/commonjs/activity-heatmap/bucketByDay.d.ts.map +1 -0
  89. package/lib/typescript/commonjs/activity-heatmap/index.d.ts +4 -0
  90. package/lib/typescript/commonjs/activity-heatmap/index.d.ts.map +1 -0
  91. package/lib/typescript/commonjs/activity-heatmap/types.d.ts +73 -0
  92. package/lib/typescript/commonjs/activity-heatmap/types.d.ts.map +1 -0
  93. package/lib/typescript/commonjs/avatar-group/AvatarGroupBase.d.ts.map +1 -1
  94. package/lib/typescript/commonjs/avatar-group/types.d.ts +15 -1
  95. package/lib/typescript/commonjs/avatar-group/types.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/composition-bar/CompositionBar.d.ts +4 -0
  97. package/lib/typescript/commonjs/composition-bar/CompositionBar.d.ts.map +1 -0
  98. package/lib/typescript/commonjs/composition-bar/index.d.ts +3 -0
  99. package/lib/typescript/commonjs/composition-bar/index.d.ts.map +1 -0
  100. package/lib/typescript/commonjs/composition-bar/types.d.ts +29 -0
  101. package/lib/typescript/commonjs/composition-bar/types.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/dot-grid-meter/DotGridMeter.d.ts +4 -0
  103. package/lib/typescript/commonjs/dot-grid-meter/DotGridMeter.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/dot-grid-meter/index.d.ts +3 -0
  105. package/lib/typescript/commonjs/dot-grid-meter/index.d.ts.map +1 -0
  106. package/lib/typescript/commonjs/dot-grid-meter/types.d.ts +36 -0
  107. package/lib/typescript/commonjs/dot-grid-meter/types.d.ts.map +1 -0
  108. package/lib/typescript/commonjs/index.d.ts +10 -0
  109. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/index.web.d.ts +10 -0
  111. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/profile-card/ProfileCard.d.ts +4 -0
  113. package/lib/typescript/commonjs/profile-card/ProfileCard.d.ts.map +1 -0
  114. package/lib/typescript/commonjs/profile-card/index.d.ts +3 -0
  115. package/lib/typescript/commonjs/profile-card/index.d.ts.map +1 -0
  116. package/lib/typescript/commonjs/profile-card/types.d.ts +86 -0
  117. package/lib/typescript/commonjs/profile-card/types.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/stat-bar/StatBar.d.ts +4 -0
  119. package/lib/typescript/commonjs/stat-bar/StatBar.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/stat-bar/index.d.ts +3 -0
  121. package/lib/typescript/commonjs/stat-bar/index.d.ts.map +1 -0
  122. package/lib/typescript/commonjs/stat-bar/types.d.ts +62 -0
  123. package/lib/typescript/commonjs/stat-bar/types.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/typography/index.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/typography/styled-text.d.ts +1 -6
  126. package/lib/typescript/commonjs/typography/styled-text.d.ts.map +1 -1
  127. package/lib/typescript/module/activity-heatmap/ActivityHeatmap.d.ts +4 -0
  128. package/lib/typescript/module/activity-heatmap/ActivityHeatmap.d.ts.map +1 -0
  129. package/lib/typescript/module/activity-heatmap/bucketByDay.d.ts +9 -0
  130. package/lib/typescript/module/activity-heatmap/bucketByDay.d.ts.map +1 -0
  131. package/lib/typescript/module/activity-heatmap/index.d.ts +4 -0
  132. package/lib/typescript/module/activity-heatmap/index.d.ts.map +1 -0
  133. package/lib/typescript/module/activity-heatmap/types.d.ts +73 -0
  134. package/lib/typescript/module/activity-heatmap/types.d.ts.map +1 -0
  135. package/lib/typescript/module/avatar-group/AvatarGroupBase.d.ts.map +1 -1
  136. package/lib/typescript/module/avatar-group/types.d.ts +15 -1
  137. package/lib/typescript/module/avatar-group/types.d.ts.map +1 -1
  138. package/lib/typescript/module/composition-bar/CompositionBar.d.ts +4 -0
  139. package/lib/typescript/module/composition-bar/CompositionBar.d.ts.map +1 -0
  140. package/lib/typescript/module/composition-bar/index.d.ts +3 -0
  141. package/lib/typescript/module/composition-bar/index.d.ts.map +1 -0
  142. package/lib/typescript/module/composition-bar/types.d.ts +29 -0
  143. package/lib/typescript/module/composition-bar/types.d.ts.map +1 -0
  144. package/lib/typescript/module/dot-grid-meter/DotGridMeter.d.ts +4 -0
  145. package/lib/typescript/module/dot-grid-meter/DotGridMeter.d.ts.map +1 -0
  146. package/lib/typescript/module/dot-grid-meter/index.d.ts +3 -0
  147. package/lib/typescript/module/dot-grid-meter/index.d.ts.map +1 -0
  148. package/lib/typescript/module/dot-grid-meter/types.d.ts +36 -0
  149. package/lib/typescript/module/dot-grid-meter/types.d.ts.map +1 -0
  150. package/lib/typescript/module/index.d.ts +10 -0
  151. package/lib/typescript/module/index.d.ts.map +1 -1
  152. package/lib/typescript/module/index.web.d.ts +10 -0
  153. package/lib/typescript/module/index.web.d.ts.map +1 -1
  154. package/lib/typescript/module/profile-card/ProfileCard.d.ts +4 -0
  155. package/lib/typescript/module/profile-card/ProfileCard.d.ts.map +1 -0
  156. package/lib/typescript/module/profile-card/index.d.ts +3 -0
  157. package/lib/typescript/module/profile-card/index.d.ts.map +1 -0
  158. package/lib/typescript/module/profile-card/types.d.ts +86 -0
  159. package/lib/typescript/module/profile-card/types.d.ts.map +1 -0
  160. package/lib/typescript/module/stat-bar/StatBar.d.ts +4 -0
  161. package/lib/typescript/module/stat-bar/StatBar.d.ts.map +1 -0
  162. package/lib/typescript/module/stat-bar/index.d.ts +3 -0
  163. package/lib/typescript/module/stat-bar/index.d.ts.map +1 -0
  164. package/lib/typescript/module/stat-bar/types.d.ts +62 -0
  165. package/lib/typescript/module/stat-bar/types.d.ts.map +1 -0
  166. package/lib/typescript/module/typography/index.d.ts.map +1 -1
  167. package/lib/typescript/module/typography/styled-text.d.ts +1 -6
  168. package/lib/typescript/module/typography/styled-text.d.ts.map +1 -1
  169. package/package.json +56 -1
  170. package/src/__tests__/StatWidgets.test.tsx +184 -0
  171. package/src/__tests__/public-api-contract.test.ts +15 -0
  172. package/src/activity-heatmap/ActivityHeatmap.stories.tsx +108 -0
  173. package/src/activity-heatmap/ActivityHeatmap.tsx +289 -0
  174. package/src/activity-heatmap/bucketByDay.ts +49 -0
  175. package/src/activity-heatmap/index.ts +3 -0
  176. package/src/activity-heatmap/types.ts +74 -0
  177. package/src/avatar-group/AvatarGroup.stories.tsx +14 -0
  178. package/src/avatar-group/AvatarGroupBase.tsx +39 -18
  179. package/src/avatar-group/types.ts +15 -1
  180. package/src/composition-bar/CompositionBar.stories.tsx +70 -0
  181. package/src/composition-bar/CompositionBar.tsx +161 -0
  182. package/src/composition-bar/index.ts +2 -0
  183. package/src/composition-bar/types.ts +30 -0
  184. package/src/dot-grid-meter/DotGridMeter.stories.tsx +47 -0
  185. package/src/dot-grid-meter/DotGridMeter.tsx +71 -0
  186. package/src/dot-grid-meter/index.ts +2 -0
  187. package/src/dot-grid-meter/types.ts +36 -0
  188. package/src/index.ts +24 -0
  189. package/src/index.web.ts +24 -0
  190. package/src/profile-card/ProfileCard.stories.tsx +210 -0
  191. package/src/profile-card/ProfileCard.tsx +303 -0
  192. package/src/profile-card/index.ts +9 -0
  193. package/src/profile-card/types.ts +86 -0
  194. package/src/stat-bar/StatBar.stories.tsx +61 -0
  195. package/src/stat-bar/StatBar.tsx +156 -0
  196. package/src/stat-bar/index.ts +7 -0
  197. package/src/stat-bar/types.ts +65 -0
  198. package/src/typography/index.tsx +4 -6
  199. package/src/typography/styled-text.ts +11 -28
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ActivityHeatmap = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _useTheme = require("../theme/use-theme.js");
10
+ var _index = require("../typography/index.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
+ const DAY_MS = 86_400_000;
14
+ const DEFAULT_NUM_DAYS = 364;
15
+ const DEFAULT_LEVELS = [1, 3, 6, 10];
16
+ const DEFAULT_MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
17
+ /** Opacity steps (low→high) used to derive the default color scale from primary. */
18
+ const DEFAULT_ALPHAS = [0.16, 0.32, 0.52, 0.75, 1];
19
+ const LABEL_FONT_SIZE = 10;
20
+ const MONTH_ROW_HEIGHT = 16;
21
+ const WEEKDAY_COL_WIDTH = 26;
22
+ const DATE_KEY_RE = /^(\d{4})-(\d{2})-(\d{2})/;
23
+ function parseDateKey(key) {
24
+ const match = DATE_KEY_RE.exec(key);
25
+ if (match) {
26
+ const year = Number(match[1]);
27
+ const month = Number(match[2]);
28
+ const day = Number(match[3]);
29
+ const ts = Date.UTC(year, month - 1, day);
30
+ return Number.isNaN(ts) ? null : ts;
31
+ }
32
+ const parsed = Date.parse(key);
33
+ return Number.isNaN(parsed) ? null : parsed;
34
+ }
35
+ function formatUtcKey(ts) {
36
+ const d = new Date(ts);
37
+ const year = d.getUTCFullYear();
38
+ const month = String(d.getUTCMonth() + 1).padStart(2, '0');
39
+ const day = String(d.getUTCDate()).padStart(2, '0');
40
+ return `${year}-${month}-${day}`;
41
+ }
42
+
43
+ /** Count of ascending thresholds `count` meets — the color-scale index. */
44
+ function levelForCount(count, levels) {
45
+ if (count <= 0) return 0;
46
+ let level = 0;
47
+ for (const threshold of levels) {
48
+ if (count >= threshold) level += 1;else break;
49
+ }
50
+ return level;
51
+ }
52
+ function parseRgb(color) {
53
+ const trimmed = color.trim();
54
+ if (trimmed.startsWith('#')) {
55
+ let hex = trimmed.slice(1);
56
+ if (hex.length === 3) hex = hex.split('').map(c => c + c).join('');
57
+ if (hex.length !== 6) return null;
58
+ const r = parseInt(hex.slice(0, 2), 16);
59
+ const g = parseInt(hex.slice(2, 4), 16);
60
+ const b = parseInt(hex.slice(4, 6), 16);
61
+ if ([r, g, b].some(v => Number.isNaN(v))) return null;
62
+ return {
63
+ r,
64
+ g,
65
+ b
66
+ };
67
+ }
68
+ const match = /rgba?\(([^)]+)\)/i.exec(trimmed);
69
+ if (!match || match[1] === undefined) return null;
70
+ const parts = match[1].split(/[\s,/]+/).filter(Boolean).map(Number);
71
+ if (parts.length < 3) return null;
72
+ const [r, g, b] = parts;
73
+ if (r === undefined || g === undefined || b === undefined) return null;
74
+ if ([r, g, b].some(v => Number.isNaN(v))) return null;
75
+ return {
76
+ r,
77
+ g,
78
+ b
79
+ };
80
+ }
81
+
82
+ /** Compose `color` at `alpha`; returns the input unchanged if it can't parse. */
83
+ function withAlpha(color, alpha) {
84
+ const rgb = parseRgb(color);
85
+ if (!rgb) return color;
86
+ return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha})`;
87
+ }
88
+ /**
89
+ * A GitHub-style contribution graph: columns of weeks × 7 weekday rows of
90
+ * rounded square cells, each colored by its day's activity level. Pure `<View>`
91
+ * composition (no SVG), rendering identically on web and native. The component
92
+ * lays out at its natural width — wrap it in a horizontal `ScrollView` for
93
+ * narrow viewports. All date math runs in UTC and the system clock is never
94
+ * read; anchor the grid with `endDate`.
95
+ */
96
+ const ActivityHeatmapComponent = ({
97
+ data,
98
+ numDays = DEFAULT_NUM_DAYS,
99
+ endDate,
100
+ levels = DEFAULT_LEVELS,
101
+ colorScale,
102
+ emptyColor,
103
+ cellSize = 12,
104
+ gap = 3,
105
+ weekStartsOn = 0,
106
+ monthLabels,
107
+ weekdayLabels,
108
+ onPressDay,
109
+ style,
110
+ testID
111
+ }) => {
112
+ const {
113
+ colors
114
+ } = (0, _useTheme.useTheme)();
115
+ const empty = emptyColor ?? colors.backgroundSecondary;
116
+ const scale = (0, _react.useMemo)(() => colorScale ?? DEFAULT_ALPHAS.map(alpha => withAlpha(colors.primary, alpha)), [colorScale, colors.primary]);
117
+ const sortedLevels = (0, _react.useMemo)(() => [...levels].sort((a, b) => a - b), [levels]);
118
+ const months = monthLabels ?? DEFAULT_MONTHS;
119
+ const grid = (0, _react.useMemo)(() => {
120
+ // Sum counts per UTC day.
121
+ const countByKey = new Map();
122
+ let latest = null;
123
+ for (const entry of data) {
124
+ const ts = parseDateKey(entry.date);
125
+ if (ts === null) continue;
126
+ const key = formatUtcKey(ts);
127
+ countByKey.set(key, (countByKey.get(key) ?? 0) + entry.count);
128
+ if (latest === null || ts > latest) latest = ts;
129
+ }
130
+ const providedEnd = endDate ? parseDateKey(endDate) : null;
131
+ const endTs = providedEnd ?? latest;
132
+ if (endTs === null) return null;
133
+ const days = Math.max(1, Math.floor(numDays));
134
+ const rawStart = endTs - (days - 1) * DAY_MS;
135
+ // Align the first column to the start-of-week boundary.
136
+ const back = (new Date(rawStart).getUTCDay() - weekStartsOn + 7) % 7;
137
+ const gridStart = rawStart - back * DAY_MS;
138
+ const columnCount = Math.ceil((Math.floor((endTs - gridStart) / DAY_MS) + 1) / 7);
139
+ const maxColor = scale.length - 1;
140
+ const columns = [];
141
+ for (let c = 0; c < columnCount; c++) {
142
+ const column = [];
143
+ for (let r = 0; r < 7; r++) {
144
+ const ts = gridStart + (c * 7 + r) * DAY_MS;
145
+ if (ts > endTs) {
146
+ column.push(null);
147
+ continue;
148
+ }
149
+ const key = formatUtcKey(ts);
150
+ const count = countByKey.get(key) ?? 0;
151
+ const level = Math.min(levelForCount(count, sortedLevels), maxColor);
152
+ const color = count <= 0 ? empty : scale[level] ?? empty;
153
+ column.push({
154
+ key,
155
+ count,
156
+ color
157
+ });
158
+ }
159
+ columns.push(column);
160
+ }
161
+
162
+ // Month labels: first column whose leading day starts a new month.
163
+ const monthMarks = [];
164
+ let lastMonth = -1;
165
+ for (let c = 0; c < columnCount; c++) {
166
+ const firstTs = gridStart + c * 7 * DAY_MS;
167
+ const month = new Date(firstTs).getUTCMonth();
168
+ if (month !== lastMonth) {
169
+ monthMarks.push({
170
+ x: c * (cellSize + gap),
171
+ label: months[month] ?? DEFAULT_MONTHS[month] ?? ''
172
+ });
173
+ lastMonth = month;
174
+ }
175
+ }
176
+ return {
177
+ columns,
178
+ monthMarks
179
+ };
180
+ }, [data, endDate, numDays, weekStartsOn, sortedLevels, scale, empty, cellSize, gap, months]);
181
+ if (!grid) {
182
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
183
+ style: style,
184
+ testID: testID
185
+ });
186
+ }
187
+ const {
188
+ columns,
189
+ monthMarks
190
+ } = grid;
191
+ const hasWeekdayCol = Array.isArray(weekdayLabels);
192
+ const weekdayColWidth = hasWeekdayCol ? WEEKDAY_COL_WIDTH : 0;
193
+ const monthRowMarginLeft = hasWeekdayCol ? weekdayColWidth + gap : 0;
194
+ const cellRadius = Math.max(2, Math.round(cellSize * 0.25));
195
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
196
+ style: style,
197
+ testID: testID,
198
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
199
+ style: [styles.monthRow, {
200
+ marginLeft: monthRowMarginLeft
201
+ }],
202
+ children: monthMarks.map((mark, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
203
+ numberOfLines: 1,
204
+ style: [styles.label, {
205
+ left: mark.x,
206
+ color: colors.textTertiary
207
+ }],
208
+ children: mark.label
209
+ }, `${mark.label}-${i}`))
210
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
211
+ style: styles.body,
212
+ children: [hasWeekdayCol && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
213
+ style: {
214
+ width: weekdayColWidth,
215
+ marginRight: gap
216
+ },
217
+ children: Array.from({
218
+ length: 7
219
+ }, (_, r) => {
220
+ const dow = (weekStartsOn + r) % 7;
221
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
222
+ style: {
223
+ height: cellSize,
224
+ marginBottom: r < 6 ? gap : 0,
225
+ justifyContent: 'center'
226
+ },
227
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
228
+ numberOfLines: 1,
229
+ style: [styles.weekdayLabel, {
230
+ color: colors.textTertiary
231
+ }],
232
+ children: weekdayLabels[dow] ?? ''
233
+ })
234
+ }, r);
235
+ })
236
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
237
+ style: styles.grid,
238
+ children: columns.map((column, c) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
239
+ style: {
240
+ marginRight: c < columns.length - 1 ? gap : 0
241
+ },
242
+ children: column.map((cell, r) => {
243
+ const cellStyle = {
244
+ width: cellSize,
245
+ height: cellSize,
246
+ borderRadius: cellRadius,
247
+ marginBottom: r < 6 ? gap : 0
248
+ };
249
+ if (!cell) {
250
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
251
+ style: cellStyle
252
+ }, r);
253
+ }
254
+ if (onPressDay) {
255
+ const day = {
256
+ date: cell.key,
257
+ count: cell.count
258
+ };
259
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
260
+ onPress: () => onPressDay(day),
261
+ accessibilityRole: "button",
262
+ accessibilityLabel: `${cell.key}: ${cell.count}`,
263
+ style: [cellStyle, styles.cell, {
264
+ backgroundColor: cell.color
265
+ }]
266
+ }, r);
267
+ }
268
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
269
+ style: [cellStyle, styles.cell, {
270
+ backgroundColor: cell.color
271
+ }]
272
+ }, r);
273
+ })
274
+ }, c))
275
+ })]
276
+ })]
277
+ });
278
+ };
279
+ const styles = _reactNative.StyleSheet.create({
280
+ monthRow: {
281
+ height: MONTH_ROW_HEIGHT,
282
+ position: 'relative'
283
+ },
284
+ label: {
285
+ position: 'absolute',
286
+ top: 0,
287
+ fontSize: LABEL_FONT_SIZE
288
+ },
289
+ body: {
290
+ flexDirection: 'row'
291
+ },
292
+ grid: {
293
+ flexDirection: 'row'
294
+ },
295
+ cell: {
296
+ borderCurve: 'continuous'
297
+ },
298
+ weekdayLabel: {
299
+ fontSize: LABEL_FONT_SIZE
300
+ }
301
+ });
302
+ const ActivityHeatmap = exports.ActivityHeatmap = /*#__PURE__*/(0, _react.memo)(ActivityHeatmapComponent);
303
+ ActivityHeatmap.displayName = 'ActivityHeatmap';
304
+ //# sourceMappingURL=ActivityHeatmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_index","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DAY_MS","DEFAULT_NUM_DAYS","DEFAULT_LEVELS","DEFAULT_MONTHS","DEFAULT_ALPHAS","LABEL_FONT_SIZE","MONTH_ROW_HEIGHT","WEEKDAY_COL_WIDTH","DATE_KEY_RE","parseDateKey","key","match","exec","year","Number","month","day","ts","Date","UTC","isNaN","parsed","parse","formatUtcKey","d","getUTCFullYear","String","getUTCMonth","padStart","getUTCDate","levelForCount","count","levels","level","threshold","parseRgb","color","trimmed","trim","startsWith","hex","slice","length","split","map","c","join","parseInt","g","b","some","v","undefined","parts","filter","Boolean","withAlpha","alpha","rgb","ActivityHeatmapComponent","data","numDays","endDate","colorScale","emptyColor","cellSize","gap","weekStartsOn","monthLabels","weekdayLabels","onPressDay","style","testID","colors","useTheme","empty","backgroundSecondary","scale","useMemo","primary","sortedLevels","sort","a","months","grid","countByKey","Map","latest","entry","date","providedEnd","endTs","days","Math","max","floor","rawStart","back","getUTCDay","gridStart","columnCount","ceil","maxColor","columns","column","push","min","monthMarks","lastMonth","firstTs","x","label","jsx","View","hasWeekdayCol","Array","isArray","weekdayColWidth","monthRowMarginLeft","cellRadius","round","jsxs","children","styles","monthRow","marginLeft","mark","Text","numberOfLines","left","textTertiary","body","width","marginRight","from","_","dow","height","marginBottom","justifyContent","weekdayLabel","cell","cellStyle","borderRadius","Pressable","onPress","accessibilityRole","accessibilityLabel","backgroundColor","StyleSheet","create","position","top","fontSize","flexDirection","borderCurve","ActivityHeatmap","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["activity-heatmap/ActivityHeatmap.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.bucketByDay = bucketByDay;
7
+ const DATE_KEY_RE = /^(\d{4})-(\d{2})-(\d{2})/;
8
+
9
+ /**
10
+ * Normalize a date input to a `YYYY-MM-DD` key in UTC, or `null` if it can't be
11
+ * parsed. Strings already prefixed with an ISO date are sliced directly (no
12
+ * timezone shift); everything else is parsed and formatted in UTC.
13
+ */
14
+ function toDateKey(value) {
15
+ if (value instanceof Date) {
16
+ const ts = value.getTime();
17
+ if (Number.isNaN(ts)) return null;
18
+ return formatUtcKey(ts);
19
+ }
20
+ if (DATE_KEY_RE.test(value)) return value.slice(0, 10);
21
+ const parsed = Date.parse(value);
22
+ if (Number.isNaN(parsed)) return null;
23
+ return formatUtcKey(parsed);
24
+ }
25
+ function formatUtcKey(ts) {
26
+ const d = new Date(ts);
27
+ const year = d.getUTCFullYear();
28
+ const month = String(d.getUTCMonth() + 1).padStart(2, '0');
29
+ const day = String(d.getUTCDate()).padStart(2, '0');
30
+ return `${year}-${month}-${day}`;
31
+ }
32
+
33
+ /**
34
+ * Group arbitrary items by their `YYYY-MM-DD` day and count how many fall on
35
+ * each day. Returns entries sorted ascending by date — ready to hand to
36
+ * {@link ActivityHeatmap}'s `data` prop. Items whose date can't be parsed are
37
+ * skipped.
38
+ */
39
+ function bucketByDay(items, getDate) {
40
+ const counts = new Map();
41
+ for (const item of items) {
42
+ const key = toDateKey(getDate(item));
43
+ if (key === null) continue;
44
+ counts.set(key, (counts.get(key) ?? 0) + 1);
45
+ }
46
+ return [...counts.entries()].map(([date, count]) => ({
47
+ date,
48
+ count
49
+ })).sort((a, b) => a.date < b.date ? -1 : a.date > b.date ? 1 : 0);
50
+ }
51
+ //# sourceMappingURL=bucketByDay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DATE_KEY_RE","toDateKey","value","Date","ts","getTime","Number","isNaN","formatUtcKey","test","slice","parsed","parse","d","year","getUTCFullYear","month","String","getUTCMonth","padStart","day","getUTCDate","bucketByDay","items","getDate","counts","Map","item","key","set","get","entries","map","date","count","sort","a","b"],"sourceRoot":"../../../src","sources":["activity-heatmap/bucketByDay.ts"],"mappings":";;;;;;AAEA,MAAMA,WAAW,GAAG,0BAA0B;;AAE9C;AACA;AACA;AACA;AACA;AACA,SAASC,SAASA,CAACC,KAAoB,EAAiB;EACtD,IAAIA,KAAK,YAAYC,IAAI,EAAE;IACzB,MAAMC,EAAE,GAAGF,KAAK,CAACG,OAAO,CAAC,CAAC;IAC1B,IAAIC,MAAM,CAACC,KAAK,CAACH,EAAE,CAAC,EAAE,OAAO,IAAI;IACjC,OAAOI,YAAY,CAACJ,EAAE,CAAC;EACzB;EACA,IAAIJ,WAAW,CAACS,IAAI,CAACP,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACQ,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EACtD,MAAMC,MAAM,GAAGR,IAAI,CAACS,KAAK,CAACV,KAAK,CAAC;EAChC,IAAII,MAAM,CAACC,KAAK,CAACI,MAAM,CAAC,EAAE,OAAO,IAAI;EACrC,OAAOH,YAAY,CAACG,MAAM,CAAC;AAC7B;AAEA,SAASH,YAAYA,CAACJ,EAAU,EAAU;EACxC,MAAMS,CAAC,GAAG,IAAIV,IAAI,CAACC,EAAE,CAAC;EACtB,MAAMU,IAAI,GAAGD,CAAC,CAACE,cAAc,CAAC,CAAC;EAC/B,MAAMC,KAAK,GAAGC,MAAM,CAACJ,CAAC,CAACK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC1D,MAAMC,GAAG,GAAGH,MAAM,CAACJ,CAAC,CAACQ,UAAU,CAAC,CAAC,CAAC,CAACF,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EACnD,OAAO,GAAGL,IAAI,IAAIE,KAAK,IAAII,GAAG,EAAE;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,WAAWA,CACzBC,KAAU,EACVC,OAAmC,EACb;EACtB,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAAiB,CAAC;EACxC,KAAK,MAAMC,IAAI,IAAIJ,KAAK,EAAE;IACxB,MAAMK,GAAG,GAAG3B,SAAS,CAACuB,OAAO,CAACG,IAAI,CAAC,CAAC;IACpC,IAAIC,GAAG,KAAK,IAAI,EAAE;IAClBH,MAAM,CAACI,GAAG,CAACD,GAAG,EAAE,CAACH,MAAM,CAACK,GAAG,CAACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7C;EACA,OAAO,CAAC,GAAGH,MAAM,CAACM,OAAO,CAAC,CAAC,CAAC,CACzBC,GAAG,CAAC,CAAC,CAACC,IAAI,EAAEC,KAAK,CAAC,MAAM;IAAED,IAAI;IAAEC;EAAM,CAAC,CAAC,CAAC,CACzCC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAACH,IAAI,GAAGI,CAAC,CAACJ,IAAI,GAAG,CAAC,CAAC,GAAGG,CAAC,CAACH,IAAI,GAAGI,CAAC,CAACJ,IAAI,GAAG,CAAC,GAAG,CAAE,CAAC;AACrE","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ActivityHeatmap", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ActivityHeatmap.ActivityHeatmap;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "bucketByDay", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _bucketByDay.bucketByDay;
16
+ }
17
+ });
18
+ var _ActivityHeatmap = require("./ActivityHeatmap.js");
19
+ var _bucketByDay = require("./bucketByDay.js");
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ActivityHeatmap","require","_bucketByDay"],"sourceRoot":"../../../src","sources":["activity-heatmap/index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA","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":["activity-heatmap/types.ts"],"mappings":"","ignoreList":[]}
@@ -28,11 +28,13 @@ function getItemKey(item, index) {
28
28
 
29
29
  const AvatarGroupBaseComponent = ({
30
30
  items,
31
+ layout = 'stack',
31
32
  size = 32,
32
33
  variant = 'thumb',
33
34
  max = 5,
34
35
  total,
35
36
  overlap,
37
+ spacing,
36
38
  ringColor,
37
39
  onPressItem,
38
40
  style,
@@ -40,6 +42,7 @@ const AvatarGroupBaseComponent = ({
40
42
  hoverHandlers
41
43
  }) => {
42
44
  const theme = (0, _useTheme.useTheme)();
45
+ const isRow = layout === 'row';
43
46
 
44
47
  // The ring is the thin separator drawn between overlapping avatars. It
45
48
  // defaults to the page background so avatars read as cleanly punched out of
@@ -51,15 +54,28 @@ const AvatarGroupBaseComponent = ({
51
54
  // 1px border on each side, so the negative margin absorbs both borders to
52
55
  // keep the visual overlap equal to `effectiveOverlap`.
53
56
  const negativeMargin = -(effectiveOverlap + RING_WIDTH * 2);
57
+ // Row layout: a positive gap between adjacent avatars (no overlap, no ring).
58
+ const rowGap = spacing ?? Math.round(size * DEFAULT_OVERLAP_RATIO);
59
+ // Horizontal offset applied to every avatar after the first.
60
+ const itemMargin = isRow ? rowGap : negativeMargin;
54
61
  const shown = (0, _react.useMemo)(() => items.slice(0, Math.max(0, max)), [items, max]);
55
62
  const realTotal = total ?? items.length;
56
63
  const overflow = Math.max(0, realTotal - shown.length);
57
64
 
58
- // Each cell is a circular, clipped container with a 1px ring border. The inner
59
- // Avatar is inset by the border on both sides so the image fills the circle
60
- // exactly inside the ring.
61
- const innerSize = size - RING_WIDTH * 2;
65
+ // Stack: each cell is a circular, clipped container with a 1px ring border,
66
+ // and the inner Avatar is inset by the border on both sides. Row: no ring, so
67
+ // the Avatar fills the full cell.
68
+ const innerSize = isRow ? size : size - RING_WIDTH * 2;
62
69
  const cellStyle = (0, _react.useMemo)(() => {
70
+ if (isRow) {
71
+ return {
72
+ width: size,
73
+ height: size,
74
+ borderRadius: size / 2,
75
+ alignItems: 'center',
76
+ justifyContent: 'center'
77
+ };
78
+ }
63
79
  return {
64
80
  width: size,
65
81
  height: size,
@@ -70,7 +86,7 @@ const AvatarGroupBaseComponent = ({
70
86
  alignItems: 'center',
71
87
  justifyContent: 'center'
72
88
  };
73
- }, [size, ring]);
89
+ }, [isRow, size, ring]);
74
90
  const overflowTextStyle = (0, _react.useMemo)(() => ({
75
91
  color: '#FFFFFF',
76
92
  fontSize: Math.max(_tokens.fontSize._2xs, Math.round(size * 0.36)),
@@ -90,14 +106,18 @@ const AvatarGroupBaseComponent = ({
90
106
  const name = getItemName(item);
91
107
  const accessibilityLabel = item.username ? `${name ?? item.username} (@${item.username})` : name;
92
108
 
93
- // The negative margin and stacking order live on the outermost
94
- // row element so layout and hit-testing stay aligned with the visual
95
- // overlap. Earlier siblings render on top of later ones.
109
+ // The horizontal margin and stacking order live on the outermost row
110
+ // element so layout and hit-testing stay aligned with the visual
111
+ // overlap. In stack mode earlier siblings render on top of later ones
112
+ // (descending zIndex); in row mode there is no overlap so stacking
113
+ // order is irrelevant.
96
114
  const wrapperStyle = {
97
115
  ...(index > 0 && {
98
- marginLeft: negativeMargin
116
+ marginLeft: itemMargin
99
117
  }),
100
- zIndex: shown.length - index
118
+ ...(isRow ? {} : {
119
+ zIndex: shown.length - index
120
+ })
101
121
  };
102
122
  const cell = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
103
123
  ref: hoverHandlers?.registerCellRef ? node => hoverHandlers.registerCellRef?.(index, node) : undefined,
@@ -127,7 +147,8 @@ const AvatarGroupBaseComponent = ({
127
147
  }), overflow > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(OverflowCircle, {
128
148
  count: overflow,
129
149
  cellStyle: cellStyle,
130
- negativeMargin: shown.length > 0 ? negativeMargin : 0,
150
+ marginLeft: shown.length > 0 ? itemMargin : 0,
151
+ isRow: isRow,
131
152
  textStyle: overflowTextStyle,
132
153
  onPress: overflowOnPress
133
154
  })]
@@ -136,19 +157,22 @@ const AvatarGroupBaseComponent = ({
136
157
  function OverflowCircle({
137
158
  count,
138
159
  cellStyle,
139
- negativeMargin,
160
+ marginLeft,
161
+ isRow,
140
162
  textStyle,
141
163
  onPress
142
164
  }) {
143
165
  const theme = (0, _useTheme.useTheme)();
144
- // The count circle is anchored at the lowest stacking order so it tucks behind
145
- // the last avatar's ring. The margin lives on the outer element to keep layout
146
- // aligned with the overlap.
166
+ // In stack mode the count circle is anchored at the lowest stacking order so
167
+ // it tucks behind the last avatar's ring; row mode has no overlap. The margin
168
+ // lives on the outer element to keep layout aligned with the spacing.
147
169
  const wrapperStyle = {
148
- ...(negativeMargin !== 0 && {
149
- marginLeft: negativeMargin
170
+ ...(marginLeft !== 0 && {
171
+ marginLeft
150
172
  }),
151
- zIndex: 0
173
+ ...(isRow ? {} : {
174
+ zIndex: 0
175
+ })
152
176
  };
153
177
 
154
178
  // A solid "+N" count circle: secondary-text-colored fill with white text,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_index","_useTheme","_tokens","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RING_WIDTH","DEFAULT_OVERLAP_RATIO","getItemName","item","displayName","name","username","getItemKey","index","id","uri","AvatarGroupBaseComponent","items","size","variant","max","total","overlap","ringColor","onPressItem","style","testID","hoverHandlers","theme","useTheme","ring","colors","background","effectiveOverlap","Math","round","negativeMargin","shown","useMemo","slice","realTotal","length","overflow","innerSize","cellStyle","width","height","borderRadius","borderWidth","borderColor","alignItems","justifyContent","overflowTextStyle","color","fontSize","_2xs","fontWeight","interactive","hoverable","onHoverIn","onHoverOut","firstHidden","overflowOnPress","undefined","jsxs","View","styles","row","children","map","accessibilityLabel","wrapperStyle","marginLeft","zIndex","cell","jsx","ref","registerCellRef","node","collapsable","Avatar","source","Pressable","onPress","accessibilityRole","OverflowCircle","count","textStyle","circle","backgroundColor","textSecondary","Text","allowFontScaling","StyleSheet","create","flexDirection","AvatarGroupBase","exports","memo"],"sourceRoot":"../../../src","sources":["avatar-group/AvatarGroupBase.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAQA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAA4C,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,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;AAG5C;AACA;AACA,MAAMkB,UAAU,GAAG,CAAC;AACpB;AACA;AACA,MAAMC,qBAAqB,GAAG,CAAC,GAAG,CAAC;AAEnC,SAASC,WAAWA,CAACC,IAAqB,EAAsB;EAC9D,OAAOA,IAAI,CAACC,WAAW,IAAID,IAAI,CAACE,IAAI,IAAIF,IAAI,CAACG,QAAQ;AACvD;AAEA,SAASC,UAAUA,CAACJ,IAAqB,EAAEK,KAAa,EAAU;EAChE,OAAOL,IAAI,CAACM,EAAE,IAAIN,IAAI,CAACG,QAAQ,IAAIH,IAAI,CAACO,GAAG,IAAI,UAAUF,KAAK,EAAE;AAClE;;AAEA;;AAYA,MAAMG,wBAAwD,GAAGA,CAAC;EAChEC,KAAK;EACLC,IAAI,GAAG,EAAE;EACTC,OAAO,GAAG,OAAO;EACjBC,GAAG,GAAG,CAAC;EACPC,KAAK;EACLC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,KAAK;EACLC,MAAM;EACNC;AACF,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;;EAExB;EACA;EACA;EACA;EACA,MAAMC,IAAI,GAAGP,SAAS,IAAIK,KAAK,CAACG,MAAM,CAACC,UAAU;EACjD,MAAMC,gBAAgB,GACpBX,OAAO,IAAIY,IAAI,CAACC,KAAK,CAACjB,IAAI,GAAGZ,qBAAqB,CAAC;EACrD;EACA;EACA;EACA,MAAM8B,cAAc,GAAG,EAAEH,gBAAgB,GAAG5B,UAAU,GAAG,CAAC,CAAC;EAE3D,MAAMgC,KAAK,GAAG,IAAAC,cAAO,EACnB,MAAMrB,KAAK,CAACsB,KAAK,CAAC,CAAC,EAAEL,IAAI,CAACd,GAAG,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,EACtC,CAACH,KAAK,EAAEG,GAAG,CACb,CAAC;EAED,MAAMoB,SAAS,GAAGnB,KAAK,IAAIJ,KAAK,CAACwB,MAAM;EACvC,MAAMC,QAAQ,GAAGR,IAAI,CAACd,GAAG,CAAC,CAAC,EAAEoB,SAAS,GAAGH,KAAK,CAACI,MAAM,CAAC;;EAEtD;EACA;EACA;EACA,MAAME,SAAS,GAAGzB,IAAI,GAAGb,UAAU,GAAG,CAAC;EACvC,MAAMuC,SAAS,GAAG,IAAAN,cAAO,EAAC,MAAiB;IACzC,OAAO;MACLO,KAAK,EAAE3B,IAAI;MACX4B,MAAM,EAAE5B,IAAI;MACZ6B,YAAY,EAAE7B,IAAI,GAAG,CAAC;MACtB8B,WAAW,EAAE3C,UAAU;MACvB4C,WAAW,EAAEnB,IAAI;MACjBY,QAAQ,EAAE,QAAQ;MAClBQ,UAAU,EAAE,QAAQ;MACpBC,cAAc,EAAE;IAClB,CAAC;EACH,CAAC,EAAE,CAACjC,IAAI,EAAEY,IAAI,CAAC,CAAC;EAEhB,MAAMsB,iBAAiB,GAAG,IAAAd,cAAO,EAC/B,OAAO;IACLe,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAEpB,IAAI,CAACd,GAAG,CAACkC,gBAAQ,CAACC,IAAI,EAAErB,IAAI,CAACC,KAAK,CAACjB,IAAI,GAAG,IAAI,CAAC,CAAC;IAC1DsC,UAAU,EAAE;EACd,CAAC,CAAC,EACF,CAACtC,IAAI,CACP,CAAC;EAED,MAAMuC,WAAW,GAAG,OAAOjC,WAAW,KAAK,UAAU;EACrD,MAAMkC,SAAS,GACb,OAAO/B,aAAa,EAAEgC,SAAS,KAAK,UAAU,IAC9C,OAAOhC,aAAa,EAAEiC,UAAU,KAAK,UAAU;;EAEjD;EACA;EACA,MAAMC,WAAW,GAAG5C,KAAK,CAACoB,KAAK,CAACI,MAAM,CAAC;EACvC,MAAMqB,eAAe,GACnBL,WAAW,IAAII,WAAW,GACtB,MAAMrC,WAAW,GAAGqC,WAAW,EAAExB,KAAK,CAACI,MAAM,CAAC,GAC9CsB,SAAS;EAEf,oBACE,IAAA9E,WAAA,CAAA+E,IAAA,EAACnF,YAAA,CAAAoF,IAAI;IAACxC,KAAK,EAAE,CAACyC,MAAM,CAACC,GAAG,EAAE1C,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAA0C,QAAA,GAC9C/B,KAAK,CAACgC,GAAG,CAAC,CAAC7D,IAAI,EAAEK,KAAK,KAAK;MAC1B,MAAMH,IAAI,GAAGH,WAAW,CAACC,IAAI,CAAC;MAC9B,MAAM8D,kBAAkB,GAAG9D,IAAI,CAACG,QAAQ,GACpC,GAAGD,IAAI,IAAIF,IAAI,CAACG,QAAQ,MAAMH,IAAI,CAACG,QAAQ,GAAG,GAC9CD,IAAI;;MAER;MACA;MACA;MACA,MAAM6D,YAAuB,GAAG;QAC9B,IAAI1D,KAAK,GAAG,CAAC,IAAI;UAAE2D,UAAU,EAAEpC;QAAe,CAAC,CAAC;QAChDqC,MAAM,EAAEpC,KAAK,CAACI,MAAM,GAAG5B;MACzB,CAAC;MAED,MAAM6D,IAAI,gBACR,IAAAzF,WAAA,CAAA0F,GAAA,EAAC9F,YAAA,CAAAoF,IAAI;QACHW,GAAG,EACDjD,aAAa,EAAEkD,eAAe,GACzBC,IAAI,IAAKnD,aAAa,CAACkD,eAAe,GAAGhE,KAAK,EAAEiE,IAAI,CAAC,GACtDf,SACL;QACDgB,WAAW,EAAE,KAAM;QACnBtD,KAAK,EAAEmB,SAAU;QAAAwB,QAAA,eAYjB,IAAAnF,WAAA,CAAA0F,GAAA,EAAC7F,MAAA,CAAAkG,MAAM;UAACC,MAAM,EAAEzE,IAAI,CAACO,GAAG,IAAIgD,SAAU;UAAC5C,OAAO,EAAEA,OAAQ;UAACD,IAAI,EAAEyB;QAAU,CAAE;MAAC,CACxE,CACP;MAED,IAAIc,WAAW,IAAIC,SAAS,EAAE;QAC5B,oBACE,IAAAzE,WAAA,CAAA0F,GAAA,EAAC9F,YAAA,CAAAqG,SAAS;UAERC,OAAO,EACL1B,WAAW,GAAG,MAAMjC,WAAW,GAAGhB,IAAI,EAAEK,KAAK,CAAC,GAAGkD,SAClD;UACDJ,SAAS,EACPhC,aAAa,EAAEgC,SAAS,GACpB,MAAMhC,aAAa,CAACgC,SAAS,GAAGnD,IAAI,EAAEK,KAAK,CAAC,GAC5CkD,SACL;UACDH,UAAU,EACRjC,aAAa,EAAEiC,UAAU,GACrB,MAAMjC,aAAa,CAACiC,UAAU,GAAGpD,IAAI,EAAEK,KAAK,CAAC,GAC7CkD,SACL;UACDqB,iBAAiB,EAAE3B,WAAW,GAAG,QAAQ,GAAGM,SAAU;UACtDO,kBAAkB,EAAEA,kBAAmB;UACvC7C,KAAK,EAAE8C,YAAa;UAAAH,QAAA,EAEnBM;QAAI,GAlBA9D,UAAU,CAACJ,IAAI,EAAEK,KAAK,CAmBlB,CAAC;MAEhB;MAEA,oBACE,IAAA5B,WAAA,CAAA0F,GAAA,EAAC9F,YAAA,CAAAoF,IAAI;QAA+BxC,KAAK,EAAE8C,YAAa;QAAAH,QAAA,EACrDM;MAAI,GADI9D,UAAU,CAACJ,IAAI,EAAEK,KAAK,CAE3B,CAAC;IAEX,CAAC,CAAC,EAED6B,QAAQ,GAAG,CAAC,iBACX,IAAAzD,WAAA,CAAA0F,GAAA,EAACU,cAAc;MACbC,KAAK,EAAE5C,QAAS;MAChBE,SAAS,EAAEA,SAAU;MACrBR,cAAc,EAAEC,KAAK,CAACI,MAAM,GAAG,CAAC,GAAGL,cAAc,GAAG,CAAE;MACtDmD,SAAS,EAAEnC,iBAAkB;MAC7B+B,OAAO,EAAErB;IAAgB,CAC1B,CACF;EAAA,CACG,CAAC;AAEX,CAAC;AAED,SAASuB,cAAcA,CAAC;EACtBC,KAAK;EACL1C,SAAS;EACTR,cAAc;EACdmD,SAAS;EACTJ;AAOF,CAAC,EAAE;EACD,MAAMvD,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB;EACA;EACA;EACA,MAAM0C,YAAuB,GAAG;IAC9B,IAAInC,cAAc,KAAK,CAAC,IAAI;MAAEoC,UAAU,EAAEpC;IAAe,CAAC,CAAC;IAC3DqC,MAAM,EAAE;EACV,CAAC;;EAED;EACA;EACA,MAAMe,MAAM,gBACV,IAAAvG,WAAA,CAAA0F,GAAA,EAAC9F,YAAA,CAAAoF,IAAI;IACHxC,KAAK,EAAE,CAACmB,SAAS,EAAE;MAAE6C,eAAe,EAAE7D,KAAK,CAACG,MAAM,CAAC2D;IAAc,CAAC,CAAE;IAAAtB,QAAA,eAEpE,IAAAnF,WAAA,CAAA+E,IAAA,EAACnF,YAAA,CAAA8G,IAAI;MAACC,gBAAgB,EAAE,KAAM;MAACnE,KAAK,EAAE8D,SAAU;MAAAnB,QAAA,GAAC,GAC9C,EAACkB,KAAK;IAAA,CACH;EAAC,CACH,CACP;EAED,IAAIH,OAAO,EAAE;IACX,oBACE,IAAAlG,WAAA,CAAA0F,GAAA,EAAC9F,YAAA,CAAAqG,SAAS;MACRC,OAAO,EAAEA,OAAQ;MACjBC,iBAAiB,EAAC,QAAQ;MAC1Bd,kBAAkB,EAAE,GAAGgB,KAAK,OAAQ;MACpC7D,KAAK,EAAE8C,YAAa;MAAAH,QAAA,EAEnBoB;IAAM,CACE,CAAC;EAEhB;EAEA,oBAAO,IAAAvG,WAAA,CAAA0F,GAAA,EAAC9F,YAAA,CAAAoF,IAAI;IAACxC,KAAK,EAAE8C,YAAa;IAAAH,QAAA,EAAEoB;EAAM,CAAO,CAAC;AACnD;AAEA,MAAMtB,MAAM,GAAG2B,uBAAU,CAACC,MAAM,CAAC;EAC/B3B,GAAG,EAAE;IACH4B,aAAa,EAAE,KAAK;IACpB7C,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAEK,MAAM8C,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAG,IAAAE,WAAI,EAAClF,wBAAwB,CAAC;AAC7DgF,eAAe,CAACvF,WAAW,GAAG,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_index","_useTheme","_tokens","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RING_WIDTH","DEFAULT_OVERLAP_RATIO","getItemName","item","displayName","name","username","getItemKey","index","id","uri","AvatarGroupBaseComponent","items","layout","size","variant","max","total","overlap","spacing","ringColor","onPressItem","style","testID","hoverHandlers","theme","useTheme","isRow","ring","colors","background","effectiveOverlap","Math","round","negativeMargin","rowGap","itemMargin","shown","useMemo","slice","realTotal","length","overflow","innerSize","cellStyle","width","height","borderRadius","alignItems","justifyContent","borderWidth","borderColor","overflowTextStyle","color","fontSize","_2xs","fontWeight","interactive","hoverable","onHoverIn","onHoverOut","firstHidden","overflowOnPress","undefined","jsxs","View","styles","row","children","map","accessibilityLabel","wrapperStyle","marginLeft","zIndex","cell","jsx","ref","registerCellRef","node","collapsable","Avatar","source","Pressable","onPress","accessibilityRole","OverflowCircle","count","textStyle","circle","backgroundColor","textSecondary","Text","allowFontScaling","StyleSheet","create","flexDirection","AvatarGroupBase","exports","memo"],"sourceRoot":"../../../src","sources":["avatar-group/AvatarGroupBase.tsx"],"mappings":"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","ignoreList":[]}