@oxyhq/bloom 0.8.5 → 0.9.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 (119) hide show
  1. package/lib/commonjs/avatar-group/AvatarGroup.js +26 -0
  2. package/lib/commonjs/avatar-group/AvatarGroup.js.map +1 -0
  3. package/lib/commonjs/avatar-group/AvatarGroup.web.js +116 -0
  4. package/lib/commonjs/avatar-group/AvatarGroup.web.js.map +1 -0
  5. package/lib/commonjs/avatar-group/AvatarGroupBase.js +184 -0
  6. package/lib/commonjs/avatar-group/AvatarGroupBase.js.map +1 -0
  7. package/lib/commonjs/avatar-group/index.js +13 -0
  8. package/lib/commonjs/avatar-group/index.js.map +1 -0
  9. package/lib/commonjs/avatar-group/index.web.js +13 -0
  10. package/lib/commonjs/avatar-group/index.web.js.map +1 -0
  11. package/lib/commonjs/avatar-group/types.js +6 -0
  12. package/lib/commonjs/avatar-group/types.js.map +1 -0
  13. package/lib/commonjs/index.js +60 -44
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/index.web.js +74 -58
  16. package/lib/commonjs/index.web.js.map +1 -1
  17. package/lib/commonjs/theme/color-scope/index.web.js +6 -7
  18. package/lib/commonjs/theme/color-scope/index.web.js.map +1 -1
  19. package/lib/commonjs/theme/color-scope/style-builder.js +18 -6
  20. package/lib/commonjs/theme/color-scope/style-builder.js.map +1 -1
  21. package/lib/commonjs/user-hover-card/UserHoverCard.js +193 -0
  22. package/lib/commonjs/user-hover-card/UserHoverCard.js.map +1 -0
  23. package/lib/commonjs/user-hover-card/index.js +13 -0
  24. package/lib/commonjs/user-hover-card/index.js.map +1 -0
  25. package/lib/commonjs/user-hover-card/types.js +6 -0
  26. package/lib/commonjs/user-hover-card/types.js.map +1 -0
  27. package/lib/module/avatar-group/AvatarGroup.js +21 -0
  28. package/lib/module/avatar-group/AvatarGroup.js.map +1 -0
  29. package/lib/module/avatar-group/AvatarGroup.web.js +111 -0
  30. package/lib/module/avatar-group/AvatarGroup.web.js.map +1 -0
  31. package/lib/module/avatar-group/AvatarGroupBase.js +179 -0
  32. package/lib/module/avatar-group/AvatarGroupBase.js.map +1 -0
  33. package/lib/module/avatar-group/index.js +4 -0
  34. package/lib/module/avatar-group/index.js.map +1 -0
  35. package/lib/module/avatar-group/index.web.js +4 -0
  36. package/lib/module/avatar-group/index.web.js.map +1 -0
  37. package/lib/module/avatar-group/types.js +4 -0
  38. package/lib/module/avatar-group/types.js.map +1 -0
  39. package/lib/module/index.js +2 -0
  40. package/lib/module/index.js.map +1 -1
  41. package/lib/module/index.web.js +2 -0
  42. package/lib/module/index.web.js.map +1 -1
  43. package/lib/module/theme/color-scope/index.web.js +6 -7
  44. package/lib/module/theme/color-scope/index.web.js.map +1 -1
  45. package/lib/module/theme/color-scope/style-builder.js +19 -7
  46. package/lib/module/theme/color-scope/style-builder.js.map +1 -1
  47. package/lib/module/user-hover-card/UserHoverCard.js +188 -0
  48. package/lib/module/user-hover-card/UserHoverCard.js.map +1 -0
  49. package/lib/module/user-hover-card/index.js +4 -0
  50. package/lib/module/user-hover-card/index.js.map +1 -0
  51. package/lib/module/user-hover-card/types.js +4 -0
  52. package/lib/module/user-hover-card/types.js.map +1 -0
  53. package/lib/typescript/commonjs/avatar-group/AvatarGroup.d.ts +4 -0
  54. package/lib/typescript/commonjs/avatar-group/AvatarGroup.d.ts.map +1 -0
  55. package/lib/typescript/commonjs/avatar-group/AvatarGroup.web.d.ts +4 -0
  56. package/lib/typescript/commonjs/avatar-group/AvatarGroup.web.d.ts.map +1 -0
  57. package/lib/typescript/commonjs/avatar-group/AvatarGroupBase.d.ts +16 -0
  58. package/lib/typescript/commonjs/avatar-group/AvatarGroupBase.d.ts.map +1 -0
  59. package/lib/typescript/commonjs/avatar-group/index.d.ts +3 -0
  60. package/lib/typescript/commonjs/avatar-group/index.d.ts.map +1 -0
  61. package/lib/typescript/commonjs/avatar-group/index.web.d.ts +3 -0
  62. package/lib/typescript/commonjs/avatar-group/index.web.d.ts.map +1 -0
  63. package/lib/typescript/commonjs/avatar-group/types.d.ts +63 -0
  64. package/lib/typescript/commonjs/avatar-group/types.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/index.d.ts +4 -0
  66. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/index.web.d.ts +4 -0
  68. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/theme/color-scope/index.web.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/theme/color-scope/style-builder.d.ts +7 -5
  71. package/lib/typescript/commonjs/theme/color-scope/style-builder.d.ts.map +1 -1
  72. package/lib/typescript/commonjs/user-hover-card/UserHoverCard.d.ts +4 -0
  73. package/lib/typescript/commonjs/user-hover-card/UserHoverCard.d.ts.map +1 -0
  74. package/lib/typescript/commonjs/user-hover-card/index.d.ts +3 -0
  75. package/lib/typescript/commonjs/user-hover-card/index.d.ts.map +1 -0
  76. package/lib/typescript/commonjs/user-hover-card/types.d.ts +37 -0
  77. package/lib/typescript/commonjs/user-hover-card/types.d.ts.map +1 -0
  78. package/lib/typescript/module/avatar-group/AvatarGroup.d.ts +4 -0
  79. package/lib/typescript/module/avatar-group/AvatarGroup.d.ts.map +1 -0
  80. package/lib/typescript/module/avatar-group/AvatarGroup.web.d.ts +4 -0
  81. package/lib/typescript/module/avatar-group/AvatarGroup.web.d.ts.map +1 -0
  82. package/lib/typescript/module/avatar-group/AvatarGroupBase.d.ts +16 -0
  83. package/lib/typescript/module/avatar-group/AvatarGroupBase.d.ts.map +1 -0
  84. package/lib/typescript/module/avatar-group/index.d.ts +3 -0
  85. package/lib/typescript/module/avatar-group/index.d.ts.map +1 -0
  86. package/lib/typescript/module/avatar-group/index.web.d.ts +3 -0
  87. package/lib/typescript/module/avatar-group/index.web.d.ts.map +1 -0
  88. package/lib/typescript/module/avatar-group/types.d.ts +63 -0
  89. package/lib/typescript/module/avatar-group/types.d.ts.map +1 -0
  90. package/lib/typescript/module/index.d.ts +4 -0
  91. package/lib/typescript/module/index.d.ts.map +1 -1
  92. package/lib/typescript/module/index.web.d.ts +4 -0
  93. package/lib/typescript/module/index.web.d.ts.map +1 -1
  94. package/lib/typescript/module/theme/color-scope/index.web.d.ts.map +1 -1
  95. package/lib/typescript/module/theme/color-scope/style-builder.d.ts +7 -5
  96. package/lib/typescript/module/theme/color-scope/style-builder.d.ts.map +1 -1
  97. package/lib/typescript/module/user-hover-card/UserHoverCard.d.ts +4 -0
  98. package/lib/typescript/module/user-hover-card/UserHoverCard.d.ts.map +1 -0
  99. package/lib/typescript/module/user-hover-card/index.d.ts +3 -0
  100. package/lib/typescript/module/user-hover-card/index.d.ts.map +1 -0
  101. package/lib/typescript/module/user-hover-card/types.d.ts +37 -0
  102. package/lib/typescript/module/user-hover-card/types.d.ts.map +1 -0
  103. package/package.json +30 -1
  104. package/src/__tests__/BloomColorScope.test.tsx +12 -4
  105. package/src/avatar-group/AvatarGroup.stories.tsx +135 -0
  106. package/src/avatar-group/AvatarGroup.tsx +19 -0
  107. package/src/avatar-group/AvatarGroup.web.tsx +145 -0
  108. package/src/avatar-group/AvatarGroupBase.tsx +249 -0
  109. package/src/avatar-group/index.ts +2 -0
  110. package/src/avatar-group/index.web.tsx +2 -0
  111. package/src/avatar-group/types.ts +64 -0
  112. package/src/index.ts +4 -0
  113. package/src/index.web.ts +4 -0
  114. package/src/theme/color-scope/index.web.tsx +6 -7
  115. package/src/theme/color-scope/style-builder.ts +19 -7
  116. package/src/user-hover-card/UserHoverCard.stories.tsx +113 -0
  117. package/src/user-hover-card/UserHoverCard.tsx +204 -0
  118. package/src/user-hover-card/index.ts +2 -0
  119. package/src/user-hover-card/types.ts +38 -0
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useMemo } from 'react';
4
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
5
+ import { Avatar } from "../avatar/index.js";
6
+ import { useTheme } from "../theme/use-theme.js";
7
+ import { fontSize } from "../styles/tokens.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ /** Ring thickness as a fraction of avatar size. */
10
+ const RING_RATIO = 0.08;
11
+ /** Minimum ring thickness so small avatars still separate cleanly. */
12
+ const MIN_RING = 2;
13
+ /** Default horizontal overlap as a fraction of avatar size. */
14
+ const DEFAULT_OVERLAP_RATIO = 0.35;
15
+ function getItemName(item) {
16
+ return item.displayName ?? item.name ?? item.username;
17
+ }
18
+ function getItemKey(item, index) {
19
+ return item.id ?? item.username ?? item.uri ?? `avatar-${index}`;
20
+ }
21
+
22
+ /** Hover callbacks injected by the web fork; undefined (no-op) on native. */
23
+
24
+ const AvatarGroupBaseComponent = ({
25
+ items,
26
+ size = 32,
27
+ max = 5,
28
+ total,
29
+ overlap,
30
+ ringColor,
31
+ onPressItem,
32
+ style,
33
+ testID,
34
+ hoverHandlers
35
+ }) => {
36
+ const theme = useTheme();
37
+ const ring = ringColor ?? theme.colors.card;
38
+ const ringWidth = Math.max(MIN_RING, Math.round(size * RING_RATIO));
39
+ const effectiveOverlap = overlap ?? Math.round(size * DEFAULT_OVERLAP_RATIO);
40
+ // Each avatar after the first is pulled left by `overlap`, but the ring adds
41
+ // visual width on both sides, so the negative margin accounts for the ring.
42
+ const negativeMargin = -(effectiveOverlap + ringWidth);
43
+ const shown = useMemo(() => items.slice(0, Math.max(0, max)), [items, max]);
44
+ const realTotal = total ?? items.length;
45
+ const overflow = Math.max(0, realTotal - shown.length);
46
+ const cellStyle = useMemo(() => {
47
+ return {
48
+ width: size + ringWidth * 2,
49
+ height: size + ringWidth * 2,
50
+ borderRadius: (size + ringWidth * 2) / 2,
51
+ backgroundColor: ring,
52
+ alignItems: 'center',
53
+ justifyContent: 'center'
54
+ };
55
+ }, [size, ringWidth, ring]);
56
+ const overflowTextStyle = useMemo(() => ({
57
+ color: theme.colors.textSecondary,
58
+ fontSize: Math.max(fontSize._2xs, Math.round(size * 0.4)),
59
+ fontWeight: '600'
60
+ }), [theme.colors.textSecondary, size]);
61
+ const interactive = typeof onPressItem === 'function';
62
+ const hoverable = typeof hoverHandlers?.onHoverIn === 'function' || typeof hoverHandlers?.onHoverOut === 'function';
63
+
64
+ // Pressing the "+N" chip surfaces the first hidden member (if any), so
65
+ // consumers can route it to a full member list.
66
+ const firstHidden = items[shown.length];
67
+ const overflowOnPress = interactive && firstHidden ? () => onPressItem?.(firstHidden, shown.length) : undefined;
68
+ return /*#__PURE__*/_jsxs(View, {
69
+ style: [styles.row, style],
70
+ testID: testID,
71
+ children: [shown.map((item, index) => {
72
+ const name = getItemName(item);
73
+ const accessibilityLabel = item.username ? `${name ?? item.username} (@${item.username})` : name;
74
+
75
+ // The negative margin and stacking order live on the outermost
76
+ // row element so layout and hit-testing stay aligned with the visual
77
+ // overlap. Earlier siblings render on top of later ones.
78
+ const wrapperStyle = {
79
+ ...(index > 0 && {
80
+ marginLeft: negativeMargin
81
+ }),
82
+ zIndex: shown.length - index
83
+ };
84
+ const cell = /*#__PURE__*/_jsx(View, {
85
+ ref: hoverHandlers?.registerCellRef ? node => hoverHandlers.registerCellRef?.(index, node) : undefined,
86
+ collapsable: false,
87
+ style: cellStyle,
88
+ children: /*#__PURE__*/_jsx(Avatar, {
89
+ uri: item.uri ?? undefined,
90
+ name: name,
91
+ size: size
92
+ })
93
+ });
94
+ if (interactive || hoverable) {
95
+ return /*#__PURE__*/_jsx(Pressable, {
96
+ onPress: interactive ? () => onPressItem?.(item, index) : undefined,
97
+ onHoverIn: hoverHandlers?.onHoverIn ? () => hoverHandlers.onHoverIn?.(item, index) : undefined,
98
+ onHoverOut: hoverHandlers?.onHoverOut ? () => hoverHandlers.onHoverOut?.(item, index) : undefined,
99
+ accessibilityRole: interactive ? 'button' : undefined,
100
+ accessibilityLabel: accessibilityLabel,
101
+ style: wrapperStyle,
102
+ children: cell
103
+ }, getItemKey(item, index));
104
+ }
105
+ return /*#__PURE__*/_jsx(View, {
106
+ style: wrapperStyle,
107
+ children: cell
108
+ }, getItemKey(item, index));
109
+ }), overflow > 0 && /*#__PURE__*/_jsx(OverflowChip, {
110
+ count: overflow,
111
+ cellStyle: cellStyle,
112
+ negativeMargin: shown.length > 0 ? negativeMargin : 0,
113
+ textStyle: overflowTextStyle,
114
+ onPress: overflowOnPress
115
+ })]
116
+ });
117
+ };
118
+ function OverflowChip({
119
+ count,
120
+ cellStyle,
121
+ negativeMargin,
122
+ textStyle,
123
+ onPress
124
+ }) {
125
+ const theme = useTheme();
126
+ // The chip is anchored at the lowest stacking order so it tucks behind the
127
+ // last avatar's ring. The margin lives on the outer element to keep layout
128
+ // aligned with the overlap.
129
+ const wrapperStyle = {
130
+ ...(negativeMargin !== 0 && {
131
+ marginLeft: negativeMargin
132
+ }),
133
+ zIndex: 0
134
+ };
135
+ const chip = /*#__PURE__*/_jsx(View, {
136
+ style: [cellStyle, {
137
+ backgroundColor: theme.colors.card
138
+ }],
139
+ children: /*#__PURE__*/_jsx(View, {
140
+ style: [styles.chipInner, {
141
+ backgroundColor: theme.colors.backgroundTertiary
142
+ }],
143
+ children: /*#__PURE__*/_jsxs(Text, {
144
+ allowFontScaling: false,
145
+ style: textStyle,
146
+ children: ["+", count]
147
+ })
148
+ })
149
+ });
150
+ if (onPress) {
151
+ return /*#__PURE__*/_jsx(Pressable, {
152
+ onPress: onPress,
153
+ accessibilityRole: "button",
154
+ accessibilityLabel: `${count} more`,
155
+ style: wrapperStyle,
156
+ children: chip
157
+ });
158
+ }
159
+ return /*#__PURE__*/_jsx(View, {
160
+ style: wrapperStyle,
161
+ children: chip
162
+ });
163
+ }
164
+ const styles = StyleSheet.create({
165
+ row: {
166
+ flexDirection: 'row',
167
+ alignItems: 'center'
168
+ },
169
+ chipInner: {
170
+ width: '100%',
171
+ height: '100%',
172
+ borderRadius: 999,
173
+ alignItems: 'center',
174
+ justifyContent: 'center'
175
+ }
176
+ });
177
+ export const AvatarGroupBase = /*#__PURE__*/memo(AvatarGroupBaseComponent);
178
+ AvatarGroupBase.displayName = 'AvatarGroupBase';
179
+ //# sourceMappingURL=AvatarGroupBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useMemo","Pressable","StyleSheet","Text","View","Avatar","useTheme","fontSize","jsx","_jsx","jsxs","_jsxs","RING_RATIO","MIN_RING","DEFAULT_OVERLAP_RATIO","getItemName","item","displayName","name","username","getItemKey","index","id","uri","AvatarGroupBaseComponent","items","size","max","total","overlap","ringColor","onPressItem","style","testID","hoverHandlers","theme","ring","colors","card","ringWidth","Math","round","effectiveOverlap","negativeMargin","shown","slice","realTotal","length","overflow","cellStyle","width","height","borderRadius","backgroundColor","alignItems","justifyContent","overflowTextStyle","color","textSecondary","_2xs","fontWeight","interactive","hoverable","onHoverIn","onHoverOut","firstHidden","overflowOnPress","undefined","styles","row","children","map","accessibilityLabel","wrapperStyle","marginLeft","zIndex","cell","ref","registerCellRef","node","collapsable","onPress","accessibilityRole","OverflowChip","count","textStyle","chip","chipInner","backgroundTertiary","allowFontScaling","create","flexDirection","AvatarGroupBase"],"sourceRoot":"../../../src","sources":["avatar-group/AvatarGroupBase.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { AvatarGroup } from './AvatarGroup';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AvatarGroup"],"sourceRoot":"../../../src","sources":["avatar-group/index.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,eAAe","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { AvatarGroup } from "./AvatarGroup.web.js";
4
+ //# sourceMappingURL=index.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AvatarGroup"],"sourceRoot":"../../../src","sources":["avatar-group/index.web.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,sBAAmB","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":["avatar-group/types.ts"],"mappings":"","ignoreList":[]}
@@ -27,6 +27,8 @@ export * from "./radio-indicator/index.js";
27
27
  export * from "./collapsible/index.js";
