@exponential_app/eui-react 0.2.1 → 0.4.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.
@@ -5,8 +5,30 @@ import {
5
5
  ChoiceTiles2,
6
6
  choiceColumns2,
7
7
  choiceToggle2,
8
- choiceValues2
9
- } from "../chunks/index-5yzzfez5.js";
8
+ choiceValues2,
9
+ buttonVariants2,
10
+ Button2,
11
+ DropdownMenu2,
12
+ DropdownMenuPortal2,
13
+ DropdownMenuTrigger2,
14
+ DropdownMenuContent2,
15
+ DropdownMenuGroup2,
16
+ DropdownMenuItem2,
17
+ DropdownMenuCheckboxItem2,
18
+ DropdownMenuRadioGroup2,
19
+ DropdownMenuRadioItem2,
20
+ DropdownMenuLabel2,
21
+ DropdownMenuSeparator2,
22
+ DropdownMenuShortcut2,
23
+ DropdownMenuSub2,
24
+ DropdownMenuSubTrigger2,
25
+ DropdownMenuSubContent2,
26
+ useMediaQuery2,
27
+ ZOOM_MATH2,
28
+ useZoomableImage2,
29
+ ZOOMABLE_IMAGE_STRINGS2,
30
+ ZoomableImage2
31
+ } from "../chunks/index-eny7hh6w.js";
10
32
 
11
33
  // packages/exponential-ui-react/src/primitives/alert.tsx
12
34
  import { ALERT_CLASSES, alertVariants } from "@exponential_app/eui/web/primitives";
@@ -253,26 +275,6 @@ function BreadcrumbEllipsis({ className, ...props }) {
253
275
  ]
254
276
  });
255
277
  }
256
- // packages/exponential-ui-react/src/primitives/button.tsx
257
- import { Slot as Slot2 } from "radix-ui";
258
- import { buttonVariants } from "@exponential_app/eui/web/primitives";
259
- import { jsx as jsx6 } from "react/jsx-runtime";
260
- function Button({
261
- className,
262
- variant = `default`,
263
- size = `default`,
264
- asChild = false,
265
- ...props
266
- }) {
267
- const Comp = asChild ? Slot2.Root : `button`;
268
- return /* @__PURE__ */ jsx6(Comp, {
269
- "data-slot": "button",
270
- "data-variant": variant,
271
- "data-size": size,
272
- className: cn2(buttonVariants({ variant, size, className })),
273
- ...props
274
- });
275
- }
276
278
  // packages/exponential-ui-react/src/primitives/calendar.tsx
277
279
  import * as React from "react";
