@oxyhq/bloom 0.29.6 → 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.
- package/lib/commonjs/activity-heatmap/ActivityHeatmap.js +304 -0
- package/lib/commonjs/activity-heatmap/ActivityHeatmap.js.map +1 -0
- package/lib/commonjs/activity-heatmap/bucketByDay.js +51 -0
- package/lib/commonjs/activity-heatmap/bucketByDay.js.map +1 -0
- package/lib/commonjs/activity-heatmap/index.js +20 -0
- package/lib/commonjs/activity-heatmap/index.js.map +1 -0
- package/lib/commonjs/activity-heatmap/types.js +6 -0
- package/lib/commonjs/activity-heatmap/types.js.map +1 -0
- package/lib/commonjs/avatar-group/AvatarGroupBase.js +42 -18
- package/lib/commonjs/avatar-group/AvatarGroupBase.js.map +1 -1
- package/lib/commonjs/composition-bar/CompositionBar.js +159 -0
- package/lib/commonjs/composition-bar/CompositionBar.js.map +1 -0
- package/lib/commonjs/composition-bar/index.js +13 -0
- package/lib/commonjs/composition-bar/index.js.map +1 -0
- package/lib/commonjs/composition-bar/types.js +6 -0
- package/lib/commonjs/composition-bar/types.js.map +1 -0
- package/lib/commonjs/dot-grid-meter/DotGridMeter.js +69 -0
- package/lib/commonjs/dot-grid-meter/DotGridMeter.js.map +1 -0
- package/lib/commonjs/dot-grid-meter/index.js +13 -0
- package/lib/commonjs/dot-grid-meter/index.js.map +1 -0
- package/lib/commonjs/dot-grid-meter/types.js +6 -0
- package/lib/commonjs/dot-grid-meter/types.js.map +1 -0
- package/lib/commonjs/index.js +59 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +59 -12
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/profile-card/ProfileCard.js +301 -0
- package/lib/commonjs/profile-card/ProfileCard.js.map +1 -0
- package/lib/commonjs/profile-card/index.js +13 -0
- package/lib/commonjs/profile-card/index.js.map +1 -0
- package/lib/commonjs/profile-card/types.js +6 -0
- package/lib/commonjs/profile-card/types.js.map +1 -0
- package/lib/commonjs/stat-bar/StatBar.js +210 -0
- package/lib/commonjs/stat-bar/StatBar.js.map +1 -0
- package/lib/commonjs/stat-bar/index.js +13 -0
- package/lib/commonjs/stat-bar/index.js.map +1 -0
- package/lib/commonjs/stat-bar/types.js +6 -0
- package/lib/commonjs/stat-bar/types.js.map +1 -0
- package/lib/module/activity-heatmap/ActivityHeatmap.js +299 -0
- package/lib/module/activity-heatmap/ActivityHeatmap.js.map +1 -0
- package/lib/module/activity-heatmap/bucketByDay.js +47 -0
- package/lib/module/activity-heatmap/bucketByDay.js.map +1 -0
- package/lib/module/activity-heatmap/index.js +5 -0
- package/lib/module/activity-heatmap/index.js.map +1 -0
- package/lib/module/activity-heatmap/types.js +4 -0
- package/lib/module/activity-heatmap/types.js.map +1 -0
- package/lib/module/avatar-group/AvatarGroupBase.js +42 -18
- package/lib/module/avatar-group/AvatarGroupBase.js.map +1 -1
- package/lib/module/composition-bar/CompositionBar.js +154 -0
- package/lib/module/composition-bar/CompositionBar.js.map +1 -0
- package/lib/module/composition-bar/index.js +4 -0
- package/lib/module/composition-bar/index.js.map +1 -0
- package/lib/module/composition-bar/types.js +4 -0
- package/lib/module/composition-bar/types.js.map +1 -0
- package/lib/module/dot-grid-meter/DotGridMeter.js +64 -0
- package/lib/module/dot-grid-meter/DotGridMeter.js.map +1 -0
- package/lib/module/dot-grid-meter/index.js +4 -0
- package/lib/module/dot-grid-meter/index.js.map +1 -0
- package/lib/module/dot-grid-meter/types.js +4 -0
- package/lib/module/dot-grid-meter/types.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +6 -0
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/profile-card/ProfileCard.js +296 -0
- package/lib/module/profile-card/ProfileCard.js.map +1 -0
- package/lib/module/profile-card/index.js +4 -0
- package/lib/module/profile-card/index.js.map +1 -0
- package/lib/module/profile-card/types.js +4 -0
- package/lib/module/profile-card/types.js.map +1 -0
- package/lib/module/stat-bar/StatBar.js +205 -0
- package/lib/module/stat-bar/StatBar.js.map +1 -0
- package/lib/module/stat-bar/index.js +4 -0
- package/lib/module/stat-bar/index.js.map +1 -0
- package/lib/module/stat-bar/types.js +4 -0
- package/lib/module/stat-bar/types.js.map +1 -0
- package/lib/typescript/commonjs/activity-heatmap/ActivityHeatmap.d.ts +4 -0
- package/lib/typescript/commonjs/activity-heatmap/ActivityHeatmap.d.ts.map +1 -0
- package/lib/typescript/commonjs/activity-heatmap/bucketByDay.d.ts +9 -0
- package/lib/typescript/commonjs/activity-heatmap/bucketByDay.d.ts.map +1 -0
- package/lib/typescript/commonjs/activity-heatmap/index.d.ts +4 -0
- package/lib/typescript/commonjs/activity-heatmap/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/activity-heatmap/types.d.ts +73 -0
- package/lib/typescript/commonjs/activity-heatmap/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/avatar-group/AvatarGroupBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/avatar-group/types.d.ts +15 -1
- package/lib/typescript/commonjs/avatar-group/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/composition-bar/CompositionBar.d.ts +4 -0
- package/lib/typescript/commonjs/composition-bar/CompositionBar.d.ts.map +1 -0
- package/lib/typescript/commonjs/composition-bar/index.d.ts +3 -0
- package/lib/typescript/commonjs/composition-bar/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/composition-bar/types.d.ts +29 -0
- package/lib/typescript/commonjs/composition-bar/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/dot-grid-meter/DotGridMeter.d.ts +4 -0
- package/lib/typescript/commonjs/dot-grid-meter/DotGridMeter.d.ts.map +1 -0
- package/lib/typescript/commonjs/dot-grid-meter/index.d.ts +3 -0
- package/lib/typescript/commonjs/dot-grid-meter/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/dot-grid-meter/types.d.ts +36 -0
- package/lib/typescript/commonjs/dot-grid-meter/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +10 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +10 -0
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/profile-card/ProfileCard.d.ts +4 -0
- package/lib/typescript/commonjs/profile-card/ProfileCard.d.ts.map +1 -0
- package/lib/typescript/commonjs/profile-card/index.d.ts +3 -0
- package/lib/typescript/commonjs/profile-card/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/profile-card/types.d.ts +86 -0
- package/lib/typescript/commonjs/profile-card/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/stat-bar/StatBar.d.ts +4 -0
- package/lib/typescript/commonjs/stat-bar/StatBar.d.ts.map +1 -0
- package/lib/typescript/commonjs/stat-bar/index.d.ts +3 -0
- package/lib/typescript/commonjs/stat-bar/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/stat-bar/types.d.ts +62 -0
- package/lib/typescript/commonjs/stat-bar/types.d.ts.map +1 -0
- package/lib/typescript/module/activity-heatmap/ActivityHeatmap.d.ts +4 -0
- package/lib/typescript/module/activity-heatmap/ActivityHeatmap.d.ts.map +1 -0
- package/lib/typescript/module/activity-heatmap/bucketByDay.d.ts +9 -0
- package/lib/typescript/module/activity-heatmap/bucketByDay.d.ts.map +1 -0
- package/lib/typescript/module/activity-heatmap/index.d.ts +4 -0
- package/lib/typescript/module/activity-heatmap/index.d.ts.map +1 -0
- package/lib/typescript/module/activity-heatmap/types.d.ts +73 -0
- package/lib/typescript/module/activity-heatmap/types.d.ts.map +1 -0
- package/lib/typescript/module/avatar-group/AvatarGroupBase.d.ts.map +1 -1
- package/lib/typescript/module/avatar-group/types.d.ts +15 -1
- package/lib/typescript/module/avatar-group/types.d.ts.map +1 -1
- package/lib/typescript/module/composition-bar/CompositionBar.d.ts +4 -0
- package/lib/typescript/module/composition-bar/CompositionBar.d.ts.map +1 -0
- package/lib/typescript/module/composition-bar/index.d.ts +3 -0
- package/lib/typescript/module/composition-bar/index.d.ts.map +1 -0
- package/lib/typescript/module/composition-bar/types.d.ts +29 -0
- package/lib/typescript/module/composition-bar/types.d.ts.map +1 -0
- package/lib/typescript/module/dot-grid-meter/DotGridMeter.d.ts +4 -0
- package/lib/typescript/module/dot-grid-meter/DotGridMeter.d.ts.map +1 -0
- package/lib/typescript/module/dot-grid-meter/index.d.ts +3 -0
- package/lib/typescript/module/dot-grid-meter/index.d.ts.map +1 -0
- package/lib/typescript/module/dot-grid-meter/types.d.ts +36 -0
- package/lib/typescript/module/dot-grid-meter/types.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +10 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +10 -0
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/profile-card/ProfileCard.d.ts +4 -0
- package/lib/typescript/module/profile-card/ProfileCard.d.ts.map +1 -0
- package/lib/typescript/module/profile-card/index.d.ts +3 -0
- package/lib/typescript/module/profile-card/index.d.ts.map +1 -0
- package/lib/typescript/module/profile-card/types.d.ts +86 -0
- package/lib/typescript/module/profile-card/types.d.ts.map +1 -0
- package/lib/typescript/module/stat-bar/StatBar.d.ts +4 -0
- package/lib/typescript/module/stat-bar/StatBar.d.ts.map +1 -0
- package/lib/typescript/module/stat-bar/index.d.ts +3 -0
- package/lib/typescript/module/stat-bar/index.d.ts.map +1 -0
- package/lib/typescript/module/stat-bar/types.d.ts +62 -0
- package/lib/typescript/module/stat-bar/types.d.ts.map +1 -0
- package/package.json +56 -1
- package/src/__tests__/StatWidgets.test.tsx +184 -0
- package/src/__tests__/public-api-contract.test.ts +15 -0
- package/src/activity-heatmap/ActivityHeatmap.stories.tsx +108 -0
- package/src/activity-heatmap/ActivityHeatmap.tsx +289 -0
- package/src/activity-heatmap/bucketByDay.ts +49 -0
- package/src/activity-heatmap/index.ts +3 -0
- package/src/activity-heatmap/types.ts +74 -0
- package/src/avatar-group/AvatarGroup.stories.tsx +14 -0
- package/src/avatar-group/AvatarGroupBase.tsx +39 -18
- package/src/avatar-group/types.ts +15 -1
- package/src/composition-bar/CompositionBar.stories.tsx +70 -0
- package/src/composition-bar/CompositionBar.tsx +161 -0
- package/src/composition-bar/index.ts +2 -0
- package/src/composition-bar/types.ts +30 -0
- package/src/dot-grid-meter/DotGridMeter.stories.tsx +47 -0
- package/src/dot-grid-meter/DotGridMeter.tsx +71 -0
- package/src/dot-grid-meter/index.ts +2 -0
- package/src/dot-grid-meter/types.ts +36 -0
- package/src/index.ts +24 -0
- package/src/index.web.ts +24 -0
- package/src/profile-card/ProfileCard.stories.tsx +210 -0
- package/src/profile-card/ProfileCard.tsx +303 -0
- package/src/profile-card/index.ts +9 -0
- package/src/profile-card/types.ts +86 -0
- package/src/stat-bar/StatBar.stories.tsx +61 -0
- package/src/stat-bar/StatBar.tsx +156 -0
- package/src/stat-bar/index.ts +7 -0
- package/src/stat-bar/types.ts +65 -0
|
@@ -23,11 +23,13 @@ function getItemKey(item, index) {
|
|
|
23
23
|
|
|
24
24
|
const AvatarGroupBaseComponent = ({
|
|
25
25
|
items,
|
|
26
|
+
layout = 'stack',
|
|
26
27
|
size = 32,
|
|
27
28
|
variant = 'thumb',
|
|
28
29
|
max = 5,
|
|
29
30
|
total,
|
|
30
31
|
overlap,
|
|
32
|
+
spacing,
|
|
31
33
|
ringColor,
|
|
32
34
|
onPressItem,
|
|
33
35
|
style,
|
|
@@ -35,6 +37,7 @@ const AvatarGroupBaseComponent = ({
|
|
|
35
37
|
hoverHandlers
|
|
36
38
|
}) => {
|
|
37
39
|
const theme = useTheme();
|
|
40
|
+
const isRow = layout === 'row';
|
|
38
41
|
|
|
39
42
|
// The ring is the thin separator drawn between overlapping avatars. It
|
|
40
43
|
// defaults to the page background so avatars read as cleanly punched out of
|
|
@@ -46,15 +49,28 @@ const AvatarGroupBaseComponent = ({
|
|
|
46
49
|
// 1px border on each side, so the negative margin absorbs both borders to
|
|
47
50
|
// keep the visual overlap equal to `effectiveOverlap`.
|
|
48
51
|
const negativeMargin = -(effectiveOverlap + RING_WIDTH * 2);
|
|
52
|
+
// Row layout: a positive gap between adjacent avatars (no overlap, no ring).
|
|
53
|
+
const rowGap = spacing ?? Math.round(size * DEFAULT_OVERLAP_RATIO);
|
|
54
|
+
// Horizontal offset applied to every avatar after the first.
|
|
55
|
+
const itemMargin = isRow ? rowGap : negativeMargin;
|
|
49
56
|
const shown = useMemo(() => items.slice(0, Math.max(0, max)), [items, max]);
|
|
50
57
|
const realTotal = total ?? items.length;
|
|
51
58
|
const overflow = Math.max(0, realTotal - shown.length);
|
|
52
59
|
|
|
53
|
-
//
|
|
54
|
-
// Avatar is inset by the border on both sides
|
|
55
|
-
//
|
|
56
|
-
const innerSize = size - RING_WIDTH * 2;
|
|
60
|
+
// Stack: each cell is a circular, clipped container with a 1px ring border,
|
|
61
|
+
// and the inner Avatar is inset by the border on both sides. Row: no ring, so
|
|
62
|
+
// the Avatar fills the full cell.
|
|
63
|
+
const innerSize = isRow ? size : size - RING_WIDTH * 2;
|
|
57
64
|
const cellStyle = useMemo(() => {
|
|
65
|
+
if (isRow) {
|
|
66
|
+
return {
|
|
67
|
+
width: size,
|
|
68
|
+
height: size,
|
|
69
|
+
borderRadius: size / 2,
|
|
70
|
+
alignItems: 'center',
|
|
71
|
+
justifyContent: 'center'
|
|
72
|
+
};
|
|
73
|
+
}
|
|
58
74
|
return {
|
|
59
75
|
width: size,
|
|
60
76
|
height: size,
|
|
@@ -65,7 +81,7 @@ const AvatarGroupBaseComponent = ({
|
|
|
65
81
|
alignItems: 'center',
|
|
66
82
|
justifyContent: 'center'
|
|
67
83
|
};
|
|
68
|
-
}, [size, ring]);
|
|
84
|
+
}, [isRow, size, ring]);
|
|
69
85
|
const overflowTextStyle = useMemo(() => ({
|
|
70
86
|
color: '#FFFFFF',
|
|
71
87
|
fontSize: Math.max(fontSize._2xs, Math.round(size * 0.36)),
|
|
@@ -85,14 +101,18 @@ const AvatarGroupBaseComponent = ({
|
|
|
85
101
|
const name = getItemName(item);
|
|
86
102
|
const accessibilityLabel = item.username ? `${name ?? item.username} (@${item.username})` : name;
|
|
87
103
|
|
|
88
|
-
// The
|
|
89
|
-
//
|
|
90
|
-
// overlap.
|
|
104
|
+
// The horizontal margin and stacking order live on the outermost row
|
|
105
|
+
// element so layout and hit-testing stay aligned with the visual
|
|
106
|
+
// overlap. In stack mode earlier siblings render on top of later ones
|
|
107
|
+
// (descending zIndex); in row mode there is no overlap so stacking
|
|
108
|
+
// order is irrelevant.
|
|
91
109
|
const wrapperStyle = {
|
|
92
110
|
...(index > 0 && {
|
|
93
|
-
marginLeft:
|
|
111
|
+
marginLeft: itemMargin
|
|
94
112
|
}),
|
|
95
|
-
|
|
113
|
+
...(isRow ? {} : {
|
|
114
|
+
zIndex: shown.length - index
|
|
115
|
+
})
|
|
96
116
|
};
|
|
97
117
|
const cell = /*#__PURE__*/_jsx(View, {
|
|
98
118
|
ref: hoverHandlers?.registerCellRef ? node => hoverHandlers.registerCellRef?.(index, node) : undefined,
|
|
@@ -122,7 +142,8 @@ const AvatarGroupBaseComponent = ({
|
|
|
122
142
|
}), overflow > 0 && /*#__PURE__*/_jsx(OverflowCircle, {
|
|
123
143
|
count: overflow,
|
|
124
144
|
cellStyle: cellStyle,
|
|
125
|
-
|
|
145
|
+
marginLeft: shown.length > 0 ? itemMargin : 0,
|
|
146
|
+
isRow: isRow,
|
|
126
147
|
textStyle: overflowTextStyle,
|
|
127
148
|
onPress: overflowOnPress
|
|
128
149
|
})]
|
|
@@ -131,19 +152,22 @@ const AvatarGroupBaseComponent = ({
|
|
|
131
152
|
function OverflowCircle({
|
|
132
153
|
count,
|
|
133
154
|
cellStyle,
|
|
134
|
-
|
|
155
|
+
marginLeft,
|
|
156
|
+
isRow,
|
|
135
157
|
textStyle,
|
|
136
158
|
onPress
|
|
137
159
|
}) {
|
|
138
160
|
const theme = useTheme();
|
|
139
|
-
//
|
|
140
|
-
// the last avatar's ring
|
|
141
|
-
// aligned with the
|
|
161
|
+
// In stack mode the count circle is anchored at the lowest stacking order so
|
|
162
|
+
// it tucks behind the last avatar's ring; row mode has no overlap. The margin
|
|
163
|
+
// lives on the outer element to keep layout aligned with the spacing.
|
|
142
164
|
const wrapperStyle = {
|
|
143
|
-
...(
|
|
144
|
-
marginLeft
|
|
165
|
+
...(marginLeft !== 0 && {
|
|
166
|
+
marginLeft
|
|
145
167
|
}),
|
|
146
|
-
|
|
168
|
+
...(isRow ? {} : {
|
|
169
|
+
zIndex: 0
|
|
170
|
+
})
|
|
147
171
|
};
|
|
148
172
|
|
|
149
173
|
// A solid "+N" count circle: secondary-text-colored fill with white text,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useMemo","Pressable","StyleSheet","Text","View","Avatar","useTheme","fontSize","jsx","_jsx","jsxs","_jsxs","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","ring","colors","background","effectiveOverlap","Math","round","negativeMargin","shown","slice","realTotal","length","overflow","innerSize","cellStyle","width","height","borderRadius","
|
|
1
|
+
{"version":3,"names":["React","memo","useMemo","Pressable","StyleSheet","Text","View","Avatar","useTheme","fontSize","jsx","_jsx","jsxs","_jsxs","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","isRow","ring","colors","background","effectiveOverlap","Math","round","negativeMargin","rowGap","itemMargin","shown","slice","realTotal","length","overflow","innerSize","cellStyle","width","height","borderRadius","alignItems","justifyContent","borderWidth","borderColor","overflowTextStyle","color","_2xs","fontWeight","interactive","hoverable","onHoverIn","onHoverOut","firstHidden","overflowOnPress","undefined","styles","row","children","map","accessibilityLabel","wrapperStyle","marginLeft","zIndex","cell","ref","registerCellRef","node","collapsable","source","onPress","accessibilityRole","OverflowCircle","count","textStyle","circle","backgroundColor","textSecondary","allowFontScaling","create","flexDirection","AvatarGroupBase"],"sourceRoot":"../../../src","sources":["avatar-group/AvatarGroupBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo, useMemo } from 'react';
|
|
4
|
+
import { View, StyleSheet, Pressable } 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
|
+
const BAR_HEIGHT = 44;
|
|
9
|
+
/** Fully-rounded capsule ends. */
|
|
10
|
+
const RADIUS_FULL = BAR_HEIGHT / 2;
|
|
11
|
+
/** Slight inner-corner rounding so segments read as one bar, not buttons. */
|
|
12
|
+
const RADIUS_INNER = 8;
|
|
13
|
+
/** Floor so a tiny category stays tappable/visible; flexbox renormalizes the rest. */
|
|
14
|
+
const MIN_SEGMENT_WIDTH = 18;
|
|
15
|
+
function defaultFormatReadout(points, percent) {
|
|
16
|
+
return `${points} pts · ${percent}%`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The distribution bar — the signature composition visual. A single thick
|
|
21
|
+
* capsule split into one colored block per category, each block's width
|
|
22
|
+
* proportional to that category's share of the total (never a progress bar —
|
|
23
|
+
* the segments always fill the full width). The first/last blocks carry the
|
|
24
|
+
* rounded capsule ends; inner blocks are only slightly rounded and separated by
|
|
25
|
+
* a hairline-thin background gap so they read as ONE bar. Tapping a block
|
|
26
|
+
* selects it (dimming the rest) and reveals a readout of its name, points, and
|
|
27
|
+
* percentage; selection is lifted so the matching list row highlights in sync.
|
|
28
|
+
*/
|
|
29
|
+
const CompositionBarComponent = ({
|
|
30
|
+
categories,
|
|
31
|
+
selectedKey,
|
|
32
|
+
onSelect,
|
|
33
|
+
hintLabel,
|
|
34
|
+
formatReadout = defaultFormatReadout,
|
|
35
|
+
style,
|
|
36
|
+
testID
|
|
37
|
+
}) => {
|
|
38
|
+
const {
|
|
39
|
+
colors
|
|
40
|
+
} = useTheme();
|
|
41
|
+
const positive = useMemo(() => categories.filter(category => category.amount > 0), [categories]);
|
|
42
|
+
const total = useMemo(() => positive.reduce((sum, category) => sum + category.amount, 0), [positive]);
|
|
43
|
+
const selected = useMemo(() => selectedKey ? positive.find(category => category.key === selectedKey) ?? null : null, [positive, selectedKey]);
|
|
44
|
+
if (total <= 0) {
|
|
45
|
+
return /*#__PURE__*/_jsx(View, {
|
|
46
|
+
style: [styles.emptyTrack, {
|
|
47
|
+
backgroundColor: colors.backgroundSecondary
|
|
48
|
+
}, style],
|
|
49
|
+
testID: testID
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const selectedPercent = selected ? Math.round(selected.amount / total * 100) : 0;
|
|
53
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
54
|
+
style: [styles.wrap, style],
|
|
55
|
+
testID: testID,
|
|
56
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
57
|
+
style: styles.bar,
|
|
58
|
+
children: positive.map((category, index) => {
|
|
59
|
+
const isFirst = index === 0;
|
|
60
|
+
const isLast = index === positive.length - 1;
|
|
61
|
+
const dim = selected != null && category.key !== selectedKey;
|
|
62
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
63
|
+
onPress: () => onSelect(category.key),
|
|
64
|
+
accessibilityRole: "button",
|
|
65
|
+
accessibilityLabel: category.name,
|
|
66
|
+
accessibilityState: {
|
|
67
|
+
selected: category.key === selectedKey
|
|
68
|
+
},
|
|
69
|
+
style: [styles.segment, {
|
|
70
|
+
flexGrow: category.amount,
|
|
71
|
+
backgroundColor: category.color,
|
|
72
|
+
opacity: dim ? 0.35 : 1,
|
|
73
|
+
borderTopLeftRadius: isFirst ? RADIUS_FULL : RADIUS_INNER,
|
|
74
|
+
borderBottomLeftRadius: isFirst ? RADIUS_FULL : RADIUS_INNER,
|
|
75
|
+
borderTopRightRadius: isLast ? RADIUS_FULL : RADIUS_INNER,
|
|
76
|
+
borderBottomRightRadius: isLast ? RADIUS_FULL : RADIUS_INNER
|
|
77
|
+
}]
|
|
78
|
+
}, category.key);
|
|
79
|
+
})
|
|
80
|
+
}), selected ? /*#__PURE__*/_jsxs(View, {
|
|
81
|
+
style: styles.readout,
|
|
82
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
83
|
+
style: [styles.readoutDot, {
|
|
84
|
+
backgroundColor: selected.color
|
|
85
|
+
}]
|
|
86
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
87
|
+
style: [styles.readoutName, {
|
|
88
|
+
color: colors.text
|
|
89
|
+
}],
|
|
90
|
+
numberOfLines: 1,
|
|
91
|
+
children: selected.name
|
|
92
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
93
|
+
style: [styles.readoutMeta, {
|
|
94
|
+
color: colors.textSecondary
|
|
95
|
+
}],
|
|
96
|
+
numberOfLines: 1,
|
|
97
|
+
children: formatReadout(selected.amount, selectedPercent)
|
|
98
|
+
})]
|
|
99
|
+
}) : /*#__PURE__*/_jsx(Text, {
|
|
100
|
+
style: [styles.hint, {
|
|
101
|
+
color: colors.textSecondary
|
|
102
|
+
}],
|
|
103
|
+
numberOfLines: 1,
|
|
104
|
+
children: hintLabel
|
|
105
|
+
})]
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
const styles = StyleSheet.create({
|
|
109
|
+
wrap: {
|
|
110
|
+
gap: 12
|
|
111
|
+
},
|
|
112
|
+
bar: {
|
|
113
|
+
flexDirection: 'row',
|
|
114
|
+
height: BAR_HEIGHT,
|
|
115
|
+
gap: 3
|
|
116
|
+
},
|
|
117
|
+
segment: {
|
|
118
|
+
flexBasis: 0,
|
|
119
|
+
minWidth: MIN_SEGMENT_WIDTH,
|
|
120
|
+
height: BAR_HEIGHT,
|
|
121
|
+
borderCurve: 'continuous'
|
|
122
|
+
},
|
|
123
|
+
emptyTrack: {
|
|
124
|
+
height: BAR_HEIGHT,
|
|
125
|
+
borderRadius: RADIUS_FULL,
|
|
126
|
+
borderCurve: 'continuous'
|
|
127
|
+
},
|
|
128
|
+
readout: {
|
|
129
|
+
flexDirection: 'row',
|
|
130
|
+
alignItems: 'center',
|
|
131
|
+
gap: 8
|
|
132
|
+
},
|
|
133
|
+
readoutDot: {
|
|
134
|
+
width: 10,
|
|
135
|
+
height: 10,
|
|
136
|
+
borderRadius: 5
|
|
137
|
+
},
|
|
138
|
+
readoutName: {
|
|
139
|
+
fontSize: 14,
|
|
140
|
+
fontWeight: '700',
|
|
141
|
+
letterSpacing: -0.2
|
|
142
|
+
},
|
|
143
|
+
readoutMeta: {
|
|
144
|
+
flexShrink: 1,
|
|
145
|
+
fontSize: 13,
|
|
146
|
+
fontVariant: ['tabular-nums']
|
|
147
|
+
},
|
|
148
|
+
hint: {
|
|
149
|
+
fontSize: 13
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
export const CompositionBar = /*#__PURE__*/memo(CompositionBarComponent);
|
|
153
|
+
CompositionBar.displayName = 'CompositionBar';
|
|
154
|
+
//# sourceMappingURL=CompositionBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","useMemo","View","StyleSheet","Pressable","useTheme","Text","jsx","_jsx","jsxs","_jsxs","BAR_HEIGHT","RADIUS_FULL","RADIUS_INNER","MIN_SEGMENT_WIDTH","defaultFormatReadout","points","percent","CompositionBarComponent","categories","selectedKey","onSelect","hintLabel","formatReadout","style","testID","colors","positive","filter","category","amount","total","reduce","sum","selected","find","key","styles","emptyTrack","backgroundColor","backgroundSecondary","selectedPercent","Math","round","wrap","children","bar","map","index","isFirst","isLast","length","dim","onPress","accessibilityRole","accessibilityLabel","name","accessibilityState","segment","flexGrow","color","opacity","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","readout","readoutDot","readoutName","text","numberOfLines","readoutMeta","textSecondary","hint","create","gap","flexDirection","height","flexBasis","minWidth","borderCurve","borderRadius","alignItems","width","fontSize","fontWeight","letterSpacing","flexShrink","fontVariant","CompositionBar","displayName"],"sourceRoot":"../../../src","sources":["composition-bar/CompositionBar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CompositionBar"],"sourceRoot":"../../../src","sources":["composition-bar/index.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,qBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["composition-bar/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { memo, useMemo } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { useTheme } from "../theme/use-theme.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* A data-driven grid of small circular dots — the "diversity meter" visual. The
|
|
9
|
+
* first `filled` dots use `filledColor`, the rest use `emptyColor`, laid out in
|
|
10
|
+
* a flex-wrapped grid of `columns` per row. Pure `<View>` composition (no SVG),
|
|
11
|
+
* so it renders identically on web and native.
|
|
12
|
+
*/
|
|
13
|
+
const DotGridMeterComponent = ({
|
|
14
|
+
filled,
|
|
15
|
+
total,
|
|
16
|
+
columns = 10,
|
|
17
|
+
dotSize = 10,
|
|
18
|
+
gap = 6,
|
|
19
|
+
filledColor,
|
|
20
|
+
emptyColor,
|
|
21
|
+
style,
|
|
22
|
+
testID
|
|
23
|
+
}) => {
|
|
24
|
+
const {
|
|
25
|
+
colors
|
|
26
|
+
} = useTheme();
|
|
27
|
+
const onColor = filledColor ?? colors.success;
|
|
28
|
+
const offColor = emptyColor ?? colors.backgroundSecondary;
|
|
29
|
+
const safeTotal = Math.max(0, Math.floor(total));
|
|
30
|
+
const safeFilled = Math.min(safeTotal, Math.max(0, Math.floor(filled)));
|
|
31
|
+
// A row can hold at most `columns` dots; a grid narrower than one full row
|
|
32
|
+
// should still wrap tightly, so the container width follows the smaller count.
|
|
33
|
+
const perRow = Math.max(1, Math.floor(columns));
|
|
34
|
+
const rowWidth = Math.min(safeTotal, perRow);
|
|
35
|
+
const dots = useMemo(() => Array.from({
|
|
36
|
+
length: safeTotal
|
|
37
|
+
}, (_, index) => index < safeFilled), [safeTotal, safeFilled]);
|
|
38
|
+
return /*#__PURE__*/_jsx(View, {
|
|
39
|
+
style: [{
|
|
40
|
+
flexDirection: 'row',
|
|
41
|
+
flexWrap: 'wrap',
|
|
42
|
+
gap,
|
|
43
|
+
width: rowWidth * dotSize + Math.max(0, rowWidth - 1) * gap
|
|
44
|
+
}, style],
|
|
45
|
+
accessibilityRole: "progressbar",
|
|
46
|
+
accessibilityValue: {
|
|
47
|
+
min: 0,
|
|
48
|
+
max: safeTotal,
|
|
49
|
+
now: safeFilled
|
|
50
|
+
},
|
|
51
|
+
testID: testID,
|
|
52
|
+
children: dots.map((isFilled, index) => /*#__PURE__*/_jsx(View, {
|
|
53
|
+
style: {
|
|
54
|
+
width: dotSize,
|
|
55
|
+
height: dotSize,
|
|
56
|
+
borderRadius: dotSize / 2,
|
|
57
|
+
backgroundColor: isFilled ? onColor : offColor
|
|
58
|
+
}
|
|
59
|
+
}, index))
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
export const DotGridMeter = /*#__PURE__*/memo(DotGridMeterComponent);
|
|
63
|
+
DotGridMeter.displayName = 'DotGridMeter';
|
|
64
|
+
//# sourceMappingURL=DotGridMeter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","useMemo","View","useTheme","jsx","_jsx","DotGridMeterComponent","filled","total","columns","dotSize","gap","filledColor","emptyColor","style","testID","colors","onColor","success","offColor","backgroundSecondary","safeTotal","Math","max","floor","safeFilled","min","perRow","rowWidth","dots","Array","from","length","_","index","flexDirection","flexWrap","width","accessibilityRole","accessibilityValue","now","children","map","isFilled","height","borderRadius","backgroundColor","DotGridMeter","displayName"],"sourceRoot":"../../../src","sources":["dot-grid-meter/DotGridMeter.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAC5C,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,QAAQ,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,qBAAkD,GAAGA,CAAC;EAC1DC,MAAM;EACNC,KAAK;EACLC,OAAO,GAAG,EAAE;EACZC,OAAO,GAAG,EAAE;EACZC,GAAG,GAAG,CAAC;EACPC,WAAW;EACXC,UAAU;EACVC,KAAK;EACLC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAO,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAC7B,MAAMc,OAAO,GAAGL,WAAW,IAAII,MAAM,CAACE,OAAO;EAC7C,MAAMC,QAAQ,GAAGN,UAAU,IAAIG,MAAM,CAACI,mBAAmB;EAEzD,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAAChB,KAAK,CAAC,CAAC;EAChD,MAAMiB,UAAU,GAAGH,IAAI,CAACI,GAAG,CAACL,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACjB,MAAM,CAAC,CAAC,CAAC;EACvE;EACA;EACA,MAAMoB,MAAM,GAAGL,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACf,OAAO,CAAC,CAAC;EAC/C,MAAMmB,QAAQ,GAAGN,IAAI,CAACI,GAAG,CAACL,SAAS,EAAEM,MAAM,CAAC;EAE5C,MAAME,IAAI,GAAG5B,OAAO,CAClB,MAAM6B,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEX;EAAU,CAAC,EAAE,CAACY,CAAC,EAAEC,KAAK,KAAKA,KAAK,GAAGT,UAAU,CAAC,EACzE,CAACJ,SAAS,EAAEI,UAAU,CACxB,CAAC;EAED,oBACEpB,IAAA,CAACH,IAAI;IACHY,KAAK,EAAE,CACL;MACEqB,aAAa,EAAE,KAAK;MACpBC,QAAQ,EAAE,MAAM;MAChBzB,GAAG;MACH0B,KAAK,EAAET,QAAQ,GAAGlB,OAAO,GAAGY,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEK,QAAQ,GAAG,CAAC,CAAC,GAAGjB;IAC1D,CAAC,EACDG,KAAK,CACL;IACFwB,iBAAiB,EAAC,aAAa;IAC/BC,kBAAkB,EAAE;MAAEb,GAAG,EAAE,CAAC;MAAEH,GAAG,EAAEF,SAAS;MAAEmB,GAAG,EAAEf;IAAW,CAAE;IAChEV,MAAM,EAAEA,MAAO;IAAA0B,QAAA,EAEdZ,IAAI,CAACa,GAAG,CAAC,CAACC,QAAQ,EAAET,KAAK,kBACxB7B,IAAA,CAACH,IAAI;MAEHY,KAAK,EAAE;QACLuB,KAAK,EAAE3B,OAAO;QACdkC,MAAM,EAAElC,OAAO;QACfmC,YAAY,EAAEnC,OAAO,GAAG,CAAC;QACzBoC,eAAe,EAAEH,QAAQ,GAAG1B,OAAO,GAAGE;MACxC;IAAE,GANGe,KAON,CACF;EAAC,CACE,CAAC;AAEX,CAAC;AAED,OAAO,MAAMa,YAAY,gBAAG/C,IAAI,CAACM,qBAAqB,CAAC;AACvDyC,YAAY,CAACC,WAAW,GAAG,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DotGridMeter"],"sourceRoot":"../../../src","sources":["dot-grid-meter/index.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,mBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["dot-grid-meter/types.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -77,6 +77,12 @@ export * from "./tabs/index.js";
|
|
|
77
77
|
export * from "./checkbox/index.js";
|
|
78
78
|
export * from "./accordion/index.js";
|
|
79
79
|
export { LinkPreviewCard } from "./link-preview/index.js";
|
|
80
|
+
// Stat / profile widgets
|
|
81
|
+
export { CompositionBar } from "./composition-bar/index.js";
|
|
82
|
+
export { DotGridMeter } from "./dot-grid-meter/index.js";
|
|
83
|
+
export { StatBar } from "./stat-bar/index.js";
|
|
84
|
+
export { ActivityHeatmap, bucketByDay } from "./activity-heatmap/index.js";
|
|
85
|
+
export { ProfileCard } from "./profile-card/index.js";
|
|
80
86
|
// Settings / Grouped list
|
|
81
87
|
export * from "./settings-list/index.js";
|
|
82
88
|
export { Item } from "./item/index.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","bloomTailwindPreset","bloomThemeCss","bloomThemeBlock","FILL_ROLES","TEXT_ROLES","BORDER_ROLES","SPACING","RADIUS","BORDER_WIDTH","TYPOGRAPHY","FONT_FAMILY_VARS","SHADOW_BOX","bloomShadowStyle","useInteractionState","useDelayedLoading","useThrottledValue","useHaptics","BloomHapticsProvider","useGutters","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","toast","Typography","Skeleton","Grid","Fill","MediaInsetBorder","IconCircle","ConnectionDots","BenefitRow","BenefitList","PressableScale","PressableWithHover","SubtleHover","ScaleAndFadeIn","ScaleAndFadeOut","ShrinkAndPop","ScreenTransition","AnimatedCheck","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","LinkPreviewCard","Item","Kbd","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","bloomTailwindPreset","bloomThemeCss","bloomThemeBlock","FILL_ROLES","TEXT_ROLES","BORDER_ROLES","SPACING","RADIUS","BORDER_WIDTH","TYPOGRAPHY","FONT_FAMILY_VARS","SHADOW_BOX","bloomShadowStyle","useInteractionState","useDelayedLoading","useThrottledValue","useHaptics","BloomHapticsProvider","useGutters","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","toast","Typography","Skeleton","Grid","Fill","MediaInsetBorder","IconCircle","ConnectionDots","BenefitRow","BenefitList","PressableScale","PressableWithHover","SubtleHover","ScaleAndFadeIn","ScaleAndFadeOut","ShrinkAndPop","ScreenTransition","AnimatedCheck","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","LinkPreviewCard","CompositionBar","DotGridMeter","StatBar","ActivityHeatmap","bucketByDay","ProfileCard","Item","Kbd","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,cAAc,kBAAS;;AAEvB;AACA,SAASA,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,QAAQ,mBAAU;AAE1D,OAAO,KAAKC,MAAM,MAAM,oBAAiB;AACzC,SAASC,GAAG,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,sBAAmB;;AAE/E;AACA;AACA;AACA,SACEC,mBAAmB,EACnBC,aAAa,EACbC,eAAe,EACfC,UAAU,EACVC,UAAU,EACVC,YAAY,EACZC,OAAO,EACPC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,gBAAgB,EAChBC,UAAU,EACVC,gBAAgB,QACX,0BAAiB;AAYxB;AACA,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,UAAU,EAAEC,oBAAoB,QAAQ,uBAAoB;AAErE,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,UAAU;AACxB,SACEC,MAAM,EACNC,4BAA4B,EAC5BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,UAAU;AAajB,cAAc,UAAU;AACxB,SAASC,GAAG,QAAQ,OAAO;AAE3B,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,SAASC,WAAW,QAAQ,yBAAgB;AAE5C,SAASC,aAAa,QAAQ,4BAAmB;AAEjD,cAAc,WAAW;AACzB,cAAc,yBAAgB;AAC9B,cAAc,mBAAU;AACxB,SAASC,KAAK,QAAoB,SAAS;;AAE3C;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;;AAE1C;AACA,OAAO,KAAKC,QAAQ,MAAM,qBAAY;AACtC,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,SAASC,IAAI,QAAQ,iBAAQ;AAC7B,SAASC,gBAAgB,QAAQ,+BAAsB;AAEvD,SAASC,UAAU,QAAQ,wBAAe;AAC1C,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,UAAU,EAAEC,WAAW,QAAQ,yBAAgB;AAGxD;AACA,SAASC,cAAc,QAAQ,4BAAmB;AAElD,SAASC,kBAAkB,QAAQ,iCAAwB;AAE3D,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,SAASC,cAAc,EAAEC,eAAe,EAAEC,YAAY,EAAEC,gBAAgB,QAAQ,mBAAU;AAE1F,SAASC,aAAa,QAAQ,2BAAkB;AAGhD;AACA,cAAc,uBAAc;AAC5B,cAAc,8BAAqB;AACnC,SAASC,WAAW,QAAQ,yBAAgB;AAC5C,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,UAAU,QAAQ,wBAAe;AAE1C,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,QAAQ,QAAQ,YAAY;AAGrC;AACA,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,iBAAQ;AACtB,cAAc,iBAAQ;AACtB,cAAc,qBAAY;AAC1B,cAAc,sBAAa;AAC3B,SAASC,eAAe,QAAQ,yBAAgB;AAGhD;AACA,SAASC,cAAc,QAAQ,4BAAmB;AAElD,SAASC,YAAY,QAAQ,2BAAkB;AAE/C,SAASC,OAAO,QAAQ,qBAAY;AAOpC,SAASC,eAAe,EAAEC,WAAW,QAAQ,6BAAoB;AAEjE,SAASC,WAAW,QAAQ,yBAAgB;AAU5C;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,cAAc,uBAAc;AAC5B,cAAc,QAAQ;AACtB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,WAAW;AACzB,SAASC,WAAW,EAAEC,eAAe,EAAEC,OAAO,QAAQ,gBAAgB;AAMtE,SAASC,OAAO,QAAQ,WAAW;AAGnC;AACA,OAAO,KAAKC,IAAI,MAAM,iBAAQ;;AAE9B;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS","ignoreList":[]}
|
package/lib/module/index.web.js
CHANGED
|
@@ -82,6 +82,12 @@ export * from "./tabs/index.js";
|
|
|
82
82
|
export * from "./checkbox/index.js";
|
|
83
83
|
export * from "./accordion/index.js";
|
|
84
84
|
export { LinkPreviewCard } from "./link-preview/index.js";
|
|
85
|
+
// Stat / profile widgets
|
|
86
|
+
export { CompositionBar } from "./composition-bar/index.js";
|
|
87
|
+
export { DotGridMeter } from "./dot-grid-meter/index.js";
|
|
88
|
+
export { StatBar } from "./stat-bar/index.js";
|
|
89
|
+
export { ActivityHeatmap, bucketByDay } from "./activity-heatmap/index.js";
|
|
90
|
+
export { ProfileCard } from "./profile-card/index.js";
|
|
85
91
|
// Settings / Grouped list
|
|
86
92
|
export * from "./settings-list/index.js";
|
|
87
93
|
export { Item } from "./item/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","bloomTailwindPreset","bloomThemeCss","bloomThemeBlock","FILL_ROLES","TEXT_ROLES","BORDER_ROLES","SPACING","RADIUS","BORDER_WIDTH","TYPOGRAPHY","FONT_FAMILY_VARS","SHADOW_BOX","bloomShadowStyle","useInteractionState","useDelayedLoading","useThrottledValue","useHaptics","BloomHapticsProvider","useGutters","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","toast","Typography","Skeleton","Grid","Fill","MediaInsetBorder","IconCircle","ConnectionDots","BenefitRow","BenefitList","PressableScale","PressableWithHover","SubtleHover","ScaleAndFadeIn","ScaleAndFadeOut","ShrinkAndPop","ScreenTransition","AnimatedCheck","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","LinkPreviewCard","Item","Kbd","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","bloomTailwindPreset","bloomThemeCss","bloomThemeBlock","FILL_ROLES","TEXT_ROLES","BORDER_ROLES","SPACING","RADIUS","BORDER_WIDTH","TYPOGRAPHY","FONT_FAMILY_VARS","SHADOW_BOX","bloomShadowStyle","useInteractionState","useDelayedLoading","useThrottledValue","useHaptics","BloomHapticsProvider","useGutters","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","toast","Typography","Skeleton","Grid","Fill","MediaInsetBorder","IconCircle","ConnectionDots","BenefitRow","BenefitList","PressableScale","PressableWithHover","SubtleHover","ScaleAndFadeIn","ScaleAndFadeOut","ShrinkAndPop","ScreenTransition","AnimatedCheck","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","LinkPreviewCard","CompositionBar","DotGridMeter","StatBar","ActivityHeatmap","bucketByDay","ProfileCard","Item","Kbd","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","ignoreList":[]}
|