28
28
  export { ErrorBoundary } from "./error-boundary/index.js";
29
29
  export * from "./avatar/index.js";
30
+ export { AvatarGroup } from "./avatar-group/index.js";
31
+ export { UserHoverCard } from "./user-hover-card/index.js";
30
32
  export * from './loading';
31
33
  export * as PromptInput from "./prompt-input/index.js";
32
34
  export * from "./switch/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","useInteractionState","useDelayedLoading","useThrottledValue","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","ErrorBoundary","PromptInput","toast","Typography","Skeleton","Grid","Fill","IconCircle","TextField","SegmentedControl","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","Tabs","Accordion","Item","Kbd","Admonition","Menu","Tooltip","Select","ContextMenu","Popover","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,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;;AAE7D;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,UAAU;AACxB,SACEC,MAAM,EACNC,cAAc,EACdC,+BAA+B,EAC/BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,UAAU;AAWjB,cAAc,mBAAU;AACxB,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,cAAc,WAAW;AACzB,OAAO,KAAKC,WAAW,MAAM,yBAAgB;AAC7C,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,UAAU,QAAQ,wBAAe;;AAE1C;AACA,OAAO,KAAKC,SAAS,MAAM,uBAAc;AACzC,OAAO,KAAKC,gBAAgB,MAAM,8BAAqB;AACvD,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,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,cAAc,qBAAY;AAC1B,OAAO,KAAKC,SAAS,MAAM,sBAAa;;AAExC;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,WAAW,MAAM,gBAAgB;AAC7C,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,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":[]}