278
280
  import {
@@ -284,8 +286,8 @@ import {
284
286
  DayPicker,
285
287
  getDefaultClassNames
286
288
  } from "react-day-picker";
287
- import { CALENDAR_CLASSES, buttonVariants as buttonVariants2 } from "@exponential_app/eui/web/primitives";
288
- import { jsx as jsx7 } from "react/jsx-runtime";
289
+ import { CALENDAR_CLASSES, buttonVariants } from "@exponential_app/eui/web/primitives";
290
+ import { jsx as jsx6 } from "react/jsx-runtime";
289
291
  function Calendar({
290
292
  className,
291
293
  classNames,
@@ -298,7 +300,7 @@ function Calendar({
298
300
  }) {
299
301
  const defaultClassNames = getDefaultClassNames();
300
302
  const parts = CALENDAR_CLASSES.classNames;
301
- return /* @__PURE__ */ jsx7(DayPicker, {
303
+ return /* @__PURE__ */ jsx6(DayPicker, {
302
304
  showOutsideDays,
303
305
  className: cn2(CALENDAR_CLASSES.root, className),
304
306
  captionLayout,
@@ -311,8 +313,8 @@ function Calendar({
311
313
  months: cn2(parts.months, defaultClassNames.months),
312
314
  month: cn2(parts.month, defaultClassNames.month),
313
315
  nav: cn2(parts.nav, defaultClassNames.nav),
314
- button_previous: cn2(buttonVariants2({ variant: buttonVariant }), parts.button_previous, defaultClassNames.button_previous),
315
- button_next: cn2(buttonVariants2({ variant: buttonVariant }), parts.button_next, defaultClassNames.button_next),
316
+ button_previous: cn2(buttonVariants({ variant: buttonVariant }), parts.button_previous, defaultClassNames.button_previous),
317
+ button_next: cn2(buttonVariants({ variant: buttonVariant }), parts.button_next, defaultClassNames.button_next),
316
318
  month_caption: cn2(parts.month_caption, defaultClassNames.month_caption),
317
319
  dropdowns: cn2(parts.dropdowns, defaultClassNames.dropdowns),
318
320
  dropdown_root: cn2(parts.dropdown_root, defaultClassNames.dropdown_root),
@@ -336,7 +338,7 @@ function Calendar({
336
338
  },
337
339
  components: {
338
340
  Root: ({ className, rootRef, ...props }) => {
339
- return /* @__PURE__ */ jsx7("div", {
341
+ return /* @__PURE__ */ jsx6("div", {
340
342
  "data-slot": "calendar",
341
343
  ref: rootRef,
342
344
  className: cn2(className),
@@ -345,27 +347,27 @@ function Calendar({
345
347
  },
346
348
  Chevron: ({ className, orientation, ...props }) => {
347
349
  if (orientation === `left`) {
348
- return /* @__PURE__ */ jsx7(ChevronLeftIcon, {
350
+ return /* @__PURE__ */ jsx6(ChevronLeftIcon, {
349
351
  className: cn2(CALENDAR_CLASSES.chevron, className),
350
352
  ...props
351
353
  });
352
354
  }
353
355
  if (orientation === `right`) {
354
- return /* @__PURE__ */ jsx7(ChevronRightIcon, {
356
+ return /* @__PURE__ */ jsx6(ChevronRightIcon, {
355
357
  className: cn2(CALENDAR_CLASSES.chevron, className),
356
358
  ...props
357
359
  });
358
360
  }
359
- return /* @__PURE__ */ jsx7(ChevronDownIcon, {
361
+ return /* @__PURE__ */ jsx6(ChevronDownIcon, {
360
362
  className: cn2(CALENDAR_CLASSES.chevron, className),
361
363
  ...props
362
364
  });
363
365
  },
364
366
  DayButton: CalendarDayButton,
365
367
  WeekNumber: ({ children, ...props }) => {
366
- return /* @__PURE__ */ jsx7("td", {
368
+ return /* @__PURE__ */ jsx6("td", {
367
369
  ...props,
368
- children: /* @__PURE__ */ jsx7("div", {
370
+ children: /* @__PURE__ */ jsx6("div", {
369
371
  className: CALENDAR_CLASSES.weekNumber,
370
372
  children
371
373
  })
@@ -388,7 +390,7 @@ function CalendarDayButton({
388
390
  if (modifiers.focused)
389
391
  ref.current?.focus();
390
392
  }, [modifiers.focused]);
391
- return /* @__PURE__ */ jsx7(Button, {
393
+ return /* @__PURE__ */ jsx6(Button2, {
392
394
  ref,
393
395
  variant: "ghost",
394
396
  size: "icon",
@@ -403,56 +405,114 @@ function CalendarDayButton({
403
405
  }
404
406
  // packages/exponential-ui-react/src/primitives/card.tsx
405
407
  import { CARD_CLASSES } from "@exponential_app/eui/web/primitives";
406
- import { jsx as jsx8 } from "react/jsx-runtime";
408
+ import { jsx as jsx7 } from "react/jsx-runtime";
407
409
  function Card({ className, ...props }) {
408
- return /* @__PURE__ */ jsx8("div", {
410
+ return /* @__PURE__ */ jsx7("div", {
409
411
  "data-slot": "card",
410
412
  className: cn2(CARD_CLASSES.root, className),
411
413
  ...props
412
414
  });
413
415
  }
414
416
  function CardHeader({ className, ...props }) {
415
- return /* @__PURE__ */ jsx8("div", {
417
+ return /* @__PURE__ */ jsx7("div", {
416
418
  "data-slot": "card-header",
417
419
  className: cn2(CARD_CLASSES.header, className),
418
420
  ...props
419
421
  });
420
422
  }
421
423
  function CardTitle({ className, ...props }) {
422
- return /* @__PURE__ */ jsx8("div", {
424
+ return /* @__PURE__ */ jsx7("div", {
423
425
  "data-slot": "card-title",
424
426
  className: cn2(CARD_CLASSES.title, className),
425
427
  ...props
426
428
  });
427
429
  }
428
430
  function CardDescription({ className, ...props }) {
429
- return /* @__PURE__ */ jsx8("div", {
431
+ return /* @__PURE__ */ jsx7("div", {
430
432
  "data-slot": "card-description",
431
433
  className: cn2(CARD_CLASSES.description, className),
432
434
  ...props
433
435
  });
434
436
  }
435
437
  function CardAction({ className, ...props }) {
436
- return /* @__PURE__ */ jsx8("div", {
438
+ return /* @__PURE__ */ jsx7("div", {
437
439
  "data-slot": "card-action",
438
440
  className: cn2(CARD_CLASSES.action, className),
439
441
  ...props
440
442
  });
441
443
  }
442
444
  function CardContent({ className, ...props }) {
443
- return /* @__PURE__ */ jsx8("div", {
445
+ return /* @__PURE__ */ jsx7("div", {
444
446
  "data-slot": "card-content",
445
447
  className: cn2(CARD_CLASSES.content, className),
446
448
  ...props
447
449
  });
448
450
  }
449
451
  function CardFooter({ className, ...props }) {
450
- return /* @__PURE__ */ jsx8("div", {
452
+ return /* @__PURE__ */ jsx7("div", {
451
453
  "data-slot": "card-footer",
452
454
  className: cn2(CARD_CLASSES.footer, className),
453
455
  ...props
454
456
  });
455
457
  }
458
+ // packages/exponential-ui-react/src/primitives/carousel.tsx
459
+ import { useLayoutEffect, useRef as useRef2 } from "react";
460
+ import { CAROUSEL_CLASSES, carouselCounterText } from "@exponential_app/eui/web/primitives";
461
+ import { CAROUSEL_GEOMETRY, carouselCounterText as carouselCounterText2 } from "@exponential_app/eui/web/primitives";
462
+ import { jsx as jsx8 } from "react/jsx-runtime";
463
+ function CarouselCounter({ page, total, className, ...props }) {
464
+ return /* @__PURE__ */ jsx8("span", {
465
+ "data-slot": "carousel-counter",
466
+ "aria-hidden": "true",
467
+ className: cn2(CAROUSEL_CLASSES.counter, className),
468
+ ...props,
469
+ children: carouselCounterText(page, total)
470
+ });
471
+ }
472
+ var defaultPageLabel = (page, total) => `Page ${page + 1} of ${total}`;
473
+ function CarouselThumbnails({ count, urls, page, onPageChange, pageLabel = defaultPageLabel, className, ...props }) {
474
+ const strip = useRef2(null);
475
+ useLayoutEffect(() => {
476
+ const el = strip.current;
477
+ const thumb = el?.children[page];
478
+ if (!el || !thumb)
479
+ return;
480
+ const a = el.getBoundingClientRect();
481
+ const b = thumb.getBoundingClientRect();
482
+ const delta = b.left < a.left ? b.left - a.left : b.right > a.right ? b.right - a.right : 0;
483
+ if (delta !== 0)
484
+ el.scrollLeft += delta;
485
+ }, [page, count]);
486
+ const n = Math.max(0, Math.floor(count));
487
+ return /* @__PURE__ */ jsx8("div", {
488
+ ref: strip,
489
+ "data-slot": "carousel-thumbnails",
490
+ className: cn2(CAROUSEL_CLASSES.thumbnails, className),
491
+ ...props,
492
+ children: Array.from({ length: n }, (_, i) => {
493
+ const current = i === page;
494
+ const src = urls[i];
495
+ return /* @__PURE__ */ jsx8("button", {
496
+ type: "button",
497
+ "data-slot": "carousel-thumbnail",
498
+ "data-current": current ? `true` : undefined,
499
+ "aria-current": current ? `true` : undefined,
500
+ "aria-label": pageLabel(i, n),
501
+ className: CAROUSEL_CLASSES.thumbnail,
502
+ onClick: () => onPageChange?.(i),
503
+ children: src ? /* @__PURE__ */ jsx8("img", {
504
+ src,
505
+ alt: "",
506
+ "aria-hidden": "true",
507
+ loading: "lazy",
508
+ decoding: "async",
509
+ draggable: false,
510
+ className: CAROUSEL_CLASSES.thumbnailImage
511
+ }) : null
512
+ }, i);
513
+ })
514
+ });
515
+ }
456
516
  // packages/exponential-ui-react/src/primitives/checkbox.tsx
457
517
  import { CheckIcon } from "lucide-react";
458
518
  import { Checkbox as CheckboxPrimitive } from "radix-ui";
@@ -537,7 +597,7 @@ function CodeBlockCopyButton({
537
597
  }, [copied]);
538
598
  return /* @__PURE__ */ jsxs3(Fragment, {
539
599
  children: [
540
- /* @__PURE__ */ jsx10(Button, {
600
+ /* @__PURE__ */ jsx10(Button2, {
541
601
  "data-slot": "code-block-copy-button",
542
602
  "data-copied": copied || undefined,
543
603
  variant,
@@ -946,7 +1006,7 @@ var ContextRing = forwardRef(function ContextRing({ percent, tone, showEmpty = f
946
1006
  if (value === null && !showEmpty)
947
1007
  return null;
948
1008
  const { circumference, dashOffset } = ringGeometry(value ?? 0);
949
- return /* @__PURE__ */ jsx13(Button, {
1009
+ return /* @__PURE__ */ jsx13(Button2, {
950
1010
  ref,
951
1011
  type: "button",
952
1012
  variant: "ghost",
@@ -1284,20 +1344,6 @@ function SheetDescription({
1284
1344
  });
1285
1345
  }
1286
1346
 
1287
- // packages/exponential-ui-react/src/primitives/use-media-query.ts
1288
- import { useCallback as useCallback3, useSyncExternalStore as useSyncExternalStore2 } from "react";
1289
- function useMediaQuery(query) {
1290
- const subscribe = useCallback3((onChange) => {
1291
- if (typeof window === `undefined` || typeof window.matchMedia !== `function`)
1292
- return () => {};
1293
- const mql = window.matchMedia(query);
1294
- mql.addEventListener(`change`, onChange);
1295
- return () => mql.removeEventListener(`change`, onChange);
1296
- }, [query]);
1297
- const read = () => typeof window !== `undefined` && typeof window.matchMedia === `function` && window.matchMedia(query).matches;
1298
- return useSyncExternalStore2(subscribe, read, () => false);
1299
- }
1300
-
1301
1347
  // packages/exponential-ui-react/src/primitives/dialog.tsx
1302
1348
  import { jsx as jsx16, jsxs as jsxs7, Fragment as Fragment3 } from "react/jsx-runtime";
1303
1349
  function Dialog({
@@ -1367,7 +1413,7 @@ function DialogContent({
1367
1413
  ref.current = node;
1368
1414
  }
1369
1415
  }, [ref]);
1370
- const isPhone = useMediaQuery(DIALOG_PHONE_QUERY);
1416
+ const isPhone = useMediaQuery2(DIALOG_PHONE_QUERY);
1371
1417
  if (isSheet && isPhone) {
1372
1418
  return /* @__PURE__ */ jsx16(SheetContent, {
1373
1419
  side: "bottom",
@@ -1468,7 +1514,7 @@ function DialogCancel({
1468
1514
  const keepOnMobile = mobile === `alert` || mobile === `page`;
1469
1515
  return /* @__PURE__ */ jsx16(DialogPrimitive.Close, {
1470
1516
  asChild: true,
1471
- children: /* @__PURE__ */ jsx16(Button, {
1517
+ children: /* @__PURE__ */ jsx16(Button2, {
1472
1518
  type: "button",
1473
1519
  variant: "ghost",
1474
1520
  "data-dialog-cancel": "",
@@ -1691,216 +1737,23 @@ function DockPile({ items, expanded, onExpandedChange, className, style, ...prop
1691
1737
  })
1692
1738
  });
1693
1739
  }
1694
- // packages/exponential-ui-react/src/primitives/dropdown-menu.tsx
1695
- import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon2, CircleIcon } from "lucide-react";
1696
- import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
1697
- import { DROPDOWN_MENU_CLASSES } from "@exponential_app/eui/web/primitives";
1698
- import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
1699
- "use client";
1700
- function DropdownMenu({
1701
- ...props
1702
- }) {
1703
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Root, {
1704
- "data-slot": "dropdown-menu",
1705
- ...props
1706
- });
1707
- }
1708
- function DropdownMenuPortal({
1709
- ...props
1710
- }) {
1711
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Portal, {
1712
- "data-slot": "dropdown-menu-portal",
1713
- ...props
1714
- });
1715
- }
1716
- function DropdownMenuTrigger({
1717
- ...props
1718
- }) {
1719
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Trigger, {
1720
- "data-slot": "dropdown-menu-trigger",
1721
- ...props
1722
- });
1723
- }
1724
- function DropdownMenuContent({
1725
- className,
1726
- sideOffset = 4,
1727
- ...props
1728
- }) {
1729
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Portal, {
1730
- children: /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Content, {
1731
- "data-slot": "dropdown-menu-content",
1732
- sideOffset,
1733
- className: cn2(DROPDOWN_MENU_CLASSES.content, className),
1734
- ...props
1735
- })
1736
- });
1737
- }
1738
- function DropdownMenuGroup({
1739
- ...props
1740
- }) {
1741
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Group, {
1742
- "data-slot": "dropdown-menu-group",
1743
- ...props
1744
- });
1745
- }
1746
- function DropdownMenuItem({
1747
- className,
1748
- inset,
1749
- variant = `default`,
1750
- ...props
1751
- }) {
1752
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Item, {
1753
- "data-slot": "dropdown-menu-item",
1754
- "data-inset": inset,
1755
- "data-variant": variant,
1756
- className: cn2(DROPDOWN_MENU_CLASSES.item, className),
1757
- ...props
1758
- });
1759
- }
1760
- function DropdownMenuCheckboxItem({
1761
- className,
1762
- children,
1763
- checked,
1764
- ...props
1765
- }) {
1766
- return /* @__PURE__ */ jsxs10(DropdownMenuPrimitive.CheckboxItem, {
1767
- "data-slot": "dropdown-menu-checkbox-item",
1768
- className: cn2(DROPDOWN_MENU_CLASSES.checkItem, className),
1769
- checked,
1770
- ...props,
1771
- children: [
1772
- /* @__PURE__ */ jsx19("span", {
1773
- className: DROPDOWN_MENU_CLASSES.itemIndicator,
1774
- children: /* @__PURE__ */ jsx19(DropdownMenuPrimitive.ItemIndicator, {
1775
- children: /* @__PURE__ */ jsx19(CheckIcon2, {
1776
- className: DROPDOWN_MENU_CLASSES.checkIcon
1777
- })
1778
- })
1779
- }),
1780
- children
1781
- ]
1782
- });
1783
- }
1784
- function DropdownMenuRadioGroup({
1785
- ...props
1786
- }) {
1787
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.RadioGroup, {
1788
- "data-slot": "dropdown-menu-radio-group",
1789
- ...props
1790
- });
1791
- }
1792
- function DropdownMenuRadioItem({
1793
- className,
1794
- children,
1795
- ...props
1796
- }) {
1797
- return /* @__PURE__ */ jsxs10(DropdownMenuPrimitive.RadioItem, {
1798
- "data-slot": "dropdown-menu-radio-item",
1799
- className: cn2(DROPDOWN_MENU_CLASSES.checkItem, className),
1800
- ...props,
1801
- children: [
1802
- /* @__PURE__ */ jsx19("span", {
1803
- className: DROPDOWN_MENU_CLASSES.itemIndicator,
1804
- children: /* @__PURE__ */ jsx19(DropdownMenuPrimitive.ItemIndicator, {
1805
- children: /* @__PURE__ */ jsx19(CircleIcon, {
1806
- className: DROPDOWN_MENU_CLASSES.radioIcon
1807
- })
1808
- })
1809
- }),
1810
- children
1811
- ]
1812
- });
1813
- }
1814
- function DropdownMenuLabel({
1815
- className,
1816
- inset,
1817
- ...props
1818
- }) {
1819
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Label, {
1820
- "data-slot": "dropdown-menu-label",
1821
- "data-inset": inset,
1822
- className: cn2(DROPDOWN_MENU_CLASSES.label, className),
1823
- ...props
1824
- });
1825
- }
1826
- function DropdownMenuSeparator({
1827
- className,
1828
- ...props
1829
- }) {
1830
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Separator, {
1831
- "data-slot": "dropdown-menu-separator",
1832
- className: cn2(DROPDOWN_MENU_CLASSES.separator, className),
1833
- ...props
1834
- });
1835
- }
1836
- function DropdownMenuShortcut({
1837
- className,
1838
- ...props
1839
- }) {
1840
- return /* @__PURE__ */ jsx19("span", {
1841
- "data-slot": "dropdown-menu-shortcut",
1842
- className: cn2(DROPDOWN_MENU_CLASSES.shortcut, className),
1843
- ...props
1844
- });
1845
- }
1846
- function DropdownMenuSub({
1847
- ...props
1848
- }) {
1849
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Sub, {
1850
- "data-slot": "dropdown-menu-sub",
1851
- ...props
1852
- });
1853
- }
1854
- function DropdownMenuSubTrigger({
1855
- className,
1856
- inset,
1857
- children,
1858
- variant = `default`,
1859
- ...props
1860
- }) {
1861
- return /* @__PURE__ */ jsxs10(DropdownMenuPrimitive.SubTrigger, {
1862
- "data-slot": "dropdown-menu-sub-trigger",
1863
- "data-inset": inset,
1864
- "data-variant": variant,
1865
- className: cn2(DROPDOWN_MENU_CLASSES.subTrigger, className),
1866
- ...props,
1867
- children: [
1868
- children,
1869
- /* @__PURE__ */ jsx19(ChevronRightIcon2, {
1870
- className: DROPDOWN_MENU_CLASSES.subChevron
1871
- })
1872
- ]
1873
- });
1874
- }
1875
- function DropdownMenuSubContent({
1876
- className,
1877
- ...props
1878
- }) {
1879
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Portal, {
1880
- children: /* @__PURE__ */ jsx19(DropdownMenuPrimitive.SubContent, {
1881
- "data-slot": "dropdown-menu-sub-content",
1882
- className: cn2(DROPDOWN_MENU_CLASSES.subContent, className),
1883
- ...props
1884
- })
1885
- });
1886
- }
1887
1740
  // packages/exponential-ui-react/src/primitives/empty-state.tsx
1888
1741
  import { EMPTY_STATE_CLASSES } from "@exponential_app/eui/web/primitives";
1889
1742
 
1890
1743
  // packages/exponential-ui-react/src/primitives/icon-disc.tsx
1891
1744
  import { ICON_DISC_CLASSES } from "@exponential_app/eui/web/primitives";
1892
1745
  import { ICON_DISC_TONES } from "@exponential_app/eui/web/primitives";
1893
- import { jsx as jsx20 } from "react/jsx-runtime";
1746
+ import { jsx as jsx19 } from "react/jsx-runtime";
1894
1747
  function IconDisc({
1895
1748
  icon: Icon,
1896
1749
  tone = `primary`,
1897
1750
  strokeWidth,
1898
1751
  className
1899
1752
  }) {
1900
- return /* @__PURE__ */ jsx20("div", {
1753
+ return /* @__PURE__ */ jsx19("div", {
1901
1754
  "data-slot": "icon-disc",
1902
1755
  className: cn2(ICON_DISC_CLASSES.root, ICON_DISC_CLASSES.tones[tone], className),
1903
- children: /* @__PURE__ */ jsx20(Icon, {
1756
+ children: /* @__PURE__ */ jsx19(Icon, {
1904
1757
  className: ICON_DISC_CLASSES.icon,
1905
1758
  strokeWidth,
1906
1759
  "aria-hidden": "true",
@@ -1911,7 +1764,7 @@ function IconDisc({
1911
1764
 
1912
1765
  // packages/exponential-ui-react/src/primitives/empty-state.tsx
1913
1766
  import { EMPTY_STATE_SIZES } from "@exponential_app/eui/web/primitives";
1914
- import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
1767
+ import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
1915
1768
  function EmptyState({
1916
1769
  icon: Icon,
1917
1770
  title,
@@ -1921,41 +1774,41 @@ function EmptyState({
1921
1774
  children
1922
1775
  }) {
1923
1776
  if (size === `list`) {
1924
- return /* @__PURE__ */ jsxs11("div", {
1777
+ return /* @__PURE__ */ jsxs10("div", {
1925
1778
  "data-slot": "empty-state",
1926
1779
  "data-size": "list",
1927
1780
  role: "status",
1928
1781
  className: cn2(EMPTY_STATE_CLASSES.list, className),
1929
1782
  children: [
1930
- Icon && /* @__PURE__ */ jsx21(Icon, {
1783
+ Icon && /* @__PURE__ */ jsx20(Icon, {
1931
1784
  "aria-hidden": "true",
1932
1785
  focusable: "false",
1933
1786
  className: EMPTY_STATE_CLASSES.listIcon
1934
1787
  }),
1935
- /* @__PURE__ */ jsx21("span", {
1788
+ /* @__PURE__ */ jsx20("span", {
1936
1789
  children: title
1937
1790
  })
1938
1791
  ]
1939
1792
  });
1940
1793
  }
1941
- return /* @__PURE__ */ jsxs11("div", {
1794
+ return /* @__PURE__ */ jsxs10("div", {
1942
1795
  "data-slot": "empty-state",
1943
1796
  "data-size": "page",
1944
1797
  role: "status",
1945
1798
  className: cn2(EMPTY_STATE_CLASSES.page, className),
1946
1799
  children: [
1947
- Icon && /* @__PURE__ */ jsx21(IconDisc, {
1800
+ Icon && /* @__PURE__ */ jsx20(IconDisc, {
1948
1801
  icon: Icon
1949
1802
  }),
1950
- /* @__PURE__ */ jsx21("h2", {
1803
+ /* @__PURE__ */ jsx20("h2", {
1951
1804
  className: EMPTY_STATE_CLASSES.pageTitle,
1952
1805
  children: title
1953
1806
  }),
1954
- description && /* @__PURE__ */ jsx21("p", {
1807
+ description && /* @__PURE__ */ jsx20("p", {
1955
1808
  className: EMPTY_STATE_CLASSES.pageDescription,
1956
1809
  children: description
1957
1810
  }),
1958
- children && /* @__PURE__ */ jsx21("div", {
1811
+ children && /* @__PURE__ */ jsx20("div", {
1959
1812
  className: EMPTY_STATE_CLASSES.pageActions,
1960
1813
  children
1961
1814
  })
@@ -1967,7 +1820,7 @@ function ListEmpty({
1967
1820
  children,
1968
1821
  ...props
1969
1822
  }) {
1970
- return /* @__PURE__ */ jsx21("p", {
1823
+ return /* @__PURE__ */ jsx20("p", {
1971
1824
  "data-slot": "list-empty",
1972
1825
  role: "status",
1973
1826
  className: cn2(EMPTY_STATE_CLASSES.listEmpty, className),
@@ -1983,22 +1836,22 @@ function EmptyCta({
1983
1836
  type,
1984
1837
  ...props
1985
1838
  }) {
1986
- return /* @__PURE__ */ jsxs11("button", {
1839
+ return /* @__PURE__ */ jsxs10("button", {
1987
1840
  type: type ?? `button`,
1988
1841
  "data-slot": "empty-cta",
1989
1842
  className: cn2(EMPTY_STATE_CLASSES.cta, className),
1990
1843
  ...props,
1991
1844
  children: [
1992
- /* @__PURE__ */ jsxs11("span", {
1845
+ /* @__PURE__ */ jsxs10("span", {
1993
1846
  className: EMPTY_STATE_CLASSES.ctaTitle,
1994
1847
  children: [
1995
- /* @__PURE__ */ jsx21(Icon, {
1848
+ /* @__PURE__ */ jsx20(Icon, {
1996
1849
  className: EMPTY_STATE_CLASSES.ctaIcon
1997
1850
  }),
1998
1851
  title
1999
1852
  ]
2000
1853
  }),
2001
- /* @__PURE__ */ jsx21("span", {
1854
+ /* @__PURE__ */ jsx20("span", {
2002
1855
  className: EMPTY_STATE_CLASSES.ctaDescription,
2003
1856
  children: description
2004
1857
  })
@@ -2008,9 +1861,9 @@ function EmptyCta({
2008
1861
  // packages/exponential-ui-react/src/primitives/glass-card.tsx
2009
1862
  import { GLASS_CARD_CLASSES } from "@exponential_app/eui/web/primitives";
2010
1863
  import { GLASS_CARD_CLASS, GLASS_CARD_CLASSES as GLASS_CARD_CLASSES2 } from "@exponential_app/eui/web/primitives";
2011
- import { jsx as jsx22 } from "react/jsx-runtime";
1864
+ import { jsx as jsx21 } from "react/jsx-runtime";
2012
1865
  function GlassCard({ className, ...props }) {
2013
- return /* @__PURE__ */ jsx22("div", {
1866
+ return /* @__PURE__ */ jsx21("div", {
2014
1867
  "data-slot": "glass-card",
2015
1868
  className: cn2(GLASS_CARD_CLASSES.root, className),
2016
1869
  ...props
@@ -2019,13 +1872,13 @@ function GlassCard({ className, ...props }) {
2019
1872
  // packages/exponential-ui-react/src/primitives/hover-card.tsx
2020
1873
  import { HoverCard as HoverCardPrimitive } from "radix-ui";
2021
1874
  import { HOVER_CARD_CLASSES, HOVER_CARD_DELAYS } from "@exponential_app/eui/web/primitives";
2022
- import { jsx as jsx23 } from "react/jsx-runtime";
1875
+ import { jsx as jsx22 } from "react/jsx-runtime";
2023
1876
  function HoverCard({
2024
1877
  openDelay = HOVER_CARD_DELAYS.openDelay,
2025
1878
  closeDelay = HOVER_CARD_DELAYS.closeDelay,
2026
1879
  ...props
2027
1880
  }) {
2028
- return /* @__PURE__ */ jsx23(HoverCardPrimitive.Root, {
1881
+ return /* @__PURE__ */ jsx22(HoverCardPrimitive.Root, {
2029
1882
  "data-slot": "hover-card",
2030
1883
  openDelay,
2031
1884
  closeDelay,
@@ -2035,7 +1888,7 @@ function HoverCard({
2035
1888
  function HoverCardTrigger({
2036
1889
  ...props
2037
1890
  }) {
2038
- return /* @__PURE__ */ jsx23(HoverCardPrimitive.Trigger, {
1891
+ return /* @__PURE__ */ jsx22(HoverCardPrimitive.Trigger, {
2039
1892
  "data-slot": "hover-card-trigger",
2040
1893
  ...props
2041
1894
  });
@@ -2046,8 +1899,8 @@ function HoverCardContent({
2046
1899
  sideOffset = 6,
2047
1900
  ...props
2048
1901
  }) {
2049
- return /* @__PURE__ */ jsx23(HoverCardPrimitive.Portal, {
2050
- children: /* @__PURE__ */ jsx23(HoverCardPrimitive.Content, {
1902
+ return /* @__PURE__ */ jsx22(HoverCardPrimitive.Portal, {
1903
+ children: /* @__PURE__ */ jsx22(HoverCardPrimitive.Content, {
2051
1904
  "data-slot": "hover-card-content",
2052
1905
  align,
2053
1906
  sideOffset,
@@ -2060,9 +1913,9 @@ function HoverCardContent({
2060
1913
  import * as React9 from "react";
2061
1914
  import { INPUT_CLASSES } from "@exponential_app/eui/web/primitives";
2062
1915
  import { BARE_FIELD_CLASS, FIELD_CHROME_CLASS } from "@exponential_app/eui/web/primitives";
2063
- import { jsx as jsx24 } from "react/jsx-runtime";
1916
+ import { jsx as jsx23 } from "react/jsx-runtime";
2064
1917
  var Input = React9.forwardRef(({ className, type, ...props }, ref) => {
2065
- return /* @__PURE__ */ jsx24("input", {
1918
+ return /* @__PURE__ */ jsx23("input", {
2066
1919
  ref,
2067
1920
  type,
2068
1921
  "data-slot": "input",
@@ -2073,16 +1926,16 @@ var Input = React9.forwardRef(({ className, type, ...props }, ref) => {
2073
1926
  Input.displayName = `Input`;
2074
1927
  // packages/exponential-ui-react/src/primitives/kbd.tsx
2075
1928
  import { KBD_CLASSES } from "@exponential_app/eui/web/primitives";
2076
- import { jsx as jsx25 } from "react/jsx-runtime";
1929
+ import { jsx as jsx24 } from "react/jsx-runtime";
2077
1930
  function Kbd({ className, ...props }) {
2078
- return /* @__PURE__ */ jsx25("kbd", {
1931
+ return /* @__PURE__ */ jsx24("kbd", {
2079
1932
  "data-slot": "kbd",
2080
1933
  className: cn2(KBD_CLASSES.root, className),
2081
1934
  ...props
2082
1935
  });
2083
1936
  }
2084
1937
  function KbdGroup({ className, ...props }) {
2085
- return /* @__PURE__ */ jsx25("span", {
1938
+ return /* @__PURE__ */ jsx24("span", {
2086
1939
  "data-slot": "kbd-group",
2087
1940
  className: cn2(KBD_CLASSES.group, className),
2088
1941
  ...props
@@ -2091,12 +1944,12 @@ function KbdGroup({ className, ...props }) {
2091
1944
  // packages/exponential-ui-react/src/primitives/label.tsx
2092
1945
  import { Label as LabelPrimitive } from "radix-ui";
2093
1946
  import { LABEL_CLASSES } from "@exponential_app/eui/web/primitives";
2094
- import { jsx as jsx26 } from "react/jsx-runtime";
1947
+ import { jsx as jsx25 } from "react/jsx-runtime";
2095
1948
  function Label({
2096
1949
  className,
2097
1950
  ...props
2098
1951
  }) {
2099
- return /* @__PURE__ */ jsx26(LabelPrimitive.Root, {
1952
+ return /* @__PURE__ */ jsx25(LabelPrimitive.Root, {
2100
1953
  "data-slot": "label",
2101
1954
  className: cn2(LABEL_CLASSES.root, className),
2102
1955
  ...props
@@ -2110,19 +1963,19 @@ import { METER_CLASSES } from "@exponential_app/eui/web/primitives";
2110
1963
  // packages/exponential-ui-react/src/primitives/progress.tsx
2111
1964
  import { Progress as ProgressPrimitive } from "radix-ui";
2112
1965
  import { PROGRESS_CLASSES, progressIndicatorTransform } from "@exponential_app/eui/web/primitives";
2113
- import { jsx as jsx27 } from "react/jsx-runtime";
1966
+ import { jsx as jsx26 } from "react/jsx-runtime";
2114
1967
  function Progress({
2115
1968
  className,
2116
1969
  value,
2117
1970
  ...props
2118
1971
  }) {
2119
1972
  const indeterminate = value === null || value === undefined;
2120
- return /* @__PURE__ */ jsx27(ProgressPrimitive.Root, {
1973
+ return /* @__PURE__ */ jsx26(ProgressPrimitive.Root, {
2121
1974
  "data-slot": "progress",
2122
1975
  value,
2123
1976
  className: cn2(PROGRESS_CLASSES.root, className),
2124
1977
  ...props,
2125
- children: /* @__PURE__ */ jsx27(ProgressPrimitive.Indicator, {
1978
+ children: /* @__PURE__ */ jsx26(ProgressPrimitive.Indicator, {
2126
1979
  "data-slot": "progress-indicator",
2127
1980
  className: cn2(PROGRESS_CLASSES.indicator, indeterminate ? PROGRESS_CLASSES.indicatorIndeterminate : PROGRESS_CLASSES.indicatorDeterminate),
2128
1981
  style: indeterminate ? undefined : { transform: progressIndicatorTransform(value) }
@@ -2131,14 +1984,14 @@ function Progress({
2131
1984
  }
2132
1985
 
2133
1986
  // packages/exponential-ui-react/src/primitives/meter.tsx
2134
- import { jsx as jsx28 } from "react/jsx-runtime";
1987
+ import { jsx as jsx27 } from "react/jsx-runtime";
2135
1988
  function Meter({
2136
1989
  value,
2137
1990
  tone = `normal`,
2138
1991
  className,
2139
1992
  ...props
2140
1993
  }) {
2141
- return /* @__PURE__ */ jsx28(Progress, {
1994
+ return /* @__PURE__ */ jsx27(Progress, {
2142
1995
  "data-slot": "meter",
2143
1996
  "data-tone": tone,
2144
1997
  value,
@@ -2146,14 +1999,115 @@ function Meter({
2146
1999
  ...props
2147
2000
  });
2148
2001
  }
2002
+ // packages/exponential-ui-react/src/primitives/mosaic.tsx
2003
+ import { MOSAIC_CLASSES, mosaicTiles } from "@exponential_app/eui/web/primitives";
2004
+ import { MOSAIC_GEOMETRY, mosaicTiles as mosaicTiles2 } from "@exponential_app/eui/web/primitives";
2005
+ import { jsx as jsx28, jsxs as jsxs11, Fragment as Fragment4 } from "react/jsx-runtime";
2006
+ function Mosaic({ pictures, label, onSelect, className, ...props }) {
2007
+ const tiles = mosaicTiles(pictures.length);
2008
+ const tile = (t, lead) => {
2009
+ const picture = pictures[t.index];
2010
+ const alt = picture.alt ?? ``;
2011
+ return /* @__PURE__ */ jsxs11("button", {
2012
+ type: "button",
2013
+ "data-slot": "mosaic-tile",
2014
+ "data-size": t.size,
2015
+ "aria-label": t.more > 0 ? `${alt}, ${t.more} more` : alt || undefined,
2016
+ className: cn2(MOSAIC_CLASSES.tile, lead ? MOSAIC_CLASSES.lead : MOSAIC_CLASSES.fill),
2017
+ onClick: () => onSelect?.(t.index),
2018
+ children: [
2019
+ /* @__PURE__ */ jsx28("img", {
2020
+ src: picture.src,
2021
+ alt: "",
2022
+ "aria-hidden": "true",
2023
+ loading: "lazy",
2024
+ decoding: "async",
2025
+ draggable: false,
2026
+ className: MOSAIC_CLASSES.image
2027
+ }),
2028
+ t.more > 0 ? /* @__PURE__ */ jsx28("span", {
2029
+ "aria-hidden": "true",
2030
+ className: MOSAIC_CLASSES.more,
2031
+ children: `+${t.more}`
2032
+ }) : null
2033
+ ]
2034
+ }, t.index);
2035
+ };
2036
+ return /* @__PURE__ */ jsx28("div", {
2037
+ "data-slot": "mosaic",
2038
+ role: "group",
2039
+ "aria-label": label || undefined,
2040
+ className: cn2(MOSAIC_CLASSES.root, className),
2041
+ ...props,
2042
+ children: tiles.length >= 3 ? /* @__PURE__ */ jsxs11(Fragment4, {
2043
+ children: [
2044
+ tile(tiles[0], true),
2045
+ /* @__PURE__ */ jsx28("div", {
2046
+ "data-slot": "mosaic-side",
2047
+ className: MOSAIC_CLASSES.side,
2048
+ children: tiles.slice(1).map((t) => tile(t, false))
2049
+ })
2050
+ ]
2051
+ }) : tiles.map((t) => tile(t, false))
2052
+ });
2053
+ }
2054
+ // packages/exponential-ui-react/src/primitives/outline.tsx
2055
+ import { OUTLINE_CLASSES, outlineCountText } from "@exponential_app/eui/web/primitives";
2056
+ import { OUTLINE_GEOMETRY, outlineCountText as outlineCountText2 } from "@exponential_app/eui/web/primitives";
2057
+ import { jsx as jsx29, jsxs as jsxs12 } from "react/jsx-runtime";
2058
+ function Outline({ items, value, caption, onSelect, className, ...props }) {
2059
+ return /* @__PURE__ */ jsxs12("nav", {
2060
+ "data-slot": "outline",
2061
+ "aria-label": caption || `Outline`,
2062
+ className: cn2(OUTLINE_CLASSES.root, className),
2063
+ ...props,
2064
+ children: [
2065
+ caption ? /* @__PURE__ */ jsx29("div", {
2066
+ "data-slot": "outline-caption",
2067
+ "aria-hidden": "true",
2068
+ className: OUTLINE_CLASSES.caption,
2069
+ children: caption
2070
+ }) : null,
2071
+ items.map((item) => {
2072
+ const active = value != null && item.id === value;
2073
+ const count = outlineCountText(item.count);
2074
+ return /* @__PURE__ */ jsxs12("button", {
2075
+ type: "button",
2076
+ "data-slot": "outline-row",
2077
+ "data-active": active ? `true` : undefined,
2078
+ "aria-current": active ? `location` : undefined,
2079
+ "aria-label": count ? `${item.title}, ${item.count}` : undefined,
2080
+ className: OUTLINE_CLASSES.row,
2081
+ onClick: () => onSelect?.(item.id),
2082
+ children: [
2083
+ active ? /* @__PURE__ */ jsx29("span", {
2084
+ "data-slot": "outline-bar",
2085
+ "aria-hidden": "true",
2086
+ className: OUTLINE_CLASSES.bar
2087
+ }) : null,
2088
+ /* @__PURE__ */ jsx29("span", {
2089
+ className: OUTLINE_CLASSES.title,
2090
+ children: item.title
2091
+ }),
2092
+ count ? /* @__PURE__ */ jsx29("span", {
2093
+ "aria-hidden": "true",
2094
+ className: OUTLINE_CLASSES.count,
2095
+ children: count
2096
+ }) : null
2097
+ ]
2098
+ }, item.id);
2099
+ })
2100
+ ]
2101
+ });
2102
+ }
2149
2103
  // packages/exponential-ui-react/src/primitives/popover.tsx
2150
2104
  import { Popover as PopoverPrimitive } from "radix-ui";
2151
2105
  import { POPOVER_CLASSES } from "@exponential_app/eui/web/primitives";
2152
- import { jsx as jsx29 } from "react/jsx-runtime";
2106
+ import { jsx as jsx30 } from "react/jsx-runtime";
2153
2107
  function Popover({
2154
2108
  ...props
2155
2109
  }) {
2156
- return /* @__PURE__ */ jsx29(PopoverPrimitive.Root, {
2110
+ return /* @__PURE__ */ jsx30(PopoverPrimitive.Root, {
2157
2111
  "data-slot": "popover",
2158
2112
  ...props
2159
2113
  });
@@ -2161,7 +2115,7 @@ function Popover({
2161
2115
  function PopoverTrigger({
2162
2116
  ...props
2163
2117
  }) {
2164
- return /* @__PURE__ */ jsx29(PopoverPrimitive.Trigger, {
2118
+ return /* @__PURE__ */ jsx30(PopoverPrimitive.Trigger, {
2165
2119
  "data-slot": "popover-trigger",
2166
2120
  ...props
2167
2121
  });
@@ -2172,8 +2126,8 @@ function PopoverContent({
2172
2126
  sideOffset = 4,
2173
2127
  ...props
2174
2128
  }) {
2175
- return /* @__PURE__ */ jsx29(PopoverPrimitive.Portal, {
2176
- children: /* @__PURE__ */ jsx29(PopoverPrimitive.Content, {
2129
+ return /* @__PURE__ */ jsx30(PopoverPrimitive.Portal, {
2130
+ children: /* @__PURE__ */ jsx30(PopoverPrimitive.Content, {
2177
2131
  "data-slot": "popover-content",
2178
2132
  align,
2179
2133
  sideOffset,
@@ -2185,7 +2139,7 @@ function PopoverContent({
2185
2139
  function PopoverAnchor({
2186
2140
  ...props
2187
2141
  }) {
2188
- return /* @__PURE__ */ jsx29(PopoverPrimitive.Anchor, {
2142
+ return /* @__PURE__ */ jsx30(PopoverPrimitive.Anchor, {
2189
2143
  "data-slot": "popover-anchor",
2190
2144
  ...props
2191
2145
  });
@@ -2193,7 +2147,7 @@ function PopoverAnchor({
2193
2147
  // packages/exponential-ui-react/src/primitives/progress-ring.tsx
2194
2148
  import { PROGRESS_RING_CLASSES, RING_RADIUS as RING_RADIUS3, RING_SIZE as RING_SIZE3, RING_STROKE as RING_STROKE3, progressRingPercent, ringGeometry as ringGeometry3 } from "@exponential_app/eui/web/primitives";
2195
2149
  import { progressRingPercent as progressRingPercent2 } from "@exponential_app/eui/web/primitives";
2196
- import { jsx as jsx30, jsxs as jsxs12 } from "react/jsx-runtime";
2150
+ import { jsx as jsx31, jsxs as jsxs13 } from "react/jsx-runtime";
2197
2151
  function ProgressRing({
2198
2152
  done,
2199
2153
  total,
@@ -2204,7 +2158,7 @@ function ProgressRing({
2204
2158
  }) {
2205
2159
  const { circumference, dashOffset } = ringGeometry3(progressRingPercent(done, total));
2206
2160
  const centre = RING_SIZE3 / 2;
2207
- return /* @__PURE__ */ jsxs12("svg", {
2161
+ return /* @__PURE__ */ jsxs13("svg", {
2208
2162
  viewBox: `0 0 ${RING_SIZE3} ${RING_SIZE3}`,
2209
2163
  width: size,
2210
2164
  height: size,
@@ -2215,7 +2169,7 @@ function ProgressRing({
2215
2169
  className: cn2(PROGRESS_RING_CLASSES.root, colorClass, className),
2216
2170
  style: colorHex ? { color: colorHex } : undefined,
2217
2171
  children: [
2218
- /* @__PURE__ */ jsx30("circle", {
2172
+ /* @__PURE__ */ jsx31("circle", {
2219
2173
  cx: centre,
2220
2174
  cy: centre,
2221
2175
  r: RING_RADIUS3,
@@ -2224,7 +2178,7 @@ function ProgressRing({
2224
2178
  strokeWidth: RING_STROKE3,
2225
2179
  opacity: 0.2
2226
2180
  }),
2227
- done > 0 && /* @__PURE__ */ jsx30("circle", {
2181
+ done > 0 && /* @__PURE__ */ jsx31("circle", {
2228
2182
  "data-slot": "progress-ring-arc",
2229
2183
  cx: centre,
2230
2184
  cy: centre,
@@ -2242,30 +2196,30 @@ function ProgressRing({
2242
2196
  // packages/exponential-ui-react/src/primitives/scroll-area.tsx
2243
2197
  import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
2244
2198
  import { SCROLL_AREA_CLASSES } from "@exponential_app/eui/web/primitives";
2245
- import { jsx as jsx31, jsxs as jsxs13 } from "react/jsx-runtime";
2199
+ import { jsx as jsx32, jsxs as jsxs14 } from "react/jsx-runtime";
2246
2200
  function ScrollArea({ className, children, ...props }) {
2247
- return /* @__PURE__ */ jsxs13(ScrollAreaPrimitive.Root, {
2201
+ return /* @__PURE__ */ jsxs14(ScrollAreaPrimitive.Root, {
2248
2202
  "data-slot": "scroll-area",
2249
2203
  className: cn2(SCROLL_AREA_CLASSES.root, className),
2250
2204
  ...props,
2251
2205
  children: [
2252
- /* @__PURE__ */ jsx31(ScrollAreaPrimitive.Viewport, {
2206
+ /* @__PURE__ */ jsx32(ScrollAreaPrimitive.Viewport, {
2253
2207
  "data-slot": "scroll-area-viewport",
2254
2208
  className: SCROLL_AREA_CLASSES.viewport,
2255
2209
  children
2256
2210
  }),
2257
- /* @__PURE__ */ jsx31(ScrollBar, {}),
2258
- /* @__PURE__ */ jsx31(ScrollAreaPrimitive.Corner, {})
2211
+ /* @__PURE__ */ jsx32(ScrollBar, {}),
2212
+ /* @__PURE__ */ jsx32(ScrollAreaPrimitive.Corner, {})
2259
2213
  ]
2260
2214
  });
2261
2215
  }
2262
2216
  function ScrollBar({ className, orientation = `vertical`, ...props }) {
2263
- return /* @__PURE__ */ jsx31(ScrollAreaPrimitive.ScrollAreaScrollbar, {
2217
+ return /* @__PURE__ */ jsx32(ScrollAreaPrimitive.ScrollAreaScrollbar, {
2264
2218
  "data-slot": "scroll-area-scrollbar",
2265
2219
  orientation,
2266
2220
  className: cn2(SCROLL_AREA_CLASSES.scrollbar, SCROLL_AREA_CLASSES.orientations[orientation], className),
2267
2221
  ...props,
2268
- children: /* @__PURE__ */ jsx31(ScrollAreaPrimitive.ScrollAreaThumb, {
2222
+ children: /* @__PURE__ */ jsx32(ScrollAreaPrimitive.ScrollAreaThumb, {
2269
2223
  "data-slot": "scroll-area-thumb",
2270
2224
  className: SCROLL_AREA_CLASSES.thumb
2271
2225
  })
@@ -2278,12 +2232,12 @@ import { SEGMENTED_CONTROL_CLASSES } from "@exponential_app/eui/web/primitives";
2278
2232
  import { Tabs as TabsPrimitive } from "radix-ui";
2279
2233
  import { TABS_CLASSES } from "@exponential_app/eui/web/primitives";
2280
2234
  import { SEGMENTED_ITEM, SEGMENTED_LIST, SEGMENTED_ROW, SEGMENTED_ROW_COMPACT, SEGMENTED_TAB } from "@exponential_app/eui/web/primitives";
2281
- import { jsx as jsx32 } from "react/jsx-runtime";
2235
+ import { jsx as jsx33 } from "react/jsx-runtime";
2282
2236
  function Tabs({
2283
2237
  className,
2284
2238
  ...props
2285
2239
  }) {
2286
- return /* @__PURE__ */ jsx32(TabsPrimitive.Root, {
2240
+ return /* @__PURE__ */ jsx33(TabsPrimitive.Root, {
2287
2241
  "data-slot": "tabs",
2288
2242
  className: cn2(TABS_CLASSES.root, className),
2289
2243
  ...props
@@ -2293,7 +2247,7 @@ function TabsList({
2293
2247
  className,
2294
2248
  ...props
2295
2249
  }) {
2296
- return /* @__PURE__ */ jsx32(TabsPrimitive.List, {
2250
+ return /* @__PURE__ */ jsx33(TabsPrimitive.List, {
2297
2251
  "data-slot": "tabs-list",
2298
2252
  className: cn2(TABS_CLASSES.list, className),
2299
2253
  ...props
@@ -2303,7 +2257,7 @@ function TabsTrigger({
2303
2257
  className,
2304
2258
  ...props
2305
2259
  }) {
2306
- return /* @__PURE__ */ jsx32(TabsPrimitive.Trigger, {
2260
+ return /* @__PURE__ */ jsx33(TabsPrimitive.Trigger, {
2307
2261
  "data-slot": "tabs-trigger",
2308
2262
  className: cn2(TABS_CLASSES.trigger, className),
2309
2263
  ...props
@@ -2313,7 +2267,7 @@ function TabsContent({
2313
2267
  className,
2314
2268
  ...props
2315
2269
  }) {
2316
- return /* @__PURE__ */ jsx32(TabsPrimitive.Content, {
2270
+ return /* @__PURE__ */ jsx33(TabsPrimitive.Content, {
2317
2271
  "data-slot": "tabs-content",
2318
2272
  className: cn2(TABS_CLASSES.content, className),
2319
2273
  ...props
@@ -2321,7 +2275,7 @@ function TabsContent({
2321
2275
  }
2322
2276
 
2323
2277
  // packages/exponential-ui-react/src/primitives/segmented-control.tsx
2324
- import { jsx as jsx33, jsxs as jsxs14 } from "react/jsx-runtime";
2278
+ import { jsx as jsx34, jsxs as jsxs15 } from "react/jsx-runtime";
2325
2279
  function SegmentedControl({
2326
2280
  value,
2327
2281
  onValueChange,
@@ -2332,38 +2286,38 @@ function SegmentedControl({
2332
2286
  }) {
2333
2287
  const triggers = options.map((option) => {
2334
2288
  const Glyph = option.icon;
2335
- return /* @__PURE__ */ jsxs14(TabsTrigger, {
2289
+ return /* @__PURE__ */ jsxs15(TabsTrigger, {
2336
2290
  value: option.value,
2337
2291
  disabled: disabled || option.disabled,
2338
2292
  className: SEGMENTED_CONTROL_CLASSES.trigger,
2339
2293
  children: [
2340
- Glyph ? /* @__PURE__ */ jsx33(Glyph, {
2294
+ Glyph ? /* @__PURE__ */ jsx34(Glyph, {
2341
2295
  "aria-hidden": true
2342
2296
  }) : null,
2343
2297
  option.label
2344
2298
  ]
2345
2299
  }, option.value);
2346
2300
  });
2347
- return /* @__PURE__ */ jsx33(Tabs, {
2301
+ return /* @__PURE__ */ jsx34(Tabs, {
2348
2302
  "data-slot": "segmented-control",
2349
2303
  value,
2350
2304
  onValueChange: (next) => onValueChange(next),
2351
- children: /* @__PURE__ */ jsx33(TabsList, {
2305
+ children: /* @__PURE__ */ jsx34(TabsList, {
2352
2306
  className: cn2(fill && SEGMENTED_CONTROL_CLASSES.fill, className),
2353
2307
  children: triggers
2354
2308
  })
2355
2309
  });
2356
2310
  }
2357
2311
  // packages/exponential-ui-react/src/primitives/select.tsx
2358
- import { CheckIcon as CheckIcon3, ChevronDownIcon as ChevronDownIcon2, ChevronUpIcon } from "lucide-react";
2312
+ import { CheckIcon as CheckIcon2, ChevronDownIcon as ChevronDownIcon2, ChevronUpIcon } from "lucide-react";
2359
2313
  import { Select as SelectPrimitive } from "radix-ui";
2360
2314
  import { SELECT_CLASSES } from "@exponential_app/eui/web/primitives";
2361
- import { jsx as jsx34, jsxs as jsxs15 } from "react/jsx-runtime";
2315
+ import { jsx as jsx35, jsxs as jsxs16 } from "react/jsx-runtime";
2362
2316
  "use client";
2363
2317
  function Select({
2364
2318
  ...props
2365
2319
  }) {
2366
- return /* @__PURE__ */ jsx34(SelectPrimitive.Root, {
2320
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Root, {
2367
2321
  "data-slot": "select",
2368
2322
  ...props
2369
2323
  });
@@ -2371,7 +2325,7 @@ function Select({
2371
2325
  function SelectGroup({
2372
2326
  ...props
2373
2327
  }) {
2374
- return /* @__PURE__ */ jsx34(SelectPrimitive.Group, {
2328
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Group, {
2375
2329
  "data-slot": "select-group",
2376
2330
  ...props
2377
2331
  });
@@ -2379,7 +2333,7 @@ function SelectGroup({
2379
2333
  function SelectValue({
2380
2334
  ...props
2381
2335
  }) {
2382
- return /* @__PURE__ */ jsx34(SelectPrimitive.Value, {
2336
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Value, {
2383
2337
  "data-slot": "select-value",
2384
2338
  ...props
2385
2339
  });
@@ -2390,16 +2344,16 @@ function SelectTrigger({
2390
2344
  children,
2391
2345
  ...props
2392
2346
  }) {
2393
- return /* @__PURE__ */ jsxs15(SelectPrimitive.Trigger, {
2347
+ return /* @__PURE__ */ jsxs16(SelectPrimitive.Trigger, {
2394
2348
  "data-slot": "select-trigger",
2395
2349
  "data-size": size,
2396
2350
  className: cn2(SELECT_CLASSES.trigger, className),
2397
2351
  ...props,
2398
2352
  children: [
2399
2353
  children,
2400
- /* @__PURE__ */ jsx34(SelectPrimitive.Icon, {
2354
+ /* @__PURE__ */ jsx35(SelectPrimitive.Icon, {
2401
2355
  asChild: true,
2402
- children: /* @__PURE__ */ jsx34(ChevronDownIcon2, {
2356
+ children: /* @__PURE__ */ jsx35(ChevronDownIcon2, {
2403
2357
  className: SELECT_CLASSES.triggerIcon
2404
2358
  })
2405
2359
  })
@@ -2413,20 +2367,20 @@ function SelectContent({
2413
2367
  align = `center`,
2414
2368
  ...props
2415
2369
  }) {
2416
- return /* @__PURE__ */ jsx34(SelectPrimitive.Portal, {
2417
- children: /* @__PURE__ */ jsxs15(SelectPrimitive.Content, {
2370
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Portal, {
2371
+ children: /* @__PURE__ */ jsxs16(SelectPrimitive.Content, {
2418
2372
  "data-slot": "select-content",
2419
2373
  className: cn2(SELECT_CLASSES.content, position === `popper` && SELECT_CLASSES.contentPopper, className),
2420
2374
  position,
2421
2375
  align,
2422
2376
  ...props,
2423
2377
  children: [
2424
- /* @__PURE__ */ jsx34(SelectScrollUpButton, {}),
2425
- /* @__PURE__ */ jsx34(SelectPrimitive.Viewport, {
2378
+ /* @__PURE__ */ jsx35(SelectScrollUpButton, {}),
2379
+ /* @__PURE__ */ jsx35(SelectPrimitive.Viewport, {
2426
2380
  className: cn2(SELECT_CLASSES.viewport, position === `popper` && SELECT_CLASSES.viewportPopper),
2427
2381
  children
2428
2382
  }),
2429
- /* @__PURE__ */ jsx34(SelectScrollDownButton, {})
2383
+ /* @__PURE__ */ jsx35(SelectScrollDownButton, {})
2430
2384
  ]
2431
2385
  })
2432
2386
  });
@@ -2435,7 +2389,7 @@ function SelectLabel({
2435
2389
  className,
2436
2390
  ...props
2437
2391
  }) {
2438
- return /* @__PURE__ */ jsx34(SelectPrimitive.Label, {
2392
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Label, {
2439
2393
  "data-slot": "select-label",
2440
2394
  className: cn2(SELECT_CLASSES.label, className),
2441
2395
  ...props
@@ -2446,21 +2400,21 @@ function SelectItem({
2446
2400
  children,
2447
2401
  ...props
2448
2402
  }) {
2449
- return /* @__PURE__ */ jsxs15(SelectPrimitive.Item, {
2403
+ return /* @__PURE__ */ jsxs16(SelectPrimitive.Item, {
2450
2404
  "data-slot": "select-item",
2451
2405
  className: cn2(SELECT_CLASSES.item, className),
2452
2406
  ...props,
2453
2407
  children: [
2454
- /* @__PURE__ */ jsx34("span", {
2408
+ /* @__PURE__ */ jsx35("span", {
2455
2409
  "data-slot": "select-item-indicator",
2456
2410
  className: SELECT_CLASSES.itemIndicator,
2457
- children: /* @__PURE__ */ jsx34(SelectPrimitive.ItemIndicator, {
2458
- children: /* @__PURE__ */ jsx34(CheckIcon3, {
2411
+ children: /* @__PURE__ */ jsx35(SelectPrimitive.ItemIndicator, {
2412
+ children: /* @__PURE__ */ jsx35(CheckIcon2, {
2459
2413
  className: SELECT_CLASSES.itemCheck
2460
2414
  })
2461
2415
  })
2462
2416
  }),
2463
- /* @__PURE__ */ jsx34(SelectPrimitive.ItemText, {
2417
+ /* @__PURE__ */ jsx35(SelectPrimitive.ItemText, {
2464
2418
  children
2465
2419
  })
2466
2420
  ]
@@ -2470,7 +2424,7 @@ function SelectSeparator({
2470
2424
  className,
2471
2425
  ...props
2472
2426
  }) {
2473
- return /* @__PURE__ */ jsx34(SelectPrimitive.Separator, {
2427
+ return /* @__PURE__ */ jsx35(SelectPrimitive.Separator, {
2474
2428
  "data-slot": "select-separator",
2475
2429
  className: cn2(SELECT_CLASSES.separator, className),
2476
2430
  ...props
@@ -2480,11 +2434,11 @@ function SelectScrollUpButton({
2480
2434
  className,
2481
2435
  ...props
2482
2436
  }) {
2483
- return /* @__PURE__ */ jsx34(SelectPrimitive.ScrollUpButton, {
2437
+ return /* @__PURE__ */ jsx35(SelectPrimitive.ScrollUpButton, {
2484
2438
  "data-slot": "select-scroll-up-button",
2485
2439
  className: cn2(SELECT_CLASSES.scrollButton, className),
2486
2440
  ...props,
2487
- children: /* @__PURE__ */ jsx34(ChevronUpIcon, {
2441
+ children: /* @__PURE__ */ jsx35(ChevronUpIcon, {
2488
2442
  className: SELECT_CLASSES.scrollIcon
2489
2443
  })
2490
2444
  });
@@ -2493,11 +2447,11 @@ function SelectScrollDownButton({
2493
2447
  className,
2494
2448
  ...props
2495
2449
  }) {
2496
- return /* @__PURE__ */ jsx34(SelectPrimitive.ScrollDownButton, {
2450
+ return /* @__PURE__ */ jsx35(SelectPrimitive.ScrollDownButton, {
2497
2451
  "data-slot": "select-scroll-down-button",
2498
2452
  className: cn2(SELECT_CLASSES.scrollButton, className),
2499
2453
  ...props,
2500
- children: /* @__PURE__ */ jsx34(ChevronDownIcon2, {
2454
+ children: /* @__PURE__ */ jsx35(ChevronDownIcon2, {
2501
2455
  className: SELECT_CLASSES.scrollIcon
2502
2456
  })
2503
2457
  });
@@ -2505,7 +2459,7 @@ function SelectScrollDownButton({
2505
2459
  // packages/exponential-ui-react/src/primitives/separator.tsx
2506
2460
  import { Separator as SeparatorPrimitive } from "radix-ui";
2507
2461
  import { SEPARATOR_CLASSES } from "@exponential_app/eui/web/primitives";
2508
- import { jsx as jsx35 } from "react/jsx-runtime";
2462
+ import { jsx as jsx36 } from "react/jsx-runtime";
2509
2463
  "use client";
2510
2464
  function Separator({
2511
2465
  className,
@@ -2513,7 +2467,7 @@ function Separator({
2513
2467
  decorative = true,
2514
2468
  ...props
2515
2469
  }) {
2516
- return /* @__PURE__ */ jsx35(SeparatorPrimitive.Root, {
2470
+ return /* @__PURE__ */ jsx36(SeparatorPrimitive.Root, {
2517
2471
  "data-slot": "separator",
2518
2472
  decorative,
2519
2473
  orientation,
@@ -2523,9 +2477,9 @@ function Separator({
2523
2477
  }
2524
2478
  // packages/exponential-ui-react/src/primitives/skeleton.tsx
2525
2479
  import { SKELETON_CLASSES } from "@exponential_app/eui/web/primitives";
2526
- import { jsx as jsx36 } from "react/jsx-runtime";
2480
+ import { jsx as jsx37 } from "react/jsx-runtime";
2527
2481
  function Skeleton({ className, ...props }) {
2528
- return /* @__PURE__ */ jsx36("div", {
2482
+ return /* @__PURE__ */ jsx37("div", {
2529
2483
  "data-slot": "skeleton",
2530
2484
  className: cn2(SKELETON_CLASSES.root, className),
2531
2485
  ...props
@@ -2534,14 +2488,14 @@ function Skeleton({ className, ...props }) {
2534
2488
  // packages/exponential-ui-react/src/primitives/spinner.tsx
2535
2489
  import { LoaderCircle } from "lucide-react";
2536
2490
  import { SPINNER_CLASSES } from "@exponential_app/eui/web/primitives";
2537
- import { jsx as jsx37 } from "react/jsx-runtime";
2491
+ import { jsx as jsx38 } from "react/jsx-runtime";
2538
2492
  function Spinner({
2539
2493
  size = 10,
2540
2494
  label = `Loading`,
2541
2495
  className,
2542
2496
  ...props
2543
2497
  }) {
2544
- return /* @__PURE__ */ jsx37(LoaderCircle, {
2498
+ return /* @__PURE__ */ jsx38(LoaderCircle, {
2545
2499
  "data-slot": "spinner",
2546
2500
  "data-testid": "feedback-spinner",
2547
2501
  "aria-label": label,
@@ -2555,18 +2509,18 @@ function Spinner({
2555
2509
  // packages/exponential-ui-react/src/primitives/switch.tsx
2556
2510
  import { Switch as SwitchPrimitive } from "radix-ui";
2557
2511
  import { SWITCH_CLASSES } from "@exponential_app/eui/web/primitives";
2558
- import { jsx as jsx38 } from "react/jsx-runtime";
2512
+ import { jsx as jsx39 } from "react/jsx-runtime";
2559
2513
  function Switch({
2560
2514
  className,
2561
2515
  size = `default`,
2562
2516
  ...props
2563
2517
  }) {
2564
- return /* @__PURE__ */ jsx38(SwitchPrimitive.Root, {
2518
+ return /* @__PURE__ */ jsx39(SwitchPrimitive.Root, {
2565
2519
  "data-slot": "switch",
2566
2520
  "data-size": size,
2567
2521
  className: cn2(SWITCH_CLASSES.root, className),
2568
2522
  ...props,
2569
- children: /* @__PURE__ */ jsx38(SwitchPrimitive.Thumb, {
2523
+ children: /* @__PURE__ */ jsx39(SwitchPrimitive.Thumb, {
2570
2524
  "data-slot": "switch-thumb",
2571
2525
  className: cn2(SWITCH_CLASSES.thumb)
2572
2526
  })
@@ -2574,12 +2528,12 @@ function Switch({
2574
2528
  }
2575
2529
  // packages/exponential-ui-react/src/primitives/table.tsx
2576
2530
  import { TABLE_CLASSES } from "@exponential_app/eui/web/primitives";
2577
- import { jsx as jsx39 } from "react/jsx-runtime";
2531
+ import { jsx as jsx40 } from "react/jsx-runtime";
2578
2532
  function Table({ className, ...props }) {
2579
- return /* @__PURE__ */ jsx39("div", {
2533
+ return /* @__PURE__ */ jsx40("div", {
2580
2534
  "data-slot": "table-container",
2581
2535
  className: TABLE_CLASSES.container,
2582
- children: /* @__PURE__ */ jsx39("table", {
2536
+ children: /* @__PURE__ */ jsx40("table", {
2583
2537
  "data-slot": "table",
2584
2538
  className: cn2(TABLE_CLASSES.root, className),
2585
2539
  ...props
@@ -2587,49 +2541,49 @@ function Table({ className, ...props }) {
2587
2541
  });
2588
2542
  }
2589
2543
  function TableHeader({ className, ...props }) {
2590
- return /* @__PURE__ */ jsx39("thead", {
2544
+ return /* @__PURE__ */ jsx40("thead", {
2591
2545
  "data-slot": "table-header",
2592
2546
  className: cn2(TABLE_CLASSES.header, className),
2593
2547
  ...props
2594
2548
  });
2595
2549
  }
2596
2550
  function TableBody({ className, ...props }) {
2597
- return /* @__PURE__ */ jsx39("tbody", {
2551
+ return /* @__PURE__ */ jsx40("tbody", {
2598
2552
  "data-slot": "table-body",
2599
2553
  className: cn2(TABLE_CLASSES.body, className),
2600
2554
  ...props
2601
2555
  });
2602
2556
  }
2603
2557
  function TableFooter({ className, ...props }) {
2604
- return /* @__PURE__ */ jsx39("tfoot", {
2558
+ return /* @__PURE__ */ jsx40("tfoot", {
2605
2559
  "data-slot": "table-footer",
2606
2560
  className: cn2(TABLE_CLASSES.footer, className),
2607
2561
  ...props
2608
2562
  });
2609
2563
  }
2610
2564
  function TableRow({ className, ...props }) {
2611
- return /* @__PURE__ */ jsx39("tr", {
2565
+ return /* @__PURE__ */ jsx40("tr", {
2612
2566
  "data-slot": "table-row",
2613
2567
  className: cn2(TABLE_CLASSES.row, className),
2614
2568
  ...props
2615
2569
  });
2616
2570
  }
2617
2571
  function TableHead({ className, ...props }) {
2618
- return /* @__PURE__ */ jsx39("th", {
2572
+ return /* @__PURE__ */ jsx40("th", {
2619
2573
  "data-slot": "table-head",
2620
2574
  className: cn2(TABLE_CLASSES.head, className),
2621
2575
  ...props
2622
2576
  });
2623
2577
  }
2624
2578
  function TableCell({ className, ...props }) {
2625
- return /* @__PURE__ */ jsx39("td", {
2579
+ return /* @__PURE__ */ jsx40("td", {
2626
2580
  "data-slot": "table-cell",
2627
2581
  className: cn2(TABLE_CLASSES.cell, className),
2628
2582
  ...props
2629
2583
  });
2630
2584
  }
2631
2585
  function TableCaption({ className, ...props }) {
2632
- return /* @__PURE__ */ jsx39("caption", {
2586
+ return /* @__PURE__ */ jsx40("caption", {
2633
2587
  "data-slot": "table-caption",
2634
2588
  className: cn2(TABLE_CLASSES.caption, className),
2635
2589
  ...props
@@ -2637,9 +2591,9 @@ function TableCaption({ className, ...props }) {
2637
2591
  }
2638
2592
  // packages/exponential-ui-react/src/primitives/textarea.tsx
2639
2593
  import { TEXTAREA_CLASSES } from "@exponential_app/eui/web/primitives";
2640
- import { jsx as jsx40 } from "react/jsx-runtime";
2594
+ import { jsx as jsx41 } from "react/jsx-runtime";
2641
2595
  function Textarea({ className, ...props }) {
2642
- return /* @__PURE__ */ jsx40("textarea", {
2596
+ return /* @__PURE__ */ jsx41("textarea", {
2643
2597
  "data-slot": "textarea",
2644
2598
  className: cn2(TEXTAREA_CLASSES.root, className),
2645
2599
  ...props
@@ -2657,7 +2611,7 @@ import {
2657
2611
  toastStackGeometry
2658
2612
  } from "@exponential_app/eui/web/primitives";
2659
2613
  import { createToastStore as createToastStore2, toastStackGeometry as toastStackGeometry2, toastPlacement as toastPlacement2, TOAST_CONSTANTS, TOAST_KINDS, TOAST_TOUCH_QUERY as TOAST_TOUCH_QUERY2 } from "@exponential_app/eui/web/primitives";
2660
- import { jsx as jsx41, jsxs as jsxs16 } from "react/jsx-runtime";
2614
+ import { jsx as jsx42, jsxs as jsxs17 } from "react/jsx-runtime";
2661
2615
  var KIND_ICONS = {
2662
2616
  success: CircleCheck,
2663
2617
  error: CircleX,
@@ -2671,7 +2625,7 @@ function useToasts(store) {
2671
2625
  }
2672
2626
  function Toaster({ store = toastStore, touch, closeLabel = `Close`, className, ...props }) {
2673
2627
  const toasts = useToasts(store);
2674
- const touchQuery = useMediaQuery(TOAST_TOUCH_QUERY);
2628
+ const touchQuery = useMediaQuery2(TOAST_TOUCH_QUERY);
2675
2629
  const { placement, anchoredBottom } = toastPlacement(touch ?? touchQuery);
2676
2630
  const [expanded, setExpanded] = React10.useState(false);
2677
2631
  const [measured, setMeasured] = React10.useState({});
@@ -2693,13 +2647,13 @@ function Toaster({ store = toastStore, touch, closeLabel = `Close`, className, .
2693
2647
  setMeasured((prev) => Object.keys(next).length === Object.keys(prev).length && Object.entries(next).every(([k, v]) => prev[k] === v) ? prev : next);
2694
2648
  }, [toasts]);
2695
2649
  const geometry = toastStackGeometry(toasts.map((t) => t.height ?? measured[t.id] ?? 0), open, anchoredBottom);
2696
- return /* @__PURE__ */ jsx41("section", {
2650
+ return /* @__PURE__ */ jsx42("section", {
2697
2651
  "aria-label": "Notifications",
2698
2652
  "data-slot": "toaster",
2699
2653
  "data-placement": placement,
2700
2654
  className: cn2(TOAST_CLASSES.region, TOAST_CLASSES.regionPlacement[placement], className),
2701
2655
  ...props,
2702
- children: /* @__PURE__ */ jsx41("ol", {
2656
+ children: /* @__PURE__ */ jsx42("ol", {
2703
2657
  "data-slot": "toast-list",
2704
2658
  "data-expanded": open ? `true` : `false`,
2705
2659
  className: cn2(TOAST_CLASSES.list, TOAST_CLASSES.listPlacement[placement]),
@@ -2720,7 +2674,7 @@ function Toaster({ store = toastStore, touch, closeLabel = `Close`, className, .
2720
2674
  const item = geometry.items[i];
2721
2675
  const rank = toasts.length - 1 - i;
2722
2676
  const Icon = t.kind ? KIND_ICONS[t.kind] : null;
2723
- return /* @__PURE__ */ jsxs16("li", {
2677
+ return /* @__PURE__ */ jsxs17("li", {
2724
2678
  ref: (el) => {
2725
2679
  if (el)
2726
2680
  items.current.set(t.id, el);
@@ -2739,29 +2693,29 @@ function Toaster({ store = toastStore, touch, closeLabel = `Close`, className, .
2739
2693
  className: cn2(TOAST_CLASSES.toast, TOAST_CLASSES.toastOrigin[anchoredBottom ? `bottom` : `top`]),
2740
2694
  style: { "--offset": `${item.offset}px`, "--scale": `${item.scale}`, zIndex: i + 1 },
2741
2695
  children: [
2742
- Icon && /* @__PURE__ */ jsx41("div", {
2696
+ Icon && /* @__PURE__ */ jsx42("div", {
2743
2697
  className: TOAST_CLASSES.iconSlot,
2744
- children: /* @__PURE__ */ jsx41(Icon, {
2698
+ children: /* @__PURE__ */ jsx42(Icon, {
2745
2699
  "data-toast-kind": t.kind,
2746
2700
  className: cn2(TOAST_CLASSES.icon, TOAST_CLASSES.kindIcon[t.kind])
2747
2701
  })
2748
2702
  }),
2749
- /* @__PURE__ */ jsxs16("div", {
2703
+ /* @__PURE__ */ jsxs17("div", {
2750
2704
  className: TOAST_CLASSES.content,
2751
2705
  children: [
2752
- /* @__PURE__ */ jsx41("div", {
2706
+ /* @__PURE__ */ jsx42("div", {
2753
2707
  "data-slot": "toast-title",
2754
2708
  className: TOAST_CLASSES.title,
2755
2709
  children: t.title
2756
2710
  }),
2757
- t.description !== undefined && /* @__PURE__ */ jsx41("div", {
2711
+ t.description !== undefined && /* @__PURE__ */ jsx42("div", {
2758
2712
  "data-slot": "toast-description",
2759
2713
  className: TOAST_CLASSES.description,
2760
2714
  children: t.description
2761
2715
  })
2762
2716
  ]
2763
2717
  }),
2764
- t.action && /* @__PURE__ */ jsx41("button", {
2718
+ t.action && /* @__PURE__ */ jsx42("button", {
2765
2719
  type: "button",
2766
2720
  "data-slot": "toast-action",
2767
2721
  className: TOAST_CLASSES.action,
@@ -2771,13 +2725,13 @@ function Toaster({ store = toastStore, touch, closeLabel = `Close`, className, .
2771
2725
  },
2772
2726
  children: t.action.label
2773
2727
  }),
2774
- /* @__PURE__ */ jsx41("button", {
2728
+ /* @__PURE__ */ jsx42("button", {
2775
2729
  type: "button",
2776
2730
  "data-slot": "toast-close",
2777
2731
  "aria-label": closeLabel,
2778
2732
  className: TOAST_CLASSES.close,
2779
2733
  onClick: () => store.dismiss(t.id),
2780
- children: /* @__PURE__ */ jsx41(XIcon3, {})
2734
+ children: /* @__PURE__ */ jsx42(XIcon3, {})
2781
2735
  })
2782
2736
  ]
2783
2737
  }, t.id);
@@ -2788,12 +2742,12 @@ function Toaster({ store = toastStore, touch, closeLabel = `Close`, className, .
2788
2742
  // packages/exponential-ui-react/src/primitives/tooltip.tsx
2789
2743
  import { Tooltip as TooltipPrimitive } from "radix-ui";
2790
2744
  import { TOOLTIP_CLASSES } from "@exponential_app/eui/web/primitives";
2791
- import { jsx as jsx42 } from "react/jsx-runtime";
2745
+ import { jsx as jsx43 } from "react/jsx-runtime";
2792
2746
  function TooltipProvider({
2793
2747
  delayDuration = 0,
2794
2748
  ...props
2795
2749
  }) {
2796
- return /* @__PURE__ */ jsx42(TooltipPrimitive.Provider, {
2750
+ return /* @__PURE__ */ jsx43(TooltipPrimitive.Provider, {
2797
2751
  "data-slot": "tooltip-provider",
2798
2752
  delayDuration,
2799
2753
  ...props
@@ -2802,7 +2756,7 @@ function TooltipProvider({
2802
2756
  function Tooltip({
2803
2757
  ...props
2804
2758
  }) {
2805
- return /* @__PURE__ */ jsx42(TooltipPrimitive.Root, {
2759
+ return /* @__PURE__ */ jsx43(TooltipPrimitive.Root, {
2806
2760
  "data-slot": "tooltip",
2807
2761
  ...props
2808
2762
  });
@@ -2810,7 +2764,7 @@ function Tooltip({
2810
2764
  function TooltipTrigger({
2811
2765
  ...props
2812
2766
  }) {
2813
- return /* @__PURE__ */ jsx42(TooltipPrimitive.Trigger, {
2767
+ return /* @__PURE__ */ jsx43(TooltipPrimitive.Trigger, {
2814
2768
  "data-slot": "tooltip-trigger",
2815
2769
  ...props
2816
2770
  });
@@ -2821,8 +2775,8 @@ function TooltipContent({
2821
2775
  children,
2822
2776
  ...props
2823
2777
  }) {
2824
- return /* @__PURE__ */ jsx42(TooltipPrimitive.Portal, {
2825
- children: /* @__PURE__ */ jsx42(TooltipPrimitive.Content, {
2778
+ return /* @__PURE__ */ jsx43(TooltipPrimitive.Portal, {
2779
+ children: /* @__PURE__ */ jsx43(TooltipPrimitive.Content, {
2826
2780
  "data-slot": "tooltip-content",
2827
2781
  sideOffset,
2828
2782
  className: cn2(TOOLTIP_CLASSES.content, className),
@@ -2854,7 +2808,7 @@ function useIsMobile() {
2854
2808
  return isMobile;
2855
2809
  }
2856
2810
  // packages/exponential-ui-react/src/primitives/voice-wave.tsx
2857
- import { useEffect as useEffect6, useLayoutEffect as useLayoutEffect4, useRef as useRef8 } from "react";
2811
+ import { useEffect as useEffect6, useLayoutEffect as useLayoutEffect5, useRef as useRef9 } from "react";
2858
2812
  import { voiceWave, voiceWaveChildBox, voiceWavePath } from "@exponential_app/eui";
2859
2813
  import {
2860
2814
  VOICE_WAVE_CLASSES,
@@ -2865,16 +2819,16 @@ import {
2865
2819
  voiceWaveName,
2866
2820
  voiceWaveQuiet
2867
2821
  } from "@exponential_app/eui/web/primitives";
2868
- import { jsx as jsx43, jsxs as jsxs17 } from "react/jsx-runtime";
2822
+ import { jsx as jsx44, jsxs as jsxs18 } from "react/jsx-runtime";
2869
2823
  var hasChild = (c) => c !== undefined && c !== null && c !== false && !(Array.isArray(c) && c.length === 0);
2870
2824
  function VoiceWave({ activity = `idle`, level = 0, bands, size = `md`, label, className, children }) {
2871
2825
  const px = VOICE_WAVE_SIZE_PX[size] ?? VOICE_WAVE_SIZE_PX.md;
2872
- const reducedMotion = useMediaQuery(`(prefers-reduced-motion: reduce)`);
2826
+ const reducedMotion = useMediaQuery2(`(prefers-reduced-motion: reduce)`);
2873
2827
  const input = { size: px, activity, level, bands, reducedMotion };
2874
- const latest = useRef8(input);
2828
+ const latest = useRef9(input);
2875
2829
  latest.current = input;
2876
- const elapsed = useRef8(0);
2877
- const paths = useRef8([]);
2830
+ const elapsed = useRef9(0);
2831
+ const paths = useRef9([]);
2878
2832
  const animates = voiceWaveAnimates(activity) && !reducedMotion;
2879
2833
  useEffect6(() => {
2880
2834
  if (!animates) {
@@ -2886,13 +2840,13 @@ function VoiceWave({ activity = `idle`, level = 0, bands, size = `md`, label, cl
2886
2840
  voiceWave({ ...latest.current, elapsed: t }).rings.forEach((ring, k) => paths.current[k]?.setAttribute(`d`, voiceWavePath(ring)));
2887
2841
  });
2888
2842
  }, [animates]);
2889
- const childEl = useRef8(null);
2843
+ const childEl = useRef9(null);
2890
2844
  const present = hasChild(children);
2891
- useLayoutEffect4(() => present && childEl.current ? voiceWaveFitChild(childEl.current, (c) => voiceWaveChildBox(px, c).scale) : undefined, [present, px]);
2845
+ useLayoutEffect5(() => present && childEl.current ? voiceWaveFitChild(childEl.current, (c) => voiceWaveChildBox(px, c).scale) : undefined, [present, px]);
2892
2846
  const wave = voiceWave({ ...input, elapsed: elapsed.current });
2893
2847
  const quiet = voiceWaveQuiet(activity);
2894
2848
  const name = voiceWaveName(label, activity);
2895
- return /* @__PURE__ */ jsxs17("span", {
2849
+ return /* @__PURE__ */ jsxs18("span", {
2896
2850
  "data-slot": "voice-wave",
2897
2851
  "data-activity": activity,
2898
2852
  "data-size": size,
@@ -2901,13 +2855,13 @@ function VoiceWave({ activity = `idle`, level = 0, bands, size = `md`, label, cl
2901
2855
  "aria-hidden": name ? undefined : true,
2902
2856
  className: cn2(VOICE_WAVE_CLASSES.root, VOICE_WAVE_CLASSES.size[size], quiet && VOICE_WAVE_CLASSES.quiet, className),
2903
2857
  children: [
2904
- /* @__PURE__ */ jsx43("svg", {
2858
+ /* @__PURE__ */ jsx44("svg", {
2905
2859
  viewBox: `0 0 ${px} ${px}`,
2906
2860
  width: px,
2907
2861
  height: px,
2908
2862
  "aria-hidden": true,
2909
2863
  className: VOICE_WAVE_CLASSES.svg,
2910
- children: wave.rings.map((ring, k) => /* @__PURE__ */ jsx43("path", {
2864
+ children: wave.rings.map((ring, k) => /* @__PURE__ */ jsx44("path", {
2911
2865
  ref: (el) => {
2912
2866
  paths.current[k] = el;
2913
2867
  },
@@ -2923,7 +2877,7 @@ function VoiceWave({ activity = `idle`, level = 0, bands, size = `md`, label, cl
2923
2877
  strokeLinejoin: "round"
2924
2878
  }, ring.part))
2925
2879
  }),
2926
- present ? /* @__PURE__ */ jsx43("span", {
2880
+ present ? /* @__PURE__ */ jsx44("span", {
2927
2881
  ref: childEl,
2928
2882
  "data-slot": "voice-wave-child",
2929
2883
  "aria-hidden": wave.childSize > 0 ? undefined : true,
@@ -2961,7 +2915,8 @@ export {
2961
2915
  BreadcrumbList,
2962
2916
  BreadcrumbPage,
2963
2917
  BreadcrumbSeparator,
2964
- Button,
2918
+ Button2 as Button,
2919
+ CAROUSEL_GEOMETRY,
2965
2920
  CODE_TOKEN_CLASS,
2966
2921
  Calendar,
2967
2922
  CalendarDayButton,
@@ -2972,6 +2927,8 @@ export {
2972
2927
  CardFooter,
2973
2928
  CardHeader,
2974
2929
  CardTitle,
2930
+ CarouselCounter,
2931
+ CarouselThumbnails,
2975
2932
  Checkbox,
2976
2933
  ChoiceTiles2 as ChoiceTiles,
2977
2934
  ChoiceTilesFrame2 as ChoiceTilesFrame,
@@ -3014,21 +2971,21 @@ export {
3014
2971
  DisclosureHeader,
3015
2972
  DockCard,
3016
2973
  DockPile,
3017
- DropdownMenu,
3018
- DropdownMenuCheckboxItem,
3019
- DropdownMenuContent,
3020
- DropdownMenuGroup,
3021
- DropdownMenuItem,
3022
- DropdownMenuLabel,
3023
- DropdownMenuPortal,
3024
- DropdownMenuRadioGroup,
3025
- DropdownMenuRadioItem,
3026
- DropdownMenuSeparator,
3027
- DropdownMenuShortcut,
3028
- DropdownMenuSub,
3029
- DropdownMenuSubContent,
3030
- DropdownMenuSubTrigger,
3031
- DropdownMenuTrigger,
2974
+ DropdownMenu2 as DropdownMenu,
2975
+ DropdownMenuCheckboxItem2 as DropdownMenuCheckboxItem,
2976
+ DropdownMenuContent2 as DropdownMenuContent,
2977
+ DropdownMenuGroup2 as DropdownMenuGroup,
2978
+ DropdownMenuItem2 as DropdownMenuItem,
2979
+ DropdownMenuLabel2 as DropdownMenuLabel,
2980
+ DropdownMenuPortal2 as DropdownMenuPortal,
2981
+ DropdownMenuRadioGroup2 as DropdownMenuRadioGroup,
2982
+ DropdownMenuRadioItem2 as DropdownMenuRadioItem,
2983
+ DropdownMenuSeparator2 as DropdownMenuSeparator,
2984
+ DropdownMenuShortcut2 as DropdownMenuShortcut,
2985
+ DropdownMenuSub2 as DropdownMenuSub,
2986
+ DropdownMenuSubContent2 as DropdownMenuSubContent,
2987
+ DropdownMenuSubTrigger2 as DropdownMenuSubTrigger,
2988
+ DropdownMenuTrigger2 as DropdownMenuTrigger,
3032
2989
  EMPTY_STATE_SIZES,
3033
2990
  EmptyCta,
3034
2991
  EmptyState,
@@ -3061,7 +3018,11 @@ export {
3061
3018
  MOBILE_PAGE,
3062
3019
  MOBILE_SHEET,
3063
3020
  MOBILE_SHEET_FULL,
3021
+ MOSAIC_GEOMETRY,
3064
3022
  Meter,
3023
+ Mosaic,
3024
+ OUTLINE_GEOMETRY,
3025
+ Outline,
3065
3026
  Popover,
3066
3027
  PopoverAnchor,
3067
3028
  PopoverContent,
@@ -3126,9 +3087,13 @@ export {
3126
3087
  TooltipProvider,
3127
3088
  TooltipTrigger,
3128
3089
  VoiceWave,
3090
+ ZOOMABLE_IMAGE_STRINGS2 as ZOOMABLE_IMAGE_STRINGS,
3091
+ ZOOM_MATH2 as ZOOM_MATH,
3092
+ ZoomableImage2 as ZoomableImage,
3129
3093
  alertVariants,
3130
3094
  avatarHueIndex,
3131
- buttonVariants,
3095
+ buttonVariants2 as buttonVariants,
3096
+ carouselCounterText2 as carouselCounterText,
3132
3097
  choiceColumns2 as choiceColumns,
3133
3098
  choiceToggle2 as choiceToggle,
3134
3099
  choiceValues2 as choiceValues,
@@ -3137,6 +3102,8 @@ export {
3137
3102
  dockPileGeometry2 as dockPileGeometry,
3138
3103
  getInitials2 as getInitials,
3139
3104
  middleTruncate,
3105
+ mosaicTiles2 as mosaicTiles,
3106
+ outlineCountText2 as outlineCountText,
3140
3107
  progressRingPercent2 as progressRingPercent,
3141
3108
  ringGeometry2 as ringGeometry,
3142
3109
  shouldDismissSheet,
@@ -3145,10 +3112,11 @@ export {
3145
3112
  toastStackGeometry2 as toastStackGeometry,
3146
3113
  toastStore,
3147
3114
  useIsMobile,
3148
- useMediaQuery,
3115
+ useMediaQuery2 as useMediaQuery,
3149
3116
  useSheetDrag,
3150
- useSheetDragHandleProps
3117
+ useSheetDragHandleProps,
3118
+ useZoomableImage2 as useZoomableImage
3151
3119
  };
3152
3120
 
3153
- //# debugId=F72B037A10E5B0A264756E2164756E21
3121
+ //# debugId=A2DF99790241EFFB64756E2164756E21
3154
3122
  //# sourceMappingURL=index.js.map