@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,296 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { Card } from "../card/index.js";
6
+ import { Avatar } from "../avatar/index.js";
7
+ import { AvatarGroup } from "../avatar-group/index.js";
8
+ import { DotGridMeter } from "../dot-grid-meter/index.js";
9
+ import { StatBar } from "../stat-bar/index.js";
10
+ import { Text } from "../typography/index.js";
11
+ import { useTheme } from "../theme/use-theme.js";
12
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
+ const WIDGET_WIDTH = 240;
14
+ const CARD_PADDING = 16;
15
+ const CARD_RADIUS = 24;
16
+ const AVATAR_SIZE = 52;
17
+ const FOOTER_AVATAR_SIZE = 28;
18
+ function variantAccents(variant, colors) {
19
+ switch (variant) {
20
+ case 'wallet':
21
+ return {
22
+ ring: colors.success,
23
+ fill: colors.primary,
24
+ dots: colors.success
25
+ };
26
+ case 'shopping':
27
+ return {
28
+ ring: colors.info,
29
+ fill: colors.info,
30
+ dots: colors.info
31
+ };
32
+ case 'social':
33
+ return {
34
+ ring: colors.primary,
35
+ fill: colors.primary,
36
+ dots: colors.primary
37
+ };
38
+ case 'stat':
39
+ default:
40
+ return {
41
+ ring: colors.primary,
42
+ fill: colors.primary,
43
+ dots: colors.primary
44
+ };
45
+ }
46
+ }
47
+ function AvatarWithBadge({
48
+ source,
49
+ name,
50
+ ring,
51
+ badge
52
+ }) {
53
+ return /*#__PURE__*/_jsxs(View, {
54
+ style: styles.avatarWrap,
55
+ children: [/*#__PURE__*/_jsx(Avatar, {
56
+ source: source ?? undefined,
57
+ name: name,
58
+ size: AVATAR_SIZE,
59
+ ring: ring
60
+ }), badge != null && /*#__PURE__*/_jsx(View, {
61
+ style: [styles.badge, {
62
+ width: Math.round(AVATAR_SIZE * 0.34),
63
+ height: Math.round(AVATAR_SIZE * 0.34)
64
+ }],
65
+ children: badge
66
+ })]
67
+ });
68
+ }
69
+ function MetricSection({
70
+ metric,
71
+ accents,
72
+ labelColor
73
+ }) {
74
+ switch (metric.kind) {
75
+ case 'dots':
76
+ return /*#__PURE__*/_jsxs(View, {
77
+ style: styles.section,
78
+ children: [metric.label != null && /*#__PURE__*/_jsx(Text, {
79
+ style: [styles.sectionLabel, {
80
+ color: labelColor
81
+ }],
82
+ numberOfLines: 1,
83
+ children: metric.label
84
+ }), /*#__PURE__*/_jsx(DotGridMeter, {
85
+ filled: metric.filled,
86
+ total: metric.total,
87
+ filledColor: metric.filledColor ?? accents.dots
88
+ })]
89
+ });
90
+ case 'progress':
91
+ return /*#__PURE__*/_jsx(StatBar, {
92
+ variant: "progress",
93
+ label: metric.label,
94
+ value: metric.value,
95
+ max: metric.max,
96
+ minLabel: metric.minLabel,
97
+ maxLabel: metric.maxLabel,
98
+ icon: metric.icon,
99
+ fillColor: metric.fillColor ?? accents.fill
100
+ });
101
+ case 'split':
102
+ return /*#__PURE__*/_jsx(StatBar, {
103
+ variant: "split",
104
+ label: metric.label,
105
+ percent: metric.percent,
106
+ leftValue: metric.leftValue,
107
+ rightValue: metric.rightValue,
108
+ fillColor: metric.fillColor ?? accents.fill
109
+ });
110
+ case 'custom':
111
+ default:
112
+ return /*#__PURE__*/_jsx(_Fragment, {
113
+ children: metric.node
114
+ });
115
+ }
116
+ }
117
+
118
+ /**
119
+ * A composed profile "widget" card — the Apple-Watch-style stat card. Fully
120
+ * app-agnostic: it takes pre-formatted strings, colors, and `ReactNode` icons
121
+ * (no domain/currency logic). Built on {@link Card}, {@link Avatar} (ring +
122
+ * badge), {@link DotGridMeter}/{@link StatBar}, and a {@link AvatarGroup} row.
123
+ *
124
+ * `variant` only picks sensible accent defaults (ring + metric fill); every
125
+ * accent stays overridable via the individual props.
126
+ */
127
+ const ProfileCardComponent = ({
128
+ layout = 'widget',
129
+ variant = 'stat',
130
+ avatar,
131
+ value,
132
+ subtitle,
133
+ headlineIcon,
134
+ metric,
135
+ footer,
136
+ onPress,
137
+ style,
138
+ testID
139
+ }) => {
140
+ const {
141
+ colors
142
+ } = useTheme();
143
+ const accents = variantAccents(variant, colors);
144
+ const isWide = layout === 'wide';
145
+ const ring = avatar.ring ?? {
146
+ colors: accents.ring,
147
+ width: 2,
148
+ gap: 2
149
+ };
150
+ const surfaceStyle = {
151
+ width: isWide ? '100%' : WIDGET_WIDTH,
152
+ padding: CARD_PADDING,
153
+ borderRadius: CARD_RADIUS,
154
+ borderCurve: 'continuous'
155
+ };
156
+ const headline = /*#__PURE__*/_jsxs(_Fragment, {
157
+ children: [/*#__PURE__*/_jsx(Text, {
158
+ style: [styles.value, {
159
+ color: colors.text
160
+ }],
161
+ numberOfLines: 1,
162
+ children: value
163
+ }), subtitle != null && /*#__PURE__*/_jsx(Text, {
164
+ style: [styles.subtitle, {
165
+ color: colors.textTertiary
166
+ }],
167
+ numberOfLines: 1,
168
+ children: subtitle
169
+ })]
170
+ });
171
+ const metricNode = metric != null ? /*#__PURE__*/_jsx(MetricSection, {
172
+ metric: metric,
173
+ accents: accents,
174
+ labelColor: colors.textTertiary
175
+ }) : null;
176
+ const footerNode = footer != null ? /*#__PURE__*/_jsxs(View, {
177
+ style: styles.section,
178
+ children: [footer.label != null && /*#__PURE__*/_jsx(Text, {
179
+ style: [styles.sectionLabel, {
180
+ color: colors.textTertiary
181
+ }],
182
+ numberOfLines: 1,
183
+ children: footer.label
184
+ }), /*#__PURE__*/_jsx(AvatarGroup, {
185
+ layout: "row",
186
+ items: footer.items,
187
+ size: FOOTER_AVATAR_SIZE,
188
+ max: footer.max ?? 4
189
+ })]
190
+ }) : null;
191
+ return /*#__PURE__*/_jsxs(Card, {
192
+ variant: "filled",
193
+ onPress: onPress,
194
+ style: [surfaceStyle, style],
195
+ testID: testID,
196
+ children: [/*#__PURE__*/_jsxs(View, {
197
+ style: styles.body,
198
+ children: [isWide ? /*#__PURE__*/_jsxs(View, {
199
+ style: styles.headerRowWide,
200
+ children: [/*#__PURE__*/_jsx(AvatarWithBadge, {
201
+ source: avatar.source,
202
+ name: avatar.name,
203
+ ring: ring,
204
+ badge: avatar.badge
205
+ }), /*#__PURE__*/_jsxs(View, {
206
+ style: styles.wideValueRow,
207
+ children: [/*#__PURE__*/_jsx(View, {
208
+ style: styles.headlineColumn,
209
+ children: headline
210
+ }), headlineIcon != null && /*#__PURE__*/_jsx(View, {
211
+ style: styles.wideIcon,
212
+ children: headlineIcon
213
+ })]
214
+ })]
215
+ }) : /*#__PURE__*/_jsxs(View, {
216
+ style: styles.headerRow,
217
+ children: [/*#__PURE__*/_jsx(AvatarWithBadge, {
218
+ source: avatar.source,
219
+ name: avatar.name,
220
+ ring: ring,
221
+ badge: avatar.badge
222
+ }), /*#__PURE__*/_jsx(View, {
223
+ style: styles.headlineColumn,
224
+ children: headline
225
+ })]
226
+ }), metricNode, footerNode]
227
+ }), !isWide && headlineIcon != null && /*#__PURE__*/_jsx(View, {
228
+ style: styles.floatingIcon,
229
+ children: headlineIcon
230
+ })]
231
+ });
232
+ };
233
+ const styles = StyleSheet.create({
234
+ body: {
235
+ gap: 16
236
+ },
237
+ headerRow: {
238
+ flexDirection: 'row',
239
+ alignItems: 'center',
240
+ gap: 12
241
+ },
242
+ headerRowWide: {
243
+ flexDirection: 'row',
244
+ alignItems: 'center',
245
+ gap: 16
246
+ },
247
+ headlineColumn: {
248
+ flex: 1,
249
+ minWidth: 0
250
+ },
251
+ wideValueRow: {
252
+ flex: 1,
253
+ flexDirection: 'row',
254
+ alignItems: 'center',
255
+ gap: 8
256
+ },
257
+ wideIcon: {
258
+ marginLeft: 8
259
+ },
260
+ value: {
261
+ fontSize: 26,
262
+ fontWeight: '800',
263
+ letterSpacing: -0.5,
264
+ fontVariant: ['tabular-nums']
265
+ },
266
+ subtitle: {
267
+ marginTop: 2,
268
+ fontSize: 13,
269
+ fontVariant: ['tabular-nums']
270
+ },
271
+ section: {
272
+ gap: 8
273
+ },
274
+ sectionLabel: {
275
+ fontSize: 12,
276
+ fontWeight: '500'
277
+ },
278
+ avatarWrap: {
279
+ position: 'relative'
280
+ },
281
+ badge: {
282
+ position: 'absolute',
283
+ right: -2,
284
+ bottom: -2,
285
+ alignItems: 'center',
286
+ justifyContent: 'center'
287
+ },
288
+ floatingIcon: {
289
+ position: 'absolute',
290
+ top: CARD_PADDING,
291
+ right: CARD_PADDING
292
+ }
293
+ });
294
+ export const ProfileCard = /*#__PURE__*/memo(ProfileCardComponent);
295
+ ProfileCard.displayName = 'ProfileCard';
296
+ //# sourceMappingURL=ProfileCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","View","StyleSheet","Card","Avatar","AvatarGroup","DotGridMeter","StatBar","Text","useTheme","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","WIDGET_WIDTH","CARD_PADDING","CARD_RADIUS","AVATAR_SIZE","FOOTER_AVATAR_SIZE","variantAccents","variant","colors","ring","success","fill","primary","dots","info","AvatarWithBadge","source","name","badge","style","styles","avatarWrap","children","undefined","size","width","Math","round","height","MetricSection","metric","accents","labelColor","kind","section","label","sectionLabel","color","numberOfLines","filled","total","filledColor","value","max","minLabel","maxLabel","icon","fillColor","percent","leftValue","rightValue","node","ProfileCardComponent","layout","avatar","subtitle","headlineIcon","footer","onPress","testID","isWide","gap","surfaceStyle","padding","borderRadius","borderCurve","headline","text","textTertiary","metricNode","footerNode","items","body","headerRowWide","wideValueRow","headlineColumn","wideIcon","headerRow","floatingIcon","create","flexDirection","alignItems","flex","minWidth","marginLeft","fontSize","fontWeight","letterSpacing","fontVariant","marginTop","position","right","bottom","justifyContent","top","ProfileCard","displayName"],"sourceRoot":"../../../src","sources":["profile-card/ProfileCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { ProfileCard } from "./ProfileCard.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ProfileCard"],"sourceRoot":"../../../src","sources":["profile-card/index.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,kBAAe","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["profile-card/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { useTheme } from "../theme/use-theme.js";
6
+ import { Text } from "../typography/index.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ function clampPercent(value) {
9
+ if (Number.isNaN(value)) return 0;
10
+ return Math.max(0, Math.min(100, value));
11
+ }
12
+
13
+ /**
14
+ * A horizontal labeled value bar with two variants:
15
+ *
16
+ * - `progress` — a rounded capsule track with a proportional `value / max`
17
+ * fill, an optional top-right `icon`, and an optional min/max footer row.
18
+ * - `split` — a capsule split at `percent` (left portion active, remainder the
19
+ * track color), a bold percentage right of the label, and a two-sided footer
20
+ * of opposing values (inflow/outflow style).
21
+ *
22
+ * Pure `<View>` composition, so it renders identically on web and native.
23
+ */
24
+ const StatBarComponent = props => {
25
+ const {
26
+ colors
27
+ } = useTheme();
28
+ const {
29
+ label,
30
+ fillColor,
31
+ trackColor,
32
+ height = 6,
33
+ icon,
34
+ style,
35
+ testID
36
+ } = props;
37
+ const fill = fillColor ?? colors.primary;
38
+ const track = trackColor ?? colors.backgroundSecondary;
39
+ const radius = height / 2;
40
+ if (props.variant === 'split') {
41
+ const {
42
+ percent,
43
+ leftValue,
44
+ rightValue,
45
+ leftColor,
46
+ rightColor
47
+ } = props;
48
+ const leftPercent = clampPercent(percent);
49
+ const activeLeft = leftColor ?? fill;
50
+ const remainder = rightColor ?? track;
51
+ return /*#__PURE__*/_jsxs(View, {
52
+ style: [styles.wrap, style],
53
+ testID: testID,
54
+ children: [/*#__PURE__*/_jsxs(View, {
55
+ style: styles.labelRow,
56
+ children: [/*#__PURE__*/_jsx(Text, {
57
+ style: [styles.label, {
58
+ color: colors.textSecondary
59
+ }],
60
+ numberOfLines: 1,
61
+ children: label
62
+ }), /*#__PURE__*/_jsxs(Text, {
63
+ style: [styles.percent, {
64
+ color: colors.text
65
+ }],
66
+ numberOfLines: 1,
67
+ children: [Math.round(leftPercent), "%"]
68
+ })]
69
+ }), /*#__PURE__*/_jsx(View, {
70
+ style: [styles.track, {
71
+ height,
72
+ borderRadius: radius,
73
+ backgroundColor: remainder
74
+ }],
75
+ children: /*#__PURE__*/_jsx(View, {
76
+ style: {
77
+ width: `${leftPercent}%`,
78
+ height,
79
+ borderRadius: radius,
80
+ backgroundColor: activeLeft
81
+ }
82
+ })
83
+ }), /*#__PURE__*/_jsxs(View, {
84
+ style: styles.footerRow,
85
+ children: [/*#__PURE__*/_jsx(Text, {
86
+ style: [styles.footerValue, {
87
+ color: colors.textTertiary
88
+ }],
89
+ numberOfLines: 1,
90
+ children: leftValue
91
+ }), /*#__PURE__*/_jsx(Text, {
92
+ style: [styles.footerValue, {
93
+ color: colors.textTertiary
94
+ }],
95
+ numberOfLines: 1,
96
+ children: rightValue
97
+ })]
98
+ })]
99
+ });
100
+ }
101
+ const {
102
+ value,
103
+ max,
104
+ minLabel,
105
+ maxLabel
106
+ } = props;
107
+ const ratio = max > 0 ? clampPercent(value / max * 100) : 0;
108
+ const hasFooter = minLabel != null || maxLabel != null;
109
+ return /*#__PURE__*/_jsxs(View, {
110
+ style: [styles.wrap, style],
111
+ testID: testID,
112
+ children: [/*#__PURE__*/_jsxs(View, {
113
+ style: styles.labelRow,
114
+ children: [/*#__PURE__*/_jsx(Text, {
115
+ style: [styles.label, {
116
+ color: colors.textSecondary
117
+ }],
118
+ numberOfLines: 1,
119
+ children: label
120
+ }), icon != null && /*#__PURE__*/_jsx(View, {
121
+ style: styles.icon,
122
+ children: icon
123
+ })]
124
+ }), /*#__PURE__*/_jsx(View, {
125
+ style: [styles.track, {
126
+ height,
127
+ borderRadius: radius,
128
+ backgroundColor: track
129
+ }],
130
+ accessibilityRole: "progressbar",
131
+ accessibilityValue: {
132
+ min: 0,
133
+ max,
134
+ now: value
135
+ },
136
+ children: /*#__PURE__*/_jsx(View, {
137
+ style: {
138
+ width: `${ratio}%`,
139
+ height,
140
+ borderRadius: radius,
141
+ backgroundColor: fill
142
+ }
143
+ })
144
+ }), hasFooter && /*#__PURE__*/_jsxs(View, {
145
+ style: styles.footerRow,
146
+ children: [/*#__PURE__*/_jsx(Text, {
147
+ style: [styles.footerValue, {
148
+ color: colors.textTertiary
149
+ }],
150
+ numberOfLines: 1,
151
+ children: minLabel ?? ''
152
+ }), /*#__PURE__*/_jsx(Text, {
153
+ style: [styles.footerValue, {
154
+ color: colors.textTertiary
155
+ }],
156
+ numberOfLines: 1,
157
+ children: maxLabel ?? ''
158
+ })]
159
+ })]
160
+ });
161
+ };
162
+ const styles = StyleSheet.create({
163
+ wrap: {
164
+ gap: 8
165
+ },
166
+ labelRow: {
167
+ flexDirection: 'row',
168
+ alignItems: 'center',
169
+ justifyContent: 'space-between',
170
+ gap: 8
171
+ },
172
+ label: {
173
+ flexShrink: 1,
174
+ fontSize: 13,
175
+ fontWeight: '500'
176
+ },
177
+ percent: {
178
+ fontSize: 14,
179
+ fontWeight: '700',
180
+ letterSpacing: -0.2,
181
+ fontVariant: ['tabular-nums']
182
+ },
183
+ icon: {
184
+ marginLeft: 8
185
+ },
186
+ track: {
187
+ width: '100%',
188
+ overflow: 'hidden',
189
+ flexDirection: 'row',
190
+ borderCurve: 'continuous'
191
+ },
192
+ footerRow: {
193
+ flexDirection: 'row',
194
+ alignItems: 'center',
195
+ justifyContent: 'space-between',
196
+ gap: 8
197
+ },
198
+ footerValue: {
199
+ fontSize: 12,
200
+ fontVariant: ['tabular-nums']
201
+ }
202
+ });
203
+ export const StatBar = /*#__PURE__*/memo(StatBarComponent);
204
+ StatBar.displayName = 'StatBar';
205
+ //# sourceMappingURL=StatBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","View","StyleSheet","useTheme","Text","jsx","_jsx","jsxs","_jsxs","clampPercent","value","Number","isNaN","Math","max","min","StatBarComponent","props","colors","label","fillColor","trackColor","height","icon","style","testID","fill","primary","track","backgroundSecondary","radius","variant","percent","leftValue","rightValue","leftColor","rightColor","leftPercent","activeLeft","remainder","styles","wrap","children","labelRow","color","textSecondary","numberOfLines","text","round","borderRadius","backgroundColor","width","footerRow","footerValue","textTertiary","minLabel","maxLabel","ratio","hasFooter","accessibilityRole","accessibilityValue","now","create","gap","flexDirection","alignItems","justifyContent","flexShrink","fontSize","fontWeight","letterSpacing","fontVariant","marginLeft","overflow","borderCurve","StatBar","displayName"],"sourceRoot":"../../../src","sources":["stat-bar/StatBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { StatBar } from "./StatBar.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StatBar"],"sourceRoot":"../../../src","sources":["stat-bar/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,cAAW","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["stat-bar/types.ts"],"mappings":"","ignoreList":[]}
@@ -5,7 +5,7 @@ import { Platform } from 'react-native';
5
5
  import { useTheme } from "../theme/use-theme.js";