1
+ {"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","useInteractionState","useDelayedLoading","useThrottledValue","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","ErrorBoundary","AvatarGroup","UserHoverCard","PromptInput","toast","Typography","Skeleton","Grid","Fill","IconCircle","TextField","SegmentedControl","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","Tabs","Accordion","Item","Kbd","Admonition","Menu","Tooltip","Select","ContextMenu","Popover","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,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;;AAE7D;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,UAAU;AACxB,SACEC,MAAM,EACNC,cAAc,EACdC,+BAA+B,EAC/BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,UAAU;AAWjB,cAAc,mBAAU;AACxB,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,OAAO,KAAKC,WAAW,MAAM,yBAAgB;AAC7C,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,UAAU,QAAQ,wBAAe;;AAE1C;AACA,OAAO,KAAKC,SAAS,MAAM,uBAAc;AACzC,OAAO,KAAKC,gBAAgB,MAAM,8BAAqB;AACvD,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,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,cAAc,qBAAY;AAC1B,OAAO,KAAKC,SAAS,MAAM,sBAAa;;AAExC;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,WAAW,MAAM,gBAAgB;AAC7C,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,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":[]}
@@ -32,6 +32,8 @@ export * from "./radio-indicator/index.js";
32
32
  export * from "./collapsible/index.js";
