@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.
Files changed (129) hide show
  1. package/dist/badge.d.mts +5 -3
  2. package/dist/badge.d.ts +5 -3
  3. package/dist/badge.js +52 -12
  4. package/dist/badge.mjs +1 -1
  5. package/dist/button.d.mts +2 -2
  6. package/dist/button.d.ts +2 -2
  7. package/dist/button.js +19 -34
  8. package/dist/button.mjs +2 -2
  9. package/dist/card.d.mts +4 -2
  10. package/dist/card.d.ts +4 -2
  11. package/dist/card.js +8 -4
  12. package/dist/card.mjs +1 -1
  13. package/dist/chart.js +14 -7
  14. package/dist/chart.mjs +2 -2
  15. package/dist/{chunk-ZYREURXK.mjs → chunk-2MJY6RVY.mjs} +35 -35
  16. package/dist/{chunk-P23GR7NX.mjs → chunk-422MCIXV.mjs} +1 -1
  17. package/dist/chunk-4KMFDCAH.mjs +371 -0
  18. package/dist/{chunk-HM3CGN32.mjs → chunk-5GDNWQZS.mjs} +46 -46
  19. package/dist/{chunk-VIP7HSOU.mjs → chunk-5K7VXAYM.mjs} +4 -0
  20. package/dist/{chunk-BJNHDIDW.mjs → chunk-6425RRBI.mjs} +4 -4
  21. package/dist/{chunk-O2XH4A3G.mjs → chunk-7NISYVSJ.mjs} +22 -22
  22. package/dist/{chunk-MXBPDNMC.mjs → chunk-BEDUFOIG.mjs} +95 -22
  23. package/dist/{chunk-VC7LTPQD.mjs → chunk-BN5VVHNV.mjs} +2 -2
  24. package/dist/{chunk-JRS2M5GY.mjs → chunk-CTVMT3VL.mjs} +13 -6
  25. package/dist/{chunk-USLTNDJA.mjs → chunk-D5FTFSKL.mjs} +8 -8
  26. package/dist/{chunk-BLSHXIAH.mjs → chunk-D7JTOGYP.mjs} +6 -11
  27. package/dist/{chunk-W2DMBW4E.mjs → chunk-DL7STJQ5.mjs} +61 -33
  28. package/dist/chunk-ERGNR6UQ.mjs +67 -0
  29. package/dist/chunk-FO263M3V.mjs +10 -0
  30. package/dist/{chunk-3O4U3E5I.mjs → chunk-FO2QCB4Z.mjs} +8 -4
  31. package/dist/{chunk-OGI343OV.mjs → chunk-IGPNIM2B.mjs} +3 -2
  32. package/dist/chunk-K6IJ4WBM.mjs +67 -0
  33. package/dist/{chunk-PGSPYQOW.mjs → chunk-KAGYJ4XT.mjs} +17 -27
  34. package/dist/{chunk-RGZQHSNJ.mjs → chunk-KCPDVBIZ.mjs} +26 -17
  35. package/dist/{chunk-ZHKMDK5M.mjs → chunk-KFOATMAE.mjs} +87 -87
  36. package/dist/{chunk-H4UIBDL2.mjs → chunk-LK5D3ZTK.mjs} +15 -15
  37. package/dist/{chunk-VUDJ3PYM.mjs → chunk-O46OFVH6.mjs} +40 -16
  38. package/dist/{chunk-RXACBTON.mjs → chunk-OA2IZ3VW.mjs} +16 -22
  39. package/dist/{chunk-F236MLT6.mjs → chunk-PZTHM6WG.mjs} +13 -10
  40. package/dist/{chunk-XELWY7SO.mjs → chunk-QYZKC7KG.mjs} +137 -104
  41. package/dist/{chunk-LWTQD345.mjs → chunk-S3H63TQ5.mjs} +57 -312
  42. package/dist/{chunk-MNSHWA6M.mjs → chunk-TA7LKYKP.mjs} +9 -8
  43. package/dist/{chunk-JH5VMNDL.mjs → chunk-V52WSZHQ.mjs} +8 -7
  44. package/dist/chunk-YJA5VQW6.mjs +167 -0
  45. package/dist/{chunk-EXF4SESB.mjs → chunk-ZFMCCBP6.mjs} +1 -1
  46. package/dist/connect-button.js +51 -73
  47. package/dist/connect-button.mjs +6 -6
  48. package/dist/deposit-modal.js +171 -177
  49. package/dist/deposit-modal.mjs +7 -7
  50. package/dist/event-list-item-details.js +222 -198
  51. package/dist/event-list-item-details.mjs +11 -11
  52. package/dist/event-list-item.js +172 -114
  53. package/dist/event-list-item.mjs +8 -8
  54. package/dist/event-list.js +391 -507
  55. package/dist/event-list.mjs +11 -11
  56. package/dist/event-market-page.js +826 -764
  57. package/dist/event-market-page.mjs +19 -19
  58. package/dist/hello-world.js +28 -16
  59. package/dist/hello-world.mjs +2 -2
  60. package/dist/home-page.js +395 -511
  61. package/dist/home-page.mjs +12 -12
  62. package/dist/icon.d.mts +1 -1
  63. package/dist/icon.d.ts +1 -1
  64. package/dist/icon.js +15 -17
  65. package/dist/icon.mjs +2 -2
  66. package/dist/index.d.mts +4 -4
  67. package/dist/index.d.ts +4 -4
  68. package/dist/index.js +1135 -944
  69. package/dist/index.mjs +34 -32
  70. package/dist/loading-icon.d.mts +1 -1
  71. package/dist/loading-icon.d.ts +1 -1
  72. package/dist/loading-icon.js +5 -9
  73. package/dist/loading-icon.mjs +2 -2
  74. package/dist/market-details.d.mts +2 -2
  75. package/dist/market-details.d.ts +2 -2
  76. package/dist/market-details.js +357 -551
  77. package/dist/market-details.mjs +13 -13
  78. package/dist/modal.js +4 -0
  79. package/dist/modal.mjs +1 -1
  80. package/dist/onboarding-modal.js +63 -67
  81. package/dist/onboarding-modal.mjs +6 -6
  82. package/dist/place-order.js +231 -466
  83. package/dist/place-order.mjs +9 -9
  84. package/dist/profile-modal.js +52 -65
  85. package/dist/profile-modal.mjs +6 -6
  86. package/dist/search.d.mts +2 -2
  87. package/dist/search.d.ts +2 -2
  88. package/dist/search.js +28 -34
  89. package/dist/search.mjs +4 -4
  90. package/dist/select.js +104 -99
  91. package/dist/select.mjs +3 -3
  92. package/dist/settlement.js +279 -59
  93. package/dist/settlement.mjs +6 -6
  94. package/dist/skeleton.js +15 -10
  95. package/dist/skeleton.mjs +2 -2
  96. package/dist/styles.css +1 -1
  97. package/dist/switch-button.js +13 -6
  98. package/dist/switch-button.mjs +1 -1
  99. package/dist/tabs.d.mts +8 -4
  100. package/dist/tabs.d.ts +8 -4
  101. package/dist/tabs.js +163 -420
  102. package/dist/tabs.mjs +4 -4
  103. package/dist/tailwind.css +1 -1
  104. package/dist/types-BVj9ky9P.d.mts +3 -0
  105. package/dist/types-BVj9ky9P.d.ts +3 -0
  106. package/dist/typography.d.mts +4 -2
  107. package/dist/typography.d.ts +4 -2
  108. package/dist/typography.js +49 -18
  109. package/dist/typography.mjs +5 -3
  110. package/dist/user-profile-page.d.mts +2 -2
  111. package/dist/user-profile-page.d.ts +2 -2
  112. package/dist/user-profile-page.js +200 -474
  113. package/dist/user-profile-page.mjs +7 -7
  114. package/dist/venue-logo.d.mts +2 -2
  115. package/dist/venue-logo.d.ts +2 -2
  116. package/dist/venue-logo.js +6 -11
  117. package/dist/venue-logo.mjs +1 -1
  118. package/dist/{venue-logo.types-BSAuY84j.d.ts → venue-logo.types-D8Cu2rAm.d.ts} +1 -1
  119. package/dist/{venue-logo.types-DACqcTvY.d.mts → venue-logo.types-HRf1yBLD.d.mts} +1 -1
  120. package/dist/withdraw-modal.js +72 -85
  121. package/dist/withdraw-modal.mjs +6 -6
  122. package/package.json +2 -2
  123. package/dist/chunk-AEMAY3MR.mjs +0 -44
  124. package/dist/chunk-DYEWXEEY.mjs +0 -37
  125. package/dist/chunk-QFQHD2V6.mjs +0 -146
  126. package/dist/chunk-ZDF7QP4G.mjs +0 -160
  127. package/dist/chunk-ZVBVGWSP.mjs +0 -15
  128. package/dist/types-Bed6Q0EK.d.mts +0 -3
  129. package/dist/types-Bed6Q0EK.d.ts +0 -3
