@box/blueprint-web 18.7.1 → 18.8.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.
@@ -0,0 +1,2 @@
1
+ import { type AvatarGroupProps } from './types';
2
+ export declare const AvatarGroup: import("react").ForwardRefExoticComponent<AvatarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,156 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { bpGray10 } from '@box/blueprint-web-assets/tokens/tokens';
3
+ import clsx from 'clsx';
4
+ import { forwardRef, Children, cloneElement, isValidElement } from 'react';
5
+ import '../../blueprint-configuration-context/blueprint-configuration-context.js';
6
+ import '../../blueprint-configuration-context/consts.js';
7
+ import { useBlueprintConfiguration } from '../../blueprint-configuration-context/useBlueprintConfiguration.js';
8
+ import { Focusable } from '../../focusable/focusable.js';
9
+ import { useTravelTooltip, TravelTooltipBubble } from '../../tooltip/travel-tooltip.js';
10
+ import { composeEventHandlers } from '../../utils/composeEventHandlers.js';
11
+ import { useForkRef } from '../../utils/useForkRef.js';
12
+ import { useUniqueId } from '../../utils/useUniqueId.js';
13
+ import { Avatar } from '../avatar.js';
14
+ import styles from './avatar-group.module.js';
15
+ import { useAvatarGroupHover } from './use-avatar-group-hover.js';
16
+ import { getAvatarGroupVisibility } from './utils.js';
17
+
18
+ const overflowColor = bpGray10;
19
+ function isAvatarElement(child) {
20
+ return /*#__PURE__*/isValidElement(child) && child.type === Avatar;
21
+ }
22
+ const AvatarGroup = /*#__PURE__*/forwardRef((props, forwardedRef) => {
23
+ const {
24
+ children,
25
+ className,
26
+ getTooltipContent,
27
+ max,
28
+ overflowLabel,
29
+ overlap,
30
+ ringColor,
31
+ size,
32
+ style,
33
+ onMouseLeave,
34
+ onPointerLeave,
35
+ onBlur,
36
+ ...rest
37
+ } = props;
38
+ const {
39
+ componentsWithAnimationEnabled
40
+ } = useBlueprintConfiguration();
41
+ const isAnimationEnabled = componentsWithAnimationEnabled.includes('AvatarGroup');
42
+ const {
43
+ groupRef: hoverGroupRef,
44
+ onGroupLeave,
45
+ onItemEnter
46
+ } = useAvatarGroupHover(isAnimationEnabled);
47
+ const {
48
+ activeTrigger,
49
+ groupRef: travelGroupRef,
50
+ hideFocusIfLeavingGroup,
51
+ hidePointerIfLeavingGroup,
52
+ label,
53
+ showForFocus,
54
+ showForPointer,
55
+ textRef,
56
+ tooltipRef
57
+ } = useTravelTooltip();
58
+ const ref = useForkRef(useForkRef(hoverGroupRef, travelGroupRef), forwardedRef);
59
+ const tooltipId = useUniqueId('avatar-group-tooltip');
60
+ const avatars = Children.toArray(children).filter(isAvatarElement);
61
+ const {
62
+ visibleCount,
63
+ overflowCount
64
+ } = getAvatarGroupVisibility(avatars.length, max);
65
+ const visibleAvatars = avatars.slice(0, visibleCount);
66
+ const hasTooltips = Boolean(getTooltipContent || overflowLabel);
67
+ const customProperties = {
68
+ ...(overlap ? {
69
+ '--avatar-group-overlap': overlap
70
+ } : {}),
71
+ ...(ringColor ? {
72
+ '--avatar-group-ring-color': ringColor
73
+ } : {})
74
+ };
75
+ const leaveFromPointer = event => {
76
+ if (hidePointerIfLeavingGroup(event)) {
77
+ onGroupLeave();
78
+ }
79
+ };
80
+ const leaveFromFocus = event => {
81
+ if (hideFocusIfLeavingGroup(event)) {
82
+ onGroupLeave();
83
+ }
84
+ };
85
+ const activateItem = (index, trigger, tooltip, show) => {
86
+ onItemEnter(index);
87
+ if (tooltip) {
88
+ show(trigger, tooltip);
89
+ }
90
+ };
91
+ return jsxs("div", {
92
+ ...rest,
93
+ ref: ref,
94
+ className: clsx(styles.avatarGroup, className),
95
+ "data-bp-animated": isAnimationEnabled ? 'true' : 'false',
96
+ onBlur: composeEventHandlers(onBlur, leaveFromFocus),
97
+ onMouseLeave: onMouseLeave,
98
+ onPointerLeave: composeEventHandlers(onPointerLeave, leaveFromPointer),
99
+ role: "group",
100
+ style: overlap || ringColor || style ? {
101
+ ...customProperties,
102
+ ...style
103
+ } : undefined,
104
+ children: [visibleAvatars.map((child, index) => {
105
+ const tooltip = getTooltipContent?.(child.props.text, index);
106
+ return jsx(Focusable, {
107
+ "aria-describedby": tooltip ? tooltipId : undefined,
108
+ focusable: Boolean(tooltip),
109
+ // eslint-disable-next-line react/jsx-no-bind
110
+ onFocusVisible: event => activateItem(index, event.currentTarget, tooltip, showForFocus),
111
+ // eslint-disable-next-line react/jsx-no-bind
112
+ onPointerEnter: event => activateItem(index, event.currentTarget, tooltip, showForPointer),
113
+ children: jsx("div", {
114
+ className: styles.item,
115
+ "data-avatar-group-item": "",
116
+ children: jsx("div", {
117
+ className: styles.itemMotion,
118
+ children: size ? /*#__PURE__*/cloneElement(child, {
119
+ size
120
+ }) : child
121
+ })
122
+ })
123
+ }, child.key ?? index);
124
+ }), overflowCount > 0 && jsx(Focusable, {
125
+ "aria-describedby": overflowLabel ? tooltipId : undefined,
126
+ "aria-label": overflowLabel,
127
+ focusable: Boolean(overflowLabel),
128
+ // eslint-disable-next-line react/jsx-no-bind
129
+ onFocusVisible: event => activateItem(visibleAvatars.length, event.currentTarget, overflowLabel, showForFocus),
130
+ // eslint-disable-next-line react/jsx-no-bind
131
+ onPointerEnter: event => activateItem(visibleAvatars.length, event.currentTarget, overflowLabel, showForPointer),
132
+ children: jsx("div", {
133
+ className: styles.item,
134
+ "data-avatar-group-item": "",
135
+ children: jsx("div", {
136
+ className: styles.itemMotion,
137
+ children: jsx(Avatar, {
138
+ color: overflowColor,
139
+ size: size,
140
+ text: `+${overflowCount}`
141
+ })
142
+ })
143
+ })
144
+ }), hasTooltips ? jsx(TravelTooltipBubble, {
145
+ animated: isAnimationEnabled,
146
+ id: tooltipId,
147
+ label: label,
148
+ show: Boolean(activeTrigger),
149
+ textRef: textRef,
150
+ tooltipRef: tooltipRef
151
+ }) : null]
152
+ });
153
+ });
154
+ AvatarGroup.displayName = 'AvatarGroup';
155
+
156
+ export { AvatarGroup };
@@ -0,0 +1,4 @@
1
+ import '../../index.css';
2
+ var styles = {"avatarGroup":"bp_avatar_group_module_avatarGroup--c775b","item":"bp_avatar_group_module_item--c775b","itemMotion":"bp_avatar_group_module_itemMotion--c775b"};
3
+
4
+ export { styles as default };
@@ -0,0 +1,27 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ import { type AvatarSize } from '../types';
3
+ export interface AvatarGroupProps extends Omit<ComponentPropsWithoutRef<'div'>, 'role'> {
4
+ /**
5
+ * Avatar children to display. Compose with `<Avatar>` nodes — the group clones
6
+ * them to apply `size` and the overlap/ring treatment.
7
+ */
8
+ children?: ReactNode;
9
+ /** Maximum number of avatars shown before an overflow `+N` avatar is rendered. */
10
+ max?: number;
11
+ /** Size passed through to each Avatar, including the overflow avatar. */
12
+ size?: AvatarSize;
13
+ /**
14
+ * Overlap distance between adjacent avatars as a CSS length.
15
+ * @default `--bp-space-020` (8px).
16
+ */
17
+ overlap?: string;
18
+ /**
19
+ * Ring colour around each avatar as a CSS color.
20
+ * @default `--bp-gray-white`.
21
+ */
22
+ ringColor?: string;
23
+ /** Accessible label for the overflow avatar. */
24
+ overflowLabel?: string;
25
+ /** Tooltip label for a visible avatar. Omit to skip tooltips. */
26
+ getTooltipContent?(text: string | undefined, index: number): string | undefined;
27
+ }
@@ -0,0 +1,6 @@
1
+ export declare function applyAvatarGroupHover(items: HTMLElement[], activeIndex: number | null): void;
2
+ export declare function useAvatarGroupHover(enabled: boolean): {
3
+ groupRef: import("react").RefObject<HTMLDivElement>;
4
+ onGroupLeave: () => void;
5
+ onItemEnter: (index: number) => void;
6
+ };
@@ -0,0 +1,61 @@
1
+ import { useRef, useCallback } from 'react';
2
+
3
+ // Transitions.dev avatar hover. Lift is negative so the active item rises.
4
+ const LIFT = -4;
5
+ const SCALE = 1.05;
6
+ // TODO(ewang): confirm duration — 200/140 has no --bp-duration-* pair (medium=150, long=300)
7
+ const DUR_IN = '200ms';
8
+ const DUR_OUT = '140ms';
9
+ // TODO(ewang): confirm curve — Transitions.dev 0.22,1,0.36,1 vs --bp-curve-large-on
10
+ const EASE_IN = 'cubic-bezier(0.22, 1, 0.36, 1)';
11
+ // Leave is a plain ease-out — no spring overshoot.
12
+ const EASE_OUT = 'cubic-bezier(0.4, 0, 0.2, 1)';
13
+ function applyAvatarGroupHover(items, activeIndex) {
14
+ const isLeaving = activeIndex === null;
15
+ const ease = isLeaving ? EASE_OUT : EASE_IN;
16
+ const duration = isLeaving ? DUR_OUT : DUR_IN;
17
+ items.forEach(item => {
18
+ item.style.transitionDuration = duration;
19
+ item.style.transitionTimingFunction = ease;
20
+ });
21
+ items.forEach((item, index) => {
22
+ if (activeIndex === null) {
23
+ item.style.setProperty('--shift', '0px');
24
+ item.style.setProperty('--scale-active', '1');
25
+ item.style.zIndex = '';
26
+ return;
27
+ }
28
+ const isActive = index === activeIndex;
29
+ item.style.setProperty('--shift', isActive ? `${LIFT}px` : '0px');
30
+ item.style.setProperty('--scale-active', isActive ? String(SCALE) : '1');
31
+ item.style.zIndex = isActive ? '3' : '';
32
+ });
33
+ }
34
+ function useAvatarGroupHover(enabled) {
35
+ const groupRef = useRef(null);
36
+ const getItems = useCallback(() => {
37
+ if (!groupRef.current) {
38
+ return [];
39
+ }
40
+ return [...groupRef.current.querySelectorAll('[data-avatar-group-item]')];
41
+ }, []);
42
+ const onItemEnter = useCallback(index => {
43
+ if (!enabled) {
44
+ return;
45
+ }
46
+ applyAvatarGroupHover(getItems(), index);
47
+ }, [enabled, getItems]);
48
+ const onGroupLeave = useCallback(() => {
49
+ if (!enabled) {
50
+ return;
51
+ }
52
+ applyAvatarGroupHover(getItems(), null);
53
+ }, [enabled, getItems]);
54
+ return {
55
+ groupRef,
56
+ onGroupLeave,
57
+ onItemEnter
58
+ };
59
+ }
60
+
61
+ export { applyAvatarGroupHover, useAvatarGroupHover };
@@ -0,0 +1,5 @@
1
+ export type AvatarGroupVisibility = {
2
+ visibleCount: number;
3
+ overflowCount: number;
4
+ };
5
+ export declare function getAvatarGroupVisibility(totalCount: number, max?: number): AvatarGroupVisibility;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Splits a group of avatars into the number shown and the leftover overflow count
3
+ * rendered as a `+N` avatar.
4
+ *
5
+ * `max` is the visible count before overflow. When omitted, every avatar is shown.
6
+ */
7
+ function getVisibleCountForMax(totalCount, max) {
8
+ if (max === Number.POSITIVE_INFINITY) {
9
+ return totalCount;
10
+ }
11
+ if (!Number.isFinite(max)) {
12
+ return 0;
13
+ }
14
+ const normalizedMax = Math.max(0, Math.trunc(max));
15
+ return Math.min(totalCount, normalizedMax);
16
+ }
17
+ function getAvatarGroupVisibility(totalCount, max) {
18
+ if (max === undefined) {
19
+ return {
20
+ visibleCount: totalCount,
21
+ overflowCount: 0
22
+ };
23
+ }
24
+ const visibleCount = getVisibleCountForMax(totalCount, max);
25
+ return {
26
+ visibleCount,
27
+ overflowCount: totalCount - visibleCount
28
+ };
29
+ }
30
+
31
+ export { getAvatarGroupVisibility };
@@ -1,4 +1,4 @@
1
1
  import '../index.css';