33
33
  export { ErrorBoundary } from "./error-boundary/index.js";
34
34
  export * from "./avatar/index.js";
35
+ export { AvatarGroup } from "./avatar-group/index.web.js";
36
+ export { UserHoverCard } from "./user-hover-card/index.js";
35
37
  export * from "./loading/index.web.js";
36
38
  export * as PromptInput from "./prompt-input/index.js";
37
39
  export * from "./switch/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","useInteractionState","useDelayedLoading","useThrottledValue","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","ErrorBoundary","PromptInput","toast","Typography","Skeleton","Grid","Fill","IconCircle","TextField","SegmentedControl","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","Tabs","Accordion","Item","Kbd","Admonition","Menu","Tooltip","Select","ContextMenu","Popover","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA;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,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;;AAE7D;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,uBAAoB;AAClC,SACEC,MAAM,EACNC,cAAc,EACdC,+BAA+B,EAC/BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,uBAAoB;AAW3B,cAAc,mBAAU;AACxB,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,cAAc,wBAAqB;AACnC,OAAO,KAAKC,WAAW,MAAM,yBAAgB;AAC7C,cAAc,mBAAU;AACxB,SAASC,KAAK,QAAoB,sBAAmB;;AAErD;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,UAAU,QAAQ,wBAAe;;AAE1C;AACA,OAAO,KAAKC,SAAS,MAAM,uBAAc;AACzC,OAAO,KAAKC,gBAAgB,MAAM,8BAAqB;AACvD,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,yBAAsB;AAG/C;AACA,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,iBAAQ;AACtB,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,cAAc,qBAAY;AAC1B,OAAO,KAAKC,SAAS,MAAM,sBAAa;;AAExC;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,qBAAkB;AACxC,OAAO,KAAKC,OAAO,MAAM,wBAAqB;AAC9C,OAAO,KAAKC,MAAM,MAAM,uBAAoB;AAC5C,OAAO,KAAKC,WAAW,MAAM,6BAA0B;AACvD,OAAO,KAAKC,OAAO,MAAM,wBAAqB;AAC9C,SAASC,WAAW,EAAEC,eAAe,EAAEC,OAAO,QAAQ,6BAA0B;AAMhF,SAASC,OAAO,QAAQ,wBAAqB;AAG7C;AACA,OAAO,KAAKC,IAAI,MAAM,iBAAQ;;AAE9B;AACA,OAAO,KAAKC,KAAK,MAAM,sBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","useInteractionState","useDelayedLoading","useThrottledValue","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","ErrorBoundary","AvatarGroup","UserHoverCard","PromptInput","toast","Typography","Skeleton","Grid","Fill","IconCircle","TextField","SegmentedControl","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","Tabs","Accordion","Item","Kbd","Admonition","Menu","Tooltip","Select","ContextMenu","Popover","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA;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,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;;AAE7D;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,uBAAoB;AAClC,SACEC,MAAM,EACNC,cAAc,EACdC,+BAA+B,EAC/BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,uBAAoB;AAW3B,cAAc,mBAAU;AACxB,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,SAASC,WAAW,QAAQ,6BAA0B;AAEtD,SAASC,aAAa,QAAQ,4BAAmB;AAEjD,cAAc,wBAAqB;AACnC,OAAO,KAAKC,WAAW,MAAM,yBAAgB;AAC7C,cAAc,mBAAU;AACxB,SAASC,KAAK,QAAoB,sBAAmB;;AAErD;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,UAAU,QAAQ,wBAAe;;AAE1C;AACA,OAAO,KAAKC,SAAS,MAAM,uBAAc;AACzC,OAAO,KAAKC,gBAAgB,MAAM,8BAAqB;AACvD,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,yBAAsB;AAG/C;AACA,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,iBAAQ;AACtB,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,cAAc,qBAAY;AAC1B,OAAO,KAAKC,SAAS,MAAM,sBAAa;;AAExC;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,qBAAkB;AACxC,OAAO,KAAKC,OAAO,MAAM,wBAAqB;AAC9C,OAAO,KAAKC,MAAM,MAAM,uBAAoB;AAC5C,OAAO,KAAKC,WAAW,MAAM,6BAA0B;AACvD,OAAO,KAAKC,OAAO,MAAM,wBAAqB;AAC9C,SAASC,WAAW,EAAEC,eAAe,EAAEC,OAAO,QAAQ,6BAA0B;AAMhF,SAASC,OAAO,QAAQ,wBAAqB;AAG7C;AACA,OAAO,KAAKC,IAAI,MAAM,iBAAQ;;AAE9B;AACA,OAAO,KAAKC,KAAK,MAAM,sBAAmB","ignoreList":[]}