@@ -1,11 +1,7 @@
1
1
  import {
2
2
  Select
3
- } from "./chunk-ZDF7QP4G.mjs";
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: 767px)";
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
- getMotionClassName(enableAnimations, "transition-colors motion-reduce:transition-none"),
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, rootClassName } = useSdkUiConfig();
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" : "menu";
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 = shouldUseOverflowMenu ? overflowLayout.visibleItems : items;
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
- shouldUseOverflowMenu ? "min-w-0 flex-1 overflow-hidden" : shouldUseOverflowScroll ? cn(
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
- activeButton.scrollIntoView({
562
- behavior: getScrollBehavior(enableAnimations),
563
- block: "nearest",
564
- inline: "nearest"
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
- "relative inline-flex max-w-full items-stretch font-agg-sans bg-agg-secondary",
586
- className
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: () => handleSelect(item.value),
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-[cubic-bezier(0.4,0,0.2,1)]"
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-0 z-10 w-12 md:w-18 bg-gradient-to-r from-agg-secondary via-agg-secondary to-transparent",
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-0 bottom-0 z-10 w-12 md:w-18 bg-gradient-to-l from-agg-secondary via-agg-secondary to-transparent",
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-BLSHXIAH.mjs";
3
+ } from "./chunk-D7JTOGYP.mjs";
4
4
  import {
5
5
  Icon
6
- } from "./chunk-F236MLT6.mjs";
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: "s" }),
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
- "shrink-0 whitespace-nowrap font-agg-sans text-[18px] leading-7 font-agg-bold text-agg-foreground",
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: "m",
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: "s",
212
+ size: "small",
212
213
  className: cn("text-agg-muted-foreground", classNames == null ? void 0 : classNames.searchIcon)
213
214
  }
214
215
  ),