@bug-on/m3-expressive 1.3.2 → 1.3.3
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/CHANGELOG.md +6 -0
- package/README.md +25 -0
- package/dist/core.js +9 -7
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +9 -7
- package/dist/core.mjs.map +1 -1
- package/dist/feedback.d.mts +2 -1
- package/dist/feedback.d.ts +2 -1
- package/dist/feedback.js +10 -7
- package/dist/feedback.js.map +1 -1
- package/dist/feedback.mjs +10 -8
- package/dist/feedback.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +189 -72
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +189 -73
- package/dist/index.mjs.map +1 -1
- package/dist/layout.d.mts +16 -5
- package/dist/layout.d.ts +16 -5
- package/dist/layout.js +38 -18
- package/dist/layout.js.map +1 -1
- package/dist/layout.mjs +38 -18
- package/dist/layout.mjs.map +1 -1
- package/dist/navigation.d.mts +24 -8
- package/dist/navigation.d.ts +24 -8
- package/dist/navigation.js +416 -293
- package/dist/navigation.js.map +1 -1
- package/dist/navigation.mjs +408 -286
- package/dist/navigation.mjs.map +1 -1
- package/llms-full.txt +255 -0
- package/llms.txt +102 -0
- package/package.json +10 -5
package/dist/navigation.js
CHANGED
|
@@ -5,7 +5,7 @@ var react = require('motion/react');
|
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
-
var
|
|
8
|
+
var React39 = require('react');
|
|
9
9
|
var RxContextMenu = require('@radix-ui/react-context-menu');
|
|
10
10
|
var RadixScrollArea = require('@radix-ui/react-scroll-area');
|
|
11
11
|
var m3Tokens = require('@bug-on/m3-tokens');
|
|
@@ -32,7 +32,7 @@ function _interopNamespace(e) {
|
|
|
32
32
|
return Object.freeze(n);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
var
|
|
35
|
+
var React39__namespace = /*#__PURE__*/_interopNamespace(React39);
|
|
36
36
|
var RxContextMenu__namespace = /*#__PURE__*/_interopNamespace(RxContextMenu);
|
|
37
37
|
var RadixScrollArea__namespace = /*#__PURE__*/_interopNamespace(RadixScrollArea);
|
|
38
38
|
var DropdownMenu__namespace = /*#__PURE__*/_interopNamespace(DropdownMenu);
|
|
@@ -318,7 +318,7 @@ function AppBarItemButton({ item }) {
|
|
|
318
318
|
}
|
|
319
319
|
);
|
|
320
320
|
}
|
|
321
|
-
var ScrollArea =
|
|
321
|
+
var ScrollArea = React39__namespace.forwardRef(
|
|
322
322
|
(_a, ref) => {
|
|
323
323
|
var _b = _a, {
|
|
324
324
|
className,
|
|
@@ -339,15 +339,15 @@ var ScrollArea = React38__namespace.forwardRef(
|
|
|
339
339
|
"viewportRef",
|
|
340
340
|
"viewportProps"
|
|
341
341
|
]);
|
|
342
|
-
const [isTouchDevice, setIsTouchDevice] =
|
|
343
|
-
|
|
342
|
+
const [isTouchDevice, setIsTouchDevice] = React39__namespace.useState(false);
|
|
343
|
+
React39__namespace.useEffect(() => {
|
|
344
344
|
if (typeof window !== "undefined") {
|
|
345
345
|
setIsTouchDevice(
|
|
346
346
|
"ontouchstart" in window || navigator.maxTouchPoints > 0
|
|
347
347
|
);
|
|
348
348
|
}
|
|
349
349
|
}, []);
|
|
350
|
-
const resolvedType =
|
|
350
|
+
const resolvedType = React39__namespace.useMemo(() => {
|
|
351
351
|
if (type === "hover" && isTouchDevice) {
|
|
352
352
|
return "scroll";
|
|
353
353
|
}
|
|
@@ -398,7 +398,7 @@ var ScrollArea = React38__namespace.forwardRef(
|
|
|
398
398
|
}
|
|
399
399
|
);
|
|
400
400
|
ScrollArea.displayName = "ScrollArea";
|
|
401
|
-
var ScrollAreaScrollbar =
|
|
401
|
+
var ScrollAreaScrollbar = React39__namespace.forwardRef((_a, ref) => {
|
|
402
402
|
var _b = _a, { className, orientation = "vertical" } = _b, props = __objRest(_b, ["className", "orientation"]);
|
|
403
403
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
404
404
|
RadixScrollArea__namespace.Scrollbar,
|
|
@@ -428,7 +428,7 @@ var ScrollAreaScrollbar = React38__namespace.forwardRef((_a, ref) => {
|
|
|
428
428
|
);
|
|
429
429
|
});
|
|
430
430
|
ScrollAreaScrollbar.displayName = RadixScrollArea__namespace.Scrollbar.displayName;
|
|
431
|
-
var ScrollAreaCorner =
|
|
431
|
+
var ScrollAreaCorner = React39__namespace.forwardRef((_a, ref) => {
|
|
432
432
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
433
433
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
434
434
|
RadixScrollArea__namespace.Corner,
|
|
@@ -497,7 +497,7 @@ var SUBMENU_CONTAINER_VARIANTS = {
|
|
|
497
497
|
transition: FAST_EFFECTS_TRANSITION
|
|
498
498
|
}
|
|
499
499
|
};
|
|
500
|
-
var MenuContext =
|
|
500
|
+
var MenuContext = React39__namespace.createContext({
|
|
501
501
|
variant: "baseline",
|
|
502
502
|
colorVariant: "standard",
|
|
503
503
|
density: 0,
|
|
@@ -515,7 +515,7 @@ function MenuProvider({
|
|
|
515
515
|
onOpenChange,
|
|
516
516
|
children
|
|
517
517
|
}) {
|
|
518
|
-
const value =
|
|
518
|
+
const value = React39__namespace.useMemo(
|
|
519
519
|
() => ({
|
|
520
520
|
variant,
|
|
521
521
|
colorVariant,
|
|
@@ -529,8 +529,8 @@ function MenuProvider({
|
|
|
529
529
|
return /* @__PURE__ */ jsxRuntime.jsx(MenuContext.Provider, { value, children });
|
|
530
530
|
}
|
|
531
531
|
function useMenuContext() {
|
|
532
|
-
const ctx =
|
|
533
|
-
return
|
|
532
|
+
const ctx = React39__namespace.useContext(MenuContext);
|
|
533
|
+
return React39__namespace.useMemo(
|
|
534
534
|
() => Object.assign(ctx, {
|
|
535
535
|
get isStatic() {
|
|
536
536
|
return ctx.menuPrimitive === "static";
|
|
@@ -650,10 +650,10 @@ var VIBRANT_COLORS = {
|
|
|
650
650
|
var DIVIDER_PADDING = "mx-3 my-0.5";
|
|
651
651
|
var DIVIDER_COLOR = "bg-m3-outline-variant";
|
|
652
652
|
function flattenChildren(nodes) {
|
|
653
|
-
return
|
|
653
|
+
return React39__namespace.Children.toArray(nodes).reduce(
|
|
654
654
|
(acc, child) => {
|
|
655
|
-
if (!
|
|
656
|
-
if (child.type ===
|
|
655
|
+
if (!React39__namespace.isValidElement(child)) return acc;
|
|
656
|
+
if (child.type === React39__namespace.Fragment) {
|
|
657
657
|
return acc.concat(
|
|
658
658
|
flattenChildren(
|
|
659
659
|
child.props.children
|
|
@@ -671,7 +671,7 @@ function ContextMenu({
|
|
|
671
671
|
variant = "baseline",
|
|
672
672
|
colorVariant = "standard"
|
|
673
673
|
}) {
|
|
674
|
-
const [open, setOpen] =
|
|
674
|
+
const [open, setOpen] = React39__namespace.useState(false);
|
|
675
675
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
676
676
|
MenuProvider,
|
|
677
677
|
{
|
|
@@ -685,12 +685,12 @@ function ContextMenu({
|
|
|
685
685
|
);
|
|
686
686
|
}
|
|
687
687
|
ContextMenu.displayName = "ContextMenu";
|
|
688
|
-
var ContextMenuTrigger =
|
|
688
|
+
var ContextMenuTrigger = React39__namespace.forwardRef((_a, ref) => {
|
|
689
689
|
var _b = _a, { children, asChild = true } = _b, props = __objRest(_b, ["children", "asChild"]);
|
|
690
690
|
return /* @__PURE__ */ jsxRuntime.jsx(RxContextMenu__namespace.Trigger, __spreadProps(__spreadValues({ ref, asChild }, props), { children }));
|
|
691
691
|
});
|
|
692
692
|
ContextMenuTrigger.displayName = "ContextMenuTrigger";
|
|
693
|
-
var ContextMenuContent =
|
|
693
|
+
var ContextMenuContent = React39__namespace.forwardRef(
|
|
694
694
|
(_a, ref) => {
|
|
695
695
|
var _b = _a, {
|
|
696
696
|
children,
|
|
@@ -719,7 +719,7 @@ var ContextMenuContent = React38__namespace.forwardRef(
|
|
|
719
719
|
const colorVariant = propColorVariant != null ? propColorVariant : contextColorVariant;
|
|
720
720
|
const colors = variant === "baseline" ? BASELINE_COLORS : colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
|
|
721
721
|
const isExpressiveGap = variant === "expressive" && separatorStyle === "gap";
|
|
722
|
-
const setViewportNode =
|
|
722
|
+
const setViewportNode = React39__namespace.useCallback(
|
|
723
723
|
(node) => {
|
|
724
724
|
if (typeof viewportRef === "function") {
|
|
725
725
|
viewportRef(node);
|
|
@@ -730,7 +730,7 @@ var ContextMenuContent = React38__namespace.forwardRef(
|
|
|
730
730
|
},
|
|
731
731
|
[viewportRef, onViewportRef]
|
|
732
732
|
);
|
|
733
|
-
const containerClassName =
|
|
733
|
+
const containerClassName = React39__namespace.useMemo(
|
|
734
734
|
() => variant === "expressive" ? cn(
|
|
735
735
|
"z-50 flex flex-col w-full",
|
|
736
736
|
MENU_MIN_WIDTH,
|
|
@@ -757,12 +757,12 @@ var ContextMenuContent = React38__namespace.forwardRef(
|
|
|
757
757
|
),
|
|
758
758
|
[variant, isExpressiveGap, hasOverflow, className, colors.containerBg]
|
|
759
759
|
);
|
|
760
|
-
const renderedChildren =
|
|
760
|
+
const renderedChildren = React39__namespace.useMemo(() => {
|
|
761
761
|
if (variant !== "expressive") return children;
|
|
762
762
|
const validChildren = flattenChildren(children);
|
|
763
763
|
const groupCount = validChildren.length;
|
|
764
764
|
const enhanced = validChildren.map(
|
|
765
|
-
(child, i) =>
|
|
765
|
+
(child, i) => React39__namespace.cloneElement(
|
|
766
766
|
child,
|
|
767
767
|
{ index: i, count: groupCount, isGapVariant: isExpressiveGap }
|
|
768
768
|
)
|
|
@@ -831,12 +831,12 @@ function Menu(_a) {
|
|
|
831
831
|
]);
|
|
832
832
|
var _a2;
|
|
833
833
|
const resolvedVariant = (_a2 = variant != null ? variant : menuVariant) != null ? _a2 : "baseline";
|
|
834
|
-
const [internalOpen, setInternalOpen] =
|
|
834
|
+
const [internalOpen, setInternalOpen] = React39__namespace.useState(
|
|
835
835
|
() => defaultOpen != null ? defaultOpen : false
|
|
836
836
|
);
|
|
837
837
|
const isControlled = controlledOpen !== void 0;
|
|
838
838
|
const open = isControlled ? controlledOpen : internalOpen;
|
|
839
|
-
const handleOpenChange =
|
|
839
|
+
const handleOpenChange = React39__namespace.useCallback(
|
|
840
840
|
(next) => {
|
|
841
841
|
if (!isControlled) setInternalOpen(next);
|
|
842
842
|
controlledOnOpenChange == null ? void 0 : controlledOnOpenChange(next);
|
|
@@ -864,12 +864,12 @@ function Menu(_a) {
|
|
|
864
864
|
);
|
|
865
865
|
}
|
|
866
866
|
Menu.displayName = "Menu";
|
|
867
|
-
var MenuTrigger =
|
|
867
|
+
var MenuTrigger = React39__namespace.forwardRef((_a, ref) => {
|
|
868
868
|
var _b = _a, { children, asChild = true } = _b, props = __objRest(_b, ["children", "asChild"]);
|
|
869
869
|
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu__namespace.Trigger, __spreadProps(__spreadValues({ ref, asChild }, props), { children }));
|
|
870
870
|
});
|
|
871
871
|
MenuTrigger.displayName = "MenuTrigger";
|
|
872
|
-
var MenuContent =
|
|
872
|
+
var MenuContent = React39__namespace.forwardRef(
|
|
873
873
|
(_a, ref) => {
|
|
874
874
|
var _b = _a, {
|
|
875
875
|
children,
|
|
@@ -906,7 +906,7 @@ var MenuContent = React38__namespace.forwardRef(
|
|
|
906
906
|
const colorVariant = propColorVariant != null ? propColorVariant : contextColorVariant;
|
|
907
907
|
const colors = variant === "baseline" ? BASELINE_COLORS : colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
|
|
908
908
|
const isExpressiveGap = variant === "expressive" && separatorStyle === "gap";
|
|
909
|
-
const setViewportNode =
|
|
909
|
+
const setViewportNode = React39__namespace.useCallback(
|
|
910
910
|
(node) => {
|
|
911
911
|
if (typeof viewportRef === "function") {
|
|
912
912
|
viewportRef(node);
|
|
@@ -917,7 +917,7 @@ var MenuContent = React38__namespace.forwardRef(
|
|
|
917
917
|
},
|
|
918
918
|
[viewportRef, onViewportRef]
|
|
919
919
|
);
|
|
920
|
-
const containerClassName =
|
|
920
|
+
const containerClassName = React39__namespace.useMemo(() => {
|
|
921
921
|
const widthClass = matchTriggerWidth ? "w-[var(--radix-dropdown-menu-trigger-width)]" : cn(MENU_MIN_WIDTH, MENU_MAX_WIDTH);
|
|
922
922
|
return variant === "expressive" ? cn(
|
|
923
923
|
"z-50 flex flex-col",
|
|
@@ -950,7 +950,7 @@ var MenuContent = React38__namespace.forwardRef(
|
|
|
950
950
|
className,
|
|
951
951
|
colors.containerBg
|
|
952
952
|
]);
|
|
953
|
-
const renderedChildren =
|
|
953
|
+
const renderedChildren = React39__namespace.useMemo(() => {
|
|
954
954
|
if (variant !== "expressive") return children;
|
|
955
955
|
const validChildren = flattenChildren(children);
|
|
956
956
|
const groupCount = validChildren.length;
|
|
@@ -959,7 +959,7 @@ var MenuContent = React38__namespace.forwardRef(
|
|
|
959
959
|
if (typeof child.type === "string") return child;
|
|
960
960
|
const defaultItemPosition = groupCount === 1 ? "standalone" : i === 0 ? "leading" : i === groupCount - 1 ? "trailing" : "middle";
|
|
961
961
|
const itemPosition = (_a2 = child.props.itemPosition) != null ? _a2 : defaultItemPosition;
|
|
962
|
-
return
|
|
962
|
+
return React39__namespace.cloneElement(
|
|
963
963
|
child,
|
|
964
964
|
{
|
|
965
965
|
index: i,
|
|
@@ -1025,7 +1025,7 @@ var MenuContent = React38__namespace.forwardRef(
|
|
|
1025
1025
|
}
|
|
1026
1026
|
);
|
|
1027
1027
|
MenuContent.displayName = "MenuContent";
|
|
1028
|
-
var MenuDivider =
|
|
1028
|
+
var MenuDivider = React39__namespace.forwardRef(
|
|
1029
1029
|
(_a, ref) => {
|
|
1030
1030
|
var _b = _a, { className, isGapVariant: _isGapVariant } = _b, props = __objRest(_b, ["className", "isGapVariant"]);
|
|
1031
1031
|
const { menuVariant } = useMenuContext();
|
|
@@ -1056,7 +1056,7 @@ function getGroupPosition(index, count) {
|
|
|
1056
1056
|
function getGroupActiveShape(position) {
|
|
1057
1057
|
return GROUP_SHAPES[`${position}Active`];
|
|
1058
1058
|
}
|
|
1059
|
-
var MenuGroup =
|
|
1059
|
+
var MenuGroup = React39__namespace.forwardRef(
|
|
1060
1060
|
(_a, ref) => {
|
|
1061
1061
|
var _b = _a, {
|
|
1062
1062
|
children,
|
|
@@ -1082,7 +1082,7 @@ var MenuGroup = React38__namespace.forwardRef(
|
|
|
1082
1082
|
const colors = menuVariant === "baseline" ? BASELINE_COLORS : colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
|
|
1083
1083
|
const position = getGroupPosition(index, count);
|
|
1084
1084
|
const currentShape = getGroupActiveShape(position);
|
|
1085
|
-
const enhancedChildren =
|
|
1085
|
+
const enhancedChildren = React39__namespace.useMemo(() => {
|
|
1086
1086
|
const valid = flattenChildren(children);
|
|
1087
1087
|
const itemCount = valid.length;
|
|
1088
1088
|
return valid.map((child, i) => {
|
|
@@ -1090,7 +1090,7 @@ var MenuGroup = React38__namespace.forwardRef(
|
|
|
1090
1090
|
if (typeof child.type === "string") return child;
|
|
1091
1091
|
const defaultItemPosition = itemCount === 1 ? "standalone" : i === 0 ? "leading" : i === itemCount - 1 ? "trailing" : "middle";
|
|
1092
1092
|
const itemPosition2 = (_a2 = child.props.itemPosition) != null ? _a2 : defaultItemPosition;
|
|
1093
|
-
return
|
|
1093
|
+
return React39__namespace.cloneElement(child, {
|
|
1094
1094
|
itemPosition: itemPosition2,
|
|
1095
1095
|
colorVariant
|
|
1096
1096
|
});
|
|
@@ -1153,7 +1153,7 @@ var VARIANT_FONT = {
|
|
|
1153
1153
|
rounded: "'Material Symbols Rounded'",
|
|
1154
1154
|
sharp: "'Material Symbols Sharp'"
|
|
1155
1155
|
};
|
|
1156
|
-
var IconComponent =
|
|
1156
|
+
var IconComponent = React39__namespace.forwardRef(
|
|
1157
1157
|
(_a, ref) => {
|
|
1158
1158
|
var _b = _a, {
|
|
1159
1159
|
name,
|
|
@@ -1219,14 +1219,14 @@ var IconComponent = React38__namespace.forwardRef(
|
|
|
1219
1219
|
}
|
|
1220
1220
|
);
|
|
1221
1221
|
IconComponent.displayName = "Icon";
|
|
1222
|
-
var Icon =
|
|
1222
|
+
var Icon = React39__namespace.memo(IconComponent);
|
|
1223
1223
|
function getItemShapeClass(position, selected, isStatic = false, menuVariant = "expressive") {
|
|
1224
1224
|
if (menuVariant === "baseline") return BASELINE_ITEM_SHAPE;
|
|
1225
1225
|
if (selected) return ITEM_SHAPE_CLASSES.selected;
|
|
1226
1226
|
if (isStatic && position === "standalone") return "rounded-[12px]";
|
|
1227
1227
|
return ITEM_SHAPE_CLASSES[position];
|
|
1228
1228
|
}
|
|
1229
|
-
var MenuItem =
|
|
1229
|
+
var MenuItem = React39__namespace.forwardRef(
|
|
1230
1230
|
(_a, ref) => {
|
|
1231
1231
|
var _b = _a, {
|
|
1232
1232
|
children,
|
|
@@ -1435,31 +1435,31 @@ function SubMenu({
|
|
|
1435
1435
|
}) {
|
|
1436
1436
|
const { colorVariant: contextColorVariant, menuPrimitive } = useMenuContext();
|
|
1437
1437
|
const colorVariant = propColorVariant != null ? propColorVariant : contextColorVariant;
|
|
1438
|
-
const [open, setOpen] =
|
|
1439
|
-
const openTimerRef =
|
|
1440
|
-
const closeTimerRef =
|
|
1438
|
+
const [open, setOpen] = React39__namespace.useState(false);
|
|
1439
|
+
const openTimerRef = React39__namespace.useRef(null);
|
|
1440
|
+
const closeTimerRef = React39__namespace.useRef(
|
|
1441
1441
|
null
|
|
1442
1442
|
);
|
|
1443
|
-
const clearTimers =
|
|
1443
|
+
const clearTimers = React39__namespace.useCallback(() => {
|
|
1444
1444
|
if (openTimerRef.current) clearTimeout(openTimerRef.current);
|
|
1445
1445
|
if (closeTimerRef.current) clearTimeout(closeTimerRef.current);
|
|
1446
1446
|
}, []);
|
|
1447
|
-
const handleTriggerPointerEnter =
|
|
1447
|
+
const handleTriggerPointerEnter = React39__namespace.useCallback(() => {
|
|
1448
1448
|
clearTimers();
|
|
1449
1449
|
openTimerRef.current = setTimeout(() => setOpen(true), hoverOpenDelay);
|
|
1450
1450
|
}, [hoverOpenDelay, clearTimers]);
|
|
1451
|
-
const handleTriggerPointerLeave =
|
|
1451
|
+
const handleTriggerPointerLeave = React39__namespace.useCallback(() => {
|
|
1452
1452
|
clearTimers();
|
|
1453
1453
|
closeTimerRef.current = setTimeout(() => setOpen(false), hoverCloseDelay);
|
|
1454
1454
|
}, [hoverCloseDelay, clearTimers]);
|
|
1455
|
-
const handleContentPointerEnter =
|
|
1455
|
+
const handleContentPointerEnter = React39__namespace.useCallback(() => {
|
|
1456
1456
|
clearTimers();
|
|
1457
1457
|
}, [clearTimers]);
|
|
1458
|
-
const handleContentPointerLeave =
|
|
1458
|
+
const handleContentPointerLeave = React39__namespace.useCallback(() => {
|
|
1459
1459
|
clearTimers();
|
|
1460
1460
|
closeTimerRef.current = setTimeout(() => setOpen(false), hoverCloseDelay);
|
|
1461
1461
|
}, [hoverCloseDelay, clearTimers]);
|
|
1462
|
-
|
|
1462
|
+
React39__namespace.useEffect(() => () => clearTimers(), [clearTimers]);
|
|
1463
1463
|
const Sub3 = menuPrimitive === "context" ? RxContextMenu__namespace.Sub : DropdownMenu__namespace.Sub;
|
|
1464
1464
|
const SubTrigger3 = menuPrimitive === "context" ? RxContextMenu__namespace.SubTrigger : DropdownMenu__namespace.SubTrigger;
|
|
1465
1465
|
const SubContent3 = menuPrimitive === "context" ? RxContextMenu__namespace.SubContent : DropdownMenu__namespace.SubContent;
|
|
@@ -1471,7 +1471,7 @@ function SubMenu({
|
|
|
1471
1471
|
className: "w-full outline-none",
|
|
1472
1472
|
onPointerEnter: handleTriggerPointerEnter,
|
|
1473
1473
|
onPointerLeave: handleTriggerPointerLeave,
|
|
1474
|
-
children:
|
|
1474
|
+
children: React39__namespace.isValidElement(trigger) ? React39__namespace.cloneElement(trigger, {
|
|
1475
1475
|
isSubTrigger: true,
|
|
1476
1476
|
// Auto-add chevron if missing
|
|
1477
1477
|
trailingIcon: trigger.props.trailingIcon || /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "chevron_right", size: 20 })
|
|
@@ -1548,7 +1548,7 @@ function SubMenuContent({
|
|
|
1548
1548
|
);
|
|
1549
1549
|
}
|
|
1550
1550
|
SubMenuContent.displayName = "SubMenuContent";
|
|
1551
|
-
var VerticalMenuDivider =
|
|
1551
|
+
var VerticalMenuDivider = React39__namespace.forwardRef((_a, ref) => {
|
|
1552
1552
|
var _b = _a, { className, index, count, isGapVariant } = _b, props = __objRest(_b, ["className", "index", "count", "isGapVariant"]);
|
|
1553
1553
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1554
1554
|
"hr",
|
|
@@ -1568,7 +1568,7 @@ var VerticalMenuDivider = React38__namespace.forwardRef((_a, ref) => {
|
|
|
1568
1568
|
});
|
|
1569
1569
|
VerticalMenuDivider.displayName = "VerticalMenuDivider";
|
|
1570
1570
|
var VerticalMenuGroup = MenuGroup;
|
|
1571
|
-
var VerticalMenuContent =
|
|
1571
|
+
var VerticalMenuContent = React39__namespace.forwardRef(
|
|
1572
1572
|
(_a, ref) => {
|
|
1573
1573
|
var _b = _a, {
|
|
1574
1574
|
children,
|
|
@@ -1584,7 +1584,7 @@ var VerticalMenuContent = React38__namespace.forwardRef(
|
|
|
1584
1584
|
const { colorVariant: contextColorVariant } = useMenuContext();
|
|
1585
1585
|
const colorVariant = propColorVariant != null ? propColorVariant : contextColorVariant;
|
|
1586
1586
|
const colors = colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
|
|
1587
|
-
const renderedChildren =
|
|
1587
|
+
const renderedChildren = React39__namespace.useMemo(() => {
|
|
1588
1588
|
const valid = flattenChildren(children);
|
|
1589
1589
|
const groupCount = valid.length;
|
|
1590
1590
|
const enhanced = valid.map((child, i) => {
|
|
@@ -1592,7 +1592,7 @@ var VerticalMenuContent = React38__namespace.forwardRef(
|
|
|
1592
1592
|
if (typeof child.type === "string") return child;
|
|
1593
1593
|
const defaultItemPosition = groupCount === 1 ? "standalone" : i === 0 ? "leading" : i === groupCount - 1 ? "trailing" : "middle";
|
|
1594
1594
|
const itemPosition = (_a2 = child.props.itemPosition) != null ? _a2 : defaultItemPosition;
|
|
1595
|
-
return
|
|
1595
|
+
return React39__namespace.cloneElement(
|
|
1596
1596
|
child,
|
|
1597
1597
|
{
|
|
1598
1598
|
index: i,
|
|
@@ -1635,13 +1635,13 @@ var VerticalMenuContent = React38__namespace.forwardRef(
|
|
|
1635
1635
|
}
|
|
1636
1636
|
);
|
|
1637
1637
|
VerticalMenuContent.displayName = "VerticalMenuContent";
|
|
1638
|
-
var VerticalMenu =
|
|
1638
|
+
var VerticalMenu = React39__namespace.forwardRef((_a, ref) => {
|
|
1639
1639
|
var _b = _a, { children, colorVariant = "standard", className } = _b, props = __objRest(_b, ["children", "colorVariant", "className"]);
|
|
1640
|
-
const noop =
|
|
1640
|
+
const noop = React39__namespace.useCallback(() => {
|
|
1641
1641
|
}, []);
|
|
1642
1642
|
const colors = colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
|
|
1643
|
-
const containerRef =
|
|
1644
|
-
const mergedRef =
|
|
1643
|
+
const containerRef = React39__namespace.useRef(null);
|
|
1644
|
+
const mergedRef = React39__namespace.useCallback(
|
|
1645
1645
|
(node) => {
|
|
1646
1646
|
containerRef.current = node;
|
|
1647
1647
|
if (typeof ref === "function") ref(node);
|
|
@@ -1650,7 +1650,7 @@ var VerticalMenu = React38__namespace.forwardRef((_a, ref) => {
|
|
|
1650
1650
|
},
|
|
1651
1651
|
[ref]
|
|
1652
1652
|
);
|
|
1653
|
-
const handleKeyDown =
|
|
1653
|
+
const handleKeyDown = React39__namespace.useCallback(
|
|
1654
1654
|
(e) => {
|
|
1655
1655
|
var _a2;
|
|
1656
1656
|
if (!containerRef.current) return;
|
|
@@ -1733,7 +1733,7 @@ var VerticalMenu = React38__namespace.forwardRef((_a, ref) => {
|
|
|
1733
1733
|
});
|
|
1734
1734
|
VerticalMenu.displayName = "VerticalMenu";
|
|
1735
1735
|
function detectSeparatorStyle(children) {
|
|
1736
|
-
const child =
|
|
1736
|
+
const child = React39__namespace.Children.toArray(children).find(React39__namespace.isValidElement);
|
|
1737
1737
|
if (child) {
|
|
1738
1738
|
const style = child.props.separatorStyle;
|
|
1739
1739
|
if (style) return style;
|
|
@@ -1814,11 +1814,11 @@ function AppBarColumn({
|
|
|
1814
1814
|
maxItemCount,
|
|
1815
1815
|
className
|
|
1816
1816
|
}) {
|
|
1817
|
-
const containerRef =
|
|
1818
|
-
const [visibleCount, setVisibleCount] =
|
|
1817
|
+
const containerRef = React39__namespace.useRef(null);
|
|
1818
|
+
const [visibleCount, setVisibleCount] = React39__namespace.useState(
|
|
1819
1819
|
maxItemCount != null ? maxItemCount : items.length
|
|
1820
1820
|
);
|
|
1821
|
-
|
|
1821
|
+
React39__namespace.useEffect(() => {
|
|
1822
1822
|
if (maxItemCount !== void 0) {
|
|
1823
1823
|
setVisibleCount(Math.min(maxItemCount, items.length));
|
|
1824
1824
|
return;
|
|
@@ -1866,11 +1866,11 @@ function AppBarColumn({
|
|
|
1866
1866
|
);
|
|
1867
1867
|
}
|
|
1868
1868
|
function AppBarRow({ items, maxItemCount, className }) {
|
|
1869
|
-
const containerRef =
|
|
1870
|
-
const [visibleCount, setVisibleCount] =
|
|
1869
|
+
const containerRef = React39__namespace.useRef(null);
|
|
1870
|
+
const [visibleCount, setVisibleCount] = React39__namespace.useState(
|
|
1871
1871
|
maxItemCount != null ? maxItemCount : items.length
|
|
1872
1872
|
);
|
|
1873
|
-
|
|
1873
|
+
React39__namespace.useEffect(() => {
|
|
1874
1874
|
if (maxItemCount !== void 0) {
|
|
1875
1875
|
setVisibleCount(Math.min(maxItemCount, items.length));
|
|
1876
1876
|
return;
|
|
@@ -1924,12 +1924,12 @@ function useAppBarScroll({
|
|
|
1924
1924
|
collapsedHeight = 64,
|
|
1925
1925
|
expandedHeight = 112
|
|
1926
1926
|
} = {}) {
|
|
1927
|
-
const [isScrolled, setIsScrolled] =
|
|
1928
|
-
const [collapsedFraction, setCollapsedFraction] =
|
|
1929
|
-
const [isHidden, setIsHidden] =
|
|
1930
|
-
const prevScrollYRef =
|
|
1927
|
+
const [isScrolled, setIsScrolled] = React39__namespace.useState(false);
|
|
1928
|
+
const [collapsedFraction, setCollapsedFraction] = React39__namespace.useState(0);
|
|
1929
|
+
const [isHidden, setIsHidden] = React39__namespace.useState(false);
|
|
1930
|
+
const prevScrollYRef = React39__namespace.useRef(0);
|
|
1931
1931
|
const hideThreshold = 64;
|
|
1932
|
-
|
|
1932
|
+
React39__namespace.useEffect(() => {
|
|
1933
1933
|
var _a;
|
|
1934
1934
|
const scrollDistance = expandedHeight - collapsedHeight;
|
|
1935
1935
|
const getScrollY = () => {
|
|
@@ -2064,7 +2064,7 @@ function useFlexibleAppBar({
|
|
|
2064
2064
|
expandedHeight
|
|
2065
2065
|
});
|
|
2066
2066
|
const scrollProgress = react.useMotionValue(0);
|
|
2067
|
-
|
|
2067
|
+
React39__namespace.useEffect(() => {
|
|
2068
2068
|
scrollProgress.set(
|
|
2069
2069
|
shouldReduceMotion ? collapsedFraction > 0.5 ? 1 : 0 : collapsedFraction
|
|
2070
2070
|
);
|
|
@@ -2442,7 +2442,7 @@ function SearchAppBar({
|
|
|
2442
2442
|
}) {
|
|
2443
2443
|
var _a, _b;
|
|
2444
2444
|
const shouldReduceMotion = react.useReducedMotion();
|
|
2445
|
-
const [isSearchOpen, setIsSearchOpen] =
|
|
2445
|
+
const [isSearchOpen, setIsSearchOpen] = React39__namespace.useState(false);
|
|
2446
2446
|
const { isScrolled } = useAppBarScroll({
|
|
2447
2447
|
scrollElement,
|
|
2448
2448
|
behavior: scrollBehavior === "exitUntilCollapsed" ? "pinned" : scrollBehavior
|
|
@@ -2583,8 +2583,8 @@ function SearchView({
|
|
|
2583
2583
|
className
|
|
2584
2584
|
}) {
|
|
2585
2585
|
const shouldReduceMotion = react.useReducedMotion();
|
|
2586
|
-
const inputRef =
|
|
2587
|
-
|
|
2586
|
+
const inputRef = React39__namespace.useRef(null);
|
|
2587
|
+
React39__namespace.useEffect(() => {
|
|
2588
2588
|
const timer = window.setTimeout(() => {
|
|
2589
2589
|
var _a;
|
|
2590
2590
|
(_a = inputRef.current) == null ? void 0 : _a.focus();
|
|
@@ -2875,7 +2875,7 @@ function SmallAppBar({
|
|
|
2875
2875
|
"small-app-bar"
|
|
2876
2876
|
) });
|
|
2877
2877
|
}
|
|
2878
|
-
var RippleItem =
|
|
2878
|
+
var RippleItem = React39__namespace.memo(function RippleItem2({
|
|
2879
2879
|
ripple,
|
|
2880
2880
|
onDone
|
|
2881
2881
|
}) {
|
|
@@ -2919,8 +2919,8 @@ function Ripple({
|
|
|
2919
2919
|
}
|
|
2920
2920
|
function useRippleState(options = {}) {
|
|
2921
2921
|
const { disabled = false } = options;
|
|
2922
|
-
const [ripples, setRipples] =
|
|
2923
|
-
const onPointerDown =
|
|
2922
|
+
const [ripples, setRipples] = React39__namespace.useState([]);
|
|
2923
|
+
const onPointerDown = React39__namespace.useCallback(
|
|
2924
2924
|
(e) => {
|
|
2925
2925
|
if (disabled) return;
|
|
2926
2926
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
@@ -2937,7 +2937,7 @@ function useRippleState(options = {}) {
|
|
|
2937
2937
|
},
|
|
2938
2938
|
[disabled]
|
|
2939
2939
|
);
|
|
2940
|
-
const removeRipple =
|
|
2940
|
+
const removeRipple = React39__namespace.useCallback((id) => {
|
|
2941
2941
|
setRipples((prev) => prev.filter((r) => r.id !== id));
|
|
2942
2942
|
}, []);
|
|
2943
2943
|
return { ripples, onPointerDown, removeRipple };
|
|
@@ -3650,8 +3650,8 @@ var RoundedPolygon = class _RoundedPolygon {
|
|
|
3650
3650
|
);
|
|
3651
3651
|
const mid = c.pointOnCurve(0.5);
|
|
3652
3652
|
const md = distanceSquared(mid.x - this.centerX, mid.y - this.centerY);
|
|
3653
|
-
const
|
|
3654
|
-
if (
|
|
3653
|
+
const m33 = Math.max(ad, md);
|
|
3654
|
+
if (m33 > maxDistSq) maxDistSq = m33;
|
|
3655
3655
|
}
|
|
3656
3656
|
const d = Math.sqrt(maxDistSq);
|
|
3657
3657
|
return [
|
|
@@ -4867,11 +4867,11 @@ function getNavigationShapeStyle(shape, width = 56, height = 56) {
|
|
|
4867
4867
|
function isSquareShape(shape) {
|
|
4868
4868
|
return Boolean(shape && shape !== "pill");
|
|
4869
4869
|
}
|
|
4870
|
-
var NavigationBarContext =
|
|
4870
|
+
var NavigationBarContext = React39__namespace.createContext({ variant: "flexible" });
|
|
4871
4871
|
function cloneIconWithFill(icon, selected) {
|
|
4872
|
-
if (!
|
|
4872
|
+
if (!React39__namespace.isValidElement(icon)) return icon;
|
|
4873
4873
|
if (icon.type === Icon) {
|
|
4874
|
-
return
|
|
4874
|
+
return React39__namespace.cloneElement(
|
|
4875
4875
|
icon,
|
|
4876
4876
|
{ fill: selected ? 1 : 0, animateFill: true }
|
|
4877
4877
|
);
|
|
@@ -4883,7 +4883,7 @@ function ActivePill({
|
|
|
4883
4883
|
width = 56,
|
|
4884
4884
|
height = 32
|
|
4885
4885
|
}) {
|
|
4886
|
-
const { activeIndicatorTransition } =
|
|
4886
|
+
const { activeIndicatorTransition } = React39__namespace.useContext(NavigationBarContext);
|
|
4887
4887
|
const shapeStyle = getNavigationShapeStyle(shape, width, height);
|
|
4888
4888
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4889
4889
|
react.m.div,
|
|
@@ -4955,7 +4955,7 @@ function IconContainer({ selected, badge, children }) {
|
|
|
4955
4955
|
}
|
|
4956
4956
|
);
|
|
4957
4957
|
}
|
|
4958
|
-
var NavigationBarItemComponent =
|
|
4958
|
+
var NavigationBarItemComponent = React39__namespace.forwardRef(
|
|
4959
4959
|
({
|
|
4960
4960
|
selected,
|
|
4961
4961
|
icon,
|
|
@@ -4979,7 +4979,7 @@ var NavigationBarItemComponent = React38__namespace.forwardRef(
|
|
|
4979
4979
|
labelVisibility: contextLabelVisibility,
|
|
4980
4980
|
shapeSize: contextShapeSize,
|
|
4981
4981
|
itemClassName: contextItemClassName
|
|
4982
|
-
} =
|
|
4982
|
+
} = React39__namespace.useContext(NavigationBarContext);
|
|
4983
4983
|
const activeShape = (_a = shapeProp != null ? shapeProp : contextShape) != null ? _a : "pill";
|
|
4984
4984
|
const isSquare = isSquareShape(activeShape);
|
|
4985
4985
|
const resolvedShapeSize = (_b = shapeSizeProp != null ? shapeSizeProp : contextShapeSize) != null ? _b : 56;
|
|
@@ -4993,7 +4993,7 @@ var NavigationBarItemComponent = React38__namespace.forwardRef(
|
|
|
4993
4993
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
4994
4994
|
disabled
|
|
4995
4995
|
});
|
|
4996
|
-
const handleClick =
|
|
4996
|
+
const handleClick = React39__namespace.useCallback(
|
|
4997
4997
|
(e) => {
|
|
4998
4998
|
if (disabled) {
|
|
4999
4999
|
e.preventDefault();
|
|
@@ -5020,7 +5020,7 @@ var NavigationBarItemComponent = React38__namespace.forwardRef(
|
|
|
5020
5020
|
const iconPillWidth = isSquare ? resolvedShapeSize : 56;
|
|
5021
5021
|
const iconPillHeight = isSquare ? resolvedShapeSize : 32;
|
|
5022
5022
|
if (asChild && children) {
|
|
5023
|
-
const child =
|
|
5023
|
+
const child = React39__namespace.Children.only(children);
|
|
5024
5024
|
const innerContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5025
5025
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5026
5026
|
"div",
|
|
@@ -5145,7 +5145,7 @@ var NavigationBarItemComponent = React38__namespace.forwardRef(
|
|
|
5145
5145
|
onClick: handleClick,
|
|
5146
5146
|
onPointerDown,
|
|
5147
5147
|
className: itemClassName,
|
|
5148
|
-
children:
|
|
5148
|
+
children: React39__namespace.cloneElement(child, { children: innerContent })
|
|
5149
5149
|
}
|
|
5150
5150
|
);
|
|
5151
5151
|
}
|
|
@@ -5279,7 +5279,7 @@ var NavigationBarItemComponent = React38__namespace.forwardRef(
|
|
|
5279
5279
|
}
|
|
5280
5280
|
);
|
|
5281
5281
|
NavigationBarItemComponent.displayName = "NavigationBarItem";
|
|
5282
|
-
var NavigationBarItem =
|
|
5282
|
+
var NavigationBarItem = React39__namespace.memo(NavigationBarItemComponent);
|
|
5283
5283
|
var navContainerVariants = classVarianceAuthority.cva(
|
|
5284
5284
|
"flex items-center justify-center select-none transition-transform duration-300 z-50",
|
|
5285
5285
|
{
|
|
@@ -5305,7 +5305,7 @@ var navContainerVariants = classVarianceAuthority.cva(
|
|
|
5305
5305
|
}
|
|
5306
5306
|
}
|
|
5307
5307
|
);
|
|
5308
|
-
var NavigationBarComponent =
|
|
5308
|
+
var NavigationBarComponent = React39__namespace.forwardRef(
|
|
5309
5309
|
({
|
|
5310
5310
|
variant = "flexible",
|
|
5311
5311
|
itemLayout,
|
|
@@ -5322,18 +5322,18 @@ var NavigationBarComponent = React38__namespace.forwardRef(
|
|
|
5322
5322
|
className,
|
|
5323
5323
|
style
|
|
5324
5324
|
}, ref) => {
|
|
5325
|
-
const [isVisible, setIsVisible] =
|
|
5326
|
-
const lastScrollY =
|
|
5325
|
+
const [isVisible, setIsVisible] = React39__namespace.useState(true);
|
|
5326
|
+
const lastScrollY = React39__namespace.useRef(
|
|
5327
5327
|
typeof window !== "undefined" ? window.scrollY : 0
|
|
5328
5328
|
);
|
|
5329
5329
|
const isSquare = isSquareShape(shape);
|
|
5330
5330
|
const effectiveShapeSize = shapeSize != null ? shapeSize : isSquare ? 56 : 32;
|
|
5331
|
-
const computedMinHeight =
|
|
5331
|
+
const computedMinHeight = React39__namespace.useMemo(() => {
|
|
5332
5332
|
const baseHeight = variant === "baseline" ? 80 : 64;
|
|
5333
5333
|
const requiredHeight = itemLayout === "horizontal" || labelVisibility === "unlabeled" ? effectiveShapeSize + 16 : effectiveShapeSize + 32;
|
|
5334
5334
|
return Math.max(baseHeight, requiredHeight);
|
|
5335
5335
|
}, [variant, itemLayout, labelVisibility, effectiveShapeSize]);
|
|
5336
|
-
|
|
5336
|
+
React39__namespace.useEffect(() => {
|
|
5337
5337
|
if (typeof window === "undefined" || !hideOnScroll) {
|
|
5338
5338
|
setIsVisible(true);
|
|
5339
5339
|
return;
|
|
@@ -5417,8 +5417,8 @@ var NavigationBarComponent = React38__namespace.forwardRef(
|
|
|
5417
5417
|
}
|
|
5418
5418
|
);
|
|
5419
5419
|
NavigationBarComponent.displayName = "NavigationBar";
|
|
5420
|
-
var NavigationBar =
|
|
5421
|
-
var NavigationRailContext =
|
|
5420
|
+
var NavigationBar = React39__namespace.memo(NavigationBarComponent);
|
|
5421
|
+
var NavigationRailContext = React39__namespace.createContext({
|
|
5422
5422
|
variant: "collapsed",
|
|
5423
5423
|
labelVisibility: "labeled",
|
|
5424
5424
|
activeIndicatorWidth: "hug"
|
|
@@ -5454,9 +5454,9 @@ var railContainerVariants = classVarianceAuthority.cva(
|
|
|
5454
5454
|
}
|
|
5455
5455
|
);
|
|
5456
5456
|
function cloneIconWithFill2(icon, selected) {
|
|
5457
|
-
if (!
|
|
5457
|
+
if (!React39__namespace.isValidElement(icon)) return icon;
|
|
5458
5458
|
if (icon.type === Icon) {
|
|
5459
|
-
return
|
|
5459
|
+
return React39__namespace.cloneElement(
|
|
5460
5460
|
icon,
|
|
5461
5461
|
{ fill: selected ? 1 : 0, animateFill: true }
|
|
5462
5462
|
);
|
|
@@ -5485,7 +5485,7 @@ function ActivePill2({
|
|
|
5485
5485
|
width = 56,
|
|
5486
5486
|
height = 32
|
|
5487
5487
|
}) {
|
|
5488
|
-
const { activeIndicatorTransition } =
|
|
5488
|
+
const { activeIndicatorTransition } = React39__namespace.useContext(NavigationRailContext);
|
|
5489
5489
|
const shapeStyle = getNavigationShapeStyle(shape, width, height);
|
|
5490
5490
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5491
5491
|
react.m.div,
|
|
@@ -5560,7 +5560,7 @@ function IconContainer2({ selected, badge, children }) {
|
|
|
5560
5560
|
}
|
|
5561
5561
|
);
|
|
5562
5562
|
}
|
|
5563
|
-
var NavigationRailItemComponent =
|
|
5563
|
+
var NavigationRailItemComponent = React39__namespace.forwardRef(
|
|
5564
5564
|
({
|
|
5565
5565
|
selected,
|
|
5566
5566
|
icon,
|
|
@@ -5583,7 +5583,7 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
|
|
|
5583
5583
|
shape: contextShape,
|
|
5584
5584
|
shapeSize: contextShapeSize,
|
|
5585
5585
|
activeIndicatorWidth: contextActiveIndicatorWidth
|
|
5586
|
-
} =
|
|
5586
|
+
} = React39__namespace.useContext(NavigationRailContext);
|
|
5587
5587
|
const activeShape = (_a = shapeProp != null ? shapeProp : contextShape) != null ? _a : "pill";
|
|
5588
5588
|
const isSquare = isSquareShape(activeShape);
|
|
5589
5589
|
const resolvedShapeSize = (_b = shapeSizeProp != null ? shapeSizeProp : contextShapeSize) != null ? _b : 56;
|
|
@@ -5593,12 +5593,12 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
|
|
|
5593
5593
|
const enableLayout = !isModal;
|
|
5594
5594
|
const isExpandedPill = isExpanded && !isSquare;
|
|
5595
5595
|
const expandedPillWidthClass = activeIndicatorWidth === "fill" ? "w-full" : "w-fit";
|
|
5596
|
-
const activePillId = `rail-pill-${
|
|
5596
|
+
const activePillId = `rail-pill-${React39__namespace.useId()}`;
|
|
5597
5597
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
5598
5598
|
disabled
|
|
5599
5599
|
});
|
|
5600
5600
|
const showLabel = isExpanded || labelVisibility === "labeled" || labelVisibility === "auto" && selected;
|
|
5601
|
-
const handleClick =
|
|
5601
|
+
const handleClick = React39__namespace.useCallback(
|
|
5602
5602
|
(e) => {
|
|
5603
5603
|
if (disabled) {
|
|
5604
5604
|
e.preventDefault();
|
|
@@ -5620,7 +5620,7 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
|
|
|
5620
5620
|
const iconPillWidth = isSquare ? resolvedShapeSize : 56;
|
|
5621
5621
|
const iconPillHeight = isSquare ? resolvedShapeSize : 32;
|
|
5622
5622
|
if (asChild && children) {
|
|
5623
|
-
const child =
|
|
5623
|
+
const child = React39__namespace.Children.only(children);
|
|
5624
5624
|
const innerContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5625
5625
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5626
5626
|
react.m.div,
|
|
@@ -5738,7 +5738,7 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
|
|
|
5738
5738
|
onPointerDown,
|
|
5739
5739
|
className: itemClassName,
|
|
5740
5740
|
tabIndex: -1,
|
|
5741
|
-
children:
|
|
5741
|
+
children: React39__namespace.cloneElement(child, { children: innerContent })
|
|
5742
5742
|
}
|
|
5743
5743
|
) });
|
|
5744
5744
|
}
|
|
@@ -5866,9 +5866,9 @@ var NavigationRailItemComponent = React38__namespace.forwardRef(
|
|
|
5866
5866
|
}
|
|
5867
5867
|
);
|
|
5868
5868
|
NavigationRailItemComponent.displayName = "NavigationRailItem";
|
|
5869
|
-
var NavigationRailItem =
|
|
5869
|
+
var NavigationRailItem = React39__namespace.memo(NavigationRailItemComponent);
|
|
5870
5870
|
function useRoving(navRef) {
|
|
5871
|
-
|
|
5871
|
+
React39__namespace.useEffect(() => {
|
|
5872
5872
|
if (!navRef.current) return;
|
|
5873
5873
|
const items = getMenuItems(navRef.current);
|
|
5874
5874
|
const selected = items.find(
|
|
@@ -5878,7 +5878,7 @@ function useRoving(navRef) {
|
|
|
5878
5878
|
const firstFocusable = selected != null ? selected : items[0];
|
|
5879
5879
|
if (firstFocusable) firstFocusable.tabIndex = 0;
|
|
5880
5880
|
}, [navRef]);
|
|
5881
|
-
return
|
|
5881
|
+
return React39__namespace.useCallback(
|
|
5882
5882
|
(e) => {
|
|
5883
5883
|
if (!navRef.current) return;
|
|
5884
5884
|
const items = getMenuItems(navRef.current);
|
|
@@ -5906,7 +5906,7 @@ function useRoving(navRef) {
|
|
|
5906
5906
|
[navRef]
|
|
5907
5907
|
);
|
|
5908
5908
|
}
|
|
5909
|
-
var NavigationRailComponent =
|
|
5909
|
+
var NavigationRailComponent = React39__namespace.forwardRef(
|
|
5910
5910
|
({
|
|
5911
5911
|
variant = "collapsed",
|
|
5912
5912
|
labelVisibility = "labeled",
|
|
@@ -5930,9 +5930,9 @@ var NavigationRailComponent = React38__namespace.forwardRef(
|
|
|
5930
5930
|
const isXr = variant === "xr";
|
|
5931
5931
|
const isSpatial = isXr && fabPlacement === "spatialized";
|
|
5932
5932
|
const applyAnimation = !isXr || !isSpatial;
|
|
5933
|
-
const navRef =
|
|
5933
|
+
const navRef = React39__namespace.useRef(null);
|
|
5934
5934
|
const handleKeyDown = useRoving(navRef);
|
|
5935
|
-
const setRefs =
|
|
5935
|
+
const setRefs = React39__namespace.useCallback(
|
|
5936
5936
|
(node) => {
|
|
5937
5937
|
navRef.current = node;
|
|
5938
5938
|
if (typeof ref === "function") ref(node);
|
|
@@ -6025,7 +6025,7 @@ var NavigationRailComponent = React38__namespace.forwardRef(
|
|
|
6025
6025
|
children: fab
|
|
6026
6026
|
}
|
|
6027
6027
|
),
|
|
6028
|
-
|
|
6028
|
+
React39__namespace.cloneElement(
|
|
6029
6029
|
navElement,
|
|
6030
6030
|
{
|
|
6031
6031
|
className: cn(navBaseClasses, "pointer-events-auto")
|
|
@@ -6070,7 +6070,7 @@ var NavigationRailComponent = React38__namespace.forwardRef(
|
|
|
6070
6070
|
}
|
|
6071
6071
|
);
|
|
6072
6072
|
NavigationRailComponent.displayName = "NavigationRail";
|
|
6073
|
-
var NavigationRail =
|
|
6073
|
+
var NavigationRail = React39__namespace.memo(NavigationRailComponent);
|
|
6074
6074
|
function useSearchKeyboard({
|
|
6075
6075
|
active,
|
|
6076
6076
|
onActiveChange,
|
|
@@ -6079,14 +6079,14 @@ function useSearchKeyboard({
|
|
|
6079
6079
|
itemCount,
|
|
6080
6080
|
onSelectSuggestion
|
|
6081
6081
|
}) {
|
|
6082
|
-
const [activeIndex, setActiveIndex] =
|
|
6083
|
-
const resetKeyRef =
|
|
6082
|
+
const [activeIndex, setActiveIndex] = React39__namespace.useState(-1);
|
|
6083
|
+
const resetKeyRef = React39__namespace.useRef(`${active}:${query}`);
|
|
6084
6084
|
const currentKey = `${active}:${query}`;
|
|
6085
6085
|
if (resetKeyRef.current !== currentKey) {
|
|
6086
6086
|
resetKeyRef.current = currentKey;
|
|
6087
6087
|
setActiveIndex(-1);
|
|
6088
6088
|
}
|
|
6089
|
-
const handleKeyDown =
|
|
6089
|
+
const handleKeyDown = React39__namespace.useCallback(
|
|
6090
6090
|
(e) => {
|
|
6091
6091
|
if (!active) return;
|
|
6092
6092
|
switch (e.key) {
|
|
@@ -6126,11 +6126,39 @@ function useSearchKeyboard({
|
|
|
6126
6126
|
query
|
|
6127
6127
|
]
|
|
6128
6128
|
);
|
|
6129
|
-
const resetActiveIndex =
|
|
6129
|
+
const resetActiveIndex = React39__namespace.useCallback(() => {
|
|
6130
6130
|
setActiveIndex(-1);
|
|
6131
6131
|
}, []);
|
|
6132
6132
|
return { activeIndex, handleKeyDown, resetActiveIndex };
|
|
6133
6133
|
}
|
|
6134
|
+
var StateLayer = React39__namespace.forwardRef(
|
|
6135
|
+
(_a, ref) => {
|
|
6136
|
+
var _b = _a, { className, hovered, focused, pressed } = _b, props = __objRest(_b, ["className", "hovered", "focused", "pressed"]);
|
|
6137
|
+
let opacity = 0;
|
|
6138
|
+
if (pressed) {
|
|
6139
|
+
opacity = 0.12;
|
|
6140
|
+
} else if (focused) {
|
|
6141
|
+
opacity = 0.1;
|
|
6142
|
+
} else if (hovered) {
|
|
6143
|
+
opacity = 0.08;
|
|
6144
|
+
}
|
|
6145
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6146
|
+
react.m.div,
|
|
6147
|
+
__spreadValues({
|
|
6148
|
+
ref,
|
|
6149
|
+
className: cn(
|
|
6150
|
+
"absolute inset-0 bg-current pointer-events-none rounded-[inherit]",
|
|
6151
|
+
className
|
|
6152
|
+
),
|
|
6153
|
+
initial: false,
|
|
6154
|
+
animate: { opacity },
|
|
6155
|
+
transition: { duration: 0.2 },
|
|
6156
|
+
"aria-hidden": "true"
|
|
6157
|
+
}, props)
|
|
6158
|
+
) });
|
|
6159
|
+
}
|
|
6160
|
+
);
|
|
6161
|
+
StateLayer.displayName = "StateLayer";
|
|
6134
6162
|
|
|
6135
6163
|
// src/ui/search/search.tokens.ts
|
|
6136
6164
|
var SearchTokens = {
|
|
@@ -6169,7 +6197,12 @@ var SEARCH_COLORS = {
|
|
|
6169
6197
|
/** SearchViewTokens.DividerColor → outline */
|
|
6170
6198
|
divider: "var(--md-sys-color-outline)",
|
|
6171
6199
|
/** Focus indicator → secondary */
|
|
6172
|
-
focusIndicator: "var(--md-sys-color-secondary)"
|
|
6200
|
+
focusIndicator: "var(--md-sys-color-secondary)",
|
|
6201
|
+
/** State layer overlay for interactive hover/press */
|
|
6202
|
+
stateLayer: "var(--md-sys-color-on-surface)"
|
|
6203
|
+
};
|
|
6204
|
+
var SEARCH_ELEVATION = {
|
|
6205
|
+
level3: "elevation-3"
|
|
6173
6206
|
};
|
|
6174
6207
|
var SEARCH_TYPOGRAPHY = {
|
|
6175
6208
|
/** BodyLarge — used for input text and placeholder. */
|
|
@@ -6194,10 +6227,10 @@ function AnimatedPlaceholder({
|
|
|
6194
6227
|
className
|
|
6195
6228
|
}) {
|
|
6196
6229
|
const shouldReduceMotion = react.useReducedMotion();
|
|
6197
|
-
const containerRef =
|
|
6198
|
-
const spanRef =
|
|
6199
|
-
const [xOffset, setXOffset] =
|
|
6200
|
-
const recalculate =
|
|
6230
|
+
const containerRef = React39__namespace.useRef(null);
|
|
6231
|
+
const spanRef = React39__namespace.useRef(null);
|
|
6232
|
+
const [xOffset, setXOffset] = React39__namespace.useState(0);
|
|
6233
|
+
const recalculate = React39__namespace.useCallback(() => {
|
|
6201
6234
|
const container = containerRef.current;
|
|
6202
6235
|
const span = spanRef.current;
|
|
6203
6236
|
if (!container || !span || textAlign === "left") {
|
|
@@ -6212,10 +6245,10 @@ function AnimatedPlaceholder({
|
|
|
6212
6245
|
setXOffset(Math.max(0, containerWidth - textWidth));
|
|
6213
6246
|
}
|
|
6214
6247
|
}, [textAlign]);
|
|
6215
|
-
|
|
6248
|
+
React39__namespace.useLayoutEffect(() => {
|
|
6216
6249
|
recalculate();
|
|
6217
6250
|
}, [recalculate]);
|
|
6218
|
-
|
|
6251
|
+
React39__namespace.useEffect(() => {
|
|
6219
6252
|
const container = containerRef.current;
|
|
6220
6253
|
if (!container) return;
|
|
6221
6254
|
const observer = new ResizeObserver(recalculate);
|
|
@@ -6274,6 +6307,7 @@ function SearchBar({
|
|
|
6274
6307
|
onActiveChange,
|
|
6275
6308
|
leadingIcon,
|
|
6276
6309
|
trailingIcon,
|
|
6310
|
+
avatar,
|
|
6277
6311
|
placeholder = "Search",
|
|
6278
6312
|
textAlign = "left",
|
|
6279
6313
|
className,
|
|
@@ -6284,10 +6318,13 @@ function SearchBar({
|
|
|
6284
6318
|
activeIndex
|
|
6285
6319
|
}) {
|
|
6286
6320
|
const shouldReduceMotion = react.useReducedMotion();
|
|
6287
|
-
const inputRef =
|
|
6288
|
-
const prevActiveRef =
|
|
6289
|
-
const isRestoringFocusRef =
|
|
6290
|
-
|
|
6321
|
+
const inputRef = React39__namespace.useRef(null);
|
|
6322
|
+
const prevActiveRef = React39__namespace.useRef(active);
|
|
6323
|
+
const isRestoringFocusRef = React39__namespace.useRef(false);
|
|
6324
|
+
const [isHovered, setIsHovered] = React39__namespace.useState(false);
|
|
6325
|
+
const [isPressed, setIsPressed] = React39__namespace.useState(false);
|
|
6326
|
+
const [isFocused, setIsFocused] = React39__namespace.useState(false);
|
|
6327
|
+
React39__namespace.useEffect(() => {
|
|
6291
6328
|
var _a;
|
|
6292
6329
|
let rafId;
|
|
6293
6330
|
if (prevActiveRef.current === true && active === false) {
|
|
@@ -6303,10 +6340,14 @@ function SearchBar({
|
|
|
6303
6340
|
};
|
|
6304
6341
|
}, [active]);
|
|
6305
6342
|
const handleFocus = () => {
|
|
6343
|
+
setIsFocused(true);
|
|
6306
6344
|
if (!active && !isRestoringFocusRef.current) {
|
|
6307
6345
|
onActiveChange(true);
|
|
6308
6346
|
}
|
|
6309
6347
|
};
|
|
6348
|
+
const handleBlur = () => {
|
|
6349
|
+
setIsFocused(false);
|
|
6350
|
+
};
|
|
6310
6351
|
const handleFormSubmit = (e) => {
|
|
6311
6352
|
e.preventDefault();
|
|
6312
6353
|
onSearch(query);
|
|
@@ -6325,18 +6366,39 @@ function SearchBar({
|
|
|
6325
6366
|
layout: !shouldReduceMotion,
|
|
6326
6367
|
layoutId: shouldReduceMotion ? void 0 : searchId,
|
|
6327
6368
|
transition: shouldReduceMotion ? void 0 : SEARCH_BAR_EXPAND_SPRING,
|
|
6328
|
-
className: cn(
|
|
6369
|
+
className: cn(
|
|
6370
|
+
"relative group select-none",
|
|
6371
|
+
SEARCH_ELEVATION.level3,
|
|
6372
|
+
className
|
|
6373
|
+
),
|
|
6329
6374
|
style: { height: SearchTokens.heights.bar },
|
|
6330
6375
|
initial: shouldReduceMotion ? false : { opacity: 0, scale: 0.95 },
|
|
6331
6376
|
animate: { opacity: 1, scale: 1 },
|
|
6332
6377
|
exit: shouldReduceMotion ? {} : { opacity: 0, scale: 0.95, transition: SEARCH_BAR_EXIT_SPRING },
|
|
6378
|
+
onPointerEnter: () => setIsHovered(true),
|
|
6379
|
+
onPointerLeave: () => {
|
|
6380
|
+
setIsHovered(false);
|
|
6381
|
+
setIsPressed(false);
|
|
6382
|
+
},
|
|
6383
|
+
onPointerDown: () => setIsPressed(true),
|
|
6384
|
+
onPointerUp: () => setIsPressed(false),
|
|
6385
|
+
onPointerCancel: () => setIsPressed(false),
|
|
6333
6386
|
children: [
|
|
6334
6387
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6335
6388
|
"div",
|
|
6336
6389
|
{
|
|
6337
|
-
className: "absolute inset-0 rounded-full",
|
|
6390
|
+
className: "absolute inset-0 rounded-full overflow-hidden",
|
|
6338
6391
|
style: { backgroundColor: SEARCH_COLORS.container },
|
|
6339
|
-
"aria-hidden": "true"
|
|
6392
|
+
"aria-hidden": "true",
|
|
6393
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6394
|
+
StateLayer,
|
|
6395
|
+
{
|
|
6396
|
+
hovered: isHovered,
|
|
6397
|
+
focused: isFocused,
|
|
6398
|
+
pressed: isPressed,
|
|
6399
|
+
style: { color: SEARCH_COLORS.stateLayer }
|
|
6400
|
+
}
|
|
6401
|
+
)
|
|
6340
6402
|
}
|
|
6341
6403
|
),
|
|
6342
6404
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -6382,21 +6444,36 @@ function SearchBar({
|
|
|
6382
6444
|
),
|
|
6383
6445
|
style: { color: SEARCH_COLORS.inputText },
|
|
6384
6446
|
onFocus: handleFocus,
|
|
6447
|
+
onBlur: handleBlur,
|
|
6385
6448
|
onChange: (e) => onQueryChange(e.target.value),
|
|
6386
6449
|
onKeyDown
|
|
6387
6450
|
}
|
|
6388
6451
|
)
|
|
6389
6452
|
}
|
|
6390
6453
|
),
|
|
6391
|
-
trailingIcon && /* @__PURE__ */ jsxRuntime.
|
|
6392
|
-
|
|
6393
|
-
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
|
|
6399
|
-
|
|
6454
|
+
(trailingIcon || avatar) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
6455
|
+
trailingIcon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6456
|
+
"span",
|
|
6457
|
+
{
|
|
6458
|
+
className: "flex shrink-0 items-center justify-center",
|
|
6459
|
+
style: { color: SEARCH_COLORS.trailingIcon },
|
|
6460
|
+
"aria-hidden": "true",
|
|
6461
|
+
children: trailingIcon
|
|
6462
|
+
}
|
|
6463
|
+
),
|
|
6464
|
+
avatar && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6465
|
+
"span",
|
|
6466
|
+
{
|
|
6467
|
+
className: "flex shrink-0 items-center justify-center rounded-full overflow-hidden",
|
|
6468
|
+
style: {
|
|
6469
|
+
width: SearchTokens.avatarSize,
|
|
6470
|
+
height: SearchTokens.avatarSize
|
|
6471
|
+
},
|
|
6472
|
+
"aria-hidden": "true",
|
|
6473
|
+
children: avatar
|
|
6474
|
+
}
|
|
6475
|
+
)
|
|
6476
|
+
] })
|
|
6400
6477
|
] })
|
|
6401
6478
|
}
|
|
6402
6479
|
)
|
|
@@ -6406,7 +6483,7 @@ function SearchBar({
|
|
|
6406
6483
|
) })
|
|
6407
6484
|
);
|
|
6408
6485
|
}
|
|
6409
|
-
var SearchContext =
|
|
6486
|
+
var SearchContext = React39__namespace.createContext(null);
|
|
6410
6487
|
function SearchProvider({
|
|
6411
6488
|
children,
|
|
6412
6489
|
value
|
|
@@ -6414,15 +6491,15 @@ function SearchProvider({
|
|
|
6414
6491
|
return /* @__PURE__ */ jsxRuntime.jsx(SearchContext.Provider, { value, children });
|
|
6415
6492
|
}
|
|
6416
6493
|
function useSearch() {
|
|
6417
|
-
const context =
|
|
6494
|
+
const context = React39__namespace.useContext(SearchContext);
|
|
6418
6495
|
if (!context) {
|
|
6419
6496
|
return { listboxId: "", activeIndex: -1 };
|
|
6420
6497
|
}
|
|
6421
6498
|
return context;
|
|
6422
6499
|
}
|
|
6423
6500
|
function useClickOutside(handler, enabled = true) {
|
|
6424
|
-
const ref =
|
|
6425
|
-
|
|
6501
|
+
const ref = React39.useRef(null);
|
|
6502
|
+
React39.useEffect(() => {
|
|
6426
6503
|
if (!enabled) return;
|
|
6427
6504
|
const listener = (event) => {
|
|
6428
6505
|
const el = ref.current;
|
|
@@ -6441,7 +6518,7 @@ function useClickOutside(handler, enabled = true) {
|
|
|
6441
6518
|
return ref;
|
|
6442
6519
|
}
|
|
6443
6520
|
function useSearchViewFocus(inputRef, active) {
|
|
6444
|
-
|
|
6521
|
+
React39__namespace.useEffect(() => {
|
|
6445
6522
|
if (!active) return;
|
|
6446
6523
|
let raf2;
|
|
6447
6524
|
const raf1 = requestAnimationFrame(() => {
|
|
@@ -6501,11 +6578,11 @@ var ROTATE_KEY_SPLINES = [
|
|
|
6501
6578
|
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";
|
|
6502
6579
|
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";
|
|
6503
6580
|
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";
|
|
6504
|
-
var IndeterminateSvg =
|
|
6581
|
+
var IndeterminateSvg = React39__namespace.memo(function IndeterminateSvg2({
|
|
6505
6582
|
size
|
|
6506
6583
|
}) {
|
|
6507
|
-
const [ready, setReady] =
|
|
6508
|
-
|
|
6584
|
+
const [ready, setReady] = React39__namespace.useState(false);
|
|
6585
|
+
React39__namespace.useEffect(() => {
|
|
6509
6586
|
const raf = requestAnimationFrame(() => setReady(true));
|
|
6510
6587
|
return () => cancelAnimationFrame(raf);
|
|
6511
6588
|
}, []);
|
|
@@ -6550,7 +6627,7 @@ var IndeterminateSvg = React38__namespace.memo(function IndeterminateSvg2({
|
|
|
6550
6627
|
}
|
|
6551
6628
|
);
|
|
6552
6629
|
});
|
|
6553
|
-
var DeterminateSvg =
|
|
6630
|
+
var DeterminateSvg = React39__namespace.memo(function DeterminateSvg2({
|
|
6554
6631
|
size,
|
|
6555
6632
|
progress
|
|
6556
6633
|
}) {
|
|
@@ -6575,7 +6652,7 @@ var DeterminateSvg = React38__namespace.memo(function DeterminateSvg2({
|
|
|
6575
6652
|
}
|
|
6576
6653
|
);
|
|
6577
6654
|
});
|
|
6578
|
-
var LoadingIndicator =
|
|
6655
|
+
var LoadingIndicator = React39__namespace.forwardRef(
|
|
6579
6656
|
(_a, ref) => {
|
|
6580
6657
|
var _b = _a, {
|
|
6581
6658
|
variant = "uncontained",
|
|
@@ -6710,7 +6787,7 @@ var ADDITIONAL_ROTATION_EASE_DURATION = 500;
|
|
|
6710
6787
|
var DEFAULT_MIN_PROGRESS = 0.1;
|
|
6711
6788
|
var DEFAULT_MAX_PROGRESS = 0.8;
|
|
6712
6789
|
var PROGRESS_CYCLE_DURATION = 1500;
|
|
6713
|
-
var CircularProgress =
|
|
6790
|
+
var CircularProgress = React39__namespace.forwardRef(
|
|
6714
6791
|
(_a, ref) => {
|
|
6715
6792
|
var _b = _a, {
|
|
6716
6793
|
value,
|
|
@@ -6764,19 +6841,19 @@ var CircularProgress = React38__namespace.forwardRef(
|
|
|
6764
6841
|
const shouldShowDeterminateTrack = showTrack === "auto" ? true : showTrack;
|
|
6765
6842
|
const BASELINE_SIZE = 48;
|
|
6766
6843
|
const scaleFactor = size / BASELINE_SIZE;
|
|
6767
|
-
const effectiveAmplitude =
|
|
6844
|
+
const effectiveAmplitude = React39__namespace.useMemo(
|
|
6768
6845
|
() => amplitude != null ? amplitude : 1.6 * scaleFactor,
|
|
6769
6846
|
[amplitude, scaleFactor]
|
|
6770
6847
|
);
|
|
6771
|
-
const effectiveWavelength =
|
|
6848
|
+
const effectiveWavelength = React39__namespace.useMemo(
|
|
6772
6849
|
() => wavelength != null ? wavelength : 15 * scaleFactor,
|
|
6773
6850
|
[wavelength, scaleFactor]
|
|
6774
6851
|
);
|
|
6775
|
-
const resolvedAmplitudeRange =
|
|
6852
|
+
const resolvedAmplitudeRange = React39__namespace.useMemo(
|
|
6776
6853
|
() => amplitudeRange != null ? amplitudeRange : [0, effectiveAmplitude],
|
|
6777
6854
|
[amplitudeRange, effectiveAmplitude]
|
|
6778
6855
|
);
|
|
6779
|
-
const wavyActivePath =
|
|
6856
|
+
const wavyActivePath = React39__namespace.useMemo(
|
|
6780
6857
|
() => isWavy ? generateWavyCircularPath(
|
|
6781
6858
|
center,
|
|
6782
6859
|
radius,
|
|
@@ -6785,8 +6862,8 @@ var CircularProgress = React38__namespace.forwardRef(
|
|
|
6785
6862
|
) : null,
|
|
6786
6863
|
[isWavy, center, radius, effectiveAmplitude, effectiveWavelength]
|
|
6787
6864
|
);
|
|
6788
|
-
const circumference =
|
|
6789
|
-
const gapForTrack =
|
|
6865
|
+
const circumference = React39__namespace.useMemo(() => 2 * Math.PI * radius, [radius]);
|
|
6866
|
+
const gapForTrack = React39__namespace.useMemo(
|
|
6790
6867
|
() => (gapSize + trackHeight) / circumference,
|
|
6791
6868
|
[gapSize, trackHeight, circumference]
|
|
6792
6869
|
);
|
|
@@ -6794,17 +6871,17 @@ var CircularProgress = React38__namespace.forwardRef(
|
|
|
6794
6871
|
const trackOffset = isDeterminate ? activeAngularFraction + gapForTrack : 0;
|
|
6795
6872
|
const trackLength = isDeterminate ? Math.max(1e-3, 1 - activeAngularFraction - 2 * gapForTrack) : 1;
|
|
6796
6873
|
const ActiveCircleElem = react.m.circle;
|
|
6797
|
-
const indeterminateSvgRef =
|
|
6798
|
-
const indeterminateTrackRef =
|
|
6799
|
-
const indeterminateActiveRef =
|
|
6800
|
-
const indeterminateWavyTrackPathRef =
|
|
6801
|
-
const indeterminateWavyActivePathRef =
|
|
6802
|
-
const determinateWavyActivePathRef =
|
|
6803
|
-
const determinateWavyTrackPathRef =
|
|
6804
|
-
const cachedPathLengthRef =
|
|
6874
|
+
const indeterminateSvgRef = React39__namespace.useRef(null);
|
|
6875
|
+
const indeterminateTrackRef = React39__namespace.useRef(null);
|
|
6876
|
+
const indeterminateActiveRef = React39__namespace.useRef(null);
|
|
6877
|
+
const indeterminateWavyTrackPathRef = React39__namespace.useRef(null);
|
|
6878
|
+
const indeterminateWavyActivePathRef = React39__namespace.useRef(null);
|
|
6879
|
+
const determinateWavyActivePathRef = React39__namespace.useRef(null);
|
|
6880
|
+
const determinateWavyTrackPathRef = React39__namespace.useRef(null);
|
|
6881
|
+
const cachedPathLengthRef = React39__namespace.useRef(0);
|
|
6805
6882
|
const fractionMV = react.useMotionValue(isDeterminate ? clampedValue / 100 : 0);
|
|
6806
6883
|
const amplitudeMV = react.useMotionValue(isWavy ? effectiveAmplitude : 0);
|
|
6807
|
-
|
|
6884
|
+
React39__namespace.useEffect(() => {
|
|
6808
6885
|
if (isDeterminate) {
|
|
6809
6886
|
react.animate(fractionMV, clampedValue / 100, {
|
|
6810
6887
|
duration: 0.4,
|
|
@@ -6812,7 +6889,7 @@ var CircularProgress = React38__namespace.forwardRef(
|
|
|
6812
6889
|
});
|
|
6813
6890
|
}
|
|
6814
6891
|
}, [clampedValue, isDeterminate, fractionMV]);
|
|
6815
|
-
|
|
6892
|
+
React39__namespace.useEffect(() => {
|
|
6816
6893
|
if (!isDeterminate || !isWavy) return;
|
|
6817
6894
|
const fraction = clampedValue / 100;
|
|
6818
6895
|
let targetAmp = effectiveAmplitude;
|
|
@@ -6832,7 +6909,7 @@ var CircularProgress = React38__namespace.forwardRef(
|
|
|
6832
6909
|
amplitudeMV,
|
|
6833
6910
|
determinateAnimation
|
|
6834
6911
|
]);
|
|
6835
|
-
|
|
6912
|
+
React39__namespace.useLayoutEffect(() => {
|
|
6836
6913
|
if (!isWavy || !wavyActivePath) {
|
|
6837
6914
|
cachedPathLengthRef.current = circumference;
|
|
6838
6915
|
return;
|
|
@@ -7209,9 +7286,9 @@ var CircularProgress = React38__namespace.forwardRef(
|
|
|
7209
7286
|
);
|
|
7210
7287
|
CircularProgress.displayName = "CircularProgress";
|
|
7211
7288
|
function useContainerWidth() {
|
|
7212
|
-
const [width, setWidth] =
|
|
7213
|
-
const observerRef =
|
|
7214
|
-
const ref =
|
|
7289
|
+
const [width, setWidth] = React39__namespace.useState(0);
|
|
7290
|
+
const observerRef = React39__namespace.useRef(null);
|
|
7291
|
+
const ref = React39__namespace.useCallback((node) => {
|
|
7215
7292
|
if (observerRef.current) {
|
|
7216
7293
|
observerRef.current.disconnect();
|
|
7217
7294
|
observerRef.current = null;
|
|
@@ -7225,7 +7302,7 @@ function useContainerWidth() {
|
|
|
7225
7302
|
observerRef.current = obs;
|
|
7226
7303
|
}
|
|
7227
7304
|
}, []);
|
|
7228
|
-
|
|
7305
|
+
React39__namespace.useEffect(() => {
|
|
7229
7306
|
return () => {
|
|
7230
7307
|
if (observerRef.current) {
|
|
7231
7308
|
observerRef.current.disconnect();
|
|
@@ -7235,7 +7312,7 @@ function useContainerWidth() {
|
|
|
7235
7312
|
return [ref, width];
|
|
7236
7313
|
}
|
|
7237
7314
|
function useMergedRef(...refs) {
|
|
7238
|
-
return
|
|
7315
|
+
return React39__namespace.useCallback(
|
|
7239
7316
|
(node) => {
|
|
7240
7317
|
for (const ref of refs) {
|
|
7241
7318
|
if (typeof ref === "function") {
|
|
@@ -7249,7 +7326,7 @@ function useMergedRef(...refs) {
|
|
|
7249
7326
|
[refs]
|
|
7250
7327
|
);
|
|
7251
7328
|
}
|
|
7252
|
-
var FlatLinearTrack =
|
|
7329
|
+
var FlatLinearTrack = React39__namespace.memo(function FlatLinearTrack2({
|
|
7253
7330
|
trackHeight,
|
|
7254
7331
|
activeColor,
|
|
7255
7332
|
trackColor,
|
|
@@ -7325,7 +7402,7 @@ var FlatLinearTrack = React38__namespace.memo(function FlatLinearTrack2({
|
|
|
7325
7402
|
}
|
|
7326
7403
|
);
|
|
7327
7404
|
});
|
|
7328
|
-
var WavyLinearTrack =
|
|
7405
|
+
var WavyLinearTrack = React39__namespace.memo(function WavyLinearTrack2({
|
|
7329
7406
|
trackHeight,
|
|
7330
7407
|
svgHeight,
|
|
7331
7408
|
amplitude,
|
|
@@ -7344,13 +7421,13 @@ var WavyLinearTrack = React38__namespace.memo(function WavyLinearTrack2({
|
|
|
7344
7421
|
}) {
|
|
7345
7422
|
const isDeterminate = typeof value === "number";
|
|
7346
7423
|
const clampedValue = isDeterminate ? Math.max(0, Math.min(100, value)) : 100;
|
|
7347
|
-
const titleId =
|
|
7424
|
+
const titleId = React39__namespace.useId();
|
|
7348
7425
|
const [containerRef, width] = useContainerWidth();
|
|
7349
|
-
const activePathRef =
|
|
7350
|
-
const trackPathRef =
|
|
7426
|
+
const activePathRef = React39__namespace.useRef(null);
|
|
7427
|
+
const trackPathRef = React39__namespace.useRef(null);
|
|
7351
7428
|
const amplitudeMV = react.useMotionValue(amplitude);
|
|
7352
7429
|
const fractionMV = react.useMotionValue(isDeterminate ? clampedValue / 100 : 1);
|
|
7353
|
-
|
|
7430
|
+
React39__namespace.useEffect(() => {
|
|
7354
7431
|
if (isDeterminate) {
|
|
7355
7432
|
const fraction = clampedValue / 100;
|
|
7356
7433
|
let targetAmp = amplitude;
|
|
@@ -7538,7 +7615,7 @@ var WavyLinearTrack = React38__namespace.memo(function WavyLinearTrack2({
|
|
|
7538
7615
|
}
|
|
7539
7616
|
);
|
|
7540
7617
|
});
|
|
7541
|
-
var LinearProgress =
|
|
7618
|
+
var LinearProgress = React39__namespace.forwardRef(
|
|
7542
7619
|
(_a, ref) => {
|
|
7543
7620
|
var _b = _a, {
|
|
7544
7621
|
value,
|
|
@@ -7579,10 +7656,10 @@ var LinearProgress = React38__namespace.forwardRef(
|
|
|
7579
7656
|
]);
|
|
7580
7657
|
const isDeterminate = value !== void 0;
|
|
7581
7658
|
const clampedValue = isDeterminate ? Math.min(100, Math.max(0, value)) : 0;
|
|
7582
|
-
const containerRef =
|
|
7659
|
+
const containerRef = React39__namespace.useRef(null);
|
|
7583
7660
|
const mergedRef = useMergedRef(ref, containerRef);
|
|
7584
|
-
const [isRtl, setIsRtl] =
|
|
7585
|
-
|
|
7661
|
+
const [isRtl, setIsRtl] = React39__namespace.useState(false);
|
|
7662
|
+
React39__namespace.useEffect(() => {
|
|
7586
7663
|
if (containerRef.current) {
|
|
7587
7664
|
const dir = getComputedStyle(containerRef.current).direction;
|
|
7588
7665
|
setIsRtl(dir === "rtl");
|
|
@@ -7590,16 +7667,16 @@ var LinearProgress = React38__namespace.forwardRef(
|
|
|
7590
7667
|
}, []);
|
|
7591
7668
|
const resolvedTrackShape = trackShape != null ? trackShape : shape;
|
|
7592
7669
|
const isWavy = shape === "wavy" || resolvedTrackShape === "wavy";
|
|
7593
|
-
const effectiveAmplitude =
|
|
7594
|
-
const svgHeight =
|
|
7670
|
+
const effectiveAmplitude = React39__namespace.useMemo(() => amplitude != null ? amplitude : 3, [amplitude]);
|
|
7671
|
+
const svgHeight = React39__namespace.useMemo(
|
|
7595
7672
|
() => isWavy ? trackHeight + effectiveAmplitude * 2 : trackHeight,
|
|
7596
7673
|
[isWavy, trackHeight, effectiveAmplitude]
|
|
7597
7674
|
);
|
|
7598
|
-
const shouldShowStop =
|
|
7675
|
+
const shouldShowStop = React39__namespace.useMemo(
|
|
7599
7676
|
() => isDeterminate && resolvedTrackShape === "flat" && showStopIndicator !== false,
|
|
7600
7677
|
[isDeterminate, resolvedTrackShape, showStopIndicator]
|
|
7601
7678
|
);
|
|
7602
|
-
const stopSize =
|
|
7679
|
+
const stopSize = React39__namespace.useMemo(
|
|
7603
7680
|
() => Math.max(2, trackHeight > 4 ? 4 : trackHeight / 2),
|
|
7604
7681
|
[trackHeight]
|
|
7605
7682
|
);
|
|
@@ -7674,7 +7751,7 @@ var LinearProgress = React38__namespace.forwardRef(
|
|
|
7674
7751
|
}
|
|
7675
7752
|
);
|
|
7676
7753
|
LinearProgress.displayName = "LinearProgress";
|
|
7677
|
-
var ProgressIndicator =
|
|
7754
|
+
var ProgressIndicator = React39__namespace.forwardRef((props, ref) => {
|
|
7678
7755
|
if (props.variant === "circular") {
|
|
7679
7756
|
return /* @__PURE__ */ jsxRuntime.jsx(CircularProgress, __spreadValues({ ref }, props));
|
|
7680
7757
|
}
|
|
@@ -7806,7 +7883,7 @@ function resolveDisabledBgClass(colorStyle) {
|
|
|
7806
7883
|
}
|
|
7807
7884
|
return "disabled:text-m3-on-surface/[0.38]";
|
|
7808
7885
|
}
|
|
7809
|
-
var IconButtonComponent =
|
|
7886
|
+
var IconButtonComponent = React39__namespace.forwardRef(
|
|
7810
7887
|
(_a, ref) => {
|
|
7811
7888
|
var _b = _a, {
|
|
7812
7889
|
className,
|
|
@@ -7848,18 +7925,18 @@ var IconButtonComponent = React38__namespace.forwardRef(
|
|
|
7848
7925
|
var _a2, _b2, _c, _d, _e;
|
|
7849
7926
|
const isToggle = variant === "toggle";
|
|
7850
7927
|
const isSelected = isToggle && !!selected;
|
|
7851
|
-
const resolvedColorClass =
|
|
7928
|
+
const resolvedColorClass = React39__namespace.useMemo(
|
|
7852
7929
|
() => isSelected ? colorStyles[colorStyle].selected : colorStyles[colorStyle].default,
|
|
7853
7930
|
[isSelected, colorStyle]
|
|
7854
7931
|
);
|
|
7855
|
-
const outlineWidthClass =
|
|
7932
|
+
const outlineWidthClass = React39__namespace.useMemo(
|
|
7856
7933
|
() => {
|
|
7857
7934
|
var _a3;
|
|
7858
7935
|
return colorStyle === "outlined" && !isSelected ? (_a3 = SIZE_OUTLINE_WIDTH[size]) != null ? _a3 : "border" : "";
|
|
7859
7936
|
},
|
|
7860
7937
|
[colorStyle, isSelected, size]
|
|
7861
7938
|
);
|
|
7862
|
-
const disabledBgClass =
|
|
7939
|
+
const disabledBgClass = React39__namespace.useMemo(
|
|
7863
7940
|
() => resolveDisabledBgClass(colorStyle),
|
|
7864
7941
|
[colorStyle]
|
|
7865
7942
|
);
|
|
@@ -7882,7 +7959,7 @@ var IconButtonComponent = React38__namespace.forwardRef(
|
|
|
7882
7959
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
7883
7960
|
disabled: loading
|
|
7884
7961
|
});
|
|
7885
|
-
const handleClick =
|
|
7962
|
+
const handleClick = React39__namespace.useCallback(
|
|
7886
7963
|
(e) => {
|
|
7887
7964
|
if (loading) {
|
|
7888
7965
|
e.preventDefault();
|
|
@@ -7892,7 +7969,7 @@ var IconButtonComponent = React38__namespace.forwardRef(
|
|
|
7892
7969
|
},
|
|
7893
7970
|
[loading, onClick]
|
|
7894
7971
|
);
|
|
7895
|
-
const handleKeyDown =
|
|
7972
|
+
const handleKeyDown = React39__namespace.useCallback(
|
|
7896
7973
|
(e) => {
|
|
7897
7974
|
if (loading) return;
|
|
7898
7975
|
if ((e.key === "Enter" || e.key === " ") && onClick) {
|
|
@@ -7948,7 +8025,7 @@ var IconButtonComponent = React38__namespace.forwardRef(
|
|
|
7948
8025
|
width: isCustomSize ? `${iconSize}px` : void 0,
|
|
7949
8026
|
height: isCustomSize ? `${iconSize}px` : void 0
|
|
7950
8027
|
},
|
|
7951
|
-
children: isSelected && selectedIcon ? selectedIcon : asChild ?
|
|
8028
|
+
children: isSelected && selectedIcon ? selectedIcon : asChild ? React39__namespace.Children.only(children).props.children : children
|
|
7952
8029
|
}),
|
|
7953
8030
|
isSelected && selectedIcon ? "selected-content" : "content"
|
|
7954
8031
|
) })
|
|
@@ -7965,7 +8042,7 @@ var IconButtonComponent = React38__namespace.forwardRef(
|
|
|
7965
8042
|
className
|
|
7966
8043
|
);
|
|
7967
8044
|
if (asChild) {
|
|
7968
|
-
const child =
|
|
8045
|
+
const child = React39__namespace.Children.only(children);
|
|
7969
8046
|
return /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domMax, strict: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7970
8047
|
reactSlot.Slot,
|
|
7971
8048
|
__spreadProps(__spreadValues({
|
|
@@ -7982,7 +8059,7 @@ var IconButtonComponent = React38__namespace.forwardRef(
|
|
|
7982
8059
|
}),
|
|
7983
8060
|
className: containerClassName
|
|
7984
8061
|
}, restProps), {
|
|
7985
|
-
children:
|
|
8062
|
+
children: React39__namespace.cloneElement(child, { children: innerContent })
|
|
7986
8063
|
})
|
|
7987
8064
|
) });
|
|
7988
8065
|
}
|
|
@@ -8010,44 +8087,81 @@ var IconButtonComponent = React38__namespace.forwardRef(
|
|
|
8010
8087
|
}
|
|
8011
8088
|
);
|
|
8012
8089
|
IconButtonComponent.displayName = "IconButton";
|
|
8013
|
-
var IconButton =
|
|
8090
|
+
var IconButton = React39__namespace.memo(IconButtonComponent);
|
|
8014
8091
|
function TrailingAction({
|
|
8015
8092
|
query,
|
|
8016
8093
|
trailingIcon,
|
|
8094
|
+
avatar,
|
|
8017
8095
|
onClear
|
|
8018
8096
|
}) {
|
|
8019
|
-
|
|
8020
|
-
|
|
8021
|
-
|
|
8097
|
+
const shouldReduceMotion = react.useReducedMotion();
|
|
8098
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
8099
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "wait", initial: false, children: query ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
8100
|
+
react.m.div,
|
|
8022
8101
|
{
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
|
|
8026
|
-
|
|
8102
|
+
initial: shouldReduceMotion ? false : { opacity: 0, scale: 0.8 },
|
|
8103
|
+
animate: { opacity: 1, scale: 1 },
|
|
8104
|
+
exit: shouldReduceMotion ? {} : { opacity: 0, scale: 0.8 },
|
|
8105
|
+
transition: { duration: 0.15 },
|
|
8106
|
+
className: "flex items-center justify-center",
|
|
8027
8107
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8028
|
-
|
|
8108
|
+
IconButton,
|
|
8029
8109
|
{
|
|
8030
|
-
|
|
8031
|
-
style: {
|
|
8032
|
-
"aria-
|
|
8033
|
-
|
|
8110
|
+
size: "sm",
|
|
8111
|
+
style: { color: SEARCH_COLORS.trailingIcon },
|
|
8112
|
+
"aria-label": "Clear search",
|
|
8113
|
+
onClick: onClear,
|
|
8114
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8115
|
+
"span",
|
|
8116
|
+
{
|
|
8117
|
+
className: "material-symbols-rounded select-none leading-none",
|
|
8118
|
+
style: { fontSize: 20 },
|
|
8119
|
+
"aria-hidden": "true",
|
|
8120
|
+
children: "close"
|
|
8121
|
+
}
|
|
8122
|
+
)
|
|
8034
8123
|
}
|
|
8035
8124
|
)
|
|
8036
|
-
}
|
|
8037
|
-
|
|
8038
|
-
|
|
8039
|
-
|
|
8040
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8041
|
-
"span",
|
|
8125
|
+
},
|
|
8126
|
+
"clear-action"
|
|
8127
|
+
) : trailingIcon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8128
|
+
react.m.span,
|
|
8042
8129
|
{
|
|
8130
|
+
initial: shouldReduceMotion ? false : { opacity: 0, scale: 0.8 },
|
|
8131
|
+
animate: { opacity: 1, scale: 1 },
|
|
8132
|
+
exit: shouldReduceMotion ? {} : { opacity: 0, scale: 0.8 },
|
|
8133
|
+
transition: { duration: 0.15 },
|
|
8043
8134
|
className: "flex shrink-0 items-center justify-center",
|
|
8044
8135
|
style: { color: SEARCH_COLORS.trailingIcon },
|
|
8045
8136
|
"aria-hidden": "true",
|
|
8046
8137
|
children: trailingIcon
|
|
8138
|
+
},
|
|
8139
|
+
"trailing-icon"
|
|
8140
|
+
) }),
|
|
8141
|
+
avatar && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8142
|
+
"span",
|
|
8143
|
+
{
|
|
8144
|
+
className: "flex shrink-0 items-center justify-center rounded-full overflow-hidden",
|
|
8145
|
+
style: {
|
|
8146
|
+
width: SearchTokens.avatarSize,
|
|
8147
|
+
height: SearchTokens.avatarSize
|
|
8148
|
+
},
|
|
8149
|
+
"aria-hidden": "true",
|
|
8150
|
+
children: avatar
|
|
8047
8151
|
}
|
|
8048
|
-
)
|
|
8049
|
-
}
|
|
8050
|
-
|
|
8152
|
+
)
|
|
8153
|
+
] });
|
|
8154
|
+
}
|
|
8155
|
+
function DefaultSearchIcon2() {
|
|
8156
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8157
|
+
"span",
|
|
8158
|
+
{
|
|
8159
|
+
className: "material-symbols-rounded select-none leading-none",
|
|
8160
|
+
style: { fontSize: SearchTokens.iconSize },
|
|
8161
|
+
"aria-hidden": "true",
|
|
8162
|
+
children: "search"
|
|
8163
|
+
}
|
|
8164
|
+
);
|
|
8051
8165
|
}
|
|
8052
8166
|
function SearchViewDocked({
|
|
8053
8167
|
query,
|
|
@@ -8057,6 +8171,7 @@ function SearchViewDocked({
|
|
|
8057
8171
|
onActiveChange,
|
|
8058
8172
|
leadingIcon,
|
|
8059
8173
|
trailingIcon,
|
|
8174
|
+
avatar,
|
|
8060
8175
|
placeholder = "Search",
|
|
8061
8176
|
textAlign = "left",
|
|
8062
8177
|
styleType = "contained",
|
|
@@ -8070,7 +8185,7 @@ function SearchViewDocked({
|
|
|
8070
8185
|
activeIndex
|
|
8071
8186
|
}) {
|
|
8072
8187
|
const shouldReduceMotion = react.useReducedMotion();
|
|
8073
|
-
const inputRef =
|
|
8188
|
+
const inputRef = React39__namespace.useRef(null);
|
|
8074
8189
|
useSearchViewFocus(inputRef, active);
|
|
8075
8190
|
const dropdownRef = useClickOutside(() => {
|
|
8076
8191
|
onActiveChange(false);
|
|
@@ -8089,10 +8204,12 @@ function SearchViewDocked({
|
|
|
8089
8204
|
react.m.div,
|
|
8090
8205
|
{
|
|
8091
8206
|
ref: dropdownRef,
|
|
8207
|
+
layout: !shouldReduceMotion,
|
|
8092
8208
|
layoutId: shouldReduceMotion ? void 0 : searchId,
|
|
8093
8209
|
className: cn(
|
|
8094
8210
|
// DockedContainerShape = CornerExtraLarge = 28dp radius
|
|
8095
8211
|
"rounded-[28px] overflow-hidden",
|
|
8212
|
+
SEARCH_ELEVATION.level3,
|
|
8096
8213
|
viewClassName
|
|
8097
8214
|
),
|
|
8098
8215
|
style: { backgroundColor: SEARCH_COLORS.container },
|
|
@@ -8114,7 +8231,7 @@ function SearchViewDocked({
|
|
|
8114
8231
|
className: "flex shrink-0 items-center justify-center",
|
|
8115
8232
|
style: { color: SEARCH_COLORS.leadingIcon },
|
|
8116
8233
|
"aria-hidden": "true",
|
|
8117
|
-
children: leadingIcon
|
|
8234
|
+
children: leadingIcon != null ? leadingIcon : /* @__PURE__ */ jsxRuntime.jsx(DefaultSearchIcon2, {})
|
|
8118
8235
|
}
|
|
8119
8236
|
),
|
|
8120
8237
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8155,6 +8272,7 @@ function SearchViewDocked({
|
|
|
8155
8272
|
{
|
|
8156
8273
|
query,
|
|
8157
8274
|
trailingIcon,
|
|
8275
|
+
avatar,
|
|
8158
8276
|
onClear: () => onQueryChange("")
|
|
8159
8277
|
}
|
|
8160
8278
|
)
|
|
@@ -8175,7 +8293,7 @@ function SearchViewDocked({
|
|
|
8175
8293
|
id: listboxId,
|
|
8176
8294
|
role: "listbox",
|
|
8177
8295
|
"aria-label": `${ariaLabel} results`,
|
|
8178
|
-
className: "min-h-
|
|
8296
|
+
className: "min-h-[120px]",
|
|
8179
8297
|
children
|
|
8180
8298
|
}
|
|
8181
8299
|
)
|
|
@@ -8204,6 +8322,7 @@ function SearchViewFullScreen({
|
|
|
8204
8322
|
onActiveChange,
|
|
8205
8323
|
leadingIcon,
|
|
8206
8324
|
trailingIcon,
|
|
8325
|
+
avatar,
|
|
8207
8326
|
placeholder = "Search",
|
|
8208
8327
|
textAlign = "left",
|
|
8209
8328
|
styleType = "contained",
|
|
@@ -8216,10 +8335,10 @@ function SearchViewFullScreen({
|
|
|
8216
8335
|
activeIndex
|
|
8217
8336
|
}) {
|
|
8218
8337
|
const shouldReduceMotion = react.useReducedMotion();
|
|
8219
|
-
const inputRef =
|
|
8338
|
+
const inputRef = React39__namespace.useRef(null);
|
|
8220
8339
|
useSearchViewFocus(inputRef, active);
|
|
8221
|
-
const [mounted, setMounted] =
|
|
8222
|
-
|
|
8340
|
+
const [mounted, setMounted] = React39__namespace.useState(false);
|
|
8341
|
+
React39__namespace.useEffect(() => {
|
|
8223
8342
|
setMounted(true);
|
|
8224
8343
|
}, []);
|
|
8225
8344
|
const handleFormSubmit = (e) => {
|
|
@@ -8318,6 +8437,7 @@ function SearchViewFullScreen({
|
|
|
8318
8437
|
{
|
|
8319
8438
|
query,
|
|
8320
8439
|
trailingIcon,
|
|
8440
|
+
avatar,
|
|
8321
8441
|
onClear: () => onQueryChange("")
|
|
8322
8442
|
}
|
|
8323
8443
|
)
|
|
@@ -8369,6 +8489,7 @@ function SearchComponent({
|
|
|
8369
8489
|
hasGap = false,
|
|
8370
8490
|
leadingIcon,
|
|
8371
8491
|
trailingIcon,
|
|
8492
|
+
avatar,
|
|
8372
8493
|
placeholder = "Search",
|
|
8373
8494
|
textAlign = "left",
|
|
8374
8495
|
children,
|
|
@@ -8377,10 +8498,10 @@ function SearchComponent({
|
|
|
8377
8498
|
className,
|
|
8378
8499
|
viewClassName
|
|
8379
8500
|
}) {
|
|
8380
|
-
const generatedId =
|
|
8501
|
+
const generatedId = React39__namespace.useId();
|
|
8381
8502
|
const searchId = id != null ? id : generatedId;
|
|
8382
8503
|
const listboxId = `${searchId}-listbox`;
|
|
8383
|
-
const itemCount =
|
|
8504
|
+
const itemCount = React39__namespace.Children.count(children);
|
|
8384
8505
|
const { activeIndex, handleKeyDown } = useSearchKeyboard({
|
|
8385
8506
|
active,
|
|
8386
8507
|
onActiveChange,
|
|
@@ -8396,6 +8517,7 @@ function SearchComponent({
|
|
|
8396
8517
|
onActiveChange,
|
|
8397
8518
|
leadingIcon,
|
|
8398
8519
|
trailingIcon,
|
|
8520
|
+
avatar,
|
|
8399
8521
|
placeholder,
|
|
8400
8522
|
textAlign,
|
|
8401
8523
|
"aria-label": ariaLabel,
|
|
@@ -8439,9 +8561,9 @@ function formatBadgeLabel(children, max) {
|
|
|
8439
8561
|
return "";
|
|
8440
8562
|
}
|
|
8441
8563
|
function detectBadgeHasContent(badge) {
|
|
8442
|
-
return
|
|
8564
|
+
return React39__namespace.isValidElement(badge) && badge.props.children != null;
|
|
8443
8565
|
}
|
|
8444
|
-
var BadgeImpl =
|
|
8566
|
+
var BadgeImpl = React39__namespace.forwardRef(
|
|
8445
8567
|
(_a, ref) => {
|
|
8446
8568
|
var _b = _a, {
|
|
8447
8569
|
children,
|
|
@@ -8495,7 +8617,7 @@ var BadgeImpl = React38__namespace.forwardRef(
|
|
|
8495
8617
|
}
|
|
8496
8618
|
);
|
|
8497
8619
|
BadgeImpl.displayName = "Badge";
|
|
8498
|
-
|
|
8620
|
+
React39__namespace.memo(BadgeImpl);
|
|
8499
8621
|
function BadgedBox({
|
|
8500
8622
|
badge,
|
|
8501
8623
|
children,
|
|
@@ -8516,9 +8638,9 @@ function BadgedBox({
|
|
|
8516
8638
|
)
|
|
8517
8639
|
] });
|
|
8518
8640
|
}
|
|
8519
|
-
var TabsContext =
|
|
8641
|
+
var TabsContext = React39__namespace.createContext(null);
|
|
8520
8642
|
function useTabsContext() {
|
|
8521
|
-
const ctx =
|
|
8643
|
+
const ctx = React39__namespace.useContext(TabsContext);
|
|
8522
8644
|
if (!ctx) {
|
|
8523
8645
|
throw new Error(
|
|
8524
8646
|
"[MD3 Tabs] Component must be used within a <Tabs> root. Ensure <TabsList>, <Tab>, and <TabsContent> are descendants of <Tabs>."
|
|
@@ -8526,7 +8648,7 @@ function useTabsContext() {
|
|
|
8526
8648
|
}
|
|
8527
8649
|
return ctx;
|
|
8528
8650
|
}
|
|
8529
|
-
var TabsComponent =
|
|
8651
|
+
var TabsComponent = React39__namespace.forwardRef(
|
|
8530
8652
|
({
|
|
8531
8653
|
value: controlledValue,
|
|
8532
8654
|
defaultValue = "",
|
|
@@ -8535,35 +8657,35 @@ var TabsComponent = React38__namespace.forwardRef(
|
|
|
8535
8657
|
children,
|
|
8536
8658
|
className
|
|
8537
8659
|
}, ref) => {
|
|
8538
|
-
const [internalValue, setInternalValue] =
|
|
8660
|
+
const [internalValue, setInternalValue] = React39__namespace.useState(defaultValue);
|
|
8539
8661
|
const isControlled = controlledValue !== void 0;
|
|
8540
8662
|
const value = isControlled ? controlledValue : internalValue;
|
|
8541
|
-
const handleValueChange =
|
|
8663
|
+
const handleValueChange = React39__namespace.useCallback(
|
|
8542
8664
|
(newValue) => {
|
|
8543
8665
|
if (!isControlled) setInternalValue(newValue);
|
|
8544
8666
|
onValueChange == null ? void 0 : onValueChange(newValue);
|
|
8545
8667
|
},
|
|
8546
8668
|
[isControlled, onValueChange]
|
|
8547
8669
|
);
|
|
8548
|
-
const [focusedValue, setFocusedValue] =
|
|
8549
|
-
|
|
8670
|
+
const [focusedValue, setFocusedValue] = React39__namespace.useState(value);
|
|
8671
|
+
React39__namespace.useEffect(() => {
|
|
8550
8672
|
setFocusedValue(value);
|
|
8551
8673
|
}, [value]);
|
|
8552
|
-
const [tabValues, setTabValues] =
|
|
8553
|
-
const registerTab =
|
|
8674
|
+
const [tabValues, setTabValues] = React39__namespace.useState([]);
|
|
8675
|
+
const registerTab = React39__namespace.useCallback((tabValue) => {
|
|
8554
8676
|
setTabValues((prev) => {
|
|
8555
8677
|
if (prev.includes(tabValue)) return prev;
|
|
8556
8678
|
return [...prev, tabValue];
|
|
8557
8679
|
});
|
|
8558
8680
|
}, []);
|
|
8559
|
-
const unregisterTab =
|
|
8681
|
+
const unregisterTab = React39__namespace.useCallback((tabValue) => {
|
|
8560
8682
|
setTabValues((prev) => prev.filter((v) => v !== tabValue));
|
|
8561
8683
|
}, []);
|
|
8562
|
-
const hasAutoSelected =
|
|
8563
|
-
const [disabledValues, setDisabledValues] =
|
|
8684
|
+
const hasAutoSelected = React39__namespace.useRef(false);
|
|
8685
|
+
const [disabledValues, setDisabledValues] = React39__namespace.useState(
|
|
8564
8686
|
/* @__PURE__ */ new Set()
|
|
8565
8687
|
);
|
|
8566
|
-
const markTabDisabled =
|
|
8688
|
+
const markTabDisabled = React39__namespace.useCallback(
|
|
8567
8689
|
(tabValue, disabled) => {
|
|
8568
8690
|
setDisabledValues((prev) => {
|
|
8569
8691
|
const next = new Set(prev);
|
|
@@ -8577,7 +8699,7 @@ var TabsComponent = React38__namespace.forwardRef(
|
|
|
8577
8699
|
},
|
|
8578
8700
|
[]
|
|
8579
8701
|
);
|
|
8580
|
-
|
|
8702
|
+
React39__namespace.useEffect(() => {
|
|
8581
8703
|
if (isControlled || hasAutoSelected.current || tabValues.length === 0) {
|
|
8582
8704
|
return;
|
|
8583
8705
|
}
|
|
@@ -8592,9 +8714,9 @@ var TabsComponent = React38__namespace.forwardRef(
|
|
|
8592
8714
|
setFocusedValue(firstEnabled);
|
|
8593
8715
|
}
|
|
8594
8716
|
}, [tabValues, disabledValues, isControlled, value]);
|
|
8595
|
-
const id =
|
|
8717
|
+
const id = React39__namespace.useId();
|
|
8596
8718
|
const layoutGroupId = `tabs-${id}`;
|
|
8597
|
-
const contextValue =
|
|
8719
|
+
const contextValue = React39__namespace.useMemo(
|
|
8598
8720
|
() => ({
|
|
8599
8721
|
value,
|
|
8600
8722
|
onValueChange: handleValueChange,
|
|
@@ -8625,12 +8747,12 @@ var TabsComponent = React38__namespace.forwardRef(
|
|
|
8625
8747
|
}
|
|
8626
8748
|
);
|
|
8627
8749
|
TabsComponent.displayName = "Tabs";
|
|
8628
|
-
var Tabs =
|
|
8629
|
-
var TabsListContext =
|
|
8750
|
+
var Tabs = React39__namespace.memo(TabsComponent);
|
|
8751
|
+
var TabsListContext = React39__namespace.createContext(
|
|
8630
8752
|
null
|
|
8631
8753
|
);
|
|
8632
8754
|
function useTabsListContext() {
|
|
8633
|
-
const ctx =
|
|
8755
|
+
const ctx = React39__namespace.useContext(TabsListContext);
|
|
8634
8756
|
return ctx != null ? ctx : { variant: "primary", scrollable: false };
|
|
8635
8757
|
}
|
|
8636
8758
|
|
|
@@ -8714,7 +8836,7 @@ var TABS_CONTENT_TRANSITION = {
|
|
|
8714
8836
|
ease: "easeInOut"
|
|
8715
8837
|
};
|
|
8716
8838
|
var INDICATOR_MIN_WIDTH = 24;
|
|
8717
|
-
var TabComponent =
|
|
8839
|
+
var TabComponent = React39__namespace.forwardRef(
|
|
8718
8840
|
({
|
|
8719
8841
|
value,
|
|
8720
8842
|
icon,
|
|
@@ -8744,9 +8866,9 @@ var TabComponent = React38__namespace.forwardRef(
|
|
|
8744
8866
|
const isFocused = focusedValue === value;
|
|
8745
8867
|
const hasIcon = icon != null;
|
|
8746
8868
|
const isStackedIcon = hasIcon && !inlineIcon;
|
|
8747
|
-
const buttonRef =
|
|
8748
|
-
const isFirstMount =
|
|
8749
|
-
const mergedRef =
|
|
8869
|
+
const buttonRef = React39__namespace.useRef(null);
|
|
8870
|
+
const isFirstMount = React39__namespace.useRef(true);
|
|
8871
|
+
const mergedRef = React39__namespace.useCallback(
|
|
8750
8872
|
(node) => {
|
|
8751
8873
|
buttonRef.current = node;
|
|
8752
8874
|
if (typeof ref === "function") ref(node);
|
|
@@ -8754,15 +8876,15 @@ var TabComponent = React38__namespace.forwardRef(
|
|
|
8754
8876
|
},
|
|
8755
8877
|
[ref]
|
|
8756
8878
|
);
|
|
8757
|
-
|
|
8879
|
+
React39__namespace.useEffect(() => {
|
|
8758
8880
|
registerTab(value);
|
|
8759
8881
|
return () => unregisterTab(value);
|
|
8760
8882
|
}, [value, registerTab, unregisterTab]);
|
|
8761
|
-
|
|
8883
|
+
React39__namespace.useEffect(() => {
|
|
8762
8884
|
markTabDisabled(value, disabled);
|
|
8763
8885
|
return () => markTabDisabled(value, false);
|
|
8764
8886
|
}, [value, disabled, markTabDisabled]);
|
|
8765
|
-
const handleKeyDown =
|
|
8887
|
+
const handleKeyDown = React39__namespace.useCallback(
|
|
8766
8888
|
(e) => {
|
|
8767
8889
|
const isRtl = buttonRef.current ? getComputedStyle(buttonRef.current).direction === "rtl" : false;
|
|
8768
8890
|
const enabledValues = tabValues.filter((v) => !disabledValues.has(v));
|
|
@@ -8816,7 +8938,7 @@ var TabComponent = React38__namespace.forwardRef(
|
|
|
8816
8938
|
autoActivate
|
|
8817
8939
|
]
|
|
8818
8940
|
);
|
|
8819
|
-
|
|
8941
|
+
React39__namespace.useEffect(() => {
|
|
8820
8942
|
if (isFirstMount.current) {
|
|
8821
8943
|
isFirstMount.current = false;
|
|
8822
8944
|
return;
|
|
@@ -8825,7 +8947,7 @@ var TabComponent = React38__namespace.forwardRef(
|
|
|
8825
8947
|
buttonRef.current.focus({ preventScroll: true });
|
|
8826
8948
|
}
|
|
8827
8949
|
}, [isFocused]);
|
|
8828
|
-
|
|
8950
|
+
React39__namespace.useEffect(() => {
|
|
8829
8951
|
if (!isActive || !scrollable || !buttonRef.current) return;
|
|
8830
8952
|
const btn = buttonRef.current;
|
|
8831
8953
|
let container = btn.parentElement;
|
|
@@ -8962,8 +9084,8 @@ var TabComponent = React38__namespace.forwardRef(
|
|
|
8962
9084
|
}
|
|
8963
9085
|
);
|
|
8964
9086
|
TabComponent.displayName = "Tab";
|
|
8965
|
-
var Tab =
|
|
8966
|
-
var TabsContentComponent =
|
|
9087
|
+
var Tab = React39__namespace.memo(TabComponent);
|
|
9088
|
+
var TabsContentComponent = React39__namespace.forwardRef(
|
|
8967
9089
|
({ value, className, children }, ref) => {
|
|
8968
9090
|
var _a;
|
|
8969
9091
|
const { value: selectedValue, layoutGroupId } = useTabsContext();
|
|
@@ -8997,8 +9119,8 @@ var TabsContentComponent = React38__namespace.forwardRef(
|
|
|
8997
9119
|
}
|
|
8998
9120
|
);
|
|
8999
9121
|
TabsContentComponent.displayName = "TabsContent";
|
|
9000
|
-
var TabsContent =
|
|
9001
|
-
var TabsListComponent =
|
|
9122
|
+
var TabsContent = React39__namespace.memo(TabsContentComponent);
|
|
9123
|
+
var TabsListComponent = React39__namespace.forwardRef(
|
|
9002
9124
|
({
|
|
9003
9125
|
variant,
|
|
9004
9126
|
scrollable = false,
|
|
@@ -9009,12 +9131,12 @@ var TabsListComponent = React38__namespace.forwardRef(
|
|
|
9009
9131
|
}, ref) => {
|
|
9010
9132
|
const { layoutGroupId, value, setFocusedValue } = useTabsContext();
|
|
9011
9133
|
const listLayoutId = `${layoutGroupId}-list`;
|
|
9012
|
-
const listContextValue =
|
|
9134
|
+
const listContextValue = React39__namespace.useMemo(
|
|
9013
9135
|
() => ({ variant, scrollable }),
|
|
9014
9136
|
[variant, scrollable]
|
|
9015
9137
|
);
|
|
9016
9138
|
const bgColor = backgroundColor != null ? backgroundColor : "var(--md-sys-color-surface)";
|
|
9017
|
-
const handleBlur =
|
|
9139
|
+
const handleBlur = React39__namespace.useCallback(
|
|
9018
9140
|
(e) => {
|
|
9019
9141
|
const listEl = e.currentTarget;
|
|
9020
9142
|
if (listEl.contains(e.relatedTarget)) return;
|
|
@@ -9063,7 +9185,7 @@ var TabsListComponent = React38__namespace.forwardRef(
|
|
|
9063
9185
|
}
|
|
9064
9186
|
);
|
|
9065
9187
|
TabsListComponent.displayName = "TabsList";
|
|
9066
|
-
var TabsList =
|
|
9188
|
+
var TabsList = React39__namespace.memo(TabsListComponent);
|
|
9067
9189
|
|
|
9068
9190
|
// src/ui/toolbar/toolbar-colors.ts
|
|
9069
9191
|
var standardFloatingToolbarColors = {
|
|
@@ -9119,13 +9241,13 @@ function getToolbarColors(variant = "standard", customColors) {
|
|
|
9119
9241
|
return standardFloatingToolbarColors;
|
|
9120
9242
|
}
|
|
9121
9243
|
}
|
|
9122
|
-
var ToolbarContext =
|
|
9244
|
+
var ToolbarContext = React39__namespace.createContext(
|
|
9123
9245
|
null
|
|
9124
9246
|
);
|
|
9125
9247
|
function useToolbarContext() {
|
|
9126
|
-
return
|
|
9248
|
+
return React39__namespace.useContext(ToolbarContext);
|
|
9127
9249
|
}
|
|
9128
|
-
var BottomDockedToolbar =
|
|
9250
|
+
var BottomDockedToolbar = React39__namespace.forwardRef(
|
|
9129
9251
|
(_a, ref) => {
|
|
9130
9252
|
var _b = _a, {
|
|
9131
9253
|
variant = "standard",
|
|
@@ -9158,8 +9280,8 @@ var BottomDockedToolbar = React38__namespace.forwardRef(
|
|
|
9158
9280
|
const { scrollY } = react.useScroll(
|
|
9159
9281
|
scrollContainerRef ? { container: scrollContainerRef } : void 0
|
|
9160
9282
|
);
|
|
9161
|
-
const [isHidden, setIsHidden] =
|
|
9162
|
-
const lastScrollY =
|
|
9283
|
+
const [isHidden, setIsHidden] = React39__namespace.useState(false);
|
|
9284
|
+
const lastScrollY = React39__namespace.useRef(0);
|
|
9163
9285
|
react.useMotionValueEvent(scrollY, "change", (latest) => {
|
|
9164
9286
|
if (!hideOnScroll) return;
|
|
9165
9287
|
const diff = latest - lastScrollY.current;
|
|
@@ -9318,15 +9440,15 @@ function buildSlotVariants(xHidden, yHidden, isHorizontal) {
|
|
|
9318
9440
|
};
|
|
9319
9441
|
}
|
|
9320
9442
|
function applyItemClassName(nodes, itemClassName) {
|
|
9321
|
-
return
|
|
9322
|
-
if (!
|
|
9443
|
+
return React39__namespace.Children.map(nodes, (child) => {
|
|
9444
|
+
if (!React39__namespace.isValidElement(child)) return child;
|
|
9323
9445
|
const element = child;
|
|
9324
|
-
return
|
|
9446
|
+
return React39__namespace.cloneElement(element, {
|
|
9325
9447
|
className: cn(element.props.className, itemClassName)
|
|
9326
9448
|
});
|
|
9327
9449
|
});
|
|
9328
9450
|
}
|
|
9329
|
-
var FloatingToolbarBase =
|
|
9451
|
+
var FloatingToolbarBase = React39__namespace.forwardRef(
|
|
9330
9452
|
(_a, ref) => {
|
|
9331
9453
|
var _b = _a, {
|
|
9332
9454
|
expanded,
|
|
@@ -9498,11 +9620,11 @@ var FloatingToolbarBase = React38__namespace.forwardRef(
|
|
|
9498
9620
|
}
|
|
9499
9621
|
);
|
|
9500
9622
|
FloatingToolbarBase.displayName = "FloatingToolbarBase";
|
|
9501
|
-
var HorizontalFloatingToolbar =
|
|
9623
|
+
var HorizontalFloatingToolbar = React39__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(FloatingToolbarBase, __spreadValues({ ref, orientation: "horizontal" }, props)));
|
|
9502
9624
|
HorizontalFloatingToolbar.displayName = "HorizontalFloatingToolbar";
|
|
9503
|
-
var VerticalFloatingToolbar =
|
|
9625
|
+
var VerticalFloatingToolbar = React39__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(FloatingToolbarBase, __spreadValues({ ref, orientation: "vertical" }, props)));
|
|
9504
9626
|
VerticalFloatingToolbar.displayName = "VerticalFloatingToolbar";
|
|
9505
|
-
var FloatingToolbarWithFabBase =
|
|
9627
|
+
var FloatingToolbarWithFabBase = React39__namespace.forwardRef(
|
|
9506
9628
|
(_a, ref) => {
|
|
9507
9629
|
var _b = _a, {
|
|
9508
9630
|
expanded,
|
|
@@ -9630,9 +9752,9 @@ var FloatingToolbarWithFabBase = React38__namespace.forwardRef(
|
|
|
9630
9752
|
}
|
|
9631
9753
|
);
|
|
9632
9754
|
FloatingToolbarWithFabBase.displayName = "FloatingToolbarWithFabBase";
|
|
9633
|
-
var HorizontalFloatingToolbarWithFab =
|
|
9755
|
+
var HorizontalFloatingToolbarWithFab = React39__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(FloatingToolbarWithFabBase, __spreadValues({ ref, orientation: "horizontal" }, props)));
|
|
9634
9756
|
HorizontalFloatingToolbarWithFab.displayName = "HorizontalFloatingToolbarWithFab";
|
|
9635
|
-
var VerticalFloatingToolbarWithFab =
|
|
9757
|
+
var VerticalFloatingToolbarWithFab = React39__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(FloatingToolbarWithFabBase, __spreadValues({ ref, orientation: "vertical" }, props)));
|
|
9636
9758
|
VerticalFloatingToolbarWithFab.displayName = "VerticalFloatingToolbarWithFab";
|
|
9637
9759
|
var ToolbarDivider = ({
|
|
9638
9760
|
orientation: propsOrientation,
|
|
@@ -9668,7 +9790,7 @@ var VARIANT_TO_COLOR_STYLE = {
|
|
|
9668
9790
|
tonal: "tonal",
|
|
9669
9791
|
filled: "filled"
|
|
9670
9792
|
};
|
|
9671
|
-
var ToolbarIconButton =
|
|
9793
|
+
var ToolbarIconButton = React39__namespace.forwardRef(
|
|
9672
9794
|
(_a, ref) => {
|
|
9673
9795
|
var _b = _a, {
|
|
9674
9796
|
emphasis = "standard",
|
|
@@ -9730,13 +9852,13 @@ function useFloatingToolbarScrollBehavior(options = {}) {
|
|
|
9730
9852
|
expandThreshold = 10,
|
|
9731
9853
|
scrollContainerRef
|
|
9732
9854
|
} = options;
|
|
9733
|
-
const [isExpanded, setIsExpanded] =
|
|
9734
|
-
const [offset, setOffset] =
|
|
9855
|
+
const [isExpanded, setIsExpanded] = React39.useState(true);
|
|
9856
|
+
const [offset, setOffset] = React39.useState(0);
|
|
9735
9857
|
const { scrollY } = react.useScroll({
|
|
9736
9858
|
container: scrollContainerRef
|
|
9737
9859
|
});
|
|
9738
|
-
const lastScrollY =
|
|
9739
|
-
const accumulatedScroll =
|
|
9860
|
+
const lastScrollY = React39.useRef(0);
|
|
9861
|
+
const accumulatedScroll = React39.useRef(0);
|
|
9740
9862
|
react.useMotionValueEvent(scrollY, "change", (currentScrollY) => {
|
|
9741
9863
|
const deltaY = currentScrollY - lastScrollY.current;
|
|
9742
9864
|
if (currentScrollY < 0) return;
|
|
@@ -9758,7 +9880,7 @@ function useFloatingToolbarScrollBehavior(options = {}) {
|
|
|
9758
9880
|
}
|
|
9759
9881
|
}
|
|
9760
9882
|
});
|
|
9761
|
-
|
|
9883
|
+
React39.useEffect(() => {
|
|
9762
9884
|
if (typeof window !== "undefined") {
|
|
9763
9885
|
const matchMedia = window.matchMedia("(forced-colors: active)");
|
|
9764
9886
|
if (matchMedia.matches) {
|
|
@@ -9840,7 +9962,7 @@ var MOTION_PROP_KEYS = [
|
|
|
9840
9962
|
"layoutId",
|
|
9841
9963
|
"onLayoutAnimationComplete"
|
|
9842
9964
|
];
|
|
9843
|
-
var ToolbarToggleButton =
|
|
9965
|
+
var ToolbarToggleButton = React39__namespace.forwardRef(
|
|
9844
9966
|
(_a, ref) => {
|
|
9845
9967
|
var _b = _a, {
|
|
9846
9968
|
emphasis = "standard",
|
|
@@ -9874,7 +9996,7 @@ var ToolbarToggleButton = React38__namespace.forwardRef(
|
|
|
9874
9996
|
"onPointerLeave"
|
|
9875
9997
|
]);
|
|
9876
9998
|
const context = useToolbarContext();
|
|
9877
|
-
const [isPressed, setIsPressed] =
|
|
9999
|
+
const [isPressed, setIsPressed] = React39__namespace.useState(false);
|
|
9878
10000
|
const {
|
|
9879
10001
|
ripples,
|
|
9880
10002
|
onPointerDown: handleRipplePointerDown,
|
|
@@ -9882,7 +10004,7 @@ var ToolbarToggleButton = React38__namespace.forwardRef(
|
|
|
9882
10004
|
} = useRippleState({
|
|
9883
10005
|
disabled: Boolean(disabled) || !ripple
|
|
9884
10006
|
});
|
|
9885
|
-
const handlePointerDown =
|
|
10007
|
+
const handlePointerDown = React39__namespace.useCallback(
|
|
9886
10008
|
(e) => {
|
|
9887
10009
|
setIsPressed(true);
|
|
9888
10010
|
if (!disabled && ripple) {
|
|
@@ -9892,14 +10014,14 @@ var ToolbarToggleButton = React38__namespace.forwardRef(
|
|
|
9892
10014
|
},
|
|
9893
10015
|
[disabled, ripple, handleRipplePointerDown, onPointerDownProp]
|
|
9894
10016
|
);
|
|
9895
|
-
const handlePointerUp =
|
|
10017
|
+
const handlePointerUp = React39__namespace.useCallback(
|
|
9896
10018
|
(e) => {
|
|
9897
10019
|
setIsPressed(false);
|
|
9898
10020
|
onPointerUpProp == null ? void 0 : onPointerUpProp(e);
|
|
9899
10021
|
},
|
|
9900
10022
|
[onPointerUpProp]
|
|
9901
10023
|
);
|
|
9902
|
-
const handlePointerLeave =
|
|
10024
|
+
const handlePointerLeave = React39__namespace.useCallback(
|
|
9903
10025
|
(e) => {
|
|
9904
10026
|
setIsPressed(false);
|
|
9905
10027
|
onPointerLeaveProp == null ? void 0 : onPointerLeaveProp(e);
|
|
@@ -9918,14 +10040,14 @@ var ToolbarToggleButton = React38__namespace.forwardRef(
|
|
|
9918
10040
|
context == null ? void 0 : context.itemClassName,
|
|
9919
10041
|
className
|
|
9920
10042
|
);
|
|
9921
|
-
const animateConfig =
|
|
10043
|
+
const animateConfig = React39__namespace.useMemo(
|
|
9922
10044
|
() => ({
|
|
9923
10045
|
scaleX: pressExpand && isPressed ? 1 + pressExpandRatio : 1,
|
|
9924
10046
|
borderRadius: isPressed ? ToolbarToggleButtonRadiusTokens.pressedRadius : ToolbarToggleButtonRadiusTokens.pillRadius
|
|
9925
10047
|
}),
|
|
9926
10048
|
[pressExpand, pressExpandRatio, isPressed]
|
|
9927
10049
|
);
|
|
9928
|
-
const transitionConfig =
|
|
10050
|
+
const transitionConfig = React39__namespace.useMemo(
|
|
9929
10051
|
() => ({
|
|
9930
10052
|
scaleX: FAST_SPATIAL_SPRING,
|
|
9931
10053
|
borderRadius: BUTTON_RADIUS_SPRING
|
|
@@ -9947,7 +10069,7 @@ var ToolbarToggleButton = React38__namespace.forwardRef(
|
|
|
9947
10069
|
children && (typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children }) : children)
|
|
9948
10070
|
] });
|
|
9949
10071
|
if (asChild) {
|
|
9950
|
-
const child =
|
|
10072
|
+
const child = React39__namespace.Children.only(children);
|
|
9951
10073
|
const childContent = child.props.children;
|
|
9952
10074
|
const innerChildContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
9953
10075
|
ripple && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9986,7 +10108,7 @@ var ToolbarToggleButton = React38__namespace.forwardRef(
|
|
|
9986
10108
|
onPointerUp: handlePointerUp,
|
|
9987
10109
|
onPointerLeave: handlePointerLeave
|
|
9988
10110
|
}, strippedProps), {
|
|
9989
|
-
children:
|
|
10111
|
+
children: React39__namespace.cloneElement(child, { children: innerChildContent })
|
|
9990
10112
|
})
|
|
9991
10113
|
) });
|
|
9992
10114
|
}
|
|
@@ -10073,6 +10195,7 @@ exports.SEARCH_BAR_EXIT_SPRING = SEARCH_BAR_EXIT_SPRING;
|
|
|
10073
10195
|
exports.SEARCH_BAR_EXPAND_SPRING = SEARCH_BAR_EXPAND_SPRING;
|
|
10074
10196
|
exports.SEARCH_COLORS = SEARCH_COLORS;
|
|
10075
10197
|
exports.SEARCH_DOCKED_REVEAL_SPRING = SEARCH_DOCKED_REVEAL_SPRING;
|
|
10198
|
+
exports.SEARCH_ELEVATION = SEARCH_ELEVATION;
|
|
10076
10199
|
exports.SEARCH_FULLSCREEN_SPRING = SEARCH_FULLSCREEN_SPRING;
|
|
10077
10200
|
exports.SEARCH_TYPOGRAPHY = SEARCH_TYPOGRAPHY;
|
|
10078
10201
|
exports.SEARCH_VIEW_SPRING = SEARCH_VIEW_SPRING;
|