@@ -3,18 +3,17 @@
3
3
  import React, { Children, cloneElement, isValidElement, useContext, useMemo } from 'react';
4
4
  import { BloomThemeContext } from "../BloomThemeProvider.js";
5
5
  import { buildTheme } from "../build-theme.js";
6
- import { getResolvedTokens } from "../token-registry.js";
6
+ import { buildScopeVars } from "./style-builder.js";
7
7
 
8
8
  /**
9
- * `getResolvedTokens` returns every canonical token already resolved to an sRGB
10
- * `rgb(...)` string the SAME pipeline the document-root web writer and the
11
- * native writer use. Scoped onto an element's inline `style`, Tailwind v4's
12
- * compiled utilities read these as `var(--x)` directly, so each base token is a
13
- * full CSS color with no per-value wrapping needed.
9
+ * `buildScopeVars` returns every canonical token already resolved to an sRGB
10
+ * `rgb(...)` string, plus the `--color-*` aliases consumed by Tailwind v4
11
+ * utilities. Scoped onto an element's inline `style`, profile-level NativeWind
12
+ * classes resolve against the subtree preset instead of the document root.
14
13
  */
15
14
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
16
15
  function buildWebScopeVars(colorPreset, mode) {
17
- return getResolvedTokens(colorPreset, mode);
16
+ return buildScopeVars(colorPreset, mode);
18
17
  }
19
18
 