6
6
  import { fontFamilies } from "../fonts/tokens.js";
7
7
  import { mergeTypographyStyle, typographyDefaultsWhenNoClassName } from "./defaults.js";
8
- import { getInteropText, hasTypographyClassNameInterop } from "./styled-text.js";
8
+ import { getInteropText } from "./styled-text.js";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  /**
11
11
  * Platform-aware font-family value. On web we resolve to the CSS custom
@@ -52,14 +52,13 @@ const TextComponent = function Text({
52
52
  colors
53
53
  } = useTheme();
54
54
  const InteropText = getInteropText();
55
- const interopActive = hasTypographyClassNameInterop();
56
- const resolvedClassName = interopActive && className?.trim() ? className : undefined;
55
+ const trimmedClassName = className?.trim() ? className : undefined;
57
56
  return /*#__PURE__*/_jsx(InteropText, {
58
57
  ...rest,
59
- ...(resolvedClassName ? {
60
- className: resolvedClassName
58
+ ...(trimmedClassName ? {
59
+ className: trimmedClassName
61
60
  } : {}),
62
- style: mergeTypographyStyle(resolvedClassName, {
61
+ style: mergeTypographyStyle(trimmedClassName, {
63
62
  ...DEFAULT_TEXT_TYPOGRAPHY,
64
63
  color: colors.text
65
64
  }, SANS_FONT_FAMILY, style),
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","Platform","useTheme","fontFamilies","mergeTypographyStyle","typographyDefaultsWhenNoClassName","getInteropText","hasTypographyClassNameInterop","jsx","_jsx","fontFamilyStyle","kind","OS","fontFamily","SANS_FONT_FAMILY","DISPLAY_FONT_FAMILY","DEFAULT_TEXT_TYPOGRAPHY","fontSize","TextComponent","Text","children","style","className","rest","colors","InteropText","interopActive","resolvedClassName","trim","undefined","color","text","displayName","Span","HEADING_TYPOGRAPHY","fontWeight","createHeadingElement","level","HeadingElement","extraProps","role","headingBase","H1","H2","H3","H4","H5","H6","DEFAULT_PARAGRAPH_TYPOGRAPHY","lineHeight","P","paragraphDefaults"],"sourceRoot":"../../../src","sources":["typography/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","Platform","useTheme","fontFamilies","mergeTypographyStyle","typographyDefaultsWhenNoClassName","getInteropText","jsx","_jsx","fontFamilyStyle","kind","OS","fontFamily","SANS_FONT_FAMILY","DISPLAY_FONT_FAMILY","DEFAULT_TEXT_TYPOGRAPHY","fontSize","TextComponent","Text","children","style","className","rest","colors","InteropText","trimmedClassName","trim","undefined","color","text","displayName","Span","HEADING_TYPOGRAPHY","fontWeight","createHeadingElement","level","HeadingElement","extraProps","role","headingBase","H1","H2","H3","H4","H5","H6","DEFAULT_PARAGRAPH_TYPOGRAPHY","lineHeight","P","paragraphDefaults"],"sourceRoot":"../../../src","sources":["typography/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,31 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  import { Text as RNText } from 'react-native';
4
- import { lazyRequire } from "../utils/lazy-require.js";
5
- const getNativeWind = lazyRequire('nativewind');
6
- let interopText = RNText;
7
-
4
+ import { styled } from 'react-native-css';
8
5
  /**
9
- * RN `Text` wired for NativeWind `className` → `style` interop when
10
- * `nativewind` is installed in the consumer. Falls back to plain `RNText`
11
- * otherwise (className is ignored upstream).
6
+ * RN `Text` wired for NativeWind `className` → `style` interop.
7
+ *
8
+ * Import `styled` from Bloom's direct dependency `react-native-css` — not via
9
+ * lazy `require('nativewind')`. Metro cannot reliably bundle dynamic requires
10
+ * from published `@oxyhq/bloom/lib`, so the 0.29.4 lazy path left interop
11
+ * inactive at runtime and Bloom defaults (fontSize 13) overrode hero utilities.
12
12
  */
13
+ const interopText = styled(RNText, {
14
+ className: 'style'
15
+ });
13
16
  export function getInteropText() {
14
- if (interopText !== RNText) {
15
- return interopText;
16
- }
17
- const nativewind = getNativeWind();
18
- if (nativewind?.styled) {
19
- interopText = nativewind.styled(RNText, {
20
- className: 'style'
21
- });
22
- }
23
17
  return interopText;
24
18
  }
25
19
 
26
- /** True when className interop is active (nativewind present). */
20
+ /** True when className interop is active (always — react-native-css is a direct dep). */
27
21
  export function hasTypographyClassNameInterop() {
28
- getInteropText();
29
- return interopText !== RNText;
22
+ return true;
30
23
  }
31
24
  //# sourceMappingURL=styled-text.js.map