@bug-on/md3-react 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React38 = require('react');
4
+ var React39 = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var materialColorUtilities = require('@material/material-color-utilities');
7
7
  var clsx = require('clsx');
@@ -33,7 +33,7 @@ function _interopNamespace(e) {
33
33
  return Object.freeze(n);
34
34
  }
35
35
 
36
- var React38__namespace = /*#__PURE__*/_interopNamespace(React38);
36
+ var React39__namespace = /*#__PURE__*/_interopNamespace(React39);
37
37
  var RxContextMenu__namespace = /*#__PURE__*/_interopNamespace(RxContextMenu);
38
38
  var DropdownMenu__namespace = /*#__PURE__*/_interopNamespace(DropdownMenu);
39
39
  var RadixScrollArea__namespace = /*#__PURE__*/_interopNamespace(RadixScrollArea);
@@ -79,8 +79,8 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
79
79
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
80
80
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
81
81
  function useMediaQuery(query) {
82
- const [matches, setMatches] = React38.useState(false);
83
- React38.useEffect(() => {
82
+ const [matches, setMatches] = React39.useState(false);
83
+ React39.useEffect(() => {
84
84
  const mql = window.matchMedia(query);
85
85
  const handler = (e) => setMatches(e.matches);
86
86
  setMatches(mql.matches);
@@ -96,8 +96,8 @@ function useRipple(options = {}) {
96
96
  opacity = 0.12,
97
97
  disabled = false
98
98
  } = options;
99
- const ref = React38.useRef(null);
100
- const onPointerDown = React38.useCallback(
99
+ const ref = React39.useRef(null);
100
+ const onPointerDown = React39.useCallback(
101
101
  (event) => {
102
102
  if (disabled || !ref.current) return;
103
103
  const el = ref.current;
@@ -244,7 +244,7 @@ function applyTheme(sourceColorHex, mode = "light", root = document.documentElem
244
244
  const resolved = resolveMode(mode);
245
245
  const colors = generateM3Theme(sourceColorHex, resolved);
246
246
  for (const [key, value] of Object.entries(colors)) {
247
- const kebabKey = key.replace(/[A-Z]/g, (m47) => `-${m47.toLowerCase()}`);
247
+ const kebabKey = key.replace(/[A-Z]/g, (m48) => `-${m48.toLowerCase()}`);
248
248
  root.style.setProperty(`--md-sys-color-${kebabKey}`, value);
249
249
  root.style.setProperty(`--color-m3-${kebabKey}`, value);
250
250
  }
@@ -505,7 +505,7 @@ var SUBMENU_CONTAINER_VARIANTS = {
505
505
  transition: FAST_EFFECTS_TRANSITION
506
506
  }
507
507
  };
508
- var MenuContext = React38__namespace.createContext({
508
+ var MenuContext = React39__namespace.createContext({
509
509
  variant: "baseline",
510
510
  colorVariant: "standard",
511
511
  menuPrimitive: "dropdown",
@@ -521,15 +521,15 @@ function MenuProvider({
521
521
  onOpenChange,
522
522
  children
523
523
  }) {
524
- const value = React38__namespace.useMemo(
524
+ const value = React39__namespace.useMemo(
525
525
  () => ({ variant, colorVariant, menuPrimitive, open, onOpenChange }),
526
526
  [variant, colorVariant, menuPrimitive, open, onOpenChange]
527
527
  );
528
528
  return /* @__PURE__ */ jsxRuntime.jsx(MenuContext.Provider, { value, children });
529
529
  }
530
530
  function useMenuContext() {
531
- const ctx = React38__namespace.useContext(MenuContext);
532
- return React38__namespace.useMemo(
531
+ const ctx = React39__namespace.useContext(MenuContext);
532
+ return React39__namespace.useMemo(
533
533
  () => __spreadProps(__spreadValues({}, ctx), {
534
534
  isStatic: ctx.menuPrimitive === "static",
535
535
  menuVariant: ctx.variant
@@ -646,7 +646,7 @@ function ContextMenu({
646
646
  variant = "baseline",
647
647
  colorVariant = "standard"
648
648
  }) {
649
- const [open, setOpen] = React38__namespace.useState(false);
649
+ const [open, setOpen] = React39__namespace.useState(false);
650
650
  return /* @__PURE__ */ jsxRuntime.jsx(
651
651
  MenuProvider,
652
652
  {
@@ -660,12 +660,12 @@ function ContextMenu({
660
660
  );
661
661
  }
662
662
  ContextMenu.displayName = "ContextMenu";
663
- var ContextMenuTrigger = React38__namespace.forwardRef((_a, ref) => {
663
+ var ContextMenuTrigger = React39__namespace.forwardRef((_a, ref) => {
664
664
  var _b = _a, { children, asChild = true } = _b, props = __objRest(_b, ["children", "asChild"]);
665
665
  return /* @__PURE__ */ jsxRuntime.jsx(RxContextMenu__namespace.Trigger, __spreadProps(__spreadValues({ ref, asChild }, props), { children }));
666
666
  });
667
667
  ContextMenuTrigger.displayName = "ContextMenuTrigger";
668
- var ContextMenuContent = React38__namespace.forwardRef(
668
+ var ContextMenuContent = React39__namespace.forwardRef(
669
669
  (_a, ref) => {
670
670
  var _b = _a, {
671
671
  children,
@@ -713,10 +713,10 @@ var ContextMenuContent = React38__namespace.forwardRef(
713
713
  className
714
714
  );
715
715
  const flattenChildren = (nodes) => {
716
- return React38__namespace.Children.toArray(nodes).reduce(
716
+ return React39__namespace.Children.toArray(nodes).reduce(
717
717
  (acc, child) => {
718
- if (React38__namespace.isValidElement(child)) {
719
- if (child.type === React38__namespace.Fragment) {
718
+ if (React39__namespace.isValidElement(child)) {
719
+ if (child.type === React39__namespace.Fragment) {
720
720
  return acc.concat(
721
721
  flattenChildren(
722
722
  child.props.children
@@ -735,7 +735,7 @@ var ContextMenuContent = React38__namespace.forwardRef(
735
735
  const validChildren = flattenChildren(children);
736
736
  const groupCount = validChildren.length;
737
737
  const enhancedChildren = validChildren.map(
738
- (child, i) => React38__namespace.cloneElement(
738
+ (child, i) => React39__namespace.cloneElement(
739
739
  child,
740
740
  {
741
741
  index: i,
@@ -799,12 +799,12 @@ function Menu(_a) {
799
799
  ]);
800
800
  var _a2;
801
801
  const resolvedVariant = (_a2 = variant != null ? variant : menuVariant) != null ? _a2 : "baseline";
802
- const [internalOpen, setInternalOpen] = React38__namespace.useState(
802
+ const [internalOpen, setInternalOpen] = React39__namespace.useState(
803
803
  () => defaultOpen != null ? defaultOpen : false
804
804
  );
805
805
  const isControlled = controlledOpen !== void 0;
806
806
  const open = isControlled ? controlledOpen : internalOpen;
807
- const handleOpenChange = React38__namespace.useCallback(
807
+ const handleOpenChange = React39__namespace.useCallback(
808
808
  (next) => {
809
809
  if (!isControlled) setInternalOpen(next);
810
810
  controlledOnOpenChange == null ? void 0 : controlledOnOpenChange(next);
@@ -831,12 +831,12 @@ function Menu(_a) {
831
831
  );
832
832
  }
833
833
  Menu.displayName = "Menu";
834
- var MenuTrigger = React38__namespace.forwardRef((_a, ref) => {
834
+ var MenuTrigger = React39__namespace.forwardRef((_a, ref) => {
835
835
  var _b = _a, { children, asChild = true } = _b, props = __objRest(_b, ["children", "asChild"]);
836
836
  return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu__namespace.Trigger, __spreadProps(__spreadValues({ ref, asChild }, props), { children }));
837
837
  });
838
838
  MenuTrigger.displayName = "MenuTrigger";
839
- var MenuContent = React38__namespace.forwardRef(
839
+ var MenuContent = React39__namespace.forwardRef(
840
840
  (_a, ref) => {
841
841
  var _b = _a, {
842
842
  children,
@@ -890,10 +890,10 @@ var MenuContent = React38__namespace.forwardRef(
890
890
  className
891
891
  );
892
892
  const flattenChildren = (nodes) => {
893
- return React38__namespace.Children.toArray(nodes).reduce(
893
+ return React39__namespace.Children.toArray(nodes).reduce(
894
894
  (acc, child) => {
895
- if (React38__namespace.isValidElement(child)) {
896
- if (child.type === React38__namespace.Fragment) {
895
+ if (React39__namespace.isValidElement(child)) {
896
+ if (child.type === React39__namespace.Fragment) {
897
897
  return acc.concat(
898
898
  flattenChildren(
899
899
  child.props.children
@@ -912,7 +912,7 @@ var MenuContent = React38__namespace.forwardRef(
912
912
  const validChildren = flattenChildren(children);
913
913
  const groupCount = validChildren.length;
914
914
  const enhancedChildren = validChildren.map(
915
- (child, i) => React38__namespace.cloneElement(child, {
915
+ (child, i) => React39__namespace.cloneElement(child, {
916
916
  index: i,
917
917
  count: groupCount,
918
918
  isGapVariant: isExpressiveGap
@@ -967,7 +967,7 @@ var MenuContent = React38__namespace.forwardRef(
967
967
  }
968
968
  );
969
969
  MenuContent.displayName = "MenuContent";
970
- var MenuDivider = React38__namespace.forwardRef(
970
+ var MenuDivider = React39__namespace.forwardRef(
971
971
  (_a, ref) => {
972
972
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
973
973
  const { menuVariant } = useMenuContext();
@@ -998,7 +998,7 @@ function getGroupPosition(index, count) {
998
998
  function getGroupActiveShape(position) {
999
999
  return GROUP_SHAPES[`${position}Active`];
1000
1000
  }
1001
- var MenuGroup = React38__namespace.forwardRef(
1001
+ var MenuGroup = React39__namespace.forwardRef(
1002
1002
  (_a, ref) => {
1003
1003
  var _b = _a, {
1004
1004
  children,
@@ -1028,15 +1028,15 @@ var MenuGroup = React38__namespace.forwardRef(
1028
1028
  const colors = menuVariant === "baseline" ? BASELINE_COLORS : colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
1029
1029
  const position = getGroupPosition(index, count);
1030
1030
  const activeShape = getGroupActiveShape(position);
1031
- const [isHovered, setIsHovered] = React38__namespace.useState(false);
1031
+ const [isHovered, setIsHovered] = React39__namespace.useState(false);
1032
1032
  const currentShape = isStatic || isHovered ? activeShape : GROUP_SHAPES.inactive;
1033
- const handlePointerEnter = React38__namespace.useCallback(() => setIsHovered(true), []);
1034
- const handlePointerLeave = React38__namespace.useCallback(() => setIsHovered(false), []);
1033
+ const handlePointerEnter = React39__namespace.useCallback(() => setIsHovered(true), []);
1034
+ const handlePointerLeave = React39__namespace.useCallback(() => setIsHovered(false), []);
1035
1035
  const flattenChildren = (children2) => {
1036
- return React38__namespace.Children.toArray(children2).reduce(
1036
+ return React39__namespace.Children.toArray(children2).reduce(
1037
1037
  (acc, child) => {
1038
- if (React38__namespace.isValidElement(child)) {
1039
- if (child.type === React38__namespace.Fragment) {
1038
+ if (React39__namespace.isValidElement(child)) {
1039
+ if (child.type === React39__namespace.Fragment) {
1040
1040
  return acc.concat(
1041
1041
  flattenChildren(
1042
1042
  child.props.children
@@ -1054,7 +1054,7 @@ var MenuGroup = React38__namespace.forwardRef(
1054
1054
  const itemCount = validChildren.length;
1055
1055
  const enhancedChildren = validChildren.map((child, i) => {
1056
1056
  const itemPosition2 = itemCount === 1 ? "standalone" : i === 0 ? "leading" : i === itemCount - 1 ? "trailing" : "middle";
1057
- return React38__namespace.cloneElement(child, {
1057
+ return React39__namespace.cloneElement(child, {
1058
1058
  itemPosition: itemPosition2,
1059
1059
  colorVariant
1060
1060
  });
@@ -1119,7 +1119,7 @@ var SPRING_TRANSITION = {
1119
1119
  };
1120
1120
  var SPRING_TRANSITION_EXPRESSIVE = {
1121
1121
  type: "spring",
1122
- bounce: 0.35,
1122
+ bounce: 0.45,
1123
1123
  duration: 0.4
1124
1124
  };
1125
1125
  var ICON_SPAN_VARIANTS = {
@@ -1142,7 +1142,7 @@ var VARIANT_FONT = {
1142
1142
  rounded: "'Material Symbols Rounded'",
1143
1143
  sharp: "'Material Symbols Sharp'"
1144
1144
  };
1145
- var IconComponent = React38__namespace.forwardRef(
1145
+ var IconComponent = React39__namespace.forwardRef(
1146
1146
  (_a, ref) => {
1147
1147
  var _b = _a, {
1148
1148
  name,
@@ -1208,14 +1208,14 @@ var IconComponent = React38__namespace.forwardRef(
1208
1208
  }
1209
1209
  );
1210
1210
  IconComponent.displayName = "Icon";
1211
- var Icon = React38__namespace.memo(IconComponent);
1211
+ var Icon = React39__namespace.memo(IconComponent);
1212
1212
  function getItemShapeClass(position, selected, isStatic = false, menuVariant = "expressive") {
1213
1213
  if (menuVariant === "baseline") return BASELINE_ITEM_SHAPE;
1214
1214
  if (selected) return ITEM_SHAPE_CLASSES.selected;
1215
1215
  if (isStatic && position === "standalone") return "rounded-[12px]";
1216
1216
  return ITEM_SHAPE_CLASSES[position];
1217
1217
  }
1218
- var MenuItem = React38__namespace.forwardRef(
1218
+ var MenuItem = React39__namespace.forwardRef(
1219
1219
  (_a, ref) => {
1220
1220
  var _b = _a, {
1221
1221
  children,
@@ -1417,31 +1417,31 @@ function SubMenu({
1417
1417
  }) {
1418
1418
  const { colorVariant: contextColorVariant, menuPrimitive } = useMenuContext();
1419
1419
  const colorVariant = propColorVariant != null ? propColorVariant : contextColorVariant;
1420
- const [open, setOpen] = React38__namespace.useState(false);
1421
- const openTimerRef = React38__namespace.useRef(null);
1422
- const closeTimerRef = React38__namespace.useRef(
1420
+ const [open, setOpen] = React39__namespace.useState(false);
1421
+ const openTimerRef = React39__namespace.useRef(null);
1422
+ const closeTimerRef = React39__namespace.useRef(
1423
1423
  null
1424
1424
  );
1425
- const clearTimers = React38__namespace.useCallback(() => {
1425
+ const clearTimers = React39__namespace.useCallback(() => {
1426
1426
  if (openTimerRef.current) clearTimeout(openTimerRef.current);
1427
1427
  if (closeTimerRef.current) clearTimeout(closeTimerRef.current);
1428
1428
  }, []);
1429
- const handleTriggerPointerEnter = React38__namespace.useCallback(() => {
1429
+ const handleTriggerPointerEnter = React39__namespace.useCallback(() => {
1430
1430
  clearTimers();
1431
1431
  openTimerRef.current = setTimeout(() => setOpen(true), hoverOpenDelay);
1432
1432
  }, [hoverOpenDelay, clearTimers]);
1433
- const handleTriggerPointerLeave = React38__namespace.useCallback(() => {
1433
+ const handleTriggerPointerLeave = React39__namespace.useCallback(() => {
1434
1434
  clearTimers();
1435
1435
  closeTimerRef.current = setTimeout(() => setOpen(false), hoverCloseDelay);
1436
1436
  }, [hoverCloseDelay, clearTimers]);
1437
- const handleContentPointerEnter = React38__namespace.useCallback(() => {
1437
+ const handleContentPointerEnter = React39__namespace.useCallback(() => {
1438
1438
  clearTimers();
1439
1439
  }, [clearTimers]);
1440
- const handleContentPointerLeave = React38__namespace.useCallback(() => {
1440
+ const handleContentPointerLeave = React39__namespace.useCallback(() => {
1441
1441
  clearTimers();
1442
1442
  closeTimerRef.current = setTimeout(() => setOpen(false), hoverCloseDelay);
1443
1443
  }, [hoverCloseDelay, clearTimers]);
1444
- React38__namespace.useEffect(() => () => clearTimers(), [clearTimers]);
1444
+ React39__namespace.useEffect(() => () => clearTimers(), [clearTimers]);
1445
1445
  const Sub3 = menuPrimitive === "context" ? RxContextMenu__namespace.Sub : DropdownMenu__namespace.Sub;
1446
1446
  const SubTrigger3 = menuPrimitive === "context" ? RxContextMenu__namespace.SubTrigger : DropdownMenu__namespace.SubTrigger;
1447
1447
  const SubContent3 = menuPrimitive === "context" ? RxContextMenu__namespace.SubContent : DropdownMenu__namespace.SubContent;
@@ -1453,7 +1453,7 @@ function SubMenu({
1453
1453
  className: "w-full outline-none",
1454
1454
  onPointerEnter: handleTriggerPointerEnter,
1455
1455
  onPointerLeave: handleTriggerPointerLeave,
1456
- children: React38__namespace.isValidElement(trigger) ? React38__namespace.cloneElement(trigger, {
1456
+ children: React39__namespace.isValidElement(trigger) ? React39__namespace.cloneElement(trigger, {
1457
1457
  isSubTrigger: true,
1458
1458
  // Auto-add chevron if missing
1459
1459
  trailingIcon: trigger.props.trailingIcon || /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "chevron_right", size: 20 })
@@ -1530,7 +1530,7 @@ function SubMenuContent({
1530
1530
  );
1531
1531
  }
1532
1532
  SubMenuContent.displayName = "SubMenuContent";
1533
- var VerticalMenuDivider = React38__namespace.forwardRef((_a, ref) => {
1533
+ var VerticalMenuDivider = React39__namespace.forwardRef((_a, ref) => {
1534
1534
  var _b = _a, { className, index, count, isGapVariant } = _b, props = __objRest(_b, ["className", "index", "count", "isGapVariant"]);
1535
1535
  return /* @__PURE__ */ jsxRuntime.jsx(
1536
1536
  "hr",
@@ -1550,7 +1550,7 @@ var VerticalMenuDivider = React38__namespace.forwardRef((_a, ref) => {
1550
1550
  });
1551
1551
  VerticalMenuDivider.displayName = "VerticalMenuDivider";
1552
1552
  var VerticalMenuGroup = MenuGroup;
1553
- var VerticalMenuContent = React38__namespace.forwardRef(
1553
+ var VerticalMenuContent = React39__namespace.forwardRef(
1554
1554
  (_a, ref) => {
1555
1555
  var _b = _a, {
1556
1556
  children,
@@ -1567,10 +1567,10 @@ var VerticalMenuContent = React38__namespace.forwardRef(
1567
1567
  const colorVariant = propColorVariant != null ? propColorVariant : contextColorVariant;
1568
1568
  const colors = colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
1569
1569
  const flattenChildren = (children2) => {
1570
- return React38__namespace.Children.toArray(children2).reduce(
1570
+ return React39__namespace.Children.toArray(children2).reduce(
1571
1571
  (acc, child) => {
1572
- if (React38__namespace.isValidElement(child)) {
1573
- if (child.type === React38__namespace.Fragment) {
1572
+ if (React39__namespace.isValidElement(child)) {
1573
+ if (child.type === React39__namespace.Fragment) {
1574
1574
  return acc.concat(
1575
1575
  flattenChildren(
1576
1576
  child.props.children
@@ -1587,7 +1587,7 @@ var VerticalMenuContent = React38__namespace.forwardRef(
1587
1587
  const validChildren = flattenChildren(children);
1588
1588
  const groupCount = validChildren.length;
1589
1589
  const enhancedChildren = validChildren.map(
1590
- (child, i) => React38__namespace.cloneElement(child, {
1590
+ (child, i) => React39__namespace.cloneElement(child, {
1591
1591
  index: i,
1592
1592
  count: groupCount,
1593
1593
  isGapVariant: separatorStyle === "gap"
@@ -1624,13 +1624,13 @@ var VerticalMenuContent = React38__namespace.forwardRef(
1624
1624
  }
1625
1625
  );
1626
1626
  VerticalMenuContent.displayName = "VerticalMenuContent";
1627
- var VerticalMenu = React38__namespace.forwardRef((_a, ref) => {
1627
+ var VerticalMenu = React39__namespace.forwardRef((_a, ref) => {
1628
1628
  var _b = _a, { children, colorVariant = "standard", className } = _b, props = __objRest(_b, ["children", "colorVariant", "className"]);
1629
- const noop = React38__namespace.useCallback(() => {
1629
+ const noop = React39__namespace.useCallback(() => {
1630
1630
  }, []);
1631
1631
  const colors = colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
1632
- const containerRef = React38__namespace.useRef(null);
1633
- const mergedRef = React38__namespace.useCallback(
1632
+ const containerRef = React39__namespace.useRef(null);
1633
+ const mergedRef = React39__namespace.useCallback(
1634
1634
  (node) => {
1635
1635
  containerRef.current = node;
1636
1636
  if (typeof ref === "function") ref(node);
@@ -1639,7 +1639,7 @@ var VerticalMenu = React38__namespace.forwardRef((_a, ref) => {
1639
1639
  },
1640
1640
  [ref]
1641
1641
  );
1642
- const handleKeyDown = React38__namespace.useCallback(
1642
+ const handleKeyDown = React39__namespace.useCallback(
1643
1643
  (e) => {
1644
1644
  var _a2;
1645
1645
  if (!containerRef.current) return;
@@ -1722,7 +1722,7 @@ var VerticalMenu = React38__namespace.forwardRef((_a, ref) => {
1722
1722
  });
1723
1723
  VerticalMenu.displayName = "VerticalMenu";
1724
1724
  function detectSeparatorStyle(children) {
1725
- const child = React38__namespace.Children.toArray(children).find(React38__namespace.isValidElement);
1725
+ const child = React39__namespace.Children.toArray(children).find(React39__namespace.isValidElement);
1726
1726
  if (child) {
1727
1727
  const style = child.props.separatorStyle;
1728
1728
  if (style) return style;
@@ -1803,11 +1803,11 @@ function AppBarColumn({
1803
1803
  maxItemCount,
1804
1804
  className
1805
1805
  }) {
1806
- const containerRef = React38__namespace.useRef(null);
1807
- const [visibleCount, setVisibleCount] = React38__namespace.useState(
1806
+ const containerRef = React39__namespace.useRef(null);
1807
+ const [visibleCount, setVisibleCount] = React39__namespace.useState(
1808
1808
  maxItemCount != null ? maxItemCount : items.length
1809
1809
  );
1810
- React38__namespace.useEffect(() => {
1810
+ React39__namespace.useEffect(() => {
1811
1811
  if (maxItemCount !== void 0) {
1812
1812
  setVisibleCount(Math.min(maxItemCount, items.length));
1813
1813
  return;
@@ -1855,11 +1855,11 @@ function AppBarColumn({
1855
1855
  );
1856
1856
  }
1857
1857
  function AppBarRow({ items, maxItemCount, className }) {
1858
- const containerRef = React38__namespace.useRef(null);
1859
- const [visibleCount, setVisibleCount] = React38__namespace.useState(
1858
+ const containerRef = React39__namespace.useRef(null);
1859
+ const [visibleCount, setVisibleCount] = React39__namespace.useState(
1860
1860
  maxItemCount != null ? maxItemCount : items.length
1861
1861
  );
1862
- React38__namespace.useEffect(() => {
1862
+ React39__namespace.useEffect(() => {
1863
1863
  if (maxItemCount !== void 0) {
1864
1864
  setVisibleCount(Math.min(maxItemCount, items.length));
1865
1865
  return;
@@ -1913,12 +1913,12 @@ function useAppBarScroll({
1913
1913
  collapsedHeight = 64,
1914
1914
  expandedHeight = 112
1915
1915
  } = {}) {
1916
- const [isScrolled, setIsScrolled] = React38__namespace.useState(false);
1917
- const [collapsedFraction, setCollapsedFraction] = React38__namespace.useState(0);
1918
- const [isHidden, setIsHidden] = React38__namespace.useState(false);
1919
- const prevScrollYRef = React38__namespace.useRef(0);
1916
+ const [isScrolled, setIsScrolled] = React39__namespace.useState(false);
1917
+ const [collapsedFraction, setCollapsedFraction] = React39__namespace.useState(0);
1918
+ const [isHidden, setIsHidden] = React39__namespace.useState(false);
1919
+ const prevScrollYRef = React39__namespace.useRef(0);
1920
1920
  const hideThreshold = 64;
1921
- React38__namespace.useEffect(() => {
1921
+ React39__namespace.useEffect(() => {
1922
1922
  var _a;
1923
1923
  const scrollDistance = expandedHeight - collapsedHeight;
1924
1924
  const getScrollY = () => {
@@ -2039,7 +2039,7 @@ function useFlexibleAppBar({
2039
2039
  expandedHeight
2040
2040
  });
2041
2041
  const scrollProgress = react.useMotionValue(0);
2042
- React38__namespace.useEffect(() => {
2042
+ React39__namespace.useEffect(() => {
2043
2043
  scrollProgress.set(
2044
2044
  shouldReduceMotion ? collapsedFraction > 0.5 ? 1 : 0 : collapsedFraction
2045
2045
  );
@@ -2380,7 +2380,7 @@ function SearchAppBar({
2380
2380
  }) {
2381
2381
  var _a, _b;
2382
2382
  const shouldReduceMotion = react.useReducedMotion();
2383
- const [isSearchOpen, setIsSearchOpen] = React38__namespace.useState(false);
2383
+ const [isSearchOpen, setIsSearchOpen] = React39__namespace.useState(false);
2384
2384
  const { isScrolled } = useAppBarScroll({
2385
2385
  scrollElement,
2386
2386
  behavior: scrollBehavior === "exitUntilCollapsed" ? "pinned" : scrollBehavior
@@ -2494,8 +2494,8 @@ function SearchView({
2494
2494
  className
2495
2495
  }) {
2496
2496
  const shouldReduceMotion = react.useReducedMotion();
2497
- const inputRef = React38__namespace.useRef(null);
2498
- React38__namespace.useEffect(() => {
2497
+ const inputRef = React39__namespace.useRef(null);
2498
+ React39__namespace.useEffect(() => {
2499
2499
  const timer = window.setTimeout(() => {
2500
2500
  var _a;
2501
2501
  (_a = inputRef.current) == null ? void 0 : _a.focus();
@@ -2765,9 +2765,9 @@ function formatBadgeLabel(children, max) {
2765
2765
  return "";
2766
2766
  }
2767
2767
  function detectBadgeHasContent(badge) {
2768
- return React38__namespace.isValidElement(badge) && badge.props.children != null;
2768
+ return React39__namespace.isValidElement(badge) && badge.props.children != null;
2769
2769
  }
2770
- var BadgeImpl = React38__namespace.forwardRef(
2770
+ var BadgeImpl = React39__namespace.forwardRef(
2771
2771
  (_a, ref) => {
2772
2772
  var _b = _a, {
2773
2773
  children,
@@ -2821,7 +2821,7 @@ var BadgeImpl = React38__namespace.forwardRef(
2821
2821
  }
2822
2822
  );
2823
2823
  BadgeImpl.displayName = "Badge";
2824
- var Badge = React38__namespace.memo(BadgeImpl);
2824
+ var Badge = React39__namespace.memo(BadgeImpl);
2825
2825
  function BadgedBox({
2826
2826
  badge,
2827
2827
  children,
@@ -2887,11 +2887,11 @@ var ROTATE_KEY_SPLINES = [
2887
2887
  var ROTATE_VALUES = "0 24 24; 154 24 24; 309 24 24; 463 24 24; 617 24 24; 771 24 24; 926 24 24; 1080 24 24";
2888
2888
  var DETERMINATE_CIRCLE = "M24 7 C34.49 7 41 13.51 41 24 C41 34.49 34.49 41 24 41 C13.51 41 7 34.49 7 24 C7 13.51 13.51 7 24 7 Z";
2889
2889
  var DETERMINATE_SOFT_BURST = "M20.9 10.4 21.4 9.5 21.9 8.7 22.5 7.8 23.2 7.2 24.2 7 25.1 7.4 25.7 8.1 26.2 9 26.8 9.8 27.3 10.6 28.1 11.2 29 11.3 30 11 30.9 10.6 31.8 10.3 32.8 9.9 33.7 10 34.5 10.6 34.9 11.5 34.8 12.5 34.8 13.5 34.7 14.5 34.7 15.5 35.2 16.3 36 16.8 37 17.1 37.9 17.3 38.9 17.5 39.8 17.9 40.4 18.7 40.5 19.7 40 20.5 39.4 21.3 38.7 22 38.1 22.8 37.6 23.7 37.7 24.6 38.3 25.5 38.9 26.2 39.6 27 40.2 27.7 40.5 28.7 40.3 29.6 39.5 30.3 38.6 30.6 37.6 30.8 36.7 31 35.7 31.3 35 31.9 34.6 32.8 34.7 33.8 34.8 34.8 34.9 35.8 34.8 36.8 34.3 37.6 33.4 38.1 32.4 38 31.5 37.6 30.6 37.2 29.7 36.9 28.7 36.6 27.8 36.9 27.1 37.6 26.6 38.5 26.1 39.3 25.5 40.2 24.8 40.8 23.8 41 22.9 40.6 22.3 39.9 21.8 39 21.2 38.2 20.7 37.4 19.9 36.8 19 36.7 18 37 17.1 37.4 16.2 37.7 15.2 38.1 14.3 38 13.5 37.4 13.1 36.5 13.2 35.5 13.2 34.5 13.3 33.5 13.3 32.5 12.8 31.7 12 31.2 11 31 10.1 30.7 9.1 30.5 8.2 30.1 7.6 29.3 7.5 28.3 8 27.5 8.7 26.7 9.3 26 9.9 25.2 10.4 24.3 10.3 23.4 9.7 22.5 9.1 21.8 8.4 21 7.8 20.3 7.5 19.3 7.7 18.4 8.5 17.7 9.4 17.4 10.4 17.2 11.3 17 12.3 16.7 13 16.1 13.4 15.2 13.3 14.2 13.2 13.2 13.1 12.2 13.2 11.2 13.7 10.4 14.6 9.9 15.6 10 16.5 10.4 17.4 10.8 18.3 11.1 19.3 11.4 20.2 11.1Z";
2890
- var IndeterminateSvg = React38__namespace.memo(function IndeterminateSvg2({
2890
+ var IndeterminateSvg = React39__namespace.memo(function IndeterminateSvg2({
2891
2891
  size
2892
2892
  }) {
2893
- const [ready, setReady] = React38__namespace.useState(false);
2894
- React38__namespace.useEffect(() => {
2893
+ const [ready, setReady] = React39__namespace.useState(false);
2894
+ React39__namespace.useEffect(() => {
2895
2895
  const raf = requestAnimationFrame(() => setReady(true));
2896
2896
  return () => cancelAnimationFrame(raf);
2897
2897
  }, []);
@@ -2936,7 +2936,7 @@ var IndeterminateSvg = React38__namespace.memo(function IndeterminateSvg2({
2936
2936
  }
2937
2937
  );
2938
2938
  });
2939
- var DeterminateSvg = React38__namespace.memo(function DeterminateSvg2({
2939
+ var DeterminateSvg = React39__namespace.memo(function DeterminateSvg2({
2940
2940
  size,
2941
2941
  progress
2942
2942
  }) {
@@ -2961,7 +2961,7 @@ var DeterminateSvg = React38__namespace.memo(function DeterminateSvg2({
2961
2961
  }
2962
2962
  );
2963
2963
  });
2964
- var LoadingIndicator = React38__namespace.forwardRef(
2964
+ var LoadingIndicator = React39__namespace.forwardRef(
2965
2965
  (_a, ref) => {
2966
2966
  var _b = _a, {
2967
2967
  variant = "uncontained",
@@ -3076,7 +3076,7 @@ function getSinePath(startX, endX, phase, wl, amp) {
3076
3076
  d += ` L ${endX.toFixed(2)} ${yEnd.toFixed(2)}`;
3077
3077
  return d;
3078
3078
  }
3079
- var CircularProgress = React38__namespace.forwardRef(
3079
+ var CircularProgress = React39__namespace.forwardRef(
3080
3080
  (_a, ref) => {
3081
3081
  var _b = _a, {
3082
3082
  value,
@@ -3114,15 +3114,15 @@ var CircularProgress = React38__namespace.forwardRef(
3114
3114
  const isWavy = shape === "wavy";
3115
3115
  const BASELINE_SIZE = 48;
3116
3116
  const scaleFactor = size / BASELINE_SIZE;
3117
- const effectiveAmplitude = React38__namespace.useMemo(
3117
+ const effectiveAmplitude = React39__namespace.useMemo(
3118
3118
  () => amplitude != null ? amplitude : 1.6 * scaleFactor,
3119
3119
  [amplitude, scaleFactor]
3120
3120
  );
3121
- const effectiveWavelength = React38__namespace.useMemo(
3121
+ const effectiveWavelength = React39__namespace.useMemo(
3122
3122
  () => wavelength != null ? wavelength : 15 * scaleFactor,
3123
3123
  [wavelength, scaleFactor]
3124
3124
  );
3125
- const wavyActivePath = React38__namespace.useMemo(
3125
+ const wavyActivePath = React39__namespace.useMemo(
3126
3126
  () => isWavy ? generateWavyCircularPath(
3127
3127
  center,
3128
3128
  radius,
@@ -3131,8 +3131,8 @@ var CircularProgress = React38__namespace.forwardRef(
3131
3131
  ) : null,
3132
3132
  [isWavy, center, radius, effectiveAmplitude, effectiveWavelength]
3133
3133
  );
3134
- const circumference = React38__namespace.useMemo(() => 2 * Math.PI * radius, [radius]);
3135
- const gapForTrack = React38__namespace.useMemo(
3134
+ const circumference = React39__namespace.useMemo(() => 2 * Math.PI * radius, [radius]);
3135
+ const gapForTrack = React39__namespace.useMemo(
3136
3136
  () => (gapSize + trackHeight) / circumference,
3137
3137
  [gapSize, trackHeight, circumference]
3138
3138
  );
@@ -3321,9 +3321,9 @@ var CircularProgress = React38__namespace.forwardRef(
3321
3321
  );
3322
3322
  CircularProgress.displayName = "CircularProgress";
3323
3323
  function useContainerWidth() {
3324
- const [width, setWidth] = React38__namespace.useState(0);
3325
- const observerRef = React38__namespace.useRef(null);
3326
- const ref = React38__namespace.useCallback((node) => {
3324
+ const [width, setWidth] = React39__namespace.useState(0);
3325
+ const observerRef = React39__namespace.useRef(null);
3326
+ const ref = React39__namespace.useCallback((node) => {
3327
3327
  if (observerRef.current) {
3328
3328
  observerRef.current.disconnect();
3329
3329
  observerRef.current = null;
@@ -3337,7 +3337,7 @@ function useContainerWidth() {
3337
3337
  observerRef.current = obs;
3338
3338
  }
3339
3339
  }, []);
3340
- React38__namespace.useEffect(() => {
3340
+ React39__namespace.useEffect(() => {
3341
3341
  return () => {
3342
3342
  if (observerRef.current) {
3343
3343
  observerRef.current.disconnect();
@@ -3347,7 +3347,7 @@ function useContainerWidth() {
3347
3347
  return [ref, width];
3348
3348
  }
3349
3349
  function useMergedRef(...refs) {
3350
- return React38__namespace.useCallback(
3350
+ return React39__namespace.useCallback(
3351
3351
  (node) => {
3352
3352
  for (const ref of refs) {
3353
3353
  if (typeof ref === "function") {
@@ -3361,7 +3361,7 @@ function useMergedRef(...refs) {
3361
3361
  [refs]
3362
3362
  );
3363
3363
  }
3364
- var FlatLinearTrack = React38__namespace.memo(function FlatLinearTrack2({
3364
+ var FlatLinearTrack = React39__namespace.memo(function FlatLinearTrack2({
3365
3365
  trackHeight,
3366
3366
  activeColor,
3367
3367
  trackColor,
@@ -3437,7 +3437,7 @@ var FlatLinearTrack = React38__namespace.memo(function FlatLinearTrack2({
3437
3437
  }
3438
3438
  );
3439
3439
  });
3440
- var WavyLinearTrack = React38__namespace.memo(function WavyLinearTrack2({
3440
+ var WavyLinearTrack = React39__namespace.memo(function WavyLinearTrack2({
3441
3441
  trackHeight,
3442
3442
  svgHeight,
3443
3443
  amplitude,
@@ -3456,13 +3456,13 @@ var WavyLinearTrack = React38__namespace.memo(function WavyLinearTrack2({
3456
3456
  }) {
3457
3457
  const isDeterminate = typeof value === "number";
3458
3458
  const clampedValue = isDeterminate ? Math.max(0, Math.min(100, value)) : 100;
3459
- const titleId = React38__namespace.useId();
3459
+ const titleId = React39__namespace.useId();
3460
3460
  const [containerRef, width] = useContainerWidth();
3461
- const activePathRef = React38__namespace.useRef(null);
3462
- const trackPathRef = React38__namespace.useRef(null);
3461
+ const activePathRef = React39__namespace.useRef(null);
3462
+ const trackPathRef = React39__namespace.useRef(null);
3463
3463
  const amplitudeMV = react.useMotionValue(amplitude);
3464
3464
  const fractionMV = react.useMotionValue(isDeterminate ? clampedValue / 100 : 1);
3465
- React38__namespace.useEffect(() => {
3465
+ React39__namespace.useEffect(() => {
3466
3466
  if (isDeterminate) {
3467
3467
  const fraction = clampedValue / 100;
3468
3468
  let targetAmp = amplitude;
@@ -3633,7 +3633,7 @@ var WavyLinearTrack = React38__namespace.memo(function WavyLinearTrack2({
3633
3633
  }
3634
3634
  );
3635
3635
  });
3636
- var LinearProgress = React38__namespace.forwardRef(
3636
+ var LinearProgress = React39__namespace.forwardRef(
3637
3637
  (_a, ref) => {
3638
3638
  var _b = _a, {
3639
3639
  value,
@@ -3674,10 +3674,10 @@ var LinearProgress = React38__namespace.forwardRef(
3674
3674
  ]);
3675
3675
  const isDeterminate = value !== void 0;
3676
3676
  const clampedValue = isDeterminate ? Math.min(100, Math.max(0, value)) : 0;
3677
- const containerRef = React38__namespace.useRef(null);
3677
+ const containerRef = React39__namespace.useRef(null);
3678
3678
  const mergedRef = useMergedRef(ref, containerRef);
3679
- const [isRtl, setIsRtl] = React38__namespace.useState(false);
3680
- React38__namespace.useEffect(() => {
3679
+ const [isRtl, setIsRtl] = React39__namespace.useState(false);
3680
+ React39__namespace.useEffect(() => {
3681
3681
  if (containerRef.current) {
3682
3682
  const dir = getComputedStyle(containerRef.current).direction;
3683
3683
  setIsRtl(dir === "rtl");
@@ -3685,16 +3685,16 @@ var LinearProgress = React38__namespace.forwardRef(
3685
3685
  }, []);
3686
3686
  const isWavy = shape === "wavy";
3687
3687
  const resolvedTrackShape = trackShape != null ? trackShape : shape;
3688
- const effectiveAmplitude = React38__namespace.useMemo(() => amplitude != null ? amplitude : 3, [amplitude]);
3689
- const svgHeight = React38__namespace.useMemo(
3688
+ const effectiveAmplitude = React39__namespace.useMemo(() => amplitude != null ? amplitude : 3, [amplitude]);
3689
+ const svgHeight = React39__namespace.useMemo(
3690
3690
  () => isWavy ? trackHeight + effectiveAmplitude * 2 : trackHeight,
3691
3691
  [isWavy, trackHeight, effectiveAmplitude]
3692
3692
  );
3693
- const shouldShowStop = React38__namespace.useMemo(
3693
+ const shouldShowStop = React39__namespace.useMemo(
3694
3694
  () => isDeterminate && resolvedTrackShape === "flat" && (showStopIndicator === true || showStopIndicator === "auto" && isDeterminate),
3695
3695
  [isDeterminate, resolvedTrackShape, showStopIndicator]
3696
3696
  );
3697
- const stopSize = React38__namespace.useMemo(
3697
+ const stopSize = React39__namespace.useMemo(
3698
3698
  () => Math.max(2, trackHeight > 4 ? 4 : trackHeight / 2),
3699
3699
  [trackHeight]
3700
3700
  );
@@ -3767,14 +3767,14 @@ var LinearProgress = React38__namespace.forwardRef(
3767
3767
  }
3768
3768
  );
3769
3769
  LinearProgress.displayName = "LinearProgress";
3770
- var ProgressIndicator = React38__namespace.forwardRef((props, ref) => {
3770
+ var ProgressIndicator = React39__namespace.forwardRef((props, ref) => {
3771
3771
  if (props.variant === "circular") {
3772
3772
  return /* @__PURE__ */ jsxRuntime.jsx(CircularProgress, __spreadValues({ ref }, props));
3773
3773
  }
3774
3774
  return /* @__PURE__ */ jsxRuntime.jsx(LinearProgress, __spreadValues({ ref }, props));
3775
3775
  });
3776
3776
  ProgressIndicator.displayName = "ProgressIndicator";
3777
- var RippleItem = React38__namespace.memo(function RippleItem2({
3777
+ var RippleItem = React39__namespace.memo(function RippleItem2({
3778
3778
  ripple,
3779
3779
  onDone
3780
3780
  }) {
@@ -3818,8 +3818,8 @@ function Ripple({
3818
3818
  }
3819
3819
  function useRippleState(options = {}) {
3820
3820
  const { disabled = false } = options;
3821
- const [ripples, setRipples] = React38__namespace.useState([]);
3822
- const onPointerDown = React38__namespace.useCallback(
3821
+ const [ripples, setRipples] = React39__namespace.useState([]);
3822
+ const onPointerDown = React39__namespace.useCallback(
3823
3823
  (e) => {
3824
3824
  if (disabled) return;
3825
3825
  const rect = e.currentTarget.getBoundingClientRect();
@@ -3833,7 +3833,7 @@ function useRippleState(options = {}) {
3833
3833
  },
3834
3834
  [disabled]
3835
3835
  );
3836
- const removeRipple = React38__namespace.useCallback((id) => {
3836
+ const removeRipple = React39__namespace.useCallback((id) => {
3837
3837
  setRipples((prev) => prev.filter((r) => r.id !== id));
3838
3838
  }, []);
3839
3839
  return { ripples, onPointerDown, removeRipple };
@@ -3964,7 +3964,7 @@ var buttonColorVariants = classVarianceAuthority.cva(
3964
3964
  );
3965
3965
  function resolveLabel(children, asChild) {
3966
3966
  if (asChild) {
3967
- const child = React38__namespace.Children.only(children);
3967
+ const child = React39__namespace.Children.only(children);
3968
3968
  return child.props.children;
3969
3969
  }
3970
3970
  return children;
@@ -4036,7 +4036,7 @@ function AnimatedIconSlot({
4036
4036
  }
4037
4037
  );
4038
4038
  }
4039
- var ButtonComponent = React38__namespace.forwardRef(
4039
+ var ButtonComponent = React39__namespace.forwardRef(
4040
4040
  (_a, ref) => {
4041
4041
  var _b = _a, {
4042
4042
  className,
@@ -4085,15 +4085,15 @@ var ButtonComponent = React38__namespace.forwardRef(
4085
4085
  const { pressed: pressedRadius } = (_b2 = radiusMap[size]) != null ? _b2 : radiusMap.sm;
4086
4086
  const iconClass = (_c = SIZE_ICON_CLASS[size]) != null ? _c : "size-5";
4087
4087
  const mergedStyle = __spreadValues(__spreadValues({}, SIZE_STYLES[size]), style);
4088
- const labelText = React38__namespace.useMemo(
4088
+ const labelText = React39__namespace.useMemo(
4089
4089
  () => resolveLabel(children, asChild),
4090
4090
  [children, asChild]
4091
4091
  );
4092
4092
  const computedAriaLabel = ariaLabelProp || (typeof children === "string" ? children : void 0);
4093
4093
  const needsTouchTarget = size === "xs" || size === "sm";
4094
4094
  const motionRadius = react.useMotionValue(animateRadius);
4095
- const asChildRef = React38__namespace.useRef(null);
4096
- const mergedRef = React38__namespace.useCallback(
4095
+ const asChildRef = React39__namespace.useRef(null);
4096
+ const mergedRef = React39__namespace.useCallback(
4097
4097
  (node) => {
4098
4098
  asChildRef.current = node;
4099
4099
  if (typeof ref === "function") ref(node);
@@ -4102,27 +4102,27 @@ var ButtonComponent = React38__namespace.forwardRef(
4102
4102
  },
4103
4103
  [ref]
4104
4104
  );
4105
- React38__namespace.useEffect(
4105
+ React39__namespace.useEffect(
4106
4106
  () => motionRadius.on("change", (v) => {
4107
4107
  if (asChildRef.current)
4108
4108
  asChildRef.current.style.borderRadius = `${v}px`;
4109
4109
  }),
4110
4110
  [motionRadius]
4111
4111
  );
4112
- React38__namespace.useEffect(() => {
4112
+ React39__namespace.useEffect(() => {
4113
4113
  springAnimate(motionRadius, animateRadius);
4114
4114
  }, [animateRadius, motionRadius]);
4115
4115
  const { ripples, onPointerDown, removeRipple } = useRippleState({
4116
4116
  disabled: loading
4117
4117
  });
4118
- const handleClick = React38__namespace.useCallback(
4118
+ const handleClick = React39__namespace.useCallback(
4119
4119
  (e) => {
4120
4120
  if (loading) return e.preventDefault();
4121
4121
  onClick == null ? void 0 : onClick(e);
4122
4122
  },
4123
4123
  [loading, onClick]
4124
4124
  );
4125
- const handleKeyDown = React38__namespace.useCallback(
4125
+ const handleKeyDown = React39__namespace.useCallback(
4126
4126
  (e) => {
4127
4127
  if (loading) return;
4128
4128
  if (onClick && (e.key === "Enter" || e.key === " ")) {
@@ -4165,7 +4165,7 @@ var ButtonComponent = React38__namespace.forwardRef(
4165
4165
  ] });
4166
4166
  if (asChild) {
4167
4167
  const htmlProps = stripMotionProps(restProps);
4168
- const child = React38__namespace.Children.only(children);
4168
+ const child = React39__namespace.Children.only(children);
4169
4169
  const handleAsChildPointerDown = (e) => {
4170
4170
  springAnimate(motionRadius, pressedRadius);
4171
4171
  onPointerDown == null ? void 0 : onPointerDown(e);
@@ -4189,7 +4189,7 @@ var ButtonComponent = React38__namespace.forwardRef(
4189
4189
  }),
4190
4190
  className: buttonClassName
4191
4191
  }, htmlProps), {
4192
- children: React38__namespace.cloneElement(child, { children: innerContent })
4192
+ children: React39__namespace.cloneElement(child, { children: innerContent })
4193
4193
  })
4194
4194
  ) });
4195
4195
  }
@@ -4217,7 +4217,7 @@ var ButtonComponent = React38__namespace.forwardRef(
4217
4217
  }
4218
4218
  );
4219
4219
  ButtonComponent.displayName = "Button";
4220
- var Button = React38__namespace.memo(ButtonComponent);
4220
+ var Button = React39__namespace.memo(ButtonComponent);
4221
4221
  var SIZE_PADDING_MAP = {
4222
4222
  xs: "0.75rem",
4223
4223
  sm: "1rem",
@@ -4246,7 +4246,7 @@ var PRESSED_RADIUS_MAP = {
4246
4246
  lg: 28,
4247
4247
  xl: 40
4248
4248
  };
4249
- var ButtonGroupComponent = React38__namespace.forwardRef(
4249
+ var ButtonGroupComponent = React39__namespace.forwardRef(
4250
4250
  (_a, ref) => {
4251
4251
  var _b = _a, {
4252
4252
  className,
@@ -4267,13 +4267,13 @@ var ButtonGroupComponent = React38__namespace.forwardRef(
4267
4267
  "showCheck",
4268
4268
  "children"
4269
4269
  ]);
4270
- const [pressedIndex, setPressedIndex] = React38__namespace.useState(null);
4271
- const childrenArray = React38__namespace.useMemo(
4272
- () => React38__namespace.Children.toArray(children).filter(React38__namespace.isValidElement),
4270
+ const [pressedIndex, setPressedIndex] = React39__namespace.useState(null);
4271
+ const childrenArray = React39__namespace.useMemo(
4272
+ () => React39__namespace.Children.toArray(children).filter(React39__namespace.isValidElement),
4273
4273
  [children]
4274
4274
  );
4275
4275
  const count = childrenArray.length;
4276
- const handlePointerLeaveAndUp = React38__namespace.useCallback(() => {
4276
+ const handlePointerLeaveAndUp = React39__namespace.useCallback(() => {
4277
4277
  setPressedIndex(null);
4278
4278
  }, []);
4279
4279
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4412,7 +4412,7 @@ var ButtonGroupComponent = React38__namespace.forwardRef(
4412
4412
  duration: 0.2
4413
4413
  };
4414
4414
  }
4415
- return React38__namespace.cloneElement(element, __spreadValues(__spreadProps(__spreadValues({
4415
+ return React39__namespace.cloneElement(element, __spreadValues(__spreadProps(__spreadValues({
4416
4416
  key: (_a2 = element.key) != null ? _a2 : index,
4417
4417
  tabIndex: isFirst ? 0 : -1,
4418
4418
  size: size || element.props.size,
@@ -4441,7 +4441,7 @@ var ButtonGroupComponent = React38__namespace.forwardRef(
4441
4441
  }
4442
4442
  );
4443
4443
  ButtonGroupComponent.displayName = "ButtonGroup";
4444
- var ButtonGroup = React38__namespace.memo(ButtonGroupComponent);
4444
+ var ButtonGroup = React39__namespace.memo(ButtonGroupComponent);
4445
4445
  var SHADOW = {
4446
4446
  level0: "none",
4447
4447
  level1: "0px 1px 2px 0px rgba(0,0,0,.3), 0px 1px 3px 1px rgba(0,0,0,.15)",
@@ -4500,7 +4500,7 @@ function useCardElevation(variant, disabled) {
4500
4500
  }
4501
4501
  };
4502
4502
  }
4503
- var CardImpl = React38__namespace.forwardRef(
4503
+ var CardImpl = React39__namespace.forwardRef(
4504
4504
  (_a, ref) => {
4505
4505
  var _b = _a, {
4506
4506
  className,
@@ -4598,7 +4598,7 @@ var CardImpl = React38__namespace.forwardRef(
4598
4598
  }
4599
4599
  );
4600
4600
  CardImpl.displayName = "Card";
4601
- var Card = React38__namespace.memo(CardImpl);
4601
+ var Card = React39__namespace.memo(CardImpl);
4602
4602
  var MD3_STANDARD = [0.2, 0, 0, 1];
4603
4603
  var MD3_FAST_EFFECTS = [0.3, 0, 1, 1];
4604
4604
  var CHECKMARK_PATH = "M 4.5 9.5 L 7.5 12.5 L 13.5 5.5";
@@ -4612,7 +4612,7 @@ var NEXT_STATE = {
4612
4612
  checked: "indeterminate",
4613
4613
  indeterminate: "unchecked"
4614
4614
  };
4615
- var CheckboxVisual = React38__namespace.memo(function CheckboxVisual2({
4615
+ var CheckboxVisual = React39__namespace.memo(function CheckboxVisual2({
4616
4616
  isSelected,
4617
4617
  isIndeterminate,
4618
4618
  containerBg,
@@ -4683,7 +4683,7 @@ var CheckboxVisual = React38__namespace.memo(function CheckboxVisual2({
4683
4683
  );
4684
4684
  });
4685
4685
  function useMergedRef2(externalRef, internalRef) {
4686
- return React38__namespace.useCallback(
4686
+ return React39__namespace.useCallback(
4687
4687
  (node) => {
4688
4688
  internalRef.current = node;
4689
4689
  if (!externalRef) return;
@@ -4696,7 +4696,7 @@ function useMergedRef2(externalRef, internalRef) {
4696
4696
  [externalRef, internalRef]
4697
4697
  );
4698
4698
  }
4699
- var CheckboxComponent = React38__namespace.forwardRef(
4699
+ var CheckboxComponent = React39__namespace.forwardRef(
4700
4700
  ({
4701
4701
  checked,
4702
4702
  defaultChecked = false,
@@ -4718,20 +4718,20 @@ var CheckboxComponent = React38__namespace.forwardRef(
4718
4718
  }, ref) => {
4719
4719
  var _a;
4720
4720
  const prefersReduced = (_a = react.useReducedMotion()) != null ? _a : false;
4721
- const generatedId = React38__namespace.useId();
4721
+ const generatedId = React39__namespace.useId();
4722
4722
  const inputId = idProp != null ? idProp : label ? `checkbox-${generatedId}` : void 0;
4723
- const [internalState, setInternalState] = React38__namespace.useState(
4723
+ const [internalState, setInternalState] = React39__namespace.useState(
4724
4724
  () => defaultChecked ? "checked" : "unchecked"
4725
4725
  );
4726
4726
  const isControlled = stateProp !== void 0 || checked !== void 0;
4727
4727
  const baseState = isControlled ? resolveState(checked, false, stateProp) : internalState;
4728
4728
  const effectiveState = indeterminate ? "indeterminate" : baseState;
4729
- const [ripples, setRipples] = React38__namespace.useState([]);
4730
- const removeRipple = React38__namespace.useCallback(
4729
+ const [ripples, setRipples] = React39__namespace.useState([]);
4730
+ const removeRipple = React39__namespace.useCallback(
4731
4731
  (id) => setRipples((prev) => prev.filter((r) => r.id !== id)),
4732
4732
  []
4733
4733
  );
4734
- const onPointerDown = React38__namespace.useCallback(
4734
+ const onPointerDown = React39__namespace.useCallback(
4735
4735
  (e) => {
4736
4736
  if (disabled) return;
4737
4737
  const rect = e.currentTarget.getBoundingClientRect();
@@ -4745,7 +4745,7 @@ var CheckboxComponent = React38__namespace.forwardRef(
4745
4745
  },
4746
4746
  [disabled]
4747
4747
  );
4748
- const handleChange = React38__namespace.useCallback(
4748
+ const handleChange = React39__namespace.useCallback(
4749
4749
  (e) => {
4750
4750
  if (disabled) return;
4751
4751
  if (stateProp !== void 0) {
@@ -4771,9 +4771,9 @@ var CheckboxComponent = React38__namespace.forwardRef(
4771
4771
  onCheckedChange
4772
4772
  ]
4773
4773
  );
4774
- const inputRef = React38__namespace.useRef(null);
4774
+ const inputRef = React39__namespace.useRef(null);
4775
4775
  const mergedRef = useMergedRef2(ref, inputRef);
4776
- React38__namespace.useEffect(() => {
4776
+ React39__namespace.useEffect(() => {
4777
4777
  if (inputRef.current) {
4778
4778
  inputRef.current.indeterminate = effectiveState === "indeterminate";
4779
4779
  }
@@ -4898,13 +4898,13 @@ var CheckboxComponent = React38__namespace.forwardRef(
4898
4898
  }
4899
4899
  );
4900
4900
  CheckboxComponent.displayName = "Checkbox";
4901
- var Checkbox = React38__namespace.memo(CheckboxComponent);
4902
- var TriStateCheckboxComponent = React38__namespace.forwardRef((_a, ref) => {
4901
+ var Checkbox = React39__namespace.memo(CheckboxComponent);
4902
+ var TriStateCheckboxComponent = React39__namespace.forwardRef((_a, ref) => {
4903
4903
  var _b = _a, { state, onStateChange } = _b, rest = __objRest(_b, ["state", "onStateChange"]);
4904
4904
  return /* @__PURE__ */ jsxRuntime.jsx(Checkbox, __spreadValues({ ref, state, onStateChange }, rest));
4905
4905
  });
4906
4906
  TriStateCheckboxComponent.displayName = "TriStateCheckbox";
4907
- var TriStateCheckbox = React38__namespace.memo(TriStateCheckboxComponent);
4907
+ var TriStateCheckbox = React39__namespace.memo(TriStateCheckboxComponent);
4908
4908
  function CheckIcon({ className }) {
4909
4909
  return /* @__PURE__ */ jsxRuntime.jsx(
4910
4910
  "svg",
@@ -4998,7 +4998,7 @@ var chipVariants = classVarianceAuthority.cva(
4998
4998
  defaultVariants: { variant: "assist" }
4999
4999
  }
5000
5000
  );
5001
- var ChipImpl = React38__namespace.forwardRef(
5001
+ var ChipImpl = React39__namespace.forwardRef(
5002
5002
  (_a, ref) => {
5003
5003
  var _b = _a, {
5004
5004
  variant = "assist",
@@ -5034,7 +5034,7 @@ var ChipImpl = React38__namespace.forwardRef(
5034
5034
  const showCheckmark = isFilter && selected;
5035
5035
  const hasTrailingContent = !!trailingIcon || !!onRemove;
5036
5036
  const hasLeadingContent = isFilter || !!resolvedLeadingIcon;
5037
- const paddingClass = React38__namespace.useMemo(
5037
+ const paddingClass = React39__namespace.useMemo(
5038
5038
  () => cn(
5039
5039
  !isInput && !hasLeadingContent && !hasTrailingContent && "px-4",
5040
5040
  !isInput && hasLeadingContent && !hasTrailingContent && "pl-2 pr-4",
@@ -5047,7 +5047,7 @@ var ChipImpl = React38__namespace.forwardRef(
5047
5047
  ),
5048
5048
  [isInput, hasLeadingContent, hasTrailingContent]
5049
5049
  );
5050
- const stateClass = React38__namespace.useMemo(
5050
+ const stateClass = React39__namespace.useMemo(
5051
5051
  () => cn(
5052
5052
  (isFilter || isInput) && selected && "bg-m3-secondary-container text-m3-on-secondary-container border-none before:bg-m3-on-secondary-container",
5053
5053
  elevated && !selected && "bg-m3-surface-container-low border-none elevation-1",
@@ -5058,7 +5058,7 @@ var ChipImpl = React38__namespace.forwardRef(
5058
5058
  ),
5059
5059
  [isFilter, isInput, selected, elevated, disabled]
5060
5060
  );
5061
- const leadingIconColorClass = React38__namespace.useMemo(
5061
+ const leadingIconColorClass = React39__namespace.useMemo(
5062
5062
  () => cn(
5063
5063
  (variant === "assist" || variant === "suggestion") && "text-m3-primary",
5064
5064
  isFilter && !selected && "text-m3-primary",
@@ -5230,8 +5230,8 @@ var ChipImpl = React38__namespace.forwardRef(
5230
5230
  }
5231
5231
  );
5232
5232
  ChipImpl.displayName = "Chip";
5233
- var Chip = React38__namespace.memo(ChipImpl);
5234
- var ScrollArea = React38__namespace.forwardRef(
5233
+ var Chip = React39__namespace.memo(ChipImpl);
5234
+ var ScrollArea = React39__namespace.forwardRef(
5235
5235
  (_a, ref) => {
5236
5236
  var _b = _a, {
5237
5237
  className,
@@ -5239,14 +5239,16 @@ var ScrollArea = React38__namespace.forwardRef(
5239
5239
  children,
5240
5240
  type = "hover",
5241
5241
  orientation = "vertical",
5242
- scrollHideDelay = 600
5242
+ scrollHideDelay = 600,
5243
+ viewportRef
5243
5244
  } = _b, props = __objRest(_b, [
5244
5245
  "className",
5245
5246
  "viewportClassName",
5246
5247
  "children",
5247
5248
  "type",
5248
5249
  "orientation",
5249
- "scrollHideDelay"
5250
+ "scrollHideDelay",
5251
+ "viewportRef"
5250
5252
  ]);
5251
5253
  const radixType = type === "none" ? "always" : type;
5252
5254
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -5261,6 +5263,7 @@ var ScrollArea = React38__namespace.forwardRef(
5261
5263
  /* @__PURE__ */ jsxRuntime.jsx(
5262
5264
  RadixScrollArea__namespace.Viewport,
5263
5265
  {
5266
+ ref: viewportRef,
5264
5267
  className: cn(
5265
5268
  "h-full w-full flex-1 min-h-0 min-w-0 rounded-[inherit]",
5266
5269
  "outline-none focus-visible:ring-2 focus-visible:ring-m3-primary focus-visible:ring-offset-1",
@@ -5290,7 +5293,7 @@ var ScrollArea = React38__namespace.forwardRef(
5290
5293
  }
5291
5294
  );
5292
5295
  ScrollArea.displayName = "ScrollArea";
5293
- var ScrollAreaScrollbar = React38__namespace.forwardRef((_a, ref) => {
5296
+ var ScrollAreaScrollbar = React39__namespace.forwardRef((_a, ref) => {
5294
5297
  var _b = _a, { className, orientation = "vertical" } = _b, props = __objRest(_b, ["className", "orientation"]);
5295
5298
  return /* @__PURE__ */ jsxRuntime.jsx(
5296
5299
  RadixScrollArea__namespace.Scrollbar,
@@ -5320,7 +5323,7 @@ var ScrollAreaScrollbar = React38__namespace.forwardRef((_a, ref) => {
5320
5323
  );
5321
5324
  });
5322
5325
  ScrollAreaScrollbar.displayName = RadixScrollArea__namespace.Scrollbar.displayName;
5323
- var ScrollAreaCorner = React38__namespace.forwardRef((_a, ref) => {
5326
+ var ScrollAreaCorner = React39__namespace.forwardRef((_a, ref) => {
5324
5327
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5325
5328
  return /* @__PURE__ */ jsxRuntime.jsx(
5326
5329
  RadixScrollArea__namespace.Corner,
@@ -5415,7 +5418,7 @@ function mapDomToReact(node, key) {
5415
5418
  props[propName] = attr.value;
5416
5419
  }
5417
5420
  }
5418
- return React38.createElement(
5421
+ return React39.createElement(
5419
5422
  tagName,
5420
5423
  props,
5421
5424
  Array.from(el.childNodes).map((child, i) => mapDomToReact(child, i))
@@ -5424,8 +5427,8 @@ function mapDomToReact(node, key) {
5424
5427
  return null;
5425
5428
  }
5426
5429
  function CodeContent({ html, code }) {
5427
- const [parsedContent, setParsedContent] = React38.useState(null);
5428
- React38.useEffect(() => {
5430
+ const [parsedContent, setParsedContent] = React39.useState(null);
5431
+ React39.useEffect(() => {
5429
5432
  if (html) {
5430
5433
  const parser = new DOMParser();
5431
5434
  const doc = parser.parseFromString(html, "text/html");
@@ -5455,8 +5458,8 @@ function CodeBlock({
5455
5458
  className,
5456
5459
  html
5457
5460
  }) {
5458
- const [copied, setCopied] = React38.useState(false);
5459
- const handleCopy = React38.useCallback(async () => {
5461
+ const [copied, setCopied] = React39.useState(false);
5462
+ const handleCopy = React39.useCallback(async () => {
5460
5463
  try {
5461
5464
  await navigator.clipboard.writeText(code);
5462
5465
  setCopied(true);
@@ -5597,7 +5600,7 @@ function resolveDisabledBgClass(colorStyle) {
5597
5600
  }
5598
5601
  return "disabled:text-m3-on-surface/[0.38]";
5599
5602
  }
5600
- var IconButtonComponent = React38__namespace.forwardRef(
5603
+ var IconButtonComponent = React39__namespace.forwardRef(
5601
5604
  (_a, ref) => {
5602
5605
  var _b = _a, {
5603
5606
  className,
@@ -5631,18 +5634,18 @@ var IconButtonComponent = React38__namespace.forwardRef(
5631
5634
  var _a2, _b2;
5632
5635
  const isToggle = variant === "toggle";
5633
5636
  const isSelected = isToggle && !!selected;
5634
- const resolvedColorClass = React38__namespace.useMemo(
5637
+ const resolvedColorClass = React39__namespace.useMemo(
5635
5638
  () => isSelected ? colorStyles[colorStyle].selected : colorStyles[colorStyle].default,
5636
5639
  [isSelected, colorStyle]
5637
5640
  );
5638
- const outlineWidthClass = React38__namespace.useMemo(
5641
+ const outlineWidthClass = React39__namespace.useMemo(
5639
5642
  () => {
5640
5643
  var _a3;
5641
5644
  return colorStyle === "outlined" && !isSelected ? (_a3 = SIZE_OUTLINE_WIDTH[size]) != null ? _a3 : "border" : "";
5642
5645
  },
5643
5646
  [colorStyle, isSelected, size]
5644
5647
  );
5645
- const disabledBgClass = React38__namespace.useMemo(
5648
+ const disabledBgClass = React39__namespace.useMemo(
5646
5649
  () => resolveDisabledBgClass(colorStyle),
5647
5650
  [colorStyle]
5648
5651
  );
@@ -5661,7 +5664,7 @@ var IconButtonComponent = React38__namespace.forwardRef(
5661
5664
  const { ripples, onPointerDown, removeRipple } = useRippleState({
5662
5665
  disabled: loading
5663
5666
  });
5664
- const handleClick = React38__namespace.useCallback(
5667
+ const handleClick = React39__namespace.useCallback(
5665
5668
  (e) => {
5666
5669
  if (loading) {
5667
5670
  e.preventDefault();
@@ -5671,7 +5674,7 @@ var IconButtonComponent = React38__namespace.forwardRef(
5671
5674
  },
5672
5675
  [loading, onClick]
5673
5676
  );
5674
- const handleKeyDown = React38__namespace.useCallback(
5677
+ const handleKeyDown = React39__namespace.useCallback(
5675
5678
  (e) => {
5676
5679
  if (loading) return;
5677
5680
  if ((e.key === "Enter" || e.key === " ") && onClick) {
@@ -5759,7 +5762,7 @@ var IconButtonComponent = React38__namespace.forwardRef(
5759
5762
  }
5760
5763
  );
5761
5764
  IconButtonComponent.displayName = "IconButton";
5762
- var IconButton = React38__namespace.memo(IconButtonComponent);
5765
+ var IconButton = React39__namespace.memo(IconButtonComponent);
5763
5766
  var MD3_SPRING = {
5764
5767
  type: "spring",
5765
5768
  stiffness: 400,
@@ -5796,9 +5799,9 @@ DialogTrigger.displayName = "DialogTrigger";
5796
5799
  var DialogPortal = ({
5797
5800
  open,
5798
5801
  children
5799
- }) => /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Portal, { forceMount: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { children: open ? React38__namespace.Children.toArray(children) : null }) });
5802
+ }) => /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Portal, { forceMount: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { children: open ? React39__namespace.Children.toArray(children) : null }) });
5800
5803
  DialogPortal.displayName = "DialogPortal";
5801
- var DialogOverlay = React38__namespace.forwardRef((_a, ref) => {
5804
+ var DialogOverlay = React39__namespace.forwardRef((_a, ref) => {
5802
5805
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5803
5806
  return /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Overlay, __spreadProps(__spreadValues({ ref, asChild: true }, props), { children: /* @__PURE__ */ jsxRuntime.jsx(
5804
5807
  react.m.div,
@@ -5809,7 +5812,7 @@ var DialogOverlay = React38__namespace.forwardRef((_a, ref) => {
5809
5812
  ) }));
5810
5813
  });
5811
5814
  DialogOverlay.displayName = "DialogOverlay";
5812
- var DialogContent = React38__namespace.forwardRef((_a, ref) => {
5815
+ var DialogContent = React39__namespace.forwardRef((_a, ref) => {
5813
5816
  var _b = _a, { className, children, hideCloseButton = false } = _b, props = __objRest(_b, ["className", "children", "hideCloseButton"]);
5814
5817
  return /* @__PURE__ */ jsxRuntime.jsx(
5815
5818
  RadixDialog__namespace.Content,
@@ -5849,7 +5852,7 @@ var DialogContent = React38__namespace.forwardRef((_a, ref) => {
5849
5852
  );
5850
5853
  });
5851
5854
  DialogContent.displayName = "DialogContent";
5852
- var DialogIcon = React38__namespace.forwardRef((_a, ref) => {
5855
+ var DialogIcon = React39__namespace.forwardRef((_a, ref) => {
5853
5856
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
5854
5857
  return /* @__PURE__ */ jsxRuntime.jsx(
5855
5858
  "div",
@@ -5872,7 +5875,7 @@ var DialogHeader = (_a) => {
5872
5875
  return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadValues({ className: cn("flex flex-col gap-2 mb-4", className) }, props));
5873
5876
  };
5874
5877
  DialogHeader.displayName = "DialogHeader";
5875
- var DialogTitle = React38__namespace.forwardRef((_a, ref) => {
5878
+ var DialogTitle = React39__namespace.forwardRef((_a, ref) => {
5876
5879
  var _b = _a, { className, asChild } = _b, props = __objRest(_b, ["className", "asChild"]);
5877
5880
  return /* @__PURE__ */ jsxRuntime.jsx(
5878
5881
  RadixDialog__namespace.Title,
@@ -5887,7 +5890,7 @@ var DialogTitle = React38__namespace.forwardRef((_a, ref) => {
5887
5890
  );
5888
5891
  });
5889
5892
  DialogTitle.displayName = "DialogTitle";
5890
- var DialogDescription = React38__namespace.forwardRef((_a, ref) => {
5893
+ var DialogDescription = React39__namespace.forwardRef((_a, ref) => {
5891
5894
  var _b = _a, { className, asChild } = _b, props = __objRest(_b, ["className", "asChild"]);
5892
5895
  return /* @__PURE__ */ jsxRuntime.jsx(
5893
5896
  RadixDialog__namespace.Description,
@@ -5899,7 +5902,7 @@ var DialogDescription = React38__namespace.forwardRef((_a, ref) => {
5899
5902
  );
5900
5903
  });
5901
5904
  DialogDescription.displayName = "DialogDescription";
5902
- var DialogBody = React38__namespace.forwardRef((_a, ref) => {
5905
+ var DialogBody = React39__namespace.forwardRef((_a, ref) => {
5903
5906
  var _b = _a, { className, children, dir } = _b, props = __objRest(_b, ["className", "children", "dir"]);
5904
5907
  return /* @__PURE__ */ jsxRuntime.jsx(
5905
5908
  ScrollArea,
@@ -5930,7 +5933,7 @@ var DialogFooter = (_a) => {
5930
5933
  };
5931
5934
  DialogFooter.displayName = "DialogFooter";
5932
5935
  var DialogClose = RadixDialog__namespace.Close;
5933
- var DialogFullScreenContent = React38__namespace.forwardRef(
5936
+ var DialogFullScreenContent = React39__namespace.forwardRef(
5934
5937
  (_a, ref) => {
5935
5938
  var _b = _a, {
5936
5939
  className,
@@ -6013,7 +6016,7 @@ function buildWavePath(startX, endX, amplitude = 2, wavelength = 32, yCenter = 4
6013
6016
  }
6014
6017
  return d;
6015
6018
  }
6016
- var DividerImpl = React38__namespace.forwardRef(
6019
+ var DividerImpl = React39__namespace.forwardRef(
6017
6020
  (_a, ref) => {
6018
6021
  var _b = _a, {
6019
6022
  variant = "full-bleed",
@@ -6133,7 +6136,7 @@ var DividerImpl = React38__namespace.forwardRef(
6133
6136
  }
6134
6137
  );
6135
6138
  DividerImpl.displayName = "Divider";
6136
- var Divider = React38__namespace.memo(DividerImpl);
6139
+ var Divider = React39__namespace.memo(DividerImpl);
6137
6140
  var MD3_DRAWER_SPRING = {
6138
6141
  type: "spring",
6139
6142
  stiffness: 350,
@@ -6170,7 +6173,7 @@ var DrawerPortal = ({
6170
6173
  open,
6171
6174
  children
6172
6175
  }) => /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Portal, { forceMount: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "wait", children: open && children }) });
6173
- var DrawerOverlay = React38__namespace.forwardRef((_a, ref) => {
6176
+ var DrawerOverlay = React39__namespace.forwardRef((_a, ref) => {
6174
6177
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
6175
6178
  return /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Overlay, __spreadProps(__spreadValues({ ref, asChild: true }, props), { children: /* @__PURE__ */ jsxRuntime.jsx(
6176
6179
  react.m.div,
@@ -6181,7 +6184,7 @@ var DrawerOverlay = React38__namespace.forwardRef((_a, ref) => {
6181
6184
  ) }));
6182
6185
  });
6183
6186
  DrawerOverlay.displayName = "DrawerOverlay";
6184
- var DrawerContent = React38__namespace.forwardRef(
6187
+ var DrawerContent = React39__namespace.forwardRef(
6185
6188
  (_a, ref) => {
6186
6189
  var _b = _a, {
6187
6190
  className,
@@ -6260,7 +6263,7 @@ var DrawerFooter = (_a) => {
6260
6263
  return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadValues({ className: cn("flex flex-col gap-2 mt-4", className) }, props));
6261
6264
  };
6262
6265
  DrawerFooter.displayName = "DrawerFooter";
6263
- var DrawerTitle = React38__namespace.forwardRef((_a, ref) => {
6266
+ var DrawerTitle = React39__namespace.forwardRef((_a, ref) => {
6264
6267
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
6265
6268
  return /* @__PURE__ */ jsxRuntime.jsx(
6266
6269
  RadixDialog__namespace.Title,
@@ -6274,7 +6277,7 @@ var DrawerTitle = React38__namespace.forwardRef((_a, ref) => {
6274
6277
  );
6275
6278
  });
6276
6279
  DrawerTitle.displayName = "DrawerTitle";
6277
- var DrawerDescription = React38__namespace.forwardRef((_a, ref) => {
6280
+ var DrawerDescription = React39__namespace.forwardRef((_a, ref) => {
6278
6281
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
6279
6282
  return /* @__PURE__ */ jsxRuntime.jsx(
6280
6283
  RadixDialog__namespace.Description,
@@ -6355,7 +6358,7 @@ function FABPosition({
6355
6358
  }
6356
6359
  );
6357
6360
  }
6358
- var FABComponent = React38__namespace.forwardRef(
6361
+ var FABComponent = React39__namespace.forwardRef(
6359
6362
  (_a, ref) => {
6360
6363
  var _b = _a, {
6361
6364
  className,
@@ -6400,7 +6403,7 @@ var FABComponent = React38__namespace.forwardRef(
6400
6403
  const { ripples, onPointerDown, removeRipple } = useRippleState({
6401
6404
  disabled: loading
6402
6405
  });
6403
- const handleClick = React38__namespace.useCallback(
6406
+ const handleClick = React39__namespace.useCallback(
6404
6407
  (e) => {
6405
6408
  if (loading) {
6406
6409
  e.preventDefault();
@@ -6410,7 +6413,7 @@ var FABComponent = React38__namespace.forwardRef(
6410
6413
  },
6411
6414
  [loading, onClick]
6412
6415
  );
6413
- const handleKeyDown = React38__namespace.useCallback(
6416
+ const handleKeyDown = React39__namespace.useCallback(
6414
6417
  (e) => {
6415
6418
  if (loading) return;
6416
6419
  if ((e.key === "Enter" || e.key === " ") && onClick) {
@@ -6519,7 +6522,7 @@ var FABComponent = React38__namespace.forwardRef(
6519
6522
  }
6520
6523
  );
6521
6524
  FABComponent.displayName = "FAB";
6522
- var FAB = React38__namespace.memo(FABComponent);
6525
+ var FAB = React39__namespace.memo(FABComponent);
6523
6526
  var SPRING_NORMAL = { stiffness: 700, damping: 40 };
6524
6527
  var SPRING_REDUCED = { stiffness: 1e4, damping: 100 };
6525
6528
  var FOCUS_DELAY_MS = 50;
@@ -6627,7 +6630,7 @@ function CloseIcon3() {
6627
6630
  function defaultFabIcon(progress) {
6628
6631
  return progress > 0.5 ? /* @__PURE__ */ jsxRuntime.jsx(CloseIcon3, {}) : /* @__PURE__ */ jsxRuntime.jsx(AddIcon, {});
6629
6632
  }
6630
- var ToggleFABComponent = React38__namespace.forwardRef(
6633
+ var ToggleFABComponent = React39__namespace.forwardRef(
6631
6634
  ({
6632
6635
  expanded,
6633
6636
  onToggle,
@@ -6645,7 +6648,7 @@ var ToggleFABComponent = React38__namespace.forwardRef(
6645
6648
  const sizeTokens = (_b = TOGGLE_FAB_SIZES[fabSize]) != null ? _b : TOGGLE_FAB_SIZES.baseline;
6646
6649
  const springConfig = prefersReduced ? SPRING_REDUCED : SPRING_NORMAL;
6647
6650
  const checkedProgress = react.useSpring(expanded ? 1 : 0, springConfig);
6648
- React38__namespace.useEffect(() => {
6651
+ React39__namespace.useEffect(() => {
6649
6652
  checkedProgress.set(expanded ? 1 : 0);
6650
6653
  }, [expanded, checkedProgress]);
6651
6654
  const borderRadius = react.useTransform(
@@ -6653,12 +6656,12 @@ var ToggleFABComponent = React38__namespace.forwardRef(
6653
6656
  [0, 1],
6654
6657
  [`${sizeTokens.initialRadius}px`, `${sizeTokens.finalRadius}px`]
6655
6658
  );
6656
- const [iconProgress, setIconProgress] = React38__namespace.useState(expanded ? 1 : 0);
6657
- React38__namespace.useEffect(() => {
6659
+ const [iconProgress, setIconProgress] = React39__namespace.useState(expanded ? 1 : 0);
6660
+ React39__namespace.useEffect(() => {
6658
6661
  return checkedProgress.on("change", setIconProgress);
6659
6662
  }, [checkedProgress]);
6660
6663
  const { ripples, onPointerDown, removeRipple } = useRippleState();
6661
- const handleClick = React38__namespace.useCallback(() => {
6664
+ const handleClick = React39__namespace.useCallback(() => {
6662
6665
  onToggle(!expanded);
6663
6666
  }, [expanded, onToggle]);
6664
6667
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -6707,7 +6710,7 @@ var ToggleFABComponent = React38__namespace.forwardRef(
6707
6710
  }
6708
6711
  );
6709
6712
  ToggleFABComponent.displayName = "ToggleFAB";
6710
- var ToggleFAB = React38__namespace.memo(ToggleFABComponent);
6713
+ var ToggleFAB = React39__namespace.memo(ToggleFABComponent);
6711
6714
  function FABMenuItem({
6712
6715
  icon,
6713
6716
  label,
@@ -6720,7 +6723,7 @@ function FABMenuItem({
6720
6723
  var _a;
6721
6724
  const colors = (_a = MENU_ITEM_COLORS[colorVariant]) != null ? _a : MENU_ITEM_COLORS.primary;
6722
6725
  const { ripples, onPointerDown, removeRipple } = useRippleState({ disabled });
6723
- const handleClick = React38__namespace.useCallback(
6726
+ const handleClick = React39__namespace.useCallback(
6724
6727
  (e) => {
6725
6728
  if (disabled) {
6726
6729
  e.preventDefault();
@@ -6730,7 +6733,7 @@ function FABMenuItem({
6730
6733
  },
6731
6734
  [disabled, onClick]
6732
6735
  );
6733
- const handleKeyDown = React38__namespace.useCallback(
6736
+ const handleKeyDown = React39__namespace.useCallback(
6734
6737
  (e) => {
6735
6738
  if (disabled) return;
6736
6739
  if (e.key === "Enter" || e.key === " ") {
@@ -6797,13 +6800,13 @@ function FABMenu({
6797
6800
  focusLast = true,
6798
6801
  "aria-label": ariaLabel
6799
6802
  }) {
6800
- const fabId = React38__namespace.useId();
6801
- const menuId = React38__namespace.useId();
6802
- const toggleRef = React38__namespace.useRef(null);
6803
- const itemRefs = React38__namespace.useRef([]);
6804
- const [focusedIndex, setFocusedIndex] = React38__namespace.useState(-1);
6805
- const reversedItems = React38__namespace.useMemo(() => [...items].reverse(), [items]);
6806
- const focusItem = React38__namespace.useCallback((index) => {
6803
+ const fabId = React39__namespace.useId();
6804
+ const menuId = React39__namespace.useId();
6805
+ const toggleRef = React39__namespace.useRef(null);
6806
+ const itemRefs = React39__namespace.useRef([]);
6807
+ const [focusedIndex, setFocusedIndex] = React39__namespace.useState(-1);
6808
+ const reversedItems = React39__namespace.useMemo(() => [...items].reverse(), [items]);
6809
+ const focusItem = React39__namespace.useCallback((index) => {
6807
6810
  var _a;
6808
6811
  const clampedIndex = Math.max(
6809
6812
  0,
@@ -6812,8 +6815,8 @@ function FABMenu({
6812
6815
  setFocusedIndex(clampedIndex);
6813
6816
  (_a = itemRefs.current[clampedIndex]) == null ? void 0 : _a.focus();
6814
6817
  }, []);
6815
- const wasExpandedRef = React38__namespace.useRef(false);
6816
- React38__namespace.useEffect(() => {
6818
+ const wasExpandedRef = React39__namespace.useRef(false);
6819
+ React39__namespace.useEffect(() => {
6817
6820
  var _a;
6818
6821
  if (expanded) {
6819
6822
  wasExpandedRef.current = true;
@@ -6828,7 +6831,7 @@ function FABMenu({
6828
6831
  wasExpandedRef.current = false;
6829
6832
  setFocusedIndex(-1);
6830
6833
  }, [expanded, focusLast, items.length, focusItem]);
6831
- const handleMenuKeyDown = React38__namespace.useCallback(
6834
+ const handleMenuKeyDown = React39__namespace.useCallback(
6832
6835
  (e) => {
6833
6836
  if (!expanded) return;
6834
6837
  const lastIndex = items.length - 1;
@@ -6952,7 +6955,296 @@ function FABMenu({
6952
6955
  )
6953
6956
  ] });
6954
6957
  }
6955
- var NavigationRailContext = React38__namespace.createContext({ variant: "collapsed", labelVisibility: "labeled", xr: false });
6958
+ var NavigationBarContext = React39__namespace.createContext({ variant: "flexible" });
6959
+ function cloneIconWithFill(icon, selected) {
6960
+ if (!React39__namespace.isValidElement(icon)) return icon;
6961
+ if (icon.type === Icon) {
6962
+ return React39__namespace.cloneElement(
6963
+ icon,
6964
+ { fill: selected ? 1 : 0, animateFill: true }
6965
+ );
6966
+ }
6967
+ return icon;
6968
+ }
6969
+ function ActivePill() {
6970
+ const { activeIndicatorTransition } = React39__namespace.useContext(NavigationBarContext);
6971
+ return /* @__PURE__ */ jsxRuntime.jsx(
6972
+ react.m.div,
6973
+ {
6974
+ className: "absolute inset-0 bg-m3-secondary-container pointer-events-none",
6975
+ style: {
6976
+ borderRadius: 9999,
6977
+ zIndex: 0
6978
+ },
6979
+ initial: { opacity: 0, scale: 0.5 },
6980
+ animate: { opacity: 1, scale: 1 },
6981
+ exit: { opacity: 0, scale: 0.5 },
6982
+ transition: activeIndicatorTransition || SPRING_TRANSITION_EXPRESSIVE
6983
+ }
6984
+ );
6985
+ }
6986
+ function HoverStateLayer() {
6987
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 rounded-full bg-m3-on-surface opacity-0 group-hover:opacity-[0.08] group-focus-visible:opacity-[0.10] active:opacity-[0.10] transition-opacity duration-200 pointer-events-none z-0" });
6988
+ }
6989
+ function RippleLayer({ ripples, onRippleDone }) {
6990
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 rounded-full overflow-hidden pointer-events-none z-0", children: /* @__PURE__ */ jsxRuntime.jsx(Ripple, { ripples, onRippleDone }) });
6991
+ }
6992
+ function IconContainer({ selected, badge, children }) {
6993
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6994
+ "div",
6995
+ {
6996
+ "aria-hidden": "true",
6997
+ className: cn(
6998
+ "relative flex items-center justify-center size-6 transition-colors duration-200 shrink-0",
6999
+ selected ? "text-m3-on-secondary-container" : "text-m3-on-surface-variant"
7000
+ ),
7001
+ children: [
7002
+ children,
7003
+ badge && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-1 flex min-w-3 h-3 items-center justify-center rounded-full bg-m3-error px-1 text-[10px] font-medium leading-none tracking-normal text-m3-on-error ring-[1.5px] ring-m3-surface", children: badge })
7004
+ ]
7005
+ }
7006
+ );
7007
+ }
7008
+ var NavigationBarItemComponent = React39__namespace.forwardRef(
7009
+ ({
7010
+ selected,
7011
+ icon,
7012
+ label,
7013
+ onClick,
7014
+ disabled = false,
7015
+ badge,
7016
+ className,
7017
+ "aria-label": ariaLabelProp
7018
+ }, ref) => {
7019
+ const { variant, itemLayout } = React39__namespace.useContext(NavigationBarContext);
7020
+ const isForcedHorizontal = itemLayout === "horizontal";
7021
+ const isResponsiveHorizontal = (variant === "flexible" || variant === "xr") && itemLayout === void 0;
7022
+ const { ripples, onPointerDown, removeRipple } = useRippleState({
7023
+ disabled
7024
+ });
7025
+ const handleClick = React39__namespace.useCallback(
7026
+ (e) => {
7027
+ if (disabled) {
7028
+ e.preventDefault();
7029
+ return;
7030
+ }
7031
+ if (selected) {
7032
+ if (typeof window !== "undefined" && window.scrollY > 0) {
7033
+ window.scrollTo({ top: 0, behavior: "smooth" });
7034
+ }
7035
+ return;
7036
+ }
7037
+ onClick == null ? void 0 : onClick();
7038
+ },
7039
+ [disabled, selected, onClick]
7040
+ );
7041
+ const filledIcon = cloneIconWithFill(icon, selected);
7042
+ return /* @__PURE__ */ jsxRuntime.jsxs(
7043
+ react.m.button,
7044
+ {
7045
+ ref,
7046
+ type: "button",
7047
+ role: "menuitem",
7048
+ "aria-current": selected ? "page" : void 0,
7049
+ "aria-disabled": disabled ? true : void 0,
7050
+ "aria-label": ariaLabelProp || (typeof label === "string" ? label : void 0),
7051
+ onClick: handleClick,
7052
+ onPointerDown,
7053
+ className: cn(
7054
+ "group relative flex flex-1 cursor-pointer transition-colors duration-200 outline-none select-none h-full",
7055
+ variant === "xr" ? "items-center justify-center max-[599px]:min-w-28 max-[599px]:max-w-28 max-[599px]:items-start max-[599px]:pt-3 max-[599px]:pb-4" : "items-center justify-center",
7056
+ disabled && "pointer-events-none opacity-[0.38]",
7057
+ className
7058
+ ),
7059
+ children: [
7060
+ /* @__PURE__ */ jsxRuntime.jsxs(
7061
+ "div",
7062
+ {
7063
+ className: cn(
7064
+ "relative flex items-center justify-center flex-col gap-y-1 w-full",
7065
+ isResponsiveHorizontal && "min-[600px]:flex-row min-[600px]:gap-y-0 min-[600px]:gap-x-1 min-[600px]:h-10 min-[600px]:px-4 min-[600px]:rounded-full min-[600px]:w-auto min-[600px]:max-w-42",
7066
+ isForcedHorizontal && "flex-row gap-y-0 gap-x-1 h-10 px-4 rounded-full w-auto max-w-42"
7067
+ ),
7068
+ children: [
7069
+ /* @__PURE__ */ jsxRuntime.jsxs(
7070
+ "div",
7071
+ {
7072
+ className: cn(
7073
+ "absolute inset-0 z-0 hidden",
7074
+ isResponsiveHorizontal && "min-[600px]:block",
7075
+ isForcedHorizontal && "block!"
7076
+ ),
7077
+ children: [
7078
+ /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(ActivePill, {}) }),
7079
+ /* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer, {}),
7080
+ /* @__PURE__ */ jsxRuntime.jsx(RippleLayer, { ripples, onRippleDone: removeRipple })
7081
+ ]
7082
+ }
7083
+ ),
7084
+ /* @__PURE__ */ jsxRuntime.jsxs(
7085
+ "div",
7086
+ {
7087
+ className: cn(
7088
+ "relative flex items-center justify-center shrink-0 z-10",
7089
+ "h-8 w-16 mx-auto rounded-full",
7090
+ isResponsiveHorizontal && "min-[600px]:size-6 min-[600px]:w-auto min-[600px]:h-auto",
7091
+ isForcedHorizontal && "size-6 w-auto h-auto"
7092
+ ),
7093
+ children: [
7094
+ /* @__PURE__ */ jsxRuntime.jsxs(
7095
+ "div",
7096
+ {
7097
+ className: cn(
7098
+ "absolute inset-0 z-0",
7099
+ isResponsiveHorizontal && "min-[600px]:hidden",
7100
+ isForcedHorizontal && "hidden"
7101
+ ),
7102
+ children: [
7103
+ /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(ActivePill, {}) }),
7104
+ /* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer, {}),
7105
+ /* @__PURE__ */ jsxRuntime.jsx(RippleLayer, { ripples, onRippleDone: removeRipple })
7106
+ ]
7107
+ }
7108
+ ),
7109
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 flex size-6 items-center justify-center text-current", children: /* @__PURE__ */ jsxRuntime.jsx(IconContainer, { selected, badge, children: filledIcon }) })
7110
+ ]
7111
+ }
7112
+ ),
7113
+ /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "popLayout", children: /* @__PURE__ */ jsxRuntime.jsx(
7114
+ "span",
7115
+ {
7116
+ className: cn(
7117
+ "z-10 transition-all duration-200 truncate px-1",
7118
+ selected ? "text-m3-on-surface" : "text-m3-on-surface-variant",
7119
+ "font-medium text-[12px] leading-4 tracking-[0.5px]"
7120
+ ),
7121
+ children: label
7122
+ },
7123
+ "nav-label"
7124
+ ) })
7125
+ ]
7126
+ }
7127
+ ),
7128
+ /* @__PURE__ */ jsxRuntime.jsx(TouchTarget, {})
7129
+ ]
7130
+ }
7131
+ );
7132
+ }
7133
+ );
7134
+ NavigationBarItemComponent.displayName = "NavigationBarItem";
7135
+ var NavigationBarItem = React39__namespace.memo(NavigationBarItemComponent);
7136
+ var navContainerVariants = classVarianceAuthority.cva(
7137
+ "flex items-center justify-center select-none transition-transform duration-300 z-50",
7138
+ {
7139
+ variants: {
7140
+ variant: {
7141
+ flexible: "bottom-0 left-0 right-0 w-full h-16 pb-safe",
7142
+ baseline: "bottom-0 left-0 right-0 w-full h-20 pb-safe",
7143
+ xr: "bottom-6 left-1/2 -translate-x-1/2 w-auto max-w-fit h-20 min-[600px]:h-16 rounded-[48px] px-2"
7144
+ },
7145
+ position: {
7146
+ fixed: "fixed",
7147
+ absolute: "absolute"
7148
+ },
7149
+ elevated: {
7150
+ true: "shadow-[0_-1px_3px_rgba(0,0,0,0.1)]",
7151
+ false: "shadow-none"
7152
+ }
7153
+ },
7154
+ defaultVariants: {
7155
+ variant: "flexible",
7156
+ position: "fixed",
7157
+ elevated: false
7158
+ }
7159
+ }
7160
+ );
7161
+ var NavigationBarComponent = React39__namespace.forwardRef(
7162
+ ({
7163
+ variant = "flexible",
7164
+ itemLayout,
7165
+ hideOnScroll = false,
7166
+ elevated = false,
7167
+ fixed = true,
7168
+ scrollContainerRef,
7169
+ activeIndicatorTransition,
7170
+ children,
7171
+ className,
7172
+ style
7173
+ }, ref) => {
7174
+ const [isVisible, setIsVisible] = React39__namespace.useState(true);
7175
+ const lastScrollY = React39__namespace.useRef(
7176
+ typeof window !== "undefined" ? window.scrollY : 0
7177
+ );
7178
+ React39__namespace.useEffect(() => {
7179
+ if (typeof window === "undefined" || !hideOnScroll) {
7180
+ setIsVisible(true);
7181
+ return;
7182
+ }
7183
+ const prefersReducedMotion = window.matchMedia(
7184
+ "(prefers-reduced-motion: reduce)"
7185
+ ).matches;
7186
+ if (prefersReducedMotion) {
7187
+ setIsVisible(true);
7188
+ return;
7189
+ }
7190
+ let ticking = false;
7191
+ const handleScroll = () => {
7192
+ if (ticking) return;
7193
+ ticking = true;
7194
+ window.requestAnimationFrame(() => {
7195
+ const currentScrollY = (scrollContainerRef == null ? void 0 : scrollContainerRef.current) ? scrollContainerRef.current.scrollTop : window.scrollY;
7196
+ if (currentScrollY <= 0 || currentScrollY < lastScrollY.current) {
7197
+ setIsVisible(true);
7198
+ } else if (currentScrollY > lastScrollY.current) {
7199
+ setIsVisible(false);
7200
+ }
7201
+ lastScrollY.current = currentScrollY;
7202
+ ticking = false;
7203
+ });
7204
+ };
7205
+ const target = (scrollContainerRef == null ? void 0 : scrollContainerRef.current) || window;
7206
+ target.addEventListener("scroll", handleScroll, { passive: true });
7207
+ return () => target.removeEventListener("scroll", handleScroll);
7208
+ }, [hideOnScroll, scrollContainerRef]);
7209
+ const navBaseClasses = cn(
7210
+ navContainerVariants({
7211
+ variant,
7212
+ elevated,
7213
+ position: fixed ? "fixed" : "absolute"
7214
+ }),
7215
+ variant === "xr" ? "bg-m3-surface border border-white/5 shadow-xl" : "bg-m3-surface-container",
7216
+ className
7217
+ );
7218
+ return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsx(NavigationBarContext.Provider, { value: { variant, itemLayout, activeIndicatorTransition }, children: /* @__PURE__ */ jsxRuntime.jsx(
7219
+ react.m.nav,
7220
+ {
7221
+ ref,
7222
+ role: "navigation",
7223
+ "aria-label": "Main navigation",
7224
+ className: navBaseClasses,
7225
+ style,
7226
+ initial: false,
7227
+ animate: { y: isVisible ? "0%" : "100%" },
7228
+ transition: { type: "tween", duration: 0.3, ease: "easeInOut" },
7229
+ children: /* @__PURE__ */ jsxRuntime.jsx(
7230
+ "div",
7231
+ {
7232
+ role: "menubar",
7233
+ "aria-orientation": "horizontal",
7234
+ className: cn(
7235
+ "flex w-full h-full mx-auto",
7236
+ variant === "xr" ? "gap-0 min-[600px]:gap-1.5" : "max-w-7xl gap-1.5"
7237
+ ),
7238
+ children
7239
+ }
7240
+ )
7241
+ }
7242
+ ) }) });
7243
+ }
7244
+ );
7245
+ NavigationBarComponent.displayName = "NavigationBar";
7246
+ var NavigationBar = React39__namespace.memo(NavigationBarComponent);
7247
+ var NavigationRailContext = React39__namespace.createContext({ variant: "collapsed", labelVisibility: "labeled" });
6956
7248
  var MD3_MODAL_TRANSITION = {
6957
7249
  type: "tween",
6958
7250
  ease: [0.05, 0.7, 0.1, 1],
@@ -6963,17 +7255,14 @@ var railContainerVariants = classVarianceAuthority.cva(
6963
7255
  {
6964
7256
  variants: {
6965
7257
  variant: {
6966
- collapsed: "items-center",
6967
- expanded: "items-start",
6968
- modal: "bg-m3-surface shadow-lg rounded-r-[var(--m3-shape-corner-large)]"
7258
+ collapsed: "items-center h-full pt-11 pb-4 shadow-none bg-m3-surface rounded-none",
7259
+ expanded: "items-start h-full pt-11 pb-4 shadow-none bg-m3-surface rounded-none",
7260
+ modal: "bg-m3-surface shadow-lg rounded-r-[var(--m3-shape-corner-large)] h-full pt-11 pb-4",
7261
+ xr: "h-fit py-5 rounded-[48px] shadow-xl bg-m3-surface border border-white/5"
6969
7262
  },
6970
7263
  narrow: {
6971
7264
  true: "w-20",
6972
7265
  false: "w-24"
6973
- },
6974
- xr: {
6975
- true: "h-fit py-5 rounded-[48px] shadow-xl bg-m3-surface border border-white/5",
6976
- false: "h-full pt-11 pb-4 shadow-none bg-m3-surface rounded-none"
6977
7266
  }
6978
7267
  },
6979
7268
  compoundVariants: [
@@ -6982,15 +7271,14 @@ var railContainerVariants = classVarianceAuthority.cva(
6982
7271
  ],
6983
7272
  defaultVariants: {
6984
7273
  variant: "collapsed",
6985
- narrow: false,
6986
- xr: false
7274
+ narrow: false
6987
7275
  }
6988
7276
  }
6989
7277
  );
6990
- function cloneIconWithFill(icon, selected) {
6991
- if (!React38__namespace.isValidElement(icon)) return icon;
7278
+ function cloneIconWithFill2(icon, selected) {
7279
+ if (!React39__namespace.isValidElement(icon)) return icon;
6992
7280
  if (icon.type === Icon) {
6993
- return React38__namespace.cloneElement(
7281
+ return React39__namespace.cloneElement(
6994
7282
  icon,
6995
7283
  { fill: selected ? 1 : 0, animateFill: true }
6996
7284
  );
@@ -7012,7 +7300,8 @@ function setFocusedItem(items, index) {
7012
7300
  target.focus();
7013
7301
  }
7014
7302
  }
7015
- function ActivePill({ layoutId, disableInitial = false }) {
7303
+ function ActivePill2({ layoutId, disableInitial = false }) {
7304
+ const { activeIndicatorTransition } = React39__namespace.useContext(NavigationRailContext);
7016
7305
  return /* @__PURE__ */ jsxRuntime.jsx(
7017
7306
  react.m.div,
7018
7307
  {
@@ -7022,17 +7311,17 @@ function ActivePill({ layoutId, disableInitial = false }) {
7022
7311
  initial: disableInitial ? false : { opacity: 0, scale: 0.5 },
7023
7312
  animate: { opacity: 1, scale: 1 },
7024
7313
  exit: { opacity: 0, scale: 0.5, transition: { duration: 0.15 } },
7025
- transition: SPRING_TRANSITION_EXPRESSIVE
7314
+ transition: activeIndicatorTransition || SPRING_TRANSITION_EXPRESSIVE
7026
7315
  }
7027
7316
  );
7028
7317
  }
7029
- function HoverStateLayer() {
7318
+ function HoverStateLayer2() {
7030
7319
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 rounded-full bg-m3-on-surface opacity-0 group-hover:opacity-[0.08] transition-opacity duration-200 pointer-events-none z-0" });
7031
7320
  }
7032
- function RippleLayer({ ripples, onRippleDone }) {
7321
+ function RippleLayer2({ ripples, onRippleDone }) {
7033
7322
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 rounded-full overflow-hidden pointer-events-none z-0", children: /* @__PURE__ */ jsxRuntime.jsx(Ripple, { ripples, onRippleDone }) });
7034
7323
  }
7035
- function IconContainer({ selected, badge, children }) {
7324
+ function IconContainer2({ selected, badge, children }) {
7036
7325
  return /* @__PURE__ */ jsxRuntime.jsxs(
7037
7326
  "div",
7038
7327
  {
@@ -7048,7 +7337,7 @@ function IconContainer({ selected, badge, children }) {
7048
7337
  }
7049
7338
  );
7050
7339
  }
7051
- var NavigationRailItemComponent = React38__namespace.forwardRef(
7340
+ var NavigationRailItemComponent = React39__namespace.forwardRef(
7052
7341
  ({
7053
7342
  selected,
7054
7343
  icon,
@@ -7059,18 +7348,18 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
7059
7348
  className,
7060
7349
  "aria-label": ariaLabelProp
7061
7350
  }, ref) => {
7062
- const { variant, labelVisibility } = React38__namespace.useContext(
7351
+ const { variant, labelVisibility } = React39__namespace.useContext(
7063
7352
  NavigationRailContext
7064
7353
  );
7065
7354
  const isExpanded = variant === "expanded" || variant === "modal";
7066
7355
  const isModal = variant === "modal";
7067
7356
  const enableLayout = !isModal;
7068
- const activePillId = `rail-pill-${React38__namespace.useId()}`;
7357
+ const activePillId = `rail-pill-${React39__namespace.useId()}`;
7069
7358
  const { ripples, onPointerDown, removeRipple } = useRippleState({
7070
7359
  disabled
7071
7360
  });
7072
7361
  const showLabel = isExpanded || labelVisibility === "labeled" || labelVisibility === "auto" && selected;
7073
- const handleClick = React38__namespace.useCallback(
7362
+ const handleClick = React39__namespace.useCallback(
7074
7363
  (e) => {
7075
7364
  if (disabled) {
7076
7365
  e.preventDefault();
@@ -7080,7 +7369,7 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
7080
7369
  },
7081
7370
  [disabled, onClick]
7082
7371
  );
7083
- const filledIcon = cloneIconWithFill(icon, selected);
7372
+ const filledIcon = cloneIconWithFill2(icon, selected);
7084
7373
  const labelInitial = isModal ? false : { opacity: 0, x: isExpanded ? -12 : 0, y: isExpanded ? 0 : -8 };
7085
7374
  return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
7086
7375
  react.m.button,
@@ -7113,14 +7402,14 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
7113
7402
  ),
7114
7403
  children: [
7115
7404
  isExpanded && /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(
7116
- ActivePill,
7405
+ ActivePill2,
7117
7406
  {
7118
7407
  layoutId: activePillId,
7119
7408
  disableInitial: isModal
7120
7409
  }
7121
7410
  ) }),
7122
- isExpanded && /* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer, {}),
7123
- isExpanded && /* @__PURE__ */ jsxRuntime.jsx(RippleLayer, { ripples, onRippleDone: removeRipple }),
7411
+ isExpanded && /* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer2, {}),
7412
+ isExpanded && /* @__PURE__ */ jsxRuntime.jsx(RippleLayer2, { ripples, onRippleDone: removeRipple }),
7124
7413
  /* @__PURE__ */ jsxRuntime.jsxs(
7125
7414
  react.m.div,
7126
7415
  {
@@ -7131,15 +7420,15 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
7131
7420
  ),
7132
7421
  style: { borderRadius: 9999 },
7133
7422
  children: [
7134
- !isExpanded && /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(ActivePill, { layoutId: activePillId }) }),
7135
- !isExpanded && /* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer, {}),
7136
- !isExpanded && /* @__PURE__ */ jsxRuntime.jsx(RippleLayer, { ripples, onRippleDone: removeRipple }),
7423
+ !isExpanded && /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, children: selected && /* @__PURE__ */ jsxRuntime.jsx(ActivePill2, { layoutId: activePillId }) }),
7424
+ !isExpanded && /* @__PURE__ */ jsxRuntime.jsx(HoverStateLayer2, {}),
7425
+ !isExpanded && /* @__PURE__ */ jsxRuntime.jsx(RippleLayer2, { ripples, onRippleDone: removeRipple }),
7137
7426
  /* @__PURE__ */ jsxRuntime.jsx(
7138
7427
  react.m.div,
7139
7428
  {
7140
7429
  layout: enableLayout ? "position" : false,
7141
7430
  className: "relative z-10 flex size-6 items-center justify-center text-current",
7142
- children: /* @__PURE__ */ jsxRuntime.jsx(IconContainer, { selected, badge, children: filledIcon })
7431
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconContainer2, { selected, badge, children: filledIcon })
7143
7432
  }
7144
7433
  )
7145
7434
  ]
@@ -7172,9 +7461,9 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
7172
7461
  }
7173
7462
  );
7174
7463
  NavigationRailItemComponent.displayName = "NavigationRailItem";
7175
- var NavigationRailItem = React38__namespace.memo(NavigationRailItemComponent);
7464
+ var NavigationRailItem = React39__namespace.memo(NavigationRailItemComponent);
7176
7465
  function useRoving(navRef) {
7177
- React38__namespace.useEffect(() => {
7466
+ React39__namespace.useEffect(() => {
7178
7467
  if (!navRef.current) return;
7179
7468
  const items = getMenuItems(navRef.current);
7180
7469
  const selected = items.find(
@@ -7184,7 +7473,7 @@ function useRoving(navRef) {
7184
7473
  const firstFocusable = selected != null ? selected : items[0];
7185
7474
  if (firstFocusable) firstFocusable.tabIndex = 0;
7186
7475
  }, [navRef]);
7187
- return React38__namespace.useCallback(
7476
+ return React39__namespace.useCallback(
7188
7477
  (e) => {
7189
7478
  if (!navRef.current) return;
7190
7479
  const items = getMenuItems(navRef.current);
@@ -7212,29 +7501,29 @@ function useRoving(navRef) {
7212
7501
  [navRef]
7213
7502
  );
7214
7503
  }
7215
- var NavigationRailComponent = React38__namespace.forwardRef(
7504
+ var NavigationRailComponent = React39__namespace.forwardRef(
7216
7505
  ({
7217
7506
  variant = "collapsed",
7218
7507
  labelVisibility = "labeled",
7219
7508
  header,
7220
7509
  fab,
7510
+ fabPlacement = "contained",
7221
7511
  footer,
7222
7512
  narrow = false,
7223
7513
  open = false,
7224
- xr = false,
7225
7514
  onClose,
7515
+ activeIndicatorTransition,
7226
7516
  children,
7227
7517
  className,
7228
7518
  style
7229
7519
  }, ref) => {
7230
7520
  const isModal = variant === "modal";
7231
- const isXr = xr === true || xr === "contained" || xr === "spatialized";
7232
- const xrMode = xr === "spatialized" ? "spatialized" : "contained";
7233
- const isSpatial = isXr && xrMode === "spatialized";
7521
+ const isXr = variant === "xr";
7522
+ const isSpatial = isXr && fabPlacement === "spatialized";
7234
7523
  const applyAnimation = !isXr || !isSpatial;
7235
- const navRef = React38__namespace.useRef(null);
7524
+ const navRef = React39__namespace.useRef(null);
7236
7525
  const handleKeyDown = useRoving(navRef);
7237
- const setRefs = React38__namespace.useCallback(
7526
+ const setRefs = React39__namespace.useCallback(
7238
7527
  (node) => {
7239
7528
  navRef.current = node;
7240
7529
  if (typeof ref === "function") ref(node);
@@ -7243,12 +7532,12 @@ var NavigationRailComponent = React38__namespace.forwardRef(
7243
7532
  [ref]
7244
7533
  );
7245
7534
  const navBaseClasses = cn(
7246
- railContainerVariants({ variant, narrow, xr: isXr })
7535
+ railContainerVariants({ variant, narrow })
7247
7536
  );
7248
7537
  const modalPositioning = isModal ? "fixed left-0 top-0 z-[100]" : "";
7249
7538
  const navHeaderSpacing = (() => {
7250
7539
  if (!isXr) return "mb-6 min-h-10";
7251
- if (xrMode === "contained") return fab ? "mb-10" : "mb-5";
7540
+ if (fabPlacement === "contained") return fab ? "mb-10" : "mb-5";
7252
7541
  return "mb-5";
7253
7542
  })();
7254
7543
  const navElement = /* @__PURE__ */ jsxRuntime.jsxs(
@@ -7327,7 +7616,7 @@ var NavigationRailComponent = React38__namespace.forwardRef(
7327
7616
  children: fab
7328
7617
  }
7329
7618
  ),
7330
- React38__namespace.cloneElement(
7619
+ React39__namespace.cloneElement(
7331
7620
  navElement,
7332
7621
  {
7333
7622
  className: cn(navBaseClasses, "pointer-events-auto")
@@ -7338,7 +7627,7 @@ var NavigationRailComponent = React38__namespace.forwardRef(
7338
7627
  "md3-nav-wrapper"
7339
7628
  );
7340
7629
  const finalNavElement = isSpatial ? spatialWrapper : navElement;
7341
- const contextValue = { variant, labelVisibility, xr: isXr };
7630
+ const contextValue = { variant, labelVisibility, activeIndicatorTransition };
7342
7631
  if (isModal) {
7343
7632
  if (typeof document === "undefined") return null;
7344
7633
  return reactDom.createPortal(
@@ -7365,13 +7654,13 @@ var NavigationRailComponent = React38__namespace.forwardRef(
7365
7654
  }
7366
7655
  );
7367
7656
  NavigationRailComponent.displayName = "NavigationRail";
7368
- var NavigationRail = React38__namespace.memo(NavigationRailComponent);
7657
+ var NavigationRail = React39__namespace.memo(NavigationRailComponent);
7369
7658
  var MD3_FAST_EFFECTS2 = [0.3, 0, 1, 1];
7370
- var RadioGroupContext = React38__namespace.createContext(
7659
+ var RadioGroupContext = React39__namespace.createContext(
7371
7660
  null
7372
7661
  );
7373
7662
  function useMergedRef3(externalRef, internalRef) {
7374
- return React38__namespace.useCallback(
7663
+ return React39__namespace.useCallback(
7375
7664
  (node) => {
7376
7665
  internalRef.current = node;
7377
7666
  if (!externalRef) return;
@@ -7384,7 +7673,7 @@ function useMergedRef3(externalRef, internalRef) {
7384
7673
  [externalRef, internalRef]
7385
7674
  );
7386
7675
  }
7387
- var RadioVisual = React38__namespace.memo(function RadioVisual2({
7676
+ var RadioVisual = React39__namespace.memo(function RadioVisual2({
7388
7677
  isSelected,
7389
7678
  disabled,
7390
7679
  error,
@@ -7437,7 +7726,7 @@ var RadioVisual = React38__namespace.memo(function RadioVisual2({
7437
7726
  }
7438
7727
  );
7439
7728
  });
7440
- var RadioButtonComponent = React38__namespace.forwardRef(
7729
+ var RadioButtonComponent = React39__namespace.forwardRef(
7441
7730
  ({
7442
7731
  selected,
7443
7732
  defaultSelected = false,
@@ -7456,23 +7745,23 @@ var RadioButtonComponent = React38__namespace.forwardRef(
7456
7745
  required: requiredProp
7457
7746
  }, ref) => {
7458
7747
  var _a, _b;
7459
- const group = React38__namespace.useContext(RadioGroupContext);
7748
+ const group = React39__namespace.useContext(RadioGroupContext);
7460
7749
  const prefersReduced = (_a = react.useReducedMotion()) != null ? _a : false;
7461
- const generatedId = React38__namespace.useId();
7750
+ const generatedId = React39__namespace.useId();
7462
7751
  const inputId = idProp != null ? idProp : label ? `radio-${generatedId}` : void 0;
7463
7752
  const name = (_b = group == null ? void 0 : group.name) != null ? _b : nameProp;
7464
7753
  const disabled = (group == null ? void 0 : group.disabled) || disabledProp;
7465
7754
  const error = (group == null ? void 0 : group.error) || errorProp || color === "error";
7466
7755
  const required = (group == null ? void 0 : group.required) || requiredProp;
7467
- const [internalSelected, setInternalSelected] = React38__namespace.useState(defaultSelected);
7756
+ const [internalSelected, setInternalSelected] = React39__namespace.useState(defaultSelected);
7468
7757
  const isControlled = selected !== void 0;
7469
7758
  const isSelected = group ? group.selectedValue === value : isControlled ? selected != null ? selected : false : internalSelected;
7470
- const [ripples, setRipples] = React38__namespace.useState([]);
7471
- const removeRipple = React38__namespace.useCallback(
7759
+ const [ripples, setRipples] = React39__namespace.useState([]);
7760
+ const removeRipple = React39__namespace.useCallback(
7472
7761
  (id) => setRipples((prev) => prev.filter((r) => r.id !== id)),
7473
7762
  []
7474
7763
  );
7475
- const onPointerDown = React38__namespace.useCallback(
7764
+ const onPointerDown = React39__namespace.useCallback(
7476
7765
  (e) => {
7477
7766
  if (disabled) return;
7478
7767
  const rect = e.currentTarget.getBoundingClientRect();
@@ -7486,12 +7775,12 @@ var RadioButtonComponent = React38__namespace.forwardRef(
7486
7775
  },
7487
7776
  [disabled]
7488
7777
  );
7489
- const [isHovered, setIsHovered] = React38__namespace.useState(false);
7490
- const onPointerEnter = React38__namespace.useCallback(() => {
7778
+ const [isHovered, setIsHovered] = React39__namespace.useState(false);
7779
+ const onPointerEnter = React39__namespace.useCallback(() => {
7491
7780
  if (!disabled) setIsHovered(true);
7492
7781
  }, [disabled]);
7493
- const onPointerLeave = React38__namespace.useCallback(() => setIsHovered(false), []);
7494
- const handleChange = React38__namespace.useCallback(
7782
+ const onPointerLeave = React39__namespace.useCallback(() => setIsHovered(false), []);
7783
+ const handleChange = React39__namespace.useCallback(
7495
7784
  (_e) => {
7496
7785
  if (disabled || onClick === null) return;
7497
7786
  if (group) {
@@ -7505,7 +7794,7 @@ var RadioButtonComponent = React38__namespace.forwardRef(
7505
7794
  },
7506
7795
  [disabled, onClick, group, value, isControlled]
7507
7796
  );
7508
- const inputRef = React38__namespace.useRef(null);
7797
+ const inputRef = React39__namespace.useRef(null);
7509
7798
  const mergedRef = useMergedRef3(ref, inputRef);
7510
7799
  const stateLayerBg = error ? "before:bg-m3-error" : "before:bg-m3-primary";
7511
7800
  const stateLayerClass = cn(
@@ -7616,8 +7905,8 @@ var RadioButtonComponent = React38__namespace.forwardRef(
7616
7905
  }
7617
7906
  );
7618
7907
  RadioButtonComponent.displayName = "RadioButton";
7619
- var RadioButton = React38__namespace.memo(RadioButtonComponent);
7620
- var RadioGroupComponent = React38__namespace.forwardRef(
7908
+ var RadioButton = React39__namespace.memo(RadioButtonComponent);
7909
+ var RadioGroupComponent = React39__namespace.forwardRef(
7621
7910
  ({
7622
7911
  name,
7623
7912
  value: valueProp,
@@ -7632,19 +7921,19 @@ var RadioGroupComponent = React38__namespace.forwardRef(
7632
7921
  children,
7633
7922
  className
7634
7923
  }, ref) => {
7635
- const [internalValue, setInternalValue] = React38__namespace.useState(defaultValue);
7924
+ const [internalValue, setInternalValue] = React39__namespace.useState(defaultValue);
7636
7925
  const isControlled = valueProp !== void 0;
7637
7926
  const selectedValue = isControlled ? valueProp : internalValue;
7638
- const handleValueChange = React38__namespace.useCallback(
7927
+ const handleValueChange = React39__namespace.useCallback(
7639
7928
  (val) => {
7640
7929
  if (!isControlled) setInternalValue(val);
7641
7930
  onValueChange == null ? void 0 : onValueChange(val);
7642
7931
  },
7643
7932
  [isControlled, onValueChange]
7644
7933
  );
7645
- const groupRef = React38__namespace.useRef(null);
7934
+ const groupRef = React39__namespace.useRef(null);
7646
7935
  const mergedRef = useMergedRef3(ref, groupRef);
7647
- const onKeyDown = React38__namespace.useCallback(
7936
+ const onKeyDown = React39__namespace.useCallback(
7648
7937
  (e) => {
7649
7938
  var _a, _b;
7650
7939
  if (disabled) return;
@@ -7668,7 +7957,7 @@ var RadioGroupComponent = React38__namespace.forwardRef(
7668
7957
  },
7669
7958
  [disabled, handleValueChange]
7670
7959
  );
7671
- const contextValue = React38__namespace.useMemo(
7960
+ const contextValue = React39__namespace.useMemo(
7672
7961
  () => ({
7673
7962
  name,
7674
7963
  selectedValue,
@@ -7703,7 +7992,7 @@ var RadioGroupComponent = React38__namespace.forwardRef(
7703
7992
  }
7704
7993
  );
7705
7994
  RadioGroupComponent.displayName = "RadioGroup";
7706
- var RadioGroup = React38__namespace.memo(RadioGroupComponent);
7995
+ var RadioGroup = React39__namespace.memo(RadioGroupComponent);
7707
7996
  function useSearchKeyboard({
7708
7997
  active,
7709
7998
  onActiveChange,
@@ -7712,14 +8001,14 @@ function useSearchKeyboard({
7712
8001
  itemCount,
7713
8002
  onSelectSuggestion
7714
8003
  }) {
7715
- const [activeIndex, setActiveIndex] = React38__namespace.useState(-1);
7716
- const resetKeyRef = React38__namespace.useRef(`${active}:${query}`);
8004
+ const [activeIndex, setActiveIndex] = React39__namespace.useState(-1);
8005
+ const resetKeyRef = React39__namespace.useRef(`${active}:${query}`);
7717
8006
  const currentKey = `${active}:${query}`;
7718
8007
  if (resetKeyRef.current !== currentKey) {
7719
8008
  resetKeyRef.current = currentKey;
7720
8009
  setActiveIndex(-1);
7721
8010
  }
7722
- const handleKeyDown = React38__namespace.useCallback(
8011
+ const handleKeyDown = React39__namespace.useCallback(
7723
8012
  (e) => {
7724
8013
  if (!active) return;
7725
8014
  switch (e.key) {
@@ -7759,7 +8048,7 @@ function useSearchKeyboard({
7759
8048
  query
7760
8049
  ]
7761
8050
  );
7762
- const resetActiveIndex = React38__namespace.useCallback(() => {
8051
+ const resetActiveIndex = React39__namespace.useCallback(() => {
7763
8052
  setActiveIndex(-1);
7764
8053
  }, []);
7765
8054
  return { activeIndex, handleKeyDown, resetActiveIndex };
@@ -7847,10 +8136,10 @@ function AnimatedPlaceholder({
7847
8136
  className
7848
8137
  }) {
7849
8138
  const shouldReduceMotion = react.useReducedMotion();
7850
- const containerRef = React38__namespace.useRef(null);
7851
- const spanRef = React38__namespace.useRef(null);
7852
- const [xOffset, setXOffset] = React38__namespace.useState(0);
7853
- const recalculate = React38__namespace.useCallback(() => {
8139
+ const containerRef = React39__namespace.useRef(null);
8140
+ const spanRef = React39__namespace.useRef(null);
8141
+ const [xOffset, setXOffset] = React39__namespace.useState(0);
8142
+ const recalculate = React39__namespace.useCallback(() => {
7854
8143
  const container = containerRef.current;
7855
8144
  const span = spanRef.current;
7856
8145
  if (!container || !span || textAlign === "left") {
@@ -7865,10 +8154,10 @@ function AnimatedPlaceholder({
7865
8154
  setXOffset(Math.max(0, containerWidth - textWidth));
7866
8155
  }
7867
8156
  }, [textAlign]);
7868
- React38__namespace.useLayoutEffect(() => {
8157
+ React39__namespace.useLayoutEffect(() => {
7869
8158
  recalculate();
7870
8159
  }, [recalculate]);
7871
- React38__namespace.useEffect(() => {
8160
+ React39__namespace.useEffect(() => {
7872
8161
  const container = containerRef.current;
7873
8162
  if (!container) return;
7874
8163
  const observer = new ResizeObserver(recalculate);
@@ -7937,10 +8226,10 @@ function SearchBar({
7937
8226
  activeIndex
7938
8227
  }) {
7939
8228
  const shouldReduceMotion = react.useReducedMotion();
7940
- const inputRef = React38__namespace.useRef(null);
7941
- const prevActiveRef = React38__namespace.useRef(active);
7942
- const isRestoringFocusRef = React38__namespace.useRef(false);
7943
- React38__namespace.useEffect(() => {
8229
+ const inputRef = React39__namespace.useRef(null);
8230
+ const prevActiveRef = React39__namespace.useRef(active);
8231
+ const isRestoringFocusRef = React39__namespace.useRef(false);
8232
+ React39__namespace.useEffect(() => {
7944
8233
  var _a;
7945
8234
  let rafId;
7946
8235
  if (prevActiveRef.current === true && active === false) {
@@ -8059,7 +8348,7 @@ function SearchBar({
8059
8348
  ) })
8060
8349
  );
8061
8350
  }
8062
- var SearchContext = React38__namespace.createContext(null);
8351
+ var SearchContext = React39__namespace.createContext(null);
8063
8352
  function SearchProvider({
8064
8353
  children,
8065
8354
  value
@@ -8067,15 +8356,15 @@ function SearchProvider({
8067
8356
  return /* @__PURE__ */ jsxRuntime.jsx(SearchContext.Provider, { value, children });
8068
8357
  }
8069
8358
  function useSearch() {
8070
- const context = React38__namespace.useContext(SearchContext);
8359
+ const context = React39__namespace.useContext(SearchContext);
8071
8360
  if (!context) {
8072
8361
  return { listboxId: "", activeIndex: -1 };
8073
8362
  }
8074
8363
  return context;
8075
8364
  }
8076
8365
  function useClickOutside(handler, enabled = true) {
8077
- const ref = React38.useRef(null);
8078
- React38.useEffect(() => {
8366
+ const ref = React39.useRef(null);
8367
+ React39.useEffect(() => {
8079
8368
  if (!enabled) return;
8080
8369
  const listener = (event) => {
8081
8370
  const el = ref.current;
@@ -8094,7 +8383,7 @@ function useClickOutside(handler, enabled = true) {
8094
8383
  return ref;
8095
8384
  }
8096
8385
  function useSearchViewFocus(inputRef, active) {
8097
- React38__namespace.useEffect(() => {
8386
+ React39__namespace.useEffect(() => {
8098
8387
  if (!active) return;
8099
8388
  let raf2;
8100
8389
  const raf1 = requestAnimationFrame(() => {
@@ -8168,7 +8457,7 @@ function SearchViewDocked({
8168
8457
  activeIndex
8169
8458
  }) {
8170
8459
  const shouldReduceMotion = react.useReducedMotion();
8171
- const inputRef = React38__namespace.useRef(null);
8460
+ const inputRef = React39__namespace.useRef(null);
8172
8461
  useSearchViewFocus(inputRef, active);
8173
8462
  const dropdownRef = useClickOutside(() => {
8174
8463
  onActiveChange(false);
@@ -8314,10 +8603,10 @@ function SearchViewFullScreen({
8314
8603
  activeIndex
8315
8604
  }) {
8316
8605
  const shouldReduceMotion = react.useReducedMotion();
8317
- const inputRef = React38__namespace.useRef(null);
8606
+ const inputRef = React39__namespace.useRef(null);
8318
8607
  useSearchViewFocus(inputRef, active);
8319
- const [mounted, setMounted] = React38__namespace.useState(false);
8320
- React38__namespace.useEffect(() => {
8608
+ const [mounted, setMounted] = React39__namespace.useState(false);
8609
+ React39__namespace.useEffect(() => {
8321
8610
  setMounted(true);
8322
8611
  }, []);
8323
8612
  const handleFormSubmit = (e) => {
@@ -8475,10 +8764,10 @@ function SearchComponent({
8475
8764
  className,
8476
8765
  viewClassName
8477
8766
  }) {
8478
- const generatedId = React38__namespace.useId();
8767
+ const generatedId = React39__namespace.useId();
8479
8768
  const searchId = id != null ? id : generatedId;
8480
8769
  const listboxId = `${searchId}-listbox`;
8481
- const itemCount = React38__namespace.Children.count(children);
8770
+ const itemCount = React39__namespace.Children.count(children);
8482
8771
  const { activeIndex, handleKeyDown } = useSearchKeyboard({
8483
8772
  active,
8484
8773
  onActiveChange,
@@ -8576,7 +8865,7 @@ function useSliderMath({
8576
8865
  max,
8577
8866
  step
8578
8867
  }) {
8579
- return React38.useMemo(
8868
+ return React39.useMemo(
8580
8869
  () => ({
8581
8870
  coerce: (v) => coerceValue(v, min, max),
8582
8871
  snap: (v) => snapToStep(v, min, step),
@@ -8714,7 +9003,7 @@ var SLIDER_INDICATOR_TRANSITION = {
8714
9003
  stiffness: 450,
8715
9004
  damping: 32
8716
9005
  };
8717
- var ValueIndicator = React38__namespace.memo(function ValueIndicator2({
9006
+ var ValueIndicator = React39__namespace.memo(function ValueIndicator2({
8718
9007
  value,
8719
9008
  visible,
8720
9009
  orientation,
@@ -8761,7 +9050,7 @@ var ValueIndicator = React38__namespace.memo(function ValueIndicator2({
8761
9050
  "value-indicator"
8762
9051
  ) });
8763
9052
  });
8764
- var SliderThumb = React38__namespace.memo(function SliderThumb2({
9053
+ var SliderThumb = React39__namespace.memo(function SliderThumb2({
8765
9054
  value,
8766
9055
  percent,
8767
9056
  min,
@@ -8793,11 +9082,11 @@ var SliderThumb = React38__namespace.memo(function SliderThumb2({
8793
9082
  [posTarget]: `calc(${trackInset}px + ${percent} * (100% - ${trackInset * 2}px))`
8794
9083
  };
8795
9084
  const prefersReduced = (_a = react.useReducedMotion()) != null ? _a : false;
8796
- const [isDragging, setIsDragging] = React38__namespace.useState(false);
8797
- const [isHovered, setIsHovered] = React38__namespace.useState(false);
8798
- const [isFocused, setIsFocused] = React38__namespace.useState(false);
8799
- const pointerIdRef = React38__namespace.useRef(null);
8800
- const thumbRef = React38__namespace.useRef(null);
9085
+ const [isDragging, setIsDragging] = React39__namespace.useState(false);
9086
+ const [isHovered, setIsHovered] = React39__namespace.useState(false);
9087
+ const [isFocused, setIsFocused] = React39__namespace.useState(false);
9088
+ const pointerIdRef = React39__namespace.useRef(null);
9089
+ const thumbRef = React39__namespace.useRef(null);
8801
9090
  const showIndicator = showValueIndicator && (isDragging || isHovered || isFocused);
8802
9091
  const positionStyle = isHorizontal ? __spreadProps(__spreadValues({
8803
9092
  position: "absolute"
@@ -8812,7 +9101,7 @@ var SliderThumb = React38__namespace.memo(function SliderThumb2({
8812
9101
  transform: "translate(-50%, 50%)",
8813
9102
  zIndex
8814
9103
  });
8815
- const getDeltaFromPointer = React38__namespace.useCallback(
9104
+ const getDeltaFromPointer = React39__namespace.useCallback(
8816
9105
  (e) => {
8817
9106
  const trackEl = trackRef.current;
8818
9107
  if (!trackEl) return percent;
@@ -8839,7 +9128,7 @@ var SliderThumb = React38__namespace.memo(function SliderThumb2({
8839
9128
  },
8840
9129
  [isHorizontal, max, min, percent, step, trackRef, trackSize]
8841
9130
  );
8842
- const handlePointerDown = React38__namespace.useCallback(
9131
+ const handlePointerDown = React39__namespace.useCallback(
8843
9132
  (e) => {
8844
9133
  if (disabled) return;
8845
9134
  e.preventDefault();
@@ -8850,7 +9139,7 @@ var SliderThumb = React38__namespace.memo(function SliderThumb2({
8850
9139
  },
8851
9140
  [disabled]
8852
9141
  );
8853
- const handlePointerMove = React38__namespace.useCallback(
9142
+ const handlePointerMove = React39__namespace.useCallback(
8854
9143
  (e) => {
8855
9144
  if (!isDragging || e.pointerId !== pointerIdRef.current) return;
8856
9145
  const newValue = getDeltaFromPointer(e.nativeEvent);
@@ -8858,7 +9147,7 @@ var SliderThumb = React38__namespace.memo(function SliderThumb2({
8858
9147
  },
8859
9148
  [isDragging, getDeltaFromPointer, onValueChange]
8860
9149
  );
8861
- const handlePointerUp = React38__namespace.useCallback(
9150
+ const handlePointerUp = React39__namespace.useCallback(
8862
9151
  (e) => {
8863
9152
  if (e.pointerId !== pointerIdRef.current) return;
8864
9153
  e.currentTarget.releasePointerCapture(e.pointerId);
@@ -8868,7 +9157,7 @@ var SliderThumb = React38__namespace.memo(function SliderThumb2({
8868
9157
  },
8869
9158
  [onValueChangeEnd, value]
8870
9159
  );
8871
- const handleKeyDown = React38__namespace.useCallback(
9160
+ const handleKeyDown = React39__namespace.useCallback(
8872
9161
  (e) => {
8873
9162
  if (disabled) return;
8874
9163
  if (e.key === "Home") {
@@ -8972,7 +9261,7 @@ var SliderThumb = React38__namespace.memo(function SliderThumb2({
8972
9261
  }
8973
9262
  );
8974
9263
  });
8975
- var RangeTrack = React38__namespace.memo(function RangeTrack2({
9264
+ var RangeTrack = React39__namespace.memo(function RangeTrack2({
8976
9265
  startPercent,
8977
9266
  endPercent,
8978
9267
  trackSize,
@@ -9217,7 +9506,7 @@ var RangeTrack = React38__namespace.memo(function RangeTrack2({
9217
9506
  }
9218
9507
  );
9219
9508
  });
9220
- var RangeSliderComponent = React38__namespace.forwardRef(
9509
+ var RangeSliderComponent = React39__namespace.forwardRef(
9221
9510
  ({
9222
9511
  value: controlledValue,
9223
9512
  defaultValue,
@@ -9241,7 +9530,7 @@ var RangeSliderComponent = React38__namespace.forwardRef(
9241
9530
  const isHorizontal = orientation === "horizontal";
9242
9531
  const defaultStart = (_a = defaultValue == null ? void 0 : defaultValue[0]) != null ? _a : min;
9243
9532
  const defaultEnd = (_b = defaultValue == null ? void 0 : defaultValue[1]) != null ? _b : max;
9244
- const [internalValue, setInternalValue] = React38__namespace.useState([
9533
+ const [internalValue, setInternalValue] = React39__namespace.useState([
9245
9534
  defaultStart,
9246
9535
  defaultEnd
9247
9536
  ]);
@@ -9255,10 +9544,10 @@ var RangeSliderComponent = React38__namespace.forwardRef(
9255
9544
  const endValue = snap(coerce(resolvedValue[1]));
9256
9545
  const startPercent = toPercent(startValue);
9257
9546
  const endPercent = toPercent(endValue);
9258
- const [topThumb, setTopThumb] = React38__namespace.useState("end");
9259
- const trackRef = React38__namespace.useRef(null);
9547
+ const [topThumb, setTopThumb] = React39__namespace.useState("end");
9548
+ const trackRef = React39__namespace.useRef(null);
9260
9549
  const minGap = step > 0 ? step : (max - min) / 1e3;
9261
- const handleStartChange = React38__namespace.useCallback(
9550
+ const handleStartChange = React39__namespace.useCallback(
9262
9551
  (newStart) => {
9263
9552
  setTopThumb("start");
9264
9553
  const clamped = Math.min(newStart, endValue - minGap);
@@ -9270,7 +9559,7 @@ var RangeSliderComponent = React38__namespace.forwardRef(
9270
9559
  },
9271
9560
  [controlledValue, coerce, endValue, minGap, onValueChange, snap]
9272
9561
  );
9273
- const handleEndChange = React38__namespace.useCallback(
9562
+ const handleEndChange = React39__namespace.useCallback(
9274
9563
  (newEnd) => {
9275
9564
  setTopThumb("end");
9276
9565
  const clamped = Math.max(newEnd, startValue + minGap);
@@ -9282,15 +9571,15 @@ var RangeSliderComponent = React38__namespace.forwardRef(
9282
9571
  },
9283
9572
  [controlledValue, coerce, minGap, onValueChange, snap, startValue]
9284
9573
  );
9285
- const handleStartChangeEnd = React38__namespace.useCallback(
9574
+ const handleStartChangeEnd = React39__namespace.useCallback(
9286
9575
  (v) => onValueChangeEnd == null ? void 0 : onValueChangeEnd([v, endValue]),
9287
9576
  [endValue, onValueChangeEnd]
9288
9577
  );
9289
- const handleEndChangeEnd = React38__namespace.useCallback(
9578
+ const handleEndChangeEnd = React39__namespace.useCallback(
9290
9579
  (v) => onValueChangeEnd == null ? void 0 : onValueChangeEnd([startValue, v]),
9291
9580
  [onValueChangeEnd, startValue]
9292
9581
  );
9293
- const handleTrackPointerDown = React38__namespace.useCallback(
9582
+ const handleTrackPointerDown = React39__namespace.useCallback(
9294
9583
  (e) => {
9295
9584
  if (disabled) return;
9296
9585
  const trackEl = trackRef.current;
@@ -9334,7 +9623,7 @@ var RangeSliderComponent = React38__namespace.forwardRef(
9334
9623
  trackSize
9335
9624
  ]
9336
9625
  );
9337
- const id = React38__namespace.useId();
9626
+ const id = React39__namespace.useId();
9338
9627
  return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
9339
9628
  "div",
9340
9629
  {
@@ -9414,7 +9703,7 @@ var RangeSliderComponent = React38__namespace.forwardRef(
9414
9703
  }
9415
9704
  );
9416
9705
  RangeSliderComponent.displayName = "RangeSlider";
9417
- var RangeSlider = React38__namespace.memo(RangeSliderComponent);
9706
+ var RangeSlider = React39__namespace.memo(RangeSliderComponent);
9418
9707
  function getHorizontalRadius(isLeading, innerR, outerR) {
9419
9708
  if (isLeading) {
9420
9709
  return {
@@ -9453,7 +9742,7 @@ var allInnerRadius = (innerR) => ({
9453
9742
  borderTopRightRadius: innerR,
9454
9743
  borderBottomRightRadius: innerR
9455
9744
  });
9456
- var InsetIcon = React38__namespace.memo(function InsetIcon2({
9745
+ var InsetIcon = React39__namespace.memo(function InsetIcon2({
9457
9746
  icon,
9458
9747
  isOnActiveSegment,
9459
9748
  position,
@@ -9547,7 +9836,7 @@ function Ticks({
9547
9836
  return /* @__PURE__ */ jsxRuntime.jsx("div", { style, "aria-hidden": "true" }, tick);
9548
9837
  }) });
9549
9838
  }
9550
- var SliderTrack = React38__namespace.memo(function SliderTrack2({
9839
+ var SliderTrack = React39__namespace.memo(function SliderTrack2({
9551
9840
  percent,
9552
9841
  trackSize,
9553
9842
  orientation,
@@ -9582,8 +9871,8 @@ var SliderTrack = React38__namespace.memo(function SliderTrack2({
9582
9871
  const gapWithThumbStr = `${thumbGap + thumbHalfWidth}px`;
9583
9872
  const hasAnyInsetIcon = Boolean(insetIcon || insetIconTrailing);
9584
9873
  const prefersReduced = (_a = react.useReducedMotion()) != null ? _a : false;
9585
- const [trackWidth, setTrackWidth] = React38__namespace.useState(0);
9586
- React38__namespace.useLayoutEffect(() => {
9874
+ const [trackWidth, setTrackWidth] = React39__namespace.useState(0);
9875
+ React39__namespace.useLayoutEffect(() => {
9587
9876
  const el = trackRef.current;
9588
9877
  if (!el || !hasAnyInsetIcon) return;
9589
9878
  setTrackWidth(isHorizontal ? el.clientWidth : el.clientHeight);
@@ -9600,8 +9889,8 @@ var SliderTrack = React38__namespace.memo(function SliderTrack2({
9600
9889
  const iconTotalWidth = activeIconSize + SliderTokens.insetIconPadding * 2 + thumbGap + thumbHalfWidth;
9601
9890
  const iconThreshold = trackWidth > 0 ? iconTotalWidth / trackWidth : 0.15;
9602
9891
  const HYSTERESIS_GAP = 0.04;
9603
- const trailingActiveRef = React38__namespace.useRef(1 - percent <= iconThreshold);
9604
- const leadingActiveRef = React38__namespace.useRef(percent > iconThreshold);
9892
+ const trailingActiveRef = React39__namespace.useRef(1 - percent <= iconThreshold);
9893
+ const leadingActiveRef = React39__namespace.useRef(percent > iconThreshold);
9605
9894
  const trailingPercent = 1 - percent;
9606
9895
  if (trailingActiveRef.current) {
9607
9896
  if (trailingPercent > iconThreshold + HYSTERESIS_GAP) {
@@ -10108,7 +10397,7 @@ var SliderTrack = React38__namespace.memo(function SliderTrack2({
10108
10397
  }
10109
10398
  );
10110
10399
  });
10111
- var SliderComponent = React38__namespace.forwardRef(
10400
+ var SliderComponent = React39__namespace.forwardRef(
10112
10401
  ({
10113
10402
  value: controlledValue,
10114
10403
  defaultValue,
@@ -10137,7 +10426,7 @@ var SliderComponent = React38__namespace.forwardRef(
10137
10426
  const isHorizontal = orientation === "horizontal";
10138
10427
  const midpoint = min + (max - min) / 2;
10139
10428
  const initialValue = defaultValue != null ? defaultValue : midpoint;
10140
- const [internalValue, setInternalValue] = React38__namespace.useState(initialValue);
10429
+ const [internalValue, setInternalValue] = React39__namespace.useState(initialValue);
10141
10430
  const resolvedValue = controlledValue !== void 0 ? controlledValue : internalValue;
10142
10431
  const { coerce, snap, toPercent, ticks } = useSliderMath({
10143
10432
  min,
@@ -10146,8 +10435,8 @@ var SliderComponent = React38__namespace.forwardRef(
10146
10435
  });
10147
10436
  const safeValue = snap(coerce(resolvedValue));
10148
10437
  const percent = toPercent(safeValue);
10149
- const trackRef = React38__namespace.useRef(null);
10150
- const handleValueChange = React38__namespace.useCallback(
10438
+ const trackRef = React39__namespace.useRef(null);
10439
+ const handleValueChange = React39__namespace.useCallback(
10151
10440
  (newValue) => {
10152
10441
  const clamped = snap(coerce(newValue));
10153
10442
  if (controlledValue === void 0) {
@@ -10157,13 +10446,13 @@ var SliderComponent = React38__namespace.forwardRef(
10157
10446
  },
10158
10447
  [coerce, controlledValue, onValueChange, snap]
10159
10448
  );
10160
- const handleValueChangeEnd = React38__namespace.useCallback(
10449
+ const handleValueChangeEnd = React39__namespace.useCallback(
10161
10450
  (newValue) => {
10162
10451
  onValueChangeEnd == null ? void 0 : onValueChangeEnd(snap(coerce(newValue)));
10163
10452
  },
10164
10453
  [coerce, onValueChangeEnd, snap]
10165
10454
  );
10166
- const handleTrackPointerDown = React38__namespace.useCallback(
10455
+ const handleTrackPointerDown = React39__namespace.useCallback(
10167
10456
  (e) => {
10168
10457
  if (disabled) return;
10169
10458
  const trackEl = trackRef.current;
@@ -10198,7 +10487,7 @@ var SliderComponent = React38__namespace.forwardRef(
10198
10487
  trackSize
10199
10488
  ]
10200
10489
  );
10201
- const id = React38__namespace.useId();
10490
+ const id = React39__namespace.useId();
10202
10491
  const thumbId = `slider-thumb-${id}`;
10203
10492
  const supportsInsetIcon = !isCentered && SliderTokens.trackSizes[trackSize] >= 40;
10204
10493
  const hasAnyInsetIcon = !!(insetIcon || insetIconTrailing);
@@ -10270,7 +10559,7 @@ var SliderComponent = React38__namespace.forwardRef(
10270
10559
  }
10271
10560
  );
10272
10561
  SliderComponent.displayName = "Slider";
10273
- var Slider = React38__namespace.memo(SliderComponent);
10562
+ var Slider = React39__namespace.memo(SliderComponent);
10274
10563
  var DURATION_MAP = {
10275
10564
  short: 4e3,
10276
10565
  long: 7e3
@@ -10316,9 +10605,9 @@ function toSnackbarData(item) {
10316
10605
  return { id: generateId(), visuals: item.visuals, resolve: item.resolve };
10317
10606
  }
10318
10607
  function useSnackbarState() {
10319
- const [current, setCurrent] = React38__namespace.useState(null);
10320
- const queueRef = React38__namespace.useRef([]);
10321
- const showSnackbar = React38__namespace.useCallback(
10608
+ const [current, setCurrent] = React39__namespace.useState(null);
10609
+ const queueRef = React39__namespace.useRef([]);
10610
+ const showSnackbar = React39__namespace.useCallback(
10322
10611
  (visuals) => {
10323
10612
  return new Promise((resolve) => {
10324
10613
  const item = { visuals, resolve };
@@ -10331,14 +10620,14 @@ function useSnackbarState() {
10331
10620
  },
10332
10621
  []
10333
10622
  );
10334
- const _dismiss = React38__namespace.useCallback((result) => {
10623
+ const _dismiss = React39__namespace.useCallback((result) => {
10335
10624
  setCurrent((prev) => {
10336
10625
  if (prev) prev.resolve(result);
10337
10626
  const next = queueRef.current.shift();
10338
10627
  return next ? toSnackbarData(next) : null;
10339
10628
  });
10340
10629
  }, []);
10341
- React38__namespace.useEffect(() => {
10630
+ React39__namespace.useEffect(() => {
10342
10631
  return () => {
10343
10632
  for (const item of queueRef.current) {
10344
10633
  item.resolve(RESULT.DISMISSED);
@@ -10348,7 +10637,7 @@ function useSnackbarState() {
10348
10637
  }, []);
10349
10638
  return { current, showSnackbar, _dismiss };
10350
10639
  }
10351
- var Snackbar = React38__namespace.memo(function Snackbar2({
10640
+ var Snackbar = React39__namespace.memo(function Snackbar2({
10352
10641
  data,
10353
10642
  className
10354
10643
  }) {
@@ -10362,15 +10651,15 @@ var Snackbar = React38__namespace.memo(function Snackbar2({
10362
10651
  } = visuals;
10363
10652
  const reducedMotion = react.useReducedMotion();
10364
10653
  const durationMs = resolveDuration(duration);
10365
- React38__namespace.useEffect(() => {
10654
+ React39__namespace.useEffect(() => {
10366
10655
  const timer = setTimeout(() => resolve(RESULT.DISMISSED), durationMs);
10367
10656
  return () => clearTimeout(timer);
10368
10657
  }, [resolve, durationMs]);
10369
- const handleAction = React38__namespace.useCallback(
10658
+ const handleAction = React39__namespace.useCallback(
10370
10659
  () => resolve(RESULT.ACTION),
10371
10660
  [resolve]
10372
10661
  );
10373
- const handleDismiss = React38__namespace.useCallback(
10662
+ const handleDismiss = React39__namespace.useCallback(
10374
10663
  () => resolve(RESULT.DISMISSED),
10375
10664
  [resolve]
10376
10665
  );
@@ -10438,7 +10727,7 @@ var Snackbar = React38__namespace.memo(function Snackbar2({
10438
10727
  Snackbar.displayName = "Snackbar";
10439
10728
  function SnackbarHost({ state, className }) {
10440
10729
  const { current, _dismiss } = state;
10441
- const wrappedData = React38__namespace.useMemo(() => {
10730
+ const wrappedData = React39__namespace.useMemo(() => {
10442
10731
  if (!current) return null;
10443
10732
  return __spreadProps(__spreadValues({}, current), { resolve: _dismiss });
10444
10733
  }, [current, _dismiss]);
@@ -10456,12 +10745,12 @@ function SnackbarHost({ state, className }) {
10456
10745
  ) });
10457
10746
  }
10458
10747
  SnackbarHost.displayName = "SnackbarHost";
10459
- var SnackbarContext = React38__namespace.createContext(
10748
+ var SnackbarContext = React39__namespace.createContext(
10460
10749
  null
10461
10750
  );
10462
10751
  function SnackbarProvider({ children }) {
10463
10752
  const state = useSnackbarState();
10464
- const contextValue = React38__namespace.useMemo(
10753
+ const contextValue = React39__namespace.useMemo(
10465
10754
  () => ({ showSnackbar: state.showSnackbar }),
10466
10755
  [state.showSnackbar]
10467
10756
  );
@@ -10472,7 +10761,7 @@ function SnackbarProvider({ children }) {
10472
10761
  }
10473
10762
  SnackbarProvider.displayName = "SnackbarProvider";
10474
10763
  function useSnackbar() {
10475
- const ctx = React38__namespace.useContext(SnackbarContext);
10764
+ const ctx = React39__namespace.useContext(SnackbarContext);
10476
10765
  if (!ctx) {
10477
10766
  throw new Error("useSnackbar must be used within a <SnackbarProvider>.");
10478
10767
  }
@@ -10576,7 +10865,7 @@ function isIconVisible(thumbContent, icons, showOnlySelectedIcon, checked) {
10576
10865
  if (icons) return true;
10577
10866
  return showOnlySelectedIcon && checked;
10578
10867
  }
10579
- var SwitchVisual = React38__namespace.memo(function SwitchVisual2({
10868
+ var SwitchVisual = React39__namespace.memo(function SwitchVisual2({
10580
10869
  checked,
10581
10870
  disabled,
10582
10871
  isPressed,
@@ -10696,7 +10985,7 @@ var SwitchVisual = React38__namespace.memo(function SwitchVisual2({
10696
10985
  }
10697
10986
  );
10698
10987
  });
10699
- var SwitchComponent = React38__namespace.forwardRef(
10988
+ var SwitchComponent = React39__namespace.forwardRef(
10700
10989
  ({
10701
10990
  checked,
10702
10991
  onCheckedChange,
@@ -10714,16 +11003,16 @@ var SwitchComponent = React38__namespace.forwardRef(
10714
11003
  }, ref) => {
10715
11004
  var _a;
10716
11005
  const prefersReduced = (_a = react.useReducedMotion()) != null ? _a : false;
10717
- const [isPressed, setIsPressed] = React38__namespace.useState(false);
10718
- const [isHovered, setIsHovered] = React38__namespace.useState(false);
10719
- const [isFocused, setIsFocused] = React38__namespace.useState(false);
10720
- const [ripples, setRipples] = React38__namespace.useState([]);
10721
- const generatedId = React38__namespace.useId();
11006
+ const [isPressed, setIsPressed] = React39__namespace.useState(false);
11007
+ const [isHovered, setIsHovered] = React39__namespace.useState(false);
11008
+ const [isFocused, setIsFocused] = React39__namespace.useState(false);
11009
+ const [ripples, setRipples] = React39__namespace.useState([]);
11010
+ const generatedId = React39__namespace.useId();
10722
11011
  const switchId = label ? `switch-${generatedId}` : void 0;
10723
- const handleClick = React38__namespace.useCallback(() => {
11012
+ const handleClick = React39__namespace.useCallback(() => {
10724
11013
  if (!disabled) onCheckedChange(!checked);
10725
11014
  }, [disabled, checked, onCheckedChange]);
10726
- const handleKeyDown = React38__namespace.useCallback(
11015
+ const handleKeyDown = React39__namespace.useCallback(
10727
11016
  (e) => {
10728
11017
  if (disabled) return;
10729
11018
  if (e.key === " " || e.key === "Enter") {
@@ -10733,7 +11022,7 @@ var SwitchComponent = React38__namespace.forwardRef(
10733
11022
  },
10734
11023
  [disabled, checked, onCheckedChange]
10735
11024
  );
10736
- const handlePointerDown = React38__namespace.useCallback(
11025
+ const handlePointerDown = React39__namespace.useCallback(
10737
11026
  (e) => {
10738
11027
  if (disabled) return;
10739
11028
  setIsPressed(true);
@@ -10748,19 +11037,19 @@ var SwitchComponent = React38__namespace.forwardRef(
10748
11037
  },
10749
11038
  [disabled]
10750
11039
  );
10751
- const handlePointerUp = React38__namespace.useCallback(() => {
11040
+ const handlePointerUp = React39__namespace.useCallback(() => {
10752
11041
  setIsPressed(false);
10753
11042
  }, []);
10754
- const handlePointerEnter = React38__namespace.useCallback(() => {
11043
+ const handlePointerEnter = React39__namespace.useCallback(() => {
10755
11044
  if (!disabled) setIsHovered(true);
10756
11045
  }, [disabled]);
10757
- const handlePointerLeave = React38__namespace.useCallback(() => {
11046
+ const handlePointerLeave = React39__namespace.useCallback(() => {
10758
11047
  setIsHovered(false);
10759
11048
  setIsPressed(false);
10760
11049
  }, []);
10761
- const handleFocus = React38__namespace.useCallback(() => setIsFocused(true), []);
10762
- const handleBlur = React38__namespace.useCallback(() => setIsFocused(false), []);
10763
- const removeRipple = React38__namespace.useCallback(
11050
+ const handleFocus = React39__namespace.useCallback(() => setIsFocused(true), []);
11051
+ const handleBlur = React39__namespace.useCallback(() => setIsFocused(false), []);
11052
+ const removeRipple = React39__namespace.useCallback(
10764
11053
  (id) => setRipples((prev) => prev.filter((r) => r.id !== id)),
10765
11054
  []
10766
11055
  );
@@ -10845,7 +11134,7 @@ var SwitchComponent = React38__namespace.forwardRef(
10845
11134
  }
10846
11135
  );
10847
11136
  SwitchComponent.displayName = "Switch";
10848
- var Switch = React38__namespace.memo(SwitchComponent);
11137
+ var Switch = React39__namespace.memo(SwitchComponent);
10849
11138
  var typographyVariants = classVarianceAuthority.cva("m-0 p-0 text-m3-on-surface", {
10850
11139
  variants: {
10851
11140
  variant: {
@@ -10870,10 +11159,10 @@ var typographyVariants = classVarianceAuthority.cva("m-0 p-0 text-m3-on-surface"
10870
11159
  variant: "body-md"
10871
11160
  }
10872
11161
  });
10873
- var Text = React38__namespace.forwardRef(
11162
+ var Text = React39__namespace.forwardRef(
10874
11163
  (_a, ref) => {
10875
11164
  var _b = _a, { className, variant, as: Component } = _b, props = __objRest(_b, ["className", "variant", "as"]);
10876
- const defaultComponent = React38__namespace.useMemo(() => {
11165
+ const defaultComponent = React39__namespace.useMemo(() => {
10877
11166
  if ((variant == null ? void 0 : variant.startsWith("display")) || (variant == null ? void 0 : variant.startsWith("headline")))
10878
11167
  return "h1";
10879
11168
  if (variant == null ? void 0 : variant.startsWith("title")) return "h2";
@@ -10890,9 +11179,9 @@ var Text = React38__namespace.forwardRef(
10890
11179
  }
10891
11180
  );
10892
11181
  Text.displayName = "Text";
10893
- var TabsContext = React38__namespace.createContext(null);
11182
+ var TabsContext = React39__namespace.createContext(null);
10894
11183
  function useTabsContext() {
10895
- const ctx = React38__namespace.useContext(TabsContext);
11184
+ const ctx = React39__namespace.useContext(TabsContext);
10896
11185
  if (!ctx) {
10897
11186
  throw new Error(
10898
11187
  "[MD3 Tabs] Component must be used within a <Tabs> root. Ensure <TabsList>, <Tab>, and <TabsContent> are descendants of <Tabs>."
@@ -10900,7 +11189,7 @@ function useTabsContext() {
10900
11189
  }
10901
11190
  return ctx;
10902
11191
  }
10903
- var TabsComponent = React38__namespace.forwardRef(
11192
+ var TabsComponent = React39__namespace.forwardRef(
10904
11193
  ({
10905
11194
  value: controlledValue,
10906
11195
  defaultValue = "",
@@ -10909,35 +11198,35 @@ var TabsComponent = React38__namespace.forwardRef(
10909
11198
  children,
10910
11199
  className
10911
11200
  }, ref) => {
10912
- const [internalValue, setInternalValue] = React38__namespace.useState(defaultValue);
11201
+ const [internalValue, setInternalValue] = React39__namespace.useState(defaultValue);
10913
11202
  const isControlled = controlledValue !== void 0;
10914
11203
  const value = isControlled ? controlledValue : internalValue;
10915
- const handleValueChange = React38__namespace.useCallback(
11204
+ const handleValueChange = React39__namespace.useCallback(
10916
11205
  (newValue) => {
10917
11206
  if (!isControlled) setInternalValue(newValue);
10918
11207
  onValueChange == null ? void 0 : onValueChange(newValue);
10919
11208
  },
10920
11209
  [isControlled, onValueChange]
10921
11210
  );
10922
- const [focusedValue, setFocusedValue] = React38__namespace.useState(value);
10923
- React38__namespace.useEffect(() => {
11211
+ const [focusedValue, setFocusedValue] = React39__namespace.useState(value);
11212
+ React39__namespace.useEffect(() => {
10924
11213
  setFocusedValue(value);
10925
11214
  }, [value]);
10926
- const [tabValues, setTabValues] = React38__namespace.useState([]);
10927
- const registerTab = React38__namespace.useCallback((tabValue) => {
11215
+ const [tabValues, setTabValues] = React39__namespace.useState([]);
11216
+ const registerTab = React39__namespace.useCallback((tabValue) => {
10928
11217
  setTabValues((prev) => {
10929
11218
  if (prev.includes(tabValue)) return prev;
10930
11219
  return [...prev, tabValue];
10931
11220
  });
10932
11221
  }, []);
10933
- const unregisterTab = React38__namespace.useCallback((tabValue) => {
11222
+ const unregisterTab = React39__namespace.useCallback((tabValue) => {
10934
11223
  setTabValues((prev) => prev.filter((v) => v !== tabValue));
10935
11224
  }, []);
10936
- const hasAutoSelected = React38__namespace.useRef(false);
10937
- const [disabledValues, setDisabledValues] = React38__namespace.useState(
11225
+ const hasAutoSelected = React39__namespace.useRef(false);
11226
+ const [disabledValues, setDisabledValues] = React39__namespace.useState(
10938
11227
  /* @__PURE__ */ new Set()
10939
11228
  );
10940
- const markTabDisabled = React38__namespace.useCallback(
11229
+ const markTabDisabled = React39__namespace.useCallback(
10941
11230
  (tabValue, disabled) => {
10942
11231
  setDisabledValues((prev) => {
10943
11232
  const next = new Set(prev);
@@ -10951,7 +11240,7 @@ var TabsComponent = React38__namespace.forwardRef(
10951
11240
  },
10952
11241
  []
10953
11242
  );
10954
- React38__namespace.useEffect(() => {
11243
+ React39__namespace.useEffect(() => {
10955
11244
  if (isControlled || hasAutoSelected.current || tabValues.length === 0) {
10956
11245
  return;
10957
11246
  }
@@ -10966,9 +11255,9 @@ var TabsComponent = React38__namespace.forwardRef(
10966
11255
  setFocusedValue(firstEnabled);
10967
11256
  }
10968
11257
  }, [tabValues, disabledValues, isControlled, value]);
10969
- const id = React38__namespace.useId();
11258
+ const id = React39__namespace.useId();
10970
11259
  const layoutGroupId = `tabs-${id}`;
10971
- const contextValue = React38__namespace.useMemo(
11260
+ const contextValue = React39__namespace.useMemo(
10972
11261
  () => ({
10973
11262
  value,
10974
11263
  onValueChange: handleValueChange,
@@ -10999,12 +11288,12 @@ var TabsComponent = React38__namespace.forwardRef(
10999
11288
  }
11000
11289
  );
11001
11290
  TabsComponent.displayName = "Tabs";
11002
- var Tabs = React38__namespace.memo(TabsComponent);
11003
- var TabsListContext = React38__namespace.createContext(
11291
+ var Tabs = React39__namespace.memo(TabsComponent);
11292
+ var TabsListContext = React39__namespace.createContext(
11004
11293
  null
11005
11294
  );
11006
11295
  function useTabsListContext() {
11007
- const ctx = React38__namespace.useContext(TabsListContext);
11296
+ const ctx = React39__namespace.useContext(TabsListContext);
11008
11297
  return ctx != null ? ctx : { variant: "primary", scrollable: false };
11009
11298
  }
11010
11299
 
@@ -11088,7 +11377,7 @@ var TABS_CONTENT_TRANSITION = {
11088
11377
  ease: "easeInOut"
11089
11378
  };
11090
11379
  var INDICATOR_MIN_WIDTH = 24;
11091
- var TabComponent = React38__namespace.forwardRef(
11380
+ var TabComponent = React39__namespace.forwardRef(
11092
11381
  ({
11093
11382
  value,
11094
11383
  icon,
@@ -11118,9 +11407,9 @@ var TabComponent = React38__namespace.forwardRef(
11118
11407
  const isFocused = focusedValue === value;
11119
11408
  const hasIcon = icon != null;
11120
11409
  const isStackedIcon = hasIcon && !inlineIcon;
11121
- const buttonRef = React38__namespace.useRef(null);
11122
- const isFirstMount = React38__namespace.useRef(true);
11123
- const mergedRef = React38__namespace.useCallback(
11410
+ const buttonRef = React39__namespace.useRef(null);
11411
+ const isFirstMount = React39__namespace.useRef(true);
11412
+ const mergedRef = React39__namespace.useCallback(
11124
11413
  (node) => {
11125
11414
  buttonRef.current = node;
11126
11415
  if (typeof ref === "function") ref(node);
@@ -11128,15 +11417,15 @@ var TabComponent = React38__namespace.forwardRef(
11128
11417
  },
11129
11418
  [ref]
11130
11419
  );
11131
- React38__namespace.useEffect(() => {
11420
+ React39__namespace.useEffect(() => {
11132
11421
  registerTab(value);
11133
11422
  return () => unregisterTab(value);
11134
11423
  }, [value, registerTab, unregisterTab]);
11135
- React38__namespace.useEffect(() => {
11424
+ React39__namespace.useEffect(() => {
11136
11425
  markTabDisabled(value, disabled);
11137
11426
  return () => markTabDisabled(value, false);
11138
11427
  }, [value, disabled, markTabDisabled]);
11139
- const handleKeyDown = React38__namespace.useCallback(
11428
+ const handleKeyDown = React39__namespace.useCallback(
11140
11429
  (e) => {
11141
11430
  const isRtl = buttonRef.current ? getComputedStyle(buttonRef.current).direction === "rtl" : false;
11142
11431
  const enabledValues = tabValues.filter((v) => !disabledValues.has(v));
@@ -11190,7 +11479,7 @@ var TabComponent = React38__namespace.forwardRef(
11190
11479
  autoActivate
11191
11480
  ]
11192
11481
  );
11193
- React38__namespace.useEffect(() => {
11482
+ React39__namespace.useEffect(() => {
11194
11483
  if (isFirstMount.current) {
11195
11484
  isFirstMount.current = false;
11196
11485
  return;
@@ -11199,7 +11488,7 @@ var TabComponent = React38__namespace.forwardRef(
11199
11488
  buttonRef.current.focus({ preventScroll: true });
11200
11489
  }
11201
11490
  }, [isFocused]);
11202
- React38__namespace.useEffect(() => {
11491
+ React39__namespace.useEffect(() => {
11203
11492
  if (!isActive || !scrollable || !buttonRef.current) return;
11204
11493
  const btn = buttonRef.current;
11205
11494
  let container = btn.parentElement;
@@ -11336,8 +11625,8 @@ var TabComponent = React38__namespace.forwardRef(
11336
11625
  }
11337
11626
  );
11338
11627
  TabComponent.displayName = "Tab";
11339
- var Tab = React38__namespace.memo(TabComponent);
11340
- var TabsContentComponent = React38__namespace.forwardRef(
11628
+ var Tab = React39__namespace.memo(TabComponent);
11629
+ var TabsContentComponent = React39__namespace.forwardRef(
11341
11630
  ({ value, className, children }, ref) => {
11342
11631
  var _a;
11343
11632
  const { value: selectedValue, layoutGroupId } = useTabsContext();
@@ -11371,8 +11660,8 @@ var TabsContentComponent = React38__namespace.forwardRef(
11371
11660
  }
11372
11661
  );
11373
11662
  TabsContentComponent.displayName = "TabsContent";
11374
- var TabsContent = React38__namespace.memo(TabsContentComponent);
11375
- var TabsListComponent = React38__namespace.forwardRef(
11663
+ var TabsContent = React39__namespace.memo(TabsContentComponent);
11664
+ var TabsListComponent = React39__namespace.forwardRef(
11376
11665
  ({
11377
11666
  variant,
11378
11667
  scrollable = false,
@@ -11383,12 +11672,12 @@ var TabsListComponent = React38__namespace.forwardRef(
11383
11672
  }, ref) => {
11384
11673
  const { layoutGroupId, value, setFocusedValue } = useTabsContext();
11385
11674
  const listLayoutId = `${layoutGroupId}-list`;
11386
- const listContextValue = React38__namespace.useMemo(
11675
+ const listContextValue = React39__namespace.useMemo(
11387
11676
  () => ({ variant, scrollable }),
11388
11677
  [variant, scrollable]
11389
11678
  );
11390
11679
  const bgColor = backgroundColor != null ? backgroundColor : "var(--md-sys-color-surface)";
11391
- const handleBlur = React38__namespace.useCallback(
11680
+ const handleBlur = React39__namespace.useCallback(
11392
11681
  (e) => {
11393
11682
  const listEl = e.currentTarget;
11394
11683
  if (listEl.contains(e.relatedTarget)) return;
@@ -11437,7 +11726,7 @@ var TabsListComponent = React38__namespace.forwardRef(
11437
11726
  }
11438
11727
  );
11439
11728
  TabsListComponent.displayName = "TabsList";
11440
- var TabsList = React38__namespace.memo(TabsListComponent);
11729
+ var TabsList = React39__namespace.memo(TabsListComponent);
11441
11730
 
11442
11731
  // src/ui/text-field/text-field.tokens.ts
11443
11732
  var TF_COLORS = {
@@ -11476,7 +11765,7 @@ var TF_TYPOGRAPHY = {
11476
11765
  var TF_CLASSES = {
11477
11766
  // Prefix / Suffix
11478
11767
  prefixSuffix: "text-base text-[var(--color-m3-on-surface-variant)] select-none shrink-0"};
11479
- var ActiveIndicator = React38__namespace.memo(function ActiveIndicator2({
11768
+ var ActiveIndicator = React39__namespace.memo(function ActiveIndicator2({
11480
11769
  isFocused,
11481
11770
  isError,
11482
11771
  isDisabled,
@@ -11523,7 +11812,7 @@ function getLabelColor(isFloated, isFocused, isError, isDisabled) {
11523
11812
  if (isFloated && isFocused) return TF_COLORS.primary;
11524
11813
  return TF_COLORS.onSurfaceVariant;
11525
11814
  }
11526
- var FloatingLabel = React38__namespace.memo(function FloatingLabel2({
11815
+ var FloatingLabel = React39__namespace.memo(function FloatingLabel2({
11527
11816
  text,
11528
11817
  isFloated,
11529
11818
  isFocused,
@@ -11583,7 +11872,7 @@ var FloatingLabel = React38__namespace.memo(function FloatingLabel2({
11583
11872
  );
11584
11873
  });
11585
11874
  FloatingLabel.displayName = "FloatingLabel";
11586
- var LeadingIcon = React38__namespace.memo(function LeadingIcon2({
11875
+ var LeadingIcon = React39__namespace.memo(function LeadingIcon2({
11587
11876
  children,
11588
11877
  isError,
11589
11878
  isDisabled
@@ -11607,7 +11896,7 @@ function getOutlineColor(isFocused, isError, isHovered, isDisabled) {
11607
11896
  if (isHovered) return TF_COLORS.inputText;
11608
11897
  return TF_COLORS.outline;
11609
11898
  }
11610
- var OutlineContainer = React38__namespace.memo(function OutlineContainer2({
11899
+ var OutlineContainer = React39__namespace.memo(function OutlineContainer2({
11611
11900
  isFloated,
11612
11901
  isFocused,
11613
11902
  isError,
@@ -11705,7 +11994,7 @@ var OutlineContainer = React38__namespace.memo(function OutlineContainer2({
11705
11994
  );
11706
11995
  });
11707
11996
  OutlineContainer.displayName = "OutlineContainer";
11708
- var PrefixSuffix = React38__namespace.memo(function PrefixSuffix2({
11997
+ var PrefixSuffix = React39__namespace.memo(function PrefixSuffix2({
11709
11998
  text,
11710
11999
  type,
11711
12000
  visible,
@@ -11747,7 +12036,7 @@ function AnimatedText({
11747
12036
  motionKey
11748
12037
  );
11749
12038
  }
11750
- var SupportingText = React38__namespace.memo(function SupportingText2({
12039
+ var SupportingText = React39__namespace.memo(function SupportingText2({
11751
12040
  supportingText,
11752
12041
  errorText,
11753
12042
  isError,
@@ -11858,7 +12147,7 @@ function ClearIcon() {
11858
12147
  }
11859
12148
  );
11860
12149
  }
11861
- var TrailingIcon = React38__namespace.memo(function TrailingIcon2({
12150
+ var TrailingIcon = React39__namespace.memo(function TrailingIcon2({
11862
12151
  mode,
11863
12152
  children,
11864
12153
  value,
@@ -11924,7 +12213,7 @@ var TrailingIcon = React38__namespace.memo(function TrailingIcon2({
11924
12213
  });
11925
12214
  TrailingIcon.displayName = "TrailingIcon";
11926
12215
  var LINE_HEIGHT_PX = 24;
11927
- var TextFieldComponent = React38__namespace.forwardRef(
12216
+ var TextFieldComponent = React39__namespace.forwardRef(
11928
12217
  ({
11929
12218
  // Core
11930
12219
  variant = "filled",
@@ -11988,30 +12277,30 @@ var TextFieldComponent = React38__namespace.forwardRef(
11988
12277
  }, ref) => {
11989
12278
  var _a;
11990
12279
  const prefersReduced = (_a = react.useReducedMotion()) != null ? _a : false;
11991
- const generatedId = React38__namespace.useId();
12280
+ const generatedId = React39__namespace.useId();
11992
12281
  const inputId = idProp != null ? idProp : `tf-${generatedId}`;
11993
12282
  const supportingId = `${inputId}-supporting`;
11994
12283
  const isControlled = valueProp !== void 0;
11995
- const [internalValue, setInternalValue] = React38__namespace.useState(defaultValue);
12284
+ const [internalValue, setInternalValue] = React39__namespace.useState(defaultValue);
11996
12285
  const currentValue = isControlled ? valueProp : internalValue;
11997
- const [isFocused, setIsFocused] = React38__namespace.useState(false);
11998
- const [showPassword, setShowPassword] = React38__namespace.useState(false);
12286
+ const [isFocused, setIsFocused] = React39__namespace.useState(false);
12287
+ const [showPassword, setShowPassword] = React39__namespace.useState(false);
11999
12288
  const resolvedInputType = type === "password" && showPassword ? "text" : type;
12000
- const [nativeError, setNativeError] = React38__namespace.useState("");
12001
- const [labelWidth, setLabelWidth] = React38__namespace.useState(0);
12289
+ const [nativeError, setNativeError] = React39__namespace.useState("");
12290
+ const [labelWidth, setLabelWidth] = React39__namespace.useState(0);
12002
12291
  const hasValue = currentValue.length > 0;
12003
12292
  const isFloated = isFocused || hasValue;
12004
12293
  const isError = errorProp || !!nativeError || maxLength !== void 0 && currentValue.length > maxLength;
12005
12294
  const containerHeight = dense ? TF_SIZE.denseHeight : TF_SIZE.height;
12006
12295
  const showAsterisk = required && !noAsterisk;
12007
- const inputRef = React38__namespace.useRef(null);
12008
- const labelSpanRef = React38__namespace.useRef(null);
12009
- React38__namespace.useLayoutEffect(() => {
12296
+ const inputRef = React39__namespace.useRef(null);
12297
+ const labelSpanRef = React39__namespace.useRef(null);
12298
+ React39__namespace.useLayoutEffect(() => {
12010
12299
  if (labelSpanRef.current) {
12011
12300
  setLabelWidth(labelSpanRef.current.offsetWidth);
12012
12301
  }
12013
12302
  }, []);
12014
- React38__namespace.useLayoutEffect(() => {
12303
+ React39__namespace.useLayoutEffect(() => {
12015
12304
  if (type !== "textarea" || !inputRef.current) return;
12016
12305
  const textarea = inputRef.current;
12017
12306
  if (autoResize) {
@@ -12023,7 +12312,7 @@ var TextFieldComponent = React38__namespace.forwardRef(
12023
12312
  }
12024
12313
  textarea.style.overflowY = "hidden";
12025
12314
  }, [type, autoResize, maxRows, currentValue]);
12026
- const handleValueChange = React38__namespace.useCallback(
12315
+ const handleValueChange = React39__namespace.useCallback(
12027
12316
  (newValue) => {
12028
12317
  var _a2, _b;
12029
12318
  if (!isControlled) setInternalValue(newValue);
@@ -12032,7 +12321,7 @@ var TextFieldComponent = React38__namespace.forwardRef(
12032
12321
  },
12033
12322
  [isControlled]
12034
12323
  );
12035
- const handleChange = React38__namespace.useCallback(
12324
+ const handleChange = React39__namespace.useCallback(
12036
12325
  (e) => {
12037
12326
  const newVal = e.target.value;
12038
12327
  handleValueChange(newVal);
@@ -12040,14 +12329,14 @@ var TextFieldComponent = React38__namespace.forwardRef(
12040
12329
  },
12041
12330
  [handleValueChange, onChange]
12042
12331
  );
12043
- const handleFocus = React38__namespace.useCallback(
12332
+ const handleFocus = React39__namespace.useCallback(
12044
12333
  (e) => {
12045
12334
  setIsFocused(true);
12046
12335
  onFocus == null ? void 0 : onFocus(e);
12047
12336
  },
12048
12337
  [onFocus]
12049
12338
  );
12050
- const handleBlur = React38__namespace.useCallback(
12339
+ const handleBlur = React39__namespace.useCallback(
12051
12340
  (e) => {
12052
12341
  setIsFocused(false);
12053
12342
  const el = inputRef.current;
@@ -12060,7 +12349,7 @@ var TextFieldComponent = React38__namespace.forwardRef(
12060
12349
  },
12061
12350
  [onBlur]
12062
12351
  );
12063
- const handleClear = React38__namespace.useCallback(() => {
12352
+ const handleClear = React39__namespace.useCallback(() => {
12064
12353
  var _a2;
12065
12354
  handleValueChange("");
12066
12355
  onChange == null ? void 0 : onChange("", {
@@ -12068,12 +12357,12 @@ var TextFieldComponent = React38__namespace.forwardRef(
12068
12357
  });
12069
12358
  (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
12070
12359
  }, [handleValueChange, onChange]);
12071
- const handlePasswordToggle = React38__namespace.useCallback(() => {
12360
+ const handlePasswordToggle = React39__namespace.useCallback(() => {
12072
12361
  var _a2;
12073
12362
  setShowPassword((prev) => !prev);
12074
12363
  (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
12075
12364
  }, []);
12076
- React38__namespace.useImperativeHandle(
12365
+ React39__namespace.useImperativeHandle(
12077
12366
  ref,
12078
12367
  () => ({
12079
12368
  focus: () => {
@@ -12318,7 +12607,7 @@ var TextFieldComponent = React38__namespace.forwardRef(
12318
12607
  }
12319
12608
  );
12320
12609
  TextFieldComponent.displayName = "TextField";
12321
- var TextField = React38__namespace.memo(TextFieldComponent);
12610
+ var TextField = React39__namespace.memo(TextFieldComponent);
12322
12611
 
12323
12612
  // src/ui/typography/typography-key-tokens.ts
12324
12613
  var TypographyKeyTokens = /* @__PURE__ */ ((TypographyKeyTokens2) => {
@@ -13033,9 +13322,9 @@ var TOKEN_TO_PROP = {
13033
13322
  };
13034
13323
  var defaultTokens = new TypographyTokens();
13035
13324
  var defaultTypography = new Typography();
13036
- var TypographyContext = React38.createContext(defaultTypography);
13325
+ var TypographyContext = React39.createContext(defaultTypography);
13037
13326
  function useTypography() {
13038
- return React38.useContext(TypographyContext);
13327
+ return React39.useContext(TypographyContext);
13039
13328
  }
13040
13329
  function TypographyProvider({
13041
13330
  children,
@@ -13043,7 +13332,7 @@ function TypographyProvider({
13043
13332
  fontFamily,
13044
13333
  fontVariationAxes
13045
13334
  }) {
13046
- const value = React38.useMemo(() => {
13335
+ const value = React39.useMemo(() => {
13047
13336
  if (typography) return typography;
13048
13337
  if (fontFamily || fontVariationAxes) {
13049
13338
  return new Typography(
@@ -13054,7 +13343,7 @@ function TypographyProvider({
13054
13343
  }, [typography, fontFamily, fontVariationAxes]);
13055
13344
  return /* @__PURE__ */ jsxRuntime.jsx(TypographyContext.Provider, { value, children });
13056
13345
  }
13057
- var ThemeContext = React38.createContext(void 0);
13346
+ var ThemeContext = React39.createContext(void 0);
13058
13347
  var STORAGE_KEY_COLOR = "md3-source-color";
13059
13348
  var STORAGE_KEY_MODE = "md3-theme-mode";
13060
13349
  var defaultTokens2 = new TypographyTokens();
@@ -13069,10 +13358,10 @@ function MD3ThemeProvider({
13069
13358
  fontVariationAxes,
13070
13359
  enableSnackbar = false
13071
13360
  }) {
13072
- const [sourceColor, setSourceColor] = React38.useState(initialSourceColor);
13073
- const [mode, setMode] = React38.useState(defaultMode);
13074
- const [isHydrated, setIsHydrated] = React38.useState(!persistToLocalStorage);
13075
- React38.useEffect(() => {
13361
+ const [sourceColor, setSourceColor] = React39.useState(initialSourceColor);
13362
+ const [mode, setMode] = React39.useState(defaultMode);
13363
+ const [isHydrated, setIsHydrated] = React39.useState(!persistToLocalStorage);
13364
+ React39.useEffect(() => {
13076
13365
  if (!persistToLocalStorage) return;
13077
13366
  const savedColor = localStorage.getItem(STORAGE_KEY_COLOR);
13078
13367
  const savedMode = localStorage.getItem(
@@ -13083,7 +13372,7 @@ function MD3ThemeProvider({
13083
13372
  setMode(savedMode);
13084
13373
  setIsHydrated(true);
13085
13374
  }, [persistToLocalStorage]);
13086
- React38.useEffect(() => {
13375
+ React39.useEffect(() => {
13087
13376
  if (!isHydrated) return;
13088
13377
  applyTheme(sourceColor, mode);
13089
13378
  if (persistToLocalStorage) {
@@ -13091,7 +13380,7 @@ function MD3ThemeProvider({
13091
13380
  localStorage.setItem(STORAGE_KEY_MODE, mode);
13092
13381
  }
13093
13382
  }, [sourceColor, mode, persistToLocalStorage, isHydrated]);
13094
- React38.useEffect(() => {
13383
+ React39.useEffect(() => {
13095
13384
  if (mode !== "system" || typeof window === "undefined") return;
13096
13385
  const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
13097
13386
  const handleChange = () => applyTheme(sourceColor, "system");
@@ -13099,11 +13388,11 @@ function MD3ThemeProvider({
13099
13388
  return () => mediaQuery.removeEventListener("change", handleChange);
13100
13389
  }, [mode, sourceColor]);
13101
13390
  const effectiveMode = resolveMode(mode);
13102
- const themeValue = React38.useMemo(
13391
+ const themeValue = React39.useMemo(
13103
13392
  () => ({ sourceColor, setSourceColor, mode, setMode, effectiveMode }),
13104
13393
  [sourceColor, mode, effectiveMode]
13105
13394
  );
13106
- const typographyValue = React38.useMemo(() => {
13395
+ const typographyValue = React39.useMemo(() => {
13107
13396
  if (typographyProp) return typographyProp;
13108
13397
  if (fontFamily != null ? fontFamily : fontVariationAxes) {
13109
13398
  return new Typography(
@@ -13116,7 +13405,7 @@ function MD3ThemeProvider({
13116
13405
  }
13117
13406
  function SnackbarMountedProvider({ children }) {
13118
13407
  const state = useSnackbarState();
13119
- const contextValue = React38.useMemo(
13408
+ const contextValue = React39.useMemo(
13120
13409
  () => ({ showSnackbar: state.showSnackbar }),
13121
13410
  [state.showSnackbar]
13122
13411
  );
@@ -13126,7 +13415,7 @@ function SnackbarMountedProvider({ children }) {
13126
13415
  ] });
13127
13416
  }
13128
13417
  function useTheme() {
13129
- const context = React38.useContext(ThemeContext);
13418
+ const context = React39.useContext(ThemeContext);
13130
13419
  if (!context) {
13131
13420
  throw new Error("useTheme must be used within <MD3ThemeProvider>.");
13132
13421
  }
@@ -13141,9 +13430,9 @@ function TableOfContents({
13141
13430
  className,
13142
13431
  scrollAreaProps
13143
13432
  }) {
13144
- const [activeId, setActiveId] = React38.useState("");
13145
- const itemIds = React38.useMemo(() => items.map((i) => i.id), [items]);
13146
- React38.useEffect(() => {
13433
+ const [activeId, setActiveId] = React39.useState("");
13434
+ const itemIds = React39.useMemo(() => items.map((i) => i.id), [items]);
13435
+ React39.useEffect(() => {
13147
13436
  if (typeof IntersectionObserver === "undefined") return;
13148
13437
  const observer = new IntersectionObserver(
13149
13438
  (entries) => {
@@ -13160,7 +13449,7 @@ function TableOfContents({
13160
13449
  }
13161
13450
  return () => observer.disconnect();
13162
13451
  }, [itemIds]);
13163
- const handleClick = React38.useCallback(
13452
+ const handleClick = React39.useCallback(
13164
13453
  (e, id) => {
13165
13454
  var _a;
13166
13455
  e.preventDefault();
@@ -13296,7 +13585,7 @@ function TooltipCaretShape({
13296
13585
  }
13297
13586
  );
13298
13587
  }
13299
- var PlainTooltip = React38.forwardRef(
13588
+ var PlainTooltip = React39.forwardRef(
13300
13589
  (_a, ref) => {
13301
13590
  var _b = _a, {
13302
13591
  children,
@@ -13353,7 +13642,7 @@ var PlainTooltip = React38.forwardRef(
13353
13642
  }
13354
13643
  );
13355
13644
  PlainTooltip.displayName = "PlainTooltip";
13356
- var RichTooltip = React38.forwardRef(
13645
+ var RichTooltip = React39.forwardRef(
13357
13646
  (_a, ref) => {
13358
13647
  var _b = _a, {
13359
13648
  children,
@@ -13437,7 +13726,7 @@ var RichTooltip = React38.forwardRef(
13437
13726
  );
13438
13727
  RichTooltip.displayName = "RichTooltip";
13439
13728
  var VIEWPORT_PADDING = 8;
13440
- var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React38.useLayoutEffect : React38.useEffect;
13729
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React39.useLayoutEffect : React39.useEffect;
13441
13730
  function resolveAutoPlacement(spaceTop, spaceBottom, spaceLeft, spaceRight, tooltipWidth, tooltipHeight, spacing) {
13442
13731
  if (spaceTop >= tooltipHeight + spacing) return "top";
13443
13732
  if (spaceBottom >= tooltipHeight + spacing) return "bottom";
@@ -13497,7 +13786,7 @@ function clampToViewport(side, top, left, tooltipWidth, tooltipHeight) {
13497
13786
  return { top, left };
13498
13787
  }
13499
13788
  function useTooltipPosition(anchorRef, tooltipRef, placement, spacing, isVisible) {
13500
- const [position, setPosition] = React38.useState({
13789
+ const [position, setPosition] = React39.useState({
13501
13790
  top: -9999,
13502
13791
  left: -9999,
13503
13792
  actualSide: placement === "auto" ? "top" : placement
@@ -13572,24 +13861,24 @@ function useTooltipState(config) {
13572
13861
  isPersistent = false,
13573
13862
  duration = 1500
13574
13863
  } = config != null ? config : {};
13575
- const [isVisible, setIsVisible] = React38.useState(initialVisible);
13576
- const dismiss = React38.useCallback(() => {
13864
+ const [isVisible, setIsVisible] = React39.useState(initialVisible);
13865
+ const dismiss = React39.useCallback(() => {
13577
13866
  setIsVisible(false);
13578
13867
  activeTooltipDismissals.delete(dismiss);
13579
13868
  }, []);
13580
- const show = React38.useCallback(() => {
13869
+ const show = React39.useCallback(() => {
13581
13870
  for (const otherDismiss of activeTooltipDismissals) {
13582
13871
  if (otherDismiss !== dismiss) otherDismiss();
13583
13872
  }
13584
13873
  setIsVisible(true);
13585
13874
  activeTooltipDismissals.add(dismiss);
13586
13875
  }, [dismiss]);
13587
- React38.useEffect(() => {
13876
+ React39.useEffect(() => {
13588
13877
  if (!isVisible || isPersistent) return;
13589
13878
  const timeoutId = setTimeout(dismiss, duration);
13590
13879
  return () => clearTimeout(timeoutId);
13591
13880
  }, [isVisible, isPersistent, duration, dismiss]);
13592
- React38.useEffect(() => {
13881
+ React39.useEffect(() => {
13593
13882
  return () => {
13594
13883
  activeTooltipDismissals.delete(dismiss);
13595
13884
  };
@@ -13646,20 +13935,20 @@ function TooltipBox({
13646
13935
  }) {
13647
13936
  const internalState = useTooltipState();
13648
13937
  const state = controlledState != null ? controlledState : internalState;
13649
- const anchorRef = React38.useRef(null);
13650
- const tooltipRef = React38.useRef(null);
13651
- const hoverTimeoutRef = React38.useRef(null);
13652
- const hideTimeoutRef = React38.useRef(null);
13653
- const pressTimeoutRef = React38.useRef(null);
13938
+ const anchorRef = React39.useRef(null);
13939
+ const tooltipRef = React39.useRef(null);
13940
+ const hoverTimeoutRef = React39.useRef(null);
13941
+ const hideTimeoutRef = React39.useRef(null);
13942
+ const pressTimeoutRef = React39.useRef(null);
13654
13943
  const triggers = Array.isArray(trigger) ? trigger : [trigger];
13655
- const [mounted, setMounted] = React38.useState(false);
13656
- const [hasHoverSupport, setHasHoverSupport] = React38.useState(true);
13657
- const [prefersReducedMotion, setPrefersReducedMotion] = React38.useState(false);
13658
- React38.useEffect(() => {
13944
+ const [mounted, setMounted] = React39.useState(false);
13945
+ const [hasHoverSupport, setHasHoverSupport] = React39.useState(true);
13946
+ const [prefersReducedMotion, setPrefersReducedMotion] = React39.useState(false);
13947
+ React39.useEffect(() => {
13659
13948
  setMounted(true);
13660
13949
  setHasHoverSupport(!window.matchMedia("(hover: none)").matches);
13661
13950
  }, []);
13662
- React38.useEffect(() => {
13951
+ React39.useEffect(() => {
13663
13952
  const mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
13664
13953
  setPrefersReducedMotion(mediaQuery.matches);
13665
13954
  const onChange = (e) => setPrefersReducedMotion(e.matches);
@@ -13731,7 +14020,7 @@ function TooltipBox({
13731
14020
  hideDelay
13732
14021
  );
13733
14022
  };
13734
- React38.useEffect(() => {
14023
+ React39.useEffect(() => {
13735
14024
  if (!state.isVisible) return;
13736
14025
  const onKeyDown = (e) => {
13737
14026
  var _a;
@@ -13743,8 +14032,8 @@ function TooltipBox({
13743
14032
  document.addEventListener("keydown", onKeyDown);
13744
14033
  return () => document.removeEventListener("keydown", onKeyDown);
13745
14034
  }, [state.isVisible, state]);
13746
- const tooltipId = React38.useId();
13747
- const tooltipWithProps = React38.cloneElement(
14035
+ const tooltipId = React39.useId();
14036
+ const tooltipWithProps = React39.cloneElement(
13748
14037
  tooltip,
13749
14038
  {
13750
14039
  "data-side": position.actualSide,
@@ -13772,7 +14061,7 @@ function TooltipBox({
13772
14061
  onKeyDown: handleKeyDown,
13773
14062
  "aria-label": ariaLabel,
13774
14063
  "aria-describedby": state.isVisible ? tooltipId : void 0,
13775
- children: React38__namespace.isValidElement(children) ? children : /* @__PURE__ */ jsxRuntime.jsx("span", { children })
14064
+ children: React39__namespace.isValidElement(children) ? children : /* @__PURE__ */ jsxRuntime.jsx("span", { children })
13776
14065
  }
13777
14066
  ),
13778
14067
  mounted && reactDom.createPortal(
@@ -13881,6 +14170,8 @@ exports.MenuGroup = MenuGroup;
13881
14170
  exports.MenuItem = MenuItem;
13882
14171
  exports.MenuProvider = MenuProvider;
13883
14172
  exports.MenuTrigger = MenuTrigger;
14173
+ exports.NavigationBar = NavigationBar;
14174
+ exports.NavigationBarItem = NavigationBarItem;
13884
14175
  exports.NavigationRail = NavigationRail;
13885
14176
  exports.NavigationRailItem = NavigationRailItem;
13886
14177
  exports.PlainTooltip = PlainTooltip;