2
- var styles = {"avatar":"bp_avatar_module_avatar--ed504","text":"bp_avatar_module_text--ed504","xsmall":"bp_avatar_module_xsmall--ed504","length-1":"bp_avatar_module_length-1--ed504","length-2":"bp_avatar_module_length-2--ed504","small":"bp_avatar_module_small--ed504","medium":"bp_avatar_module_medium--ed504","large":"bp_avatar_module_large--ed504","length-3":"bp_avatar_module_length-3--ed504","length-4":"bp_avatar_module_length-4--ed504","xlarge":"bp_avatar_module_xlarge--ed504","xxlarge":"bp_avatar_module_xxlarge--ed504","badge":"bp_avatar_module_badge--ed504","image":"bp_avatar_module_image--ed504","loading":"bp_avatar_module_loading--ed504","anonymousAvatar":"bp_avatar_module_anonymousAvatar--ed504","iconContainer":"bp_avatar_module_iconContainer--ed504"};
2
+ var styles = {"avatar":"bp_avatar_module_avatar--42c50","text":"bp_avatar_module_text--42c50","xsmall":"bp_avatar_module_xsmall--42c50","length-1":"bp_avatar_module_length-1--42c50","length-2":"bp_avatar_module_length-2--42c50","small":"bp_avatar_module_small--42c50","medium":"bp_avatar_module_medium--42c50","large":"bp_avatar_module_large--42c50","length-3":"bp_avatar_module_length-3--42c50","length-4":"bp_avatar_module_length-4--42c50","xlarge":"bp_avatar_module_xlarge--42c50","xxlarge":"bp_avatar_module_xxlarge--42c50","badge":"bp_avatar_module_badge--42c50","image":"bp_avatar_module_image--42c50","loading":"bp_avatar_module_loading--42c50","anonymousAvatar":"bp_avatar_module_anonymousAvatar--42c50","iconContainer":"bp_avatar_module_iconContainer--42c50"};
3
3
 