20
19
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["React","Children","cloneElement","isValidElement","useContext","useMemo","BloomThemeContext","buildTheme","getResolvedTokens","Fragment","_Fragment","jsx","_jsx","buildWebScopeVars","colorPreset","mode","BloomColorScope","asChild","style","children","parent","Error","resolvedMode","theme","contextValue","varsStyle","content","child","only","childStyle","props","mergedStyle","Provider","value","useColorScopeStyle"],"sourceRoot":"../../../../src","sources":["theme/color-scope/index.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Children","cloneElement","isValidElement","useContext","useMemo","BloomThemeContext","buildTheme","buildScopeVars","Fragment","_Fragment","jsx","_jsx","buildWebScopeVars","colorPreset","mode","BloomColorScope","asChild","style","children","parent","Error","resolvedMode","theme","contextValue","varsStyle","content","child","only","childStyle","props","mergedStyle","Provider","value","useColorScopeStyle"],"sourceRoot":"../../../../src","sources":["theme/color-scope/index.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { Platform } from 'react-native';
4
- import { getResolvedTokens } from "../token-registry.js";
4
+ import { CANONICAL_TOKENS, getResolvedTokens } from "../token-registry.js";
5
5
  import { lazyRequire } from "../../utils/lazy-require.js";
6
6
 
7
7
  /**
@@ -15,14 +15,26 @@ const getNativeWindVars = lazyRequire('nativewind');
15
15
 
16
16
  /**
17
17
  * Build the CSS custom-property map for a preset, ready to be applied to a
18
- * subtree. Every token is resolved to an sRGB `rgb(...)` string via
19
- * `getResolvedTokens` — the single canonical token pipeline shared by web and
20
- * native — so Tailwind v4 `@theme` utilities (e.g. `bg-background`) and
21
- * `color-mix`-based alpha utilities (`bg-primary/10`) both resolve against the
22
- * same color values. Keys retain the leading `--`.
18
+ * subtree. Every canonical `--x` token is resolved to an sRGB `rgb(...)` string
19
+ * via `getResolvedTokens` — the single token pipeline shared by web and native.
20
+ *
21
+ * The returned map also includes Tailwind v4 `--color-x` aliases generated from
22
+ * those same canonical values. Scoped aliases are required on web because
23
+ * inherited custom properties like `--color-primary: var(--primary)` compute at
24
+ * the document root and would otherwise keep pointing at the app-wide preset.
23
25
  */
24
26
  export function buildScopeVars(colorPreset, mode) {
25
- return getResolvedTokens(colorPreset, mode);
27
+ const tokens = getResolvedTokens(colorPreset, mode);
28
+ const vars = {
29
+ ...tokens
30
+ };
31
+ for (const token of CANONICAL_TOKENS) {
32
+ const value = tokens[`--${token}`];
33
+ if (value !== undefined) {
34
+ vars[`--color-${token}`] = value;
35
+ }
36
+ }
37
+ return vars;
26
38
  }
27
39
 
28
40
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","getResolvedTokens","lazyRequire","getNativeWindVars","buildScopeVars","colorPreset","mode","getVariableContextProvider","OS","module","VariableContextProvider","buildNativePresetStyle","undefined","vars"],"sourceRoot":"../../../../src","sources":["theme/color-scope/style-builder.ts"],"mappings":";;AACA,SAASA,QAAQ,QAAwC,cAAc;AAEvE,SAASC,iBAAiB,QAAQ,sBAAmB;AAErD,SAASC,WAAW,QAAQ,6BAA0B;;AAEtD;AACA;AACA;AACA;AACA;AACA;;AAWA,MAAMC,iBAAiB,GAAGD,WAAW,CAAuB,YAAY,CAAC;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,cAAcA,CAC5BC,WAAyB,EACzBC,IAAsB,EACE;EACxB,OAAOL,iBAAiB,CAACI,WAAW,EAAEC,IAAI,CAAC;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAAA,EAA4C;EACpF,IAAIP,QAAQ,CAACQ,EAAE,KAAK,KAAK,EAAE,OAAO,IAAI;EACtC,MAAMC,MAAM,GAAGN,iBAAiB,CAAC,CAAC;EAClC,IAAI,CAACM,MAAM,IAAI,OAAOA,MAAM,CAACC,uBAAuB,KAAK,UAAU,EAAE,OAAO,IAAI;EAChF,OAAOD,MAAM,CAACC,uBAAuB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCN,WAAyB,EACzBC,IAAsB,EACA;EACtB,IAAIN,QAAQ,CAACQ,EAAE,KAAK,KAAK,EAAE,OAAOI,SAAS;EAC3C,MAAMH,MAAM,GAAGN,iBAAiB,CAAC,CAAC;EAClC,IAAI,CAACM,MAAM,IAAI,OAAOA,MAAM,CAACI,IAAI,KAAK,UAAU,EAAE,OAAOD,SAAS;EAClE,OAAOH,MAAM,CAACI,IAAI,CAACT,cAAc,CAACC,WAAW,EAAEC,IAAI,CAAC,CAAC;AACvD","ignoreList":[]}
1
+ {"version":3,"names":["Platform","CANONICAL_TOKENS","getResolvedTokens","lazyRequire","getNativeWindVars","buildScopeVars","colorPreset","mode","tokens","vars","token","value","undefined","getVariableContextProvider","OS","module","VariableContextProvider","buildNativePresetStyle"],"sourceRoot":"../../../../src","sources":["theme/color-scope/style-builder.ts"],"mappings":";;AACA,SAASA,QAAQ,QAAwC,cAAc;AAEvE,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,sBAAmB;AAEvE,SAASC,WAAW,QAAQ,6BAA0B;;AAEtD;AACA;AACA;AACA;AACA;AACA;;AAWA,MAAMC,iBAAiB,GAAGD,WAAW,CAAuB,YAAY,CAAC;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,cAAcA,CAC5BC,WAAyB,EACzBC,IAAsB,EACE;EACxB,MAAMC,MAAM,GAAGN,iBAAiB,CAACI,WAAW,EAAEC,IAAI,CAAC;EACnD,MAAME,IAA4B,GAAG;IAAE,GAAGD;EAAO,CAAC;EAElD,KAAK,MAAME,KAAK,IAAIT,gBAAgB,EAAE;IACpC,MAAMU,KAAK,GAAGH,MAAM,CAAC,KAAKE,KAAK,EAAE,CAAC;IAClC,IAAIC,KAAK,KAAKC,SAAS,EAAE;MACvBH,IAAI,CAAC,WAAWC,KAAK,EAAE,CAAC,GAAGC,KAAK;IAClC;EACF;EAEA,OAAOF,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,0BAA0BA,CAAA,EAA4C;EACpF,IAAIb,QAAQ,CAACc,EAAE,KAAK,KAAK,EAAE,OAAO,IAAI;EACtC,MAAMC,MAAM,GAAGX,iBAAiB,CAAC,CAAC;EAClC,IAAI,CAACW,MAAM,IAAI,OAAOA,MAAM,CAACC,uBAAuB,KAAK,UAAU,EAAE,OAAO,IAAI;EAChF,OAAOD,MAAM,CAACC,uBAAuB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCX,WAAyB,EACzBC,IAAsB,EACA;EACtB,IAAIP,QAAQ,CAACc,EAAE,KAAK,KAAK,EAAE,OAAOF,SAAS;EAC3C,MAAMG,MAAM,GAAGX,iBAAiB,CAAC,CAAC;EAClC,IAAI,CAACW,MAAM,IAAI,OAAOA,MAAM,CAACN,IAAI,KAAK,UAAU,EAAE,OAAOG,SAAS;EAClE,OAAOG,MAAM,CAACN,IAAI,CAACJ,cAAc,CAACC,WAAW,EAAEC,IAAI,CAAC,CAAC;AACvD","ignoreList":[]}
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useMemo } from 'react';
4
+ import { Platform, Pressable, StyleSheet, Text, View } from 'react-native';
5
+ import { Avatar } from "../avatar/index.js";
6
+ import { VerifiedCheck } from "../icons/VerifiedCheck.js";
7
+ import { useTheme } from "../theme/use-theme.js";
8
+ import { borderRadius, fontSize, space } from "../styles/tokens.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const AVATAR_SIZE = 48;
11
+ const VERIFIED_SIZE = 16;
12
+ const UserHoverCardComponent = ({
13
+ avatar,
14
+ displayName,
15
+ username,
16
+ bio,
17
+ stats,
18
+ verified = false,
19
+ onPressProfile,
20
+ action,
21
+ style,
22
+ testID
23
+ }) => {
24
+ const theme = useTheme();
25
+ const cardStyle = useMemo(() => {
26
+ const base = {
27
+ backgroundColor: theme.colors.card,
28
+ borderRadius: borderRadius.lg,
29
+ borderWidth: StyleSheet.hairlineWidth,
30
+ borderColor: theme.colors.border,
31
+ padding: space.lg,
32
+ width: 280
33
+ };
34
+ if (Platform.OS === 'web') {
35
+ base.boxShadow = `0px 8px 24px ${theme.colors.shadow}`;
36
+ } else {
37
+ base.shadowColor = theme.colors.shadow;
38
+ base.shadowOffset = {
39
+ width: 0,
40
+ height: 8
41
+ };
42
+ base.shadowOpacity = 0.18;
43
+ base.shadowRadius = 16;
44
+ base.elevation = 8;
45
+ }
46
+ return base;
47
+ }, [theme]);
48
+ const identity = /*#__PURE__*/_jsxs(View, {
49
+ style: styles.identityRow,
50
+ children: [/*#__PURE__*/_jsx(Avatar, {
51
+ uri: avatar ?? undefined,
52
+ name: displayName,
53
+ size: AVATAR_SIZE
54
+ }), /*#__PURE__*/_jsxs(View, {
55
+ style: styles.identityText,
56
+ children: [/*#__PURE__*/_jsxs(View, {
57
+ style: styles.nameRow,
58
+ children: [/*#__PURE__*/_jsx(Text, {
59
+ numberOfLines: 1,
60
+ style: [styles.displayName, {
61
+ color: theme.colors.text
62
+ }],
63
+ children: displayName
64
+ }), verified && /*#__PURE__*/_jsx(VerifiedCheck, {
65
+ size: "sm",
66
+ fill: theme.colors.primary,
67
+ width: VERIFIED_SIZE,
68
+ height: VERIFIED_SIZE,
69
+ style: styles.verifiedBadge
70
+ })]
71
+ }), username ? /*#__PURE__*/_jsxs(Text, {
72
+ numberOfLines: 1,
73
+ style: [styles.username, {
74
+ color: theme.colors.textSecondary
75
+ }],
76
+ children: ["@", username]
77
+ }) : null]
78
+ })]
79
+ });
80
+ return /*#__PURE__*/_jsxs(View, {
81
+ style: [cardStyle, style],
82
+ testID: testID,
83
+ children: [/*#__PURE__*/_jsxs(View, {
84
+ style: styles.header,
85
+ children: [onPressProfile ? /*#__PURE__*/_jsx(Pressable, {
86
+ onPress: onPressProfile,
87
+ accessibilityRole: "button",
88
+ accessibilityLabel: username ? `${displayName} (@${username})` : displayName,
89
+ style: styles.identityPressable,
90
+ children: identity
91
+ }) : /*#__PURE__*/_jsx(View, {
92
+ style: styles.identityPressable,
93
+ children: identity
94
+ }), action != null ? /*#__PURE__*/_jsx(View, {
95
+ style: styles.action,
96
+ children: action
97
+ }) : null]
98
+ }), bio ? /*#__PURE__*/_jsx(Text, {
99
+ numberOfLines: 3,
100
+ style: [styles.bio, {
101
+ color: theme.colors.text
102
+ }],
103
+ children: bio
104
+ }) : null, stats && stats.length > 0 ? /*#__PURE__*/_jsx(View, {
105
+ style: styles.statsRow,
106
+ children: stats.map(stat => /*#__PURE__*/_jsxs(View, {
107
+ style: styles.stat,
108
+ children: [/*#__PURE__*/_jsx(Text, {
109
+ style: [styles.statValue, {
110
+ color: theme.colors.text
111
+ }],
112
+ children: stat.value
113
+ }), /*#__PURE__*/_jsx(Text, {
114
+ style: [styles.statLabel, {
115
+ color: theme.colors.textSecondary
116
+ }],
117
+ children: stat.label
118
+ })]
119
+ }, stat.label))
120
+ }) : null]
121
+ });
122
+ };
123
+ const styles = StyleSheet.create({
124
+ header: {
125
+ flexDirection: 'row',
126
+ alignItems: 'flex-start',
127
+ justifyContent: 'space-between',
128
+ gap: space.sm
129
+ },
130
+ identityPressable: {
131
+ flexShrink: 1,
132
+ flexGrow: 1
133
+ },
134
+ identityRow: {
135
+ flexDirection: 'row',
136
+ alignItems: 'center',
137
+ gap: space.sm
138
+ },
139
+ identityText: {
140
+ flexShrink: 1,
141
+ flexGrow: 1
142
+ },
143
+ nameRow: {
144
+ flexDirection: 'row',
145
+ alignItems: 'center',
146
+ gap: space.xs
147
+ },
148
+ displayName: {
149
+ fontSize: fontSize.lg,
150
+ fontWeight: '700',
151
+ flexShrink: 1
152
+ },
153
+ verifiedBadge: {
154
+ flexShrink: 0
155
+ },
156
+ username: {
157
+ fontSize: fontSize.sm,
158
+ marginTop: space._2xs
159
+ },
160
+ action: {
161
+ flexShrink: 0
162
+ },
163
+ bio: {
164
+ fontSize: fontSize.sm,
165
+ lineHeight: fontSize.sm * 1.4,
166
+ marginTop: space.md
167
+ },
168
+ statsRow: {
169
+ flexDirection: 'row',
170
+ gap: space.lg,
171
+ marginTop: space.md
172
+ },
173
+ stat: {
174
+ flexDirection: 'row',
175
+ alignItems: 'baseline',
176
+ gap: space.xs
177
+ },
178
+ statValue: {
179
+ fontSize: fontSize.sm,
180
+ fontWeight: '700'
181
+ },
182
+ statLabel: {
183
+ fontSize: fontSize.sm
184
+ }
185
+ });
186
+ export const UserHoverCard = /*#__PURE__*/memo(UserHoverCardComponent);
187
+ UserHoverCard.displayName = 'UserHoverCard';
188
+ //# sourceMappingURL=UserHoverCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useMemo","Platform","Pressable","StyleSheet","Text","View","Avatar","VerifiedCheck","useTheme","borderRadius","fontSize","space","jsx","_jsx","jsxs","_jsxs","AVATAR_SIZE","VERIFIED_SIZE","UserHoverCardComponent","avatar","displayName","username","bio","stats","verified","onPressProfile","action","style","testID","theme","cardStyle","base","backgroundColor","colors","card","lg","borderWidth","hairlineWidth","borderColor","border","padding","width","OS","boxShadow","shadow","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","elevation","identity","styles","identityRow","children","uri","undefined","name","size","identityText","nameRow","numberOfLines","color","text","fill","primary","verifiedBadge","textSecondary","header","onPress","accessibilityRole","accessibilityLabel","identityPressable","length","statsRow","map","stat","statValue","value","statLabel","label","create","flexDirection","alignItems","justifyContent","gap","sm","flexShrink","flexGrow","xs","fontWeight","marginTop","_2xs","lineHeight","md","UserHoverCard"],"sourceRoot":"../../../src","sources":["user-hover-card/UserHoverCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { UserHoverCard } from "./UserHoverCard.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UserHoverCard"],"sourceRoot":"../../../src","sources":["user-hover-card/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,oBAAiB","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":["user-hover-card/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { AvatarGroupProps } from './types';
3
+ export declare const AvatarGroup: React.NamedExoticComponent<AvatarGroupProps>;
4
+ //# sourceMappingURL=AvatarGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarGroup.d.ts","sourceRoot":"","sources":["../../../../src/avatar-group/AvatarGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAchD,eAAO,MAAM,WAAW,8CAA6B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { AvatarGroupProps } from './types';
3
+ export declare const AvatarGroup: React.NamedExoticComponent<AvatarGroupProps>;
4
+ //# sourceMappingURL=AvatarGroup.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarGroup.web.d.ts","sourceRoot":"","sources":["../../../../src/avatar-group/AvatarGroup.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAU5E,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAqIjE,eAAO,MAAM,WAAW,8CAAgC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import type { AvatarGroupItem, AvatarGroupProps } from './types';
4
+ /** Hover callbacks injected by the web fork; undefined (no-op) on native. */
5
+ export interface AvatarGroupCellHoverHandlers {
6
+ onHoverIn?: (item: AvatarGroupItem, index: number) => void;
7
+ onHoverOut?: (item: AvatarGroupItem, index: number) => void;
8
+ /** Sets the measured anchor ref for the hovered cell (web only). */
9
+ registerCellRef?: (index: number, node: View | null) => void;
10
+ }
11
+ interface AvatarGroupBaseProps extends AvatarGroupProps {
12
+ hoverHandlers?: AvatarGroupCellHoverHandlers;
13
+ }
14
+ export declare const AvatarGroupBase: React.NamedExoticComponent<AvatarGroupBaseProps>;
15
+ export {};
16
+ //# sourceMappingURL=AvatarGroupBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarGroupBase.d.ts","sourceRoot":"","sources":["../../../../src/avatar-group/AvatarGroupBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAIL,IAAI,EAEL,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAiBjE,6EAA6E;AAC7E,MAAM,WAAW,4BAA4B;IAC3C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,oEAAoE;IACpE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;CAC9D;AAED,UAAU,oBAAqB,SAAQ,gBAAgB;IACrD,aAAa,CAAC,EAAE,4BAA4B,CAAC;CAC9C;AAgND,eAAO,MAAM,eAAe,kDAAiC,CAAC"}