@agg-market/ui 1.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/badge.d.mts +5 -3
- package/dist/badge.d.ts +5 -3
- package/dist/badge.js +52 -12
- package/dist/badge.mjs +1 -1
- package/dist/button.d.mts +2 -2
- package/dist/button.d.ts +2 -2
- package/dist/button.js +19 -34
- package/dist/button.mjs +2 -2
- package/dist/card.d.mts +4 -2
- package/dist/card.d.ts +4 -2
- package/dist/card.js +8 -4
- package/dist/card.mjs +1 -1
- package/dist/chart.js +14 -7
- package/dist/chart.mjs +2 -2
- package/dist/{chunk-ZYREURXK.mjs → chunk-2MJY6RVY.mjs} +35 -35
- package/dist/{chunk-P23GR7NX.mjs → chunk-422MCIXV.mjs} +1 -1
- package/dist/chunk-4KMFDCAH.mjs +371 -0
- package/dist/{chunk-HM3CGN32.mjs → chunk-5GDNWQZS.mjs} +46 -46
- package/dist/{chunk-VIP7HSOU.mjs → chunk-5K7VXAYM.mjs} +4 -0
- package/dist/{chunk-BJNHDIDW.mjs → chunk-6425RRBI.mjs} +4 -4
- package/dist/{chunk-O2XH4A3G.mjs → chunk-7NISYVSJ.mjs} +22 -22
- package/dist/{chunk-MXBPDNMC.mjs → chunk-BEDUFOIG.mjs} +95 -22
- package/dist/{chunk-VC7LTPQD.mjs → chunk-BN5VVHNV.mjs} +2 -2
- package/dist/{chunk-JRS2M5GY.mjs → chunk-CTVMT3VL.mjs} +13 -6
- package/dist/{chunk-USLTNDJA.mjs → chunk-D5FTFSKL.mjs} +8 -8
- package/dist/{chunk-BLSHXIAH.mjs → chunk-D7JTOGYP.mjs} +6 -11
- package/dist/{chunk-W2DMBW4E.mjs → chunk-DL7STJQ5.mjs} +61 -33
- package/dist/chunk-ERGNR6UQ.mjs +67 -0
- package/dist/chunk-FO263M3V.mjs +10 -0
- package/dist/{chunk-3O4U3E5I.mjs → chunk-FO2QCB4Z.mjs} +8 -4
- package/dist/{chunk-OGI343OV.mjs → chunk-IGPNIM2B.mjs} +3 -2
- package/dist/chunk-K6IJ4WBM.mjs +67 -0
- package/dist/{chunk-PGSPYQOW.mjs → chunk-KAGYJ4XT.mjs} +17 -27
- package/dist/{chunk-RGZQHSNJ.mjs → chunk-KCPDVBIZ.mjs} +26 -17
- package/dist/{chunk-ZHKMDK5M.mjs → chunk-KFOATMAE.mjs} +87 -87
- package/dist/{chunk-H4UIBDL2.mjs → chunk-LK5D3ZTK.mjs} +15 -15
- package/dist/{chunk-VUDJ3PYM.mjs → chunk-O46OFVH6.mjs} +40 -16
- package/dist/{chunk-RXACBTON.mjs → chunk-OA2IZ3VW.mjs} +16 -22
- package/dist/{chunk-F236MLT6.mjs → chunk-PZTHM6WG.mjs} +13 -10
- package/dist/{chunk-XELWY7SO.mjs → chunk-QYZKC7KG.mjs} +137 -104
- package/dist/{chunk-LWTQD345.mjs → chunk-S3H63TQ5.mjs} +57 -312
- package/dist/{chunk-MNSHWA6M.mjs → chunk-TA7LKYKP.mjs} +9 -8
- package/dist/{chunk-JH5VMNDL.mjs → chunk-V52WSZHQ.mjs} +8 -7
- package/dist/chunk-YJA5VQW6.mjs +167 -0
- package/dist/{chunk-EXF4SESB.mjs → chunk-ZFMCCBP6.mjs} +1 -1
- package/dist/connect-button.js +51 -73
- package/dist/connect-button.mjs +6 -6
- package/dist/deposit-modal.js +171 -177
- package/dist/deposit-modal.mjs +7 -7
- package/dist/event-list-item-details.js +222 -198
- package/dist/event-list-item-details.mjs +11 -11
- package/dist/event-list-item.js +172 -114
- package/dist/event-list-item.mjs +8 -8
- package/dist/event-list.js +391 -507
- package/dist/event-list.mjs +11 -11
- package/dist/event-market-page.js +826 -764
- package/dist/event-market-page.mjs +19 -19
- package/dist/hello-world.js +28 -16
- package/dist/hello-world.mjs +2 -2
- package/dist/home-page.js +395 -511
- package/dist/home-page.mjs +12 -12
- package/dist/icon.d.mts +1 -1
- package/dist/icon.d.ts +1 -1
- package/dist/icon.js +15 -17
- package/dist/icon.mjs +2 -2
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1135 -944
- package/dist/index.mjs +34 -32
- package/dist/loading-icon.d.mts +1 -1
- package/dist/loading-icon.d.ts +1 -1
- package/dist/loading-icon.js +5 -9
- package/dist/loading-icon.mjs +2 -2
- package/dist/market-details.d.mts +2 -2
- package/dist/market-details.d.ts +2 -2
- package/dist/market-details.js +357 -551
- package/dist/market-details.mjs +13 -13
- package/dist/modal.js +4 -0
- package/dist/modal.mjs +1 -1
- package/dist/onboarding-modal.js +63 -67
- package/dist/onboarding-modal.mjs +6 -6
- package/dist/place-order.js +231 -466
- package/dist/place-order.mjs +9 -9
- package/dist/profile-modal.js +52 -65
- package/dist/profile-modal.mjs +6 -6
- package/dist/search.d.mts +2 -2
- package/dist/search.d.ts +2 -2
- package/dist/search.js +28 -34
- package/dist/search.mjs +4 -4
- package/dist/select.js +104 -99
- package/dist/select.mjs +3 -3
- package/dist/settlement.js +279 -59
- package/dist/settlement.mjs +6 -6
- package/dist/skeleton.js +15 -10
- package/dist/skeleton.mjs +2 -2
- package/dist/styles.css +1 -1
- package/dist/switch-button.js +13 -6
- package/dist/switch-button.mjs +1 -1
- package/dist/tabs.d.mts +8 -4
- package/dist/tabs.d.ts +8 -4
- package/dist/tabs.js +163 -420
- package/dist/tabs.mjs +4 -4
- package/dist/tailwind.css +1 -1
- package/dist/types-BVj9ky9P.d.mts +3 -0
- package/dist/types-BVj9ky9P.d.ts +3 -0
- package/dist/typography.d.mts +4 -2
- package/dist/typography.d.ts +4 -2
- package/dist/typography.js +49 -18
- package/dist/typography.mjs +5 -3
- package/dist/user-profile-page.d.mts +2 -2
- package/dist/user-profile-page.d.ts +2 -2
- package/dist/user-profile-page.js +200 -474
- package/dist/user-profile-page.mjs +7 -7
- package/dist/venue-logo.d.mts +2 -2
- package/dist/venue-logo.d.ts +2 -2
- package/dist/venue-logo.js +6 -11
- package/dist/venue-logo.mjs +1 -1
- package/dist/{venue-logo.types-BSAuY84j.d.ts → venue-logo.types-D8Cu2rAm.d.ts} +1 -1
- package/dist/{venue-logo.types-DACqcTvY.d.mts → venue-logo.types-HRf1yBLD.d.mts} +1 -1
- package/dist/withdraw-modal.js +72 -85
- package/dist/withdraw-modal.mjs +6 -6
- package/package.json +2 -2
- package/dist/chunk-AEMAY3MR.mjs +0 -44
- package/dist/chunk-DYEWXEEY.mjs +0 -37
- package/dist/chunk-QFQHD2V6.mjs +0 -146
- package/dist/chunk-ZDF7QP4G.mjs +0 -160
- package/dist/chunk-ZVBVGWSP.mjs +0 -15
- package/dist/types-Bed6Q0EK.d.mts +0 -3
- package/dist/types-Bed6Q0EK.d.ts +0 -3
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Select
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YJA5VQW6.mjs";
|
|
4
4
|
import {
|
|
5
|
-
Icon
|
|
6
|
-
} from "./chunk-F236MLT6.mjs";
|
|
7
|
-
import {
|
|
8
|
-
AGG_ROOT_CLASS_NAME,
|
|
9
5
|
__spreadProps,
|
|
10
6
|
__spreadValues,
|
|
11
7
|
cn,
|
|
@@ -16,7 +12,6 @@ import {
|
|
|
16
12
|
// src/primitives/tabs/index.tsx
|
|
17
13
|
import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
18
14
|
import { useLabels, useSdkUiConfig } from "@agg-market/hooks";
|
|
19
|
-
import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
|
|
20
15
|
|
|
21
16
|
// src/primitives/tabs/tabs.utils.ts
|
|
22
17
|
var findNextEnabledIndex = (items, startIndex, direction) => {
|
|
@@ -41,86 +36,10 @@ var findEdgeEnabledIndex = (items, direction) => {
|
|
|
41
36
|
}
|
|
42
37
|
return -1;
|
|
43
38
|
};
|
|
44
|
-
var FALLBACK_TAB_WIDTH = 112;
|
|
45
|
-
var FALLBACK_MORE_WIDTH = 56;
|
|
46
|
-
var sumWidths = (indices, widths) => {
|
|
47
|
-
return [...indices].reduce((accumulator, index) => {
|
|
48
|
-
var _a;
|
|
49
|
-
return accumulator + ((_a = widths[index]) != null ? _a : 0);
|
|
50
|
-
}, 0);
|
|
51
|
-
};
|
|
52
|
-
var resolveTabsOverflowLayout = ({
|
|
53
|
-
items,
|
|
54
|
-
value,
|
|
55
|
-
containerWidth,
|
|
56
|
-
moreButtonWidth,
|
|
57
|
-
itemWidthByValue
|
|
58
|
-
}) => {
|
|
59
|
-
var _a;
|
|
60
|
-
if (items.length === 0) {
|
|
61
|
-
return {
|
|
62
|
-
visibleItems: [],
|
|
63
|
-
hiddenItems: []
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
if (!Number.isFinite(containerWidth) || containerWidth <= 0) {
|
|
67
|
-
return {
|
|
68
|
-
visibleItems: items,
|
|
69
|
-
hiddenItems: []
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
const resolvedItemWidths = items.map((item) => {
|
|
73
|
-
var _a2;
|
|
74
|
-
const measuredWidth = (_a2 = itemWidthByValue.get(item.value)) != null ? _a2 : FALLBACK_TAB_WIDTH;
|
|
75
|
-
return Math.max(1, measuredWidth);
|
|
76
|
-
});
|
|
77
|
-
const totalItemsWidth = resolvedItemWidths.reduce((sum, width) => {
|
|
78
|
-
return sum + width;
|
|
79
|
-
}, 0);
|
|
80
|
-
if (totalItemsWidth <= containerWidth) {
|
|
81
|
-
return {
|
|
82
|
-
visibleItems: items,
|
|
83
|
-
hiddenItems: []
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
const reservedMoreWidth = Math.max(1, moreButtonWidth || FALLBACK_MORE_WIDTH);
|
|
87
|
-
const visibleIndices = /* @__PURE__ */ new Set();
|
|
88
|
-
let usedWidth = 0;
|
|
89
|
-
for (let index = 0; index < items.length; index += 1) {
|
|
90
|
-
const itemWidth = (_a = resolvedItemWidths[index]) != null ? _a : FALLBACK_TAB_WIDTH;
|
|
91
|
-
const hasRemainingItems = index < items.length - 1;
|
|
92
|
-
const requiredExtraWidth = hasRemainingItems ? reservedMoreWidth : 0;
|
|
93
|
-
if (usedWidth + itemWidth + requiredExtraWidth > containerWidth)
|
|
94
|
-
break;
|
|
95
|
-
visibleIndices.add(index);
|
|
96
|
-
usedWidth += itemWidth;
|
|
97
|
-
}
|
|
98
|
-
if (visibleIndices.size === 0) {
|
|
99
|
-
visibleIndices.add(0);
|
|
100
|
-
}
|
|
101
|
-
const activeIndex = items.findIndex((item) => item.value === value);
|
|
102
|
-
const isActiveHidden = activeIndex >= 0 && !visibleIndices.has(activeIndex);
|
|
103
|
-
if (isActiveHidden && activeIndex >= 0) {
|
|
104
|
-
visibleIndices.add(activeIndex);
|
|
105
|
-
while (visibleIndices.size > 1) {
|
|
106
|
-
const visibleWidth = sumWidths(visibleIndices, resolvedItemWidths);
|
|
107
|
-
if (visibleWidth + reservedMoreWidth <= containerWidth)
|
|
108
|
-
break;
|
|
109
|
-
const removableIndex = [...visibleIndices].sort((left, right) => right - left).find((index) => index !== activeIndex);
|
|
110
|
-
if (removableIndex == null)
|
|
111
|
-
break;
|
|
112
|
-
visibleIndices.delete(removableIndex);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
visibleItems: items.filter((_, index) => visibleIndices.has(index)),
|
|
117
|
-
hiddenItems: items.filter((_, index) => !visibleIndices.has(index))
|
|
118
|
-
};
|
|
119
|
-
};
|
|
120
39
|
|
|
121
40
|
// src/primitives/tabs/index.tsx
|
|
122
41
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
123
|
-
var mobileTabsMediaQuery = "(max-width:
|
|
42
|
+
var mobileTabsMediaQuery = "(max-width: 512px)";
|
|
124
43
|
var getTabButtonClassName = ({
|
|
125
44
|
enableAnimations,
|
|
126
45
|
isBarVariant,
|
|
@@ -132,7 +51,11 @@ var getTabButtonClassName = ({
|
|
|
132
51
|
return cn(
|
|
133
52
|
"cursor-pointer disabled:cursor-not-allowed",
|
|
134
53
|
"relative inline-flex h-full shrink-0 items-center justify-center gap-2 font-agg-sans",
|
|
135
|
-
|
|
54
|
+
isBarVariant ? "hover:text-agg-foreground hover:bg-agg-secondary-hover" : "hover:text-agg-foreground hover:font-bold",
|
|
55
|
+
getMotionClassName(
|
|
56
|
+
enableAnimations,
|
|
57
|
+
"transition-[colors] duration-300 ease-in-out motion-reduce:transition-none"
|
|
58
|
+
),
|
|
136
59
|
isBarVariant ? cn(
|
|
137
60
|
"min-w-20 overflow-hidden border-r border-agg-separator last:border-r-0",
|
|
138
61
|
isSmall ? "px-3 text-agg-sm leading-agg-5" : "px-4 text-agg-base leading-agg-6"
|
|
@@ -144,35 +67,6 @@ var getTabButtonClassName = ({
|
|
|
144
67
|
isDisabled && "cursor-not-allowed opacity-60"
|
|
145
68
|
);
|
|
146
69
|
};
|
|
147
|
-
var getMeasureTabClassName = ({
|
|
148
|
-
isBarVariant,
|
|
149
|
-
size
|
|
150
|
-
}) => {
|
|
151
|
-
const isSmall = size === "s";
|
|
152
|
-
return cn(
|
|
153
|
-
"relative inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap font-agg-sans",
|
|
154
|
-
isBarVariant ? cn(
|
|
155
|
-
"h-8 min-w-20 border-r border-agg-separator font-agg-bold",
|
|
156
|
-
isSmall ? "px-3 text-agg-sm leading-agg-5" : "px-4 text-agg-base leading-agg-6"
|
|
157
|
-
) : cn(
|
|
158
|
-
"h-12 font-agg-bold",
|
|
159
|
-
isSmall ? "px-4 text-agg-sm leading-agg-5" : "px-5 text-agg-base leading-agg-6"
|
|
160
|
-
)
|
|
161
|
-
);
|
|
162
|
-
};
|
|
163
|
-
var getMoreButtonClassName = ({
|
|
164
|
-
enableAnimations,
|
|
165
|
-
isBarVariant,
|
|
166
|
-
size
|
|
167
|
-
}) => {
|
|
168
|
-
const isSmall = size === "s";
|
|
169
|
-
return cn(
|
|
170
|
-
"cursor-pointer disabled:cursor-not-allowed",
|
|
171
|
-
"relative inline-flex shrink-0 items-center justify-center overflow-hidden font-agg-sans text-agg-foreground hover:bg-agg-secondary-hover",
|
|
172
|
-
getMotionClassName(enableAnimations, "transition-colors motion-reduce:transition-none"),
|
|
173
|
-
isBarVariant ? "h-8 rounded-r-agg-sm border border-agg-separator bg-agg-secondary px-2" : cn("h-12 bg-agg-secondary", isSmall ? "px-3 text-agg-sm" : "px-4 text-agg-base")
|
|
174
|
-
);
|
|
175
|
-
};
|
|
176
70
|
var Tabs = ({
|
|
177
71
|
items,
|
|
178
72
|
value,
|
|
@@ -180,12 +74,12 @@ var Tabs = ({
|
|
|
180
74
|
variant = "bar",
|
|
181
75
|
size = "m",
|
|
182
76
|
overflowBehavior,
|
|
183
|
-
overflowMenuAriaLabel,
|
|
184
77
|
ariaLabel,
|
|
185
|
-
className
|
|
78
|
+
className,
|
|
79
|
+
classNames
|
|
186
80
|
}) => {
|
|
187
81
|
const labels = useLabels();
|
|
188
|
-
const { enableAnimations
|
|
82
|
+
const { enableAnimations } = useSdkUiConfig();
|
|
189
83
|
const buttonRefs = useRef([]);
|
|
190
84
|
const dragStateRef = useRef({
|
|
191
85
|
isPointerDown: false,
|
|
@@ -197,8 +91,6 @@ var Tabs = ({
|
|
|
197
91
|
});
|
|
198
92
|
const suppressClickRef = useRef(false);
|
|
199
93
|
const resolvedAriaLabel = ariaLabel != null ? ariaLabel : labels.common.tabsAria;
|
|
200
|
-
const resolvedOverflowMenuAriaLabel = overflowMenuAriaLabel != null ? overflowMenuAriaLabel : labels.common.hiddenTabsAria;
|
|
201
|
-
const [isMoreMenuOpen, setIsMoreMenuOpen] = useState(false);
|
|
202
94
|
const [isMobileViewport, setIsMobileViewport] = useState(false);
|
|
203
95
|
const [isDraggingTabs, setIsDraggingTabs] = useState(false);
|
|
204
96
|
const [activeUnderlineStyle, setActiveUnderlineStyle] = useState({
|
|
@@ -206,39 +98,21 @@ var Tabs = ({
|
|
|
206
98
|
width: 0,
|
|
207
99
|
opacity: 0
|
|
208
100
|
});
|
|
209
|
-
const [overflowLayout, setOverflowLayout] = useState({
|
|
210
|
-
visibleItems: items,
|
|
211
|
-
hiddenItems: []
|
|
212
|
-
});
|
|
213
101
|
const [scrollAffordanceState, setScrollAffordanceState] = useState({
|
|
214
102
|
showStart: false,
|
|
215
103
|
showEnd: false
|
|
216
104
|
});
|
|
217
|
-
const containerRef = useRef(null);
|
|
218
105
|
const tabListRef = useRef(null);
|
|
219
|
-
const moreButtonMeasureRef = useRef(null);
|
|
220
|
-
const tabMeasureRefs = useRef(/* @__PURE__ */ new Map());
|
|
221
106
|
const isBarVariant = variant === "bar";
|
|
222
107
|
const resolvedOverflowBehavior = useMemo(() => {
|
|
223
108
|
if (overflowBehavior)
|
|
224
109
|
return overflowBehavior;
|
|
225
110
|
if (!isBarVariant)
|
|
226
111
|
return "scroll";
|
|
227
|
-
return isMobileViewport ? "select" : "
|
|
112
|
+
return isMobileViewport ? "select" : "scroll";
|
|
228
113
|
}, [isBarVariant, isMobileViewport, overflowBehavior]);
|
|
229
|
-
const shouldUseOverflowMenu = resolvedOverflowBehavior === "menu";
|
|
230
114
|
const shouldUseOverflowScroll = resolvedOverflowBehavior === "scroll";
|
|
231
115
|
const shouldUseOverflowSelect = resolvedOverflowBehavior === "select";
|
|
232
|
-
const handleMeasureTabRef = useCallback(
|
|
233
|
-
(tabValue, tabElement) => {
|
|
234
|
-
if (!tabElement) {
|
|
235
|
-
tabMeasureRefs.current.delete(tabValue);
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
tabMeasureRefs.current.set(tabValue, tabElement);
|
|
239
|
-
},
|
|
240
|
-
[]
|
|
241
|
-
);
|
|
242
116
|
useEffect(() => {
|
|
243
117
|
if (typeof window === "undefined")
|
|
244
118
|
return;
|
|
@@ -258,55 +132,6 @@ var Tabs = ({
|
|
|
258
132
|
mediaQueryList.removeListener(handleMediaQueryChange);
|
|
259
133
|
};
|
|
260
134
|
}, []);
|
|
261
|
-
const handleRecalculateOverflow = useCallback(() => {
|
|
262
|
-
var _a, _b, _c, _d;
|
|
263
|
-
if (!shouldUseOverflowMenu) {
|
|
264
|
-
setOverflowLayout({
|
|
265
|
-
visibleItems: items,
|
|
266
|
-
hiddenItems: []
|
|
267
|
-
});
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
const containerWidth = (_b = (_a = containerRef.current) == null ? void 0 : _a.clientWidth) != null ? _b : 0;
|
|
271
|
-
const moreButtonWidth = (_d = (_c = moreButtonMeasureRef.current) == null ? void 0 : _c.offsetWidth) != null ? _d : 0;
|
|
272
|
-
const itemWidthByValue = new Map(
|
|
273
|
-
items.map((item) => {
|
|
274
|
-
var _a2, _b2;
|
|
275
|
-
return [item.value, (_b2 = (_a2 = tabMeasureRefs.current.get(item.value)) == null ? void 0 : _a2.offsetWidth) != null ? _b2 : 0];
|
|
276
|
-
})
|
|
277
|
-
);
|
|
278
|
-
setOverflowLayout(
|
|
279
|
-
resolveTabsOverflowLayout({
|
|
280
|
-
items,
|
|
281
|
-
value,
|
|
282
|
-
containerWidth,
|
|
283
|
-
moreButtonWidth,
|
|
284
|
-
itemWidthByValue
|
|
285
|
-
})
|
|
286
|
-
);
|
|
287
|
-
}, [items, shouldUseOverflowMenu, value]);
|
|
288
|
-
useEffect(() => {
|
|
289
|
-
handleRecalculateOverflow();
|
|
290
|
-
}, [handleRecalculateOverflow]);
|
|
291
|
-
useEffect(() => {
|
|
292
|
-
if (!shouldUseOverflowMenu)
|
|
293
|
-
return;
|
|
294
|
-
const container = containerRef.current;
|
|
295
|
-
if (!container || typeof ResizeObserver === "undefined")
|
|
296
|
-
return;
|
|
297
|
-
const resizeObserver = new ResizeObserver(() => {
|
|
298
|
-
handleRecalculateOverflow();
|
|
299
|
-
});
|
|
300
|
-
resizeObserver.observe(container);
|
|
301
|
-
return () => {
|
|
302
|
-
resizeObserver.disconnect();
|
|
303
|
-
};
|
|
304
|
-
}, [handleRecalculateOverflow, shouldUseOverflowMenu]);
|
|
305
|
-
useEffect(() => {
|
|
306
|
-
if (overflowLayout.hiddenItems.length > 0)
|
|
307
|
-
return;
|
|
308
|
-
setIsMoreMenuOpen(false);
|
|
309
|
-
}, [overflowLayout.hiddenItems.length]);
|
|
310
135
|
const updateScrollAffordances = useCallback(() => {
|
|
311
136
|
if (!shouldUseOverflowScroll) {
|
|
312
137
|
setScrollAffordanceState({
|
|
@@ -324,8 +149,7 @@ var Tabs = ({
|
|
|
324
149
|
showEnd: maxScrollLeft - tabListElement.scrollLeft > 4
|
|
325
150
|
});
|
|
326
151
|
}, [shouldUseOverflowScroll]);
|
|
327
|
-
const renderedItems =
|
|
328
|
-
const shouldShowMoreButton = shouldUseOverflowMenu && overflowLayout.hiddenItems.length > 0;
|
|
152
|
+
const renderedItems = items;
|
|
329
153
|
const selectItems = useMemo(() => {
|
|
330
154
|
return items.map((item) => ({
|
|
331
155
|
value: item.value,
|
|
@@ -350,24 +174,24 @@ var Tabs = ({
|
|
|
350
174
|
(_a = buttonRefs.current[index]) == null ? void 0 : _a.focus();
|
|
351
175
|
};
|
|
352
176
|
const handleKeyDown = (event, index) => {
|
|
353
|
-
switch (event.key) {
|
|
177
|
+
switch (event == null ? void 0 : event.key) {
|
|
354
178
|
case "ArrowRight": {
|
|
355
|
-
event.preventDefault();
|
|
179
|
+
event == null ? void 0 : event.preventDefault();
|
|
356
180
|
handleMoveFocus(findNextEnabledIndex(renderedItems, index, 1));
|
|
357
181
|
return;
|
|
358
182
|
}
|
|
359
183
|
case "ArrowLeft": {
|
|
360
|
-
event.preventDefault();
|
|
184
|
+
event == null ? void 0 : event.preventDefault();
|
|
361
185
|
handleMoveFocus(findNextEnabledIndex(renderedItems, index, -1));
|
|
362
186
|
return;
|
|
363
187
|
}
|
|
364
188
|
case "Home": {
|
|
365
|
-
event.preventDefault();
|
|
189
|
+
event == null ? void 0 : event.preventDefault();
|
|
366
190
|
handleMoveFocus(findEdgeEnabledIndex(renderedItems, 1));
|
|
367
191
|
return;
|
|
368
192
|
}
|
|
369
193
|
case "End": {
|
|
370
|
-
event.preventDefault();
|
|
194
|
+
event == null ? void 0 : event.preventDefault();
|
|
371
195
|
handleMoveFocus(findEdgeEnabledIndex(renderedItems, -1));
|
|
372
196
|
return;
|
|
373
197
|
}
|
|
@@ -375,22 +199,16 @@ var Tabs = ({
|
|
|
375
199
|
return;
|
|
376
200
|
}
|
|
377
201
|
};
|
|
378
|
-
const activeHiddenItem = useMemo(() => {
|
|
379
|
-
if (!shouldUseOverflowMenu)
|
|
380
|
-
return void 0;
|
|
381
|
-
return overflowLayout.hiddenItems.find((item) => item.value === value);
|
|
382
|
-
}, [overflowLayout.hiddenItems, shouldUseOverflowMenu, value]);
|
|
383
202
|
const tabListClassName = cn(
|
|
384
203
|
"inline-flex items-stretch bg-agg-secondary",
|
|
385
|
-
|
|
204
|
+
shouldUseOverflowScroll ? cn(
|
|
386
205
|
"overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
387
206
|
getMotionClassName(enableAnimations, "scroll-smooth")
|
|
388
207
|
) : "overflow-x-auto",
|
|
389
208
|
isBarVariant ? "h-8 rounded-agg-sm border border-agg-separator" : "h-12 border-b border-agg-separator -mb-[1px]",
|
|
390
209
|
shouldUseOverflowScroll && "select-none",
|
|
391
210
|
shouldUseOverflowScroll && !isBarVariant && "snap-x snap-mandatory",
|
|
392
|
-
shouldUseOverflowScroll && (isDraggingTabs ? "cursor-grabbing" : "cursor-grab")
|
|
393
|
-
shouldShowMoreButton && isBarVariant && "rounded-r-none border-r-0"
|
|
211
|
+
shouldUseOverflowScroll && (isDraggingTabs ? "cursor-grabbing" : "cursor-grab")
|
|
394
212
|
);
|
|
395
213
|
const handleTabListWheel = (event) => {
|
|
396
214
|
if (!shouldUseOverflowScroll)
|
|
@@ -479,14 +297,10 @@ var Tabs = ({
|
|
|
479
297
|
const handleTabListClickCapture = (event) => {
|
|
480
298
|
if (!suppressClickRef.current)
|
|
481
299
|
return;
|
|
482
|
-
event.preventDefault();
|
|
483
|
-
event.stopPropagation();
|
|
300
|
+
event == null ? void 0 : event.preventDefault();
|
|
301
|
+
event == null ? void 0 : event.stopPropagation();
|
|
484
302
|
suppressClickRef.current = false;
|
|
485
303
|
};
|
|
486
|
-
const handleSelectHiddenItem = (nextValue) => {
|
|
487
|
-
handleSelect(nextValue);
|
|
488
|
-
setIsMoreMenuOpen(false);
|
|
489
|
-
};
|
|
490
304
|
const updateActiveUnderline = useCallback(() => {
|
|
491
305
|
if (isBarVariant) {
|
|
492
306
|
setActiveUnderlineStyle({
|
|
@@ -554,18 +368,34 @@ var Tabs = ({
|
|
|
554
368
|
useEffect(() => {
|
|
555
369
|
if (!shouldUseOverflowScroll)
|
|
556
370
|
return;
|
|
371
|
+
const tabListElement = tabListRef.current;
|
|
372
|
+
if (!tabListElement)
|
|
373
|
+
return;
|
|
557
374
|
const activeIndex = renderedItems.findIndex((item) => item.value === value);
|
|
558
375
|
const activeButton = activeIndex >= 0 ? buttonRefs.current[activeIndex] : null;
|
|
559
376
|
if (!activeButton)
|
|
560
377
|
return;
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
378
|
+
if (tabListElement.scrollWidth - tabListElement.clientWidth <= 1)
|
|
379
|
+
return;
|
|
380
|
+
const currentScrollLeft = tabListElement.scrollLeft;
|
|
381
|
+
const currentScrollRight = currentScrollLeft + tabListElement.clientWidth;
|
|
382
|
+
const activeButtonLeft = activeButton.offsetLeft;
|
|
383
|
+
const activeButtonRight = activeButtonLeft + activeButton.offsetWidth;
|
|
384
|
+
let nextScrollLeft = currentScrollLeft;
|
|
385
|
+
if (activeButtonLeft < currentScrollLeft) {
|
|
386
|
+
nextScrollLeft = activeButtonLeft;
|
|
387
|
+
} else if (activeButtonRight > currentScrollRight) {
|
|
388
|
+
nextScrollLeft = activeButtonRight - tabListElement.clientWidth;
|
|
389
|
+
}
|
|
390
|
+
if (Math.abs(nextScrollLeft - currentScrollLeft) < 1)
|
|
391
|
+
return;
|
|
392
|
+
tabListElement.scrollTo({
|
|
393
|
+
left: Math.max(0, nextScrollLeft),
|
|
394
|
+
behavior: getScrollBehavior(enableAnimations)
|
|
565
395
|
});
|
|
566
396
|
}, [enableAnimations, renderedItems, shouldUseOverflowScroll, value]);
|
|
567
397
|
if (shouldUseOverflowSelect) {
|
|
568
|
-
return /* @__PURE__ */ jsx("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsx(
|
|
398
|
+
return /* @__PURE__ */ jsx("div", { className: cn("w-full", className, classNames == null ? void 0 : classNames.root), children: /* @__PURE__ */ jsx(
|
|
569
399
|
Select,
|
|
570
400
|
{
|
|
571
401
|
ariaLabel,
|
|
@@ -580,10 +410,12 @@ var Tabs = ({
|
|
|
580
410
|
return /* @__PURE__ */ jsxs(
|
|
581
411
|
"div",
|
|
582
412
|
{
|
|
583
|
-
ref: containerRef,
|
|
584
413
|
className: cn(
|
|
585
|
-
"
|
|
586
|
-
|
|
414
|
+
"group/agg-tabs",
|
|
415
|
+
"relative max-w-full items-stretch font-agg-sans bg-agg-secondary",
|
|
416
|
+
"inline-flex",
|
|
417
|
+
className,
|
|
418
|
+
classNames == null ? void 0 : classNames.root
|
|
587
419
|
),
|
|
588
420
|
children: [
|
|
589
421
|
/* @__PURE__ */ jsxs(
|
|
@@ -592,7 +424,7 @@ var Tabs = ({
|
|
|
592
424
|
ref: tabListRef,
|
|
593
425
|
role: "tablist",
|
|
594
426
|
"aria-label": resolvedAriaLabel,
|
|
595
|
-
className: cn("relative", tabListClassName),
|
|
427
|
+
className: cn("relative", tabListClassName, classNames == null ? void 0 : classNames.tabList),
|
|
596
428
|
onClickCapture: handleTabListClickCapture,
|
|
597
429
|
onPointerCancel: handleEndTabListDrag,
|
|
598
430
|
onPointerDown: handleTabListPointerDown,
|
|
@@ -614,7 +446,11 @@ var Tabs = ({
|
|
|
614
446
|
"aria-selected": isActive,
|
|
615
447
|
"aria-label": item.label,
|
|
616
448
|
disabled: item.disabled,
|
|
617
|
-
onClick: () =>
|
|
449
|
+
onClick: (e) => {
|
|
450
|
+
e.preventDefault();
|
|
451
|
+
e.stopPropagation();
|
|
452
|
+
handleSelect(item.value);
|
|
453
|
+
},
|
|
618
454
|
onKeyDown: (event) => handleKeyDown(event, index),
|
|
619
455
|
className: cn(
|
|
620
456
|
getTabButtonClassName({
|
|
@@ -656,7 +492,7 @@ var Tabs = ({
|
|
|
656
492
|
"pointer-events-none absolute bottom-0 left-0 rounded-t-agg-sm bg-agg-primary",
|
|
657
493
|
getMotionClassName(
|
|
658
494
|
enableAnimations,
|
|
659
|
-
"transition-[transform,width,opacity] duration-300 ease-
|
|
495
|
+
"transition-[transform,width,opacity] duration-300 ease-in-out"
|
|
660
496
|
),
|
|
661
497
|
"h-[3px]"
|
|
662
498
|
),
|
|
@@ -672,7 +508,7 @@ var Tabs = ({
|
|
|
672
508
|
{
|
|
673
509
|
"aria-hidden": true,
|
|
674
510
|
className: cn(
|
|
675
|
-
"pointer-events-none absolute top-0 bottom-0 left-
|
|
511
|
+
"pointer-events-none absolute top-0 bottom-0 left-8 z-10 w-12 md:w-18 bg-linear-to-r from-agg-secondary via-agg-secondary to-transparent",
|
|
676
512
|
getMotionClassName(enableAnimations, "transition-opacity duration-200"),
|
|
677
513
|
scrollAffordanceState.showStart ? "opacity-100" : "opacity-0"
|
|
678
514
|
)
|
|
@@ -683,104 +519,13 @@ var Tabs = ({
|
|
|
683
519
|
{
|
|
684
520
|
"aria-hidden": true,
|
|
685
521
|
className: cn(
|
|
686
|
-
"pointer-events-none absolute top-0 right-
|
|
522
|
+
"pointer-events-none absolute top-0 right-8 bottom-0 z-10 w-12 md:w-18 bg-linear-to-l from-agg-secondary via-agg-secondary to-transparent",
|
|
687
523
|
getMotionClassName(enableAnimations, "transition-opacity duration-200"),
|
|
688
524
|
scrollAffordanceState.showEnd ? "opacity-100" : "opacity-0"
|
|
689
525
|
)
|
|
690
526
|
}
|
|
691
527
|
)
|
|
692
|
-
] }) : null
|
|
693
|
-
shouldShowMoreButton ? /* @__PURE__ */ jsxs(DropdownMenu.Root, { open: isMoreMenuOpen, onOpenChange: setIsMoreMenuOpen, children: [
|
|
694
|
-
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
695
|
-
"button",
|
|
696
|
-
{
|
|
697
|
-
type: "button",
|
|
698
|
-
"aria-label": resolvedOverflowMenuAriaLabel,
|
|
699
|
-
className: cn(
|
|
700
|
-
getMoreButtonClassName({
|
|
701
|
-
enableAnimations,
|
|
702
|
-
isBarVariant,
|
|
703
|
-
size
|
|
704
|
-
}),
|
|
705
|
-
activeHiddenItem ? "font-agg-bold text-agg-primary" : "font-agg-normal text-agg-foreground"
|
|
706
|
-
),
|
|
707
|
-
children: /* @__PURE__ */ jsx(Icon, { name: "dots-horizontal", size: isBarVariant ? "s" : "m", color: "currentColor" })
|
|
708
|
-
}
|
|
709
|
-
) }),
|
|
710
|
-
/* @__PURE__ */ jsx(DropdownMenu.Portal, { children: /* @__PURE__ */ jsx(
|
|
711
|
-
DropdownMenu.Content,
|
|
712
|
-
{
|
|
713
|
-
align: "end",
|
|
714
|
-
"aria-label": resolvedOverflowMenuAriaLabel,
|
|
715
|
-
className: cn(
|
|
716
|
-
AGG_ROOT_CLASS_NAME,
|
|
717
|
-
rootClassName,
|
|
718
|
-
"z-agg-dropdown mt-2 min-w-48 overflow-hidden rounded-agg-md border border-agg-separator bg-agg-secondary shadow-agg-popover outline-none"
|
|
719
|
-
),
|
|
720
|
-
"data-agg-animations": enableAnimations ? "true" : "false",
|
|
721
|
-
sideOffset: 8,
|
|
722
|
-
children: overflowLayout.hiddenItems.map((item) => {
|
|
723
|
-
const isSelected = item.value === value;
|
|
724
|
-
return /* @__PURE__ */ jsxs(
|
|
725
|
-
DropdownMenu.Item,
|
|
726
|
-
{
|
|
727
|
-
disabled: item.disabled,
|
|
728
|
-
onSelect: () => handleSelectHiddenItem(item.value),
|
|
729
|
-
className: cn(
|
|
730
|
-
"cursor-pointer disabled:cursor-not-allowed",
|
|
731
|
-
"flex w-full items-center gap-2 px-4 py-2 text-left text-agg-sm leading-agg-5 outline-none",
|
|
732
|
-
getMotionClassName(enableAnimations, "transition-colors"),
|
|
733
|
-
"focus:bg-agg-secondary-hover data-[highlighted]:bg-agg-secondary-hover",
|
|
734
|
-
isSelected ? "font-agg-bold text-agg-primary" : "font-agg-normal text-agg-foreground",
|
|
735
|
-
item.disabled && "cursor-not-allowed opacity-60"
|
|
736
|
-
),
|
|
737
|
-
children: [
|
|
738
|
-
item.icon ? /* @__PURE__ */ jsx("span", { className: "inline-flex shrink-0 items-center justify-center", children: item.icon }) : null,
|
|
739
|
-
/* @__PURE__ */ jsx("span", { className: "truncate whitespace-nowrap [&::first-letter]:uppercase", children: item.label })
|
|
740
|
-
]
|
|
741
|
-
},
|
|
742
|
-
item.value
|
|
743
|
-
);
|
|
744
|
-
})
|
|
745
|
-
}
|
|
746
|
-
) })
|
|
747
|
-
] }) : null,
|
|
748
|
-
shouldUseOverflowMenu ? /* @__PURE__ */ jsxs(
|
|
749
|
-
"div",
|
|
750
|
-
{
|
|
751
|
-
"aria-hidden": true,
|
|
752
|
-
className: "pointer-events-none invisible fixed top-0 left-0 -z-10 h-0 overflow-hidden whitespace-nowrap",
|
|
753
|
-
children: [
|
|
754
|
-
items.map((item) => /* @__PURE__ */ jsxs(
|
|
755
|
-
"span",
|
|
756
|
-
{
|
|
757
|
-
ref: (tabElement) => handleMeasureTabRef(item.value, tabElement),
|
|
758
|
-
className: getMeasureTabClassName({
|
|
759
|
-
isBarVariant,
|
|
760
|
-
size
|
|
761
|
-
}),
|
|
762
|
-
children: [
|
|
763
|
-
item.icon ? /* @__PURE__ */ jsx("span", { className: "inline-flex shrink-0 items-center justify-center", children: item.icon }) : null,
|
|
764
|
-
/* @__PURE__ */ jsx("span", { children: item.label })
|
|
765
|
-
]
|
|
766
|
-
},
|
|
767
|
-
`measure-${item.value}`
|
|
768
|
-
)),
|
|
769
|
-
/* @__PURE__ */ jsx(
|
|
770
|
-
"span",
|
|
771
|
-
{
|
|
772
|
-
ref: moreButtonMeasureRef,
|
|
773
|
-
className: getMoreButtonClassName({
|
|
774
|
-
enableAnimations,
|
|
775
|
-
isBarVariant,
|
|
776
|
-
size
|
|
777
|
-
}),
|
|
778
|
-
children: /* @__PURE__ */ jsx(Icon, { name: "dots-horizontal", size: isBarVariant ? "s" : "m", color: "currentColor" })
|
|
779
|
-
}
|
|
780
|
-
)
|
|
781
|
-
]
|
|
782
|
-
}
|
|
783
|
-
) : null
|
|
528
|
+
] }) : null
|
|
784
529
|
]
|
|
785
530
|
}
|
|
786
531
|
);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
VenueLogo
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-D7JTOGYP.mjs";
|
|
4
4
|
import {
|
|
5
5
|
Icon
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PZTHM6WG.mjs";
|
|
7
7
|
import {
|
|
8
8
|
getIconA11yProps
|
|
9
9
|
} from "./chunk-BNDFQPHF.mjs";
|
|
@@ -92,6 +92,7 @@ var SearchResultRow = ({
|
|
|
92
92
|
{
|
|
93
93
|
type: "button",
|
|
94
94
|
className: cn(
|
|
95
|
+
"group/agg-search-result",
|
|
95
96
|
"group flex w-full items-center gap-6 px-5 py-3 text-left",
|
|
96
97
|
"focus-visible:outline-none focus-visible:bg-agg-secondary-hover",
|
|
97
98
|
"hover:bg-agg-secondary-hover",
|
|
@@ -124,13 +125,13 @@ var SearchResultRow = ({
|
|
|
124
125
|
)
|
|
125
126
|
] }),
|
|
126
127
|
/* @__PURE__ */ jsxs2("div", { className: cn("flex w-[200px] shrink-0 items-center gap-2", classNames == null ? void 0 : classNames.resultMeta), children: [
|
|
127
|
-
/* @__PURE__ */ jsx2(VenueLogo, { venue: item.venue, size: "
|
|
128
|
+
/* @__PURE__ */ jsx2(VenueLogo, { venue: item.venue, size: "small" }),
|
|
128
129
|
/* @__PURE__ */ jsxs2("div", { className: "flex min-w-0 flex-1 items-baseline gap-2", children: [
|
|
129
130
|
/* @__PURE__ */ jsx2(
|
|
130
131
|
"p",
|
|
131
132
|
{
|
|
132
133
|
className: cn(
|
|
133
|
-
"
|
|
134
|
+
"agg-type-body-large-strong shrink-0 whitespace-nowrap text-agg-foreground",
|
|
134
135
|
classNames == null ? void 0 : classNames.resultValue
|
|
135
136
|
),
|
|
136
137
|
children: item.valueLabel
|
|
@@ -152,7 +153,7 @@ var SearchResultRow = ({
|
|
|
152
153
|
Icon,
|
|
153
154
|
{
|
|
154
155
|
name: "chevron-right",
|
|
155
|
-
size: "
|
|
156
|
+
size: "medium",
|
|
156
157
|
className: cn("h-5 w-5 shrink-0 text-agg-muted-foreground", classNames == null ? void 0 : classNames.resultChevron)
|
|
157
158
|
}
|
|
158
159
|
)
|
|
@@ -189,7 +190,7 @@ var Search = ({
|
|
|
189
190
|
const handleInputChange = (event) => {
|
|
190
191
|
onValueChange(event.target.value);
|
|
191
192
|
};
|
|
192
|
-
return /* @__PURE__ */ jsxs2("div", { className: cn("flex w-full flex-col gap-1", classNames == null ? void 0 : classNames.root), children: [
|
|
193
|
+
return /* @__PURE__ */ jsxs2("div", { className: cn("group/agg-search", "flex w-full flex-col gap-1", classNames == null ? void 0 : classNames.root), children: [
|
|
193
194
|
/* @__PURE__ */ jsx2("label", { className: "w-full", children: /* @__PURE__ */ jsxs2(
|
|
194
195
|
"div",
|
|
195
196
|
{
|
|
@@ -199,7 +200,7 @@ var Search = ({
|
|
|
199
200
|
"focus-within:border-2 focus-within:border-agg-primary",
|
|
200
201
|
getMotionClassName(
|
|
201
202
|
enableAnimations,
|
|
202
|
-
"transition-[border-color,box-shadow] duration-200 ease-out"
|
|
203
|
+
"transition-[border-color,box-shadow] duration-200 ease-in-out"
|
|
203
204
|
),
|
|
204
205
|
classNames == null ? void 0 : classNames.inputContainer
|
|
205
206
|
),
|
|
@@ -208,7 +209,7 @@ var Search = ({
|
|
|
208
209
|
Icon,
|
|
209
210
|
{
|
|
210
211
|
name: "search",
|
|
211
|
-
size: "
|
|
212
|
+
size: "small",
|
|
212
213
|
className: cn("text-agg-muted-foreground", classNames == null ? void 0 : classNames.searchIcon)
|
|
213
214
|
}
|
|
214
215
|
),
|