4
4
  export { styles as default };
@@ -1,2 +1,4 @@
1
1
  export { Avatar } from './avatar';
2
+ export { AvatarGroup } from './avatar-group/avatar-group';
3
+ export { type AvatarGroupProps } from './avatar-group/types';
2
4
  export { type AvatarProps } from './types';
@@ -2160,7 +2160,7 @@
2160
2160
  background-color:initial;
2161
2161
  border:none;
2162
2162
  }
2163
- .bp_avatar_module_avatar--ed504{
2163
+ .bp_avatar_module_avatar--42c50{
2164
2164
  --avatar-line-height:1;
2165
2165
  all:unset;
2166
2166
  align-items:center;
@@ -2178,7 +2178,7 @@
2178
2178
  line-height:var(--bp-font-line-height-04);
2179
2179
  position:relative;
2180
2180
  }
2181
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504{
2181
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50{
2182
2182
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2183
2183
  font-size:.875rem;
2184
2184
  font-style:normal;
@@ -2189,10 +2189,10 @@
2189
2189
  text-transform:none;
2190
2190
  }
2191
2191
 
2192
- .bp_avatar_module_avatar--ed504{
2192
+ .bp_avatar_module_avatar--42c50{
2193
2193
  line-height:var(--avatar-line-height);
2194
2194
  }
2195
- .bp_avatar_module_avatar--ed504 .bp_avatar_module_text--ed504{
2195
+ .bp_avatar_module_avatar--42c50 .bp_avatar_module_text--42c50{
2196
2196
  align-items:center;
2197
2197
  border-radius:50%;
2198
2198
  display:flex;
@@ -2200,14 +2200,14 @@
2200
2200
  justify-content:center;
2201
2201
  width:100%;
2202
2202
  }
2203
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504{
2203
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50{
2204
2204
  height:var(--bp-size-050);
2205
2205
  width:var(--bp-size-050);
2206
2206
  }
2207
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_text--ed504{
2207
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_text--42c50{
2208
2208
  font-size:.375rem;
2209
2209
  }
2210
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2210
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2211
2211
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2212
2212
  font-size:var(--bp-font-size-02);
2213
2213
  font-style:normal;
@@ -2215,7 +2215,7 @@
2215
2215
  letter-spacing:var(--bp-font-letter-spacing-02);
2216
2216
  line-height:var(--bp-font-line-height-03);
2217
2217
  }
2218
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,:where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2218
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,:where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2219
2219
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2220
2220
  font-size:.625rem;
2221
2221
  font-style:normal;
@@ -2226,17 +2226,17 @@
2226
2226
  text-transform:none;
2227
2227
  }
2228
2228
 
2229
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2229
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2230
2230
  line-height:var(--avatar-line-height);
2231
2231
  }
2232
- .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504{
2232
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50{
2233
2233
  height:var(--bp-size-060);
2234
2234
  width:var(--bp-size-060);
2235
2235
  }
2236
- .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_text--ed504{
2236
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_text--42c50{
2237
2237
  font-size:.5rem;
2238
2238
  }
2239
- .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2239
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2240
2240
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2241
2241
  font-size:var(--bp-font-size-02);
2242
2242
  font-style:normal;
@@ -2244,7 +2244,7 @@
2244
2244
  letter-spacing:var(--bp-font-letter-spacing-02);
2245
2245
  line-height:var(--bp-font-line-height-03);
2246
2246
  }
2247
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,:where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2247
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,:where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2248
2248
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2249
2249
  font-size:.625rem;
2250
2250
  font-style:normal;
@@ -2255,14 +2255,14 @@
2255
2255
  text-transform:none;
2256
2256
  }
2257
2257
 
2258
- .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2258
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2259
2259
  line-height:var(--avatar-line-height);
2260
2260
  }
2261
- .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504{
2261
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50{
2262
2262
  height:var(--bp-size-070);
2263
2263
  width:var(--bp-size-070);
2264
2264
  }
2265
- .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_text--ed504{
2265
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_text--42c50{
2266
2266
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2267
2267
  font-size:var(--bp-font-size-02);
2268
2268
  font-style:normal;
@@ -2270,7 +2270,7 @@
2270
2270
  letter-spacing:var(--bp-font-letter-spacing-02);
2271
2271
  line-height:var(--bp-font-line-height-03);
2272
2272
  }
2273
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_text--ed504{
2273
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_text--42c50{
2274
2274
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2275
2275
  font-size:.625rem;
2276
2276
  font-style:normal;
@@ -2281,20 +2281,20 @@
2281
2281
  text-transform:none;
2282
2282
  }
2283
2283
 
2284
- .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_text--ed504{
2284
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_text--42c50{
2285
2285
  line-height:var(--avatar-line-height);
2286
2286
  }
2287
- .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2287
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2288
2288
  font-size:.8125rem;
2289
2289
  }
2290
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504{
2290
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50{
2291
2291
  height:var(--bp-size-080);
2292
2292
  width:var(--bp-size-080);
2293
2293
  }
2294
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_text--ed504{
2294
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_text--42c50{
2295
2295
  font-size:.5rem;
2296
2296
  }
2297
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2297
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2298
2298
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2299
2299
  font-size:var(--bp-font-size-05);
2300
2300
  font-style:normal;
@@ -2302,7 +2302,7 @@
2302
2302
  letter-spacing:var(--bp-font-letter-spacing-01);
2303
2303
  line-height:var(--bp-font-line-height-04);
2304
2304
  }
2305
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,:where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2305
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,:where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2306
2306
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2307
2307
  font-size:.875rem;
2308
2308
  font-style:normal;
@@ -2313,14 +2313,14 @@
2313
2313
  text-transform:none;
2314
2314
  }
2315
2315
 
2316
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2316
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2317
2317
  line-height:var(--avatar-line-height);
2318
2318
  }
2319
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-3--ed504.bp_avatar_module_text--ed504{
2319
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-3--42c50.bp_avatar_module_text--42c50{
2320
2320
  font-size:.6875rem;
2321
2321
  line-height:var(--avatar-line-height);
2322
2322
  }
2323
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-4--ed504.bp_avatar_module_text--ed504{
2323
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-4--42c50.bp_avatar_module_text--42c50{
2324
2324
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2325
2325
  font-size:var(--bp-font-size-02);
2326
2326
  font-style:normal;
@@ -2328,7 +2328,7 @@
2328
2328
  letter-spacing:var(--bp-font-letter-spacing-02);
2329
2329
  line-height:var(--bp-font-line-height-03);
2330
2330
  }
2331
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-4--ed504.bp_avatar_module_text--ed504{
2331
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-4--42c50.bp_avatar_module_text--42c50{
2332
2332
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2333
2333
  font-size:.625rem;
2334
2334
  font-style:normal;
@@ -2339,17 +2339,17 @@
2339
2339
  text-transform:none;
2340
2340
  }
2341
2341
 
2342
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-4--ed504.bp_avatar_module_text--ed504{
2342
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-4--42c50.bp_avatar_module_text--42c50{
2343
2343
  line-height:var(--avatar-line-height);
2344
2344
  }
2345
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504{
2345
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50{
2346
2346
  height:var(--bp-size-110);
2347
2347
  width:var(--bp-size-110);
2348
2348
  }
2349
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_text--ed504{
2349
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_text--42c50{
2350
2350
  font-size:1rem;
2351
2351
  }
2352
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2352
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2353
2353
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2354
2354
  font-size:var(--bp-font-size-10);
2355
2355
  font-style:normal;
@@ -2357,7 +2357,7 @@
2357
2357
  letter-spacing:var(--bp-font-letter-spacing-01);
2358
2358
  line-height:var(--bp-font-line-height-06);
2359
2359
  }
2360
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,:where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2360
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,:where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2361
2361
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2362
2362
  font-size:1.3125rem;
2363
2363
  font-style:normal;
@@ -2368,56 +2368,180 @@
2368
2368
  text-transform:none;
2369
2369
  }
2370
2370
 
2371
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2371
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2372
2372
  line-height:var(--avatar-line-height);
2373
2373
  }
2374
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504{
2374
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50{
2375
2375
  height:var(--bp-size-200);
2376
2376
  line-height:var(--avatar-line-height);
2377
2377
  width:var(--bp-size-200);
2378
2378
  }
2379
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504 .bp_avatar_module_text--ed504{
2379
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50 .bp_avatar_module_text--42c50{
2380
2380
  font-size:1.25rem;
2381
2381
  }
2382
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2382
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2383
2383
  font-size:2rem;
2384
2384
  }
2385
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504 .bp_avatar_module_badge--ed504{
2385
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50 .bp_avatar_module_badge--42c50{
2386
2386
  right:-.375rem;
2387
2387
  }
2388
- .bp_avatar_module_avatar--ed504 .bp_avatar_module_image--ed504{
2388
+ .bp_avatar_module_avatar--42c50 .bp_avatar_module_image--42c50{
2389
2389
  border-radius:50%;
2390
2390
  height:100%;
2391
2391
  object-fit:cover;
2392
2392
  width:100%;
2393
2393
  }
2394
- .bp_avatar_module_avatar--ed504 .bp_avatar_module_image--ed504.bp_avatar_module_loading--ed504{
2394
+ .bp_avatar_module_avatar--42c50 .bp_avatar_module_image--42c50.bp_avatar_module_loading--42c50{
2395
2395
  height:0;
2396
2396
  width:0;
2397
2397
  }
2398
2398
 
2399
- .bp_avatar_module_anonymousAvatar--ed504,.bp_avatar_module_iconContainer--ed504{
2399
+ .bp_avatar_module_anonymousAvatar--42c50,.bp_avatar_module_iconContainer--42c50{
2400
2400
  align-items:center;
2401
2401
  display:flex;
2402
2402
  justify-content:center;
2403
2403
  }
2404
2404
 
2405
- .bp_avatar_module_iconContainer--ed504{
2405
+ .bp_avatar_module_iconContainer--42c50{
2406
2406
  border-radius:50%;
2407
2407
  height:100%;
2408
2408
  width:100%;
2409
2409
  }
2410
2410
 
2411
- [data-button-wrapper]:hover .bp_avatar_module_avatar--ed504{
2411
+ [data-button-wrapper]:hover .bp_avatar_module_avatar--42c50{
2412
2412
  box-shadow:0 0 0 0 var(--background-background), 0 0 0 var(--border-3) var(--bp-border-avatar-border-hover);
2413
2413
  cursor:pointer;
2414
2414
  }
2415
- [data-button-wrapper]:active .bp_avatar_module_avatar--ed504{
2415
+ [data-button-wrapper]:active .bp_avatar_module_avatar--42c50{
2416
2416
  box-shadow:0 0 0 0 var(--background-background), 0 0 0 var(--border-3) var(--bp-border-avatar-border-pressed);
2417
2417
  }
2418
- [data-button-wrapper][data-focus-visible] .bp_avatar_module_avatar--ed504{
2418
+
2419
+ [data-avatar-group-item][data-focus-visible] .bp_avatar_module_avatar--42c50,[data-button-wrapper][data-focus-visible] .bp_avatar_module_avatar--42c50{
2419
2420
  box-shadow:0 0 0 var(--border-1, 1px) var(--background-background), 0 0 0 var(--border-3) var(--bp-outline-focus-on-light);
2420
2421
  }
2422
+ .bp_travel_tooltip_module_tooltip--37a55{
2423
+ --travel-tooltip-x:0px;
2424
+ --travel-tooltip-appear-delay:400ms;
2425
+ align-items:center;
2426
+ backdrop-filter:blur(16px);
2427
+ background-color:var(--bp-surface-tooltip-surface);
2428
+ border:var(--bp-border-01) solid var(--bp-border-tooltip-border);
2429
+ border-radius:var(--bp-radius-04);
2430
+ bottom:calc(100% + var(--travel-tooltip-gap, var(--bp-space-020)));
2431
+ box-shadow:var(--dropshadow-3);
2432
+ box-sizing:border-box;
2433
+ color:var(--bp-text-text-on-dark);
2434
+ display:inline-flex;
2435
+ font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2436
+ font-size:var(--bp-font-size-05);
2437
+ font-style:normal;
2438
+ font-weight:var(--bp-font-weight-regular);
2439
+ justify-content:center;
2440
+ left:0;
2441
+ letter-spacing:var(--bp-font-letter-spacing-01);
2442
+ line-height:var(--bp-font-line-height-04);
2443
+ opacity:0;
2444
+ overflow:hidden;
2445
+ padding:var(--bp-space-020) var(--bp-space-030);
2446
+ pointer-events:none;
2447
+ position:absolute;
2448
+ scale:var(--bp-scale-small);
2449
+ transform-origin:50% 100%;
2450
+ translate:var(--travel-tooltip-x) 0;
2451
+ white-space:nowrap;
2452
+ width:0;
2453
+ z-index:var(--z-index-tooltip);
2454
+ }
2455
+ :where(body.is-inter-font) .bp_travel_tooltip_module_tooltip--37a55{
2456
+ font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2457
+ font-size:.875rem;
2458
+ font-style:normal;
2459
+ font-weight:450;
2460
+ letter-spacing:.00625rem;
2461
+ line-height:1.375rem;
2462
+ text-decoration:none;
2463
+ text-transform:none;
2464
+ }
2465
+
2466
+ .bp_travel_tooltip_module_tooltip--37a55{
2467
+ transition:none;
2468
+ }
2469
+
2470
+ .bp_travel_tooltip_module_tooltip--37a55[data-show=true][data-bp-animated=true]{
2471
+ opacity:var(--bp-opacity-visible);
2472
+ scale:1;
2473
+ transition:opacity var(--bp-duration-medium) var(--bp-curve-medium-on) var(--travel-tooltip-appear-delay), scale var(--bp-duration-medium) var(--bp-curve-medium-on) var(--travel-tooltip-appear-delay), translate var(--bp-duration-medium) var(--bp-curve-medium-on), width var(--bp-duration-medium) var(--bp-curve-medium-on);
2474
+ }
2475
+
2476
+ .bp_travel_tooltip_module_tooltip--37a55[data-show=true][data-bp-animated=false]{
2477
+ opacity:var(--bp-opacity-visible);
2478
+ scale:1;
2479
+ }
2480
+
2481
+ .bp_travel_tooltip_module_text--37a55{
2482
+ white-space:nowrap;
2483
+ }
2484
+
2485
+ @media (prefers-reduced-motion: reduce){
2486
+ .bp_travel_tooltip_module_tooltip--37a55[data-show=true][data-bp-animated=true]{
2487
+ transition:none;
2488
+ }
2489
+ }
2490
+ .bp_avatar_group_module_avatarGroup--c775b{
2491
+ --avatar-group-overlap:var(--bp-space-020, 0.5rem);
2492
+ --avatar-group-ring-color:var(--bp-gray-white, #fff);
2493
+ --avatar-group-ring-width:var(--bp-border-03, 0.1875rem);
2494
+ --avatar-group-dur:200ms;
2495
+ --avatar-group-ease-in:cubic-bezier(0.22, 1, 0.36, 1);
2496
+ align-items:center;
2497
+ display:inline-flex;
2498
+ flex-direction:row;
2499
+ isolation:isolate;
2500
+ position:relative;
2501
+ }
2502
+ .bp_avatar_group_module_avatarGroup--c775b:has([data-focus-visible]){
2503
+ --travel-tooltip-gap:calc(var(--bp-space-020, 0.5rem) + var(--bp-border-03, 0.1875rem));
2504
+ }
2505
+
2506
+ .bp_avatar_group_module_item--c775b{
2507
+ border-radius:50%;
2508
+ display:flex;
2509
+ flex-shrink:0;
2510
+ position:relative;
2511
+ z-index:0;
2512
+ }
2513
+ .bp_avatar_group_module_item--c775b,.bp_avatar_group_module_item--c775b *{
2514
+ cursor:pointer;
2515
+ -webkit-user-select:none;
2516
+ user-select:none;
2517
+ }
2518
+ .bp_avatar_group_module_item--c775b:not(:first-child){
2519
+ margin-inline-start:calc(var(--avatar-group-overlap)*-1);
2520
+ }
2521
+ .bp_avatar_group_module_item--c775b:focus,.bp_avatar_group_module_item--c775b:focus-visible{
2522
+ outline:none;
2523
+ }
2524
+
2525
+ .bp_avatar_group_module_itemMotion--c775b{
2526
+ border-radius:50%;
2527
+ box-shadow:0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
2528
+ display:flex;
2529
+ }
2530
+
2531
+ .bp_avatar_group_module_avatarGroup--c775b[data-bp-animated=true] .bp_avatar_group_module_itemMotion--c775b{
2532
+ pointer-events:none;
2533
+ transform:translateY(var(--shift, 0)) scale(var(--scale-active, 1));
2534
+ transform-origin:center;
2535
+ transition:transform var(--avatar-group-dur) var(--avatar-group-ease-in);
2536
+ will-change:transform;
2537
+ }
2538
+
2539
+ @media (prefers-reduced-motion: reduce){
2540
+ .bp_avatar_group_module_avatarGroup--c775b[data-bp-animated=true] .bp_avatar_group_module_itemMotion--c775b{
2541
+ transform:none;
2542
+ transition:none;
2543
+ }
2544
+ }
2421
2545
  .bp_base_badge_module_badgeContainer--cc070{
2422
2546
  display:inline-flex;
2423
2547
  position:relative;
@@ -2160,7 +2160,7 @@
2160
2160
  background-color:initial;
2161
2161
  border:none;
2162
2162
  }
2163
- .bp_avatar_module_avatar--ed504{
2163
+ .bp_avatar_module_avatar--42c50{
2164
2164
  --avatar-line-height:1;
2165
2165
  all:unset;
2166
2166
  align-items:center;
@@ -2178,7 +2178,7 @@
2178
2178
  line-height:var(--bp-font-line-height-04);
2179
2179
  position:relative;
2180
2180
  }
2181
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504{
2181
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50{
2182
2182
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2183
2183
  font-size:.875rem;
2184
2184
  font-style:normal;
@@ -2189,10 +2189,10 @@
2189
2189
  text-transform:none;
2190
2190
  }
2191
2191
 
2192
- .bp_avatar_module_avatar--ed504{
2192
+ .bp_avatar_module_avatar--42c50{
2193
2193
  line-height:var(--avatar-line-height);
2194
2194
  }
2195
- .bp_avatar_module_avatar--ed504 .bp_avatar_module_text--ed504{
2195
+ .bp_avatar_module_avatar--42c50 .bp_avatar_module_text--42c50{
2196
2196
  align-items:center;
2197
2197
  border-radius:50%;
2198
2198
  display:flex;
@@ -2200,14 +2200,14 @@
2200
2200
  justify-content:center;
2201
2201
  width:100%;
2202
2202
  }
2203
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504{
2203
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50{
2204
2204
  height:var(--bp-size-050);
2205
2205
  width:var(--bp-size-050);
2206
2206
  }
2207
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_text--ed504{
2207
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_text--42c50{
2208
2208
  font-size:.375rem;
2209
2209
  }
2210
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2210
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2211
2211
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2212
2212
  font-size:var(--bp-font-size-02);
2213
2213
  font-style:normal;
@@ -2215,7 +2215,7 @@
2215
2215
  letter-spacing:var(--bp-font-letter-spacing-02);
2216
2216
  line-height:var(--bp-font-line-height-03);
2217
2217
  }
2218
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,:where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2218
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,:where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2219
2219
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2220
2220
  font-size:.625rem;
2221
2221
  font-style:normal;
@@ -2226,17 +2226,17 @@
2226
2226
  text-transform:none;
2227
2227
  }
2228
2228
 
2229
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xsmall--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2229
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xsmall--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2230
2230
  line-height:var(--avatar-line-height);
2231
2231
  }
2232
- .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504{
2232
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50{
2233
2233
  height:var(--bp-size-060);
2234
2234
  width:var(--bp-size-060);
2235
2235
  }
2236
- .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_text--ed504{
2236
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_text--42c50{
2237
2237
  font-size:.5rem;
2238
2238
  }
2239
- .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2239
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2240
2240
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2241
2241
  font-size:var(--bp-font-size-02);
2242
2242
  font-style:normal;
@@ -2244,7 +2244,7 @@
2244
2244
  letter-spacing:var(--bp-font-letter-spacing-02);
2245
2245
  line-height:var(--bp-font-line-height-03);
2246
2246
  }
2247
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,:where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2247
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,:where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2248
2248
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2249
2249
  font-size:.625rem;
2250
2250
  font-style:normal;
@@ -2255,14 +2255,14 @@
2255
2255
  text-transform:none;
2256
2256
  }
2257
2257
 
2258
- .bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_small--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2258
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_small--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2259
2259
  line-height:var(--avatar-line-height);
2260
2260
  }
2261
- .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504{
2261
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50{
2262
2262
  height:var(--bp-size-070);
2263
2263
  width:var(--bp-size-070);
2264
2264
  }
2265
- .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_text--ed504{
2265
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_text--42c50{
2266
2266
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2267
2267
  font-size:var(--bp-font-size-02);
2268
2268
  font-style:normal;
@@ -2270,7 +2270,7 @@
2270
2270
  letter-spacing:var(--bp-font-letter-spacing-02);
2271
2271
  line-height:var(--bp-font-line-height-03);
2272
2272
  }
2273
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_text--ed504{
2273
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_text--42c50{
2274
2274
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2275
2275
  font-size:.625rem;
2276
2276
  font-style:normal;
@@ -2281,20 +2281,20 @@
2281
2281
  text-transform:none;
2282
2282
  }
2283
2283
 
2284
- .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_text--ed504{
2284
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_text--42c50{
2285
2285
  line-height:var(--avatar-line-height);
2286
2286
  }
2287
- .bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_medium--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2287
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_medium--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2288
2288
  font-size:.8125rem;
2289
2289
  }
2290
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504{
2290
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50{
2291
2291
  height:var(--bp-size-080);
2292
2292
  width:var(--bp-size-080);
2293
2293
  }
2294
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_text--ed504{
2294
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_text--42c50{
2295
2295
  font-size:.5rem;
2296
2296
  }
2297
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2297
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2298
2298
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2299
2299
  font-size:var(--bp-font-size-05);
2300
2300
  font-style:normal;
@@ -2302,7 +2302,7 @@
2302
2302
  letter-spacing:var(--bp-font-letter-spacing-01);
2303
2303
  line-height:var(--bp-font-line-height-04);
2304
2304
  }
2305
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,:where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2305
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,:where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2306
2306
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2307
2307
  font-size:.875rem;
2308
2308
  font-style:normal;
@@ -2313,14 +2313,14 @@
2313
2313
  text-transform:none;
2314
2314
  }
2315
2315
 
2316
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2316
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2317
2317
  line-height:var(--avatar-line-height);
2318
2318
  }
2319
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-3--ed504.bp_avatar_module_text--ed504{
2319
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-3--42c50.bp_avatar_module_text--42c50{
2320
2320
  font-size:.6875rem;
2321
2321
  line-height:var(--avatar-line-height);
2322
2322
  }
2323
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-4--ed504.bp_avatar_module_text--ed504{
2323
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-4--42c50.bp_avatar_module_text--42c50{
2324
2324
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2325
2325
  font-size:var(--bp-font-size-02);
2326
2326
  font-style:normal;
@@ -2328,7 +2328,7 @@
2328
2328
  letter-spacing:var(--bp-font-letter-spacing-02);
2329
2329
  line-height:var(--bp-font-line-height-03);
2330
2330
  }
2331
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-4--ed504.bp_avatar_module_text--ed504{
2331
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-4--42c50.bp_avatar_module_text--42c50{
2332
2332
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2333
2333
  font-size:.625rem;
2334
2334
  font-style:normal;
@@ -2339,17 +2339,17 @@
2339
2339
  text-transform:none;
2340
2340
  }
2341
2341
 
2342
- .bp_avatar_module_avatar--ed504.bp_avatar_module_large--ed504 .bp_avatar_module_length-4--ed504.bp_avatar_module_text--ed504{
2342
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_large--42c50 .bp_avatar_module_length-4--42c50.bp_avatar_module_text--42c50{
2343
2343
  line-height:var(--avatar-line-height);
2344
2344
  }
2345
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504{
2345
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50{
2346
2346
  height:var(--bp-size-110);
2347
2347
  width:var(--bp-size-110);
2348
2348
  }
2349
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_text--ed504{
2349
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_text--42c50{
2350
2350
  font-size:1rem;
2351
2351
  }
2352
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2352
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2353
2353
  font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2354
2354
  font-size:var(--bp-font-size-10);
2355
2355
  font-style:normal;
@@ -2357,7 +2357,7 @@
2357
2357
  letter-spacing:var(--bp-font-letter-spacing-01);
2358
2358
  line-height:var(--bp-font-line-height-06);
2359
2359
  }
2360
- :where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,:where(body.is-inter-font) .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2360
+ :where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,:where(body.is-inter-font) .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2361
2361
  font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2362
2362
  font-size:1.3125rem;
2363
2363
  font-style:normal;
@@ -2368,56 +2368,180 @@
2368
2368
  text-transform:none;
2369
2369
  }
2370
2370
 
2371
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xlarge--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2371
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xlarge--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2372
2372
  line-height:var(--avatar-line-height);
2373
2373
  }
2374
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504{
2374
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50{
2375
2375
  height:var(--bp-size-200);
2376
2376
  line-height:var(--avatar-line-height);
2377
2377
  width:var(--bp-size-200);
2378
2378
  }
2379
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504 .bp_avatar_module_text--ed504{
2379
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50 .bp_avatar_module_text--42c50{
2380
2380
  font-size:1.25rem;
2381
2381
  }
2382
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504 .bp_avatar_module_length-1--ed504.bp_avatar_module_text--ed504,.bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504 .bp_avatar_module_length-2--ed504.bp_avatar_module_text--ed504{
2382
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50 .bp_avatar_module_length-1--42c50.bp_avatar_module_text--42c50,.bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50 .bp_avatar_module_length-2--42c50.bp_avatar_module_text--42c50{
2383
2383
  font-size:2rem;
2384
2384
  }
2385
- .bp_avatar_module_avatar--ed504.bp_avatar_module_xxlarge--ed504 .bp_avatar_module_badge--ed504{
2385
+ .bp_avatar_module_avatar--42c50.bp_avatar_module_xxlarge--42c50 .bp_avatar_module_badge--42c50{
2386
2386
  right:-.375rem;
2387
2387
  }
2388
- .bp_avatar_module_avatar--ed504 .bp_avatar_module_image--ed504{
2388
+ .bp_avatar_module_avatar--42c50 .bp_avatar_module_image--42c50{
2389
2389
  border-radius:50%;
2390
2390
  height:100%;
2391
2391
  object-fit:cover;
2392
2392
  width:100%;
2393
2393
  }
2394
- .bp_avatar_module_avatar--ed504 .bp_avatar_module_image--ed504.bp_avatar_module_loading--ed504{
2394
+ .bp_avatar_module_avatar--42c50 .bp_avatar_module_image--42c50.bp_avatar_module_loading--42c50{
2395
2395
  height:0;
2396
2396
  width:0;
2397
2397
  }
2398
2398
 
2399
- .bp_avatar_module_anonymousAvatar--ed504,.bp_avatar_module_iconContainer--ed504{
2399
+ .bp_avatar_module_anonymousAvatar--42c50,.bp_avatar_module_iconContainer--42c50{
2400
2400
  align-items:center;
2401
2401
  display:flex;
2402
2402
  justify-content:center;
2403
2403
  }
2404
2404
 
2405
- .bp_avatar_module_iconContainer--ed504{
2405
+ .bp_avatar_module_iconContainer--42c50{
2406
2406
  border-radius:50%;
2407
2407
  height:100%;
2408
2408
  width:100%;
2409
2409
  }
2410
2410
 
2411
- [data-button-wrapper]:hover .bp_avatar_module_avatar--ed504{
2411
+ [data-button-wrapper]:hover .bp_avatar_module_avatar--42c50{
2412
2412
  box-shadow:0 0 0 0 var(--background-background), 0 0 0 var(--border-3) var(--bp-border-avatar-border-hover);
2413
2413
  cursor:pointer;
2414
2414
  }
2415
- [data-button-wrapper]:active .bp_avatar_module_avatar--ed504{
2415
+ [data-button-wrapper]:active .bp_avatar_module_avatar--42c50{
2416
2416
  box-shadow:0 0 0 0 var(--background-background), 0 0 0 var(--border-3) var(--bp-border-avatar-border-pressed);
2417
2417
  }
2418
- [data-button-wrapper][data-focus-visible] .bp_avatar_module_avatar--ed504{
2418
+
2419
+ [data-avatar-group-item][data-focus-visible] .bp_avatar_module_avatar--42c50,[data-button-wrapper][data-focus-visible] .bp_avatar_module_avatar--42c50{
2419
2420
  box-shadow:0 0 0 var(--border-1, 1px) var(--background-background), 0 0 0 var(--border-3) var(--bp-outline-focus-on-light);
2420
2421
  }
2422
+ .bp_travel_tooltip_module_tooltip--37a55{
2423
+ --travel-tooltip-x:0px;
2424
+ --travel-tooltip-appear-delay:400ms;
2425
+ align-items:center;
2426
+ backdrop-filter:blur(16px);
2427
+ background-color:var(--bp-surface-tooltip-surface);
2428
+ border:var(--bp-border-01) solid var(--bp-border-tooltip-border);
2429
+ border-radius:var(--bp-radius-04);
2430
+ bottom:calc(100% + var(--travel-tooltip-gap, var(--bp-space-020)));
2431
+ box-shadow:var(--dropshadow-3);
2432
+ box-sizing:border-box;
2433
+ color:var(--bp-text-text-on-dark);
2434
+ display:inline-flex;
2435
+ font-family:var(--bp-font-font-family), -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2436
+ font-size:var(--bp-font-size-05);
2437
+ font-style:normal;
2438
+ font-weight:var(--bp-font-weight-regular);
2439
+ justify-content:center;
2440
+ left:0;
2441
+ letter-spacing:var(--bp-font-letter-spacing-01);
2442
+ line-height:var(--bp-font-line-height-04);
2443
+ opacity:0;
2444
+ overflow:hidden;
2445
+ padding:var(--bp-space-020) var(--bp-space-030);
2446
+ pointer-events:none;
2447
+ position:absolute;
2448
+ scale:var(--bp-scale-small);
2449
+ transform-origin:50% 100%;
2450
+ translate:var(--travel-tooltip-x) 0;
2451
+ white-space:nowrap;
2452
+ width:0;
2453
+ z-index:var(--z-index-tooltip);
2454
+ }
2455
+ :where(body.is-inter-font) .bp_travel_tooltip_module_tooltip--37a55{
2456
+ font-family:"Inter Variable", -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
2457
+ font-size:.875rem;
2458
+ font-style:normal;
2459
+ font-weight:450;
2460
+ letter-spacing:.00625rem;
2461
+ line-height:1.375rem;
2462
+ text-decoration:none;
2463
+ text-transform:none;
2464
+ }
2465
+
2466
+ .bp_travel_tooltip_module_tooltip--37a55{
2467
+ transition:none;
2468
+ }
2469
+
2470
+ .bp_travel_tooltip_module_tooltip--37a55[data-show=true][data-bp-animated=true]{
2471
+ opacity:var(--bp-opacity-visible);
2472
+ scale:1;
2473
+ transition:opacity var(--bp-duration-medium) var(--bp-curve-medium-on) var(--travel-tooltip-appear-delay), scale var(--bp-duration-medium) var(--bp-curve-medium-on) var(--travel-tooltip-appear-delay), translate var(--bp-duration-medium) var(--bp-curve-medium-on), width var(--bp-duration-medium) var(--bp-curve-medium-on);
2474
+ }
2475
+
2476
+ .bp_travel_tooltip_module_tooltip--37a55[data-show=true][data-bp-animated=false]{
2477
+ opacity:var(--bp-opacity-visible);
2478
+ scale:1;
2479
+ }
2480
+
2481
+ .bp_travel_tooltip_module_text--37a55{
2482
+ white-space:nowrap;
2483
+ }
2484
+
2485
+ @media (prefers-reduced-motion: reduce){
2486
+ .bp_travel_tooltip_module_tooltip--37a55[data-show=true][data-bp-animated=true]{
2487
+ transition:none;
2488
+ }
2489
+ }
2490
+ .bp_avatar_group_module_avatarGroup--c775b{
2491
+ --avatar-group-overlap:var(--bp-space-020, 0.5rem);
2492
+ --avatar-group-ring-color:var(--bp-gray-white, #fff);
2493
+ --avatar-group-ring-width:var(--bp-border-03, 0.1875rem);
2494
+ --avatar-group-dur:200ms;
2495
+ --avatar-group-ease-in:cubic-bezier(0.22, 1, 0.36, 1);
2496
+ align-items:center;
2497
+ display:inline-flex;
2498
+ flex-direction:row;
2499
+ isolation:isolate;
2500
+ position:relative;
2501
+ }
2502
+ .bp_avatar_group_module_avatarGroup--c775b:has([data-focus-visible]){
2503
+ --travel-tooltip-gap:calc(var(--bp-space-020, 0.5rem) + var(--bp-border-03, 0.1875rem));
2504
+ }
2505
+
2506
+ .bp_avatar_group_module_item--c775b{
2507
+ border-radius:50%;
2508
+ display:flex;
2509
+ flex-shrink:0;
2510
+ position:relative;
2511
+ z-index:0;
2512
+ }
2513
+ .bp_avatar_group_module_item--c775b,.bp_avatar_group_module_item--c775b *{
2514
+ cursor:pointer;
2515
+ -webkit-user-select:none;
2516
+ user-select:none;
2517
+ }
2518
+ .bp_avatar_group_module_item--c775b:not(:first-child){
2519
+ margin-inline-start:calc(var(--avatar-group-overlap)*-1);
2520
+ }
2521
+ .bp_avatar_group_module_item--c775b:focus,.bp_avatar_group_module_item--c775b:focus-visible{
2522
+ outline:none;
2523
+ }
2524
+
2525
+ .bp_avatar_group_module_itemMotion--c775b{
2526
+ border-radius:50%;
2527
+ box-shadow:0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
2528
+ display:flex;
2529
+ }
2530
+
2531
+ .bp_avatar_group_module_avatarGroup--c775b[data-bp-animated=true] .bp_avatar_group_module_itemMotion--c775b{
2532
+ pointer-events:none;
2533
+ transform:translateY(var(--shift, 0)) scale(var(--scale-active, 1));
2534
+ transform-origin:center;
2535
+ transition:transform var(--avatar-group-dur) var(--avatar-group-ease-in);
2536
+ will-change:transform;
2537
+ }
2538
+
2539
+ @media (prefers-reduced-motion: reduce){
2540
+ .bp_avatar_group_module_avatarGroup--c775b[data-bp-animated=true] .bp_avatar_group_module_itemMotion--c775b{
2541
+ transform:none;
2542
+ transition:none;
2543
+ }
2544
+ }
2421
2545
  .bp_base_badge_module_badgeContainer--cc070{
2422
2546
  display:inline-flex;
2423
2547
  position:relative;
@@ -1,6 +1,7 @@
1
1
  export { Accordion } from './accordion/accordion.js';
2
2
  export { ActionableInlineNotice } from './actionable-inline-notice/index.js';
3
3
  export { Avatar } from './avatar/avatar.js';
4
+ export { AvatarGroup } from './avatar/avatar-group/avatar-group.js';
4
5
  export { IconBadge } from './badge/icon-badge.js';
5
6
  export { NumericBadge } from './badge/numeric-badge.js';
6
7
  export { StatusBadge } from './badge/status-badge.js';
@@ -0,0 +1,20 @@
1
+ import { type FocusEvent, type PointerEvent, type RefObject } from 'react';
2
+ export declare function useTravelTooltip(): {
3
+ activeTrigger: HTMLElement | null;
4
+ groupRef: RefObject<HTMLElement>;
5
+ hideFocusIfLeavingGroup: (event: FocusEvent<HTMLElement>) => boolean;
6
+ hidePointerIfLeavingGroup: (event: PointerEvent<HTMLElement>) => boolean;
7
+ label: string;
8
+ showForFocus: (trigger: HTMLElement, nextLabel?: string) => void;
9
+ showForPointer: (trigger: HTMLElement, nextLabel?: string) => void;
10
+ textRef: RefObject<HTMLSpanElement>;
11
+ tooltipRef: RefObject<HTMLSpanElement>;
12
+ };
13
+ export declare function TravelTooltipBubble({ animated, id, label, show, textRef, tooltipRef, }: {
14
+ animated: boolean;
15
+ id: string;
16
+ label: string;
17
+ show: boolean;
18
+ textRef: RefObject<HTMLSpanElement>;
19
+ tooltipRef: RefObject<HTMLSpanElement>;
20
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,100 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useRef, useState, useLayoutEffect } from 'react';
3
+ import styles from './travel-tooltip.module.js';
4
+
5
+ const arm = (trigger, nextLabel) => ({
6
+ element: trigger,
7
+ label: nextLabel ?? trigger.dataset.tooltip ?? ''
8
+ });
9
+ const leftTheGroup = event => {
10
+ const next = event.relatedTarget;
11
+ return !(next instanceof Node && event.currentTarget.contains(next));
12
+ };
13
+ function useTravelTooltip() {
14
+ const groupRef = useRef(null);
15
+ const tooltipRef = useRef(null);
16
+ const textRef = useRef(null);
17
+ const [hovered, setHovered] = useState(null);
18
+ const [focused, setFocused] = useState(null);
19
+ const [leader, setLeader] = useState('pointer');
20
+ // Latest modality leads. The other keeps the bubble open after that one leaves the group.
21
+ const leading = leader === 'pointer' ? hovered : focused;
22
+ const trailing = leader === 'pointer' ? focused : hovered;
23
+ const active = leading ?? trailing;
24
+ const activeTrigger = active?.element ?? null;
25
+ const label = active?.label ?? '';
26
+ useLayoutEffect(() => {
27
+ const group = groupRef.current;
28
+ const tooltip = tooltipRef.current;
29
+ const text = textRef.current;
30
+ if (!activeTrigger || !group || !tooltip || !text) {
31
+ return;
32
+ }
33
+ const groupBox = group.getBoundingClientRect();
34
+ const triggerBox = activeTrigger.getBoundingClientRect();
35
+ const computed = getComputedStyle(tooltip);
36
+ const pad = Number.parseFloat(computed.paddingLeft) + Number.parseFloat(computed.paddingRight);
37
+ const width = Math.ceil(text.scrollWidth + pad);
38
+ const x = triggerBox.left - groupBox.left + triggerBox.width / 2 - width / 2;
39
+ tooltip.style.setProperty('--travel-tooltip-x', `${x}px`);
40
+ tooltip.style.width = `${width}px`;
41
+ }, [activeTrigger, label]);
42
+ const showForPointer = (trigger, nextLabel) => {
43
+ setHovered(arm(trigger, nextLabel));
44
+ setLeader('pointer');
45
+ };
46
+ const showForFocus = (trigger, nextLabel) => {
47
+ setFocused(arm(trigger, nextLabel));
48
+ setLeader('focus');
49
+ };
50
+ const hidePointerIfLeavingGroup = event => {
51
+ if (!leftTheGroup(event)) {
52
+ return false;
53
+ }
54
+ setHovered(null);
55
+ return true;
56
+ };
57
+ const hideFocusIfLeavingGroup = event => {
58
+ if (!leftTheGroup(event)) {
59
+ return false;
60
+ }
61
+ setFocused(null);
62
+ return true;
63
+ };
64
+ return {
65
+ activeTrigger,
66
+ groupRef,
67
+ hideFocusIfLeavingGroup,
68
+ hidePointerIfLeavingGroup,
69
+ label,
70
+ showForFocus,
71
+ showForPointer,
72
+ textRef,
73
+ tooltipRef
74
+ };
75
+ }
76
+ function TravelTooltipBubble({
77
+ animated,
78
+ id,
79
+ label,
80
+ show,
81
+ textRef,
82
+ tooltipRef
83
+ }) {
84
+ return jsx("span", {
85
+ ref: tooltipRef,
86
+ "aria-hidden": show ? 'false' : 'true',
87
+ className: styles.tooltip,
88
+ "data-bp-animated": animated ? 'true' : 'false',
89
+ "data-show": show ? 'true' : 'false',
90
+ id: id,
91
+ role: "tooltip",
92
+ children: jsx("span", {
93
+ ref: textRef,
94
+ className: styles.text,
95
+ children: label
96
+ })
97
+ });
98
+ }
99
+
100
+ export { TravelTooltipBubble, useTravelTooltip };
@@ -0,0 +1,4 @@
1
+ import '../index.css';
2
+ var styles = {"tooltip":"bp_travel_tooltip_module_tooltip--37a55","text":"bp_travel_tooltip_module_text--37a55"};
3
+
4
+ export { styles as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/blueprint-web",
3
- "version": "18.7.1",
3
+ "version": "18.8.0",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "publishConfig": {
@@ -55,7 +55,7 @@
55
55
  "dependencies": {
56
56
  "@ariakit/react": "0.4.21",
57
57
  "@ariakit/react-core": "0.4.21",
58
- "@box/blueprint-web-assets": "^5.13.6",
58
+ "@box/blueprint-web-assets": "^5.13.7",
59
59
  "@internationalized/date": "^3.12.0",
60
60
  "@radix-ui/react-accordion": "1.1.2",
61
61
  "@radix-ui/react-checkbox": "1.0.4",
@@ -85,7 +85,7 @@
85
85
  "devDependencies": {
86
86
  "@box/box-test-client": "^3.2.7",
87
87
  "@box/playwright-utils": "^2.8.5",
88
- "@box/storybook-utils": "^1.4.25",
88
+ "@box/storybook-utils": "^1.4.26",
89
89
  "@figma/code-connect": "1.4.4",
90
90
  "@playwright/test": "1.46.1",
91
91
  "@types/js-yaml": "^4.0.9",