@bug-on/m3-expressive 1.2.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/buttons.d.mts +26 -5
- package/dist/buttons.d.ts +26 -5
- package/dist/buttons.js +581 -345
- package/dist/buttons.js.map +1 -1
- package/dist/buttons.mjs +573 -345
- package/dist/buttons.mjs.map +1 -1
- package/dist/core.js +52 -13
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +52 -13
- package/dist/core.mjs.map +1 -1
- package/dist/feedback.js +52 -13
- package/dist/feedback.js.map +1 -1
- package/dist/feedback.mjs +52 -13
- package/dist/feedback.mjs.map +1 -1
- package/dist/forms.js +4 -1
- package/dist/forms.js.map +1 -1
- package/dist/forms.mjs +4 -1
- package/dist/forms.mjs.map +1 -1
- package/dist/{icon-button-sSt6PPLg.d.mts → icon-button-CSsDmuQC.d.mts} +13 -0
- package/dist/{icon-button-sSt6PPLg.d.ts → icon-button-CSsDmuQC.d.ts} +13 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1268 -1005
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1127 -865
- package/dist/index.mjs.map +1 -1
- package/dist/layout.js +15 -7
- package/dist/layout.js.map +1 -1
- package/dist/layout.mjs +15 -7
- package/dist/layout.mjs.map +1 -1
- package/dist/navigation.d.mts +1 -1
- package/dist/navigation.d.ts +1 -1
- package/dist/navigation.js +66 -16
- package/dist/navigation.js.map +1 -1
- package/dist/navigation.mjs +66 -16
- package/dist/navigation.mjs.map +1 -1
- package/dist/overlays.js +52 -13
- package/dist/overlays.js.map +1 -1
- package/dist/overlays.mjs +52 -13
- package/dist/overlays.mjs.map +1 -1
- package/dist/pickers.js +177 -111
- package/dist/pickers.js.map +1 -1
- package/dist/pickers.mjs +177 -111
- package/dist/pickers.mjs.map +1 -1
- package/dist/{split-button-trailing-uncheckable-BcPD_7uK.d.ts → split-button-trailing-uncheckable-C-qQlyZx.d.ts} +74 -19
- package/dist/{split-button-trailing-uncheckable-DtFJkTFr.d.mts → split-button-trailing-uncheckable-DHJqNeq_.d.mts} +74 -19
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
2
|
+
import * as React61 from 'react';
|
|
3
3
|
import { createContext, forwardRef, useState, useRef, useCallback, useMemo, useEffect, useLayoutEffect, useReducer, useContext, useId, cloneElement, createElement } from 'react';
|
|
4
4
|
import { hexFromArgb, Hct, SchemeExpressive, SchemeNeutral, SchemeMonochrome, SchemeContent, SchemeFidelity, SchemeVibrant, SchemeTonalSpot } from '@material/material-color-utilities';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -228,7 +228,7 @@ function applyTheme(sourceColorHex, mode = "light", root = document.documentElem
|
|
|
228
228
|
const resolved = resolveMode(mode);
|
|
229
229
|
const colors = generateM3Theme(sourceColorHex, resolved, options);
|
|
230
230
|
for (const [key, value] of Object.entries(colors)) {
|
|
231
|
-
const kebabKey = key.replace(/[A-Z]/g, (
|
|
231
|
+
const kebabKey = key.replace(/[A-Z]/g, (m71) => `-${m71.toLowerCase()}`);
|
|
232
232
|
root.style.setProperty(`--md-sys-color-${kebabKey}`, value);
|
|
233
233
|
root.style.setProperty(`--color-m3-${kebabKey}`, value);
|
|
234
234
|
}
|
|
@@ -250,7 +250,7 @@ function createMd3ExpressiveTheme(options) {
|
|
|
250
250
|
function schemeToCssVariables(scheme) {
|
|
251
251
|
const result = {};
|
|
252
252
|
for (const [key, value] of Object.entries(scheme)) {
|
|
253
|
-
const kebabKey = key.replace(/[A-Z]/g, (
|
|
253
|
+
const kebabKey = key.replace(/[A-Z]/g, (m71) => `-${m71.toLowerCase()}`);
|
|
254
254
|
result[`--md-sys-color-${kebabKey}`] = value;
|
|
255
255
|
}
|
|
256
256
|
return result;
|
|
@@ -1087,8 +1087,8 @@ var RoundedPolygon = class _RoundedPolygon {
|
|
|
1087
1087
|
);
|
|
1088
1088
|
const mid = c.pointOnCurve(0.5);
|
|
1089
1089
|
const md = distanceSquared(mid.x - this.centerX, mid.y - this.centerY);
|
|
1090
|
-
const
|
|
1091
|
-
if (
|
|
1090
|
+
const m71 = Math.max(ad, md);
|
|
1091
|
+
if (m71 > maxDistSq) maxDistSq = m71;
|
|
1092
1092
|
}
|
|
1093
1093
|
const d = Math.sqrt(maxDistSq);
|
|
1094
1094
|
return [
|
|
@@ -3159,7 +3159,7 @@ var SUBMENU_CONTAINER_VARIANTS = {
|
|
|
3159
3159
|
transition: FAST_EFFECTS_TRANSITION
|
|
3160
3160
|
}
|
|
3161
3161
|
};
|
|
3162
|
-
var MenuContext =
|
|
3162
|
+
var MenuContext = React61.createContext({
|
|
3163
3163
|
variant: "baseline",
|
|
3164
3164
|
colorVariant: "standard",
|
|
3165
3165
|
menuPrimitive: "dropdown",
|
|
@@ -3175,15 +3175,15 @@ function MenuProvider({
|
|
|
3175
3175
|
onOpenChange,
|
|
3176
3176
|
children
|
|
3177
3177
|
}) {
|
|
3178
|
-
const value =
|
|
3178
|
+
const value = React61.useMemo(
|
|
3179
3179
|
() => ({ variant, colorVariant, menuPrimitive, open, onOpenChange }),
|
|
3180
3180
|
[variant, colorVariant, menuPrimitive, open, onOpenChange]
|
|
3181
3181
|
);
|
|
3182
3182
|
return /* @__PURE__ */ jsx(MenuContext.Provider, { value, children });
|
|
3183
3183
|
}
|
|
3184
3184
|
function useMenuContext() {
|
|
3185
|
-
const ctx =
|
|
3186
|
-
return
|
|
3185
|
+
const ctx = React61.useContext(MenuContext);
|
|
3186
|
+
return React61.useMemo(
|
|
3187
3187
|
() => __spreadProps(__spreadValues({}, ctx), {
|
|
3188
3188
|
isStatic: ctx.menuPrimitive === "static",
|
|
3189
3189
|
menuVariant: ctx.variant
|
|
@@ -3298,7 +3298,7 @@ function ContextMenu({
|
|
|
3298
3298
|
variant = "baseline",
|
|
3299
3299
|
colorVariant = "standard"
|
|
3300
3300
|
}) {
|
|
3301
|
-
const [open, setOpen] =
|
|
3301
|
+
const [open, setOpen] = React61.useState(false);
|
|
3302
3302
|
return /* @__PURE__ */ jsx(
|
|
3303
3303
|
MenuProvider,
|
|
3304
3304
|
{
|
|
@@ -3312,12 +3312,12 @@ function ContextMenu({
|
|
|
3312
3312
|
);
|
|
3313
3313
|
}
|
|
3314
3314
|
ContextMenu.displayName = "ContextMenu";
|
|
3315
|
-
var ContextMenuTrigger =
|
|
3315
|
+
var ContextMenuTrigger = React61.forwardRef((_a, ref) => {
|
|
3316
3316
|
var _b = _a, { children, asChild = true } = _b, props = __objRest(_b, ["children", "asChild"]);
|
|
3317
3317
|
return /* @__PURE__ */ jsx(RxContextMenu.Trigger, __spreadProps(__spreadValues({ ref, asChild }, props), { children }));
|
|
3318
3318
|
});
|
|
3319
3319
|
ContextMenuTrigger.displayName = "ContextMenuTrigger";
|
|
3320
|
-
var ContextMenuContent =
|
|
3320
|
+
var ContextMenuContent = React61.forwardRef(
|
|
3321
3321
|
(_a, ref) => {
|
|
3322
3322
|
var _b = _a, {
|
|
3323
3323
|
children,
|
|
@@ -3365,10 +3365,10 @@ var ContextMenuContent = React59.forwardRef(
|
|
|
3365
3365
|
className
|
|
3366
3366
|
);
|
|
3367
3367
|
const flattenChildren = (nodes) => {
|
|
3368
|
-
return
|
|
3368
|
+
return React61.Children.toArray(nodes).reduce(
|
|
3369
3369
|
(acc, child) => {
|
|
3370
|
-
if (
|
|
3371
|
-
if (child.type ===
|
|
3370
|
+
if (React61.isValidElement(child)) {
|
|
3371
|
+
if (child.type === React61.Fragment) {
|
|
3372
3372
|
return acc.concat(
|
|
3373
3373
|
flattenChildren(
|
|
3374
3374
|
child.props.children
|
|
@@ -3387,7 +3387,7 @@ var ContextMenuContent = React59.forwardRef(
|
|
|
3387
3387
|
const validChildren = flattenChildren(children);
|
|
3388
3388
|
const groupCount = validChildren.length;
|
|
3389
3389
|
const enhancedChildren = validChildren.map(
|
|
3390
|
-
(child, i) =>
|
|
3390
|
+
(child, i) => React61.cloneElement(
|
|
3391
3391
|
child,
|
|
3392
3392
|
{
|
|
3393
3393
|
index: i,
|
|
@@ -3451,12 +3451,12 @@ function Menu(_a) {
|
|
|
3451
3451
|
]);
|
|
3452
3452
|
var _a2;
|
|
3453
3453
|
const resolvedVariant = (_a2 = variant != null ? variant : menuVariant) != null ? _a2 : "baseline";
|
|
3454
|
-
const [internalOpen, setInternalOpen] =
|
|
3454
|
+
const [internalOpen, setInternalOpen] = React61.useState(
|
|
3455
3455
|
() => defaultOpen != null ? defaultOpen : false
|
|
3456
3456
|
);
|
|
3457
3457
|
const isControlled = controlledOpen !== void 0;
|
|
3458
3458
|
const open = isControlled ? controlledOpen : internalOpen;
|
|
3459
|
-
const handleOpenChange =
|
|
3459
|
+
const handleOpenChange = React61.useCallback(
|
|
3460
3460
|
(next) => {
|
|
3461
3461
|
if (!isControlled) setInternalOpen(next);
|
|
3462
3462
|
controlledOnOpenChange == null ? void 0 : controlledOnOpenChange(next);
|
|
@@ -3483,12 +3483,12 @@ function Menu(_a) {
|
|
|
3483
3483
|
);
|
|
3484
3484
|
}
|
|
3485
3485
|
Menu.displayName = "Menu";
|
|
3486
|
-
var MenuTrigger =
|
|
3486
|
+
var MenuTrigger = React61.forwardRef((_a, ref) => {
|
|
3487
3487
|
var _b = _a, { children, asChild = true } = _b, props = __objRest(_b, ["children", "asChild"]);
|
|
3488
3488
|
return /* @__PURE__ */ jsx(DropdownMenu.Trigger, __spreadProps(__spreadValues({ ref, asChild }, props), { children }));
|
|
3489
3489
|
});
|
|
3490
3490
|
MenuTrigger.displayName = "MenuTrigger";
|
|
3491
|
-
var MenuContent =
|
|
3491
|
+
var MenuContent = React61.forwardRef(
|
|
3492
3492
|
(_a, ref) => {
|
|
3493
3493
|
var _b = _a, {
|
|
3494
3494
|
children,
|
|
@@ -3542,10 +3542,10 @@ var MenuContent = React59.forwardRef(
|
|
|
3542
3542
|
className
|
|
3543
3543
|
);
|
|
3544
3544
|
const flattenChildren = (nodes) => {
|
|
3545
|
-
return
|
|
3545
|
+
return React61.Children.toArray(nodes).reduce(
|
|
3546
3546
|
(acc, child) => {
|
|
3547
|
-
if (
|
|
3548
|
-
if (child.type ===
|
|
3547
|
+
if (React61.isValidElement(child)) {
|
|
3548
|
+
if (child.type === React61.Fragment) {
|
|
3549
3549
|
return acc.concat(
|
|
3550
3550
|
flattenChildren(
|
|
3551
3551
|
child.props.children
|
|
@@ -3564,7 +3564,7 @@ var MenuContent = React59.forwardRef(
|
|
|
3564
3564
|
const validChildren = flattenChildren(children);
|
|
3565
3565
|
const groupCount = validChildren.length;
|
|
3566
3566
|
const enhancedChildren = validChildren.map(
|
|
3567
|
-
(child, i) =>
|
|
3567
|
+
(child, i) => React61.cloneElement(child, {
|
|
3568
3568
|
index: i,
|
|
3569
3569
|
count: groupCount,
|
|
3570
3570
|
isGapVariant: isExpressiveGap
|
|
@@ -3619,7 +3619,7 @@ var MenuContent = React59.forwardRef(
|
|
|
3619
3619
|
}
|
|
3620
3620
|
);
|
|
3621
3621
|
MenuContent.displayName = "MenuContent";
|
|
3622
|
-
var MenuDivider =
|
|
3622
|
+
var MenuDivider = React61.forwardRef(
|
|
3623
3623
|
(_a, ref) => {
|
|
3624
3624
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3625
3625
|
const { menuVariant } = useMenuContext();
|
|
@@ -3650,7 +3650,7 @@ function getGroupPosition(index, count) {
|
|
|
3650
3650
|
function getGroupActiveShape(position) {
|
|
3651
3651
|
return GROUP_SHAPES[`${position}Active`];
|
|
3652
3652
|
}
|
|
3653
|
-
var MenuGroup =
|
|
3653
|
+
var MenuGroup = React61.forwardRef(
|
|
3654
3654
|
(_a, ref) => {
|
|
3655
3655
|
var _b = _a, {
|
|
3656
3656
|
children,
|
|
@@ -3680,15 +3680,15 @@ var MenuGroup = React59.forwardRef(
|
|
|
3680
3680
|
const colors = menuVariant === "baseline" ? BASELINE_COLORS : colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
|
|
3681
3681
|
const position = getGroupPosition(index, count);
|
|
3682
3682
|
const activeShape = getGroupActiveShape(position);
|
|
3683
|
-
const [isHovered, setIsHovered] =
|
|
3683
|
+
const [isHovered, setIsHovered] = React61.useState(false);
|
|
3684
3684
|
const currentShape = isStatic || isHovered ? activeShape : GROUP_SHAPES.inactive;
|
|
3685
|
-
const handlePointerEnter =
|
|
3686
|
-
const handlePointerLeave =
|
|
3685
|
+
const handlePointerEnter = React61.useCallback(() => setIsHovered(true), []);
|
|
3686
|
+
const handlePointerLeave = React61.useCallback(() => setIsHovered(false), []);
|
|
3687
3687
|
const flattenChildren = (children2) => {
|
|
3688
|
-
return
|
|
3688
|
+
return React61.Children.toArray(children2).reduce(
|
|
3689
3689
|
(acc, child) => {
|
|
3690
|
-
if (
|
|
3691
|
-
if (child.type ===
|
|
3690
|
+
if (React61.isValidElement(child)) {
|
|
3691
|
+
if (child.type === React61.Fragment) {
|
|
3692
3692
|
return acc.concat(
|
|
3693
3693
|
flattenChildren(
|
|
3694
3694
|
child.props.children
|
|
@@ -3706,7 +3706,7 @@ var MenuGroup = React59.forwardRef(
|
|
|
3706
3706
|
const itemCount = validChildren.length;
|
|
3707
3707
|
const enhancedChildren = validChildren.map((child, i) => {
|
|
3708
3708
|
const itemPosition2 = itemCount === 1 ? "standalone" : i === 0 ? "leading" : i === itemCount - 1 ? "trailing" : "middle";
|
|
3709
|
-
return
|
|
3709
|
+
return React61.cloneElement(child, {
|
|
3710
3710
|
itemPosition: itemPosition2,
|
|
3711
3711
|
colorVariant
|
|
3712
3712
|
});
|
|
@@ -3782,7 +3782,7 @@ var VARIANT_FONT = {
|
|
|
3782
3782
|
rounded: "'Material Symbols Rounded'",
|
|
3783
3783
|
sharp: "'Material Symbols Sharp'"
|
|
3784
3784
|
};
|
|
3785
|
-
var IconComponent =
|
|
3785
|
+
var IconComponent = React61.forwardRef(
|
|
3786
3786
|
(_a, ref) => {
|
|
3787
3787
|
var _b = _a, {
|
|
3788
3788
|
name,
|
|
@@ -3848,14 +3848,14 @@ var IconComponent = React59.forwardRef(
|
|
|
3848
3848
|
}
|
|
3849
3849
|
);
|
|
3850
3850
|
IconComponent.displayName = "Icon";
|
|
3851
|
-
var Icon =
|
|
3851
|
+
var Icon = React61.memo(IconComponent);
|
|
3852
3852
|
function getItemShapeClass(position, selected, isStatic = false, menuVariant = "expressive") {
|
|
3853
3853
|
if (menuVariant === "baseline") return BASELINE_ITEM_SHAPE;
|
|
3854
3854
|
if (selected) return ITEM_SHAPE_CLASSES.selected;
|
|
3855
3855
|
if (isStatic && position === "standalone") return "rounded-[12px]";
|
|
3856
3856
|
return ITEM_SHAPE_CLASSES[position];
|
|
3857
3857
|
}
|
|
3858
|
-
var MenuItem =
|
|
3858
|
+
var MenuItem = React61.forwardRef(
|
|
3859
3859
|
(_a, ref) => {
|
|
3860
3860
|
var _b = _a, {
|
|
3861
3861
|
children,
|
|
@@ -4057,31 +4057,31 @@ function SubMenu({
|
|
|
4057
4057
|
}) {
|
|
4058
4058
|
const { colorVariant: contextColorVariant, menuPrimitive } = useMenuContext();
|
|
4059
4059
|
const colorVariant = propColorVariant != null ? propColorVariant : contextColorVariant;
|
|
4060
|
-
const [open, setOpen] =
|
|
4061
|
-
const openTimerRef =
|
|
4062
|
-
const closeTimerRef =
|
|
4060
|
+
const [open, setOpen] = React61.useState(false);
|
|
4061
|
+
const openTimerRef = React61.useRef(null);
|
|
4062
|
+
const closeTimerRef = React61.useRef(
|
|
4063
4063
|
null
|
|
4064
4064
|
);
|
|
4065
|
-
const clearTimers =
|
|
4065
|
+
const clearTimers = React61.useCallback(() => {
|
|
4066
4066
|
if (openTimerRef.current) clearTimeout(openTimerRef.current);
|
|
4067
4067
|
if (closeTimerRef.current) clearTimeout(closeTimerRef.current);
|
|
4068
4068
|
}, []);
|
|
4069
|
-
const handleTriggerPointerEnter =
|
|
4069
|
+
const handleTriggerPointerEnter = React61.useCallback(() => {
|
|
4070
4070
|
clearTimers();
|
|
4071
4071
|
openTimerRef.current = setTimeout(() => setOpen(true), hoverOpenDelay);
|
|
4072
4072
|
}, [hoverOpenDelay, clearTimers]);
|
|
4073
|
-
const handleTriggerPointerLeave =
|
|
4073
|
+
const handleTriggerPointerLeave = React61.useCallback(() => {
|
|
4074
4074
|
clearTimers();
|
|
4075
4075
|
closeTimerRef.current = setTimeout(() => setOpen(false), hoverCloseDelay);
|
|
4076
4076
|
}, [hoverCloseDelay, clearTimers]);
|
|
4077
|
-
const handleContentPointerEnter =
|
|
4077
|
+
const handleContentPointerEnter = React61.useCallback(() => {
|
|
4078
4078
|
clearTimers();
|
|
4079
4079
|
}, [clearTimers]);
|
|
4080
|
-
const handleContentPointerLeave =
|
|
4080
|
+
const handleContentPointerLeave = React61.useCallback(() => {
|
|
4081
4081
|
clearTimers();
|
|
4082
4082
|
closeTimerRef.current = setTimeout(() => setOpen(false), hoverCloseDelay);
|
|
4083
4083
|
}, [hoverCloseDelay, clearTimers]);
|
|
4084
|
-
|
|
4084
|
+
React61.useEffect(() => () => clearTimers(), [clearTimers]);
|
|
4085
4085
|
const Sub3 = menuPrimitive === "context" ? RxContextMenu.Sub : DropdownMenu.Sub;
|
|
4086
4086
|
const SubTrigger3 = menuPrimitive === "context" ? RxContextMenu.SubTrigger : DropdownMenu.SubTrigger;
|
|
4087
4087
|
const SubContent3 = menuPrimitive === "context" ? RxContextMenu.SubContent : DropdownMenu.SubContent;
|
|
@@ -4093,7 +4093,7 @@ function SubMenu({
|
|
|
4093
4093
|
className: "w-full outline-none",
|
|
4094
4094
|
onPointerEnter: handleTriggerPointerEnter,
|
|
4095
4095
|
onPointerLeave: handleTriggerPointerLeave,
|
|
4096
|
-
children:
|
|
4096
|
+
children: React61.isValidElement(trigger) ? React61.cloneElement(trigger, {
|
|
4097
4097
|
isSubTrigger: true,
|
|
4098
4098
|
// Auto-add chevron if missing
|
|
4099
4099
|
trailingIcon: trigger.props.trailingIcon || /* @__PURE__ */ jsx(Icon, { name: "chevron_right", size: 20 })
|
|
@@ -4170,7 +4170,7 @@ function SubMenuContent({
|
|
|
4170
4170
|
);
|
|
4171
4171
|
}
|
|
4172
4172
|
SubMenuContent.displayName = "SubMenuContent";
|
|
4173
|
-
var VerticalMenuDivider =
|
|
4173
|
+
var VerticalMenuDivider = React61.forwardRef((_a, ref) => {
|
|
4174
4174
|
var _b = _a, { className, index, count, isGapVariant } = _b, props = __objRest(_b, ["className", "index", "count", "isGapVariant"]);
|
|
4175
4175
|
return /* @__PURE__ */ jsx(
|
|
4176
4176
|
"hr",
|
|
@@ -4190,7 +4190,7 @@ var VerticalMenuDivider = React59.forwardRef((_a, ref) => {
|
|
|
4190
4190
|
});
|
|
4191
4191
|
VerticalMenuDivider.displayName = "VerticalMenuDivider";
|
|
4192
4192
|
var VerticalMenuGroup = MenuGroup;
|
|
4193
|
-
var VerticalMenuContent =
|
|
4193
|
+
var VerticalMenuContent = React61.forwardRef(
|
|
4194
4194
|
(_a, ref) => {
|
|
4195
4195
|
var _b = _a, {
|
|
4196
4196
|
children,
|
|
@@ -4207,10 +4207,10 @@ var VerticalMenuContent = React59.forwardRef(
|
|
|
4207
4207
|
const colorVariant = propColorVariant != null ? propColorVariant : contextColorVariant;
|
|
4208
4208
|
const colors = colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
|
|
4209
4209
|
const flattenChildren = (children2) => {
|
|
4210
|
-
return
|
|
4210
|
+
return React61.Children.toArray(children2).reduce(
|
|
4211
4211
|
(acc, child) => {
|
|
4212
|
-
if (
|
|
4213
|
-
if (child.type ===
|
|
4212
|
+
if (React61.isValidElement(child)) {
|
|
4213
|
+
if (child.type === React61.Fragment) {
|
|
4214
4214
|
return acc.concat(
|
|
4215
4215
|
flattenChildren(
|
|
4216
4216
|
child.props.children
|
|
@@ -4227,7 +4227,7 @@ var VerticalMenuContent = React59.forwardRef(
|
|
|
4227
4227
|
const validChildren = flattenChildren(children);
|
|
4228
4228
|
const groupCount = validChildren.length;
|
|
4229
4229
|
const enhancedChildren = validChildren.map(
|
|
4230
|
-
(child, i) =>
|
|
4230
|
+
(child, i) => React61.cloneElement(child, {
|
|
4231
4231
|
index: i,
|
|
4232
4232
|
count: groupCount,
|
|
4233
4233
|
isGapVariant: separatorStyle === "gap"
|
|
@@ -4264,13 +4264,13 @@ var VerticalMenuContent = React59.forwardRef(
|
|
|
4264
4264
|
}
|
|
4265
4265
|
);
|
|
4266
4266
|
VerticalMenuContent.displayName = "VerticalMenuContent";
|
|
4267
|
-
var VerticalMenu =
|
|
4267
|
+
var VerticalMenu = React61.forwardRef((_a, ref) => {
|
|
4268
4268
|
var _b = _a, { children, colorVariant = "standard", className } = _b, props = __objRest(_b, ["children", "colorVariant", "className"]);
|
|
4269
|
-
const noop =
|
|
4269
|
+
const noop = React61.useCallback(() => {
|
|
4270
4270
|
}, []);
|
|
4271
4271
|
const colors = colorVariant === "vibrant" ? VIBRANT_COLORS : STANDARD_COLORS;
|
|
4272
|
-
const containerRef =
|
|
4273
|
-
const mergedRef =
|
|
4272
|
+
const containerRef = React61.useRef(null);
|
|
4273
|
+
const mergedRef = React61.useCallback(
|
|
4274
4274
|
(node) => {
|
|
4275
4275
|
containerRef.current = node;
|
|
4276
4276
|
if (typeof ref === "function") ref(node);
|
|
@@ -4279,7 +4279,7 @@ var VerticalMenu = React59.forwardRef((_a, ref) => {
|
|
|
4279
4279
|
},
|
|
4280
4280
|
[ref]
|
|
4281
4281
|
);
|
|
4282
|
-
const handleKeyDown =
|
|
4282
|
+
const handleKeyDown = React61.useCallback(
|
|
4283
4283
|
(e) => {
|
|
4284
4284
|
var _a2;
|
|
4285
4285
|
if (!containerRef.current) return;
|
|
@@ -4362,7 +4362,7 @@ var VerticalMenu = React59.forwardRef((_a, ref) => {
|
|
|
4362
4362
|
});
|
|
4363
4363
|
VerticalMenu.displayName = "VerticalMenu";
|
|
4364
4364
|
function detectSeparatorStyle(children) {
|
|
4365
|
-
const child =
|
|
4365
|
+
const child = React61.Children.toArray(children).find(React61.isValidElement);
|
|
4366
4366
|
if (child) {
|
|
4367
4367
|
const style = child.props.separatorStyle;
|
|
4368
4368
|
if (style) return style;
|
|
@@ -4443,11 +4443,11 @@ function AppBarColumn({
|
|
|
4443
4443
|
maxItemCount,
|
|
4444
4444
|
className
|
|
4445
4445
|
}) {
|
|
4446
|
-
const containerRef =
|
|
4447
|
-
const [visibleCount, setVisibleCount] =
|
|
4446
|
+
const containerRef = React61.useRef(null);
|
|
4447
|
+
const [visibleCount, setVisibleCount] = React61.useState(
|
|
4448
4448
|
maxItemCount != null ? maxItemCount : items.length
|
|
4449
4449
|
);
|
|
4450
|
-
|
|
4450
|
+
React61.useEffect(() => {
|
|
4451
4451
|
if (maxItemCount !== void 0) {
|
|
4452
4452
|
setVisibleCount(Math.min(maxItemCount, items.length));
|
|
4453
4453
|
return;
|
|
@@ -4495,11 +4495,11 @@ function AppBarColumn({
|
|
|
4495
4495
|
);
|
|
4496
4496
|
}
|
|
4497
4497
|
function AppBarRow({ items, maxItemCount, className }) {
|
|
4498
|
-
const containerRef =
|
|
4499
|
-
const [visibleCount, setVisibleCount] =
|
|
4498
|
+
const containerRef = React61.useRef(null);
|
|
4499
|
+
const [visibleCount, setVisibleCount] = React61.useState(
|
|
4500
4500
|
maxItemCount != null ? maxItemCount : items.length
|
|
4501
4501
|
);
|
|
4502
|
-
|
|
4502
|
+
React61.useEffect(() => {
|
|
4503
4503
|
if (maxItemCount !== void 0) {
|
|
4504
4504
|
setVisibleCount(Math.min(maxItemCount, items.length));
|
|
4505
4505
|
return;
|
|
@@ -4553,12 +4553,12 @@ function useAppBarScroll({
|
|
|
4553
4553
|
collapsedHeight = 64,
|
|
4554
4554
|
expandedHeight = 112
|
|
4555
4555
|
} = {}) {
|
|
4556
|
-
const [isScrolled, setIsScrolled] =
|
|
4557
|
-
const [collapsedFraction, setCollapsedFraction] =
|
|
4558
|
-
const [isHidden, setIsHidden] =
|
|
4559
|
-
const prevScrollYRef =
|
|
4556
|
+
const [isScrolled, setIsScrolled] = React61.useState(false);
|
|
4557
|
+
const [collapsedFraction, setCollapsedFraction] = React61.useState(0);
|
|
4558
|
+
const [isHidden, setIsHidden] = React61.useState(false);
|
|
4559
|
+
const prevScrollYRef = React61.useRef(0);
|
|
4560
4560
|
const hideThreshold = 64;
|
|
4561
|
-
|
|
4561
|
+
React61.useEffect(() => {
|
|
4562
4562
|
var _a;
|
|
4563
4563
|
const scrollDistance = expandedHeight - collapsedHeight;
|
|
4564
4564
|
const getScrollY = () => {
|
|
@@ -4679,7 +4679,7 @@ function useFlexibleAppBar({
|
|
|
4679
4679
|
expandedHeight
|
|
4680
4680
|
});
|
|
4681
4681
|
const scrollProgress = useMotionValue(0);
|
|
4682
|
-
|
|
4682
|
+
React61.useEffect(() => {
|
|
4683
4683
|
scrollProgress.set(
|
|
4684
4684
|
shouldReduceMotion ? collapsedFraction > 0.5 ? 1 : 0 : collapsedFraction
|
|
4685
4685
|
);
|
|
@@ -5020,7 +5020,7 @@ function SearchAppBar({
|
|
|
5020
5020
|
}) {
|
|
5021
5021
|
var _a, _b;
|
|
5022
5022
|
const shouldReduceMotion = useReducedMotion();
|
|
5023
|
-
const [isSearchOpen, setIsSearchOpen] =
|
|
5023
|
+
const [isSearchOpen, setIsSearchOpen] = React61.useState(false);
|
|
5024
5024
|
const { isScrolled } = useAppBarScroll({
|
|
5025
5025
|
scrollElement,
|
|
5026
5026
|
behavior: scrollBehavior === "exitUntilCollapsed" ? "pinned" : scrollBehavior
|
|
@@ -5134,8 +5134,8 @@ function SearchView({
|
|
|
5134
5134
|
className
|
|
5135
5135
|
}) {
|
|
5136
5136
|
const shouldReduceMotion = useReducedMotion();
|
|
5137
|
-
const inputRef =
|
|
5138
|
-
|
|
5137
|
+
const inputRef = React61.useRef(null);
|
|
5138
|
+
React61.useEffect(() => {
|
|
5139
5139
|
const timer = window.setTimeout(() => {
|
|
5140
5140
|
var _a;
|
|
5141
5141
|
(_a = inputRef.current) == null ? void 0 : _a.focus();
|
|
@@ -5405,9 +5405,9 @@ function formatBadgeLabel(children, max) {
|
|
|
5405
5405
|
return "";
|
|
5406
5406
|
}
|
|
5407
5407
|
function detectBadgeHasContent(badge) {
|
|
5408
|
-
return
|
|
5408
|
+
return React61.isValidElement(badge) && badge.props.children != null;
|
|
5409
5409
|
}
|
|
5410
|
-
var BadgeImpl =
|
|
5410
|
+
var BadgeImpl = React61.forwardRef(
|
|
5411
5411
|
(_a, ref) => {
|
|
5412
5412
|
var _b = _a, {
|
|
5413
5413
|
children,
|
|
@@ -5461,7 +5461,7 @@ var BadgeImpl = React59.forwardRef(
|
|
|
5461
5461
|
}
|
|
5462
5462
|
);
|
|
5463
5463
|
BadgeImpl.displayName = "Badge";
|
|
5464
|
-
var Badge =
|
|
5464
|
+
var Badge = React61.memo(BadgeImpl);
|
|
5465
5465
|
function BadgedBox({
|
|
5466
5466
|
badge,
|
|
5467
5467
|
children,
|
|
@@ -5527,11 +5527,11 @@ var ROTATE_KEY_SPLINES = [
|
|
|
5527
5527
|
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";
|
|
5528
5528
|
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";
|
|
5529
5529
|
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";
|
|
5530
|
-
var IndeterminateSvg =
|
|
5530
|
+
var IndeterminateSvg = React61.memo(function IndeterminateSvg2({
|
|
5531
5531
|
size
|
|
5532
5532
|
}) {
|
|
5533
|
-
const [ready, setReady] =
|
|
5534
|
-
|
|
5533
|
+
const [ready, setReady] = React61.useState(false);
|
|
5534
|
+
React61.useEffect(() => {
|
|
5535
5535
|
const raf = requestAnimationFrame(() => setReady(true));
|
|
5536
5536
|
return () => cancelAnimationFrame(raf);
|
|
5537
5537
|
}, []);
|
|
@@ -5576,7 +5576,7 @@ var IndeterminateSvg = React59.memo(function IndeterminateSvg2({
|
|
|
5576
5576
|
}
|
|
5577
5577
|
);
|
|
5578
5578
|
});
|
|
5579
|
-
var DeterminateSvg =
|
|
5579
|
+
var DeterminateSvg = React61.memo(function DeterminateSvg2({
|
|
5580
5580
|
size,
|
|
5581
5581
|
progress
|
|
5582
5582
|
}) {
|
|
@@ -5601,7 +5601,7 @@ var DeterminateSvg = React59.memo(function DeterminateSvg2({
|
|
|
5601
5601
|
}
|
|
5602
5602
|
);
|
|
5603
5603
|
});
|
|
5604
|
-
var LoadingIndicator =
|
|
5604
|
+
var LoadingIndicator = React61.forwardRef(
|
|
5605
5605
|
(_a, ref) => {
|
|
5606
5606
|
var _b = _a, {
|
|
5607
5607
|
variant = "uncontained",
|
|
@@ -5716,7 +5716,7 @@ function getSinePath(startX, endX, phase, wl, amp) {
|
|
|
5716
5716
|
d += ` L ${endX.toFixed(2)} ${yEnd.toFixed(2)}`;
|
|
5717
5717
|
return d;
|
|
5718
5718
|
}
|
|
5719
|
-
var CircularProgress =
|
|
5719
|
+
var CircularProgress = React61.forwardRef(
|
|
5720
5720
|
(_a, ref) => {
|
|
5721
5721
|
var _b = _a, {
|
|
5722
5722
|
value,
|
|
@@ -5754,15 +5754,15 @@ var CircularProgress = React59.forwardRef(
|
|
|
5754
5754
|
const isWavy = shape === "wavy";
|
|
5755
5755
|
const BASELINE_SIZE = 48;
|
|
5756
5756
|
const scaleFactor = size / BASELINE_SIZE;
|
|
5757
|
-
const effectiveAmplitude =
|
|
5757
|
+
const effectiveAmplitude = React61.useMemo(
|
|
5758
5758
|
() => amplitude != null ? amplitude : 1.6 * scaleFactor,
|
|
5759
5759
|
[amplitude, scaleFactor]
|
|
5760
5760
|
);
|
|
5761
|
-
const effectiveWavelength =
|
|
5761
|
+
const effectiveWavelength = React61.useMemo(
|
|
5762
5762
|
() => wavelength != null ? wavelength : 15 * scaleFactor,
|
|
5763
5763
|
[wavelength, scaleFactor]
|
|
5764
5764
|
);
|
|
5765
|
-
const wavyActivePath =
|
|
5765
|
+
const wavyActivePath = React61.useMemo(
|
|
5766
5766
|
() => isWavy ? generateWavyCircularPath(
|
|
5767
5767
|
center,
|
|
5768
5768
|
radius,
|
|
@@ -5771,8 +5771,8 @@ var CircularProgress = React59.forwardRef(
|
|
|
5771
5771
|
) : null,
|
|
5772
5772
|
[isWavy, center, radius, effectiveAmplitude, effectiveWavelength]
|
|
5773
5773
|
);
|
|
5774
|
-
const circumference =
|
|
5775
|
-
const gapForTrack =
|
|
5774
|
+
const circumference = React61.useMemo(() => 2 * Math.PI * radius, [radius]);
|
|
5775
|
+
const gapForTrack = React61.useMemo(
|
|
5776
5776
|
() => (gapSize + trackHeight) / circumference,
|
|
5777
5777
|
[gapSize, trackHeight, circumference]
|
|
5778
5778
|
);
|
|
@@ -5961,9 +5961,9 @@ var CircularProgress = React59.forwardRef(
|
|
|
5961
5961
|
);
|
|
5962
5962
|
CircularProgress.displayName = "CircularProgress";
|
|
5963
5963
|
function useContainerWidth() {
|
|
5964
|
-
const [width, setWidth] =
|
|
5965
|
-
const observerRef =
|
|
5966
|
-
const ref =
|
|
5964
|
+
const [width, setWidth] = React61.useState(0);
|
|
5965
|
+
const observerRef = React61.useRef(null);
|
|
5966
|
+
const ref = React61.useCallback((node) => {
|
|
5967
5967
|
if (observerRef.current) {
|
|
5968
5968
|
observerRef.current.disconnect();
|
|
5969
5969
|
observerRef.current = null;
|
|
@@ -5977,7 +5977,7 @@ function useContainerWidth() {
|
|
|
5977
5977
|
observerRef.current = obs;
|
|
5978
5978
|
}
|
|
5979
5979
|
}, []);
|
|
5980
|
-
|
|
5980
|
+
React61.useEffect(() => {
|
|
5981
5981
|
return () => {
|
|
5982
5982
|
if (observerRef.current) {
|
|
5983
5983
|
observerRef.current.disconnect();
|
|
@@ -5987,7 +5987,7 @@ function useContainerWidth() {
|
|
|
5987
5987
|
return [ref, width];
|
|
5988
5988
|
}
|
|
5989
5989
|
function useMergedRef(...refs) {
|
|
5990
|
-
return
|
|
5990
|
+
return React61.useCallback(
|
|
5991
5991
|
(node) => {
|
|
5992
5992
|
for (const ref of refs) {
|
|
5993
5993
|
if (typeof ref === "function") {
|
|
@@ -6001,7 +6001,7 @@ function useMergedRef(...refs) {
|
|
|
6001
6001
|
[refs]
|
|
6002
6002
|
);
|
|
6003
6003
|
}
|
|
6004
|
-
var FlatLinearTrack =
|
|
6004
|
+
var FlatLinearTrack = React61.memo(function FlatLinearTrack2({
|
|
6005
6005
|
trackHeight,
|
|
6006
6006
|
activeColor,
|
|
6007
6007
|
trackColor,
|
|
@@ -6077,7 +6077,7 @@ var FlatLinearTrack = React59.memo(function FlatLinearTrack2({
|
|
|
6077
6077
|
}
|
|
6078
6078
|
);
|
|
6079
6079
|
});
|
|
6080
|
-
var WavyLinearTrack =
|
|
6080
|
+
var WavyLinearTrack = React61.memo(function WavyLinearTrack2({
|
|
6081
6081
|
trackHeight,
|
|
6082
6082
|
svgHeight,
|
|
6083
6083
|
amplitude,
|
|
@@ -6096,13 +6096,13 @@ var WavyLinearTrack = React59.memo(function WavyLinearTrack2({
|
|
|
6096
6096
|
}) {
|
|
6097
6097
|
const isDeterminate = typeof value === "number";
|
|
6098
6098
|
const clampedValue = isDeterminate ? Math.max(0, Math.min(100, value)) : 100;
|
|
6099
|
-
const titleId =
|
|
6099
|
+
const titleId = React61.useId();
|
|
6100
6100
|
const [containerRef, width] = useContainerWidth();
|
|
6101
|
-
const activePathRef =
|
|
6102
|
-
const trackPathRef =
|
|
6101
|
+
const activePathRef = React61.useRef(null);
|
|
6102
|
+
const trackPathRef = React61.useRef(null);
|
|
6103
6103
|
const amplitudeMV = useMotionValue(amplitude);
|
|
6104
6104
|
const fractionMV = useMotionValue(isDeterminate ? clampedValue / 100 : 1);
|
|
6105
|
-
|
|
6105
|
+
React61.useEffect(() => {
|
|
6106
6106
|
if (isDeterminate) {
|
|
6107
6107
|
const fraction = clampedValue / 100;
|
|
6108
6108
|
let targetAmp = amplitude;
|
|
@@ -6273,7 +6273,7 @@ var WavyLinearTrack = React59.memo(function WavyLinearTrack2({
|
|
|
6273
6273
|
}
|
|
6274
6274
|
);
|
|
6275
6275
|
});
|
|
6276
|
-
var LinearProgress =
|
|
6276
|
+
var LinearProgress = React61.forwardRef(
|
|
6277
6277
|
(_a, ref) => {
|
|
6278
6278
|
var _b = _a, {
|
|
6279
6279
|
value,
|
|
@@ -6314,10 +6314,10 @@ var LinearProgress = React59.forwardRef(
|
|
|
6314
6314
|
]);
|
|
6315
6315
|
const isDeterminate = value !== void 0;
|
|
6316
6316
|
const clampedValue = isDeterminate ? Math.min(100, Math.max(0, value)) : 0;
|
|
6317
|
-
const containerRef =
|
|
6317
|
+
const containerRef = React61.useRef(null);
|
|
6318
6318
|
const mergedRef = useMergedRef(ref, containerRef);
|
|
6319
|
-
const [isRtl, setIsRtl] =
|
|
6320
|
-
|
|
6319
|
+
const [isRtl, setIsRtl] = React61.useState(false);
|
|
6320
|
+
React61.useEffect(() => {
|
|
6321
6321
|
if (containerRef.current) {
|
|
6322
6322
|
const dir = getComputedStyle(containerRef.current).direction;
|
|
6323
6323
|
setIsRtl(dir === "rtl");
|
|
@@ -6325,16 +6325,16 @@ var LinearProgress = React59.forwardRef(
|
|
|
6325
6325
|
}, []);
|
|
6326
6326
|
const isWavy = shape === "wavy";
|
|
6327
6327
|
const resolvedTrackShape = trackShape != null ? trackShape : shape;
|
|
6328
|
-
const effectiveAmplitude =
|
|
6329
|
-
const svgHeight =
|
|
6328
|
+
const effectiveAmplitude = React61.useMemo(() => amplitude != null ? amplitude : 3, [amplitude]);
|
|
6329
|
+
const svgHeight = React61.useMemo(
|
|
6330
6330
|
() => isWavy ? trackHeight + effectiveAmplitude * 2 : trackHeight,
|
|
6331
6331
|
[isWavy, trackHeight, effectiveAmplitude]
|
|
6332
6332
|
);
|
|
6333
|
-
const shouldShowStop =
|
|
6333
|
+
const shouldShowStop = React61.useMemo(
|
|
6334
6334
|
() => isDeterminate && resolvedTrackShape === "flat" && (showStopIndicator === true || showStopIndicator === "auto" && isDeterminate),
|
|
6335
6335
|
[isDeterminate, resolvedTrackShape, showStopIndicator]
|
|
6336
6336
|
);
|
|
6337
|
-
const stopSize =
|
|
6337
|
+
const stopSize = React61.useMemo(
|
|
6338
6338
|
() => Math.max(2, trackHeight > 4 ? 4 : trackHeight / 2),
|
|
6339
6339
|
[trackHeight]
|
|
6340
6340
|
);
|
|
@@ -6407,14 +6407,14 @@ var LinearProgress = React59.forwardRef(
|
|
|
6407
6407
|
}
|
|
6408
6408
|
);
|
|
6409
6409
|
LinearProgress.displayName = "LinearProgress";
|
|
6410
|
-
var ProgressIndicator =
|
|
6410
|
+
var ProgressIndicator = React61.forwardRef((props, ref) => {
|
|
6411
6411
|
if (props.variant === "circular") {
|
|
6412
6412
|
return /* @__PURE__ */ jsx(CircularProgress, __spreadValues({ ref }, props));
|
|
6413
6413
|
}
|
|
6414
6414
|
return /* @__PURE__ */ jsx(LinearProgress, __spreadValues({ ref }, props));
|
|
6415
6415
|
});
|
|
6416
6416
|
ProgressIndicator.displayName = "ProgressIndicator";
|
|
6417
|
-
var RippleItem =
|
|
6417
|
+
var RippleItem = React61.memo(function RippleItem2({
|
|
6418
6418
|
ripple,
|
|
6419
6419
|
onDone
|
|
6420
6420
|
}) {
|
|
@@ -6458,14 +6458,17 @@ function Ripple({
|
|
|
6458
6458
|
}
|
|
6459
6459
|
function useRippleState(options = {}) {
|
|
6460
6460
|
const { disabled = false } = options;
|
|
6461
|
-
const [ripples, setRipples] =
|
|
6462
|
-
const onPointerDown =
|
|
6461
|
+
const [ripples, setRipples] = React61.useState([]);
|
|
6462
|
+
const onPointerDown = React61.useCallback(
|
|
6463
6463
|
(e) => {
|
|
6464
6464
|
if (disabled) return;
|
|
6465
6465
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
6466
6466
|
const x = e.clientX - rect.left;
|
|
6467
6467
|
const y = e.clientY - rect.top;
|
|
6468
|
-
const rippleSize = Math.
|
|
6468
|
+
const rippleSize = Math.max(
|
|
6469
|
+
Math.hypot(rect.width, rect.height) * 2.5,
|
|
6470
|
+
320
|
|
6471
|
+
);
|
|
6469
6472
|
setRipples((prev) => [
|
|
6470
6473
|
...prev,
|
|
6471
6474
|
{ id: Date.now(), x, y, size: rippleSize }
|
|
@@ -6473,7 +6476,7 @@ function useRippleState(options = {}) {
|
|
|
6473
6476
|
},
|
|
6474
6477
|
[disabled]
|
|
6475
6478
|
);
|
|
6476
|
-
const removeRipple =
|
|
6479
|
+
const removeRipple = React61.useCallback((id) => {
|
|
6477
6480
|
setRipples((prev) => prev.filter((r) => r.id !== id));
|
|
6478
6481
|
}, []);
|
|
6479
6482
|
return { ripples, onPointerDown, removeRipple };
|
|
@@ -6704,7 +6707,7 @@ function AnimatedIconSlot({
|
|
|
6704
6707
|
}
|
|
6705
6708
|
);
|
|
6706
6709
|
}
|
|
6707
|
-
var ButtonComponent =
|
|
6710
|
+
var ButtonComponent = React61.forwardRef(
|
|
6708
6711
|
(_a, ref) => {
|
|
6709
6712
|
var _b = _a, {
|
|
6710
6713
|
className,
|
|
@@ -6716,6 +6719,7 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6716
6719
|
shape = "round",
|
|
6717
6720
|
selected,
|
|
6718
6721
|
icon,
|
|
6722
|
+
selectedIcon,
|
|
6719
6723
|
iconPosition = "leading",
|
|
6720
6724
|
loading = false,
|
|
6721
6725
|
loadingVariant = "loading-indicator",
|
|
@@ -6737,6 +6741,7 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6737
6741
|
"shape",
|
|
6738
6742
|
"selected",
|
|
6739
6743
|
"icon",
|
|
6744
|
+
"selectedIcon",
|
|
6740
6745
|
"iconPosition",
|
|
6741
6746
|
"loading",
|
|
6742
6747
|
"loadingVariant",
|
|
@@ -6766,9 +6771,9 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6766
6771
|
borderWidth: outlineWidth != null ? outlineWidth : colorStyle === "outlined" ? sizeTokens.outlineWidth : 0,
|
|
6767
6772
|
borderStyle: colorStyle === "outlined" ? "solid" : void 0
|
|
6768
6773
|
}, style);
|
|
6769
|
-
const labelText =
|
|
6774
|
+
const labelText = React61.useMemo(() => {
|
|
6770
6775
|
if (asChild) {
|
|
6771
|
-
const child =
|
|
6776
|
+
const child = React61.Children.only(children);
|
|
6772
6777
|
return child.props.children;
|
|
6773
6778
|
}
|
|
6774
6779
|
return children;
|
|
@@ -6776,8 +6781,8 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6776
6781
|
const computedAriaLabel = ariaLabelProp || (typeof children === "string" ? children : void 0);
|
|
6777
6782
|
const needsTouchTarget = size === "xs" || size === "sm";
|
|
6778
6783
|
const motionRadius = useMotionValue(animateRadius);
|
|
6779
|
-
const asChildRef =
|
|
6780
|
-
const mergedRef =
|
|
6784
|
+
const asChildRef = React61.useRef(null);
|
|
6785
|
+
const mergedRef = React61.useCallback(
|
|
6781
6786
|
(node) => {
|
|
6782
6787
|
asChildRef.current = node;
|
|
6783
6788
|
if (typeof ref === "function") ref(node);
|
|
@@ -6786,14 +6791,14 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6786
6791
|
},
|
|
6787
6792
|
[ref]
|
|
6788
6793
|
);
|
|
6789
|
-
|
|
6794
|
+
React61.useEffect(() => {
|
|
6790
6795
|
if (!asChild) return;
|
|
6791
6796
|
return motionRadius.on("change", (v) => {
|
|
6792
6797
|
if (asChildRef.current)
|
|
6793
6798
|
asChildRef.current.style.borderRadius = `${v}px`;
|
|
6794
6799
|
});
|
|
6795
6800
|
}, [motionRadius, asChild]);
|
|
6796
|
-
|
|
6801
|
+
React61.useEffect(() => {
|
|
6797
6802
|
if (!asChild) return;
|
|
6798
6803
|
const controls = springAnimate(motionRadius, animateRadius);
|
|
6799
6804
|
return () => controls.stop();
|
|
@@ -6801,14 +6806,14 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6801
6806
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
6802
6807
|
disabled: loading
|
|
6803
6808
|
});
|
|
6804
|
-
const handleClick =
|
|
6809
|
+
const handleClick = React61.useCallback(
|
|
6805
6810
|
(e) => {
|
|
6806
6811
|
if (loading) return e.preventDefault();
|
|
6807
6812
|
onClick == null ? void 0 : onClick(e);
|
|
6808
6813
|
},
|
|
6809
6814
|
[loading, onClick]
|
|
6810
6815
|
);
|
|
6811
|
-
const handleKeyDown =
|
|
6816
|
+
const handleKeyDown = React61.useCallback(
|
|
6812
6817
|
(e) => {
|
|
6813
6818
|
if (loading) return;
|
|
6814
6819
|
if (onClick && (e.key === "Enter" || e.key === " ")) {
|
|
@@ -6836,10 +6841,11 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6836
6841
|
layout: BUTTON_SHAPE_MORPH_SPRING,
|
|
6837
6842
|
default: SPRING_TRANSITION
|
|
6838
6843
|
};
|
|
6844
|
+
const activeIcon = isSelected && selectedIcon ? selectedIcon : icon;
|
|
6839
6845
|
const innerContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6840
6846
|
needsTouchTarget && /* @__PURE__ */ jsx(TouchTarget, {}),
|
|
6841
6847
|
/* @__PURE__ */ jsx(Ripple, { ripples, onRippleDone: removeRipple }),
|
|
6842
|
-
/* @__PURE__ */ jsx(AnimatePresence, { initial: false, mode: "
|
|
6848
|
+
/* @__PURE__ */ jsx(AnimatePresence, { initial: false, mode: "wait", children: (loading || activeIcon && iconPosition === "leading") && /* @__PURE__ */ jsx(
|
|
6843
6849
|
AnimatedIconSlot,
|
|
6844
6850
|
{
|
|
6845
6851
|
iconSize: sizeTokens.iconSize,
|
|
@@ -6861,8 +6867,9 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6861
6867
|
trackColor: "transparent",
|
|
6862
6868
|
"aria-label": "Loading"
|
|
6863
6869
|
}
|
|
6864
|
-
) :
|
|
6865
|
-
}
|
|
6870
|
+
) : activeIcon
|
|
6871
|
+
},
|
|
6872
|
+
isSelected && selectedIcon ? "selected-icon" : "icon"
|
|
6866
6873
|
) }),
|
|
6867
6874
|
labelText && /* @__PURE__ */ jsx(
|
|
6868
6875
|
m.span,
|
|
@@ -6873,27 +6880,28 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6873
6880
|
children: labelText
|
|
6874
6881
|
}
|
|
6875
6882
|
),
|
|
6876
|
-
/* @__PURE__ */ jsx(AnimatePresence, { initial: false, mode: "
|
|
6883
|
+
/* @__PURE__ */ jsx(AnimatePresence, { initial: false, mode: "wait", children: !loading && activeIcon && iconPosition === "trailing" && /* @__PURE__ */ jsx(
|
|
6877
6884
|
AnimatedIconSlot,
|
|
6878
6885
|
{
|
|
6879
6886
|
iconSize: sizeTokens.iconSize,
|
|
6880
6887
|
ariaHidden: true,
|
|
6881
6888
|
transition: sharedTransition,
|
|
6882
|
-
children:
|
|
6883
|
-
}
|
|
6889
|
+
children: activeIcon
|
|
6890
|
+
},
|
|
6891
|
+
isSelected && selectedIcon ? "selected-icon" : "icon"
|
|
6884
6892
|
) })
|
|
6885
6893
|
] });
|
|
6886
|
-
const handleAsChildPointerDown =
|
|
6894
|
+
const handleAsChildPointerDown = React61.useCallback(
|
|
6887
6895
|
(e) => {
|
|
6888
6896
|
springAnimate(motionRadius, pressedRadius);
|
|
6889
6897
|
onPointerDown == null ? void 0 : onPointerDown(e);
|
|
6890
6898
|
},
|
|
6891
6899
|
[motionRadius, pressedRadius, onPointerDown]
|
|
6892
6900
|
);
|
|
6893
|
-
const handleAsChildPointerUp =
|
|
6901
|
+
const handleAsChildPointerUp = React61.useCallback(() => {
|
|
6894
6902
|
springAnimate(motionRadius, animateRadius);
|
|
6895
6903
|
}, [motionRadius, animateRadius]);
|
|
6896
|
-
const handlePointerDown =
|
|
6904
|
+
const handlePointerDown = React61.useCallback(
|
|
6897
6905
|
(e) => {
|
|
6898
6906
|
onPointerDown(e);
|
|
6899
6907
|
},
|
|
@@ -6903,7 +6911,7 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6903
6911
|
const strippedProps = __spreadValues({}, restProps);
|
|
6904
6912
|
for (const key of MOTION_PROP_KEYS) delete strippedProps[key];
|
|
6905
6913
|
const htmlProps = strippedProps;
|
|
6906
|
-
const child =
|
|
6914
|
+
const child = React61.Children.only(children);
|
|
6907
6915
|
return /* @__PURE__ */ jsx(LazyMotion, { features: domMax, strict: true, children: /* @__PURE__ */ jsx(
|
|
6908
6916
|
Slot,
|
|
6909
6917
|
__spreadProps(__spreadValues({
|
|
@@ -6920,7 +6928,7 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6920
6928
|
}),
|
|
6921
6929
|
className: buttonClassName
|
|
6922
6930
|
}, htmlProps), {
|
|
6923
|
-
children:
|
|
6931
|
+
children: React61.cloneElement(child, { children: innerContent })
|
|
6924
6932
|
})
|
|
6925
6933
|
) });
|
|
6926
6934
|
}
|
|
@@ -6949,7 +6957,333 @@ var ButtonComponent = React59.forwardRef(
|
|
|
6949
6957
|
}
|
|
6950
6958
|
);
|
|
6951
6959
|
ButtonComponent.displayName = "Button";
|
|
6952
|
-
var Button =
|
|
6960
|
+
var Button = React61.memo(ButtonComponent);
|
|
6961
|
+
|
|
6962
|
+
// src/ui/buttons/button-distribute/button-distribute-tokens.ts
|
|
6963
|
+
var DISTRIBUTE_SPRING_TRANSITION = {
|
|
6964
|
+
type: "spring",
|
|
6965
|
+
stiffness: 300,
|
|
6966
|
+
damping: 30,
|
|
6967
|
+
mass: 0.8
|
|
6968
|
+
};
|
|
6969
|
+
var DEFAULT_EXPAND_RATIO = 0.3;
|
|
6970
|
+
var DISTRIBUTE_RADIUS_TOKENS = {
|
|
6971
|
+
xs: { circleRadius: 16, pillRadius: 16, pressedRadius: 8 },
|
|
6972
|
+
sm: { circleRadius: 20, pillRadius: 20, pressedRadius: 10 },
|
|
6973
|
+
md: { circleRadius: 28, pillRadius: 28, pressedRadius: 16 },
|
|
6974
|
+
lg: { circleRadius: 48, pillRadius: 48, pressedRadius: 28 },
|
|
6975
|
+
xl: { circleRadius: 68, pillRadius: 68, pressedRadius: 40 }
|
|
6976
|
+
};
|
|
6977
|
+
var DISTRIBUTE_HEIGHT_TOKENS = {
|
|
6978
|
+
xs: "h-8",
|
|
6979
|
+
sm: "h-10",
|
|
6980
|
+
md: "h-14",
|
|
6981
|
+
lg: "h-24",
|
|
6982
|
+
xl: "h-[8.5rem]"
|
|
6983
|
+
};
|
|
6984
|
+
function useDistributeWeights({
|
|
6985
|
+
count,
|
|
6986
|
+
weights,
|
|
6987
|
+
activeIndex,
|
|
6988
|
+
expandRatio = DEFAULT_EXPAND_RATIO,
|
|
6989
|
+
mode = "dynamic",
|
|
6990
|
+
isTextItem
|
|
6991
|
+
}) {
|
|
6992
|
+
return React61.useMemo(() => {
|
|
6993
|
+
if (count <= 0) return [];
|
|
6994
|
+
if (mode === "mixed") {
|
|
6995
|
+
const baseWeights2 = new Array(count).fill(0).map((_, idx) => {
|
|
6996
|
+
if (idx === 0 || idx === count - 1) return 0;
|
|
6997
|
+
return weights && weights[idx] !== void 0 ? weights[idx] : 1;
|
|
6998
|
+
});
|
|
6999
|
+
if (activeIndex === null || activeIndex < 0 || activeIndex >= count || count === 1) {
|
|
7000
|
+
return baseWeights2;
|
|
7001
|
+
}
|
|
7002
|
+
const result2 = [...baseWeights2];
|
|
7003
|
+
const expandAmount2 = expandRatio * 1.5;
|
|
7004
|
+
if (activeIndex === 0) {
|
|
7005
|
+
result2[0] = expandAmount2;
|
|
7006
|
+
for (let i = 1; i < count - 1; i++) {
|
|
7007
|
+
result2[i] = Math.max(0.5, baseWeights2[i] - expandRatio * 0.4);
|
|
7008
|
+
}
|
|
7009
|
+
} else if (activeIndex === count - 1) {
|
|
7010
|
+
result2[count - 1] = expandAmount2;
|
|
7011
|
+
for (let i = 1; i < count - 1; i++) {
|
|
7012
|
+
result2[i] = Math.max(0.5, baseWeights2[i] - expandRatio * 0.4);
|
|
7013
|
+
}
|
|
7014
|
+
} else {
|
|
7015
|
+
result2[activeIndex] = baseWeights2[activeIndex] + expandRatio;
|
|
7016
|
+
for (let i = 1; i < count - 1; i++) {
|
|
7017
|
+
if (i !== activeIndex) {
|
|
7018
|
+
result2[i] = Math.max(0.5, baseWeights2[i] - expandRatio * 0.5);
|
|
7019
|
+
}
|
|
7020
|
+
}
|
|
7021
|
+
}
|
|
7022
|
+
return result2;
|
|
7023
|
+
}
|
|
7024
|
+
let baseWeights;
|
|
7025
|
+
if (weights && weights.length === count) {
|
|
7026
|
+
baseWeights = [...weights];
|
|
7027
|
+
} else if (mode === "dynamic" && count === 3) {
|
|
7028
|
+
baseWeights = [1, 2, 1];
|
|
7029
|
+
} else {
|
|
7030
|
+
baseWeights = new Array(count).fill(1);
|
|
7031
|
+
}
|
|
7032
|
+
if (activeIndex === null || activeIndex < 0 || activeIndex >= count || count === 1) {
|
|
7033
|
+
return baseWeights;
|
|
7034
|
+
}
|
|
7035
|
+
const totalWeight = baseWeights.reduce((acc, w) => acc + w, 0);
|
|
7036
|
+
const activeBaseWeight = baseWeights[activeIndex];
|
|
7037
|
+
const expandAmount = expandRatio * totalWeight;
|
|
7038
|
+
const minWeights = baseWeights.map((w, idx) => {
|
|
7039
|
+
if (isTextItem == null ? void 0 : isTextItem[idx]) {
|
|
7040
|
+
return Math.max(0.75, w * 0.65);
|
|
7041
|
+
}
|
|
7042
|
+
return 0.4;
|
|
7043
|
+
});
|
|
7044
|
+
const shrinkCapacity = baseWeights.map(
|
|
7045
|
+
(w, idx) => idx === activeIndex ? 0 : Math.max(0, w - minWeights[idx])
|
|
7046
|
+
);
|
|
7047
|
+
const totalCapacity = shrinkCapacity.reduce((acc, cap) => acc + cap, 0);
|
|
7048
|
+
const result = [...baseWeights];
|
|
7049
|
+
if (totalCapacity > 0) {
|
|
7050
|
+
const actualExpand = Math.min(expandAmount, totalCapacity);
|
|
7051
|
+
result[activeIndex] = activeBaseWeight + actualExpand;
|
|
7052
|
+
for (let i = 0; i < count; i++) {
|
|
7053
|
+
if (i !== activeIndex) {
|
|
7054
|
+
const shrinkAmount = actualExpand * (shrinkCapacity[i] / totalCapacity);
|
|
7055
|
+
result[i] = Math.max(minWeights[i], baseWeights[i] - shrinkAmount);
|
|
7056
|
+
}
|
|
7057
|
+
}
|
|
7058
|
+
}
|
|
7059
|
+
return result;
|
|
7060
|
+
}, [count, weights, activeIndex, expandRatio, mode, isTextItem]);
|
|
7061
|
+
}
|
|
7062
|
+
var ButtonDistribute = React61.forwardRef(
|
|
7063
|
+
(_a, ref) => {
|
|
7064
|
+
var _b = _a, {
|
|
7065
|
+
className,
|
|
7066
|
+
style,
|
|
7067
|
+
mode = "dynamic",
|
|
7068
|
+
weights,
|
|
7069
|
+
expandRatio = 0.3,
|
|
7070
|
+
expandOnHover = false,
|
|
7071
|
+
fixedSize = 48,
|
|
7072
|
+
leadingSize,
|
|
7073
|
+
trailingSize,
|
|
7074
|
+
gap = "0.5rem",
|
|
7075
|
+
size = "sm",
|
|
7076
|
+
itemClassName,
|
|
7077
|
+
children,
|
|
7078
|
+
onMouseLeave
|
|
7079
|
+
} = _b, restProps = __objRest(_b, [
|
|
7080
|
+
"className",
|
|
7081
|
+
"style",
|
|
7082
|
+
"mode",
|
|
7083
|
+
"weights",
|
|
7084
|
+
"expandRatio",
|
|
7085
|
+
"expandOnHover",
|
|
7086
|
+
"fixedSize",
|
|
7087
|
+
"leadingSize",
|
|
7088
|
+
"trailingSize",
|
|
7089
|
+
"gap",
|
|
7090
|
+
"size",
|
|
7091
|
+
"itemClassName",
|
|
7092
|
+
"children",
|
|
7093
|
+
"onMouseLeave"
|
|
7094
|
+
]);
|
|
7095
|
+
var _a2, _b2;
|
|
7096
|
+
const [activeIndex, setActiveIndex] = React61.useState(null);
|
|
7097
|
+
const [pressedIndex, setPressedIndex] = React61.useState(null);
|
|
7098
|
+
const childrenArray = React61.useMemo(
|
|
7099
|
+
() => React61.Children.toArray(children).filter(React61.isValidElement),
|
|
7100
|
+
[children]
|
|
7101
|
+
);
|
|
7102
|
+
const count = childrenArray.length;
|
|
7103
|
+
const isTextItem = React61.useMemo(() => {
|
|
7104
|
+
return childrenArray.map((child) => {
|
|
7105
|
+
const childEl = child;
|
|
7106
|
+
if (typeof childEl.props.children === "string") return true;
|
|
7107
|
+
if (Array.isArray(childEl.props.children)) {
|
|
7108
|
+
return childEl.props.children.some(
|
|
7109
|
+
(c) => typeof c === "string" && c.trim().length > 0
|
|
7110
|
+
);
|
|
7111
|
+
}
|
|
7112
|
+
return false;
|
|
7113
|
+
});
|
|
7114
|
+
}, [childrenArray]);
|
|
7115
|
+
const calculatedWeights = useDistributeWeights({
|
|
7116
|
+
count,
|
|
7117
|
+
weights,
|
|
7118
|
+
activeIndex,
|
|
7119
|
+
expandRatio,
|
|
7120
|
+
mode,
|
|
7121
|
+
isTextItem
|
|
7122
|
+
});
|
|
7123
|
+
const handleGroupMouseLeave = React61.useCallback(
|
|
7124
|
+
(e) => {
|
|
7125
|
+
setActiveIndex(null);
|
|
7126
|
+
setPressedIndex(null);
|
|
7127
|
+
onMouseLeave == null ? void 0 : onMouseLeave(e);
|
|
7128
|
+
},
|
|
7129
|
+
[onMouseLeave]
|
|
7130
|
+
);
|
|
7131
|
+
const resolvedGap = typeof gap === "number" ? `${gap}px` : gap;
|
|
7132
|
+
const effectiveLeadingSize = typeof (leadingSize != null ? leadingSize : fixedSize) === "number" ? `${leadingSize != null ? leadingSize : fixedSize}px` : leadingSize != null ? leadingSize : fixedSize;
|
|
7133
|
+
const effectiveTrailingSize = typeof (trailingSize != null ? trailingSize : fixedSize) === "number" ? `${trailingSize != null ? trailingSize : fixedSize}px` : trailingSize != null ? trailingSize : fixedSize;
|
|
7134
|
+
const radiusTokens = (_a2 = DISTRIBUTE_RADIUS_TOKENS[size]) != null ? _a2 : DISTRIBUTE_RADIUS_TOKENS.sm;
|
|
7135
|
+
const heightClass = (_b2 = DISTRIBUTE_HEIGHT_TOKENS[size]) != null ? _b2 : DISTRIBUTE_HEIGHT_TOKENS.sm;
|
|
7136
|
+
return /* @__PURE__ */ jsx(LazyMotion, { features: domMax, strict: true, children: /* @__PURE__ */ jsx(
|
|
7137
|
+
"fieldset",
|
|
7138
|
+
__spreadProps(__spreadValues({
|
|
7139
|
+
ref,
|
|
7140
|
+
onMouseLeave: handleGroupMouseLeave,
|
|
7141
|
+
onPointerCancel: () => setPressedIndex(null),
|
|
7142
|
+
className: cn(
|
|
7143
|
+
"inline-flex flex-row items-center border-none p-0 m-0 box-border overflow-hidden select-none w-full",
|
|
7144
|
+
heightClass,
|
|
7145
|
+
className
|
|
7146
|
+
),
|
|
7147
|
+
style: __spreadValues({
|
|
7148
|
+
gap: resolvedGap
|
|
7149
|
+
}, style)
|
|
7150
|
+
}, restProps), {
|
|
7151
|
+
children: childrenArray.map((child, index) => {
|
|
7152
|
+
var _a3, _b3, _c, _d, _e, _f;
|
|
7153
|
+
const isFirst = index === 0;
|
|
7154
|
+
const isLast = index === count - 1;
|
|
7155
|
+
const childElement = child;
|
|
7156
|
+
const isActive = activeIndex === index;
|
|
7157
|
+
const isPressed = pressedIndex === index;
|
|
7158
|
+
const isSquish = isActive || isPressed;
|
|
7159
|
+
let flexStyle = {};
|
|
7160
|
+
let targetFlexBasis = 0;
|
|
7161
|
+
const parsePx = (val) => {
|
|
7162
|
+
if (typeof val === "number") return val;
|
|
7163
|
+
const parsed = Number.parseFloat(val);
|
|
7164
|
+
return Number.isNaN(parsed) ? 48 : parsed;
|
|
7165
|
+
};
|
|
7166
|
+
const leadingPx = parsePx(effectiveLeadingSize);
|
|
7167
|
+
const trailingPx = parsePx(effectiveTrailingSize);
|
|
7168
|
+
const leadingCompressedPx = Math.max(
|
|
7169
|
+
40,
|
|
7170
|
+
Math.round(leadingPx * (1 - expandRatio))
|
|
7171
|
+
);
|
|
7172
|
+
const trailingCompressedPx = Math.max(
|
|
7173
|
+
40,
|
|
7174
|
+
Math.round(trailingPx * (1 - expandRatio))
|
|
7175
|
+
);
|
|
7176
|
+
if (mode === "dynamic" || mode === "fixed") {
|
|
7177
|
+
const currentWeight = (_a3 = calculatedWeights[index]) != null ? _a3 : 1;
|
|
7178
|
+
flexStyle = {
|
|
7179
|
+
flexGrow: currentWeight,
|
|
7180
|
+
flexShrink: 1,
|
|
7181
|
+
flexBasis: 0,
|
|
7182
|
+
minWidth: 0
|
|
7183
|
+
};
|
|
7184
|
+
targetFlexBasis = 0;
|
|
7185
|
+
} else if (mode === "mixed") {
|
|
7186
|
+
const currentWeight = (_b3 = calculatedWeights[index]) != null ? _b3 : 0;
|
|
7187
|
+
if (isFirst) {
|
|
7188
|
+
targetFlexBasis = activeIndex !== null && activeIndex > 0 ? `${leadingCompressedPx}px` : effectiveLeadingSize;
|
|
7189
|
+
flexStyle = {
|
|
7190
|
+
flexBasis: targetFlexBasis,
|
|
7191
|
+
flexGrow: currentWeight,
|
|
7192
|
+
flexShrink: 0,
|
|
7193
|
+
minWidth: 0
|
|
7194
|
+
};
|
|
7195
|
+
} else if (isLast) {
|
|
7196
|
+
targetFlexBasis = activeIndex !== null && activeIndex < count - 1 ? `${trailingCompressedPx}px` : effectiveTrailingSize;
|
|
7197
|
+
flexStyle = {
|
|
7198
|
+
flexBasis: targetFlexBasis,
|
|
7199
|
+
flexGrow: currentWeight,
|
|
7200
|
+
flexShrink: 0,
|
|
7201
|
+
minWidth: 0
|
|
7202
|
+
};
|
|
7203
|
+
} else {
|
|
7204
|
+
targetFlexBasis = 0;
|
|
7205
|
+
flexStyle = {
|
|
7206
|
+
flexBasis: 0,
|
|
7207
|
+
flexGrow: (_c = calculatedWeights[index]) != null ? _c : 1,
|
|
7208
|
+
flexShrink: 1,
|
|
7209
|
+
minWidth: 0
|
|
7210
|
+
};
|
|
7211
|
+
}
|
|
7212
|
+
}
|
|
7213
|
+
const handleMouseEnter = (e) => {
|
|
7214
|
+
var _a4, _b4;
|
|
7215
|
+
if (expandOnHover) {
|
|
7216
|
+
setActiveIndex(index);
|
|
7217
|
+
}
|
|
7218
|
+
(_b4 = (_a4 = childElement.props).onMouseEnter) == null ? void 0 : _b4.call(_a4, e);
|
|
7219
|
+
};
|
|
7220
|
+
const handleFocus = (e) => {
|
|
7221
|
+
var _a4, _b4;
|
|
7222
|
+
setActiveIndex(index);
|
|
7223
|
+
(_b4 = (_a4 = childElement.props).onFocus) == null ? void 0 : _b4.call(_a4, e);
|
|
7224
|
+
};
|
|
7225
|
+
const handlePointerDown = (e) => {
|
|
7226
|
+
var _a4, _b4;
|
|
7227
|
+
setPressedIndex(index);
|
|
7228
|
+
setActiveIndex(index);
|
|
7229
|
+
(_b4 = (_a4 = childElement.props).onPointerDown) == null ? void 0 : _b4.call(_a4, e);
|
|
7230
|
+
};
|
|
7231
|
+
const handlePointerUp = (e) => {
|
|
7232
|
+
var _a4, _b4;
|
|
7233
|
+
setPressedIndex(null);
|
|
7234
|
+
if (!expandOnHover) {
|
|
7235
|
+
setActiveIndex(null);
|
|
7236
|
+
}
|
|
7237
|
+
(_b4 = (_a4 = childElement.props).onPointerUp) == null ? void 0 : _b4.call(_a4, e);
|
|
7238
|
+
};
|
|
7239
|
+
const handleClick = (e) => {
|
|
7240
|
+
var _a4, _b4;
|
|
7241
|
+
setPressedIndex(null);
|
|
7242
|
+
if (!expandOnHover) {
|
|
7243
|
+
setActiveIndex(null);
|
|
7244
|
+
}
|
|
7245
|
+
(_b4 = (_a4 = childElement.props).onClick) == null ? void 0 : _b4.call(_a4, e);
|
|
7246
|
+
};
|
|
7247
|
+
const clonedChild = React61.cloneElement(childElement, {
|
|
7248
|
+
size: (_d = childElement.props.size) != null ? _d : size,
|
|
7249
|
+
className: cn(
|
|
7250
|
+
"w-full! h-full! justify-center items-center flex-1 rounded-[inherit]! px-3! sm:px-4!",
|
|
7251
|
+
childElement.props.className
|
|
7252
|
+
)
|
|
7253
|
+
});
|
|
7254
|
+
return /* @__PURE__ */ jsx(
|
|
7255
|
+
m.div,
|
|
7256
|
+
{
|
|
7257
|
+
layout: true,
|
|
7258
|
+
initial: false,
|
|
7259
|
+
animate: {
|
|
7260
|
+
flexGrow: (_f = flexStyle.flexGrow) != null ? _f : 1,
|
|
7261
|
+
flexBasis: targetFlexBasis,
|
|
7262
|
+
borderRadius: isSquish ? radiusTokens.pressedRadius : radiusTokens.pillRadius
|
|
7263
|
+
},
|
|
7264
|
+
transition: __spreadProps(__spreadValues({}, DISTRIBUTE_SPRING_TRANSITION), {
|
|
7265
|
+
borderRadius: BUTTON_RADIUS_SPRING
|
|
7266
|
+
}),
|
|
7267
|
+
onMouseEnter: handleMouseEnter,
|
|
7268
|
+
onFocus: handleFocus,
|
|
7269
|
+
onPointerDown: handlePointerDown,
|
|
7270
|
+
onPointerUp: handlePointerUp,
|
|
7271
|
+
onClick: handleClick,
|
|
7272
|
+
className: cn(
|
|
7273
|
+
"relative inline-flex items-center justify-center shrink-0 min-w-0 overflow-hidden h-full",
|
|
7274
|
+
itemClassName
|
|
7275
|
+
),
|
|
7276
|
+
style: flexStyle,
|
|
7277
|
+
children: clonedChild
|
|
7278
|
+
},
|
|
7279
|
+
(_e = childElement.key) != null ? _e : index
|
|
7280
|
+
);
|
|
7281
|
+
})
|
|
7282
|
+
})
|
|
7283
|
+
) });
|
|
7284
|
+
}
|
|
7285
|
+
);
|
|
7286
|
+
ButtonDistribute.displayName = "ButtonDistribute";
|
|
6953
7287
|
var BUTTON_GROUP_TOKENS = {
|
|
6954
7288
|
connected: {
|
|
6955
7289
|
// 40dp / 2.5rem
|
|
@@ -6992,7 +7326,6 @@ function buildConnectedShapes(size, defaultCorners, pressedCorners) {
|
|
|
6992
7326
|
};
|
|
6993
7327
|
}
|
|
6994
7328
|
var ButtonGroupDefaults = {
|
|
6995
|
-
expandedRatio: 0.15,
|
|
6996
7329
|
connectedLeadingButtonShapes: (size) => buildConnectedShapes(
|
|
6997
7330
|
size,
|
|
6998
7331
|
(o, i) => ({ tl: o, tr: i, br: i, bl: o }),
|
|
@@ -7021,8 +7354,6 @@ var ButtonGroupDefaults = {
|
|
|
7021
7354
|
)
|
|
7022
7355
|
};
|
|
7023
7356
|
var PILL_BORDER_RADIUS = 9999;
|
|
7024
|
-
var MIN_FLEX_GROW = 0.01;
|
|
7025
|
-
var PADDING_EXPAND_MULTIPLIER = 4;
|
|
7026
7357
|
var CHECK_ICON_SIZE = 24;
|
|
7027
7358
|
var CHECK_ICON = /* @__PURE__ */ jsx(Icon, { name: "check", variant: "rounded", size: CHECK_ICON_SIZE, weight: 700 });
|
|
7028
7359
|
var CHECK_ICON_GAP_MAP = {
|
|
@@ -7038,13 +7369,7 @@ var CHECK_ICON_MOTION = {
|
|
|
7038
7369
|
damping: 34,
|
|
7039
7370
|
mass: 0.75
|
|
7040
7371
|
};
|
|
7041
|
-
var
|
|
7042
|
-
type: "spring",
|
|
7043
|
-
stiffness: 360,
|
|
7044
|
-
damping: 38,
|
|
7045
|
-
mass: 0.85
|
|
7046
|
-
};
|
|
7047
|
-
var AnimatedCheckLabel = React59.memo(function AnimatedCheckLabel2({
|
|
7372
|
+
var AnimatedCheckLabel = React61.memo(function AnimatedCheckLabel2({
|
|
7048
7373
|
selected,
|
|
7049
7374
|
size,
|
|
7050
7375
|
children
|
|
@@ -7120,43 +7445,9 @@ function resolveIconAndLabel(element, isSelected, itemSize, showCheck, iconBehav
|
|
|
7120
7445
|
}
|
|
7121
7446
|
return { icon, label };
|
|
7122
7447
|
}
|
|
7123
|
-
function
|
|
7124
|
-
const increment = expandedRatio * PADDING_EXPAND_MULTIPLIER;
|
|
7125
|
-
if (activeMorphing) {
|
|
7126
|
-
const isFlexLayout = fullWidth || variant === "connected" && orientation === "horizontal";
|
|
7127
|
-
if (isFlexLayout) {
|
|
7128
|
-
if (isSelected) return { flexGrow: 1 + expandedRatio };
|
|
7129
|
-
if (hasSelected && count > 1)
|
|
7130
|
-
return {
|
|
7131
|
-
flexGrow: Math.max(MIN_FLEX_GROW, 1 - expandedRatio / (count - 1))
|
|
7132
|
-
};
|
|
7133
|
-
return { flexGrow: 1 };
|
|
7134
|
-
}
|
|
7135
|
-
if (isSelected)
|
|
7136
|
-
return { paddingInline: `calc(${basePx} + ${increment}rem)` };
|
|
7137
|
-
if (hasSelected && count > 1) {
|
|
7138
|
-
const decrement = increment / (count - 1);
|
|
7139
|
-
return { paddingInline: `calc(${basePx} - ${decrement}rem)` };
|
|
7140
|
-
}
|
|
7141
|
-
return { paddingInline: basePx };
|
|
7142
|
-
}
|
|
7143
|
-
if (morphingWidth && variant === "standard") {
|
|
7144
|
-
if (fullWidth) return { flexGrow: isPressed ? 1 + expandedRatio : 1 };
|
|
7145
|
-
return {
|
|
7146
|
-
paddingInline: isPressed ? `calc(${basePx} + ${increment}rem)` : basePx
|
|
7147
|
-
};
|
|
7148
|
-
}
|
|
7149
|
-
return {};
|
|
7150
|
-
}
|
|
7151
|
-
function buildMotionProps(variant, isSelected, isPressed, itemSize, shapes, flex, existingAnimate, existingWhileTap) {
|
|
7448
|
+
function buildMotionProps(variant, isSelected, isPressed, itemSize, shapes, existingAnimate, existingWhileTap) {
|
|
7152
7449
|
var _a, _b;
|
|
7153
7450
|
const props = { animate: __spreadValues({}, existingAnimate) };
|
|
7154
|
-
if (flex.flexGrow !== void 0) {
|
|
7155
|
-
props.animate.flexGrow = flex.flexGrow;
|
|
7156
|
-
}
|
|
7157
|
-
if (flex.paddingInline !== void 0) {
|
|
7158
|
-
props.animate.paddingInline = flex.paddingInline;
|
|
7159
|
-
}
|
|
7160
7451
|
if (variant === "standard") {
|
|
7161
7452
|
const pressedRadius = (_a = PRESSED_RADIUS_MAP[itemSize]) != null ? _a : PRESSED_RADIUS_MAP.sm;
|
|
7162
7453
|
const itemSizeTokens = (_b = BUTTON_SIZE_TOKENS[itemSize]) != null ? _b : BUTTON_SIZE_TOKENS.sm;
|
|
@@ -7167,9 +7458,6 @@ function buildMotionProps(variant, isSelected, isPressed, itemSize, shapes, flex
|
|
|
7167
7458
|
}, existingWhileTap);
|
|
7168
7459
|
props.transition = {
|
|
7169
7460
|
borderRadius: BUTTON_RADIUS_SPRING,
|
|
7170
|
-
flexGrow: WIDTH_MORPH_SPRING,
|
|
7171
|
-
paddingInline: WIDTH_MORPH_SPRING,
|
|
7172
|
-
layout: WIDTH_MORPH_SPRING,
|
|
7173
7461
|
default: BUTTON_SHAPE_MORPH_SPRING
|
|
7174
7462
|
};
|
|
7175
7463
|
props.layout = true;
|
|
@@ -7196,19 +7484,16 @@ function buildMotionProps(variant, isSelected, isPressed, itemSize, shapes, flex
|
|
|
7196
7484
|
borderBottomLeftRadius: shapes.pressed.bl
|
|
7197
7485
|
}, existingWhileTap);
|
|
7198
7486
|
props.transition = __spreadProps(__spreadValues({}, BUTTON_SHAPE_MORPH_SPRING), {
|
|
7199
|
-
flexGrow: WIDTH_MORPH_SPRING,
|
|
7200
|
-
paddingInline: WIDTH_MORPH_SPRING,
|
|
7201
7487
|
borderTopLeftRadius: BUTTON_RADIUS_SPRING,
|
|
7202
7488
|
borderTopRightRadius: BUTTON_RADIUS_SPRING,
|
|
7203
7489
|
borderBottomRightRadius: BUTTON_RADIUS_SPRING,
|
|
7204
|
-
borderBottomLeftRadius: BUTTON_RADIUS_SPRING
|
|
7205
|
-
layout: WIDTH_MORPH_SPRING
|
|
7490
|
+
borderBottomLeftRadius: BUTTON_RADIUS_SPRING
|
|
7206
7491
|
});
|
|
7207
7492
|
props.layout = true;
|
|
7208
7493
|
}
|
|
7209
7494
|
return props;
|
|
7210
7495
|
}
|
|
7211
|
-
var ButtonGroupComponent =
|
|
7496
|
+
var ButtonGroupComponent = React61.forwardRef(
|
|
7212
7497
|
(_a, ref) => {
|
|
7213
7498
|
var _b = _a, {
|
|
7214
7499
|
className,
|
|
@@ -7216,10 +7501,7 @@ var ButtonGroupComponent = React59.forwardRef(
|
|
|
7216
7501
|
orientation = "horizontal",
|
|
7217
7502
|
fullWidth = false,
|
|
7218
7503
|
size,
|
|
7219
|
-
morphingWidth = true,
|
|
7220
|
-
activeMorphing = false,
|
|
7221
7504
|
itemClassName,
|
|
7222
|
-
expandedRatio = ButtonGroupDefaults.expandedRatio,
|
|
7223
7505
|
showCheck = false,
|
|
7224
7506
|
children,
|
|
7225
7507
|
iconBehavior,
|
|
@@ -7231,99 +7513,26 @@ var ButtonGroupComponent = React59.forwardRef(
|
|
|
7231
7513
|
"orientation",
|
|
7232
7514
|
"fullWidth",
|
|
7233
7515
|
"size",
|
|
7234
|
-
"morphingWidth",
|
|
7235
|
-
"activeMorphing",
|
|
7236
7516
|
"itemClassName",
|
|
7237
|
-
"expandedRatio",
|
|
7238
7517
|
"showCheck",
|
|
7239
7518
|
"children",
|
|
7240
7519
|
"iconBehavior",
|
|
7241
7520
|
"labelBehavior",
|
|
7242
7521
|
"style"
|
|
7243
7522
|
]);
|
|
7244
|
-
const [pressedIndex, setPressedIndex] =
|
|
7245
|
-
const
|
|
7246
|
-
|
|
7247
|
-
);
|
|
7248
|
-
const rootRef = React59.useRef(null);
|
|
7249
|
-
const setRootRef = React59.useCallback(
|
|
7250
|
-
(node) => {
|
|
7251
|
-
rootRef.current = node;
|
|
7252
|
-
if (typeof ref === "function") {
|
|
7253
|
-
ref(node);
|
|
7254
|
-
} else if (ref) {
|
|
7255
|
-
ref.current = node;
|
|
7256
|
-
}
|
|
7257
|
-
},
|
|
7258
|
-
[ref]
|
|
7259
|
-
);
|
|
7260
|
-
const childrenArray = React59.useMemo(
|
|
7261
|
-
() => React59.Children.toArray(children).filter(React59.isValidElement),
|
|
7523
|
+
const [pressedIndex, setPressedIndex] = React61.useState(null);
|
|
7524
|
+
const childrenArray = React61.useMemo(
|
|
7525
|
+
() => React61.Children.toArray(children).filter(React61.isValidElement),
|
|
7262
7526
|
[children]
|
|
7263
7527
|
);
|
|
7264
7528
|
const count = childrenArray.length;
|
|
7265
|
-
const
|
|
7266
|
-
() => `${childrenArray.map((child, index) => {
|
|
7267
|
-
var _a2, _b2, _c, _d, _e;
|
|
7268
|
-
const element = child;
|
|
7269
|
-
const label = typeof element.props.children === "string" || typeof element.props.children === "number" ? element.props.children : (_a2 = element.key) != null ? _a2 : index;
|
|
7270
|
-
return [
|
|
7271
|
-
(_b2 = element.key) != null ? _b2 : index,
|
|
7272
|
-
(_d = (_c = element.props.size) != null ? _c : size) != null ? _d : "",
|
|
7273
|
-
label,
|
|
7274
|
-
Boolean(element.props.icon),
|
|
7275
|
-
(_e = element.props.className) != null ? _e : ""
|
|
7276
|
-
].join(":");
|
|
7277
|
-
}).join("|")}|${variant}|${orientation}|${showCheck}`,
|
|
7278
|
-
[childrenArray, orientation, showCheck, size, variant]
|
|
7279
|
-
);
|
|
7280
|
-
const groupSizeSignatureRef = React59.useRef(groupSizeSignature);
|
|
7281
|
-
React59.useLayoutEffect(() => {
|
|
7282
|
-
if (groupSizeSignatureRef.current !== groupSizeSignature) {
|
|
7283
|
-
groupSizeSignatureRef.current = groupSizeSignature;
|
|
7284
|
-
setLockedGroupSize(null);
|
|
7285
|
-
}
|
|
7286
|
-
}, [groupSizeSignature]);
|
|
7287
|
-
const hasExplicitGroupSize = orientation === "horizontal" ? (style == null ? void 0 : style.width) !== void 0 || (style == null ? void 0 : style.inlineSize) !== void 0 : (style == null ? void 0 : style.height) !== void 0 || (style == null ? void 0 : style.blockSize) !== void 0;
|
|
7288
|
-
const shouldLockGroupSize = activeMorphing && !fullWidth && !hasExplicitGroupSize && count > 1;
|
|
7289
|
-
React59.useLayoutEffect(() => {
|
|
7290
|
-
if (!shouldLockGroupSize) {
|
|
7291
|
-
if (lockedGroupSize !== null) setLockedGroupSize(null);
|
|
7292
|
-
return;
|
|
7293
|
-
}
|
|
7294
|
-
if (lockedGroupSize !== null) return;
|
|
7295
|
-
const node = rootRef.current;
|
|
7296
|
-
if (!node) return;
|
|
7297
|
-
const rect = node.getBoundingClientRect();
|
|
7298
|
-
const nextSize = orientation === "horizontal" ? rect.width : rect.height;
|
|
7299
|
-
if (nextSize > 0) {
|
|
7300
|
-
setLockedGroupSize(Math.ceil(nextSize * 100) / 100);
|
|
7301
|
-
}
|
|
7302
|
-
}, [lockedGroupSize, orientation, shouldLockGroupSize]);
|
|
7303
|
-
const groupStyle = React59.useMemo(() => {
|
|
7304
|
-
const nextStyle = __spreadValues({}, style);
|
|
7305
|
-
if (shouldLockGroupSize && lockedGroupSize !== null) {
|
|
7306
|
-
if (orientation === "horizontal") {
|
|
7307
|
-
nextStyle.inlineSize = `${lockedGroupSize}px`;
|
|
7308
|
-
} else {
|
|
7309
|
-
nextStyle.blockSize = `${lockedGroupSize}px`;
|
|
7310
|
-
}
|
|
7311
|
-
}
|
|
7312
|
-
return nextStyle;
|
|
7313
|
-
}, [lockedGroupSize, orientation, shouldLockGroupSize, style]);
|
|
7314
|
-
const hasSelected = React59.useMemo(
|
|
7315
|
-
() => childrenArray.some(
|
|
7316
|
-
(child) => child.props.selected
|
|
7317
|
-
),
|
|
7318
|
-
[childrenArray]
|
|
7319
|
-
);
|
|
7320
|
-
const handlePointerLeaveAndUp = React59.useCallback(() => {
|
|
7529
|
+
const handlePointerLeaveAndUp = React61.useCallback(() => {
|
|
7321
7530
|
setPressedIndex(null);
|
|
7322
7531
|
}, []);
|
|
7323
7532
|
return /* @__PURE__ */ jsx(
|
|
7324
7533
|
"fieldset",
|
|
7325
7534
|
__spreadProps(__spreadValues({
|
|
7326
|
-
ref
|
|
7535
|
+
ref,
|
|
7327
7536
|
className: cn(
|
|
7328
7537
|
"inline-flex p-0 m-0 border-none max-w-full [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
7329
7538
|
orientation === "vertical" ? "flex-col items-stretch overflow-y-auto overflow-x-hidden" : "flex-row overflow-x-auto overflow-y-hidden",
|
|
@@ -7332,18 +7541,17 @@ var ButtonGroupComponent = React59.forwardRef(
|
|
|
7332
7541
|
fullWidth && orientation === "vertical" && "h-full",
|
|
7333
7542
|
className
|
|
7334
7543
|
),
|
|
7335
|
-
style
|
|
7544
|
+
style,
|
|
7336
7545
|
onPointerLeave: handlePointerLeaveAndUp,
|
|
7337
7546
|
onPointerUp: handlePointerLeaveAndUp
|
|
7338
7547
|
}, props), {
|
|
7339
7548
|
children: childrenArray.map((child, index) => {
|
|
7340
|
-
var _a2
|
|
7549
|
+
var _a2;
|
|
7341
7550
|
const element = child;
|
|
7342
7551
|
const isSelected = element.props.selected === true;
|
|
7343
7552
|
const isFirst = index === 0;
|
|
7344
7553
|
const isLast = index === count - 1;
|
|
7345
7554
|
const itemSize = size || element.props.size || "sm";
|
|
7346
|
-
const basePx = ((_a2 = BUTTON_SIZE_TOKENS[itemSize]) == null ? void 0 : _a2.leadingSpace) || "1rem";
|
|
7347
7555
|
const isPressed = pressedIndex === index;
|
|
7348
7556
|
const { icon: explicitIcon, label: explicitLabel } = resolveIconAndLabel(
|
|
7349
7557
|
element,
|
|
@@ -7360,25 +7568,6 @@ var ButtonGroupComponent = React59.forwardRef(
|
|
|
7360
7568
|
isLast,
|
|
7361
7569
|
itemSize
|
|
7362
7570
|
);
|
|
7363
|
-
const flex = resolveFlexTargets(
|
|
7364
|
-
variant,
|
|
7365
|
-
orientation,
|
|
7366
|
-
isSelected,
|
|
7367
|
-
isPressed,
|
|
7368
|
-
hasSelected,
|
|
7369
|
-
count,
|
|
7370
|
-
fullWidth,
|
|
7371
|
-
activeMorphing,
|
|
7372
|
-
morphingWidth,
|
|
7373
|
-
expandedRatio,
|
|
7374
|
-
basePx
|
|
7375
|
-
);
|
|
7376
|
-
const dynamicStyle = __spreadValues({}, element.props.style);
|
|
7377
|
-
if (flex.flexGrow !== void 0 && fullWidth) {
|
|
7378
|
-
dynamicStyle.flexBasis = 0;
|
|
7379
|
-
dynamicStyle.flexShrink = 1;
|
|
7380
|
-
dynamicStyle.minWidth = 0;
|
|
7381
|
-
}
|
|
7382
7571
|
const existingAnimate = typeof element.props.animate === "object" && !Array.isArray(element.props.animate) ? element.props.animate : {};
|
|
7383
7572
|
const existingWhileTap = typeof element.props.whileTap === "object" && !Array.isArray(element.props.whileTap) ? element.props.whileTap : {};
|
|
7384
7573
|
const motionProps = buildMotionProps(
|
|
@@ -7387,13 +7576,12 @@ var ButtonGroupComponent = React59.forwardRef(
|
|
|
7387
7576
|
isPressed,
|
|
7388
7577
|
itemSize,
|
|
7389
7578
|
shapes,
|
|
7390
|
-
flex,
|
|
7391
7579
|
existingAnimate,
|
|
7392
7580
|
existingWhileTap
|
|
7393
7581
|
);
|
|
7394
7582
|
const connectedClasses = variant === "connected" && isSelected ? "z-20" : "";
|
|
7395
|
-
const clonedElement =
|
|
7396
|
-
key: (
|
|
7583
|
+
const clonedElement = React61.cloneElement(element, __spreadValues(__spreadProps(__spreadValues({
|
|
7584
|
+
key: (_a2 = element.key) != null ? _a2 : index,
|
|
7397
7585
|
tabIndex: isFirst ? 0 : -1,
|
|
7398
7586
|
size: size || element.props.size,
|
|
7399
7587
|
icon: explicitIcon,
|
|
@@ -7407,9 +7595,9 @@ var ButtonGroupComponent = React59.forwardRef(
|
|
|
7407
7595
|
connectedClasses,
|
|
7408
7596
|
"focus-visible:z-10 hover:z-10 relative min-w-0",
|
|
7409
7597
|
orientation === "vertical" && "w-full",
|
|
7598
|
+
fullWidth && "flex-1",
|
|
7410
7599
|
itemClassName
|
|
7411
7600
|
),
|
|
7412
|
-
style: dynamicStyle,
|
|
7413
7601
|
onPointerDown: (e) => {
|
|
7414
7602
|
setPressedIndex(index);
|
|
7415
7603
|
if (element.props.onPointerDown) element.props.onPointerDown(e);
|
|
@@ -7422,7 +7610,7 @@ var ButtonGroupComponent = React59.forwardRef(
|
|
|
7422
7610
|
}
|
|
7423
7611
|
);
|
|
7424
7612
|
ButtonGroupComponent.displayName = "ButtonGroup";
|
|
7425
|
-
var ButtonGroup =
|
|
7613
|
+
var ButtonGroup = React61.memo(ButtonGroupComponent);
|
|
7426
7614
|
var SIZE_HEIGHT = {
|
|
7427
7615
|
sm: "h-14",
|
|
7428
7616
|
md: "h-20",
|
|
@@ -7477,9 +7665,9 @@ var COLOR_CLASSES = {
|
|
|
7477
7665
|
}
|
|
7478
7666
|
};
|
|
7479
7667
|
function useScrollCollapse(enabled, scrollThreshold, onCollapsedChange) {
|
|
7480
|
-
const [collapsed, setCollapsed] =
|
|
7481
|
-
const lastScrollY =
|
|
7482
|
-
|
|
7668
|
+
const [collapsed, setCollapsed] = React61.useState(false);
|
|
7669
|
+
const lastScrollY = React61.useRef(0);
|
|
7670
|
+
React61.useEffect(() => {
|
|
7483
7671
|
if (!enabled || typeof window === "undefined") return;
|
|
7484
7672
|
lastScrollY.current = window.scrollY;
|
|
7485
7673
|
const handleScroll = () => {
|
|
@@ -7502,7 +7690,7 @@ function useScrollCollapse(enabled, scrollThreshold, onCollapsedChange) {
|
|
|
7502
7690
|
}, [enabled, scrollThreshold, collapsed, onCollapsedChange]);
|
|
7503
7691
|
return collapsed;
|
|
7504
7692
|
}
|
|
7505
|
-
var ExtendedFABComponent =
|
|
7693
|
+
var ExtendedFABComponent = React61.forwardRef(
|
|
7506
7694
|
(_a, ref) => {
|
|
7507
7695
|
var _b = _a, {
|
|
7508
7696
|
className,
|
|
@@ -7548,10 +7736,10 @@ var ExtendedFABComponent = React59.forwardRef(
|
|
|
7548
7736
|
"aria-label"
|
|
7549
7737
|
]);
|
|
7550
7738
|
var _a2, _b2, _c, _d;
|
|
7551
|
-
const localRef =
|
|
7552
|
-
|
|
7553
|
-
const [dir, setDir] =
|
|
7554
|
-
|
|
7739
|
+
const localRef = React61.useRef(null);
|
|
7740
|
+
React61.useImperativeHandle(ref, () => localRef.current);
|
|
7741
|
+
const [dir, setDir] = React61.useState("ltr");
|
|
7742
|
+
React61.useEffect(() => {
|
|
7555
7743
|
var _a3;
|
|
7556
7744
|
if (!localRef.current) return;
|
|
7557
7745
|
const closestDir = (_a3 = localRef.current.closest("[dir]")) == null ? void 0 : _a3.getAttribute("dir");
|
|
@@ -7572,7 +7760,7 @@ var ExtendedFABComponent = React59.forwardRef(
|
|
|
7572
7760
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
7573
7761
|
disabled: loading
|
|
7574
7762
|
});
|
|
7575
|
-
const handleClick =
|
|
7763
|
+
const handleClick = React61.useCallback(
|
|
7576
7764
|
(e) => {
|
|
7577
7765
|
if (loading) {
|
|
7578
7766
|
e.preventDefault();
|
|
@@ -7582,7 +7770,7 @@ var ExtendedFABComponent = React59.forwardRef(
|
|
|
7582
7770
|
},
|
|
7583
7771
|
[loading, onClick]
|
|
7584
7772
|
);
|
|
7585
|
-
const handleKeyDown =
|
|
7773
|
+
const handleKeyDown = React61.useCallback(
|
|
7586
7774
|
(e) => {
|
|
7587
7775
|
if (loading) return;
|
|
7588
7776
|
if ((e.key === "Enter" || e.key === " ") && onClick) {
|
|
@@ -7690,8 +7878,8 @@ var ExtendedFABComponent = React59.forwardRef(
|
|
|
7690
7878
|
}),
|
|
7691
7879
|
className: containerClassName
|
|
7692
7880
|
}, restProps), {
|
|
7693
|
-
children:
|
|
7694
|
-
|
|
7881
|
+
children: React61.cloneElement(
|
|
7882
|
+
React61.Children.only(children),
|
|
7695
7883
|
{ children: innerContent }
|
|
7696
7884
|
)
|
|
7697
7885
|
})
|
|
@@ -7735,7 +7923,7 @@ var ExtendedFABComponent = React59.forwardRef(
|
|
|
7735
7923
|
}
|
|
7736
7924
|
);
|
|
7737
7925
|
ExtendedFABComponent.displayName = "ExtendedFAB";
|
|
7738
|
-
var ExtendedFAB =
|
|
7926
|
+
var ExtendedFAB = React61.memo(ExtendedFABComponent);
|
|
7739
7927
|
var SIZE_STYLES = {
|
|
7740
7928
|
sm: "h-10 w-10",
|
|
7741
7929
|
md: "h-14 w-14",
|
|
@@ -7806,7 +7994,7 @@ function FABPosition({
|
|
|
7806
7994
|
}
|
|
7807
7995
|
);
|
|
7808
7996
|
}
|
|
7809
|
-
var FABComponent =
|
|
7997
|
+
var FABComponent = React61.forwardRef(
|
|
7810
7998
|
(_a, ref) => {
|
|
7811
7999
|
var _b = _a, {
|
|
7812
8000
|
className,
|
|
@@ -7853,7 +8041,7 @@ var FABComponent = React59.forwardRef(
|
|
|
7853
8041
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
7854
8042
|
disabled: loading
|
|
7855
8043
|
});
|
|
7856
|
-
const handleClick =
|
|
8044
|
+
const handleClick = React61.useCallback(
|
|
7857
8045
|
(e) => {
|
|
7858
8046
|
if (loading) {
|
|
7859
8047
|
e.preventDefault();
|
|
@@ -7863,7 +8051,7 @@ var FABComponent = React59.forwardRef(
|
|
|
7863
8051
|
},
|
|
7864
8052
|
[loading, onClick]
|
|
7865
8053
|
);
|
|
7866
|
-
const handleKeyDown =
|
|
8054
|
+
const handleKeyDown = React61.useCallback(
|
|
7867
8055
|
(e) => {
|
|
7868
8056
|
if (loading) return;
|
|
7869
8057
|
if ((e.key === "Enter" || e.key === " ") && onClick) {
|
|
@@ -7874,7 +8062,7 @@ var FABComponent = React59.forwardRef(
|
|
|
7874
8062
|
},
|
|
7875
8063
|
[loading, onClick, onKeyDown]
|
|
7876
8064
|
);
|
|
7877
|
-
const labelContent = asChild ?
|
|
8065
|
+
const labelContent = asChild ? React61.Children.only(children).props.children : children;
|
|
7878
8066
|
const innerContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7879
8067
|
needsTouchTarget && /* @__PURE__ */ jsx(TouchTarget, {}),
|
|
7880
8068
|
/* @__PURE__ */ jsx(Ripple, { ripples, onRippleDone: removeRipple }),
|
|
@@ -7962,8 +8150,8 @@ var FABComponent = React59.forwardRef(
|
|
|
7962
8150
|
}),
|
|
7963
8151
|
className: containerClassName
|
|
7964
8152
|
}, restProps), {
|
|
7965
|
-
children:
|
|
7966
|
-
|
|
8153
|
+
children: React61.cloneElement(
|
|
8154
|
+
React61.Children.only(children),
|
|
7967
8155
|
{ children: innerContent }
|
|
7968
8156
|
)
|
|
7969
8157
|
})
|
|
@@ -8000,7 +8188,7 @@ var FABComponent = React59.forwardRef(
|
|
|
8000
8188
|
}
|
|
8001
8189
|
);
|
|
8002
8190
|
FABComponent.displayName = "FAB";
|
|
8003
|
-
var FAB =
|
|
8191
|
+
var FAB = React61.memo(FABComponent);
|
|
8004
8192
|
var SPRING_NORMAL = { stiffness: 700, damping: 40 };
|
|
8005
8193
|
var SPRING_REDUCED = { stiffness: 1e4, damping: 100 };
|
|
8006
8194
|
var FOCUS_DELAY_MS = 50;
|
|
@@ -8108,7 +8296,7 @@ function CloseIcon2() {
|
|
|
8108
8296
|
function defaultFabIcon(progress) {
|
|
8109
8297
|
return progress > 0.5 ? /* @__PURE__ */ jsx(CloseIcon2, {}) : /* @__PURE__ */ jsx(AddIcon, {});
|
|
8110
8298
|
}
|
|
8111
|
-
var ToggleFABComponent =
|
|
8299
|
+
var ToggleFABComponent = React61.forwardRef(
|
|
8112
8300
|
({
|
|
8113
8301
|
expanded,
|
|
8114
8302
|
onToggle,
|
|
@@ -8126,7 +8314,7 @@ var ToggleFABComponent = React59.forwardRef(
|
|
|
8126
8314
|
const sizeTokens = (_b = TOGGLE_FAB_SIZES[fabSize]) != null ? _b : TOGGLE_FAB_SIZES.baseline;
|
|
8127
8315
|
const springConfig = prefersReduced ? SPRING_REDUCED : SPRING_NORMAL;
|
|
8128
8316
|
const checkedProgress = useSpring(expanded ? 1 : 0, springConfig);
|
|
8129
|
-
|
|
8317
|
+
React61.useEffect(() => {
|
|
8130
8318
|
checkedProgress.set(expanded ? 1 : 0);
|
|
8131
8319
|
}, [expanded, checkedProgress]);
|
|
8132
8320
|
const borderRadius = useTransform(
|
|
@@ -8134,12 +8322,12 @@ var ToggleFABComponent = React59.forwardRef(
|
|
|
8134
8322
|
[0, 1],
|
|
8135
8323
|
[`${sizeTokens.initialRadius}px`, `${sizeTokens.finalRadius}px`]
|
|
8136
8324
|
);
|
|
8137
|
-
const [iconProgress, setIconProgress] =
|
|
8138
|
-
|
|
8325
|
+
const [iconProgress, setIconProgress] = React61.useState(expanded ? 1 : 0);
|
|
8326
|
+
React61.useEffect(() => {
|
|
8139
8327
|
return checkedProgress.on("change", setIconProgress);
|
|
8140
8328
|
}, [checkedProgress]);
|
|
8141
8329
|
const { ripples, onPointerDown, removeRipple } = useRippleState();
|
|
8142
|
-
const handleClick =
|
|
8330
|
+
const handleClick = React61.useCallback(() => {
|
|
8143
8331
|
onToggle(!expanded);
|
|
8144
8332
|
}, [expanded, onToggle]);
|
|
8145
8333
|
return /* @__PURE__ */ jsxs(
|
|
@@ -8188,7 +8376,7 @@ var ToggleFABComponent = React59.forwardRef(
|
|
|
8188
8376
|
}
|
|
8189
8377
|
);
|
|
8190
8378
|
ToggleFABComponent.displayName = "ToggleFAB";
|
|
8191
|
-
var ToggleFAB =
|
|
8379
|
+
var ToggleFAB = React61.memo(ToggleFABComponent);
|
|
8192
8380
|
function FABMenuItem({
|
|
8193
8381
|
icon,
|
|
8194
8382
|
label,
|
|
@@ -8203,7 +8391,7 @@ function FABMenuItem({
|
|
|
8203
8391
|
var _a;
|
|
8204
8392
|
const colors = (_a = MENU_ITEM_COLORS[colorVariant]) != null ? _a : MENU_ITEM_COLORS.primary;
|
|
8205
8393
|
const { ripples, onPointerDown, removeRipple } = useRippleState({ disabled });
|
|
8206
|
-
const handleClick =
|
|
8394
|
+
const handleClick = React61.useCallback(
|
|
8207
8395
|
(e) => {
|
|
8208
8396
|
if (disabled) {
|
|
8209
8397
|
e.preventDefault();
|
|
@@ -8213,7 +8401,7 @@ function FABMenuItem({
|
|
|
8213
8401
|
},
|
|
8214
8402
|
[disabled, onClick]
|
|
8215
8403
|
);
|
|
8216
|
-
const handleKeyDown =
|
|
8404
|
+
const handleKeyDown = React61.useCallback(
|
|
8217
8405
|
(e) => {
|
|
8218
8406
|
if (disabled) return;
|
|
8219
8407
|
if (e.key === "Enter" || e.key === " ") {
|
|
@@ -8255,7 +8443,7 @@ function FABMenuItem({
|
|
|
8255
8443
|
borderRadius: `${MENU_ITEM_STYLES.cornerRadius}px`
|
|
8256
8444
|
};
|
|
8257
8445
|
if (asChild) {
|
|
8258
|
-
const child =
|
|
8446
|
+
const child = React61.Children.only(children);
|
|
8259
8447
|
return /* @__PURE__ */ jsx(m.div, { variants: MENU_ITEM_VARIANTS, style: containerStyle, children: /* @__PURE__ */ jsx(
|
|
8260
8448
|
Slot,
|
|
8261
8449
|
{
|
|
@@ -8267,7 +8455,7 @@ function FABMenuItem({
|
|
|
8267
8455
|
onPointerDown,
|
|
8268
8456
|
onKeyDown: handleKeyDown,
|
|
8269
8457
|
className: containerClassName,
|
|
8270
|
-
children:
|
|
8458
|
+
children: React61.cloneElement(child, { children: innerContent })
|
|
8271
8459
|
}
|
|
8272
8460
|
) });
|
|
8273
8461
|
}
|
|
@@ -8300,13 +8488,13 @@ function FABMenu({
|
|
|
8300
8488
|
focusLast = true,
|
|
8301
8489
|
"aria-label": ariaLabel
|
|
8302
8490
|
}) {
|
|
8303
|
-
const fabId =
|
|
8304
|
-
const menuId =
|
|
8305
|
-
const toggleRef =
|
|
8306
|
-
const itemRefs =
|
|
8307
|
-
const [focusedIndex, setFocusedIndex] =
|
|
8308
|
-
const reversedItems =
|
|
8309
|
-
const focusItem =
|
|
8491
|
+
const fabId = React61.useId();
|
|
8492
|
+
const menuId = React61.useId();
|
|
8493
|
+
const toggleRef = React61.useRef(null);
|
|
8494
|
+
const itemRefs = React61.useRef([]);
|
|
8495
|
+
const [focusedIndex, setFocusedIndex] = React61.useState(-1);
|
|
8496
|
+
const reversedItems = React61.useMemo(() => [...items].reverse(), [items]);
|
|
8497
|
+
const focusItem = React61.useCallback((index) => {
|
|
8310
8498
|
var _a;
|
|
8311
8499
|
const clampedIndex = Math.max(
|
|
8312
8500
|
0,
|
|
@@ -8315,8 +8503,8 @@ function FABMenu({
|
|
|
8315
8503
|
setFocusedIndex(clampedIndex);
|
|
8316
8504
|
(_a = itemRefs.current[clampedIndex]) == null ? void 0 : _a.focus();
|
|
8317
8505
|
}, []);
|
|
8318
|
-
const wasExpandedRef =
|
|
8319
|
-
|
|
8506
|
+
const wasExpandedRef = React61.useRef(false);
|
|
8507
|
+
React61.useEffect(() => {
|
|
8320
8508
|
var _a;
|
|
8321
8509
|
if (expanded) {
|
|
8322
8510
|
wasExpandedRef.current = true;
|
|
@@ -8331,7 +8519,7 @@ function FABMenu({
|
|
|
8331
8519
|
wasExpandedRef.current = false;
|
|
8332
8520
|
setFocusedIndex(-1);
|
|
8333
8521
|
}, [expanded, focusLast, items.length, focusItem]);
|
|
8334
|
-
const handleMenuKeyDown =
|
|
8522
|
+
const handleMenuKeyDown = React61.useCallback(
|
|
8335
8523
|
(e) => {
|
|
8336
8524
|
if (!expanded) return;
|
|
8337
8525
|
const lastIndex = items.length - 1;
|
|
@@ -8455,12 +8643,39 @@ function FABMenu({
|
|
|
8455
8643
|
)
|
|
8456
8644
|
] });
|
|
8457
8645
|
}
|
|
8458
|
-
var
|
|
8459
|
-
xs: "h-8
|
|
8460
|
-
sm: "h-10
|
|
8461
|
-
md: "h-14
|
|
8462
|
-
lg: "h-24
|
|
8463
|
-
xl: "h-[8.5rem]
|
|
8646
|
+
var SIZE_HEIGHT_STYLES = {
|
|
8647
|
+
xs: "h-8",
|
|
8648
|
+
sm: "h-10",
|
|
8649
|
+
md: "h-14",
|
|
8650
|
+
lg: "h-24",
|
|
8651
|
+
xl: "h-[8.5rem]"
|
|
8652
|
+
};
|
|
8653
|
+
var WIDTH_SIZE_STYLES = {
|
|
8654
|
+
xs: {
|
|
8655
|
+
default: "w-8",
|
|
8656
|
+
narrow: "w-8",
|
|
8657
|
+
wide: "w-12"
|
|
8658
|
+
},
|
|
8659
|
+
sm: {
|
|
8660
|
+
default: "w-10",
|
|
8661
|
+
narrow: "w-12",
|
|
8662
|
+
wide: "w-[3.25rem]"
|
|
8663
|
+
},
|
|
8664
|
+
md: {
|
|
8665
|
+
default: "w-14",
|
|
8666
|
+
narrow: "w-12",
|
|
8667
|
+
wide: "w-[4.5rem]"
|
|
8668
|
+
},
|
|
8669
|
+
lg: {
|
|
8670
|
+
default: "w-24",
|
|
8671
|
+
narrow: "w-16",
|
|
8672
|
+
wide: "w-32"
|
|
8673
|
+
},
|
|
8674
|
+
xl: {
|
|
8675
|
+
default: "w-[8.5rem]",
|
|
8676
|
+
narrow: "w-[6.5rem]",
|
|
8677
|
+
wide: "w-[11.5rem]"
|
|
8678
|
+
}
|
|
8464
8679
|
};
|
|
8465
8680
|
var SIZE_ICON3 = {
|
|
8466
8681
|
xs: { cls: "size-5", px: 20 },
|
|
@@ -8553,7 +8768,7 @@ function resolveDisabledBgClass(colorStyle) {
|
|
|
8553
8768
|
}
|
|
8554
8769
|
return "disabled:text-m3-on-surface/[0.38]";
|
|
8555
8770
|
}
|
|
8556
|
-
var IconButtonComponent =
|
|
8771
|
+
var IconButtonComponent = React61.forwardRef(
|
|
8557
8772
|
(_a, ref) => {
|
|
8558
8773
|
var _b = _a, {
|
|
8559
8774
|
className,
|
|
@@ -8561,8 +8776,10 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8561
8776
|
variant = "default",
|
|
8562
8777
|
colorStyle = "standard",
|
|
8563
8778
|
size = "sm",
|
|
8779
|
+
widthVariant = "default",
|
|
8564
8780
|
shape = "round",
|
|
8565
8781
|
selected,
|
|
8782
|
+
selectedIcon,
|
|
8566
8783
|
loading = false,
|
|
8567
8784
|
loadingVariant = "loading-indicator",
|
|
8568
8785
|
iconSize,
|
|
@@ -8577,8 +8794,10 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8577
8794
|
"variant",
|
|
8578
8795
|
"colorStyle",
|
|
8579
8796
|
"size",
|
|
8797
|
+
"widthVariant",
|
|
8580
8798
|
"shape",
|
|
8581
8799
|
"selected",
|
|
8800
|
+
"selectedIcon",
|
|
8582
8801
|
"loading",
|
|
8583
8802
|
"loadingVariant",
|
|
8584
8803
|
"iconSize",
|
|
@@ -8588,21 +8807,21 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8588
8807
|
"onKeyDown",
|
|
8589
8808
|
"aria-label"
|
|
8590
8809
|
]);
|
|
8591
|
-
var _a2, _b2;
|
|
8810
|
+
var _a2, _b2, _c, _d, _e;
|
|
8592
8811
|
const isToggle = variant === "toggle";
|
|
8593
8812
|
const isSelected = isToggle && !!selected;
|
|
8594
|
-
const resolvedColorClass =
|
|
8813
|
+
const resolvedColorClass = React61.useMemo(
|
|
8595
8814
|
() => isSelected ? colorStyles[colorStyle].selected : colorStyles[colorStyle].default,
|
|
8596
8815
|
[isSelected, colorStyle]
|
|
8597
8816
|
);
|
|
8598
|
-
const outlineWidthClass =
|
|
8817
|
+
const outlineWidthClass = React61.useMemo(
|
|
8599
8818
|
() => {
|
|
8600
8819
|
var _a3;
|
|
8601
8820
|
return colorStyle === "outlined" && !isSelected ? (_a3 = SIZE_OUTLINE_WIDTH[size]) != null ? _a3 : "border" : "";
|
|
8602
8821
|
},
|
|
8603
8822
|
[colorStyle, isSelected, size]
|
|
8604
8823
|
);
|
|
8605
|
-
const disabledBgClass =
|
|
8824
|
+
const disabledBgClass = React61.useMemo(
|
|
8606
8825
|
() => resolveDisabledBgClass(colorStyle),
|
|
8607
8826
|
[colorStyle]
|
|
8608
8827
|
);
|
|
@@ -8619,11 +8838,13 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8619
8838
|
const defaultIconPx = sizeIcon.px;
|
|
8620
8839
|
const iconPx = iconSize != null ? iconSize : defaultIconPx;
|
|
8621
8840
|
const isCustomSize = iconSize != null && iconSize !== "inherit";
|
|
8841
|
+
const heightClass = (_c = SIZE_HEIGHT_STYLES[size]) != null ? _c : SIZE_HEIGHT_STYLES.sm;
|
|
8842
|
+
const widthClass = (_e = ((_d = WIDTH_SIZE_STYLES[size]) != null ? _d : WIDTH_SIZE_STYLES.sm)[widthVariant]) != null ? _e : WIDTH_SIZE_STYLES.sm.default;
|
|
8622
8843
|
const needsTouchTarget = size === "xs" || size === "sm";
|
|
8623
8844
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
8624
8845
|
disabled: loading
|
|
8625
8846
|
});
|
|
8626
|
-
const handleClick =
|
|
8847
|
+
const handleClick = React61.useCallback(
|
|
8627
8848
|
(e) => {
|
|
8628
8849
|
if (loading) {
|
|
8629
8850
|
e.preventDefault();
|
|
@@ -8633,7 +8854,7 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8633
8854
|
},
|
|
8634
8855
|
[loading, onClick]
|
|
8635
8856
|
);
|
|
8636
|
-
const handleKeyDown =
|
|
8857
|
+
const handleKeyDown = React61.useCallback(
|
|
8637
8858
|
(e) => {
|
|
8638
8859
|
if (loading) return;
|
|
8639
8860
|
if ((e.key === "Enter" || e.key === " ") && onClick) {
|
|
@@ -8681,7 +8902,7 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8681
8902
|
transition: SPRING_TRANSITION,
|
|
8682
8903
|
"aria-hidden": "true",
|
|
8683
8904
|
className: cn(
|
|
8684
|
-
"flex items-center justify-center shrink-0 [&_svg]:w-full [&_svg]:h-full [&_.md-icon]:text-[length:inherit]
|
|
8905
|
+
"flex items-center justify-center shrink-0 [&_svg]:w-full [&_svg]:h-full [&_.md-icon]:text-[length:inherit]",
|
|
8685
8906
|
iconSize != null ? void 0 : iconClass
|
|
8686
8907
|
),
|
|
8687
8908
|
style: {
|
|
@@ -8689,9 +8910,9 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8689
8910
|
width: isCustomSize ? `${iconSize}px` : void 0,
|
|
8690
8911
|
height: isCustomSize ? `${iconSize}px` : void 0
|
|
8691
8912
|
},
|
|
8692
|
-
children: asChild ?
|
|
8913
|
+
children: isSelected && selectedIcon ? selectedIcon : asChild ? React61.Children.only(children).props.children : children
|
|
8693
8914
|
}),
|
|
8694
|
-
"content"
|
|
8915
|
+
isSelected && selectedIcon ? "selected-content" : "content"
|
|
8695
8916
|
) })
|
|
8696
8917
|
] });
|
|
8697
8918
|
const containerClassName = cn(
|
|
@@ -8700,12 +8921,13 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8700
8921
|
outlineWidthClass,
|
|
8701
8922
|
disabledBgClass,
|
|
8702
8923
|
"overflow-hidden",
|
|
8703
|
-
|
|
8924
|
+
heightClass,
|
|
8925
|
+
widthClass,
|
|
8704
8926
|
loading && "pointer-events-none opacity-75 cursor-not-allowed",
|
|
8705
8927
|
className
|
|
8706
8928
|
);
|
|
8707
8929
|
if (asChild) {
|
|
8708
|
-
const child =
|
|
8930
|
+
const child = React61.Children.only(children);
|
|
8709
8931
|
return /* @__PURE__ */ jsx(LazyMotion, { features: domMax, strict: true, children: /* @__PURE__ */ jsx(
|
|
8710
8932
|
Slot,
|
|
8711
8933
|
__spreadProps(__spreadValues({
|
|
@@ -8717,10 +8939,12 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8717
8939
|
onClick: handleClick,
|
|
8718
8940
|
onPointerDown,
|
|
8719
8941
|
onKeyDown: handleKeyDown,
|
|
8720
|
-
style: __spreadProps(__spreadValues({}, style), {
|
|
8942
|
+
style: __spreadProps(__spreadValues({}, style), {
|
|
8943
|
+
borderRadius: `${animateRadius}px`
|
|
8944
|
+
}),
|
|
8721
8945
|
className: containerClassName
|
|
8722
8946
|
}, restProps), {
|
|
8723
|
-
children:
|
|
8947
|
+
children: React61.cloneElement(child, { children: innerContent })
|
|
8724
8948
|
})
|
|
8725
8949
|
) });
|
|
8726
8950
|
}
|
|
@@ -8748,12 +8972,12 @@ var IconButtonComponent = React59.forwardRef(
|
|
|
8748
8972
|
}
|
|
8749
8973
|
);
|
|
8750
8974
|
IconButtonComponent.displayName = "IconButton";
|
|
8751
|
-
var IconButton =
|
|
8752
|
-
var SplitButtonContext =
|
|
8975
|
+
var IconButton = React61.memo(IconButtonComponent);
|
|
8976
|
+
var SplitButtonContext = React61.createContext(null);
|
|
8753
8977
|
function useSplitButtonContext() {
|
|
8754
|
-
return
|
|
8978
|
+
return React61.useContext(SplitButtonContext);
|
|
8755
8979
|
}
|
|
8756
|
-
var SplitButtonLayoutComponent =
|
|
8980
|
+
var SplitButtonLayoutComponent = React61.forwardRef(
|
|
8757
8981
|
(_a, ref) => {
|
|
8758
8982
|
var _b = _a, {
|
|
8759
8983
|
leadingButton,
|
|
@@ -8770,10 +8994,10 @@ var SplitButtonLayoutComponent = React59.forwardRef(
|
|
|
8770
8994
|
"variant",
|
|
8771
8995
|
"size"
|
|
8772
8996
|
]);
|
|
8773
|
-
const leadingProps =
|
|
8997
|
+
const leadingProps = React61.isValidElement(leadingButton) ? leadingButton.props : {};
|
|
8774
8998
|
const size = layoutSize || leadingProps.size;
|
|
8775
8999
|
const variant = layoutVariant || leadingProps.variant;
|
|
8776
|
-
const contextValue =
|
|
9000
|
+
const contextValue = React61.useMemo(
|
|
8777
9001
|
() => ({
|
|
8778
9002
|
size,
|
|
8779
9003
|
variant
|
|
@@ -8799,8 +9023,8 @@ var SplitButtonLayoutComponent = React59.forwardRef(
|
|
|
8799
9023
|
}
|
|
8800
9024
|
);
|
|
8801
9025
|
SplitButtonLayoutComponent.displayName = "SplitButtonLayout";
|
|
8802
|
-
var SplitButtonLayout =
|
|
8803
|
-
var StateLayer =
|
|
9026
|
+
var SplitButtonLayout = React61.memo(SplitButtonLayoutComponent);
|
|
9027
|
+
var StateLayer = React61.forwardRef(
|
|
8804
9028
|
(_a, ref) => {
|
|
8805
9029
|
var _b = _a, { className, hovered, focused, pressed } = _b, props = __objRest(_b, ["className", "hovered", "focused", "pressed"]);
|
|
8806
9030
|
let opacity = 0;
|
|
@@ -9052,7 +9276,7 @@ var splitButtonVariants = cva(
|
|
|
9052
9276
|
}
|
|
9053
9277
|
}
|
|
9054
9278
|
);
|
|
9055
|
-
var SplitButtonLeadingComponent =
|
|
9279
|
+
var SplitButtonLeadingComponent = React61.forwardRef(
|
|
9056
9280
|
(_a, ref) => {
|
|
9057
9281
|
var _b = _a, {
|
|
9058
9282
|
className,
|
|
@@ -9091,9 +9315,9 @@ var SplitButtonLeadingComponent = React59.forwardRef(
|
|
|
9091
9315
|
const context = useSplitButtonContext();
|
|
9092
9316
|
const actualSize = (_a2 = context == null ? void 0 : context.size) != null ? _a2 : size;
|
|
9093
9317
|
const actualVariant = (_b2 = context == null ? void 0 : context.variant) != null ? _b2 : variant;
|
|
9094
|
-
const [isHovered, setIsHovered] =
|
|
9095
|
-
const [isFocused, setIsFocused] =
|
|
9096
|
-
const [isPressed, setIsPressed] =
|
|
9318
|
+
const [isHovered, setIsHovered] = React61.useState(false);
|
|
9319
|
+
const [isFocused, setIsFocused] = React61.useState(false);
|
|
9320
|
+
const [isPressed, setIsPressed] = React61.useState(false);
|
|
9097
9321
|
const tokens = SPLIT_BUTTON_TOKENS[actualSize];
|
|
9098
9322
|
const typographyClass = (_c = BUTTON_TYPOGRAPHY_TOKENS[actualSize]) != null ? _c : BUTTON_TYPOGRAPHY_TOKENS.sm;
|
|
9099
9323
|
const needsTouchTarget = actualSize === "xs" || actualSize === "sm";
|
|
@@ -9105,7 +9329,7 @@ var SplitButtonLeadingComponent = React59.forwardRef(
|
|
|
9105
9329
|
const innerCornerRadius = isPressed || isFocused ? tokens.innerCorner.pressed : isHovered ? tokens.innerCorner.hovered : tokens.innerCorner.default;
|
|
9106
9330
|
const outerRadius = tokens.containerHeight * tokens.outerCornerPercent / 100;
|
|
9107
9331
|
const borderRadius = `${outerRadius}px ${innerCornerRadius}px ${innerCornerRadius}px ${outerRadius}px`;
|
|
9108
|
-
const handleClick =
|
|
9332
|
+
const handleClick = React61.useCallback(
|
|
9109
9333
|
(e) => {
|
|
9110
9334
|
if (disabled) {
|
|
9111
9335
|
e.preventDefault();
|
|
@@ -9115,7 +9339,7 @@ var SplitButtonLeadingComponent = React59.forwardRef(
|
|
|
9115
9339
|
},
|
|
9116
9340
|
[disabled, onClick]
|
|
9117
9341
|
);
|
|
9118
|
-
const handlePointerDown =
|
|
9342
|
+
const handlePointerDown = React61.useCallback(
|
|
9119
9343
|
(e) => {
|
|
9120
9344
|
onRipplePointerDown(e);
|
|
9121
9345
|
setIsPressed(true);
|
|
@@ -9123,19 +9347,19 @@ var SplitButtonLeadingComponent = React59.forwardRef(
|
|
|
9123
9347
|
},
|
|
9124
9348
|
[onRipplePointerDown, onPointerDown]
|
|
9125
9349
|
);
|
|
9126
|
-
const handlePointerUp =
|
|
9350
|
+
const handlePointerUp = React61.useCallback(
|
|
9127
9351
|
(e) => {
|
|
9128
9352
|
setIsPressed(false);
|
|
9129
9353
|
onPointerUp == null ? void 0 : onPointerUp(e);
|
|
9130
9354
|
},
|
|
9131
9355
|
[onPointerUp]
|
|
9132
9356
|
);
|
|
9133
|
-
const handlePointerEnter =
|
|
9357
|
+
const handlePointerEnter = React61.useCallback(() => {
|
|
9134
9358
|
if (!disabled) {
|
|
9135
9359
|
setIsHovered(true);
|
|
9136
9360
|
}
|
|
9137
9361
|
}, [disabled]);
|
|
9138
|
-
const handlePointerLeave =
|
|
9362
|
+
const handlePointerLeave = React61.useCallback(
|
|
9139
9363
|
(e) => {
|
|
9140
9364
|
setIsHovered(false);
|
|
9141
9365
|
setIsPressed(false);
|
|
@@ -9143,21 +9367,21 @@ var SplitButtonLeadingComponent = React59.forwardRef(
|
|
|
9143
9367
|
},
|
|
9144
9368
|
[onPointerLeave]
|
|
9145
9369
|
);
|
|
9146
|
-
const handlePointerCancel =
|
|
9370
|
+
const handlePointerCancel = React61.useCallback(
|
|
9147
9371
|
(e) => {
|
|
9148
9372
|
setIsPressed(false);
|
|
9149
9373
|
onPointerCancel == null ? void 0 : onPointerCancel(e);
|
|
9150
9374
|
},
|
|
9151
9375
|
[onPointerCancel]
|
|
9152
9376
|
);
|
|
9153
|
-
const handleFocus =
|
|
9377
|
+
const handleFocus = React61.useCallback(
|
|
9154
9378
|
(e) => {
|
|
9155
9379
|
if (!disabled) setIsFocused(true);
|
|
9156
9380
|
onFocus == null ? void 0 : onFocus(e);
|
|
9157
9381
|
},
|
|
9158
9382
|
[disabled, onFocus]
|
|
9159
9383
|
);
|
|
9160
|
-
const handleBlur =
|
|
9384
|
+
const handleBlur = React61.useCallback(
|
|
9161
9385
|
(e) => {
|
|
9162
9386
|
setIsFocused(false);
|
|
9163
9387
|
onBlur == null ? void 0 : onBlur(e);
|
|
@@ -9165,7 +9389,7 @@ var SplitButtonLeadingComponent = React59.forwardRef(
|
|
|
9165
9389
|
[onBlur]
|
|
9166
9390
|
);
|
|
9167
9391
|
const leadingIconSize = LEADING_ICON_SIZE_FOR_SIZE[actualSize];
|
|
9168
|
-
const labelContent = asChild ?
|
|
9392
|
+
const labelContent = asChild ? React61.Children.only(children).props.children : children;
|
|
9169
9393
|
const innerContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9170
9394
|
needsTouchTarget && /* @__PURE__ */ jsx(TouchTarget, {}),
|
|
9171
9395
|
/* @__PURE__ */ jsx(
|
|
@@ -9222,8 +9446,8 @@ var SplitButtonLeadingComponent = React59.forwardRef(
|
|
|
9222
9446
|
style: mergedStyle,
|
|
9223
9447
|
className: containerClassName
|
|
9224
9448
|
}, restProps), {
|
|
9225
|
-
children:
|
|
9226
|
-
|
|
9449
|
+
children: React61.cloneElement(
|
|
9450
|
+
React61.Children.only(children),
|
|
9227
9451
|
{ children: innerContent }
|
|
9228
9452
|
)
|
|
9229
9453
|
})
|
|
@@ -9256,16 +9480,16 @@ var SplitButtonLeadingComponent = React59.forwardRef(
|
|
|
9256
9480
|
}
|
|
9257
9481
|
);
|
|
9258
9482
|
SplitButtonLeadingComponent.displayName = "SplitButtonLeading";
|
|
9259
|
-
var SplitButtonLeading =
|
|
9260
|
-
var FilledSplitButtonLeading =
|
|
9483
|
+
var SplitButtonLeading = React61.memo(SplitButtonLeadingComponent);
|
|
9484
|
+
var FilledSplitButtonLeading = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonLeading, __spreadValues({ ref, variant: "filled" }, props)));
|
|
9261
9485
|
FilledSplitButtonLeading.displayName = "FilledSplitButtonLeading";
|
|
9262
|
-
var TonalSplitButtonLeading =
|
|
9486
|
+
var TonalSplitButtonLeading = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonLeading, __spreadValues({ ref, variant: "tonal" }, props)));
|
|
9263
9487
|
TonalSplitButtonLeading.displayName = "TonalSplitButtonLeading";
|
|
9264
|
-
var ElevatedSplitButtonLeading =
|
|
9488
|
+
var ElevatedSplitButtonLeading = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonLeading, __spreadValues({ ref, variant: "elevated" }, props)));
|
|
9265
9489
|
ElevatedSplitButtonLeading.displayName = "ElevatedSplitButtonLeading";
|
|
9266
|
-
var OutlinedSplitButtonLeading =
|
|
9490
|
+
var OutlinedSplitButtonLeading = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonLeading, __spreadValues({ ref, variant: "outlined" }, props)));
|
|
9267
9491
|
OutlinedSplitButtonLeading.displayName = "OutlinedSplitButtonLeading";
|
|
9268
|
-
var SplitButtonTrailingComponent =
|
|
9492
|
+
var SplitButtonTrailingComponent = React61.forwardRef(
|
|
9269
9493
|
(_a, ref) => {
|
|
9270
9494
|
var _b = _a, {
|
|
9271
9495
|
className,
|
|
@@ -9308,9 +9532,9 @@ var SplitButtonTrailingComponent = React59.forwardRef(
|
|
|
9308
9532
|
const context = useSplitButtonContext();
|
|
9309
9533
|
const actualSize = (_a2 = context == null ? void 0 : context.size) != null ? _a2 : size;
|
|
9310
9534
|
const actualVariant = (_b2 = context == null ? void 0 : context.variant) != null ? _b2 : variant;
|
|
9311
|
-
const [isHovered, setIsHovered] =
|
|
9312
|
-
const [isFocused, setIsFocused] =
|
|
9313
|
-
const [isPressed, setIsPressed] =
|
|
9535
|
+
const [isHovered, setIsHovered] = React61.useState(false);
|
|
9536
|
+
const [isFocused, setIsFocused] = React61.useState(false);
|
|
9537
|
+
const [isPressed, setIsPressed] = React61.useState(false);
|
|
9314
9538
|
const tokens = SPLIT_BUTTON_TOKENS[actualSize];
|
|
9315
9539
|
const prefersReducedMotion2 = useReducedMotion();
|
|
9316
9540
|
const needsTouchTarget = actualSize === "xs" || actualSize === "sm";
|
|
@@ -9322,12 +9546,12 @@ var SplitButtonTrailingComponent = React59.forwardRef(
|
|
|
9322
9546
|
const innerCornerRadius = isPressed || isFocused ? tokens.innerCorner.pressed : isHovered ? tokens.innerCorner.hovered : tokens.innerCorner.default;
|
|
9323
9547
|
const outerRadius = tokens.containerHeight * tokens.outerCornerPercent / 100;
|
|
9324
9548
|
const borderRadius = checked ? `${outerRadius}px ${outerRadius}px ${outerRadius}px ${outerRadius}px` : `${innerCornerRadius}px ${outerRadius}px ${outerRadius}px ${innerCornerRadius}px`;
|
|
9325
|
-
const handleToggle =
|
|
9549
|
+
const handleToggle = React61.useCallback(() => {
|
|
9326
9550
|
if (!disabled) {
|
|
9327
9551
|
onCheckedChange(!checked);
|
|
9328
9552
|
}
|
|
9329
9553
|
}, [disabled, checked, onCheckedChange]);
|
|
9330
|
-
const handlePointerDown =
|
|
9554
|
+
const handlePointerDown = React61.useCallback(
|
|
9331
9555
|
(e) => {
|
|
9332
9556
|
onRipplePointerDown(e);
|
|
9333
9557
|
setIsPressed(true);
|
|
@@ -9335,19 +9559,19 @@ var SplitButtonTrailingComponent = React59.forwardRef(
|
|
|
9335
9559
|
},
|
|
9336
9560
|
[onRipplePointerDown, onPointerDown]
|
|
9337
9561
|
);
|
|
9338
|
-
const handlePointerUp =
|
|
9562
|
+
const handlePointerUp = React61.useCallback(
|
|
9339
9563
|
(e) => {
|
|
9340
9564
|
setIsPressed(false);
|
|
9341
9565
|
onPointerUp == null ? void 0 : onPointerUp(e);
|
|
9342
9566
|
},
|
|
9343
9567
|
[onPointerUp]
|
|
9344
9568
|
);
|
|
9345
|
-
const handlePointerEnter =
|
|
9569
|
+
const handlePointerEnter = React61.useCallback(() => {
|
|
9346
9570
|
if (!disabled) {
|
|
9347
9571
|
setIsHovered(true);
|
|
9348
9572
|
}
|
|
9349
9573
|
}, [disabled]);
|
|
9350
|
-
const handlePointerLeave =
|
|
9574
|
+
const handlePointerLeave = React61.useCallback(
|
|
9351
9575
|
(e) => {
|
|
9352
9576
|
setIsHovered(false);
|
|
9353
9577
|
setIsPressed(false);
|
|
@@ -9355,21 +9579,21 @@ var SplitButtonTrailingComponent = React59.forwardRef(
|
|
|
9355
9579
|
},
|
|
9356
9580
|
[onPointerLeave]
|
|
9357
9581
|
);
|
|
9358
|
-
const handlePointerCancel =
|
|
9582
|
+
const handlePointerCancel = React61.useCallback(
|
|
9359
9583
|
(e) => {
|
|
9360
9584
|
setIsPressed(false);
|
|
9361
9585
|
onPointerCancel == null ? void 0 : onPointerCancel(e);
|
|
9362
9586
|
},
|
|
9363
9587
|
[onPointerCancel]
|
|
9364
9588
|
);
|
|
9365
|
-
const handleFocus =
|
|
9589
|
+
const handleFocus = React61.useCallback(
|
|
9366
9590
|
(e) => {
|
|
9367
9591
|
if (!disabled) setIsFocused(true);
|
|
9368
9592
|
onFocus == null ? void 0 : onFocus(e);
|
|
9369
9593
|
},
|
|
9370
9594
|
[disabled, onFocus]
|
|
9371
9595
|
);
|
|
9372
|
-
const handleBlur =
|
|
9596
|
+
const handleBlur = React61.useCallback(
|
|
9373
9597
|
(e) => {
|
|
9374
9598
|
setIsFocused(false);
|
|
9375
9599
|
onBlur == null ? void 0 : onBlur(e);
|
|
@@ -9438,8 +9662,8 @@ var SplitButtonTrailingComponent = React59.forwardRef(
|
|
|
9438
9662
|
style: mergedStyle,
|
|
9439
9663
|
className: containerClassName
|
|
9440
9664
|
}, restProps), {
|
|
9441
|
-
children:
|
|
9442
|
-
|
|
9665
|
+
children: React61.cloneElement(
|
|
9666
|
+
React61.Children.only(children),
|
|
9443
9667
|
{ children: innerContent }
|
|
9444
9668
|
)
|
|
9445
9669
|
})
|
|
@@ -9474,16 +9698,16 @@ var SplitButtonTrailingComponent = React59.forwardRef(
|
|
|
9474
9698
|
}
|
|
9475
9699
|
);
|
|
9476
9700
|
SplitButtonTrailingComponent.displayName = "SplitButtonTrailing";
|
|
9477
|
-
var SplitButtonTrailing =
|
|
9478
|
-
var FilledSplitButtonTrailing =
|
|
9701
|
+
var SplitButtonTrailing = React61.memo(SplitButtonTrailingComponent);
|
|
9702
|
+
var FilledSplitButtonTrailing = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonTrailing, __spreadValues({ ref, variant: "filled" }, props)));
|
|
9479
9703
|
FilledSplitButtonTrailing.displayName = "FilledSplitButtonTrailing";
|
|
9480
|
-
var TonalSplitButtonTrailing =
|
|
9704
|
+
var TonalSplitButtonTrailing = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonTrailing, __spreadValues({ ref, variant: "tonal" }, props)));
|
|
9481
9705
|
TonalSplitButtonTrailing.displayName = "TonalSplitButtonTrailing";
|
|
9482
|
-
var ElevatedSplitButtonTrailing =
|
|
9706
|
+
var ElevatedSplitButtonTrailing = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonTrailing, __spreadValues({ ref, variant: "elevated" }, props)));
|
|
9483
9707
|
ElevatedSplitButtonTrailing.displayName = "ElevatedSplitButtonTrailing";
|
|
9484
|
-
var OutlinedSplitButtonTrailing =
|
|
9708
|
+
var OutlinedSplitButtonTrailing = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonTrailing, __spreadValues({ ref, variant: "outlined" }, props)));
|
|
9485
9709
|
OutlinedSplitButtonTrailing.displayName = "OutlinedSplitButtonTrailing";
|
|
9486
|
-
var SplitButtonTrailingUncheckableComponent =
|
|
9710
|
+
var SplitButtonTrailingUncheckableComponent = React61.forwardRef(
|
|
9487
9711
|
(_a, ref) => {
|
|
9488
9712
|
var _b = _a, {
|
|
9489
9713
|
className,
|
|
@@ -9520,9 +9744,9 @@ var SplitButtonTrailingUncheckableComponent = React59.forwardRef(
|
|
|
9520
9744
|
const context = useSplitButtonContext();
|
|
9521
9745
|
const actualSize = (_a2 = context == null ? void 0 : context.size) != null ? _a2 : size;
|
|
9522
9746
|
const actualVariant = (_b2 = context == null ? void 0 : context.variant) != null ? _b2 : variant;
|
|
9523
|
-
const [isHovered, setIsHovered] =
|
|
9524
|
-
const [isFocused, setIsFocused] =
|
|
9525
|
-
const [isPressed, setIsPressed] =
|
|
9747
|
+
const [isHovered, setIsHovered] = React61.useState(false);
|
|
9748
|
+
const [isFocused, setIsFocused] = React61.useState(false);
|
|
9749
|
+
const [isPressed, setIsPressed] = React61.useState(false);
|
|
9526
9750
|
const tokens = SPLIT_BUTTON_TOKENS[actualSize];
|
|
9527
9751
|
const needsTouchTarget = actualSize === "xs" || actualSize === "sm";
|
|
9528
9752
|
const {
|
|
@@ -9533,7 +9757,7 @@ var SplitButtonTrailingUncheckableComponent = React59.forwardRef(
|
|
|
9533
9757
|
const innerCornerRadius = isPressed || isFocused ? tokens.innerCorner.pressed : isHovered ? tokens.innerCorner.hovered : tokens.innerCorner.default;
|
|
9534
9758
|
const outerRadius = tokens.containerHeight * tokens.outerCornerPercent / 100;
|
|
9535
9759
|
const borderRadius = `${innerCornerRadius}px ${outerRadius}px ${outerRadius}px ${innerCornerRadius}px`;
|
|
9536
|
-
const handlePointerDown =
|
|
9760
|
+
const handlePointerDown = React61.useCallback(
|
|
9537
9761
|
(e) => {
|
|
9538
9762
|
onRipplePointerDown(e);
|
|
9539
9763
|
setIsPressed(true);
|
|
@@ -9541,19 +9765,19 @@ var SplitButtonTrailingUncheckableComponent = React59.forwardRef(
|
|
|
9541
9765
|
},
|
|
9542
9766
|
[onRipplePointerDown, onPointerDown]
|
|
9543
9767
|
);
|
|
9544
|
-
const handlePointerUp =
|
|
9768
|
+
const handlePointerUp = React61.useCallback(
|
|
9545
9769
|
(e) => {
|
|
9546
9770
|
setIsPressed(false);
|
|
9547
9771
|
onPointerUp == null ? void 0 : onPointerUp(e);
|
|
9548
9772
|
},
|
|
9549
9773
|
[onPointerUp]
|
|
9550
9774
|
);
|
|
9551
|
-
const handlePointerEnter =
|
|
9775
|
+
const handlePointerEnter = React61.useCallback(() => {
|
|
9552
9776
|
if (!disabled) {
|
|
9553
9777
|
setIsHovered(true);
|
|
9554
9778
|
}
|
|
9555
9779
|
}, [disabled]);
|
|
9556
|
-
const handlePointerLeave =
|
|
9780
|
+
const handlePointerLeave = React61.useCallback(
|
|
9557
9781
|
(e) => {
|
|
9558
9782
|
setIsHovered(false);
|
|
9559
9783
|
setIsPressed(false);
|
|
@@ -9561,21 +9785,21 @@ var SplitButtonTrailingUncheckableComponent = React59.forwardRef(
|
|
|
9561
9785
|
},
|
|
9562
9786
|
[onPointerLeave]
|
|
9563
9787
|
);
|
|
9564
|
-
const handlePointerCancel =
|
|
9788
|
+
const handlePointerCancel = React61.useCallback(
|
|
9565
9789
|
(e) => {
|
|
9566
9790
|
setIsPressed(false);
|
|
9567
9791
|
onPointerCancel == null ? void 0 : onPointerCancel(e);
|
|
9568
9792
|
},
|
|
9569
9793
|
[onPointerCancel]
|
|
9570
9794
|
);
|
|
9571
|
-
const handleFocus =
|
|
9795
|
+
const handleFocus = React61.useCallback(
|
|
9572
9796
|
(e) => {
|
|
9573
9797
|
if (!disabled) setIsFocused(true);
|
|
9574
9798
|
onFocus == null ? void 0 : onFocus(e);
|
|
9575
9799
|
},
|
|
9576
9800
|
[disabled, onFocus]
|
|
9577
9801
|
);
|
|
9578
|
-
const handleBlur =
|
|
9802
|
+
const handleBlur = React61.useCallback(
|
|
9579
9803
|
(e) => {
|
|
9580
9804
|
setIsFocused(false);
|
|
9581
9805
|
onBlur == null ? void 0 : onBlur(e);
|
|
@@ -9642,16 +9866,16 @@ var SplitButtonTrailingUncheckableComponent = React59.forwardRef(
|
|
|
9642
9866
|
}
|
|
9643
9867
|
);
|
|
9644
9868
|
SplitButtonTrailingUncheckableComponent.displayName = "SplitButtonTrailingUncheckable";
|
|
9645
|
-
var SplitButtonTrailingUncheckable =
|
|
9869
|
+
var SplitButtonTrailingUncheckable = React61.memo(
|
|
9646
9870
|
SplitButtonTrailingUncheckableComponent
|
|
9647
9871
|
);
|
|
9648
|
-
var FilledSplitButtonTrailingUncheckable =
|
|
9872
|
+
var FilledSplitButtonTrailingUncheckable = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonTrailingUncheckable, __spreadValues({ ref, variant: "filled" }, props)));
|
|
9649
9873
|
FilledSplitButtonTrailingUncheckable.displayName = "FilledSplitButtonTrailingUncheckable";
|
|
9650
|
-
var TonalSplitButtonTrailingUncheckable =
|
|
9874
|
+
var TonalSplitButtonTrailingUncheckable = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonTrailingUncheckable, __spreadValues({ ref, variant: "tonal" }, props)));
|
|
9651
9875
|
TonalSplitButtonTrailingUncheckable.displayName = "TonalSplitButtonTrailingUncheckable";
|
|
9652
|
-
var ElevatedSplitButtonTrailingUncheckable =
|
|
9876
|
+
var ElevatedSplitButtonTrailingUncheckable = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonTrailingUncheckable, __spreadValues({ ref, variant: "elevated" }, props)));
|
|
9653
9877
|
ElevatedSplitButtonTrailingUncheckable.displayName = "ElevatedSplitButtonTrailingUncheckable";
|
|
9654
|
-
var OutlinedSplitButtonTrailingUncheckable =
|
|
9878
|
+
var OutlinedSplitButtonTrailingUncheckable = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(SplitButtonTrailingUncheckable, __spreadValues({ ref, variant: "outlined" }, props)));
|
|
9655
9879
|
OutlinedSplitButtonTrailingUncheckable.displayName = "OutlinedSplitButtonTrailingUncheckable";
|
|
9656
9880
|
var SHADOW = {
|
|
9657
9881
|
level0: "none",
|
|
@@ -9711,7 +9935,7 @@ function useCardElevation(variant, disabled) {
|
|
|
9711
9935
|
}
|
|
9712
9936
|
};
|
|
9713
9937
|
}
|
|
9714
|
-
var CardImpl =
|
|
9938
|
+
var CardImpl = React61.forwardRef(
|
|
9715
9939
|
(_a, ref) => {
|
|
9716
9940
|
var _b = _a, {
|
|
9717
9941
|
className,
|
|
@@ -9759,7 +9983,7 @@ var CardImpl = React59.forwardRef(
|
|
|
9759
9983
|
variant === "outlined" && "hover:border-m3-outline focus-visible:border-m3-outline active:border-m3-outline"
|
|
9760
9984
|
);
|
|
9761
9985
|
if (asChild) {
|
|
9762
|
-
const child =
|
|
9986
|
+
const child = React61.Children.only(children);
|
|
9763
9987
|
const innerContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9764
9988
|
/* @__PURE__ */ jsx(Ripple, { ripples, onRippleDone: removeRipple }),
|
|
9765
9989
|
child.props.children
|
|
@@ -9774,7 +9998,7 @@ var CardImpl = React59.forwardRef(
|
|
|
9774
9998
|
onPointerDown,
|
|
9775
9999
|
onClick
|
|
9776
10000
|
}, props), {
|
|
9777
|
-
children:
|
|
10001
|
+
children: React61.cloneElement(child, { children: innerContent })
|
|
9778
10002
|
})
|
|
9779
10003
|
) });
|
|
9780
10004
|
}
|
|
@@ -9831,7 +10055,7 @@ var CardImpl = React59.forwardRef(
|
|
|
9831
10055
|
}
|
|
9832
10056
|
);
|
|
9833
10057
|
CardImpl.displayName = "Card";
|
|
9834
|
-
var Card =
|
|
10058
|
+
var Card = React61.memo(CardImpl);
|
|
9835
10059
|
var MD3_STANDARD = [0.2, 0, 0, 1];
|
|
9836
10060
|
var MD3_FAST_EFFECTS = [0.3, 0, 1, 1];
|
|
9837
10061
|
var CHECKMARK_PATH = "M 4.5 9.5 L 7.5 12.5 L 13.5 5.5";
|
|
@@ -9845,7 +10069,7 @@ var NEXT_STATE = {
|
|
|
9845
10069
|
checked: "indeterminate",
|
|
9846
10070
|
indeterminate: "unchecked"
|
|
9847
10071
|
};
|
|
9848
|
-
var CheckboxVisual =
|
|
10072
|
+
var CheckboxVisual = React61.memo(function CheckboxVisual2({
|
|
9849
10073
|
isSelected,
|
|
9850
10074
|
isIndeterminate,
|
|
9851
10075
|
containerBg,
|
|
@@ -9916,7 +10140,7 @@ var CheckboxVisual = React59.memo(function CheckboxVisual2({
|
|
|
9916
10140
|
);
|
|
9917
10141
|
});
|
|
9918
10142
|
function useMergedRef2(externalRef, internalRef) {
|
|
9919
|
-
return
|
|
10143
|
+
return React61.useCallback(
|
|
9920
10144
|
(node) => {
|
|
9921
10145
|
internalRef.current = node;
|
|
9922
10146
|
if (!externalRef) return;
|
|
@@ -9929,7 +10153,7 @@ function useMergedRef2(externalRef, internalRef) {
|
|
|
9929
10153
|
[externalRef, internalRef]
|
|
9930
10154
|
);
|
|
9931
10155
|
}
|
|
9932
|
-
var CheckboxComponent =
|
|
10156
|
+
var CheckboxComponent = React61.forwardRef(
|
|
9933
10157
|
({
|
|
9934
10158
|
checked,
|
|
9935
10159
|
defaultChecked = false,
|
|
@@ -9951,20 +10175,20 @@ var CheckboxComponent = React59.forwardRef(
|
|
|
9951
10175
|
}, ref) => {
|
|
9952
10176
|
var _a;
|
|
9953
10177
|
const prefersReduced = (_a = useReducedMotion()) != null ? _a : false;
|
|
9954
|
-
const generatedId =
|
|
10178
|
+
const generatedId = React61.useId();
|
|
9955
10179
|
const inputId = idProp != null ? idProp : label ? `checkbox-${generatedId}` : void 0;
|
|
9956
|
-
const [internalState, setInternalState] =
|
|
10180
|
+
const [internalState, setInternalState] = React61.useState(
|
|
9957
10181
|
() => defaultChecked ? "checked" : "unchecked"
|
|
9958
10182
|
);
|
|
9959
10183
|
const isControlled = stateProp !== void 0 || checked !== void 0;
|
|
9960
10184
|
const baseState = isControlled ? resolveState(checked, false, stateProp) : internalState;
|
|
9961
10185
|
const effectiveState = indeterminate ? "indeterminate" : baseState;
|
|
9962
|
-
const [ripples, setRipples] =
|
|
9963
|
-
const removeRipple =
|
|
10186
|
+
const [ripples, setRipples] = React61.useState([]);
|
|
10187
|
+
const removeRipple = React61.useCallback(
|
|
9964
10188
|
(id) => setRipples((prev) => prev.filter((r) => r.id !== id)),
|
|
9965
10189
|
[]
|
|
9966
10190
|
);
|
|
9967
|
-
const onPointerDown =
|
|
10191
|
+
const onPointerDown = React61.useCallback(
|
|
9968
10192
|
(e) => {
|
|
9969
10193
|
if (disabled) return;
|
|
9970
10194
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
@@ -9978,7 +10202,7 @@ var CheckboxComponent = React59.forwardRef(
|
|
|
9978
10202
|
},
|
|
9979
10203
|
[disabled]
|
|
9980
10204
|
);
|
|
9981
|
-
const handleChange =
|
|
10205
|
+
const handleChange = React61.useCallback(
|
|
9982
10206
|
(e) => {
|
|
9983
10207
|
if (disabled) return;
|
|
9984
10208
|
if (stateProp !== void 0) {
|
|
@@ -10004,9 +10228,9 @@ var CheckboxComponent = React59.forwardRef(
|
|
|
10004
10228
|
onCheckedChange
|
|
10005
10229
|
]
|
|
10006
10230
|
);
|
|
10007
|
-
const inputRef =
|
|
10231
|
+
const inputRef = React61.useRef(null);
|
|
10008
10232
|
const mergedRef = useMergedRef2(ref, inputRef);
|
|
10009
|
-
|
|
10233
|
+
React61.useEffect(() => {
|
|
10010
10234
|
if (inputRef.current) {
|
|
10011
10235
|
inputRef.current.indeterminate = effectiveState === "indeterminate";
|
|
10012
10236
|
}
|
|
@@ -10131,13 +10355,13 @@ var CheckboxComponent = React59.forwardRef(
|
|
|
10131
10355
|
}
|
|
10132
10356
|
);
|
|
10133
10357
|
CheckboxComponent.displayName = "Checkbox";
|
|
10134
|
-
var Checkbox =
|
|
10135
|
-
var TriStateCheckboxComponent =
|
|
10358
|
+
var Checkbox = React61.memo(CheckboxComponent);
|
|
10359
|
+
var TriStateCheckboxComponent = React61.forwardRef((_a, ref) => {
|
|
10136
10360
|
var _b = _a, { state, onStateChange } = _b, rest = __objRest(_b, ["state", "onStateChange"]);
|
|
10137
10361
|
return /* @__PURE__ */ jsx(Checkbox, __spreadValues({ ref, state, onStateChange }, rest));
|
|
10138
10362
|
});
|
|
10139
10363
|
TriStateCheckboxComponent.displayName = "TriStateCheckbox";
|
|
10140
|
-
var TriStateCheckbox =
|
|
10364
|
+
var TriStateCheckbox = React61.memo(TriStateCheckboxComponent);
|
|
10141
10365
|
function CheckIcon({ className }) {
|
|
10142
10366
|
return /* @__PURE__ */ jsx(
|
|
10143
10367
|
"svg",
|
|
@@ -10231,7 +10455,7 @@ var chipVariants = cva(
|
|
|
10231
10455
|
defaultVariants: { variant: "assist" }
|
|
10232
10456
|
}
|
|
10233
10457
|
);
|
|
10234
|
-
var ChipImpl =
|
|
10458
|
+
var ChipImpl = React61.forwardRef(
|
|
10235
10459
|
(_a, ref) => {
|
|
10236
10460
|
var _b = _a, {
|
|
10237
10461
|
variant = "assist",
|
|
@@ -10271,7 +10495,7 @@ var ChipImpl = React59.forwardRef(
|
|
|
10271
10495
|
const showCheckmark = isFilter && selected;
|
|
10272
10496
|
const hasTrailingContent = !!trailingIcon || !!onRemove;
|
|
10273
10497
|
const hasLeadingContent = isFilter || !!resolvedLeadingIcon;
|
|
10274
|
-
const paddingClass =
|
|
10498
|
+
const paddingClass = React61.useMemo(
|
|
10275
10499
|
() => cn(
|
|
10276
10500
|
!isInput && !hasLeadingContent && !hasTrailingContent && "px-4",
|
|
10277
10501
|
!isInput && hasLeadingContent && !hasTrailingContent && "pl-2 pr-4",
|
|
@@ -10284,7 +10508,7 @@ var ChipImpl = React59.forwardRef(
|
|
|
10284
10508
|
),
|
|
10285
10509
|
[isInput, hasLeadingContent, hasTrailingContent]
|
|
10286
10510
|
);
|
|
10287
|
-
const stateClass =
|
|
10511
|
+
const stateClass = React61.useMemo(
|
|
10288
10512
|
() => cn(
|
|
10289
10513
|
(isFilter || isInput) && selected && "bg-m3-secondary-container text-m3-on-secondary-container border-none before:bg-m3-on-secondary-container",
|
|
10290
10514
|
elevated && !selected && "bg-m3-surface-container-low border-none elevation-1",
|
|
@@ -10295,7 +10519,7 @@ var ChipImpl = React59.forwardRef(
|
|
|
10295
10519
|
),
|
|
10296
10520
|
[isFilter, isInput, selected, elevated, disabled]
|
|
10297
10521
|
);
|
|
10298
|
-
const leadingIconColorClass =
|
|
10522
|
+
const leadingIconColorClass = React61.useMemo(
|
|
10299
10523
|
() => cn(
|
|
10300
10524
|
(variant === "assist" || variant === "suggestion") && "text-m3-primary",
|
|
10301
10525
|
isFilter && !selected && "text-m3-primary",
|
|
@@ -10376,7 +10600,7 @@ var ChipImpl = React59.forwardRef(
|
|
|
10376
10600
|
/* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: label })
|
|
10377
10601
|
] });
|
|
10378
10602
|
if (asChild) {
|
|
10379
|
-
const child =
|
|
10603
|
+
const child = React61.Children.only(children);
|
|
10380
10604
|
const innerContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10381
10605
|
/* @__PURE__ */ jsx(Ripple, { ripples, onRippleDone: removeRipple }),
|
|
10382
10606
|
mainContent,
|
|
@@ -10428,7 +10652,7 @@ var ChipImpl = React59.forwardRef(
|
|
|
10428
10652
|
onPointerDown,
|
|
10429
10653
|
className: containerClass
|
|
10430
10654
|
}, strippedProps), {
|
|
10431
|
-
children:
|
|
10655
|
+
children: React61.cloneElement(child, { children: innerContent })
|
|
10432
10656
|
})
|
|
10433
10657
|
) });
|
|
10434
10658
|
}
|
|
@@ -10524,8 +10748,8 @@ var ChipImpl = React59.forwardRef(
|
|
|
10524
10748
|
}
|
|
10525
10749
|
);
|
|
10526
10750
|
ChipImpl.displayName = "Chip";
|
|
10527
|
-
var Chip =
|
|
10528
|
-
var ScrollArea =
|
|
10751
|
+
var Chip = React61.memo(ChipImpl);
|
|
10752
|
+
var ScrollArea = React61.forwardRef(
|
|
10529
10753
|
(_a, ref) => {
|
|
10530
10754
|
var _b = _a, {
|
|
10531
10755
|
className,
|
|
@@ -10546,15 +10770,15 @@ var ScrollArea = React59.forwardRef(
|
|
|
10546
10770
|
"viewportRef",
|
|
10547
10771
|
"viewportProps"
|
|
10548
10772
|
]);
|
|
10549
|
-
const [isTouchDevice, setIsTouchDevice] =
|
|
10550
|
-
|
|
10773
|
+
const [isTouchDevice, setIsTouchDevice] = React61.useState(false);
|
|
10774
|
+
React61.useEffect(() => {
|
|
10551
10775
|
if (typeof window !== "undefined") {
|
|
10552
10776
|
setIsTouchDevice(
|
|
10553
10777
|
"ontouchstart" in window || navigator.maxTouchPoints > 0
|
|
10554
10778
|
);
|
|
10555
10779
|
}
|
|
10556
10780
|
}, []);
|
|
10557
|
-
const resolvedType =
|
|
10781
|
+
const resolvedType = React61.useMemo(() => {
|
|
10558
10782
|
if (type === "hover" && isTouchDevice) {
|
|
10559
10783
|
return "scroll";
|
|
10560
10784
|
}
|
|
@@ -10605,7 +10829,7 @@ var ScrollArea = React59.forwardRef(
|
|
|
10605
10829
|
}
|
|
10606
10830
|
);
|
|
10607
10831
|
ScrollArea.displayName = "ScrollArea";
|
|
10608
|
-
var ScrollAreaScrollbar =
|
|
10832
|
+
var ScrollAreaScrollbar = React61.forwardRef((_a, ref) => {
|
|
10609
10833
|
var _b = _a, { className, orientation = "vertical" } = _b, props = __objRest(_b, ["className", "orientation"]);
|
|
10610
10834
|
return /* @__PURE__ */ jsx(
|
|
10611
10835
|
RadixScrollArea.Scrollbar,
|
|
@@ -10635,7 +10859,7 @@ var ScrollAreaScrollbar = React59.forwardRef((_a, ref) => {
|
|
|
10635
10859
|
);
|
|
10636
10860
|
});
|
|
10637
10861
|
ScrollAreaScrollbar.displayName = RadixScrollArea.Scrollbar.displayName;
|
|
10638
|
-
var ScrollAreaCorner =
|
|
10862
|
+
var ScrollAreaCorner = React61.forwardRef((_a, ref) => {
|
|
10639
10863
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10640
10864
|
return /* @__PURE__ */ jsx(
|
|
10641
10865
|
RadixScrollArea.Corner,
|
|
@@ -10815,6 +11039,75 @@ function CodeBlock({
|
|
|
10815
11039
|
);
|
|
10816
11040
|
}
|
|
10817
11041
|
|
|
11042
|
+
// src/ui/date-time-pickers/shared/animation-tokens.ts
|
|
11043
|
+
var PICKER_OVERLAY_ANIM = {
|
|
11044
|
+
initial: { opacity: 0 },
|
|
11045
|
+
animate: {
|
|
11046
|
+
opacity: 1,
|
|
11047
|
+
transition: { duration: 0.2, ease: [0, 0, 0, 1] }
|
|
11048
|
+
},
|
|
11049
|
+
exit: {
|
|
11050
|
+
opacity: 0,
|
|
11051
|
+
transition: { duration: 0.15, ease: [0.3, 0, 1, 1] }
|
|
11052
|
+
}
|
|
11053
|
+
};
|
|
11054
|
+
var PICKER_CONTENT_ANIM = {
|
|
11055
|
+
initial: { opacity: 0, scale: 0.85, y: 16 },
|
|
11056
|
+
animate: {
|
|
11057
|
+
opacity: 1,
|
|
11058
|
+
scale: 1,
|
|
11059
|
+
y: 0,
|
|
11060
|
+
transition: DEFAULT_SPATIAL_SPRING
|
|
11061
|
+
},
|
|
11062
|
+
exit: {
|
|
11063
|
+
opacity: 0,
|
|
11064
|
+
scale: 0.95,
|
|
11065
|
+
y: 8,
|
|
11066
|
+
transition: { duration: 0.15, ease: [0.3, 0, 1, 1] }
|
|
11067
|
+
}
|
|
11068
|
+
};
|
|
11069
|
+
var CALENDAR_SLIDE_VARIANTS = {
|
|
11070
|
+
enterFromRight: {
|
|
11071
|
+
x: "100%",
|
|
11072
|
+
opacity: 0
|
|
11073
|
+
},
|
|
11074
|
+
enterFromLeft: {
|
|
11075
|
+
x: "-100%",
|
|
11076
|
+
opacity: 0
|
|
11077
|
+
},
|
|
11078
|
+
center: {
|
|
11079
|
+
x: 0,
|
|
11080
|
+
opacity: 1,
|
|
11081
|
+
transition: FAST_SPATIAL_SPRING
|
|
11082
|
+
},
|
|
11083
|
+
exitToLeft: {
|
|
11084
|
+
x: "-100%",
|
|
11085
|
+
opacity: 0,
|
|
11086
|
+
transition: { duration: 0.15, ease: [0.3, 0, 1, 1] }
|
|
11087
|
+
},
|
|
11088
|
+
exitToRight: {
|
|
11089
|
+
x: "100%",
|
|
11090
|
+
opacity: 0,
|
|
11091
|
+
transition: { duration: 0.15, ease: [0.3, 0, 1, 1] }
|
|
11092
|
+
}
|
|
11093
|
+
};
|
|
11094
|
+
var PICKER_SELECTOR_ANIM = {
|
|
11095
|
+
initial: { opacity: 0, scale: 0.95, y: -6 },
|
|
11096
|
+
animate: {
|
|
11097
|
+
opacity: 1,
|
|
11098
|
+
scale: 1,
|
|
11099
|
+
y: 0,
|
|
11100
|
+
transition: DEFAULT_SPATIAL_SPRING
|
|
11101
|
+
},
|
|
11102
|
+
exit: {
|
|
11103
|
+
opacity: 0,
|
|
11104
|
+
scale: 0.95,
|
|
11105
|
+
y: 6,
|
|
11106
|
+
transition: { duration: 0.1, ease: "easeIn" }
|
|
11107
|
+
}
|
|
11108
|
+
};
|
|
11109
|
+
var DAY_CELL_STATE_TRANSITION = FAST_EFFECTS_SPRING;
|
|
11110
|
+
|
|
10818
11111
|
// src/ui/date-time-pickers/shared/calendar-model.ts
|
|
10819
11112
|
var startOfDayUTC = (ms) => {
|
|
10820
11113
|
const d = new Date(ms);
|
|
@@ -10941,13 +11234,13 @@ var DatePickerInput = ({
|
|
|
10941
11234
|
locale,
|
|
10942
11235
|
className
|
|
10943
11236
|
}) => {
|
|
10944
|
-
const inputId =
|
|
11237
|
+
const inputId = React61.useId();
|
|
10945
11238
|
const errorId = `${inputId}-error`;
|
|
10946
|
-
const placeholder =
|
|
11239
|
+
const placeholder = React61.useMemo(() => {
|
|
10947
11240
|
if (locale == null ? void 0 : locale.startsWith("vi")) return "DD/MM/YYYY";
|
|
10948
11241
|
return "MM/DD/YYYY";
|
|
10949
11242
|
}, [locale]);
|
|
10950
|
-
const handleKeyDown =
|
|
11243
|
+
const handleKeyDown = React61.useCallback(
|
|
10951
11244
|
(e) => {
|
|
10952
11245
|
if (e.key === "Enter") {
|
|
10953
11246
|
const parsed = parseDateInput(value);
|
|
@@ -10956,11 +11249,11 @@ var DatePickerInput = ({
|
|
|
10956
11249
|
},
|
|
10957
11250
|
[value, onCommit]
|
|
10958
11251
|
);
|
|
10959
|
-
const handleBlur =
|
|
11252
|
+
const handleBlur = React61.useCallback(() => {
|
|
10960
11253
|
const parsed = parseDateInput(value);
|
|
10961
11254
|
onCommit(parsed);
|
|
10962
11255
|
}, [value, onCommit]);
|
|
10963
|
-
const handleChange =
|
|
11256
|
+
const handleChange = React61.useCallback(
|
|
10964
11257
|
(e) => {
|
|
10965
11258
|
let raw = e.target.value.replace(/\D/g, "");
|
|
10966
11259
|
if (raw.length > 8) raw = raw.slice(0, 8);
|
|
@@ -11006,60 +11299,6 @@ var DatePickerInput = ({
|
|
|
11006
11299
|
] }) }) });
|
|
11007
11300
|
};
|
|
11008
11301
|
DatePickerInput.displayName = "DatePickerInput";
|
|
11009
|
-
|
|
11010
|
-
// src/ui/date-time-pickers/shared/animation-tokens.ts
|
|
11011
|
-
var PICKER_OVERLAY_ANIM = {
|
|
11012
|
-
initial: { opacity: 0 },
|
|
11013
|
-
animate: {
|
|
11014
|
-
opacity: 1,
|
|
11015
|
-
transition: { duration: 0.2, ease: [0, 0, 0, 1] }
|
|
11016
|
-
},
|
|
11017
|
-
exit: {
|
|
11018
|
-
opacity: 0,
|
|
11019
|
-
transition: { duration: 0.15, ease: [0.3, 0, 1, 1] }
|
|
11020
|
-
}
|
|
11021
|
-
};
|
|
11022
|
-
var PICKER_CONTENT_ANIM = {
|
|
11023
|
-
initial: { opacity: 0, scale: 0.85, y: 16 },
|
|
11024
|
-
animate: {
|
|
11025
|
-
opacity: 1,
|
|
11026
|
-
scale: 1,
|
|
11027
|
-
y: 0,
|
|
11028
|
-
transition: DEFAULT_SPATIAL_SPRING
|
|
11029
|
-
},
|
|
11030
|
-
exit: {
|
|
11031
|
-
opacity: 0,
|
|
11032
|
-
scale: 0.95,
|
|
11033
|
-
y: 8,
|
|
11034
|
-
transition: { duration: 0.15, ease: [0.3, 0, 1, 1] }
|
|
11035
|
-
}
|
|
11036
|
-
};
|
|
11037
|
-
var CALENDAR_SLIDE_VARIANTS = {
|
|
11038
|
-
enterFromRight: {
|
|
11039
|
-
x: "100%",
|
|
11040
|
-
opacity: 0
|
|
11041
|
-
},
|
|
11042
|
-
enterFromLeft: {
|
|
11043
|
-
x: "-100%",
|
|
11044
|
-
opacity: 0
|
|
11045
|
-
},
|
|
11046
|
-
center: {
|
|
11047
|
-
x: 0,
|
|
11048
|
-
opacity: 1,
|
|
11049
|
-
transition: FAST_SPATIAL_SPRING
|
|
11050
|
-
},
|
|
11051
|
-
exitToLeft: {
|
|
11052
|
-
x: "-100%",
|
|
11053
|
-
opacity: 0,
|
|
11054
|
-
transition: { duration: 0.15, ease: [0.3, 0, 1, 1] }
|
|
11055
|
-
},
|
|
11056
|
-
exitToRight: {
|
|
11057
|
-
x: "100%",
|
|
11058
|
-
opacity: 0,
|
|
11059
|
-
transition: { duration: 0.15, ease: [0.3, 0, 1, 1] }
|
|
11060
|
-
}
|
|
11061
|
-
};
|
|
11062
|
-
var DAY_CELL_STATE_TRANSITION = FAST_EFFECTS_SPRING;
|
|
11063
11302
|
var DayCell = ({
|
|
11064
11303
|
day,
|
|
11065
11304
|
selectedMs,
|
|
@@ -11108,11 +11347,11 @@ var DayCell = ({
|
|
|
11108
11347
|
// Disabled
|
|
11109
11348
|
isDisabled && "opacity-[0.38]"
|
|
11110
11349
|
);
|
|
11111
|
-
const handleClick =
|
|
11350
|
+
const handleClick = React61.useCallback(() => {
|
|
11112
11351
|
if (isDisabled) return;
|
|
11113
11352
|
onSelect(utcMs);
|
|
11114
11353
|
}, [isDisabled, utcMs, onSelect]);
|
|
11115
|
-
const handleKeyDown =
|
|
11354
|
+
const handleKeyDown = React61.useCallback(
|
|
11116
11355
|
(e) => {
|
|
11117
11356
|
if (e.key === "Enter" || e.key === " ") {
|
|
11118
11357
|
e.preventDefault();
|
|
@@ -11148,7 +11387,7 @@ var DayCell = ({
|
|
|
11148
11387
|
};
|
|
11149
11388
|
DayCell.displayName = "DayCell";
|
|
11150
11389
|
var WeekdayRow = ({ locale }) => {
|
|
11151
|
-
const names =
|
|
11390
|
+
const names = React61.useMemo(() => getWeekdayNames(locale), [locale]);
|
|
11152
11391
|
return /* @__PURE__ */ jsx("tr", { className: "grid grid-cols-7 mb-1", children: names.map((name, i) => /* @__PURE__ */ jsx(
|
|
11153
11392
|
"th",
|
|
11154
11393
|
{
|
|
@@ -11175,7 +11414,7 @@ var CalendarGrid = ({
|
|
|
11175
11414
|
const d = new Date(displayedMonthMs);
|
|
11176
11415
|
const year = d.getUTCFullYear();
|
|
11177
11416
|
const month = d.getUTCMonth();
|
|
11178
|
-
const weeks =
|
|
11417
|
+
const weeks = React61.useMemo(
|
|
11179
11418
|
() => getWeeksInMonth(year, month, locale.weekStartsOn),
|
|
11180
11419
|
[year, month, locale.weekStartsOn]
|
|
11181
11420
|
);
|
|
@@ -11259,16 +11498,16 @@ var CalendarHeader = ({
|
|
|
11259
11498
|
}).format(date);
|
|
11260
11499
|
const yearLabel = String(date.getUTCFullYear());
|
|
11261
11500
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 px-6 pb-4 pt-5", children: [
|
|
11262
|
-
/* @__PURE__ */ jsx("div", { className: "text-
|
|
11263
|
-
/* @__PURE__ */ jsx("div", { className: "mb-2 leading-tight text-
|
|
11264
|
-
displayMode === "picker" && /* @__PURE__ */ jsxs("div", { className: "
|
|
11501
|
+
/* @__PURE__ */ jsx("div", { className: "text-(length:--md-typescale-label-large-size,14px) font-(--md-typescale-label-large-weight,500) text-m3-on-surface-variant", children: title }),
|
|
11502
|
+
/* @__PURE__ */ jsx("div", { className: "mb-2 leading-tight text-(length:--md-typescale-headline-large-size,32px) font-(--md-typescale-headline-large-weight,400) text-m3-on-surface-variant", children: headline }),
|
|
11503
|
+
displayMode === "picker" && /* @__PURE__ */ jsxs("div", { className: "flex min-h-10 items-center gap-0.5", children: [
|
|
11265
11504
|
activeSelector === null && /* @__PURE__ */ jsx(
|
|
11266
11505
|
IconButton,
|
|
11267
11506
|
{
|
|
11268
11507
|
onClick: onPrev,
|
|
11269
11508
|
"aria-label": "Previous month",
|
|
11270
11509
|
disabled: !canNavigatePrev,
|
|
11271
|
-
size: "
|
|
11510
|
+
size: "xs",
|
|
11272
11511
|
children: /* @__PURE__ */ jsx(Icon, { name: "chevron_left" })
|
|
11273
11512
|
}
|
|
11274
11513
|
),
|
|
@@ -11290,7 +11529,7 @@ var CalendarHeader = ({
|
|
|
11290
11529
|
{
|
|
11291
11530
|
name: "arrow_drop_down",
|
|
11292
11531
|
className: cn(
|
|
11293
|
-
"text-[20px]",
|
|
11532
|
+
"text-[20px] transition-transform duration-200",
|
|
11294
11533
|
activeSelector === "month" && "rotate-180"
|
|
11295
11534
|
)
|
|
11296
11535
|
}
|
|
@@ -11304,7 +11543,7 @@ var CalendarHeader = ({
|
|
|
11304
11543
|
onClick: onNext,
|
|
11305
11544
|
"aria-label": "Next month",
|
|
11306
11545
|
disabled: !canNavigateNext,
|
|
11307
|
-
size: "
|
|
11546
|
+
size: "xs",
|
|
11308
11547
|
children: /* @__PURE__ */ jsx(Icon, { name: "chevron_right" })
|
|
11309
11548
|
}
|
|
11310
11549
|
),
|
|
@@ -11315,7 +11554,7 @@ var CalendarHeader = ({
|
|
|
11315
11554
|
onClick: onPreviousYear,
|
|
11316
11555
|
"aria-label": "Previous year",
|
|
11317
11556
|
disabled: !canNavigatePreviousYear,
|
|
11318
|
-
size: "
|
|
11557
|
+
size: "xs",
|
|
11319
11558
|
children: /* @__PURE__ */ jsx(Icon, { name: "chevron_left" })
|
|
11320
11559
|
}
|
|
11321
11560
|
),
|
|
@@ -11337,7 +11576,7 @@ var CalendarHeader = ({
|
|
|
11337
11576
|
{
|
|
11338
11577
|
name: "arrow_drop_down",
|
|
11339
11578
|
className: cn(
|
|
11340
|
-
"text-[20px]",
|
|
11579
|
+
"text-[20px] transition-transform duration-200",
|
|
11341
11580
|
activeSelector === "year" && "rotate-180"
|
|
11342
11581
|
)
|
|
11343
11582
|
}
|
|
@@ -11351,7 +11590,7 @@ var CalendarHeader = ({
|
|
|
11351
11590
|
onClick: onNextYear,
|
|
11352
11591
|
"aria-label": "Next year",
|
|
11353
11592
|
disabled: !canNavigateNextYear,
|
|
11354
|
-
size: "
|
|
11593
|
+
size: "xs",
|
|
11355
11594
|
children: /* @__PURE__ */ jsx(Icon, { name: "chevron_right" })
|
|
11356
11595
|
}
|
|
11357
11596
|
),
|
|
@@ -11360,7 +11599,7 @@ var CalendarHeader = ({
|
|
|
11360
11599
|
{
|
|
11361
11600
|
onClick: onToggleMode,
|
|
11362
11601
|
"aria-label": "Switch to text input",
|
|
11363
|
-
size: "
|
|
11602
|
+
size: "xs",
|
|
11364
11603
|
children: /* @__PURE__ */ jsx(Icon, { name: "keyboard" })
|
|
11365
11604
|
}
|
|
11366
11605
|
)
|
|
@@ -11371,7 +11610,7 @@ var CalendarHeader = ({
|
|
|
11371
11610
|
{
|
|
11372
11611
|
onClick: onToggleMode,
|
|
11373
11612
|
"aria-label": "Switch to calendar",
|
|
11374
|
-
size: "
|
|
11613
|
+
size: "xs",
|
|
11375
11614
|
className: "self-end",
|
|
11376
11615
|
children: /* @__PURE__ */ jsx(Icon, { name: "calendar_month" })
|
|
11377
11616
|
}
|
|
@@ -11389,15 +11628,15 @@ var MonthPickerList = ({
|
|
|
11389
11628
|
locale,
|
|
11390
11629
|
onMonthSelect
|
|
11391
11630
|
}) => {
|
|
11392
|
-
const selectedRef =
|
|
11393
|
-
|
|
11631
|
+
const selectedRef = React61.useRef(null);
|
|
11632
|
+
React61.useEffect(() => {
|
|
11394
11633
|
var _a, _b;
|
|
11395
11634
|
(_b = (_a = selectedRef.current) == null ? void 0 : _a.scrollIntoView) == null ? void 0 : _b.call(_a, {
|
|
11396
11635
|
block: "center",
|
|
11397
11636
|
behavior: "instant"
|
|
11398
11637
|
});
|
|
11399
11638
|
}, []);
|
|
11400
|
-
const months =
|
|
11639
|
+
const months = React61.useMemo(
|
|
11401
11640
|
() => Array.from({ length: 12 }, (_, month) => month),
|
|
11402
11641
|
[]
|
|
11403
11642
|
);
|
|
@@ -11442,12 +11681,12 @@ var YearPickerList = ({
|
|
|
11442
11681
|
selectableDates,
|
|
11443
11682
|
onYearSelect
|
|
11444
11683
|
}) => {
|
|
11445
|
-
const selectedRef =
|
|
11446
|
-
const years =
|
|
11684
|
+
const selectedRef = React61.useRef(null);
|
|
11685
|
+
const years = React61.useMemo(() => {
|
|
11447
11686
|
const [min, max] = yearRange;
|
|
11448
11687
|
return Array.from({ length: max - min + 1 }, (_, index) => min + index);
|
|
11449
11688
|
}, [yearRange]);
|
|
11450
|
-
|
|
11689
|
+
React61.useEffect(() => {
|
|
11451
11690
|
var _a, _b;
|
|
11452
11691
|
(_b = (_a = selectedRef.current) == null ? void 0 : _a.scrollIntoView) == null ? void 0 : _b.call(_a, {
|
|
11453
11692
|
block: "center",
|
|
@@ -11518,17 +11757,17 @@ var DatePicker = ({
|
|
|
11518
11757
|
navigateToMonth,
|
|
11519
11758
|
setDisplayMode
|
|
11520
11759
|
} = state;
|
|
11521
|
-
const [activeSelector, setActiveSelector] =
|
|
11522
|
-
const [slideDirection, setSlideDirection] =
|
|
11523
|
-
const handlePrev =
|
|
11760
|
+
const [activeSelector, setActiveSelector] = React61.useState(null);
|
|
11761
|
+
const [slideDirection, setSlideDirection] = React61.useState(null);
|
|
11762
|
+
const handlePrev = React61.useCallback(() => {
|
|
11524
11763
|
setSlideDirection("prev");
|
|
11525
11764
|
navigateMonth2("prev");
|
|
11526
11765
|
}, [navigateMonth2]);
|
|
11527
|
-
const handleNext =
|
|
11766
|
+
const handleNext = React61.useCallback(() => {
|
|
11528
11767
|
setSlideDirection("next");
|
|
11529
11768
|
navigateMonth2("next");
|
|
11530
11769
|
}, [navigateMonth2]);
|
|
11531
|
-
const handleYearSelect =
|
|
11770
|
+
const handleYearSelect = React61.useCallback(
|
|
11532
11771
|
(year) => {
|
|
11533
11772
|
const d = new Date(displayedMonthMs);
|
|
11534
11773
|
navigateToMonth(year, d.getUTCMonth());
|
|
@@ -11536,7 +11775,7 @@ var DatePicker = ({
|
|
|
11536
11775
|
},
|
|
11537
11776
|
[displayedMonthMs, navigateToMonth]
|
|
11538
11777
|
);
|
|
11539
|
-
const handleMonthSelect =
|
|
11778
|
+
const handleMonthSelect = React61.useCallback(
|
|
11540
11779
|
(month) => {
|
|
11541
11780
|
const d = new Date(displayedMonthMs);
|
|
11542
11781
|
navigateToMonth(d.getUTCFullYear(), month);
|
|
@@ -11544,11 +11783,11 @@ var DatePicker = ({
|
|
|
11544
11783
|
},
|
|
11545
11784
|
[displayedMonthMs, navigateToMonth]
|
|
11546
11785
|
);
|
|
11547
|
-
const [inputValue, setInputValue] =
|
|
11786
|
+
const [inputValue, setInputValue] = React61.useState(
|
|
11548
11787
|
() => selectedDateMs !== null ? formatInputDate(selectedDateMs) : ""
|
|
11549
11788
|
);
|
|
11550
|
-
const [inputError, setInputError] =
|
|
11551
|
-
const handleInputCommit =
|
|
11789
|
+
const [inputError, setInputError] = React61.useState();
|
|
11790
|
+
const handleInputCommit = React61.useCallback(
|
|
11552
11791
|
(ms) => {
|
|
11553
11792
|
if (ms === null && inputValue.length > 0) {
|
|
11554
11793
|
setInputError("Invalid date");
|
|
@@ -11634,9 +11873,12 @@ var DatePicker = ({
|
|
|
11634
11873
|
"input-mode"
|
|
11635
11874
|
)
|
|
11636
11875
|
) : activeSelector === "month" ? /* @__PURE__ */ jsx(
|
|
11637
|
-
|
|
11876
|
+
m.div,
|
|
11638
11877
|
{
|
|
11639
11878
|
id: "date-picker-selection",
|
|
11879
|
+
initial: PICKER_SELECTOR_ANIM.initial,
|
|
11880
|
+
animate: PICKER_SELECTOR_ANIM.animate,
|
|
11881
|
+
exit: PICKER_SELECTOR_ANIM.exit,
|
|
11640
11882
|
className: "absolute inset-0",
|
|
11641
11883
|
children: /* @__PURE__ */ jsx(
|
|
11642
11884
|
MonthPickerList,
|
|
@@ -11649,9 +11891,12 @@ var DatePicker = ({
|
|
|
11649
11891
|
},
|
|
11650
11892
|
"month-list"
|
|
11651
11893
|
) : activeSelector === "year" ? /* @__PURE__ */ jsx(
|
|
11652
|
-
|
|
11894
|
+
m.div,
|
|
11653
11895
|
{
|
|
11654
11896
|
id: "date-picker-selection",
|
|
11897
|
+
initial: PICKER_SELECTOR_ANIM.initial,
|
|
11898
|
+
animate: PICKER_SELECTOR_ANIM.animate,
|
|
11899
|
+
exit: PICKER_SELECTOR_ANIM.exit,
|
|
11655
11900
|
className: "absolute inset-0",
|
|
11656
11901
|
children: /* @__PURE__ */ jsx(
|
|
11657
11902
|
YearPickerList,
|
|
@@ -11813,9 +12058,9 @@ DialogTrigger.displayName = "DialogTrigger";
|
|
|
11813
12058
|
var DialogPortal = ({
|
|
11814
12059
|
open,
|
|
11815
12060
|
children
|
|
11816
|
-
}) => /* @__PURE__ */ jsx(RadixDialog.Portal, { forceMount: true, children: /* @__PURE__ */ jsx(AnimatePresence, { children: open ?
|
|
12061
|
+
}) => /* @__PURE__ */ jsx(RadixDialog.Portal, { forceMount: true, children: /* @__PURE__ */ jsx(AnimatePresence, { children: open ? React61.Children.toArray(children) : null }) });
|
|
11817
12062
|
DialogPortal.displayName = "DialogPortal";
|
|
11818
|
-
var DialogOverlay =
|
|
12063
|
+
var DialogOverlay = React61.forwardRef((_a, ref) => {
|
|
11819
12064
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11820
12065
|
return /* @__PURE__ */ jsx(RadixDialog.Overlay, __spreadProps(__spreadValues({ ref, asChild: true }, props), { children: /* @__PURE__ */ jsx(
|
|
11821
12066
|
m.div,
|
|
@@ -11826,7 +12071,7 @@ var DialogOverlay = React59.forwardRef((_a, ref) => {
|
|
|
11826
12071
|
) }));
|
|
11827
12072
|
});
|
|
11828
12073
|
DialogOverlay.displayName = "DialogOverlay";
|
|
11829
|
-
var DialogContent =
|
|
12074
|
+
var DialogContent = React61.forwardRef((_a, ref) => {
|
|
11830
12075
|
var _b = _a, { className, children, hideCloseButton = false } = _b, props = __objRest(_b, ["className", "children", "hideCloseButton"]);
|
|
11831
12076
|
return /* @__PURE__ */ jsx(
|
|
11832
12077
|
RadixDialog.Content,
|
|
@@ -11866,7 +12111,7 @@ var DialogContent = React59.forwardRef((_a, ref) => {
|
|
|
11866
12111
|
);
|
|
11867
12112
|
});
|
|
11868
12113
|
DialogContent.displayName = "DialogContent";
|
|
11869
|
-
var DialogIcon =
|
|
12114
|
+
var DialogIcon = React61.forwardRef((_a, ref) => {
|
|
11870
12115
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
11871
12116
|
return /* @__PURE__ */ jsx(
|
|
11872
12117
|
"div",
|
|
@@ -11889,7 +12134,7 @@ var DialogHeader = (_a) => {
|
|
|
11889
12134
|
return /* @__PURE__ */ jsx("div", __spreadValues({ className: cn("flex flex-col gap-2 mb-4", className) }, props));
|
|
11890
12135
|
};
|
|
11891
12136
|
DialogHeader.displayName = "DialogHeader";
|
|
11892
|
-
var DialogTitle =
|
|
12137
|
+
var DialogTitle = React61.forwardRef((_a, ref) => {
|
|
11893
12138
|
var _b = _a, { className, asChild } = _b, props = __objRest(_b, ["className", "asChild"]);
|
|
11894
12139
|
return /* @__PURE__ */ jsx(
|
|
11895
12140
|
RadixDialog.Title,
|
|
@@ -11904,7 +12149,7 @@ var DialogTitle = React59.forwardRef((_a, ref) => {
|
|
|
11904
12149
|
);
|
|
11905
12150
|
});
|
|
11906
12151
|
DialogTitle.displayName = "DialogTitle";
|
|
11907
|
-
var DialogDescription =
|
|
12152
|
+
var DialogDescription = React61.forwardRef((_a, ref) => {
|
|
11908
12153
|
var _b = _a, { className, asChild } = _b, props = __objRest(_b, ["className", "asChild"]);
|
|
11909
12154
|
return /* @__PURE__ */ jsx(
|
|
11910
12155
|
RadixDialog.Description,
|
|
@@ -11916,7 +12161,7 @@ var DialogDescription = React59.forwardRef((_a, ref) => {
|
|
|
11916
12161
|
);
|
|
11917
12162
|
});
|
|
11918
12163
|
DialogDescription.displayName = "DialogDescription";
|
|
11919
|
-
var DialogBody =
|
|
12164
|
+
var DialogBody = React61.forwardRef((_a, ref) => {
|
|
11920
12165
|
var _b = _a, { className, children, dir } = _b, props = __objRest(_b, ["className", "children", "dir"]);
|
|
11921
12166
|
return /* @__PURE__ */ jsx(
|
|
11922
12167
|
ScrollArea,
|
|
@@ -11947,7 +12192,7 @@ var DialogFooter = (_a) => {
|
|
|
11947
12192
|
};
|
|
11948
12193
|
DialogFooter.displayName = "DialogFooter";
|
|
11949
12194
|
var DialogClose = RadixDialog.Close;
|
|
11950
|
-
var DialogFullScreenContent =
|
|
12195
|
+
var DialogFullScreenContent = React61.forwardRef(
|
|
11951
12196
|
(_a, ref) => {
|
|
11952
12197
|
var _b = _a, {
|
|
11953
12198
|
className,
|
|
@@ -12095,17 +12340,17 @@ var DateRangePicker = ({
|
|
|
12095
12340
|
navigateToMonth,
|
|
12096
12341
|
setDisplayMode
|
|
12097
12342
|
} = state;
|
|
12098
|
-
const [activeSelector, setActiveSelector] =
|
|
12099
|
-
const [slideDirection, setSlideDirection] =
|
|
12100
|
-
const handlePrev =
|
|
12343
|
+
const [activeSelector, setActiveSelector] = React61.useState(null);
|
|
12344
|
+
const [slideDirection, setSlideDirection] = React61.useState(null);
|
|
12345
|
+
const handlePrev = React61.useCallback(() => {
|
|
12101
12346
|
setSlideDirection("prev");
|
|
12102
12347
|
navigateMonth2("prev");
|
|
12103
12348
|
}, [navigateMonth2]);
|
|
12104
|
-
const handleNext =
|
|
12349
|
+
const handleNext = React61.useCallback(() => {
|
|
12105
12350
|
setSlideDirection("next");
|
|
12106
12351
|
navigateMonth2("next");
|
|
12107
12352
|
}, [navigateMonth2]);
|
|
12108
|
-
const handleYearSelect =
|
|
12353
|
+
const handleYearSelect = React61.useCallback(
|
|
12109
12354
|
(year) => {
|
|
12110
12355
|
const d = new Date(displayedMonthMs);
|
|
12111
12356
|
navigateToMonth(year, d.getUTCMonth());
|
|
@@ -12113,7 +12358,7 @@ var DateRangePicker = ({
|
|
|
12113
12358
|
},
|
|
12114
12359
|
[displayedMonthMs, navigateToMonth]
|
|
12115
12360
|
);
|
|
12116
|
-
const handleMonthSelect =
|
|
12361
|
+
const handleMonthSelect = React61.useCallback(
|
|
12117
12362
|
(month) => {
|
|
12118
12363
|
const d = new Date(displayedMonthMs);
|
|
12119
12364
|
navigateToMonth(d.getUTCFullYear(), month);
|
|
@@ -12121,7 +12366,7 @@ var DateRangePicker = ({
|
|
|
12121
12366
|
},
|
|
12122
12367
|
[displayedMonthMs, navigateToMonth]
|
|
12123
12368
|
);
|
|
12124
|
-
const formatShort =
|
|
12369
|
+
const formatShort = React61.useCallback(
|
|
12125
12370
|
(ms) => {
|
|
12126
12371
|
if (ms === null) return "\u2014";
|
|
12127
12372
|
return formatDate(ms, locale, {
|
|
@@ -12187,9 +12432,12 @@ var DateRangePicker = ({
|
|
|
12187
12432
|
className: "relative flex-1 overflow-hidden",
|
|
12188
12433
|
style: { minHeight: "296px" },
|
|
12189
12434
|
children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: activeSelector === "month" ? /* @__PURE__ */ jsx(
|
|
12190
|
-
|
|
12435
|
+
m.div,
|
|
12191
12436
|
{
|
|
12192
12437
|
id: "date-picker-selection",
|
|
12438
|
+
initial: PICKER_SELECTOR_ANIM.initial,
|
|
12439
|
+
animate: PICKER_SELECTOR_ANIM.animate,
|
|
12440
|
+
exit: PICKER_SELECTOR_ANIM.exit,
|
|
12193
12441
|
className: "absolute inset-0",
|
|
12194
12442
|
children: /* @__PURE__ */ jsx(
|
|
12195
12443
|
MonthPickerList,
|
|
@@ -12202,9 +12450,12 @@ var DateRangePicker = ({
|
|
|
12202
12450
|
},
|
|
12203
12451
|
"month-list"
|
|
12204
12452
|
) : activeSelector === "year" ? /* @__PURE__ */ jsx(
|
|
12205
|
-
|
|
12453
|
+
m.div,
|
|
12206
12454
|
{
|
|
12207
12455
|
id: "date-picker-selection",
|
|
12456
|
+
initial: PICKER_SELECTOR_ANIM.initial,
|
|
12457
|
+
animate: PICKER_SELECTOR_ANIM.animate,
|
|
12458
|
+
exit: PICKER_SELECTOR_ANIM.exit,
|
|
12208
12459
|
className: "absolute inset-0",
|
|
12209
12460
|
children: /* @__PURE__ */ jsx(
|
|
12210
12461
|
YearPickerList,
|
|
@@ -12726,16 +12977,16 @@ var InputField = ({
|
|
|
12726
12977
|
onBlur,
|
|
12727
12978
|
className
|
|
12728
12979
|
}) => {
|
|
12729
|
-
const [inputText, setInputText] =
|
|
12980
|
+
const [inputText, setInputText] = React61.useState(
|
|
12730
12981
|
String(value).padStart(2, "0")
|
|
12731
12982
|
);
|
|
12732
|
-
const inputRef =
|
|
12733
|
-
|
|
12983
|
+
const inputRef = React61.useRef(null);
|
|
12984
|
+
React61.useEffect(() => {
|
|
12734
12985
|
if (!isFocused) {
|
|
12735
12986
|
setInputText(String(value).padStart(2, "0"));
|
|
12736
12987
|
}
|
|
12737
12988
|
}, [value, isFocused]);
|
|
12738
|
-
|
|
12989
|
+
React61.useEffect(() => {
|
|
12739
12990
|
var _a, _b;
|
|
12740
12991
|
if (isFocused) {
|
|
12741
12992
|
(_a = inputRef.current) == null ? void 0 : _a.focus();
|
|
@@ -12825,7 +13076,7 @@ var InputField = ({
|
|
|
12825
13076
|
};
|
|
12826
13077
|
var TimeInput = ({ state, className }) => {
|
|
12827
13078
|
const { is24hour, setHourInput, setMinuteInput, setSelection } = state;
|
|
12828
|
-
const [focusedField, setFocusedField] =
|
|
13079
|
+
const [focusedField, setFocusedField] = React61.useState(null);
|
|
12829
13080
|
const handleHourAutoAdvance = () => {
|
|
12830
13081
|
setFocusedField("minute");
|
|
12831
13082
|
setSelection("minute");
|
|
@@ -13019,17 +13270,17 @@ var ClockDial = ({
|
|
|
13019
13270
|
setMinute,
|
|
13020
13271
|
setSelection
|
|
13021
13272
|
} = state;
|
|
13022
|
-
const displayAngle =
|
|
13273
|
+
const displayAngle = React61.useMemo(() => {
|
|
13023
13274
|
if (selection === "hour") {
|
|
13024
13275
|
return valueToAngle(hour, "hour");
|
|
13025
13276
|
}
|
|
13026
13277
|
return valueToAngle(minute, "minute");
|
|
13027
13278
|
}, [selection, hour, minute]);
|
|
13028
|
-
const selectorPos =
|
|
13279
|
+
const selectorPos = React61.useMemo(
|
|
13029
13280
|
() => getSelectorPosition(displayAngle, selection, is24hour, isPm),
|
|
13030
13281
|
[displayAngle, selection, is24hour, isPm]
|
|
13031
13282
|
);
|
|
13032
|
-
const trackEnd =
|
|
13283
|
+
const trackEnd = React61.useMemo(() => {
|
|
13033
13284
|
const dx = selectorPos.x - CENTER;
|
|
13034
13285
|
const dy = selectorPos.y - CENTER;
|
|
13035
13286
|
const length = Math.hypot(dx, dy);
|
|
@@ -13039,13 +13290,13 @@ var ClockDial = ({
|
|
|
13039
13290
|
y: selectorPos.y - dy / length * HANDLE_RADIUS
|
|
13040
13291
|
};
|
|
13041
13292
|
}, [selectorPos]);
|
|
13042
|
-
const numbers =
|
|
13293
|
+
const numbers = React61.useMemo(() => {
|
|
13043
13294
|
if (selection === "minute") return buildMinuteNumbers();
|
|
13044
13295
|
if (is24hour) return buildHour24Numbers();
|
|
13045
13296
|
return buildHour12Numbers();
|
|
13046
13297
|
}, [selection, is24hour]);
|
|
13047
|
-
const isDragging =
|
|
13048
|
-
const svgRef =
|
|
13298
|
+
const isDragging = React61.useRef(false);
|
|
13299
|
+
const svgRef = React61.useRef(null);
|
|
13049
13300
|
const getSVGPoint = (e) => {
|
|
13050
13301
|
const svg = svgRef.current;
|
|
13051
13302
|
if (!svg) return { x: e.clientX, y: e.clientY };
|
|
@@ -13195,8 +13446,8 @@ var getAutoLayout = () => {
|
|
|
13195
13446
|
return innerWidth >= 600 && innerHeight >= 300 && innerWidth >= innerHeight ? "horizontal" : "vertical";
|
|
13196
13447
|
};
|
|
13197
13448
|
var useResolvedLayout = (layout) => {
|
|
13198
|
-
const [autoLayout, setAutoLayout] =
|
|
13199
|
-
|
|
13449
|
+
const [autoLayout, setAutoLayout] = React61.useState("vertical");
|
|
13450
|
+
React61.useEffect(() => {
|
|
13200
13451
|
if (layout !== "auto") return;
|
|
13201
13452
|
const updateLayout = () => setAutoLayout(getAutoLayout());
|
|
13202
13453
|
updateLayout();
|
|
@@ -13373,7 +13624,7 @@ var TimePickerDialog = ({
|
|
|
13373
13624
|
TimePickerDialog.displayName = "TimePickerDialog";
|
|
13374
13625
|
var clamp = (value, min, max) => Math.max(min, Math.min(max, value));
|
|
13375
13626
|
var isValidHourInput = (h, is24hour) => is24hour ? h >= 0 && h <= 23 : h >= 1 && h <= 12;
|
|
13376
|
-
var isValidMinuteInput = (
|
|
13627
|
+
var isValidMinuteInput = (m71) => m71 >= 0 && m71 <= 59;
|
|
13377
13628
|
var to24Hour = (hour12, isPm) => {
|
|
13378
13629
|
if (isPm) {
|
|
13379
13630
|
return hour12 === 12 ? 12 : hour12 + 12;
|
|
@@ -13409,8 +13660,8 @@ var useTimePickerState = (options) => {
|
|
|
13409
13660
|
},
|
|
13410
13661
|
[is24hour]
|
|
13411
13662
|
);
|
|
13412
|
-
const setMinute = useCallback((
|
|
13413
|
-
const clamped = clamp(
|
|
13663
|
+
const setMinute = useCallback((m71) => {
|
|
13664
|
+
const clamped = clamp(m71, 0, 59);
|
|
13414
13665
|
setMinuteState(clamped);
|
|
13415
13666
|
setMinuteInputState(clamped);
|
|
13416
13667
|
}, []);
|
|
@@ -13424,10 +13675,10 @@ var useTimePickerState = (options) => {
|
|
|
13424
13675
|
},
|
|
13425
13676
|
[is24hour, isPm]
|
|
13426
13677
|
);
|
|
13427
|
-
const setMinuteInput = useCallback((
|
|
13428
|
-
setMinuteInputState(
|
|
13429
|
-
if (isValidMinuteInput(
|
|
13430
|
-
setMinuteState(
|
|
13678
|
+
const setMinuteInput = useCallback((m71) => {
|
|
13679
|
+
setMinuteInputState(m71);
|
|
13680
|
+
if (isValidMinuteInput(m71)) {
|
|
13681
|
+
setMinuteState(m71);
|
|
13431
13682
|
}
|
|
13432
13683
|
}, []);
|
|
13433
13684
|
const setSelection = useCallback((mode) => {
|
|
@@ -13508,7 +13759,7 @@ function buildWavePath(startX, endX, amplitude = 2, wavelength = 32, yCenter = 4
|
|
|
13508
13759
|
}
|
|
13509
13760
|
return d;
|
|
13510
13761
|
}
|
|
13511
|
-
var DividerImpl =
|
|
13762
|
+
var DividerImpl = React61.forwardRef(
|
|
13512
13763
|
(_a, ref) => {
|
|
13513
13764
|
var _b = _a, {
|
|
13514
13765
|
variant = "full-bleed",
|
|
@@ -13628,7 +13879,7 @@ var DividerImpl = React59.forwardRef(
|
|
|
13628
13879
|
}
|
|
13629
13880
|
);
|
|
13630
13881
|
DividerImpl.displayName = "Divider";
|
|
13631
|
-
var Divider =
|
|
13882
|
+
var Divider = React61.memo(DividerImpl);
|
|
13632
13883
|
var MD3_DRAWER_SPRING = DEFAULT_SPATIAL_SPRING;
|
|
13633
13884
|
var MD3_DRAWER_ANIM = {
|
|
13634
13885
|
initial: { y: "100%", opacity: 0.6 },
|
|
@@ -13660,7 +13911,7 @@ var DrawerPortal = ({
|
|
|
13660
13911
|
open,
|
|
13661
13912
|
children
|
|
13662
13913
|
}) => /* @__PURE__ */ jsx(RadixDialog.Portal, { forceMount: true, children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: open && children }) });
|
|
13663
|
-
var DrawerOverlay =
|
|
13914
|
+
var DrawerOverlay = React61.forwardRef((_a, ref) => {
|
|
13664
13915
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
13665
13916
|
return /* @__PURE__ */ jsx(RadixDialog.Overlay, __spreadProps(__spreadValues({ ref, asChild: true }, props), { children: /* @__PURE__ */ jsx(
|
|
13666
13917
|
m.div,
|
|
@@ -13671,7 +13922,7 @@ var DrawerOverlay = React59.forwardRef((_a, ref) => {
|
|
|
13671
13922
|
) }));
|
|
13672
13923
|
});
|
|
13673
13924
|
DrawerOverlay.displayName = "DrawerOverlay";
|
|
13674
|
-
var DrawerContent =
|
|
13925
|
+
var DrawerContent = React61.forwardRef(
|
|
13675
13926
|
(_a, ref) => {
|
|
13676
13927
|
var _b = _a, {
|
|
13677
13928
|
className,
|
|
@@ -13750,7 +14001,7 @@ var DrawerFooter = (_a) => {
|
|
|
13750
14001
|
return /* @__PURE__ */ jsx("div", __spreadValues({ className: cn("flex flex-col gap-2 mt-4", className) }, props));
|
|
13751
14002
|
};
|
|
13752
14003
|
DrawerFooter.displayName = "DrawerFooter";
|
|
13753
|
-
var DrawerTitle =
|
|
14004
|
+
var DrawerTitle = React61.forwardRef((_a, ref) => {
|
|
13754
14005
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
13755
14006
|
return /* @__PURE__ */ jsx(
|
|
13756
14007
|
RadixDialog.Title,
|
|
@@ -13764,7 +14015,7 @@ var DrawerTitle = React59.forwardRef((_a, ref) => {
|
|
|
13764
14015
|
);
|
|
13765
14016
|
});
|
|
13766
14017
|
DrawerTitle.displayName = "DrawerTitle";
|
|
13767
|
-
var DrawerDescription =
|
|
14018
|
+
var DrawerDescription = React61.forwardRef((_a, ref) => {
|
|
13768
14019
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
13769
14020
|
return /* @__PURE__ */ jsx(
|
|
13770
14021
|
RadixDialog.Description,
|
|
@@ -13775,8 +14026,8 @@ var DrawerDescription = React59.forwardRef((_a, ref) => {
|
|
|
13775
14026
|
);
|
|
13776
14027
|
});
|
|
13777
14028
|
DrawerDescription.displayName = "DrawerDescription";
|
|
13778
|
-
var ListContext =
|
|
13779
|
-
var useListContext = () =>
|
|
14029
|
+
var ListContext = React61.createContext(null);
|
|
14030
|
+
var useListContext = () => React61.useContext(ListContext);
|
|
13780
14031
|
var LIST_TOKENS = {
|
|
13781
14032
|
oneLineHeight: 56,
|
|
13782
14033
|
twoLineHeight: 72,
|
|
@@ -13841,9 +14092,9 @@ function resolveItemId(item) {
|
|
|
13841
14092
|
return String(item);
|
|
13842
14093
|
}
|
|
13843
14094
|
function isListItem(child) {
|
|
13844
|
-
return
|
|
14095
|
+
return React61.isValidElement(child) && child.props != null && typeof child.props === "object" && "value" in child.props;
|
|
13845
14096
|
}
|
|
13846
|
-
var ListImpl =
|
|
14097
|
+
var ListImpl = React61.forwardRef(
|
|
13847
14098
|
(_a, ref) => {
|
|
13848
14099
|
var _b = _a, {
|
|
13849
14100
|
className,
|
|
@@ -13874,12 +14125,12 @@ var ListImpl = React59.forwardRef(
|
|
|
13874
14125
|
"innerRadius",
|
|
13875
14126
|
"children"
|
|
13876
14127
|
]);
|
|
13877
|
-
const listRef =
|
|
13878
|
-
const [draggedOrder, setDraggedOrder] =
|
|
14128
|
+
const listRef = React61.useRef(null);
|
|
14129
|
+
const [draggedOrder, setDraggedOrder] = React61.useState(
|
|
13879
14130
|
null
|
|
13880
14131
|
);
|
|
13881
|
-
|
|
13882
|
-
const [selectedState, setSelectedState] =
|
|
14132
|
+
React61.useImperativeHandle(ref, () => listRef.current);
|
|
14133
|
+
const [selectedState, setSelectedState] = React61.useState(
|
|
13883
14134
|
() => {
|
|
13884
14135
|
var _a2;
|
|
13885
14136
|
const initialValue = (_a2 = value != null ? value : defaultValue) != null ? _a2 : [];
|
|
@@ -13889,13 +14140,13 @@ var ListImpl = React59.forwardRef(
|
|
|
13889
14140
|
}
|
|
13890
14141
|
);
|
|
13891
14142
|
const isControlled = value !== void 0;
|
|
13892
|
-
const selectedValues =
|
|
14143
|
+
const selectedValues = React61.useMemo(() => {
|
|
13893
14144
|
if (isControlled) {
|
|
13894
14145
|
return new Set(Array.isArray(value) ? value : value ? [value] : []);
|
|
13895
14146
|
}
|
|
13896
14147
|
return selectedState;
|
|
13897
14148
|
}, [isControlled, value, selectedState]);
|
|
13898
|
-
const onItemChange =
|
|
14149
|
+
const onItemChange = React61.useCallback(
|
|
13899
14150
|
(itemValue, selected) => {
|
|
13900
14151
|
const nextSet = new Set(selectedValues);
|
|
13901
14152
|
if (selectionMode === "single-select") {
|
|
@@ -13927,11 +14178,11 @@ var ListImpl = React59.forwardRef(
|
|
|
13927
14178
|
coordinateGetter: sortableKeyboardCoordinates
|
|
13928
14179
|
})
|
|
13929
14180
|
);
|
|
13930
|
-
const itemIds =
|
|
14181
|
+
const itemIds = React61.useMemo(
|
|
13931
14182
|
() => items ? items.map(resolveItemId) : [],
|
|
13932
14183
|
[items]
|
|
13933
14184
|
);
|
|
13934
|
-
const currentOrder =
|
|
14185
|
+
const currentOrder = React61.useMemo(
|
|
13935
14186
|
() => draggedOrder || itemIds,
|
|
13936
14187
|
[draggedOrder, itemIds]
|
|
13937
14188
|
);
|
|
@@ -13991,20 +14242,20 @@ var ListImpl = React59.forwardRef(
|
|
|
13991
14242
|
}
|
|
13992
14243
|
(_a2 = focusableItems[nextIndex]) == null ? void 0 : _a2.focus();
|
|
13993
14244
|
};
|
|
13994
|
-
const childrenArray =
|
|
14245
|
+
const childrenArray = React61.Children.toArray(children);
|
|
13995
14246
|
const listItemCount = childrenArray.filter(isListItem).length;
|
|
13996
14247
|
let currentListItemIndex = 0;
|
|
13997
|
-
const processedChildren =
|
|
14248
|
+
const processedChildren = React61.Children.map(children, (child) => {
|
|
13998
14249
|
if (!isListItem(child)) return child;
|
|
13999
14250
|
const childValue = child.props.value;
|
|
14000
14251
|
const index = reorderable && currentOrder.length > 0 ? currentOrder.indexOf(String(childValue)) : currentListItemIndex;
|
|
14001
14252
|
currentListItemIndex++;
|
|
14002
|
-
return
|
|
14253
|
+
return React61.cloneElement(
|
|
14003
14254
|
child,
|
|
14004
14255
|
{ _listIndex: index }
|
|
14005
14256
|
);
|
|
14006
14257
|
});
|
|
14007
|
-
const contextValue =
|
|
14258
|
+
const contextValue = React61.useMemo(
|
|
14008
14259
|
() => ({
|
|
14009
14260
|
selectionMode,
|
|
14010
14261
|
variant,
|
|
@@ -14028,7 +14279,7 @@ var ListImpl = React59.forwardRef(
|
|
|
14028
14279
|
innerRadius
|
|
14029
14280
|
]
|
|
14030
14281
|
);
|
|
14031
|
-
const dndId =
|
|
14282
|
+
const dndId = React61.useId();
|
|
14032
14283
|
const isListbox = selectionMode === "single-select" || selectionMode === "multi-select";
|
|
14033
14284
|
const role = isListbox ? "listbox" : "list";
|
|
14034
14285
|
const ariaMultiselectable = selectionMode === "multi-select" ? true : void 0;
|
|
@@ -14075,13 +14326,13 @@ var ListImpl = React59.forwardRef(
|
|
|
14075
14326
|
}
|
|
14076
14327
|
);
|
|
14077
14328
|
ListImpl.displayName = "List";
|
|
14078
|
-
var List =
|
|
14329
|
+
var List = React61.memo(ListImpl);
|
|
14079
14330
|
var INSET_CLASSES = {
|
|
14080
14331
|
icon: "pl-[56px]",
|
|
14081
14332
|
avatar: "pl-[72px]",
|
|
14082
14333
|
custom: "pl-4"
|
|
14083
14334
|
};
|
|
14084
|
-
var ListDividerImpl =
|
|
14335
|
+
var ListDividerImpl = React61.forwardRef(
|
|
14085
14336
|
(_a, ref) => {
|
|
14086
14337
|
var _b = _a, { className, inset = false, insetType = "avatar" } = _b, props = __objRest(_b, ["className", "inset", "insetType"]);
|
|
14087
14338
|
const insetClass = inset ? INSET_CLASSES[insetType] : "";
|
|
@@ -14106,13 +14357,13 @@ var ListDividerImpl = React59.forwardRef(
|
|
|
14106
14357
|
}
|
|
14107
14358
|
);
|
|
14108
14359
|
ListDividerImpl.displayName = "ListDivider";
|
|
14109
|
-
var ListDivider =
|
|
14360
|
+
var ListDivider = React61.memo(ListDividerImpl);
|
|
14110
14361
|
var MD3_FAST_EFFECTS2 = [0.3, 0, 1, 1];
|
|
14111
|
-
var RadioGroupContext =
|
|
14362
|
+
var RadioGroupContext = React61.createContext(
|
|
14112
14363
|
null
|
|
14113
14364
|
);
|
|
14114
14365
|
function useMergedRef3(externalRef, internalRef) {
|
|
14115
|
-
return
|
|
14366
|
+
return React61.useCallback(
|
|
14116
14367
|
(node) => {
|
|
14117
14368
|
internalRef.current = node;
|
|
14118
14369
|
if (!externalRef) return;
|
|
@@ -14125,7 +14376,7 @@ function useMergedRef3(externalRef, internalRef) {
|
|
|
14125
14376
|
[externalRef, internalRef]
|
|
14126
14377
|
);
|
|
14127
14378
|
}
|
|
14128
|
-
var RadioVisual =
|
|
14379
|
+
var RadioVisual = React61.memo(function RadioVisual2({
|
|
14129
14380
|
isSelected,
|
|
14130
14381
|
disabled,
|
|
14131
14382
|
error,
|
|
@@ -14178,7 +14429,7 @@ var RadioVisual = React59.memo(function RadioVisual2({
|
|
|
14178
14429
|
}
|
|
14179
14430
|
);
|
|
14180
14431
|
});
|
|
14181
|
-
var RadioButtonComponent =
|
|
14432
|
+
var RadioButtonComponent = React61.forwardRef(
|
|
14182
14433
|
({
|
|
14183
14434
|
selected,
|
|
14184
14435
|
defaultSelected = false,
|
|
@@ -14197,23 +14448,23 @@ var RadioButtonComponent = React59.forwardRef(
|
|
|
14197
14448
|
required: requiredProp
|
|
14198
14449
|
}, ref) => {
|
|
14199
14450
|
var _a, _b;
|
|
14200
|
-
const group =
|
|
14451
|
+
const group = React61.useContext(RadioGroupContext);
|
|
14201
14452
|
const prefersReduced = (_a = useReducedMotion()) != null ? _a : false;
|
|
14202
|
-
const generatedId =
|
|
14453
|
+
const generatedId = React61.useId();
|
|
14203
14454
|
const inputId = idProp != null ? idProp : label ? `radio-${generatedId}` : void 0;
|
|
14204
14455
|
const name = (_b = group == null ? void 0 : group.name) != null ? _b : nameProp;
|
|
14205
14456
|
const disabled = (group == null ? void 0 : group.disabled) || disabledProp;
|
|
14206
14457
|
const error = (group == null ? void 0 : group.error) || errorProp || color === "error";
|
|
14207
14458
|
const required = (group == null ? void 0 : group.required) || requiredProp;
|
|
14208
|
-
const [internalSelected, setInternalSelected] =
|
|
14459
|
+
const [internalSelected, setInternalSelected] = React61.useState(defaultSelected);
|
|
14209
14460
|
const isControlled = selected !== void 0;
|
|
14210
14461
|
const isSelected = group ? group.selectedValue === value : isControlled ? selected != null ? selected : false : internalSelected;
|
|
14211
|
-
const [ripples, setRipples] =
|
|
14212
|
-
const removeRipple =
|
|
14462
|
+
const [ripples, setRipples] = React61.useState([]);
|
|
14463
|
+
const removeRipple = React61.useCallback(
|
|
14213
14464
|
(id) => setRipples((prev) => prev.filter((r) => r.id !== id)),
|
|
14214
14465
|
[]
|
|
14215
14466
|
);
|
|
14216
|
-
const onPointerDown =
|
|
14467
|
+
const onPointerDown = React61.useCallback(
|
|
14217
14468
|
(e) => {
|
|
14218
14469
|
if (disabled) return;
|
|
14219
14470
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
@@ -14227,12 +14478,12 @@ var RadioButtonComponent = React59.forwardRef(
|
|
|
14227
14478
|
},
|
|
14228
14479
|
[disabled]
|
|
14229
14480
|
);
|
|
14230
|
-
const [isHovered, setIsHovered] =
|
|
14231
|
-
const onPointerEnter =
|
|
14481
|
+
const [isHovered, setIsHovered] = React61.useState(false);
|
|
14482
|
+
const onPointerEnter = React61.useCallback(() => {
|
|
14232
14483
|
if (!disabled) setIsHovered(true);
|
|
14233
14484
|
}, [disabled]);
|
|
14234
|
-
const onPointerLeave =
|
|
14235
|
-
const handleChange =
|
|
14485
|
+
const onPointerLeave = React61.useCallback(() => setIsHovered(false), []);
|
|
14486
|
+
const handleChange = React61.useCallback(
|
|
14236
14487
|
(_e) => {
|
|
14237
14488
|
if (disabled || onClick === null) return;
|
|
14238
14489
|
if (group) {
|
|
@@ -14246,7 +14497,7 @@ var RadioButtonComponent = React59.forwardRef(
|
|
|
14246
14497
|
},
|
|
14247
14498
|
[disabled, onClick, group, value, isControlled]
|
|
14248
14499
|
);
|
|
14249
|
-
const inputRef =
|
|
14500
|
+
const inputRef = React61.useRef(null);
|
|
14250
14501
|
const mergedRef = useMergedRef3(ref, inputRef);
|
|
14251
14502
|
const stateLayerBg = error ? "before:bg-m3-error" : "before:bg-m3-primary";
|
|
14252
14503
|
const stateLayerClass = cn(
|
|
@@ -14357,8 +14608,8 @@ var RadioButtonComponent = React59.forwardRef(
|
|
|
14357
14608
|
}
|
|
14358
14609
|
);
|
|
14359
14610
|
RadioButtonComponent.displayName = "RadioButton";
|
|
14360
|
-
var RadioButton =
|
|
14361
|
-
var RadioGroupComponent =
|
|
14611
|
+
var RadioButton = React61.memo(RadioButtonComponent);
|
|
14612
|
+
var RadioGroupComponent = React61.forwardRef(
|
|
14362
14613
|
({
|
|
14363
14614
|
name,
|
|
14364
14615
|
value: valueProp,
|
|
@@ -14373,19 +14624,19 @@ var RadioGroupComponent = React59.forwardRef(
|
|
|
14373
14624
|
children,
|
|
14374
14625
|
className
|
|
14375
14626
|
}, ref) => {
|
|
14376
|
-
const [internalValue, setInternalValue] =
|
|
14627
|
+
const [internalValue, setInternalValue] = React61.useState(defaultValue);
|
|
14377
14628
|
const isControlled = valueProp !== void 0;
|
|
14378
14629
|
const selectedValue = isControlled ? valueProp : internalValue;
|
|
14379
|
-
const handleValueChange =
|
|
14630
|
+
const handleValueChange = React61.useCallback(
|
|
14380
14631
|
(val) => {
|
|
14381
14632
|
if (!isControlled) setInternalValue(val);
|
|
14382
14633
|
onValueChange == null ? void 0 : onValueChange(val);
|
|
14383
14634
|
},
|
|
14384
14635
|
[isControlled, onValueChange]
|
|
14385
14636
|
);
|
|
14386
|
-
const groupRef =
|
|
14637
|
+
const groupRef = React61.useRef(null);
|
|
14387
14638
|
const mergedRef = useMergedRef3(ref, groupRef);
|
|
14388
|
-
const onKeyDown =
|
|
14639
|
+
const onKeyDown = React61.useCallback(
|
|
14389
14640
|
(e) => {
|
|
14390
14641
|
var _a, _b;
|
|
14391
14642
|
if (disabled) return;
|
|
@@ -14409,7 +14660,7 @@ var RadioGroupComponent = React59.forwardRef(
|
|
|
14409
14660
|
},
|
|
14410
14661
|
[disabled, handleValueChange]
|
|
14411
14662
|
);
|
|
14412
|
-
const contextValue =
|
|
14663
|
+
const contextValue = React61.useMemo(
|
|
14413
14664
|
() => ({
|
|
14414
14665
|
name,
|
|
14415
14666
|
selectedValue,
|
|
@@ -14444,7 +14695,7 @@ var RadioGroupComponent = React59.forwardRef(
|
|
|
14444
14695
|
}
|
|
14445
14696
|
);
|
|
14446
14697
|
RadioGroupComponent.displayName = "RadioGroup";
|
|
14447
|
-
var RadioGroup =
|
|
14698
|
+
var RadioGroup = React61.memo(RadioGroupComponent);
|
|
14448
14699
|
|
|
14449
14700
|
// src/ui/switch/switch.tokens.ts
|
|
14450
14701
|
var SwitchTokens = {
|
|
@@ -14536,7 +14787,7 @@ function isIconVisible(thumbContent, icons, showOnlySelectedIcon, checked) {
|
|
|
14536
14787
|
if (icons) return true;
|
|
14537
14788
|
return showOnlySelectedIcon && checked;
|
|
14538
14789
|
}
|
|
14539
|
-
var SwitchVisual =
|
|
14790
|
+
var SwitchVisual = React61.memo(function SwitchVisual2({
|
|
14540
14791
|
checked,
|
|
14541
14792
|
disabled,
|
|
14542
14793
|
isPressed,
|
|
@@ -14656,7 +14907,7 @@ var SwitchVisual = React59.memo(function SwitchVisual2({
|
|
|
14656
14907
|
}
|
|
14657
14908
|
);
|
|
14658
14909
|
});
|
|
14659
|
-
var SwitchComponent =
|
|
14910
|
+
var SwitchComponent = React61.forwardRef(
|
|
14660
14911
|
({
|
|
14661
14912
|
checked,
|
|
14662
14913
|
onCheckedChange,
|
|
@@ -14674,16 +14925,16 @@ var SwitchComponent = React59.forwardRef(
|
|
|
14674
14925
|
}, ref) => {
|
|
14675
14926
|
var _a;
|
|
14676
14927
|
const prefersReduced = (_a = useReducedMotion()) != null ? _a : false;
|
|
14677
|
-
const [isPressed, setIsPressed] =
|
|
14678
|
-
const [isHovered, setIsHovered] =
|
|
14679
|
-
const [isFocused, setIsFocused] =
|
|
14680
|
-
const [ripples, setRipples] =
|
|
14681
|
-
const generatedId =
|
|
14928
|
+
const [isPressed, setIsPressed] = React61.useState(false);
|
|
14929
|
+
const [isHovered, setIsHovered] = React61.useState(false);
|
|
14930
|
+
const [isFocused, setIsFocused] = React61.useState(false);
|
|
14931
|
+
const [ripples, setRipples] = React61.useState([]);
|
|
14932
|
+
const generatedId = React61.useId();
|
|
14682
14933
|
const switchId = label ? `switch-${generatedId}` : void 0;
|
|
14683
|
-
const handleClick =
|
|
14934
|
+
const handleClick = React61.useCallback(() => {
|
|
14684
14935
|
if (!disabled) onCheckedChange(!checked);
|
|
14685
14936
|
}, [disabled, checked, onCheckedChange]);
|
|
14686
|
-
const handleKeyDown =
|
|
14937
|
+
const handleKeyDown = React61.useCallback(
|
|
14687
14938
|
(e) => {
|
|
14688
14939
|
if (disabled) return;
|
|
14689
14940
|
if (e.key === " " || e.key === "Enter") {
|
|
@@ -14693,7 +14944,7 @@ var SwitchComponent = React59.forwardRef(
|
|
|
14693
14944
|
},
|
|
14694
14945
|
[disabled, checked, onCheckedChange]
|
|
14695
14946
|
);
|
|
14696
|
-
const handlePointerDown =
|
|
14947
|
+
const handlePointerDown = React61.useCallback(
|
|
14697
14948
|
(e) => {
|
|
14698
14949
|
if (disabled) return;
|
|
14699
14950
|
setIsPressed(true);
|
|
@@ -14708,19 +14959,19 @@ var SwitchComponent = React59.forwardRef(
|
|
|
14708
14959
|
},
|
|
14709
14960
|
[disabled]
|
|
14710
14961
|
);
|
|
14711
|
-
const handlePointerUp =
|
|
14962
|
+
const handlePointerUp = React61.useCallback(() => {
|
|
14712
14963
|
setIsPressed(false);
|
|
14713
14964
|
}, []);
|
|
14714
|
-
const handlePointerEnter =
|
|
14965
|
+
const handlePointerEnter = React61.useCallback(() => {
|
|
14715
14966
|
if (!disabled) setIsHovered(true);
|
|
14716
14967
|
}, [disabled]);
|
|
14717
|
-
const handlePointerLeave =
|
|
14968
|
+
const handlePointerLeave = React61.useCallback(() => {
|
|
14718
14969
|
setIsHovered(false);
|
|
14719
14970
|
setIsPressed(false);
|
|
14720
14971
|
}, []);
|
|
14721
|
-
const handleFocus =
|
|
14722
|
-
const handleBlur =
|
|
14723
|
-
const removeRipple =
|
|
14972
|
+
const handleFocus = React61.useCallback(() => setIsFocused(true), []);
|
|
14973
|
+
const handleBlur = React61.useCallback(() => setIsFocused(false), []);
|
|
14974
|
+
const removeRipple = React61.useCallback(
|
|
14724
14975
|
(id) => setRipples((prev) => prev.filter((r) => r.id !== id)),
|
|
14725
14976
|
[]
|
|
14726
14977
|
);
|
|
@@ -14805,7 +15056,7 @@ var SwitchComponent = React59.forwardRef(
|
|
|
14805
15056
|
}
|
|
14806
15057
|
);
|
|
14807
15058
|
SwitchComponent.displayName = "Switch";
|
|
14808
|
-
var Switch =
|
|
15059
|
+
var Switch = React61.memo(SwitchComponent);
|
|
14809
15060
|
|
|
14810
15061
|
// src/ui/lists/list-utils.ts
|
|
14811
15062
|
function getListItemHeight(hasOverline, supportingTextLines) {
|
|
@@ -14945,7 +15196,7 @@ function renderSwitchTrailing({
|
|
|
14945
15196
|
trailingClass
|
|
14946
15197
|
}) {
|
|
14947
15198
|
const isSelectingMode = selectionMode === "single-select" || selectionMode === "multi-select";
|
|
14948
|
-
const switchElement =
|
|
15199
|
+
const switchElement = React61.isValidElement(trailingContent) ? (() => {
|
|
14949
15200
|
const trailingProps = trailingContent.props;
|
|
14950
15201
|
const checkedValue = !isSelectingMode && trailingProps.checked !== void 0 ? trailingProps.checked : isSelected;
|
|
14951
15202
|
const disabledValue = trailingProps.disabled !== void 0 ? disabled || trailingProps.disabled : disabled;
|
|
@@ -14956,7 +15207,7 @@ function renderSwitchTrailing({
|
|
|
14956
15207
|
onItemChange(value, checked);
|
|
14957
15208
|
}
|
|
14958
15209
|
};
|
|
14959
|
-
return
|
|
15210
|
+
return React61.cloneElement(
|
|
14960
15211
|
trailingContent,
|
|
14961
15212
|
{ checked: checkedValue, disabled: disabledValue, onCheckedChange }
|
|
14962
15213
|
);
|
|
@@ -14981,7 +15232,7 @@ function renderSwitchTrailing({
|
|
|
14981
15232
|
)
|
|
14982
15233
|
);
|
|
14983
15234
|
}
|
|
14984
|
-
var ListItemImpl =
|
|
15235
|
+
var ListItemImpl = React61.forwardRef(
|
|
14985
15236
|
(_a, ref) => {
|
|
14986
15237
|
var _b = _a, {
|
|
14987
15238
|
className,
|
|
@@ -15037,9 +15288,9 @@ var ListItemImpl = React59.forwardRef(
|
|
|
15037
15288
|
});
|
|
15038
15289
|
const reorderable = (_e = context == null ? void 0 : context.reorderable) != null ? _e : false;
|
|
15039
15290
|
const isSelected = selected !== void 0 ? selected : (_f = context == null ? void 0 : context.selectedValues.has(value)) != null ? _f : false;
|
|
15040
|
-
const [isHovered, setIsHovered] =
|
|
15041
|
-
const [isFocused, setIsFocused] =
|
|
15042
|
-
const [isPressed, setIsPressed] =
|
|
15291
|
+
const [isHovered, setIsHovered] = React61.useState(false);
|
|
15292
|
+
const [isFocused, setIsFocused] = React61.useState(false);
|
|
15293
|
+
const [isPressed, setIsPressed] = React61.useState(false);
|
|
15043
15294
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
15044
15295
|
disabled
|
|
15045
15296
|
});
|
|
@@ -15051,8 +15302,8 @@ var ListItemImpl = React59.forwardRef(
|
|
|
15051
15302
|
transition,
|
|
15052
15303
|
isDragging
|
|
15053
15304
|
} = useSortable({ id: value, disabled: !reorderable });
|
|
15054
|
-
const itemRef =
|
|
15055
|
-
const setRefs =
|
|
15305
|
+
const itemRef = React61.useRef(null);
|
|
15306
|
+
const setRefs = React61.useCallback(
|
|
15056
15307
|
(node) => {
|
|
15057
15308
|
itemRef.current = node;
|
|
15058
15309
|
setNodeRef(node);
|
|
@@ -15505,12 +15756,12 @@ var ListItemImpl = React59.forwardRef(
|
|
|
15505
15756
|
}
|
|
15506
15757
|
);
|
|
15507
15758
|
ListItemImpl.displayName = "ListItem";
|
|
15508
|
-
var ListItem =
|
|
15509
|
-
var NavigationBarContext =
|
|
15759
|
+
var ListItem = React61.memo(ListItemImpl);
|
|
15760
|
+
var NavigationBarContext = React61.createContext({ variant: "flexible" });
|
|
15510
15761
|
function cloneIconWithFill(icon, selected) {
|
|
15511
|
-
if (!
|
|
15762
|
+
if (!React61.isValidElement(icon)) return icon;
|
|
15512
15763
|
if (icon.type === Icon) {
|
|
15513
|
-
return
|
|
15764
|
+
return React61.cloneElement(
|
|
15514
15765
|
icon,
|
|
15515
15766
|
{ fill: selected ? 1 : 0, animateFill: true }
|
|
15516
15767
|
);
|
|
@@ -15518,7 +15769,7 @@ function cloneIconWithFill(icon, selected) {
|
|
|
15518
15769
|
return icon;
|
|
15519
15770
|
}
|
|
15520
15771
|
function ActivePill() {
|
|
15521
|
-
const { activeIndicatorTransition } =
|
|
15772
|
+
const { activeIndicatorTransition } = React61.useContext(NavigationBarContext);
|
|
15522
15773
|
return /* @__PURE__ */ jsx(
|
|
15523
15774
|
m.div,
|
|
15524
15775
|
{
|
|
@@ -15556,7 +15807,7 @@ function IconContainer({ selected, badge, children }) {
|
|
|
15556
15807
|
}
|
|
15557
15808
|
);
|
|
15558
15809
|
}
|
|
15559
|
-
var NavigationBarItemComponent =
|
|
15810
|
+
var NavigationBarItemComponent = React61.forwardRef(
|
|
15560
15811
|
({
|
|
15561
15812
|
selected,
|
|
15562
15813
|
icon,
|
|
@@ -15567,13 +15818,17 @@ var NavigationBarItemComponent = React59.forwardRef(
|
|
|
15567
15818
|
className,
|
|
15568
15819
|
"aria-label": ariaLabelProp
|
|
15569
15820
|
}, ref) => {
|
|
15570
|
-
const {
|
|
15821
|
+
const {
|
|
15822
|
+
variant,
|
|
15823
|
+
itemLayout,
|
|
15824
|
+
itemClassName: contextItemClassName
|
|
15825
|
+
} = React61.useContext(NavigationBarContext);
|
|
15571
15826
|
const isForcedHorizontal = itemLayout === "horizontal";
|
|
15572
15827
|
const isResponsiveHorizontal = (variant === "flexible" || variant === "xr") && itemLayout === void 0;
|
|
15573
15828
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
15574
15829
|
disabled
|
|
15575
15830
|
});
|
|
15576
|
-
const handleClick =
|
|
15831
|
+
const handleClick = React61.useCallback(
|
|
15577
15832
|
(e) => {
|
|
15578
15833
|
if (disabled) {
|
|
15579
15834
|
e.preventDefault();
|
|
@@ -15684,7 +15939,7 @@ var NavigationBarItemComponent = React59.forwardRef(
|
|
|
15684
15939
|
}
|
|
15685
15940
|
);
|
|
15686
15941
|
NavigationBarItemComponent.displayName = "NavigationBarItem";
|
|
15687
|
-
var NavigationBarItem =
|
|
15942
|
+
var NavigationBarItem = React61.memo(NavigationBarItemComponent);
|
|
15688
15943
|
var navContainerVariants = cva(
|
|
15689
15944
|
"flex items-center justify-center select-none transition-transform duration-300 z-50",
|
|
15690
15945
|
{
|
|
@@ -15710,7 +15965,7 @@ var navContainerVariants = cva(
|
|
|
15710
15965
|
}
|
|
15711
15966
|
}
|
|
15712
15967
|
);
|
|
15713
|
-
var NavigationBarComponent =
|
|
15968
|
+
var NavigationBarComponent = React61.forwardRef(
|
|
15714
15969
|
({
|
|
15715
15970
|
variant = "flexible",
|
|
15716
15971
|
itemLayout,
|
|
@@ -15724,11 +15979,11 @@ var NavigationBarComponent = React59.forwardRef(
|
|
|
15724
15979
|
className,
|
|
15725
15980
|
style
|
|
15726
15981
|
}, ref) => {
|
|
15727
|
-
const [isVisible, setIsVisible] =
|
|
15728
|
-
const lastScrollY =
|
|
15982
|
+
const [isVisible, setIsVisible] = React61.useState(true);
|
|
15983
|
+
const lastScrollY = React61.useRef(
|
|
15729
15984
|
typeof window !== "undefined" ? window.scrollY : 0
|
|
15730
15985
|
);
|
|
15731
|
-
|
|
15986
|
+
React61.useEffect(() => {
|
|
15732
15987
|
if (typeof window === "undefined" || !hideOnScroll) {
|
|
15733
15988
|
setIsVisible(true);
|
|
15734
15989
|
return;
|
|
@@ -15771,7 +16026,12 @@ var NavigationBarComponent = React59.forwardRef(
|
|
|
15771
16026
|
return /* @__PURE__ */ jsx(LazyMotion, { features: domMax, strict: true, children: /* @__PURE__ */ jsx(
|
|
15772
16027
|
NavigationBarContext.Provider,
|
|
15773
16028
|
{
|
|
15774
|
-
value: {
|
|
16029
|
+
value: {
|
|
16030
|
+
variant,
|
|
16031
|
+
itemLayout,
|
|
16032
|
+
activeIndicatorTransition,
|
|
16033
|
+
itemClassName
|
|
16034
|
+
},
|
|
15775
16035
|
children: /* @__PURE__ */ jsx(
|
|
15776
16036
|
m.nav,
|
|
15777
16037
|
{
|
|
@@ -15804,8 +16064,8 @@ var NavigationBarComponent = React59.forwardRef(
|
|
|
15804
16064
|
}
|
|
15805
16065
|
);
|
|
15806
16066
|
NavigationBarComponent.displayName = "NavigationBar";
|
|
15807
|
-
var NavigationBar =
|
|
15808
|
-
var NavigationRailContext =
|
|
16067
|
+
var NavigationBar = React61.memo(NavigationBarComponent);
|
|
16068
|
+
var NavigationRailContext = React61.createContext({ variant: "collapsed", labelVisibility: "labeled" });
|
|
15809
16069
|
var MD3_MODAL_TRANSITION = {
|
|
15810
16070
|
type: "tween",
|
|
15811
16071
|
ease: [0.05, 0.7, 0.1, 1],
|
|
@@ -15837,9 +16097,9 @@ var railContainerVariants = cva(
|
|
|
15837
16097
|
}
|
|
15838
16098
|
);
|
|
15839
16099
|
function cloneIconWithFill2(icon, selected) {
|
|
15840
|
-
if (!
|
|
16100
|
+
if (!React61.isValidElement(icon)) return icon;
|
|
15841
16101
|
if (icon.type === Icon) {
|
|
15842
|
-
return
|
|
16102
|
+
return React61.cloneElement(
|
|
15843
16103
|
icon,
|
|
15844
16104
|
{ fill: selected ? 1 : 0, animateFill: true }
|
|
15845
16105
|
);
|
|
@@ -15862,7 +16122,7 @@ function setFocusedItem(items, index) {
|
|
|
15862
16122
|
}
|
|
15863
16123
|
}
|
|
15864
16124
|
function ActivePill2({ layoutId, disableInitial = false }) {
|
|
15865
|
-
const { activeIndicatorTransition } =
|
|
16125
|
+
const { activeIndicatorTransition } = React61.useContext(NavigationRailContext);
|
|
15866
16126
|
return /* @__PURE__ */ jsx(
|
|
15867
16127
|
m.div,
|
|
15868
16128
|
{
|
|
@@ -15898,7 +16158,7 @@ function IconContainer2({ selected, badge, children }) {
|
|
|
15898
16158
|
}
|
|
15899
16159
|
);
|
|
15900
16160
|
}
|
|
15901
|
-
var NavigationRailItemComponent =
|
|
16161
|
+
var NavigationRailItemComponent = React61.forwardRef(
|
|
15902
16162
|
({
|
|
15903
16163
|
selected,
|
|
15904
16164
|
icon,
|
|
@@ -15909,18 +16169,18 @@ var NavigationRailItemComponent = React59.forwardRef(
|
|
|
15909
16169
|
className,
|
|
15910
16170
|
"aria-label": ariaLabelProp
|
|
15911
16171
|
}, ref) => {
|
|
15912
|
-
const { variant, labelVisibility } =
|
|
16172
|
+
const { variant, labelVisibility } = React61.useContext(
|
|
15913
16173
|
NavigationRailContext
|
|
15914
16174
|
);
|
|
15915
16175
|
const isExpanded = variant === "expanded" || variant === "modal";
|
|
15916
16176
|
const isModal = variant === "modal";
|
|
15917
16177
|
const enableLayout = !isModal;
|
|
15918
|
-
const activePillId = `rail-pill-${
|
|
16178
|
+
const activePillId = `rail-pill-${React61.useId()}`;
|
|
15919
16179
|
const { ripples, onPointerDown, removeRipple } = useRippleState({
|
|
15920
16180
|
disabled
|
|
15921
16181
|
});
|
|
15922
16182
|
const showLabel = isExpanded || labelVisibility === "labeled" || labelVisibility === "auto" && selected;
|
|
15923
|
-
const handleClick =
|
|
16183
|
+
const handleClick = React61.useCallback(
|
|
15924
16184
|
(e) => {
|
|
15925
16185
|
if (disabled) {
|
|
15926
16186
|
e.preventDefault();
|
|
@@ -16022,9 +16282,9 @@ var NavigationRailItemComponent = React59.forwardRef(
|
|
|
16022
16282
|
}
|
|
16023
16283
|
);
|
|
16024
16284
|
NavigationRailItemComponent.displayName = "NavigationRailItem";
|
|
16025
|
-
var NavigationRailItem =
|
|
16285
|
+
var NavigationRailItem = React61.memo(NavigationRailItemComponent);
|
|
16026
16286
|
function useRoving(navRef) {
|
|
16027
|
-
|
|
16287
|
+
React61.useEffect(() => {
|
|
16028
16288
|
if (!navRef.current) return;
|
|
16029
16289
|
const items = getMenuItems(navRef.current);
|
|
16030
16290
|
const selected = items.find(
|
|
@@ -16034,7 +16294,7 @@ function useRoving(navRef) {
|
|
|
16034
16294
|
const firstFocusable = selected != null ? selected : items[0];
|
|
16035
16295
|
if (firstFocusable) firstFocusable.tabIndex = 0;
|
|
16036
16296
|
}, [navRef]);
|
|
16037
|
-
return
|
|
16297
|
+
return React61.useCallback(
|
|
16038
16298
|
(e) => {
|
|
16039
16299
|
if (!navRef.current) return;
|
|
16040
16300
|
const items = getMenuItems(navRef.current);
|
|
@@ -16062,7 +16322,7 @@ function useRoving(navRef) {
|
|
|
16062
16322
|
[navRef]
|
|
16063
16323
|
);
|
|
16064
16324
|
}
|
|
16065
|
-
var NavigationRailComponent =
|
|
16325
|
+
var NavigationRailComponent = React61.forwardRef(
|
|
16066
16326
|
({
|
|
16067
16327
|
variant = "collapsed",
|
|
16068
16328
|
labelVisibility = "labeled",
|
|
@@ -16082,9 +16342,9 @@ var NavigationRailComponent = React59.forwardRef(
|
|
|
16082
16342
|
const isXr = variant === "xr";
|
|
16083
16343
|
const isSpatial = isXr && fabPlacement === "spatialized";
|
|
16084
16344
|
const applyAnimation = !isXr || !isSpatial;
|
|
16085
|
-
const navRef =
|
|
16345
|
+
const navRef = React61.useRef(null);
|
|
16086
16346
|
const handleKeyDown = useRoving(navRef);
|
|
16087
|
-
const setRefs =
|
|
16347
|
+
const setRefs = React61.useCallback(
|
|
16088
16348
|
(node) => {
|
|
16089
16349
|
navRef.current = node;
|
|
16090
16350
|
if (typeof ref === "function") ref(node);
|
|
@@ -16175,7 +16435,7 @@ var NavigationRailComponent = React59.forwardRef(
|
|
|
16175
16435
|
children: fab
|
|
16176
16436
|
}
|
|
16177
16437
|
),
|
|
16178
|
-
|
|
16438
|
+
React61.cloneElement(
|
|
16179
16439
|
navElement,
|
|
16180
16440
|
{
|
|
16181
16441
|
className: cn(navBaseClasses, "pointer-events-auto")
|
|
@@ -16217,7 +16477,7 @@ var NavigationRailComponent = React59.forwardRef(
|
|
|
16217
16477
|
}
|
|
16218
16478
|
);
|
|
16219
16479
|
NavigationRailComponent.displayName = "NavigationRail";
|
|
16220
|
-
var NavigationRail =
|
|
16480
|
+
var NavigationRail = React61.memo(NavigationRailComponent);
|
|
16221
16481
|
function useSearchKeyboard({
|
|
16222
16482
|
active,
|
|
16223
16483
|
onActiveChange,
|
|
@@ -16226,14 +16486,14 @@ function useSearchKeyboard({
|
|
|
16226
16486
|
itemCount,
|
|
16227
16487
|
onSelectSuggestion
|
|
16228
16488
|
}) {
|
|
16229
|
-
const [activeIndex, setActiveIndex] =
|
|
16230
|
-
const resetKeyRef =
|
|
16489
|
+
const [activeIndex, setActiveIndex] = React61.useState(-1);
|
|
16490
|
+
const resetKeyRef = React61.useRef(`${active}:${query}`);
|
|
16231
16491
|
const currentKey = `${active}:${query}`;
|
|
16232
16492
|
if (resetKeyRef.current !== currentKey) {
|
|
16233
16493
|
resetKeyRef.current = currentKey;
|
|
16234
16494
|
setActiveIndex(-1);
|
|
16235
16495
|
}
|
|
16236
|
-
const handleKeyDown =
|
|
16496
|
+
const handleKeyDown = React61.useCallback(
|
|
16237
16497
|
(e) => {
|
|
16238
16498
|
if (!active) return;
|
|
16239
16499
|
switch (e.key) {
|
|
@@ -16273,7 +16533,7 @@ function useSearchKeyboard({
|
|
|
16273
16533
|
query
|
|
16274
16534
|
]
|
|
16275
16535
|
);
|
|
16276
|
-
const resetActiveIndex =
|
|
16536
|
+
const resetActiveIndex = React61.useCallback(() => {
|
|
16277
16537
|
setActiveIndex(-1);
|
|
16278
16538
|
}, []);
|
|
16279
16539
|
return { activeIndex, handleKeyDown, resetActiveIndex };
|
|
@@ -16341,10 +16601,10 @@ function AnimatedPlaceholder({
|
|
|
16341
16601
|
className
|
|
16342
16602
|
}) {
|
|
16343
16603
|
const shouldReduceMotion = useReducedMotion();
|
|
16344
|
-
const containerRef =
|
|
16345
|
-
const spanRef =
|
|
16346
|
-
const [xOffset, setXOffset] =
|
|
16347
|
-
const recalculate =
|
|
16604
|
+
const containerRef = React61.useRef(null);
|
|
16605
|
+
const spanRef = React61.useRef(null);
|
|
16606
|
+
const [xOffset, setXOffset] = React61.useState(0);
|
|
16607
|
+
const recalculate = React61.useCallback(() => {
|
|
16348
16608
|
const container = containerRef.current;
|
|
16349
16609
|
const span = spanRef.current;
|
|
16350
16610
|
if (!container || !span || textAlign === "left") {
|
|
@@ -16359,10 +16619,10 @@ function AnimatedPlaceholder({
|
|
|
16359
16619
|
setXOffset(Math.max(0, containerWidth - textWidth));
|
|
16360
16620
|
}
|
|
16361
16621
|
}, [textAlign]);
|
|
16362
|
-
|
|
16622
|
+
React61.useLayoutEffect(() => {
|
|
16363
16623
|
recalculate();
|
|
16364
16624
|
}, [recalculate]);
|
|
16365
|
-
|
|
16625
|
+
React61.useEffect(() => {
|
|
16366
16626
|
const container = containerRef.current;
|
|
16367
16627
|
if (!container) return;
|
|
16368
16628
|
const observer = new ResizeObserver(recalculate);
|
|
@@ -16431,10 +16691,10 @@ function SearchBar({
|
|
|
16431
16691
|
activeIndex
|
|
16432
16692
|
}) {
|
|
16433
16693
|
const shouldReduceMotion = useReducedMotion();
|
|
16434
|
-
const inputRef =
|
|
16435
|
-
const prevActiveRef =
|
|
16436
|
-
const isRestoringFocusRef =
|
|
16437
|
-
|
|
16694
|
+
const inputRef = React61.useRef(null);
|
|
16695
|
+
const prevActiveRef = React61.useRef(active);
|
|
16696
|
+
const isRestoringFocusRef = React61.useRef(false);
|
|
16697
|
+
React61.useEffect(() => {
|
|
16438
16698
|
var _a;
|
|
16439
16699
|
let rafId;
|
|
16440
16700
|
if (prevActiveRef.current === true && active === false) {
|
|
@@ -16553,7 +16813,7 @@ function SearchBar({
|
|
|
16553
16813
|
) })
|
|
16554
16814
|
);
|
|
16555
16815
|
}
|
|
16556
|
-
var SearchContext =
|
|
16816
|
+
var SearchContext = React61.createContext(null);
|
|
16557
16817
|
function SearchProvider({
|
|
16558
16818
|
children,
|
|
16559
16819
|
value
|
|
@@ -16561,7 +16821,7 @@ function SearchProvider({
|
|
|
16561
16821
|
return /* @__PURE__ */ jsx(SearchContext.Provider, { value, children });
|
|
16562
16822
|
}
|
|
16563
16823
|
function useSearch() {
|
|
16564
|
-
const context =
|
|
16824
|
+
const context = React61.useContext(SearchContext);
|
|
16565
16825
|
if (!context) {
|
|
16566
16826
|
return { listboxId: "", activeIndex: -1 };
|
|
16567
16827
|
}
|
|
@@ -16588,7 +16848,7 @@ function useClickOutside(handler, enabled = true) {
|
|
|
16588
16848
|
return ref;
|
|
16589
16849
|
}
|
|
16590
16850
|
function useSearchViewFocus(inputRef, active) {
|
|
16591
|
-
|
|
16851
|
+
React61.useEffect(() => {
|
|
16592
16852
|
if (!active) return;
|
|
16593
16853
|
let raf2;
|
|
16594
16854
|
const raf1 = requestAnimationFrame(() => {
|
|
@@ -16662,7 +16922,7 @@ function SearchViewDocked({
|
|
|
16662
16922
|
activeIndex
|
|
16663
16923
|
}) {
|
|
16664
16924
|
const shouldReduceMotion = useReducedMotion();
|
|
16665
|
-
const inputRef =
|
|
16925
|
+
const inputRef = React61.useRef(null);
|
|
16666
16926
|
useSearchViewFocus(inputRef, active);
|
|
16667
16927
|
const dropdownRef = useClickOutside(() => {
|
|
16668
16928
|
onActiveChange(false);
|
|
@@ -16808,10 +17068,10 @@ function SearchViewFullScreen({
|
|
|
16808
17068
|
activeIndex
|
|
16809
17069
|
}) {
|
|
16810
17070
|
const shouldReduceMotion = useReducedMotion();
|
|
16811
|
-
const inputRef =
|
|
17071
|
+
const inputRef = React61.useRef(null);
|
|
16812
17072
|
useSearchViewFocus(inputRef, active);
|
|
16813
|
-
const [mounted, setMounted] =
|
|
16814
|
-
|
|
17073
|
+
const [mounted, setMounted] = React61.useState(false);
|
|
17074
|
+
React61.useEffect(() => {
|
|
16815
17075
|
setMounted(true);
|
|
16816
17076
|
}, []);
|
|
16817
17077
|
const handleFormSubmit = (e) => {
|
|
@@ -16969,10 +17229,10 @@ function SearchComponent({
|
|
|
16969
17229
|
className,
|
|
16970
17230
|
viewClassName
|
|
16971
17231
|
}) {
|
|
16972
|
-
const generatedId =
|
|
17232
|
+
const generatedId = React61.useId();
|
|
16973
17233
|
const searchId = id != null ? id : generatedId;
|
|
16974
17234
|
const listboxId = `${searchId}-listbox`;
|
|
16975
|
-
const itemCount =
|
|
17235
|
+
const itemCount = React61.Children.count(children);
|
|
16976
17236
|
const { activeIndex, handleKeyDown } = useSearchKeyboard({
|
|
16977
17237
|
active,
|
|
16978
17238
|
onActiveChange,
|
|
@@ -17347,7 +17607,7 @@ function ShapeSvg({
|
|
|
17347
17607
|
);
|
|
17348
17608
|
}
|
|
17349
17609
|
var INDICATOR = "h-1 w-8 rounded-full bg-m3-on-surface-variant/40";
|
|
17350
|
-
var DragHandle =
|
|
17610
|
+
var DragHandle = React61.forwardRef(
|
|
17351
17611
|
({ className, onCycle, "aria-label": ariaLabel }, ref) => {
|
|
17352
17612
|
const isInteractive = Boolean(onCycle);
|
|
17353
17613
|
if (isInteractive) {
|
|
@@ -17900,7 +18160,7 @@ function resolveMaxHeight(maxHeight, snapPoints) {
|
|
|
17900
18160
|
return ABSOLUTE_MAX_HEIGHT;
|
|
17901
18161
|
return maxHeight;
|
|
17902
18162
|
}
|
|
17903
|
-
var BottomSheet =
|
|
18163
|
+
var BottomSheet = React61.forwardRef(
|
|
17904
18164
|
({
|
|
17905
18165
|
isOpen,
|
|
17906
18166
|
onClose,
|
|
@@ -17933,27 +18193,27 @@ var BottomSheet = React59.forwardRef(
|
|
|
17933
18193
|
isModal: false,
|
|
17934
18194
|
maxHeight: resolveMaxHeight(maxHeight, snapPoints)
|
|
17935
18195
|
});
|
|
17936
|
-
|
|
18196
|
+
React61.useEffect(() => {
|
|
17937
18197
|
const node = scope.current;
|
|
17938
18198
|
if (node) {
|
|
17939
18199
|
node.snapTo = snapTo;
|
|
17940
18200
|
}
|
|
17941
18201
|
}, [snapTo, scope]);
|
|
17942
|
-
const [mounted, setMounted] =
|
|
17943
|
-
|
|
18202
|
+
const [mounted, setMounted] = React61.useState(false);
|
|
18203
|
+
React61.useEffect(() => {
|
|
17944
18204
|
setMounted(true);
|
|
17945
18205
|
}, []);
|
|
17946
|
-
const resolvedDividers =
|
|
18206
|
+
const resolvedDividers = React61.useMemo(
|
|
17947
18207
|
() => resolveDividers(divider),
|
|
17948
18208
|
[divider]
|
|
17949
18209
|
);
|
|
17950
|
-
const resolvedSheetMaxWidth =
|
|
18210
|
+
const resolvedSheetMaxWidth = React61.useMemo(() => {
|
|
17951
18211
|
if (sheetMaxWidth === void 0)
|
|
17952
18212
|
return "var(--m3-bottom-sheet-max-width, 640px)";
|
|
17953
18213
|
if (typeof sheetMaxWidth === "number") return `${sheetMaxWidth}px`;
|
|
17954
18214
|
return sheetMaxWidth;
|
|
17955
18215
|
}, [sheetMaxWidth]);
|
|
17956
|
-
const mergedRef =
|
|
18216
|
+
const mergedRef = React61.useCallback(
|
|
17957
18217
|
(node) => {
|
|
17958
18218
|
scope(node);
|
|
17959
18219
|
if (typeof ref === "function") ref(node);
|
|
@@ -18037,7 +18297,7 @@ var SCRIM_ANIM = {
|
|
|
18037
18297
|
},
|
|
18038
18298
|
exit: { opacity: 0, transition: { duration: 0.18, ease: "easeIn" } }
|
|
18039
18299
|
};
|
|
18040
|
-
var Scrim =
|
|
18300
|
+
var Scrim = React61.forwardRef(
|
|
18041
18301
|
({ onClick, className, style }, ref) => /* @__PURE__ */ jsx(
|
|
18042
18302
|
m.div,
|
|
18043
18303
|
__spreadValues({
|
|
@@ -18069,7 +18329,7 @@ function resolveSheetMaxWidth(value) {
|
|
|
18069
18329
|
if (typeof value === "number") return `${value}px`;
|
|
18070
18330
|
return value;
|
|
18071
18331
|
}
|
|
18072
|
-
var BottomSheetModal =
|
|
18332
|
+
var BottomSheetModal = React61.forwardRef(
|
|
18073
18333
|
({
|
|
18074
18334
|
isOpen,
|
|
18075
18335
|
onClose,
|
|
@@ -18108,21 +18368,21 @@ var BottomSheetModal = React59.forwardRef(
|
|
|
18108
18368
|
isModal: true,
|
|
18109
18369
|
maxHeight: resolveMaxHeight2(maxHeight, snapPoints)
|
|
18110
18370
|
});
|
|
18111
|
-
|
|
18371
|
+
React61.useEffect(() => {
|
|
18112
18372
|
const node = scope.current;
|
|
18113
18373
|
if (node) {
|
|
18114
18374
|
node.snapTo = snapTo;
|
|
18115
18375
|
}
|
|
18116
18376
|
}, [snapTo, scope]);
|
|
18117
|
-
const resolvedDividers =
|
|
18377
|
+
const resolvedDividers = React61.useMemo(
|
|
18118
18378
|
() => resolveDividers(divider),
|
|
18119
18379
|
[divider]
|
|
18120
18380
|
);
|
|
18121
|
-
const resolvedSheetMaxWidth =
|
|
18381
|
+
const resolvedSheetMaxWidth = React61.useMemo(
|
|
18122
18382
|
() => resolveSheetMaxWidth(sheetMaxWidth),
|
|
18123
18383
|
[sheetMaxWidth]
|
|
18124
18384
|
);
|
|
18125
|
-
const mergedRef =
|
|
18385
|
+
const mergedRef = React61.useCallback(
|
|
18126
18386
|
(node) => {
|
|
18127
18387
|
scope(node);
|
|
18128
18388
|
if (typeof ref === "function") ref(node);
|
|
@@ -18213,7 +18473,7 @@ var BottomSheetModal = React59.forwardRef(
|
|
|
18213
18473
|
);
|
|
18214
18474
|
BottomSheetModal.displayName = "BottomSheetModal";
|
|
18215
18475
|
var COPLANAR_TRANSITION = `margin ${getMotionTransitionCSS("default", "spatial")}`;
|
|
18216
|
-
var SideSheet =
|
|
18476
|
+
var SideSheet = React61.forwardRef(
|
|
18217
18477
|
({
|
|
18218
18478
|
isOpen,
|
|
18219
18479
|
children,
|
|
@@ -18229,16 +18489,16 @@ var SideSheet = React59.forwardRef(
|
|
|
18229
18489
|
divider,
|
|
18230
18490
|
scrollAreaProps
|
|
18231
18491
|
}, ref) => {
|
|
18232
|
-
const sheetAnim =
|
|
18233
|
-
const [mounted, setMounted] =
|
|
18234
|
-
|
|
18492
|
+
const sheetAnim = React61.useMemo(() => buildSideSheetAnim(edge), [edge]);
|
|
18493
|
+
const [mounted, setMounted] = React61.useState(false);
|
|
18494
|
+
React61.useEffect(() => {
|
|
18235
18495
|
setMounted(true);
|
|
18236
18496
|
}, []);
|
|
18237
|
-
const resolvedDividers =
|
|
18497
|
+
const resolvedDividers = React61.useMemo(
|
|
18238
18498
|
() => resolveDividers(divider),
|
|
18239
18499
|
[divider]
|
|
18240
18500
|
);
|
|
18241
|
-
|
|
18501
|
+
React61.useEffect(() => {
|
|
18242
18502
|
const sibling = coplanarSiblingRef == null ? void 0 : coplanarSiblingRef.current;
|
|
18243
18503
|
if (!sibling) return;
|
|
18244
18504
|
sibling.style.transition = COPLANAR_TRANSITION;
|
|
@@ -18302,7 +18562,7 @@ var SideSheet = React59.forwardRef(
|
|
|
18302
18562
|
}
|
|
18303
18563
|
);
|
|
18304
18564
|
SideSheet.displayName = "SideSheet";
|
|
18305
|
-
var SideSheetModal =
|
|
18565
|
+
var SideSheetModal = React61.forwardRef(
|
|
18306
18566
|
({
|
|
18307
18567
|
isOpen,
|
|
18308
18568
|
onClose,
|
|
@@ -18317,8 +18577,8 @@ var SideSheetModal = React59.forwardRef(
|
|
|
18317
18577
|
divider,
|
|
18318
18578
|
scrollAreaProps
|
|
18319
18579
|
}, ref) => {
|
|
18320
|
-
const sheetAnim =
|
|
18321
|
-
const resolvedDividers =
|
|
18580
|
+
const sheetAnim = React61.useMemo(() => buildSideSheetAnim(edge), [edge]);
|
|
18581
|
+
const resolvedDividers = React61.useMemo(
|
|
18322
18582
|
() => resolveDividers(divider),
|
|
18323
18583
|
[divider]
|
|
18324
18584
|
);
|
|
@@ -18577,7 +18837,7 @@ var SLIDER_INDICATOR_TRANSITION = {
|
|
|
18577
18837
|
stiffness: 450,
|
|
18578
18838
|
damping: 32
|
|
18579
18839
|
};
|
|
18580
|
-
var ValueIndicator =
|
|
18840
|
+
var ValueIndicator = React61.memo(function ValueIndicator2({
|
|
18581
18841
|
value,
|
|
18582
18842
|
visible,
|
|
18583
18843
|
orientation,
|
|
@@ -18624,7 +18884,7 @@ var ValueIndicator = React59.memo(function ValueIndicator2({
|
|
|
18624
18884
|
"value-indicator"
|
|
18625
18885
|
) });
|
|
18626
18886
|
});
|
|
18627
|
-
var SliderThumb =
|
|
18887
|
+
var SliderThumb = React61.memo(function SliderThumb2({
|
|
18628
18888
|
value,
|
|
18629
18889
|
percent,
|
|
18630
18890
|
min,
|
|
@@ -18656,11 +18916,11 @@ var SliderThumb = React59.memo(function SliderThumb2({
|
|
|
18656
18916
|
[posTarget]: `calc(${trackInset}px + ${percent} * (100% - ${trackInset * 2}px))`
|
|
18657
18917
|
};
|
|
18658
18918
|
const prefersReduced = (_a = useReducedMotion()) != null ? _a : false;
|
|
18659
|
-
const [isDragging, setIsDragging] =
|
|
18660
|
-
const [isHovered, setIsHovered] =
|
|
18661
|
-
const [isFocused, setIsFocused] =
|
|
18662
|
-
const pointerIdRef =
|
|
18663
|
-
const thumbRef =
|
|
18919
|
+
const [isDragging, setIsDragging] = React61.useState(false);
|
|
18920
|
+
const [isHovered, setIsHovered] = React61.useState(false);
|
|
18921
|
+
const [isFocused, setIsFocused] = React61.useState(false);
|
|
18922
|
+
const pointerIdRef = React61.useRef(null);
|
|
18923
|
+
const thumbRef = React61.useRef(null);
|
|
18664
18924
|
const showIndicator = showValueIndicator && (isDragging || isHovered || isFocused);
|
|
18665
18925
|
const positionStyle = isHorizontal ? __spreadProps(__spreadValues({
|
|
18666
18926
|
position: "absolute"
|
|
@@ -18675,7 +18935,7 @@ var SliderThumb = React59.memo(function SliderThumb2({
|
|
|
18675
18935
|
transform: "translate(-50%, 50%)",
|
|
18676
18936
|
zIndex
|
|
18677
18937
|
});
|
|
18678
|
-
const getDeltaFromPointer =
|
|
18938
|
+
const getDeltaFromPointer = React61.useCallback(
|
|
18679
18939
|
(e) => {
|
|
18680
18940
|
const trackEl = trackRef.current;
|
|
18681
18941
|
if (!trackEl) return percent;
|
|
@@ -18702,7 +18962,7 @@ var SliderThumb = React59.memo(function SliderThumb2({
|
|
|
18702
18962
|
},
|
|
18703
18963
|
[isHorizontal, max, min, percent, step, trackRef, trackSize]
|
|
18704
18964
|
);
|
|
18705
|
-
const handlePointerDown =
|
|
18965
|
+
const handlePointerDown = React61.useCallback(
|
|
18706
18966
|
(e) => {
|
|
18707
18967
|
if (disabled) return;
|
|
18708
18968
|
e.preventDefault();
|
|
@@ -18713,7 +18973,7 @@ var SliderThumb = React59.memo(function SliderThumb2({
|
|
|
18713
18973
|
},
|
|
18714
18974
|
[disabled]
|
|
18715
18975
|
);
|
|
18716
|
-
const handlePointerMove =
|
|
18976
|
+
const handlePointerMove = React61.useCallback(
|
|
18717
18977
|
(e) => {
|
|
18718
18978
|
if (!isDragging || e.pointerId !== pointerIdRef.current) return;
|
|
18719
18979
|
const newValue = getDeltaFromPointer(e.nativeEvent);
|
|
@@ -18721,7 +18981,7 @@ var SliderThumb = React59.memo(function SliderThumb2({
|
|
|
18721
18981
|
},
|
|
18722
18982
|
[isDragging, getDeltaFromPointer, onValueChange]
|
|
18723
18983
|
);
|
|
18724
|
-
const handlePointerUp =
|
|
18984
|
+
const handlePointerUp = React61.useCallback(
|
|
18725
18985
|
(e) => {
|
|
18726
18986
|
if (e.pointerId !== pointerIdRef.current) return;
|
|
18727
18987
|
e.currentTarget.releasePointerCapture(e.pointerId);
|
|
@@ -18731,7 +18991,7 @@ var SliderThumb = React59.memo(function SliderThumb2({
|
|
|
18731
18991
|
},
|
|
18732
18992
|
[onValueChangeEnd, value]
|
|
18733
18993
|
);
|
|
18734
|
-
const handleKeyDown =
|
|
18994
|
+
const handleKeyDown = React61.useCallback(
|
|
18735
18995
|
(e) => {
|
|
18736
18996
|
if (disabled) return;
|
|
18737
18997
|
if (e.key === "Home") {
|
|
@@ -18835,7 +19095,7 @@ var SliderThumb = React59.memo(function SliderThumb2({
|
|
|
18835
19095
|
}
|
|
18836
19096
|
);
|
|
18837
19097
|
});
|
|
18838
|
-
var RangeTrack =
|
|
19098
|
+
var RangeTrack = React61.memo(function RangeTrack2({
|
|
18839
19099
|
startPercent,
|
|
18840
19100
|
endPercent,
|
|
18841
19101
|
trackSize,
|
|
@@ -19080,7 +19340,7 @@ var RangeTrack = React59.memo(function RangeTrack2({
|
|
|
19080
19340
|
}
|
|
19081
19341
|
);
|
|
19082
19342
|
});
|
|
19083
|
-
var RangeSliderComponent =
|
|
19343
|
+
var RangeSliderComponent = React61.forwardRef(
|
|
19084
19344
|
({
|
|
19085
19345
|
value: controlledValue,
|
|
19086
19346
|
defaultValue,
|
|
@@ -19104,7 +19364,7 @@ var RangeSliderComponent = React59.forwardRef(
|
|
|
19104
19364
|
const isHorizontal = orientation === "horizontal";
|
|
19105
19365
|
const defaultStart = (_a = defaultValue == null ? void 0 : defaultValue[0]) != null ? _a : min;
|
|
19106
19366
|
const defaultEnd = (_b = defaultValue == null ? void 0 : defaultValue[1]) != null ? _b : max;
|
|
19107
|
-
const [internalValue, setInternalValue] =
|
|
19367
|
+
const [internalValue, setInternalValue] = React61.useState([
|
|
19108
19368
|
defaultStart,
|
|
19109
19369
|
defaultEnd
|
|
19110
19370
|
]);
|
|
@@ -19118,10 +19378,10 @@ var RangeSliderComponent = React59.forwardRef(
|
|
|
19118
19378
|
const endValue = snap(coerce(resolvedValue[1]));
|
|
19119
19379
|
const startPercent = toPercent(startValue);
|
|
19120
19380
|
const endPercent = toPercent(endValue);
|
|
19121
|
-
const [topThumb, setTopThumb] =
|
|
19122
|
-
const trackRef =
|
|
19381
|
+
const [topThumb, setTopThumb] = React61.useState("end");
|
|
19382
|
+
const trackRef = React61.useRef(null);
|
|
19123
19383
|
const minGap = step > 0 ? step : (max - min) / 1e3;
|
|
19124
|
-
const handleStartChange =
|
|
19384
|
+
const handleStartChange = React61.useCallback(
|
|
19125
19385
|
(newStart) => {
|
|
19126
19386
|
setTopThumb("start");
|
|
19127
19387
|
const clamped = Math.min(newStart, endValue - minGap);
|
|
@@ -19133,7 +19393,7 @@ var RangeSliderComponent = React59.forwardRef(
|
|
|
19133
19393
|
},
|
|
19134
19394
|
[controlledValue, coerce, endValue, minGap, onValueChange, snap]
|
|
19135
19395
|
);
|
|
19136
|
-
const handleEndChange =
|
|
19396
|
+
const handleEndChange = React61.useCallback(
|
|
19137
19397
|
(newEnd) => {
|
|
19138
19398
|
setTopThumb("end");
|
|
19139
19399
|
const clamped = Math.max(newEnd, startValue + minGap);
|
|
@@ -19145,15 +19405,15 @@ var RangeSliderComponent = React59.forwardRef(
|
|
|
19145
19405
|
},
|
|
19146
19406
|
[controlledValue, coerce, minGap, onValueChange, snap, startValue]
|
|
19147
19407
|
);
|
|
19148
|
-
const handleStartChangeEnd =
|
|
19408
|
+
const handleStartChangeEnd = React61.useCallback(
|
|
19149
19409
|
(v) => onValueChangeEnd == null ? void 0 : onValueChangeEnd([v, endValue]),
|
|
19150
19410
|
[endValue, onValueChangeEnd]
|
|
19151
19411
|
);
|
|
19152
|
-
const handleEndChangeEnd =
|
|
19412
|
+
const handleEndChangeEnd = React61.useCallback(
|
|
19153
19413
|
(v) => onValueChangeEnd == null ? void 0 : onValueChangeEnd([startValue, v]),
|
|
19154
19414
|
[onValueChangeEnd, startValue]
|
|
19155
19415
|
);
|
|
19156
|
-
const handleTrackPointerDown =
|
|
19416
|
+
const handleTrackPointerDown = React61.useCallback(
|
|
19157
19417
|
(e) => {
|
|
19158
19418
|
if (disabled) return;
|
|
19159
19419
|
const trackEl = trackRef.current;
|
|
@@ -19197,7 +19457,7 @@ var RangeSliderComponent = React59.forwardRef(
|
|
|
19197
19457
|
trackSize
|
|
19198
19458
|
]
|
|
19199
19459
|
);
|
|
19200
|
-
const id =
|
|
19460
|
+
const id = React61.useId();
|
|
19201
19461
|
return /* @__PURE__ */ jsx(LazyMotion, { features: domMax, strict: true, children: /* @__PURE__ */ jsxs(
|
|
19202
19462
|
"div",
|
|
19203
19463
|
{
|
|
@@ -19277,7 +19537,7 @@ var RangeSliderComponent = React59.forwardRef(
|
|
|
19277
19537
|
}
|
|
19278
19538
|
);
|
|
19279
19539
|
RangeSliderComponent.displayName = "RangeSlider";
|
|
19280
|
-
var RangeSlider =
|
|
19540
|
+
var RangeSlider = React61.memo(RangeSliderComponent);
|
|
19281
19541
|
function getHorizontalRadius(isLeading, innerR, outerR) {
|
|
19282
19542
|
if (isLeading) {
|
|
19283
19543
|
return {
|
|
@@ -19316,7 +19576,7 @@ var allInnerRadius = (innerR) => ({
|
|
|
19316
19576
|
borderTopRightRadius: innerR,
|
|
19317
19577
|
borderBottomRightRadius: innerR
|
|
19318
19578
|
});
|
|
19319
|
-
var InsetIcon =
|
|
19579
|
+
var InsetIcon = React61.memo(function InsetIcon2({
|
|
19320
19580
|
icon,
|
|
19321
19581
|
isOnActiveSegment,
|
|
19322
19582
|
position,
|
|
@@ -19410,7 +19670,7 @@ function Ticks({
|
|
|
19410
19670
|
return /* @__PURE__ */ jsx("div", { style, "aria-hidden": "true" }, tick);
|
|
19411
19671
|
}) });
|
|
19412
19672
|
}
|
|
19413
|
-
var SliderTrack =
|
|
19673
|
+
var SliderTrack = React61.memo(function SliderTrack2({
|
|
19414
19674
|
percent,
|
|
19415
19675
|
trackSize,
|
|
19416
19676
|
orientation,
|
|
@@ -19445,8 +19705,8 @@ var SliderTrack = React59.memo(function SliderTrack2({
|
|
|
19445
19705
|
const gapWithThumbStr = `${thumbGap + thumbHalfWidth}px`;
|
|
19446
19706
|
const hasAnyInsetIcon = Boolean(insetIcon || insetIconTrailing);
|
|
19447
19707
|
const prefersReduced = (_a = useReducedMotion()) != null ? _a : false;
|
|
19448
|
-
const [trackWidth, setTrackWidth] =
|
|
19449
|
-
|
|
19708
|
+
const [trackWidth, setTrackWidth] = React61.useState(0);
|
|
19709
|
+
React61.useLayoutEffect(() => {
|
|
19450
19710
|
const el = trackRef.current;
|
|
19451
19711
|
if (!el || !hasAnyInsetIcon) return;
|
|
19452
19712
|
setTrackWidth(isHorizontal ? el.clientWidth : el.clientHeight);
|
|
@@ -19463,8 +19723,8 @@ var SliderTrack = React59.memo(function SliderTrack2({
|
|
|
19463
19723
|
const iconTotalWidth = activeIconSize + SliderTokens.insetIconPadding * 2 + thumbGap + thumbHalfWidth;
|
|
19464
19724
|
const iconThreshold = trackWidth > 0 ? iconTotalWidth / trackWidth : 0.15;
|
|
19465
19725
|
const HYSTERESIS_GAP = 0.04;
|
|
19466
|
-
const trailingActiveRef =
|
|
19467
|
-
const leadingActiveRef =
|
|
19726
|
+
const trailingActiveRef = React61.useRef(1 - percent <= iconThreshold);
|
|
19727
|
+
const leadingActiveRef = React61.useRef(percent > iconThreshold);
|
|
19468
19728
|
const trailingPercent = 1 - percent;
|
|
19469
19729
|
if (trailingActiveRef.current) {
|
|
19470
19730
|
if (trailingPercent > iconThreshold + HYSTERESIS_GAP) {
|
|
@@ -19971,7 +20231,7 @@ var SliderTrack = React59.memo(function SliderTrack2({
|
|
|
19971
20231
|
}
|
|
19972
20232
|
);
|
|
19973
20233
|
});
|
|
19974
|
-
var SliderComponent =
|
|
20234
|
+
var SliderComponent = React61.forwardRef(
|
|
19975
20235
|
({
|
|
19976
20236
|
value: controlledValue,
|
|
19977
20237
|
defaultValue,
|
|
@@ -20000,7 +20260,7 @@ var SliderComponent = React59.forwardRef(
|
|
|
20000
20260
|
const isHorizontal = orientation === "horizontal";
|
|
20001
20261
|
const midpoint = min + (max - min) / 2;
|
|
20002
20262
|
const initialValue = defaultValue != null ? defaultValue : midpoint;
|
|
20003
|
-
const [internalValue, setInternalValue] =
|
|
20263
|
+
const [internalValue, setInternalValue] = React61.useState(initialValue);
|
|
20004
20264
|
const resolvedValue = controlledValue !== void 0 ? controlledValue : internalValue;
|
|
20005
20265
|
const { coerce, snap, toPercent, ticks } = useSliderMath({
|
|
20006
20266
|
min,
|
|
@@ -20009,8 +20269,8 @@ var SliderComponent = React59.forwardRef(
|
|
|
20009
20269
|
});
|
|
20010
20270
|
const safeValue = snap(coerce(resolvedValue));
|
|
20011
20271
|
const percent = toPercent(safeValue);
|
|
20012
|
-
const trackRef =
|
|
20013
|
-
const handleValueChange =
|
|
20272
|
+
const trackRef = React61.useRef(null);
|
|
20273
|
+
const handleValueChange = React61.useCallback(
|
|
20014
20274
|
(newValue) => {
|
|
20015
20275
|
const clamped = snap(coerce(newValue));
|
|
20016
20276
|
if (controlledValue === void 0) {
|
|
@@ -20020,13 +20280,13 @@ var SliderComponent = React59.forwardRef(
|
|
|
20020
20280
|
},
|
|
20021
20281
|
[coerce, controlledValue, onValueChange, snap]
|
|
20022
20282
|
);
|
|
20023
|
-
const handleValueChangeEnd =
|
|
20283
|
+
const handleValueChangeEnd = React61.useCallback(
|
|
20024
20284
|
(newValue) => {
|
|
20025
20285
|
onValueChangeEnd == null ? void 0 : onValueChangeEnd(snap(coerce(newValue)));
|
|
20026
20286
|
},
|
|
20027
20287
|
[coerce, onValueChangeEnd, snap]
|
|
20028
20288
|
);
|
|
20029
|
-
const handleTrackPointerDown =
|
|
20289
|
+
const handleTrackPointerDown = React61.useCallback(
|
|
20030
20290
|
(e) => {
|
|
20031
20291
|
if (disabled) return;
|
|
20032
20292
|
const trackEl = trackRef.current;
|
|
@@ -20061,7 +20321,7 @@ var SliderComponent = React59.forwardRef(
|
|
|
20061
20321
|
trackSize
|
|
20062
20322
|
]
|
|
20063
20323
|
);
|
|
20064
|
-
const id =
|
|
20324
|
+
const id = React61.useId();
|
|
20065
20325
|
const thumbId = `slider-thumb-${id}`;
|
|
20066
20326
|
const supportsInsetIcon = !isCentered && SliderTokens.trackSizes[trackSize] >= 40;
|
|
20067
20327
|
const hasAnyInsetIcon = !!(insetIcon || insetIconTrailing);
|
|
@@ -20133,7 +20393,7 @@ var SliderComponent = React59.forwardRef(
|
|
|
20133
20393
|
}
|
|
20134
20394
|
);
|
|
20135
20395
|
SliderComponent.displayName = "Slider";
|
|
20136
|
-
var Slider =
|
|
20396
|
+
var Slider = React61.memo(SliderComponent);
|
|
20137
20397
|
var DURATION_MAP = {
|
|
20138
20398
|
short: 4e3,
|
|
20139
20399
|
long: 7e3
|
|
@@ -20175,9 +20435,9 @@ function toSnackbarData(item) {
|
|
|
20175
20435
|
return { id: generateId(), visuals: item.visuals, resolve: item.resolve };
|
|
20176
20436
|
}
|
|
20177
20437
|
function useSnackbarState() {
|
|
20178
|
-
const [current, setCurrent] =
|
|
20179
|
-
const queueRef =
|
|
20180
|
-
const showSnackbar =
|
|
20438
|
+
const [current, setCurrent] = React61.useState(null);
|
|
20439
|
+
const queueRef = React61.useRef([]);
|
|
20440
|
+
const showSnackbar = React61.useCallback(
|
|
20181
20441
|
(visuals) => {
|
|
20182
20442
|
return new Promise((resolve) => {
|
|
20183
20443
|
const item = { visuals, resolve };
|
|
@@ -20190,14 +20450,14 @@ function useSnackbarState() {
|
|
|
20190
20450
|
},
|
|
20191
20451
|
[]
|
|
20192
20452
|
);
|
|
20193
|
-
const _dismiss =
|
|
20453
|
+
const _dismiss = React61.useCallback((result) => {
|
|
20194
20454
|
setCurrent((prev) => {
|
|
20195
20455
|
if (prev) prev.resolve(result);
|
|
20196
20456
|
const next = queueRef.current.shift();
|
|
20197
20457
|
return next ? toSnackbarData(next) : null;
|
|
20198
20458
|
});
|
|
20199
20459
|
}, []);
|
|
20200
|
-
|
|
20460
|
+
React61.useEffect(() => {
|
|
20201
20461
|
return () => {
|
|
20202
20462
|
for (const item of queueRef.current) {
|
|
20203
20463
|
item.resolve(RESULT.DISMISSED);
|
|
@@ -20207,7 +20467,7 @@ function useSnackbarState() {
|
|
|
20207
20467
|
}, []);
|
|
20208
20468
|
return { current, showSnackbar, _dismiss };
|
|
20209
20469
|
}
|
|
20210
|
-
var Snackbar =
|
|
20470
|
+
var Snackbar = React61.memo(function Snackbar2({
|
|
20211
20471
|
data,
|
|
20212
20472
|
className
|
|
20213
20473
|
}) {
|
|
@@ -20221,15 +20481,15 @@ var Snackbar = React59.memo(function Snackbar2({
|
|
|
20221
20481
|
} = visuals;
|
|
20222
20482
|
const reducedMotion = useReducedMotion();
|
|
20223
20483
|
const durationMs = resolveDuration(duration);
|
|
20224
|
-
|
|
20484
|
+
React61.useEffect(() => {
|
|
20225
20485
|
const timer = setTimeout(() => resolve(RESULT.DISMISSED), durationMs);
|
|
20226
20486
|
return () => clearTimeout(timer);
|
|
20227
20487
|
}, [resolve, durationMs]);
|
|
20228
|
-
const handleAction =
|
|
20488
|
+
const handleAction = React61.useCallback(
|
|
20229
20489
|
() => resolve(RESULT.ACTION),
|
|
20230
20490
|
[resolve]
|
|
20231
20491
|
);
|
|
20232
|
-
const handleDismiss =
|
|
20492
|
+
const handleDismiss = React61.useCallback(
|
|
20233
20493
|
() => resolve(RESULT.DISMISSED),
|
|
20234
20494
|
[resolve]
|
|
20235
20495
|
);
|
|
@@ -20297,7 +20557,7 @@ var Snackbar = React59.memo(function Snackbar2({
|
|
|
20297
20557
|
Snackbar.displayName = "Snackbar";
|
|
20298
20558
|
function SnackbarHost({ state, className }) {
|
|
20299
20559
|
const { current, _dismiss } = state;
|
|
20300
|
-
const wrappedData =
|
|
20560
|
+
const wrappedData = React61.useMemo(() => {
|
|
20301
20561
|
if (!current) return null;
|
|
20302
20562
|
return __spreadProps(__spreadValues({}, current), { resolve: _dismiss });
|
|
20303
20563
|
}, [current, _dismiss]);
|
|
@@ -20315,12 +20575,12 @@ function SnackbarHost({ state, className }) {
|
|
|
20315
20575
|
) });
|
|
20316
20576
|
}
|
|
20317
20577
|
SnackbarHost.displayName = "SnackbarHost";
|
|
20318
|
-
var SnackbarContext =
|
|
20578
|
+
var SnackbarContext = React61.createContext(
|
|
20319
20579
|
null
|
|
20320
20580
|
);
|
|
20321
20581
|
function SnackbarProvider({ children }) {
|
|
20322
20582
|
const state = useSnackbarState();
|
|
20323
|
-
const contextValue =
|
|
20583
|
+
const contextValue = React61.useMemo(
|
|
20324
20584
|
() => ({ showSnackbar: state.showSnackbar }),
|
|
20325
20585
|
[state.showSnackbar]
|
|
20326
20586
|
);
|
|
@@ -20331,15 +20591,15 @@ function SnackbarProvider({ children }) {
|
|
|
20331
20591
|
}
|
|
20332
20592
|
SnackbarProvider.displayName = "SnackbarProvider";
|
|
20333
20593
|
function useSnackbar() {
|
|
20334
|
-
const ctx =
|
|
20594
|
+
const ctx = React61.useContext(SnackbarContext);
|
|
20335
20595
|
if (!ctx) {
|
|
20336
20596
|
throw new Error("useSnackbar must be used within a <SnackbarProvider>.");
|
|
20337
20597
|
}
|
|
20338
20598
|
return ctx;
|
|
20339
20599
|
}
|
|
20340
|
-
var TabsContext =
|
|
20600
|
+
var TabsContext = React61.createContext(null);
|
|
20341
20601
|
function useTabsContext() {
|
|
20342
|
-
const ctx =
|
|
20602
|
+
const ctx = React61.useContext(TabsContext);
|
|
20343
20603
|
if (!ctx) {
|
|
20344
20604
|
throw new Error(
|
|
20345
20605
|
"[MD3 Tabs] Component must be used within a <Tabs> root. Ensure <TabsList>, <Tab>, and <TabsContent> are descendants of <Tabs>."
|
|
@@ -20347,7 +20607,7 @@ function useTabsContext() {
|
|
|
20347
20607
|
}
|
|
20348
20608
|
return ctx;
|
|
20349
20609
|
}
|
|
20350
|
-
var TabsComponent =
|
|
20610
|
+
var TabsComponent = React61.forwardRef(
|
|
20351
20611
|
({
|
|
20352
20612
|
value: controlledValue,
|
|
20353
20613
|
defaultValue = "",
|
|
@@ -20356,35 +20616,35 @@ var TabsComponent = React59.forwardRef(
|
|
|
20356
20616
|
children,
|
|
20357
20617
|
className
|
|
20358
20618
|
}, ref) => {
|
|
20359
|
-
const [internalValue, setInternalValue] =
|
|
20619
|
+
const [internalValue, setInternalValue] = React61.useState(defaultValue);
|
|
20360
20620
|
const isControlled = controlledValue !== void 0;
|
|
20361
20621
|
const value = isControlled ? controlledValue : internalValue;
|
|
20362
|
-
const handleValueChange =
|
|
20622
|
+
const handleValueChange = React61.useCallback(
|
|
20363
20623
|
(newValue) => {
|
|
20364
20624
|
if (!isControlled) setInternalValue(newValue);
|
|
20365
20625
|
onValueChange == null ? void 0 : onValueChange(newValue);
|
|
20366
20626
|
},
|
|
20367
20627
|
[isControlled, onValueChange]
|
|
20368
20628
|
);
|
|
20369
|
-
const [focusedValue, setFocusedValue] =
|
|
20370
|
-
|
|
20629
|
+
const [focusedValue, setFocusedValue] = React61.useState(value);
|
|
20630
|
+
React61.useEffect(() => {
|
|
20371
20631
|
setFocusedValue(value);
|
|
20372
20632
|
}, [value]);
|
|
20373
|
-
const [tabValues, setTabValues] =
|
|
20374
|
-
const registerTab =
|
|
20633
|
+
const [tabValues, setTabValues] = React61.useState([]);
|
|
20634
|
+
const registerTab = React61.useCallback((tabValue) => {
|
|
20375
20635
|
setTabValues((prev) => {
|
|
20376
20636
|
if (prev.includes(tabValue)) return prev;
|
|
20377
20637
|
return [...prev, tabValue];
|
|
20378
20638
|
});
|
|
20379
20639
|
}, []);
|
|
20380
|
-
const unregisterTab =
|
|
20640
|
+
const unregisterTab = React61.useCallback((tabValue) => {
|
|
20381
20641
|
setTabValues((prev) => prev.filter((v) => v !== tabValue));
|
|
20382
20642
|
}, []);
|
|
20383
|
-
const hasAutoSelected =
|
|
20384
|
-
const [disabledValues, setDisabledValues] =
|
|
20643
|
+
const hasAutoSelected = React61.useRef(false);
|
|
20644
|
+
const [disabledValues, setDisabledValues] = React61.useState(
|
|
20385
20645
|
/* @__PURE__ */ new Set()
|
|
20386
20646
|
);
|
|
20387
|
-
const markTabDisabled =
|
|
20647
|
+
const markTabDisabled = React61.useCallback(
|
|
20388
20648
|
(tabValue, disabled) => {
|
|
20389
20649
|
setDisabledValues((prev) => {
|
|
20390
20650
|
const next = new Set(prev);
|
|
@@ -20398,7 +20658,7 @@ var TabsComponent = React59.forwardRef(
|
|
|
20398
20658
|
},
|
|
20399
20659
|
[]
|
|
20400
20660
|
);
|
|
20401
|
-
|
|
20661
|
+
React61.useEffect(() => {
|
|
20402
20662
|
if (isControlled || hasAutoSelected.current || tabValues.length === 0) {
|
|
20403
20663
|
return;
|
|
20404
20664
|
}
|
|
@@ -20413,9 +20673,9 @@ var TabsComponent = React59.forwardRef(
|
|
|
20413
20673
|
setFocusedValue(firstEnabled);
|
|
20414
20674
|
}
|
|
20415
20675
|
}, [tabValues, disabledValues, isControlled, value]);
|
|
20416
|
-
const id =
|
|
20676
|
+
const id = React61.useId();
|
|
20417
20677
|
const layoutGroupId = `tabs-${id}`;
|
|
20418
|
-
const contextValue =
|
|
20678
|
+
const contextValue = React61.useMemo(
|
|
20419
20679
|
() => ({
|
|
20420
20680
|
value,
|
|
20421
20681
|
onValueChange: handleValueChange,
|
|
@@ -20446,12 +20706,12 @@ var TabsComponent = React59.forwardRef(
|
|
|
20446
20706
|
}
|
|
20447
20707
|
);
|
|
20448
20708
|
TabsComponent.displayName = "Tabs";
|
|
20449
|
-
var Tabs =
|
|
20450
|
-
var TabsListContext =
|
|
20709
|
+
var Tabs = React61.memo(TabsComponent);
|
|
20710
|
+
var TabsListContext = React61.createContext(
|
|
20451
20711
|
null
|
|
20452
20712
|
);
|
|
20453
20713
|
function useTabsListContext() {
|
|
20454
|
-
const ctx =
|
|
20714
|
+
const ctx = React61.useContext(TabsListContext);
|
|
20455
20715
|
return ctx != null ? ctx : { variant: "primary", scrollable: false };
|
|
20456
20716
|
}
|
|
20457
20717
|
|
|
@@ -20535,7 +20795,7 @@ var TABS_CONTENT_TRANSITION = {
|
|
|
20535
20795
|
ease: "easeInOut"
|
|
20536
20796
|
};
|
|
20537
20797
|
var INDICATOR_MIN_WIDTH = 24;
|
|
20538
|
-
var TabComponent =
|
|
20798
|
+
var TabComponent = React61.forwardRef(
|
|
20539
20799
|
({
|
|
20540
20800
|
value,
|
|
20541
20801
|
icon,
|
|
@@ -20565,9 +20825,9 @@ var TabComponent = React59.forwardRef(
|
|
|
20565
20825
|
const isFocused = focusedValue === value;
|
|
20566
20826
|
const hasIcon = icon != null;
|
|
20567
20827
|
const isStackedIcon = hasIcon && !inlineIcon;
|
|
20568
|
-
const buttonRef =
|
|
20569
|
-
const isFirstMount =
|
|
20570
|
-
const mergedRef =
|
|
20828
|
+
const buttonRef = React61.useRef(null);
|
|
20829
|
+
const isFirstMount = React61.useRef(true);
|
|
20830
|
+
const mergedRef = React61.useCallback(
|
|
20571
20831
|
(node) => {
|
|
20572
20832
|
buttonRef.current = node;
|
|
20573
20833
|
if (typeof ref === "function") ref(node);
|
|
@@ -20575,15 +20835,15 @@ var TabComponent = React59.forwardRef(
|
|
|
20575
20835
|
},
|
|
20576
20836
|
[ref]
|
|
20577
20837
|
);
|
|
20578
|
-
|
|
20838
|
+
React61.useEffect(() => {
|
|
20579
20839
|
registerTab(value);
|
|
20580
20840
|
return () => unregisterTab(value);
|
|
20581
20841
|
}, [value, registerTab, unregisterTab]);
|
|
20582
|
-
|
|
20842
|
+
React61.useEffect(() => {
|
|
20583
20843
|
markTabDisabled(value, disabled);
|
|
20584
20844
|
return () => markTabDisabled(value, false);
|
|
20585
20845
|
}, [value, disabled, markTabDisabled]);
|
|
20586
|
-
const handleKeyDown =
|
|
20846
|
+
const handleKeyDown = React61.useCallback(
|
|
20587
20847
|
(e) => {
|
|
20588
20848
|
const isRtl = buttonRef.current ? getComputedStyle(buttonRef.current).direction === "rtl" : false;
|
|
20589
20849
|
const enabledValues = tabValues.filter((v) => !disabledValues.has(v));
|
|
@@ -20637,7 +20897,7 @@ var TabComponent = React59.forwardRef(
|
|
|
20637
20897
|
autoActivate
|
|
20638
20898
|
]
|
|
20639
20899
|
);
|
|
20640
|
-
|
|
20900
|
+
React61.useEffect(() => {
|
|
20641
20901
|
if (isFirstMount.current) {
|
|
20642
20902
|
isFirstMount.current = false;
|
|
20643
20903
|
return;
|
|
@@ -20646,7 +20906,7 @@ var TabComponent = React59.forwardRef(
|
|
|
20646
20906
|
buttonRef.current.focus({ preventScroll: true });
|
|
20647
20907
|
}
|
|
20648
20908
|
}, [isFocused]);
|
|
20649
|
-
|
|
20909
|
+
React61.useEffect(() => {
|
|
20650
20910
|
if (!isActive || !scrollable || !buttonRef.current) return;
|
|
20651
20911
|
const btn = buttonRef.current;
|
|
20652
20912
|
let container = btn.parentElement;
|
|
@@ -20783,8 +21043,8 @@ var TabComponent = React59.forwardRef(
|
|
|
20783
21043
|
}
|
|
20784
21044
|
);
|
|
20785
21045
|
TabComponent.displayName = "Tab";
|
|
20786
|
-
var Tab =
|
|
20787
|
-
var TabsContentComponent =
|
|
21046
|
+
var Tab = React61.memo(TabComponent);
|
|
21047
|
+
var TabsContentComponent = React61.forwardRef(
|
|
20788
21048
|
({ value, className, children }, ref) => {
|
|
20789
21049
|
var _a;
|
|
20790
21050
|
const { value: selectedValue, layoutGroupId } = useTabsContext();
|
|
@@ -20818,8 +21078,8 @@ var TabsContentComponent = React59.forwardRef(
|
|
|
20818
21078
|
}
|
|
20819
21079
|
);
|
|
20820
21080
|
TabsContentComponent.displayName = "TabsContent";
|
|
20821
|
-
var TabsContent =
|
|
20822
|
-
var TabsListComponent =
|
|
21081
|
+
var TabsContent = React61.memo(TabsContentComponent);
|
|
21082
|
+
var TabsListComponent = React61.forwardRef(
|
|
20823
21083
|
({
|
|
20824
21084
|
variant,
|
|
20825
21085
|
scrollable = false,
|
|
@@ -20830,12 +21090,12 @@ var TabsListComponent = React59.forwardRef(
|
|
|
20830
21090
|
}, ref) => {
|
|
20831
21091
|
const { layoutGroupId, value, setFocusedValue } = useTabsContext();
|
|
20832
21092
|
const listLayoutId = `${layoutGroupId}-list`;
|
|
20833
|
-
const listContextValue =
|
|
21093
|
+
const listContextValue = React61.useMemo(
|
|
20834
21094
|
() => ({ variant, scrollable }),
|
|
20835
21095
|
[variant, scrollable]
|
|
20836
21096
|
);
|
|
20837
21097
|
const bgColor = backgroundColor != null ? backgroundColor : "var(--md-sys-color-surface)";
|
|
20838
|
-
const handleBlur =
|
|
21098
|
+
const handleBlur = React61.useCallback(
|
|
20839
21099
|
(e) => {
|
|
20840
21100
|
const listEl = e.currentTarget;
|
|
20841
21101
|
if (listEl.contains(e.relatedTarget)) return;
|
|
@@ -20884,7 +21144,7 @@ var TabsListComponent = React59.forwardRef(
|
|
|
20884
21144
|
}
|
|
20885
21145
|
);
|
|
20886
21146
|
TabsListComponent.displayName = "TabsList";
|
|
20887
|
-
var TabsList =
|
|
21147
|
+
var TabsList = React61.memo(TabsListComponent);
|
|
20888
21148
|
var typographyVariants = cva("m-0 p-0 text-m3-on-surface", {
|
|
20889
21149
|
variants: {
|
|
20890
21150
|
variant: {
|
|
@@ -20942,10 +21202,10 @@ var typographyVariants = cva("m-0 p-0 text-m3-on-surface", {
|
|
|
20942
21202
|
variant: "body-md"
|
|
20943
21203
|
}
|
|
20944
21204
|
});
|
|
20945
|
-
var Text =
|
|
21205
|
+
var Text = React61.forwardRef(
|
|
20946
21206
|
(_a, ref) => {
|
|
20947
21207
|
var _b = _a, { className, variant, as: Component, color, weight, style } = _b, props = __objRest(_b, ["className", "variant", "as", "color", "weight", "style"]);
|
|
20948
|
-
const defaultComponent =
|
|
21208
|
+
const defaultComponent = React61.useMemo(() => {
|
|
20949
21209
|
const v = variant ? String(variant).toLowerCase() : "";
|
|
20950
21210
|
if (v.startsWith("display") || v.startsWith("headline")) return "h1";
|
|
20951
21211
|
if (v.startsWith("title")) return "h2";
|
|
@@ -20964,11 +21224,11 @@ var Text = React59.forwardRef(
|
|
|
20964
21224
|
}
|
|
20965
21225
|
);
|
|
20966
21226
|
Text.displayName = "Text";
|
|
20967
|
-
var ToolbarContext =
|
|
21227
|
+
var ToolbarContext = React61.createContext(
|
|
20968
21228
|
null
|
|
20969
21229
|
);
|
|
20970
21230
|
function useToolbarContext() {
|
|
20971
|
-
return
|
|
21231
|
+
return React61.useContext(ToolbarContext);
|
|
20972
21232
|
}
|
|
20973
21233
|
|
|
20974
21234
|
// src/ui/text-field/text-field.tokens.ts
|
|
@@ -21008,7 +21268,7 @@ var TF_TYPOGRAPHY = {
|
|
|
21008
21268
|
var TF_CLASSES = {
|
|
21009
21269
|
// Prefix / Suffix
|
|
21010
21270
|
prefixSuffix: "text-base text-[var(--md-sys-color-on-surface-variant)] select-none shrink-0"};
|
|
21011
|
-
var ActiveIndicator =
|
|
21271
|
+
var ActiveIndicator = React61.memo(function ActiveIndicator2({
|
|
21012
21272
|
isFocused,
|
|
21013
21273
|
isError,
|
|
21014
21274
|
isDisabled,
|
|
@@ -21055,7 +21315,7 @@ function getLabelColor(isFloated, isFocused, isError, isDisabled) {
|
|
|
21055
21315
|
if (isFloated && isFocused) return TF_COLORS.primary;
|
|
21056
21316
|
return TF_COLORS.onSurfaceVariant;
|
|
21057
21317
|
}
|
|
21058
|
-
var FloatingLabel =
|
|
21318
|
+
var FloatingLabel = React61.memo(function FloatingLabel2({
|
|
21059
21319
|
text,
|
|
21060
21320
|
isFloated,
|
|
21061
21321
|
isFocused,
|
|
@@ -21114,7 +21374,7 @@ var FloatingLabel = React59.memo(function FloatingLabel2({
|
|
|
21114
21374
|
);
|
|
21115
21375
|
});
|
|
21116
21376
|
FloatingLabel.displayName = "FloatingLabel";
|
|
21117
|
-
var LeadingIcon =
|
|
21377
|
+
var LeadingIcon = React61.memo(function LeadingIcon2({
|
|
21118
21378
|
children,
|
|
21119
21379
|
isError,
|
|
21120
21380
|
isDisabled
|
|
@@ -21138,7 +21398,7 @@ function getOutlineColor(isFocused, isError, isHovered, isDisabled) {
|
|
|
21138
21398
|
if (isHovered) return TF_COLORS.inputText;
|
|
21139
21399
|
return TF_COLORS.outline;
|
|
21140
21400
|
}
|
|
21141
|
-
var OutlineContainer =
|
|
21401
|
+
var OutlineContainer = React61.memo(function OutlineContainer2({
|
|
21142
21402
|
isFloated,
|
|
21143
21403
|
isFocused,
|
|
21144
21404
|
isError,
|
|
@@ -21237,7 +21497,7 @@ var OutlineContainer = React59.memo(function OutlineContainer2({
|
|
|
21237
21497
|
);
|
|
21238
21498
|
});
|
|
21239
21499
|
OutlineContainer.displayName = "OutlineContainer";
|
|
21240
|
-
var PrefixSuffix =
|
|
21500
|
+
var PrefixSuffix = React61.memo(function PrefixSuffix2({
|
|
21241
21501
|
text,
|
|
21242
21502
|
type,
|
|
21243
21503
|
visible,
|
|
@@ -21279,7 +21539,7 @@ function AnimatedText({
|
|
|
21279
21539
|
motionKey
|
|
21280
21540
|
);
|
|
21281
21541
|
}
|
|
21282
|
-
var SupportingText =
|
|
21542
|
+
var SupportingText = React61.memo(function SupportingText2({
|
|
21283
21543
|
supportingText,
|
|
21284
21544
|
errorText,
|
|
21285
21545
|
isError,
|
|
@@ -21390,7 +21650,7 @@ function ClearIcon() {
|
|
|
21390
21650
|
}
|
|
21391
21651
|
);
|
|
21392
21652
|
}
|
|
21393
|
-
var TrailingIcon =
|
|
21653
|
+
var TrailingIcon = React61.memo(function TrailingIcon2({
|
|
21394
21654
|
mode,
|
|
21395
21655
|
children,
|
|
21396
21656
|
value,
|
|
@@ -21456,7 +21716,7 @@ var TrailingIcon = React59.memo(function TrailingIcon2({
|
|
|
21456
21716
|
});
|
|
21457
21717
|
TrailingIcon.displayName = "TrailingIcon";
|
|
21458
21718
|
var LINE_HEIGHT_PX = 24;
|
|
21459
|
-
var TextFieldComponent =
|
|
21719
|
+
var TextFieldComponent = React61.forwardRef(
|
|
21460
21720
|
({
|
|
21461
21721
|
// Core
|
|
21462
21722
|
variant = "filled",
|
|
@@ -21524,30 +21784,30 @@ var TextFieldComponent = React59.forwardRef(
|
|
|
21524
21784
|
const isInToolbar = !!toolbarContext;
|
|
21525
21785
|
const resolvedDense = isInToolbar ? true : dense;
|
|
21526
21786
|
const resolvedLabel = isInToolbar ? void 0 : label;
|
|
21527
|
-
const generatedId =
|
|
21787
|
+
const generatedId = React61.useId();
|
|
21528
21788
|
const inputId = idProp != null ? idProp : `tf-${generatedId}`;
|
|
21529
21789
|
const supportingId = `${inputId}-supporting`;
|
|
21530
21790
|
const isControlled = valueProp !== void 0;
|
|
21531
|
-
const [internalValue, setInternalValue] =
|
|
21791
|
+
const [internalValue, setInternalValue] = React61.useState(defaultValue);
|
|
21532
21792
|
const currentValue = isControlled ? valueProp : internalValue;
|
|
21533
|
-
const [isFocused, setIsFocused] =
|
|
21534
|
-
const [showPassword, setShowPassword] =
|
|
21793
|
+
const [isFocused, setIsFocused] = React61.useState(false);
|
|
21794
|
+
const [showPassword, setShowPassword] = React61.useState(false);
|
|
21535
21795
|
const resolvedInputType = type === "password" && showPassword ? "text" : type;
|
|
21536
|
-
const [nativeError, setNativeError] =
|
|
21537
|
-
const [labelWidth, setLabelWidth] =
|
|
21796
|
+
const [nativeError, setNativeError] = React61.useState("");
|
|
21797
|
+
const [labelWidth, setLabelWidth] = React61.useState(0);
|
|
21538
21798
|
const hasValue = currentValue.length > 0;
|
|
21539
21799
|
const isFloated = isFocused || hasValue;
|
|
21540
21800
|
const isError = errorProp || !!nativeError || maxLength !== void 0 && currentValue.length > maxLength;
|
|
21541
21801
|
const containerHeight = resolvedDense ? TF_SIZE.denseHeight : TF_SIZE.height;
|
|
21542
21802
|
const showAsterisk = required && !noAsterisk;
|
|
21543
|
-
const inputRef =
|
|
21544
|
-
const labelSpanRef =
|
|
21545
|
-
|
|
21803
|
+
const inputRef = React61.useRef(null);
|
|
21804
|
+
const labelSpanRef = React61.useRef(null);
|
|
21805
|
+
React61.useLayoutEffect(() => {
|
|
21546
21806
|
if (labelSpanRef.current) {
|
|
21547
21807
|
setLabelWidth(labelSpanRef.current.offsetWidth);
|
|
21548
21808
|
}
|
|
21549
21809
|
}, []);
|
|
21550
|
-
|
|
21810
|
+
React61.useLayoutEffect(() => {
|
|
21551
21811
|
if (type !== "textarea" || !inputRef.current) return;
|
|
21552
21812
|
const textarea = inputRef.current;
|
|
21553
21813
|
if (autoResize) {
|
|
@@ -21559,7 +21819,7 @@ var TextFieldComponent = React59.forwardRef(
|
|
|
21559
21819
|
}
|
|
21560
21820
|
textarea.style.overflowY = "hidden";
|
|
21561
21821
|
}, [type, autoResize, maxRows, currentValue]);
|
|
21562
|
-
const handleValueChange =
|
|
21822
|
+
const handleValueChange = React61.useCallback(
|
|
21563
21823
|
(newValue) => {
|
|
21564
21824
|
var _a2, _b;
|
|
21565
21825
|
if (!isControlled) setInternalValue(newValue);
|
|
@@ -21568,7 +21828,7 @@ var TextFieldComponent = React59.forwardRef(
|
|
|
21568
21828
|
},
|
|
21569
21829
|
[isControlled]
|
|
21570
21830
|
);
|
|
21571
|
-
const handleChange =
|
|
21831
|
+
const handleChange = React61.useCallback(
|
|
21572
21832
|
(e) => {
|
|
21573
21833
|
const newVal = e.target.value;
|
|
21574
21834
|
handleValueChange(newVal);
|
|
@@ -21576,14 +21836,14 @@ var TextFieldComponent = React59.forwardRef(
|
|
|
21576
21836
|
},
|
|
21577
21837
|
[handleValueChange, onChange]
|
|
21578
21838
|
);
|
|
21579
|
-
const handleFocus =
|
|
21839
|
+
const handleFocus = React61.useCallback(
|
|
21580
21840
|
(e) => {
|
|
21581
21841
|
setIsFocused(true);
|
|
21582
21842
|
onFocus == null ? void 0 : onFocus(e);
|
|
21583
21843
|
},
|
|
21584
21844
|
[onFocus]
|
|
21585
21845
|
);
|
|
21586
|
-
const handleBlur =
|
|
21846
|
+
const handleBlur = React61.useCallback(
|
|
21587
21847
|
(e) => {
|
|
21588
21848
|
setIsFocused(false);
|
|
21589
21849
|
const el = inputRef.current;
|
|
@@ -21596,7 +21856,7 @@ var TextFieldComponent = React59.forwardRef(
|
|
|
21596
21856
|
},
|
|
21597
21857
|
[onBlur]
|
|
21598
21858
|
);
|
|
21599
|
-
const handleClear =
|
|
21859
|
+
const handleClear = React61.useCallback(() => {
|
|
21600
21860
|
var _a2;
|
|
21601
21861
|
handleValueChange("");
|
|
21602
21862
|
onChange == null ? void 0 : onChange("", {
|
|
@@ -21604,12 +21864,12 @@ var TextFieldComponent = React59.forwardRef(
|
|
|
21604
21864
|
});
|
|
21605
21865
|
(_a2 = inputRef.current) == null ? void 0 : _a2.focus();
|
|
21606
21866
|
}, [handleValueChange, onChange]);
|
|
21607
|
-
const handlePasswordToggle =
|
|
21867
|
+
const handlePasswordToggle = React61.useCallback(() => {
|
|
21608
21868
|
var _a2;
|
|
21609
21869
|
setShowPassword((prev) => !prev);
|
|
21610
21870
|
(_a2 = inputRef.current) == null ? void 0 : _a2.focus();
|
|
21611
21871
|
}, []);
|
|
21612
|
-
|
|
21872
|
+
React61.useImperativeHandle(
|
|
21613
21873
|
ref,
|
|
21614
21874
|
() => ({
|
|
21615
21875
|
focus: () => {
|
|
@@ -21855,7 +22115,7 @@ var TextFieldComponent = React59.forwardRef(
|
|
|
21855
22115
|
}
|
|
21856
22116
|
);
|
|
21857
22117
|
TextFieldComponent.displayName = "TextField";
|
|
21858
|
-
var TextField =
|
|
22118
|
+
var TextField = React61.memo(TextFieldComponent);
|
|
21859
22119
|
|
|
21860
22120
|
// src/ui/typography/typography-key-tokens.ts
|
|
21861
22121
|
var TypographyKeyTokens = /* @__PURE__ */ ((TypographyKeyTokens2) => {
|
|
@@ -22817,7 +23077,7 @@ function getToolbarColors(variant = "standard", customColors) {
|
|
|
22817
23077
|
return standardFloatingToolbarColors;
|
|
22818
23078
|
}
|
|
22819
23079
|
}
|
|
22820
|
-
var BottomDockedToolbar =
|
|
23080
|
+
var BottomDockedToolbar = React61.forwardRef(
|
|
22821
23081
|
(_a, ref) => {
|
|
22822
23082
|
var _b = _a, {
|
|
22823
23083
|
variant = "standard",
|
|
@@ -22850,8 +23110,8 @@ var BottomDockedToolbar = React59.forwardRef(
|
|
|
22850
23110
|
const { scrollY } = useScroll(
|
|
22851
23111
|
scrollContainerRef ? { container: scrollContainerRef } : void 0
|
|
22852
23112
|
);
|
|
22853
|
-
const [isHidden, setIsHidden] =
|
|
22854
|
-
const lastScrollY =
|
|
23113
|
+
const [isHidden, setIsHidden] = React61.useState(false);
|
|
23114
|
+
const lastScrollY = React61.useRef(0);
|
|
22855
23115
|
useMotionValueEvent(scrollY, "change", (latest) => {
|
|
22856
23116
|
if (!hideOnScroll) return;
|
|
22857
23117
|
const diff = latest - lastScrollY.current;
|
|
@@ -23000,15 +23260,15 @@ function buildSlotVariants(xHidden, yHidden, isHorizontal) {
|
|
|
23000
23260
|
};
|
|
23001
23261
|
}
|
|
23002
23262
|
function applyItemClassName(nodes, itemClassName) {
|
|
23003
|
-
return
|
|
23004
|
-
if (!
|
|
23263
|
+
return React61.Children.map(nodes, (child) => {
|
|
23264
|
+
if (!React61.isValidElement(child)) return child;
|
|
23005
23265
|
const element = child;
|
|
23006
|
-
return
|
|
23266
|
+
return React61.cloneElement(element, {
|
|
23007
23267
|
className: cn(element.props.className, itemClassName)
|
|
23008
23268
|
});
|
|
23009
23269
|
});
|
|
23010
23270
|
}
|
|
23011
|
-
var FloatingToolbarBase =
|
|
23271
|
+
var FloatingToolbarBase = React61.forwardRef(
|
|
23012
23272
|
(_a, ref) => {
|
|
23013
23273
|
var _b = _a, {
|
|
23014
23274
|
expanded,
|
|
@@ -23120,7 +23380,9 @@ var FloatingToolbarBase = React59.forwardRef(
|
|
|
23120
23380
|
isHorizontal ? "flex-row h-full" : "flex-col w-full",
|
|
23121
23381
|
isStringPadding ? contentPadding : isHorizontal ? "px-2" : "py-2"
|
|
23122
23382
|
),
|
|
23123
|
-
style: __spreadValues({
|
|
23383
|
+
style: __spreadValues({
|
|
23384
|
+
gap: itemGap
|
|
23385
|
+
}, isStringPadding ? {} : contentPadding),
|
|
23124
23386
|
children: [
|
|
23125
23387
|
/* @__PURE__ */ jsx(AnimatePresence, { initial: false, children: expanded && startContent && /* @__PURE__ */ jsx(
|
|
23126
23388
|
m.div,
|
|
@@ -23178,11 +23440,11 @@ var FloatingToolbarBase = React59.forwardRef(
|
|
|
23178
23440
|
}
|
|
23179
23441
|
);
|
|
23180
23442
|
FloatingToolbarBase.displayName = "FloatingToolbarBase";
|
|
23181
|
-
var HorizontalFloatingToolbar =
|
|
23443
|
+
var HorizontalFloatingToolbar = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(FloatingToolbarBase, __spreadValues({ ref, orientation: "horizontal" }, props)));
|
|
23182
23444
|
HorizontalFloatingToolbar.displayName = "HorizontalFloatingToolbar";
|
|
23183
|
-
var VerticalFloatingToolbar =
|
|
23445
|
+
var VerticalFloatingToolbar = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(FloatingToolbarBase, __spreadValues({ ref, orientation: "vertical" }, props)));
|
|
23184
23446
|
VerticalFloatingToolbar.displayName = "VerticalFloatingToolbar";
|
|
23185
|
-
var FloatingToolbarWithFabBase =
|
|
23447
|
+
var FloatingToolbarWithFabBase = React61.forwardRef(
|
|
23186
23448
|
(_a, ref) => {
|
|
23187
23449
|
var _b = _a, {
|
|
23188
23450
|
expanded,
|
|
@@ -23310,9 +23572,9 @@ var FloatingToolbarWithFabBase = React59.forwardRef(
|
|
|
23310
23572
|
}
|
|
23311
23573
|
);
|
|
23312
23574
|
FloatingToolbarWithFabBase.displayName = "FloatingToolbarWithFabBase";
|
|
23313
|
-
var HorizontalFloatingToolbarWithFab =
|
|
23575
|
+
var HorizontalFloatingToolbarWithFab = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(FloatingToolbarWithFabBase, __spreadValues({ ref, orientation: "horizontal" }, props)));
|
|
23314
23576
|
HorizontalFloatingToolbarWithFab.displayName = "HorizontalFloatingToolbarWithFab";
|
|
23315
|
-
var VerticalFloatingToolbarWithFab =
|
|
23577
|
+
var VerticalFloatingToolbarWithFab = React61.forwardRef((props, ref) => /* @__PURE__ */ jsx(FloatingToolbarWithFabBase, __spreadValues({ ref, orientation: "vertical" }, props)));
|
|
23316
23578
|
VerticalFloatingToolbarWithFab.displayName = "VerticalFloatingToolbarWithFab";
|
|
23317
23579
|
var ToolbarDivider = ({
|
|
23318
23580
|
orientation: propsOrientation,
|
|
@@ -23348,7 +23610,7 @@ var VARIANT_TO_COLOR_STYLE = {
|
|
|
23348
23610
|
tonal: "tonal",
|
|
23349
23611
|
filled: "filled"
|
|
23350
23612
|
};
|
|
23351
|
-
var ToolbarIconButton =
|
|
23613
|
+
var ToolbarIconButton = React61.forwardRef(
|
|
23352
23614
|
(_a, ref) => {
|
|
23353
23615
|
var _b = _a, {
|
|
23354
23616
|
emphasis = "standard",
|
|
@@ -23484,7 +23746,7 @@ var MOTION_PROP_KEYS2 = [
|
|
|
23484
23746
|
"layoutId",
|
|
23485
23747
|
"onLayoutAnimationComplete"
|
|
23486
23748
|
];
|
|
23487
|
-
var ToolbarToggleButton =
|
|
23749
|
+
var ToolbarToggleButton = React61.forwardRef(
|
|
23488
23750
|
(_a, ref) => {
|
|
23489
23751
|
var _b = _a, {
|
|
23490
23752
|
emphasis = "standard",
|
|
@@ -23521,7 +23783,7 @@ var ToolbarToggleButton = React59.forwardRef(
|
|
|
23521
23783
|
} = useRippleState({
|
|
23522
23784
|
disabled: Boolean(disabled) || !ripple
|
|
23523
23785
|
});
|
|
23524
|
-
const handlePointerDown =
|
|
23786
|
+
const handlePointerDown = React61.useCallback(
|
|
23525
23787
|
(e) => {
|
|
23526
23788
|
if (!disabled && ripple) {
|
|
23527
23789
|
handleRipplePointerDown(e);
|
|
@@ -23542,7 +23804,7 @@ var ToolbarToggleButton = React59.forwardRef(
|
|
|
23542
23804
|
context == null ? void 0 : context.itemClassName,
|
|
23543
23805
|
className
|
|
23544
23806
|
);
|
|
23545
|
-
const whileTapConfig =
|
|
23807
|
+
const whileTapConfig = React61.useMemo(
|
|
23546
23808
|
() => ({
|
|
23547
23809
|
scale: pressScale,
|
|
23548
23810
|
x: pressBounceOffset ? [
|
|
@@ -23556,7 +23818,7 @@ var ToolbarToggleButton = React59.forwardRef(
|
|
|
23556
23818
|
}),
|
|
23557
23819
|
[pressScale, pressBounceOffset]
|
|
23558
23820
|
);
|
|
23559
|
-
const transitionConfig =
|
|
23821
|
+
const transitionConfig = React61.useMemo(
|
|
23560
23822
|
() => ({
|
|
23561
23823
|
scale: FAST_SPATIAL_SPRING,
|
|
23562
23824
|
x: {
|
|
@@ -23581,7 +23843,7 @@ var ToolbarToggleButton = React59.forwardRef(
|
|
|
23581
23843
|
children && (typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx("span", { children }) : children)
|
|
23582
23844
|
] });
|
|
23583
23845
|
if (asChild) {
|
|
23584
|
-
const child =
|
|
23846
|
+
const child = React61.Children.only(children);
|
|
23585
23847
|
const childContent = child.props.children;
|
|
23586
23848
|
const innerChildContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
23587
23849
|
ripple && /* @__PURE__ */ jsx(
|
|
@@ -23618,7 +23880,7 @@ var ToolbarToggleButton = React59.forwardRef(
|
|
|
23618
23880
|
className: combinedClassName,
|
|
23619
23881
|
onPointerDown: handlePointerDown
|
|
23620
23882
|
}, strippedProps), {
|
|
23621
|
-
children:
|
|
23883
|
+
children: React61.cloneElement(child, { children: innerChildContent })
|
|
23622
23884
|
})
|
|
23623
23885
|
) });
|
|
23624
23886
|
}
|
|
@@ -24222,7 +24484,7 @@ function TooltipBox({
|
|
|
24222
24484
|
onKeyDown: handleKeyDown,
|
|
24223
24485
|
"aria-label": ariaLabel,
|
|
24224
24486
|
"aria-describedby": state.isVisible ? tooltipId : void 0,
|
|
24225
|
-
children:
|
|
24487
|
+
children: React61.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children })
|
|
24226
24488
|
}
|
|
24227
24489
|
),
|
|
24228
24490
|
mounted && createPortal(
|
|
@@ -24252,6 +24514,6 @@ function TooltipBox({
|
|
|
24252
24514
|
] });
|
|
24253
24515
|
}
|
|
24254
24516
|
|
|
24255
|
-
export { ANGLE_EPSILON, APP_BAR_BOTTOM_SPRING, APP_BAR_COLORS, APP_BAR_COLOR_TRANSITION, APP_BAR_ENTER_ALWAYS_SPRING, APP_BAR_TITLE_FADE, AppBarColumn, AppBarOverflowIndicator, AppBarRow, AppBarTokens, BUTTON_COLOR_TOKENS, BUTTON_SIZE_TOKENS, Badge, BadgedBox, BottomAppBar, BottomDockedToolbar, BottomSheet, BottomSheetModal, Button, ButtonGroup, CHECK_ICON_VARIANTS, Card, Checkbox, Chip, CodeBlock, ContextMenu, ContextMenuContent, ContextMenuTrigger, Cubic, DISTANCE_EPSILON, DIVIDER_COLOR, DIVIDER_PADDING, DP_CLASSES, DP_COLORS, DP_SHAPE, DP_SIZE, DatePicker, DatePickerDialog, DatePickerInput, DateRangePicker, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogFullScreenContent, DialogHeader, DialogIcon, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, DockedToolbar, DragHandle, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, ElevatedSplitButtonLeading, ElevatedSplitButtonTrailing, ElevatedSplitButtonTrailingUncheckable, ExtendedFAB, FAB, FABMenu, FABMenuItem, FABPosition, FAST_EFFECTS_TRANSITION, FAST_SPATIAL_SPRING, FLOAT_PI, FilledSplitButtonLeading, FilledSplitButtonTrailing, FilledSplitButtonTrailingUncheckable, GROUP_SHAPES, HorizontalFloatingToolbar, HorizontalFloatingToolbarWithFab, ITEM_SHAPE_CLASSES, Icon, IconButton, LIST_TOKENS, LargeFlexibleAppBar, List, ListContext, ListDivider, ListItem, LoadingIndicator, MD3CornerRadius, MD3Shapes, MD3ThemeProvider, MD3_EXPRESSIVE_FONT_VARIATION, MENU_CHECK_ICON_SIZE, MENU_CONTAINER_VARIANTS, MENU_GROUP_GAP, MENU_ICON_SIZE, MENU_ITEM_MIN_HEIGHT, MENU_MAX_WIDTH, MENU_MIN_WIDTH, MaterialSymbolsPreconnect, MeasuredPolygon, MediumFlexibleAppBar, Menu, MenuContent, MenuDivider, MenuGroup, MenuItem, MenuProvider, MenuTrigger, Morph, MutableCubic, NavigationBar, NavigationBarItem, NavigationRail, NavigationRailItem, OutlinedSplitButtonLeading, OutlinedSplitButtonTrailing, OutlinedSplitButtonTrailingUncheckable, PlainTooltip, ProgressIndicator, RadioButton, RadioGroup, RangeSlider, RichTooltip, Ripple, RoundedPolygon, SEARCH_BAR_EXPAND_SPRING, SEARCH_COLORS, SEARCH_DOCKED_REVEAL_SPRING, SEARCH_FULLSCREEN_SPRING, SEARCH_TYPOGRAPHY, SEARCH_VIEW_SPRING, STANDARD_COLORS, SUBMENU_CONTAINER_VARIANTS, Scrim, ScrollArea, ScrollAreaScrollbar, Search, SearchAppBar, SearchBar, SearchTokens, SearchView, SearchViewContainer, SearchViewDocked, SearchViewFullScreen, ShapeIcon, ShapeMedia, ShapeMediaServer, ShapeSvg, SideSheet, SideSheetModal, Slider, SliderColors, SliderTokens, SmallAppBar, Snackbar, SnackbarHost, SnackbarProvider, SplitButtonLayout, SplitButtonLeading, SplitButtonTrailing, SplitButtonTrailingUncheckable, SubMenu, Switch, SwitchColors, SwitchTokens, TP_CLASSES, TP_COLORS, TP_SHAPE, TP_SIZE, Tab, TableOfContents, Tabs, TabsColors, TabsContent, TabsList, TabsTokens, Text, TextField, TimeInput, TimePicker, TimePickerDialog, ToggleFAB, TonalSplitButtonLeading, TonalSplitButtonTrailing, TonalSplitButtonTrailingUncheckable, ToolbarDivider, ToolbarDividerTokens, ToolbarIconButton, ToolbarIconButtonTokens, ToolbarToggleButton, ToolbarToggleButtonTokens, TooltipBox, TooltipCaretShape, TooltipTokens, TriStateCheckbox, TypeScaleTokens, Typography, TypographyContext, TypographyKeyTokens, TypographyProvider, TypographyTokens, UNROUNDED, VIBRANT_COLORS, VerticalFloatingToolbar, VerticalFloatingToolbarWithFab, VerticalMenu, VerticalMenuContent, VerticalMenuDivider, VerticalMenuGroup, addPoints, appBarTypography, applyTheme, buildWavePath, circle, clockwise, cn, convex, cornerFeature, cornerRounding, createDoubleMapper, createMd3ExpressiveTheme, directionVector, distance, distanceSquared, dividePoint, dotProduct, edgeFeature, featureMapper, generateM3Theme, getDirection, getDistance, getDistanceSquared, getExpressiveShape, getListItemHeight, getToolbarColors, interpolate, interpolatePath, lerpPoint, pill, pillStar, point, positiveModulo, radialToCartesian, rectangle, resolveMode, rotate90, scalePoint, shouldTopAlign, square, standardFloatingToolbarColors, star, subtractPoints, surfaceContainerHighFloatingToolbarColors, surfaceContainerHighestFloatingToolbarColors, tertiaryContainerFloatingToolbarColors, toClipPath, toSvgPath, transformFeature, transformPoint, useAppBarScroll, useBottomSheet, useRipple as useDOMRipple, useDatePickerState, useDateRangePickerState, useFloatingToolbarScrollBehavior, useListContext, useMediaQuery, useMenuContext, useRipple2 as useRipple, useRippleState, useSearchKeyboard, useShapeMorph, useSnackbar, useSnackbarState, useTheme, useThemeMode, useTimePickerState, useTooltipPosition, useTooltipState, useTypography, vibrantFloatingToolbarColors, xrFloatingToolbarColors };
|
|
24517
|
+
export { ANGLE_EPSILON, APP_BAR_BOTTOM_SPRING, APP_BAR_COLORS, APP_BAR_COLOR_TRANSITION, APP_BAR_ENTER_ALWAYS_SPRING, APP_BAR_TITLE_FADE, AppBarColumn, AppBarOverflowIndicator, AppBarRow, AppBarTokens, BUTTON_COLOR_TOKENS, BUTTON_SIZE_TOKENS, Badge, BadgedBox, BottomAppBar, BottomDockedToolbar, BottomSheet, BottomSheetModal, Button, ButtonDistribute, ButtonGroup, CHECK_ICON_VARIANTS, Card, Checkbox, Chip, CodeBlock, ContextMenu, ContextMenuContent, ContextMenuTrigger, Cubic, DISTANCE_EPSILON, DIVIDER_COLOR, DIVIDER_PADDING, DP_CLASSES, DP_COLORS, DP_SHAPE, DP_SIZE, DatePicker, DatePickerDialog, DatePickerInput, DateRangePicker, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogFullScreenContent, DialogHeader, DialogIcon, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, DockedToolbar, DragHandle, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, ElevatedSplitButtonLeading, ElevatedSplitButtonTrailing, ElevatedSplitButtonTrailingUncheckable, ExtendedFAB, FAB, FABMenu, FABMenuItem, FABPosition, FAST_EFFECTS_TRANSITION, FAST_SPATIAL_SPRING, FLOAT_PI, FilledSplitButtonLeading, FilledSplitButtonTrailing, FilledSplitButtonTrailingUncheckable, GROUP_SHAPES, HorizontalFloatingToolbar, HorizontalFloatingToolbarWithFab, ITEM_SHAPE_CLASSES, Icon, IconButton, LIST_TOKENS, LargeFlexibleAppBar, List, ListContext, ListDivider, ListItem, LoadingIndicator, MD3CornerRadius, MD3Shapes, MD3ThemeProvider, MD3_EXPRESSIVE_FONT_VARIATION, MENU_CHECK_ICON_SIZE, MENU_CONTAINER_VARIANTS, MENU_GROUP_GAP, MENU_ICON_SIZE, MENU_ITEM_MIN_HEIGHT, MENU_MAX_WIDTH, MENU_MIN_WIDTH, MaterialSymbolsPreconnect, MeasuredPolygon, MediumFlexibleAppBar, Menu, MenuContent, MenuDivider, MenuGroup, MenuItem, MenuProvider, MenuTrigger, Morph, MutableCubic, NavigationBar, NavigationBarItem, NavigationRail, NavigationRailItem, OutlinedSplitButtonLeading, OutlinedSplitButtonTrailing, OutlinedSplitButtonTrailingUncheckable, PlainTooltip, ProgressIndicator, RadioButton, RadioGroup, RangeSlider, RichTooltip, Ripple, RoundedPolygon, SEARCH_BAR_EXPAND_SPRING, SEARCH_COLORS, SEARCH_DOCKED_REVEAL_SPRING, SEARCH_FULLSCREEN_SPRING, SEARCH_TYPOGRAPHY, SEARCH_VIEW_SPRING, STANDARD_COLORS, SUBMENU_CONTAINER_VARIANTS, Scrim, ScrollArea, ScrollAreaScrollbar, Search, SearchAppBar, SearchBar, SearchTokens, SearchView, SearchViewContainer, SearchViewDocked, SearchViewFullScreen, ShapeIcon, ShapeMedia, ShapeMediaServer, ShapeSvg, SideSheet, SideSheetModal, Slider, SliderColors, SliderTokens, SmallAppBar, Snackbar, SnackbarHost, SnackbarProvider, SplitButtonLayout, SplitButtonLeading, SplitButtonTrailing, SplitButtonTrailingUncheckable, SubMenu, Switch, SwitchColors, SwitchTokens, TP_CLASSES, TP_COLORS, TP_SHAPE, TP_SIZE, Tab, TableOfContents, Tabs, TabsColors, TabsContent, TabsList, TabsTokens, Text, TextField, TimeInput, TimePicker, TimePickerDialog, ToggleFAB, TonalSplitButtonLeading, TonalSplitButtonTrailing, TonalSplitButtonTrailingUncheckable, ToolbarDivider, ToolbarDividerTokens, ToolbarIconButton, ToolbarIconButtonTokens, ToolbarToggleButton, ToolbarToggleButtonTokens, TooltipBox, TooltipCaretShape, TooltipTokens, TriStateCheckbox, TypeScaleTokens, Typography, TypographyContext, TypographyKeyTokens, TypographyProvider, TypographyTokens, UNROUNDED, VIBRANT_COLORS, VerticalFloatingToolbar, VerticalFloatingToolbarWithFab, VerticalMenu, VerticalMenuContent, VerticalMenuDivider, VerticalMenuGroup, addPoints, appBarTypography, applyTheme, buildWavePath, circle, clockwise, cn, convex, cornerFeature, cornerRounding, createDoubleMapper, createMd3ExpressiveTheme, directionVector, distance, distanceSquared, dividePoint, dotProduct, edgeFeature, featureMapper, generateM3Theme, getDirection, getDistance, getDistanceSquared, getExpressiveShape, getListItemHeight, getToolbarColors, interpolate, interpolatePath, lerpPoint, pill, pillStar, point, positiveModulo, radialToCartesian, rectangle, resolveMode, rotate90, scalePoint, shouldTopAlign, square, standardFloatingToolbarColors, star, subtractPoints, surfaceContainerHighFloatingToolbarColors, surfaceContainerHighestFloatingToolbarColors, tertiaryContainerFloatingToolbarColors, toClipPath, toSvgPath, transformFeature, transformPoint, useAppBarScroll, useBottomSheet, useRipple as useDOMRipple, useDatePickerState, useDateRangePickerState, useFloatingToolbarScrollBehavior, useListContext, useMediaQuery, useMenuContext, useRipple2 as useRipple, useRippleState, useSearchKeyboard, useShapeMorph, useSnackbar, useSnackbarState, useTheme, useThemeMode, useTimePickerState, useTooltipPosition, useTooltipState, useTypography, vibrantFloatingToolbarColors, xrFloatingToolbarColors };
|
|
24256
24518
|
//# sourceMappingURL=index.mjs.map
|
|
24257
24519
|
//# sourceMappingURL=index.mjs.map
|