Some checks failed
CI/CD Pipeline / unit-tests (push) Failing after 1m16s
CI/CD Pipeline / integration-tests (push) Failing after 2m32s
CI/CD Pipeline / lint (push) Successful in 5m22s
CI/CD Pipeline / e2e-tests (push) Has been skipped
CI/CD Pipeline / build (push) Has been skipped
19833 lines
693 KiB
JavaScript
19833 lines
693 KiB
JavaScript
import {
|
|
CssBaseline_default,
|
|
body,
|
|
html
|
|
} from "./chunk-WHT54KGP.js";
|
|
import {
|
|
ArrowDropDown_default,
|
|
Autocomplete_default,
|
|
Backdrop_default,
|
|
Badge_default,
|
|
Box_default,
|
|
ButtonBase_default,
|
|
ButtonGroupButtonContext_default,
|
|
ButtonGroupContext_default,
|
|
Button_default,
|
|
Checkbox_default,
|
|
Chip_default,
|
|
CircularProgress_default,
|
|
ClickAwayListener,
|
|
Close_default,
|
|
Divider_default,
|
|
Fade_default,
|
|
FilledInput_default,
|
|
FirstPage_default,
|
|
FocusTrap_default,
|
|
FormControlLabel_default,
|
|
FormControl_default,
|
|
FormHelperText_default,
|
|
FormLabelRoot,
|
|
FormLabel_default,
|
|
Grow_default,
|
|
IconButton_default,
|
|
InputAdornment_default,
|
|
InputBase_default,
|
|
InputLabel_default,
|
|
Input_default,
|
|
KeyboardArrowLeft_default,
|
|
KeyboardArrowRight_default,
|
|
LastPage_default,
|
|
ListContext_default,
|
|
ListItemIcon_default,
|
|
ListItemText_default,
|
|
ListSubheader_default,
|
|
List_default,
|
|
MenuItem_default,
|
|
MenuList_default,
|
|
Menu_default,
|
|
ModalManager,
|
|
Modal_default,
|
|
NativeSelectInput_default,
|
|
OutlinedInput_default,
|
|
Paper_default,
|
|
PopoverPaper,
|
|
PopoverRoot,
|
|
Popover_default,
|
|
Popper_default,
|
|
Portal_default,
|
|
Select_default,
|
|
Skeleton_default,
|
|
Stack_default,
|
|
SwitchBase_default,
|
|
Switch_default,
|
|
TableCell_default,
|
|
TableContext_default,
|
|
TablePagination_default,
|
|
Tablelvl2Context_default,
|
|
TextField_default,
|
|
TextareaAutosize_default,
|
|
Toolbar_default,
|
|
Tooltip_default,
|
|
Transition_default,
|
|
Typography_default,
|
|
autocompleteClasses_default,
|
|
backdropClasses_default,
|
|
badgeClasses_default,
|
|
boxClasses_default,
|
|
buttonBaseClasses_default,
|
|
buttonClasses_default,
|
|
checkboxClasses_default,
|
|
chipClasses_default,
|
|
circularProgressClasses_default,
|
|
createFilterOptions,
|
|
dividerClasses_default,
|
|
filledInputClasses_default,
|
|
formControlClasses_default,
|
|
formControlLabelClasses_default,
|
|
formControlState,
|
|
formHelperTextClasses_default,
|
|
formLabelClasses_default,
|
|
getAutocompleteUtilityClass,
|
|
getBackdropUtilityClass,
|
|
getBadgeUtilityClass,
|
|
getButtonBaseUtilityClass,
|
|
getButtonUtilityClass,
|
|
getCheckboxUtilityClass,
|
|
getChipUtilityClass,
|
|
getCircularProgressUtilityClass,
|
|
getDividerUtilityClass,
|
|
getFilledInputUtilityClass,
|
|
getFormControlLabelUtilityClasses,
|
|
getFormControlUtilityClasses,
|
|
getFormHelperTextUtilityClasses,
|
|
getFormLabelUtilityClasses,
|
|
getIconButtonUtilityClass,
|
|
getInputAdornmentUtilityClass,
|
|
getInputBaseUtilityClass,
|
|
getInputLabelUtilityClasses,
|
|
getInputUtilityClass,
|
|
getListItemIconUtilityClass,
|
|
getListItemTextUtilityClass,
|
|
getListSubheaderUtilityClass,
|
|
getListUtilityClass,
|
|
getMenuItemUtilityClass,
|
|
getMenuUtilityClass,
|
|
getModalUtilityClass,
|
|
getNativeSelectUtilityClasses,
|
|
getOffsetLeft,
|
|
getOffsetTop,
|
|
getOutlinedInputUtilityClass,
|
|
getPaperUtilityClass,
|
|
getPopoverUtilityClass,
|
|
getPopperUtilityClass,
|
|
getSelectUtilityClasses,
|
|
getSkeletonUtilityClass,
|
|
getSwitchUtilityClass,
|
|
getTableCellUtilityClass,
|
|
getTablePaginationUtilityClass,
|
|
getTextFieldUtilityClass,
|
|
getToolbarUtilityClass,
|
|
getTooltipUtilityClass,
|
|
getTouchRippleUtilityClass,
|
|
getTransitionProps,
|
|
getTypographyUtilityClass,
|
|
iconButtonClasses_default,
|
|
inputAdornmentClasses_default,
|
|
inputBaseClasses_default,
|
|
inputClasses_default,
|
|
inputLabelClasses_default,
|
|
listClasses_default,
|
|
listItemIconClasses_default,
|
|
listItemTextClasses_default,
|
|
listSubheaderClasses_default,
|
|
menuClasses_default,
|
|
menuItemClasses_default,
|
|
modalClasses_default,
|
|
nativeSelectClasses_default,
|
|
outlinedInputClasses_default,
|
|
paperClasses_default,
|
|
popoverClasses_default,
|
|
reflow,
|
|
selectClasses_default,
|
|
skeletonClasses_default,
|
|
stackClasses_default,
|
|
switchClasses_default,
|
|
tableCellClasses_default,
|
|
tablePaginationClasses_default,
|
|
textFieldClasses_default,
|
|
toolbarClasses_default,
|
|
tooltipClasses_default,
|
|
touchRippleClasses_default,
|
|
typographyClasses_default,
|
|
useAutocomplete_default,
|
|
useFormControl
|
|
} from "./chunk-JXKN7L4A.js";
|
|
import {
|
|
GlobalStyles_default
|
|
} from "./chunk-WDD75YPL.js";
|
|
import {
|
|
CssVarsProvider,
|
|
ThemeProvider,
|
|
adaptV4Theme,
|
|
createMuiStrictModeTheme,
|
|
createStyles,
|
|
excludeVariablesFromRoot_default,
|
|
experimental_sx,
|
|
extendTheme,
|
|
getInitColorSchemeScript,
|
|
getOverlayAlpha_default,
|
|
getUnit,
|
|
makeStyles,
|
|
responsiveFontSizes,
|
|
shouldSkipGeneratingVar,
|
|
toUnitless,
|
|
useColorScheme,
|
|
useTheme,
|
|
useThemeProps,
|
|
withStyles,
|
|
withTheme
|
|
} from "./chunk-Y5IG6O7D.js";
|
|
import {
|
|
alpha,
|
|
createContainer,
|
|
createGrid,
|
|
darken,
|
|
decomposeColor,
|
|
emphasize,
|
|
getContrastRatio,
|
|
getLuminance,
|
|
getThemeProps,
|
|
hexToRgb,
|
|
hslToRgb,
|
|
lighten,
|
|
recomposeColor,
|
|
rgbToHex,
|
|
useMediaQuery,
|
|
useRtl
|
|
} from "./chunk-ZHUI7O2A.js";
|
|
import {
|
|
SvgIcon_default,
|
|
capitalize_default,
|
|
createChainedFunction_default,
|
|
createSvgIcon,
|
|
debounce_default,
|
|
deprecatedPropType_default,
|
|
getSvgIconUtilityClass,
|
|
isMuiElement_default,
|
|
ownerDocument_default,
|
|
ownerWindow_default,
|
|
requirePropFactory_default,
|
|
setRef_default,
|
|
svgIconClasses_default,
|
|
unstable_ClassNameGenerator,
|
|
unsupportedProp_default,
|
|
useControlled_default,
|
|
useEnhancedEffect_default as useEnhancedEffect_default2,
|
|
useEventCallback_default as useEventCallback_default2,
|
|
useForkRef_default,
|
|
useId_default,
|
|
useIsFocusVisible_default
|
|
} from "./chunk-ANTY7EHM.js";
|
|
import {
|
|
useDefaultProps
|
|
} from "./chunk-4B2NWW42.js";
|
|
import {
|
|
rootShouldForwardProp_default,
|
|
slotShouldForwardProp_default,
|
|
styled_default
|
|
} from "./chunk-JWRIH3ST.js";
|
|
import {
|
|
HTMLElementType,
|
|
StyledEngineProvider,
|
|
_extends,
|
|
_objectWithoutPropertiesLoose,
|
|
appendOwnerState_default,
|
|
blue_default,
|
|
chainPropTypes,
|
|
clamp_default,
|
|
clsx_default,
|
|
common_default,
|
|
composeClasses,
|
|
createMixins,
|
|
createMuiTheme,
|
|
createTheme_default2 as createTheme_default,
|
|
createTypography,
|
|
css,
|
|
detectScrollType,
|
|
duration,
|
|
easing,
|
|
elementAcceptingRef_default,
|
|
elementTypeAcceptingRef_default,
|
|
exactProp,
|
|
extendSxProp,
|
|
extractEventHandlers_default,
|
|
generateUtilityClass,
|
|
generateUtilityClasses,
|
|
getDisplayName,
|
|
getNormalizedScrollLeft,
|
|
getPath,
|
|
getReactElementRef,
|
|
getValidReactChildren,
|
|
green_default,
|
|
grey_default,
|
|
handleBreakpoints,
|
|
identifier_default,
|
|
init_clamp,
|
|
init_extends,
|
|
init_getDisplayName,
|
|
integerPropType_default,
|
|
isHostComponent_default,
|
|
keyframes,
|
|
lightBlue_default,
|
|
mergeSlotProps_default,
|
|
orange_default,
|
|
ownerDocument,
|
|
purple_default,
|
|
red_default,
|
|
refType_default,
|
|
require_colorManipulator,
|
|
require_prop_types,
|
|
require_react_is,
|
|
resolveBreakpointValues,
|
|
resolveComponentProps_default,
|
|
resolveProps,
|
|
useControlled,
|
|
useEnhancedEffect_default,
|
|
useEventCallback_default,
|
|
useForkRef,
|
|
useId,
|
|
useIsFocusVisible,
|
|
useSlotProps_default,
|
|
useTimeout,
|
|
visuallyHidden_default
|
|
} from "./chunk-QLKRFDUE.js";
|
|
import {
|
|
require_react_dom
|
|
} from "./chunk-UPELNCPK.js";
|
|
import {
|
|
require_jsx_runtime
|
|
} from "./chunk-WKPQ4ZTV.js";
|
|
import {
|
|
require_react
|
|
} from "./chunk-BG45W2ER.js";
|
|
import {
|
|
__export,
|
|
__toESM
|
|
} from "./chunk-HXA6O6EE.js";
|
|
|
|
// node_modules/@mui/material/colors/index.js
|
|
var colors_exports = {};
|
|
__export(colors_exports, {
|
|
amber: () => amber_default,
|
|
blue: () => blue_default,
|
|
blueGrey: () => blueGrey_default,
|
|
brown: () => brown_default,
|
|
common: () => common_default,
|
|
cyan: () => cyan_default,
|
|
deepOrange: () => deepOrange_default,
|
|
deepPurple: () => deepPurple_default,
|
|
green: () => green_default,
|
|
grey: () => grey_default,
|
|
indigo: () => indigo_default,
|
|
lightBlue: () => lightBlue_default,
|
|
lightGreen: () => lightGreen_default,
|
|
lime: () => lime_default,
|
|
orange: () => orange_default,
|
|
pink: () => pink_default,
|
|
purple: () => purple_default,
|
|
red: () => red_default,
|
|
teal: () => teal_default,
|
|
yellow: () => yellow_default
|
|
});
|
|
|
|
// node_modules/@mui/material/colors/pink.js
|
|
var pink = {
|
|
50: "#fce4ec",
|
|
100: "#f8bbd0",
|
|
200: "#f48fb1",
|
|
300: "#f06292",
|
|
400: "#ec407a",
|
|
500: "#e91e63",
|
|
600: "#d81b60",
|
|
700: "#c2185b",
|
|
800: "#ad1457",
|
|
900: "#880e4f",
|
|
A100: "#ff80ab",
|
|
A200: "#ff4081",
|
|
A400: "#f50057",
|
|
A700: "#c51162"
|
|
};
|
|
var pink_default = pink;
|
|
|
|
// node_modules/@mui/material/colors/deepPurple.js
|
|
var deepPurple = {
|
|
50: "#ede7f6",
|
|
100: "#d1c4e9",
|
|
200: "#b39ddb",
|
|
300: "#9575cd",
|
|
400: "#7e57c2",
|
|
500: "#673ab7",
|
|
600: "#5e35b1",
|
|
700: "#512da8",
|
|
800: "#4527a0",
|
|
900: "#311b92",
|
|
A100: "#b388ff",
|
|
A200: "#7c4dff",
|
|
A400: "#651fff",
|
|
A700: "#6200ea"
|
|
};
|
|
var deepPurple_default = deepPurple;
|
|
|
|
// node_modules/@mui/material/colors/indigo.js
|
|
var indigo = {
|
|
50: "#e8eaf6",
|
|
100: "#c5cae9",
|
|
200: "#9fa8da",
|
|
300: "#7986cb",
|
|
400: "#5c6bc0",
|
|
500: "#3f51b5",
|
|
600: "#3949ab",
|
|
700: "#303f9f",
|
|
800: "#283593",
|
|
900: "#1a237e",
|
|
A100: "#8c9eff",
|
|
A200: "#536dfe",
|
|
A400: "#3d5afe",
|
|
A700: "#304ffe"
|
|
};
|
|
var indigo_default = indigo;
|
|
|
|
// node_modules/@mui/material/colors/cyan.js
|
|
var cyan = {
|
|
50: "#e0f7fa",
|
|
100: "#b2ebf2",
|
|
200: "#80deea",
|
|
300: "#4dd0e1",
|
|
400: "#26c6da",
|
|
500: "#00bcd4",
|
|
600: "#00acc1",
|
|
700: "#0097a7",
|
|
800: "#00838f",
|
|
900: "#006064",
|
|
A100: "#84ffff",
|
|
A200: "#18ffff",
|
|
A400: "#00e5ff",
|
|
A700: "#00b8d4"
|
|
};
|
|
var cyan_default = cyan;
|
|
|
|
// node_modules/@mui/material/colors/teal.js
|
|
var teal = {
|
|
50: "#e0f2f1",
|
|
100: "#b2dfdb",
|
|
200: "#80cbc4",
|
|
300: "#4db6ac",
|
|
400: "#26a69a",
|
|
500: "#009688",
|
|
600: "#00897b",
|
|
700: "#00796b",
|
|
800: "#00695c",
|
|
900: "#004d40",
|
|
A100: "#a7ffeb",
|
|
A200: "#64ffda",
|
|
A400: "#1de9b6",
|
|
A700: "#00bfa5"
|
|
};
|
|
var teal_default = teal;
|
|
|
|
// node_modules/@mui/material/colors/lightGreen.js
|
|
var lightGreen = {
|
|
50: "#f1f8e9",
|
|
100: "#dcedc8",
|
|
200: "#c5e1a5",
|
|
300: "#aed581",
|
|
400: "#9ccc65",
|
|
500: "#8bc34a",
|
|
600: "#7cb342",
|
|
700: "#689f38",
|
|
800: "#558b2f",
|
|
900: "#33691e",
|
|
A100: "#ccff90",
|
|
A200: "#b2ff59",
|
|
A400: "#76ff03",
|
|
A700: "#64dd17"
|
|
};
|
|
var lightGreen_default = lightGreen;
|
|
|
|
// node_modules/@mui/material/colors/lime.js
|
|
var lime = {
|
|
50: "#f9fbe7",
|
|
100: "#f0f4c3",
|
|
200: "#e6ee9c",
|
|
300: "#dce775",
|
|
400: "#d4e157",
|
|
500: "#cddc39",
|
|
600: "#c0ca33",
|
|
700: "#afb42b",
|
|
800: "#9e9d24",
|
|
900: "#827717",
|
|
A100: "#f4ff81",
|
|
A200: "#eeff41",
|
|
A400: "#c6ff00",
|
|
A700: "#aeea00"
|
|
};
|
|
var lime_default = lime;
|
|
|
|
// node_modules/@mui/material/colors/yellow.js
|
|
var yellow = {
|
|
50: "#fffde7",
|
|
100: "#fff9c4",
|
|
200: "#fff59d",
|
|
300: "#fff176",
|
|
400: "#ffee58",
|
|
500: "#ffeb3b",
|
|
600: "#fdd835",
|
|
700: "#fbc02d",
|
|
800: "#f9a825",
|
|
900: "#f57f17",
|
|
A100: "#ffff8d",
|
|
A200: "#ffff00",
|
|
A400: "#ffea00",
|
|
A700: "#ffd600"
|
|
};
|
|
var yellow_default = yellow;
|
|
|
|
// node_modules/@mui/material/colors/amber.js
|
|
var amber = {
|
|
50: "#fff8e1",
|
|
100: "#ffecb3",
|
|
200: "#ffe082",
|
|
300: "#ffd54f",
|
|
400: "#ffca28",
|
|
500: "#ffc107",
|
|
600: "#ffb300",
|
|
700: "#ffa000",
|
|
800: "#ff8f00",
|
|
900: "#ff6f00",
|
|
A100: "#ffe57f",
|
|
A200: "#ffd740",
|
|
A400: "#ffc400",
|
|
A700: "#ffab00"
|
|
};
|
|
var amber_default = amber;
|
|
|
|
// node_modules/@mui/material/colors/deepOrange.js
|
|
var deepOrange = {
|
|
50: "#fbe9e7",
|
|
100: "#ffccbc",
|
|
200: "#ffab91",
|
|
300: "#ff8a65",
|
|
400: "#ff7043",
|
|
500: "#ff5722",
|
|
600: "#f4511e",
|
|
700: "#e64a19",
|
|
800: "#d84315",
|
|
900: "#bf360c",
|
|
A100: "#ff9e80",
|
|
A200: "#ff6e40",
|
|
A400: "#ff3d00",
|
|
A700: "#dd2c00"
|
|
};
|
|
var deepOrange_default = deepOrange;
|
|
|
|
// node_modules/@mui/material/colors/brown.js
|
|
var brown = {
|
|
50: "#efebe9",
|
|
100: "#d7ccc8",
|
|
200: "#bcaaa4",
|
|
300: "#a1887f",
|
|
400: "#8d6e63",
|
|
500: "#795548",
|
|
600: "#6d4c41",
|
|
700: "#5d4037",
|
|
800: "#4e342e",
|
|
900: "#3e2723",
|
|
A100: "#d7ccc8",
|
|
A200: "#bcaaa4",
|
|
A400: "#8d6e63",
|
|
A700: "#5d4037"
|
|
};
|
|
var brown_default = brown;
|
|
|
|
// node_modules/@mui/material/colors/blueGrey.js
|
|
var blueGrey = {
|
|
50: "#eceff1",
|
|
100: "#cfd8dc",
|
|
200: "#b0bec5",
|
|
300: "#90a4ae",
|
|
400: "#78909c",
|
|
500: "#607d8b",
|
|
600: "#546e7a",
|
|
700: "#455a64",
|
|
800: "#37474f",
|
|
900: "#263238",
|
|
A100: "#cfd8dc",
|
|
A200: "#b0bec5",
|
|
A400: "#78909c",
|
|
A700: "#455a64"
|
|
};
|
|
var blueGrey_default = blueGrey;
|
|
|
|
// node_modules/@mui/material/Accordion/Accordion.js
|
|
init_extends();
|
|
var React3 = __toESM(require_react());
|
|
var import_react_is = __toESM(require_react_is());
|
|
var import_prop_types2 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Collapse/Collapse.js
|
|
init_extends();
|
|
var React = __toESM(require_react());
|
|
var import_prop_types = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Collapse/collapseClasses.js
|
|
function getCollapseUtilityClass(slot) {
|
|
return generateUtilityClass("MuiCollapse", slot);
|
|
}
|
|
var collapseClasses = generateUtilityClasses("MuiCollapse", ["root", "horizontal", "vertical", "entered", "hidden", "wrapper", "wrapperInner"]);
|
|
var collapseClasses_default = collapseClasses;
|
|
|
|
// node_modules/@mui/material/Collapse/Collapse.js
|
|
var import_jsx_runtime = __toESM(require_jsx_runtime());
|
|
var _excluded = ["addEndListener", "children", "className", "collapsedSize", "component", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "orientation", "style", "timeout", "TransitionComponent"];
|
|
var useUtilityClasses = (ownerState) => {
|
|
const {
|
|
orientation,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `${orientation}`],
|
|
entered: ["entered"],
|
|
hidden: ["hidden"],
|
|
wrapper: ["wrapper", `${orientation}`],
|
|
wrapperInner: ["wrapperInner", `${orientation}`]
|
|
};
|
|
return composeClasses(slots, getCollapseUtilityClass, classes);
|
|
};
|
|
var CollapseRoot = styled_default("div", {
|
|
name: "MuiCollapse",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.orientation], ownerState.state === "entered" && styles3.entered, ownerState.state === "exited" && !ownerState.in && ownerState.collapsedSize === "0px" && styles3.hidden];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
height: 0,
|
|
overflow: "hidden",
|
|
transition: theme.transitions.create("height")
|
|
}, ownerState.orientation === "horizontal" && {
|
|
height: "auto",
|
|
width: 0,
|
|
transition: theme.transitions.create("width")
|
|
}, ownerState.state === "entered" && _extends({
|
|
height: "auto",
|
|
overflow: "visible"
|
|
}, ownerState.orientation === "horizontal" && {
|
|
width: "auto"
|
|
}), ownerState.state === "exited" && !ownerState.in && ownerState.collapsedSize === "0px" && {
|
|
visibility: "hidden"
|
|
}));
|
|
var CollapseWrapper = styled_default("div", {
|
|
name: "MuiCollapse",
|
|
slot: "Wrapper",
|
|
overridesResolver: (props, styles3) => styles3.wrapper
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
// Hack to get children with a negative margin to not falsify the height computation.
|
|
display: "flex",
|
|
width: "100%"
|
|
}, ownerState.orientation === "horizontal" && {
|
|
width: "auto",
|
|
height: "100%"
|
|
}));
|
|
var CollapseWrapperInner = styled_default("div", {
|
|
name: "MuiCollapse",
|
|
slot: "WrapperInner",
|
|
overridesResolver: (props, styles3) => styles3.wrapperInner
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
width: "100%"
|
|
}, ownerState.orientation === "horizontal" && {
|
|
width: "auto",
|
|
height: "100%"
|
|
}));
|
|
var Collapse = React.forwardRef(function Collapse2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiCollapse"
|
|
});
|
|
const {
|
|
addEndListener,
|
|
children,
|
|
className,
|
|
collapsedSize: collapsedSizeProp = "0px",
|
|
component,
|
|
easing: easing2,
|
|
in: inProp,
|
|
onEnter,
|
|
onEntered,
|
|
onEntering,
|
|
onExit,
|
|
onExited,
|
|
onExiting,
|
|
orientation = "vertical",
|
|
style,
|
|
timeout = duration.standard,
|
|
// eslint-disable-next-line react/prop-types
|
|
TransitionComponent = Transition_default
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
const ownerState = _extends({}, props, {
|
|
orientation,
|
|
collapsedSize: collapsedSizeProp
|
|
});
|
|
const classes = useUtilityClasses(ownerState);
|
|
const theme = useTheme();
|
|
const timer = useTimeout();
|
|
const wrapperRef = React.useRef(null);
|
|
const autoTransitionDuration = React.useRef();
|
|
const collapsedSize = typeof collapsedSizeProp === "number" ? `${collapsedSizeProp}px` : collapsedSizeProp;
|
|
const isHorizontal2 = orientation === "horizontal";
|
|
const size = isHorizontal2 ? "width" : "height";
|
|
const nodeRef = React.useRef(null);
|
|
const handleRef = useForkRef_default(ref, nodeRef);
|
|
const normalizedTransitionCallback = (callback) => (maybeIsAppearing) => {
|
|
if (callback) {
|
|
const node = nodeRef.current;
|
|
if (maybeIsAppearing === void 0) {
|
|
callback(node);
|
|
} else {
|
|
callback(node, maybeIsAppearing);
|
|
}
|
|
}
|
|
};
|
|
const getWrapperSize = () => wrapperRef.current ? wrapperRef.current[isHorizontal2 ? "clientWidth" : "clientHeight"] : 0;
|
|
const handleEnter = normalizedTransitionCallback((node, isAppearing) => {
|
|
if (wrapperRef.current && isHorizontal2) {
|
|
wrapperRef.current.style.position = "absolute";
|
|
}
|
|
node.style[size] = collapsedSize;
|
|
if (onEnter) {
|
|
onEnter(node, isAppearing);
|
|
}
|
|
});
|
|
const handleEntering = normalizedTransitionCallback((node, isAppearing) => {
|
|
const wrapperSize = getWrapperSize();
|
|
if (wrapperRef.current && isHorizontal2) {
|
|
wrapperRef.current.style.position = "";
|
|
}
|
|
const {
|
|
duration: transitionDuration,
|
|
easing: transitionTimingFunction
|
|
} = getTransitionProps({
|
|
style,
|
|
timeout,
|
|
easing: easing2
|
|
}, {
|
|
mode: "enter"
|
|
});
|
|
if (timeout === "auto") {
|
|
const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);
|
|
node.style.transitionDuration = `${duration2}ms`;
|
|
autoTransitionDuration.current = duration2;
|
|
} else {
|
|
node.style.transitionDuration = typeof transitionDuration === "string" ? transitionDuration : `${transitionDuration}ms`;
|
|
}
|
|
node.style[size] = `${wrapperSize}px`;
|
|
node.style.transitionTimingFunction = transitionTimingFunction;
|
|
if (onEntering) {
|
|
onEntering(node, isAppearing);
|
|
}
|
|
});
|
|
const handleEntered = normalizedTransitionCallback((node, isAppearing) => {
|
|
node.style[size] = "auto";
|
|
if (onEntered) {
|
|
onEntered(node, isAppearing);
|
|
}
|
|
});
|
|
const handleExit = normalizedTransitionCallback((node) => {
|
|
node.style[size] = `${getWrapperSize()}px`;
|
|
if (onExit) {
|
|
onExit(node);
|
|
}
|
|
});
|
|
const handleExited = normalizedTransitionCallback(onExited);
|
|
const handleExiting = normalizedTransitionCallback((node) => {
|
|
const wrapperSize = getWrapperSize();
|
|
const {
|
|
duration: transitionDuration,
|
|
easing: transitionTimingFunction
|
|
} = getTransitionProps({
|
|
style,
|
|
timeout,
|
|
easing: easing2
|
|
}, {
|
|
mode: "exit"
|
|
});
|
|
if (timeout === "auto") {
|
|
const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);
|
|
node.style.transitionDuration = `${duration2}ms`;
|
|
autoTransitionDuration.current = duration2;
|
|
} else {
|
|
node.style.transitionDuration = typeof transitionDuration === "string" ? transitionDuration : `${transitionDuration}ms`;
|
|
}
|
|
node.style[size] = collapsedSize;
|
|
node.style.transitionTimingFunction = transitionTimingFunction;
|
|
if (onExiting) {
|
|
onExiting(node);
|
|
}
|
|
});
|
|
const handleAddEndListener = (next) => {
|
|
if (timeout === "auto") {
|
|
timer.start(autoTransitionDuration.current || 0, next);
|
|
}
|
|
if (addEndListener) {
|
|
addEndListener(nodeRef.current, next);
|
|
}
|
|
};
|
|
return (0, import_jsx_runtime.jsx)(TransitionComponent, _extends({
|
|
in: inProp,
|
|
onEnter: handleEnter,
|
|
onEntered: handleEntered,
|
|
onEntering: handleEntering,
|
|
onExit: handleExit,
|
|
onExited: handleExited,
|
|
onExiting: handleExiting,
|
|
addEndListener: handleAddEndListener,
|
|
nodeRef,
|
|
timeout: timeout === "auto" ? null : timeout
|
|
}, other, {
|
|
children: (state, childProps) => (0, import_jsx_runtime.jsx)(CollapseRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, className, {
|
|
"entered": classes.entered,
|
|
"exited": !inProp && collapsedSize === "0px" && classes.hidden
|
|
}[state]),
|
|
style: _extends({
|
|
[isHorizontal2 ? "minWidth" : "minHeight"]: collapsedSize
|
|
}, style),
|
|
ref: handleRef
|
|
}, childProps, {
|
|
// `ownerState` is set after `childProps` to override any existing `ownerState` property in `childProps`
|
|
// that might have been forwarded from the Transition component.
|
|
ownerState: _extends({}, ownerState, {
|
|
state
|
|
}),
|
|
children: (0, import_jsx_runtime.jsx)(CollapseWrapper, {
|
|
ownerState: _extends({}, ownerState, {
|
|
state
|
|
}),
|
|
className: classes.wrapper,
|
|
ref: wrapperRef,
|
|
children: (0, import_jsx_runtime.jsx)(CollapseWrapperInner, {
|
|
ownerState: _extends({}, ownerState, {
|
|
state
|
|
}),
|
|
className: classes.wrapperInner,
|
|
children
|
|
})
|
|
})
|
|
}))
|
|
}));
|
|
});
|
|
true ? Collapse.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Add a custom transition end trigger. Called with the transitioning DOM
|
|
* node and a done callback. Allows for more fine grained transition end
|
|
* logic. Note: Timeouts are still used as a fallback if provided.
|
|
*/
|
|
addEndListener: import_prop_types.default.func,
|
|
/**
|
|
* The content node to be collapsed.
|
|
*/
|
|
children: import_prop_types.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types.default.string,
|
|
/**
|
|
* The width (horizontal) or height (vertical) of the container when collapsed.
|
|
* @default '0px'
|
|
*/
|
|
collapsedSize: import_prop_types.default.oneOfType([import_prop_types.default.number, import_prop_types.default.string]),
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: elementTypeAcceptingRef_default,
|
|
/**
|
|
* The transition timing function.
|
|
* You may specify a single easing or a object containing enter and exit values.
|
|
*/
|
|
easing: import_prop_types.default.oneOfType([import_prop_types.default.shape({
|
|
enter: import_prop_types.default.string,
|
|
exit: import_prop_types.default.string
|
|
}), import_prop_types.default.string]),
|
|
/**
|
|
* If `true`, the component will transition in.
|
|
*/
|
|
in: import_prop_types.default.bool,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEnter: import_prop_types.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEntered: import_prop_types.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEntering: import_prop_types.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExit: import_prop_types.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExited: import_prop_types.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExiting: import_prop_types.default.func,
|
|
/**
|
|
* The transition orientation.
|
|
* @default 'vertical'
|
|
*/
|
|
orientation: import_prop_types.default.oneOf(["horizontal", "vertical"]),
|
|
/**
|
|
* @ignore
|
|
*/
|
|
style: import_prop_types.default.object,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types.default.oneOfType([import_prop_types.default.arrayOf(import_prop_types.default.oneOfType([import_prop_types.default.func, import_prop_types.default.object, import_prop_types.default.bool])), import_prop_types.default.func, import_prop_types.default.object]),
|
|
/**
|
|
* The duration for the transition, in milliseconds.
|
|
* You may specify a single timeout for all transitions, or individually with an object.
|
|
*
|
|
* Set to 'auto' to automatically calculate transition time based on height.
|
|
* @default duration.standard
|
|
*/
|
|
timeout: import_prop_types.default.oneOfType([import_prop_types.default.oneOf(["auto"]), import_prop_types.default.number, import_prop_types.default.shape({
|
|
appear: import_prop_types.default.number,
|
|
enter: import_prop_types.default.number,
|
|
exit: import_prop_types.default.number
|
|
})])
|
|
} : void 0;
|
|
Collapse.muiSupportAuto = true;
|
|
var Collapse_default = Collapse;
|
|
|
|
// node_modules/@mui/material/Accordion/AccordionContext.js
|
|
var React2 = __toESM(require_react());
|
|
var AccordionContext = React2.createContext({});
|
|
if (true) {
|
|
AccordionContext.displayName = "AccordionContext";
|
|
}
|
|
var AccordionContext_default = AccordionContext;
|
|
|
|
// node_modules/@mui/material/utils/useSlot.js
|
|
init_extends();
|
|
var _excluded2 = ["className", "elementType", "ownerState", "externalForwardedProps", "getSlotOwnerState", "internalForwardedProps"];
|
|
var _excluded22 = ["component", "slots", "slotProps"];
|
|
var _excluded3 = ["component"];
|
|
function useSlot(name, parameters) {
|
|
const {
|
|
className,
|
|
elementType: initialElementType,
|
|
ownerState,
|
|
externalForwardedProps,
|
|
getSlotOwnerState,
|
|
internalForwardedProps
|
|
} = parameters, useSlotPropsParams = _objectWithoutPropertiesLoose(parameters, _excluded2);
|
|
const {
|
|
component: rootComponent,
|
|
slots = {
|
|
[name]: void 0
|
|
},
|
|
slotProps = {
|
|
[name]: void 0
|
|
}
|
|
} = externalForwardedProps, other = _objectWithoutPropertiesLoose(externalForwardedProps, _excluded22);
|
|
const elementType = slots[name] || initialElementType;
|
|
const resolvedComponentsProps = resolveComponentProps_default(slotProps[name], ownerState);
|
|
const _mergeSlotProps = mergeSlotProps_default(_extends({
|
|
className
|
|
}, useSlotPropsParams, {
|
|
externalForwardedProps: name === "root" ? other : void 0,
|
|
externalSlotProps: resolvedComponentsProps
|
|
})), {
|
|
props: {
|
|
component: slotComponent
|
|
},
|
|
internalRef
|
|
} = _mergeSlotProps, mergedProps = _objectWithoutPropertiesLoose(_mergeSlotProps.props, _excluded3);
|
|
const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, parameters.ref);
|
|
const slotOwnerState = getSlotOwnerState ? getSlotOwnerState(mergedProps) : {};
|
|
const finalOwnerState = _extends({}, ownerState, slotOwnerState);
|
|
const LeafComponent = name === "root" ? slotComponent || rootComponent : slotComponent;
|
|
const props = appendOwnerState_default(elementType, _extends({}, name === "root" && !rootComponent && !slots[name] && internalForwardedProps, name !== "root" && !slots[name] && internalForwardedProps, mergedProps, LeafComponent && {
|
|
as: LeafComponent
|
|
}, {
|
|
ref
|
|
}), finalOwnerState);
|
|
Object.keys(slotOwnerState).forEach((propName) => {
|
|
delete props[propName];
|
|
});
|
|
return [elementType, props];
|
|
}
|
|
|
|
// node_modules/@mui/material/Accordion/accordionClasses.js
|
|
function getAccordionUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAccordion", slot);
|
|
}
|
|
var accordionClasses = generateUtilityClasses("MuiAccordion", ["root", "rounded", "expanded", "disabled", "gutters", "region"]);
|
|
var accordionClasses_default = accordionClasses;
|
|
|
|
// node_modules/@mui/material/Accordion/Accordion.js
|
|
var import_jsx_runtime2 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime3 = __toESM(require_jsx_runtime());
|
|
var _excluded4 = ["children", "className", "defaultExpanded", "disabled", "disableGutters", "expanded", "onChange", "square", "slots", "slotProps", "TransitionComponent", "TransitionProps"];
|
|
var useUtilityClasses2 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
square,
|
|
expanded,
|
|
disabled,
|
|
disableGutters
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", !square && "rounded", expanded && "expanded", disabled && "disabled", !disableGutters && "gutters"],
|
|
region: ["region"]
|
|
};
|
|
return composeClasses(slots, getAccordionUtilityClass, classes);
|
|
};
|
|
var AccordionRoot = styled_default(Paper_default, {
|
|
name: "MuiAccordion",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [{
|
|
[`& .${accordionClasses_default.region}`]: styles3.region
|
|
}, styles3.root, !ownerState.square && styles3.rounded, !ownerState.disableGutters && styles3.gutters];
|
|
}
|
|
})(({
|
|
theme
|
|
}) => {
|
|
const transition = {
|
|
duration: theme.transitions.duration.shortest
|
|
};
|
|
return {
|
|
position: "relative",
|
|
transition: theme.transitions.create(["margin"], transition),
|
|
overflowAnchor: "none",
|
|
// Keep the same scrolling position
|
|
"&::before": {
|
|
position: "absolute",
|
|
left: 0,
|
|
top: -1,
|
|
right: 0,
|
|
height: 1,
|
|
content: '""',
|
|
opacity: 1,
|
|
backgroundColor: (theme.vars || theme).palette.divider,
|
|
transition: theme.transitions.create(["opacity", "background-color"], transition)
|
|
},
|
|
"&:first-of-type": {
|
|
"&::before": {
|
|
display: "none"
|
|
}
|
|
},
|
|
[`&.${accordionClasses_default.expanded}`]: {
|
|
"&::before": {
|
|
opacity: 0
|
|
},
|
|
"&:first-of-type": {
|
|
marginTop: 0
|
|
},
|
|
"&:last-of-type": {
|
|
marginBottom: 0
|
|
},
|
|
"& + &": {
|
|
"&::before": {
|
|
display: "none"
|
|
}
|
|
}
|
|
},
|
|
[`&.${accordionClasses_default.disabled}`]: {
|
|
backgroundColor: (theme.vars || theme).palette.action.disabledBackground
|
|
}
|
|
};
|
|
}, ({
|
|
theme
|
|
}) => ({
|
|
variants: [{
|
|
props: (props) => !props.square,
|
|
style: {
|
|
borderRadius: 0,
|
|
"&:first-of-type": {
|
|
borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,
|
|
borderTopRightRadius: (theme.vars || theme).shape.borderRadius
|
|
},
|
|
"&:last-of-type": {
|
|
borderBottomLeftRadius: (theme.vars || theme).shape.borderRadius,
|
|
borderBottomRightRadius: (theme.vars || theme).shape.borderRadius,
|
|
// Fix a rendering issue on Edge
|
|
"@supports (-ms-ime-align: auto)": {
|
|
borderBottomLeftRadius: 0,
|
|
borderBottomRightRadius: 0
|
|
}
|
|
}
|
|
}
|
|
}, {
|
|
props: (props) => !props.disableGutters,
|
|
style: {
|
|
[`&.${accordionClasses_default.expanded}`]: {
|
|
margin: "16px 0"
|
|
}
|
|
}
|
|
}]
|
|
}));
|
|
var Accordion = React3.forwardRef(function Accordion2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAccordion"
|
|
});
|
|
const {
|
|
children: childrenProp,
|
|
className,
|
|
defaultExpanded = false,
|
|
disabled = false,
|
|
disableGutters = false,
|
|
expanded: expandedProp,
|
|
onChange,
|
|
square = false,
|
|
slots = {},
|
|
slotProps = {},
|
|
TransitionComponent: TransitionComponentProp,
|
|
TransitionProps: TransitionPropsProp
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded4);
|
|
const [expanded, setExpandedState] = useControlled_default({
|
|
controlled: expandedProp,
|
|
default: defaultExpanded,
|
|
name: "Accordion",
|
|
state: "expanded"
|
|
});
|
|
const handleChange = React3.useCallback((event) => {
|
|
setExpandedState(!expanded);
|
|
if (onChange) {
|
|
onChange(event, !expanded);
|
|
}
|
|
}, [expanded, onChange, setExpandedState]);
|
|
const [summary, ...children] = React3.Children.toArray(childrenProp);
|
|
const contextValue = React3.useMemo(() => ({
|
|
expanded,
|
|
disabled,
|
|
disableGutters,
|
|
toggle: handleChange
|
|
}), [expanded, disabled, disableGutters, handleChange]);
|
|
const ownerState = _extends({}, props, {
|
|
square,
|
|
disabled,
|
|
disableGutters,
|
|
expanded
|
|
});
|
|
const classes = useUtilityClasses2(ownerState);
|
|
const backwardCompatibleSlots = _extends({
|
|
transition: TransitionComponentProp
|
|
}, slots);
|
|
const backwardCompatibleSlotProps = _extends({
|
|
transition: TransitionPropsProp
|
|
}, slotProps);
|
|
const [TransitionSlot, transitionProps] = useSlot("transition", {
|
|
elementType: Collapse_default,
|
|
externalForwardedProps: {
|
|
slots: backwardCompatibleSlots,
|
|
slotProps: backwardCompatibleSlotProps
|
|
},
|
|
ownerState
|
|
});
|
|
return (0, import_jsx_runtime3.jsxs)(AccordionRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState,
|
|
square
|
|
}, other, {
|
|
children: [(0, import_jsx_runtime2.jsx)(AccordionContext_default.Provider, {
|
|
value: contextValue,
|
|
children: summary
|
|
}), (0, import_jsx_runtime2.jsx)(TransitionSlot, _extends({
|
|
in: expanded,
|
|
timeout: "auto"
|
|
}, transitionProps, {
|
|
children: (0, import_jsx_runtime2.jsx)("div", {
|
|
"aria-labelledby": summary.props.id,
|
|
id: summary.props["aria-controls"],
|
|
role: "region",
|
|
className: classes.region,
|
|
children
|
|
})
|
|
}))]
|
|
}));
|
|
});
|
|
true ? Accordion.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: chainPropTypes(import_prop_types2.default.node.isRequired, (props) => {
|
|
const summary = React3.Children.toArray(props.children)[0];
|
|
if ((0, import_react_is.isFragment)(summary)) {
|
|
return new Error("MUI: The Accordion doesn't accept a Fragment as a child. Consider providing an array instead.");
|
|
}
|
|
if (!React3.isValidElement(summary)) {
|
|
return new Error("MUI: Expected the first child of Accordion to be a valid element.");
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types2.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types2.default.string,
|
|
/**
|
|
* If `true`, expands the accordion by default.
|
|
* @default false
|
|
*/
|
|
defaultExpanded: import_prop_types2.default.bool,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types2.default.bool,
|
|
/**
|
|
* If `true`, it removes the margin between two expanded accordion items and the increase of height.
|
|
* @default false
|
|
*/
|
|
disableGutters: import_prop_types2.default.bool,
|
|
/**
|
|
* If `true`, expands the accordion, otherwise collapse it.
|
|
* Setting this prop enables control over the accordion.
|
|
*/
|
|
expanded: import_prop_types2.default.bool,
|
|
/**
|
|
* Callback fired when the expand/collapse state is changed.
|
|
*
|
|
* @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.
|
|
* @param {boolean} expanded The `expanded` state of the accordion.
|
|
*/
|
|
onChange: import_prop_types2.default.func,
|
|
/**
|
|
* The props used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types2.default.shape({
|
|
transition: import_prop_types2.default.oneOfType([import_prop_types2.default.func, import_prop_types2.default.object])
|
|
}),
|
|
/**
|
|
* The components used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types2.default.shape({
|
|
transition: import_prop_types2.default.elementType
|
|
}),
|
|
/**
|
|
* If `true`, rounded corners are disabled.
|
|
* @default false
|
|
*/
|
|
square: import_prop_types2.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types2.default.oneOfType([import_prop_types2.default.arrayOf(import_prop_types2.default.oneOfType([import_prop_types2.default.func, import_prop_types2.default.object, import_prop_types2.default.bool])), import_prop_types2.default.func, import_prop_types2.default.object]),
|
|
/**
|
|
* The component used for the transition.
|
|
* [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
|
|
* @deprecated Use `slots.transition` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
|
|
*/
|
|
TransitionComponent: import_prop_types2.default.elementType,
|
|
/**
|
|
* Props applied to the transition element.
|
|
* By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
|
|
* @deprecated Use `slotProps.transition` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
|
|
*/
|
|
TransitionProps: import_prop_types2.default.object
|
|
} : void 0;
|
|
var Accordion_default = Accordion;
|
|
|
|
// node_modules/@mui/material/AccordionActions/AccordionActions.js
|
|
init_extends();
|
|
var React4 = __toESM(require_react());
|
|
var import_prop_types3 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/AccordionActions/accordionActionsClasses.js
|
|
function getAccordionActionsUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAccordionActions", slot);
|
|
}
|
|
var accordionActionsClasses = generateUtilityClasses("MuiAccordionActions", ["root", "spacing"]);
|
|
var accordionActionsClasses_default = accordionActionsClasses;
|
|
|
|
// node_modules/@mui/material/AccordionActions/AccordionActions.js
|
|
var import_jsx_runtime4 = __toESM(require_jsx_runtime());
|
|
var _excluded5 = ["className", "disableSpacing"];
|
|
var useUtilityClasses3 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
disableSpacing
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", !disableSpacing && "spacing"]
|
|
};
|
|
return composeClasses(slots, getAccordionActionsUtilityClass, classes);
|
|
};
|
|
var AccordionActionsRoot = styled_default("div", {
|
|
name: "MuiAccordionActions",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, !ownerState.disableSpacing && styles3.spacing];
|
|
}
|
|
})({
|
|
display: "flex",
|
|
alignItems: "center",
|
|
padding: 8,
|
|
justifyContent: "flex-end",
|
|
variants: [{
|
|
props: (props) => !props.disableSpacing,
|
|
style: {
|
|
"& > :not(style) ~ :not(style)": {
|
|
marginLeft: 8
|
|
}
|
|
}
|
|
}]
|
|
});
|
|
var AccordionActions = React4.forwardRef(function AccordionActions2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAccordionActions"
|
|
});
|
|
const {
|
|
className,
|
|
disableSpacing = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded5);
|
|
const ownerState = _extends({}, props, {
|
|
disableSpacing
|
|
});
|
|
const classes = useUtilityClasses3(ownerState);
|
|
return (0, import_jsx_runtime4.jsx)(AccordionActionsRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other));
|
|
});
|
|
true ? AccordionActions.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types3.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types3.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types3.default.string,
|
|
/**
|
|
* If `true`, the actions do not have additional margin.
|
|
* @default false
|
|
*/
|
|
disableSpacing: import_prop_types3.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types3.default.oneOfType([import_prop_types3.default.arrayOf(import_prop_types3.default.oneOfType([import_prop_types3.default.func, import_prop_types3.default.object, import_prop_types3.default.bool])), import_prop_types3.default.func, import_prop_types3.default.object])
|
|
} : void 0;
|
|
var AccordionActions_default = AccordionActions;
|
|
|
|
// node_modules/@mui/material/AccordionDetails/AccordionDetails.js
|
|
init_extends();
|
|
var React5 = __toESM(require_react());
|
|
var import_prop_types4 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js
|
|
function getAccordionDetailsUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAccordionDetails", slot);
|
|
}
|
|
var accordionDetailsClasses = generateUtilityClasses("MuiAccordionDetails", ["root"]);
|
|
var accordionDetailsClasses_default = accordionDetailsClasses;
|
|
|
|
// node_modules/@mui/material/AccordionDetails/AccordionDetails.js
|
|
var import_jsx_runtime5 = __toESM(require_jsx_runtime());
|
|
var _excluded6 = ["className"];
|
|
var useUtilityClasses4 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getAccordionDetailsUtilityClass, classes);
|
|
};
|
|
var AccordionDetailsRoot = styled_default("div", {
|
|
name: "MuiAccordionDetails",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
padding: theme.spacing(1, 2, 2)
|
|
}));
|
|
var AccordionDetails = React5.forwardRef(function AccordionDetails2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAccordionDetails"
|
|
});
|
|
const {
|
|
className
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded6);
|
|
const ownerState = props;
|
|
const classes = useUtilityClasses4(ownerState);
|
|
return (0, import_jsx_runtime5.jsx)(AccordionDetailsRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other));
|
|
});
|
|
true ? AccordionDetails.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types4.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types4.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types4.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types4.default.oneOfType([import_prop_types4.default.arrayOf(import_prop_types4.default.oneOfType([import_prop_types4.default.func, import_prop_types4.default.object, import_prop_types4.default.bool])), import_prop_types4.default.func, import_prop_types4.default.object])
|
|
} : void 0;
|
|
var AccordionDetails_default = AccordionDetails;
|
|
|
|
// node_modules/@mui/material/AccordionSummary/AccordionSummary.js
|
|
init_extends();
|
|
var React6 = __toESM(require_react());
|
|
var import_prop_types5 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js
|
|
function getAccordionSummaryUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAccordionSummary", slot);
|
|
}
|
|
var accordionSummaryClasses = generateUtilityClasses("MuiAccordionSummary", ["root", "expanded", "focusVisible", "disabled", "gutters", "contentGutters", "content", "expandIconWrapper"]);
|
|
var accordionSummaryClasses_default = accordionSummaryClasses;
|
|
|
|
// node_modules/@mui/material/AccordionSummary/AccordionSummary.js
|
|
var import_jsx_runtime6 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime7 = __toESM(require_jsx_runtime());
|
|
var _excluded7 = ["children", "className", "expandIcon", "focusVisibleClassName", "onClick"];
|
|
var useUtilityClasses5 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
expanded,
|
|
disabled,
|
|
disableGutters
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", expanded && "expanded", disabled && "disabled", !disableGutters && "gutters"],
|
|
focusVisible: ["focusVisible"],
|
|
content: ["content", expanded && "expanded", !disableGutters && "contentGutters"],
|
|
expandIconWrapper: ["expandIconWrapper", expanded && "expanded"]
|
|
};
|
|
return composeClasses(slots, getAccordionSummaryUtilityClass, classes);
|
|
};
|
|
var AccordionSummaryRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiAccordionSummary",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(({
|
|
theme
|
|
}) => {
|
|
const transition = {
|
|
duration: theme.transitions.duration.shortest
|
|
};
|
|
return {
|
|
display: "flex",
|
|
minHeight: 48,
|
|
padding: theme.spacing(0, 2),
|
|
transition: theme.transitions.create(["min-height", "background-color"], transition),
|
|
[`&.${accordionSummaryClasses_default.focusVisible}`]: {
|
|
backgroundColor: (theme.vars || theme).palette.action.focus
|
|
},
|
|
[`&.${accordionSummaryClasses_default.disabled}`]: {
|
|
opacity: (theme.vars || theme).palette.action.disabledOpacity
|
|
},
|
|
[`&:hover:not(.${accordionSummaryClasses_default.disabled})`]: {
|
|
cursor: "pointer"
|
|
},
|
|
variants: [{
|
|
props: (props) => !props.disableGutters,
|
|
style: {
|
|
[`&.${accordionSummaryClasses_default.expanded}`]: {
|
|
minHeight: 64
|
|
}
|
|
}
|
|
}]
|
|
};
|
|
});
|
|
var AccordionSummaryContent = styled_default("div", {
|
|
name: "MuiAccordionSummary",
|
|
slot: "Content",
|
|
overridesResolver: (props, styles3) => styles3.content
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
display: "flex",
|
|
flexGrow: 1,
|
|
margin: "12px 0",
|
|
variants: [{
|
|
props: (props) => !props.disableGutters,
|
|
style: {
|
|
transition: theme.transitions.create(["margin"], {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
[`&.${accordionSummaryClasses_default.expanded}`]: {
|
|
margin: "20px 0"
|
|
}
|
|
}
|
|
}]
|
|
}));
|
|
var AccordionSummaryExpandIconWrapper = styled_default("div", {
|
|
name: "MuiAccordionSummary",
|
|
slot: "ExpandIconWrapper",
|
|
overridesResolver: (props, styles3) => styles3.expandIconWrapper
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
display: "flex",
|
|
color: (theme.vars || theme).palette.action.active,
|
|
transform: "rotate(0deg)",
|
|
transition: theme.transitions.create("transform", {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
[`&.${accordionSummaryClasses_default.expanded}`]: {
|
|
transform: "rotate(180deg)"
|
|
}
|
|
}));
|
|
var AccordionSummary = React6.forwardRef(function AccordionSummary2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAccordionSummary"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
expandIcon,
|
|
focusVisibleClassName,
|
|
onClick
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded7);
|
|
const {
|
|
disabled = false,
|
|
disableGutters,
|
|
expanded,
|
|
toggle
|
|
} = React6.useContext(AccordionContext_default);
|
|
const handleChange = (event) => {
|
|
if (toggle) {
|
|
toggle(event);
|
|
}
|
|
if (onClick) {
|
|
onClick(event);
|
|
}
|
|
};
|
|
const ownerState = _extends({}, props, {
|
|
expanded,
|
|
disabled,
|
|
disableGutters
|
|
});
|
|
const classes = useUtilityClasses5(ownerState);
|
|
return (0, import_jsx_runtime7.jsxs)(AccordionSummaryRoot, _extends({
|
|
focusRipple: false,
|
|
disableRipple: true,
|
|
disabled,
|
|
component: "div",
|
|
"aria-expanded": expanded,
|
|
className: clsx_default(classes.root, className),
|
|
focusVisibleClassName: clsx_default(classes.focusVisible, focusVisibleClassName),
|
|
onClick: handleChange,
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: [(0, import_jsx_runtime6.jsx)(AccordionSummaryContent, {
|
|
className: classes.content,
|
|
ownerState,
|
|
children
|
|
}), expandIcon && (0, import_jsx_runtime6.jsx)(AccordionSummaryExpandIconWrapper, {
|
|
className: classes.expandIconWrapper,
|
|
ownerState,
|
|
children: expandIcon
|
|
})]
|
|
}));
|
|
});
|
|
true ? AccordionSummary.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types5.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types5.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types5.default.string,
|
|
/**
|
|
* The icon to display as the expand indicator.
|
|
*/
|
|
expandIcon: import_prop_types5.default.node,
|
|
/**
|
|
* This prop can help identify which element has keyboard focus.
|
|
* The class name will be applied when the element gains the focus through keyboard interaction.
|
|
* It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
|
|
* The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
|
|
* A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
|
|
* if needed.
|
|
*/
|
|
focusVisibleClassName: import_prop_types5.default.string,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onClick: import_prop_types5.default.func,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types5.default.oneOfType([import_prop_types5.default.arrayOf(import_prop_types5.default.oneOfType([import_prop_types5.default.func, import_prop_types5.default.object, import_prop_types5.default.bool])), import_prop_types5.default.func, import_prop_types5.default.object])
|
|
} : void 0;
|
|
var AccordionSummary_default = AccordionSummary;
|
|
|
|
// node_modules/@mui/material/Alert/Alert.js
|
|
init_extends();
|
|
var React11 = __toESM(require_react());
|
|
var import_prop_types6 = __toESM(require_prop_types());
|
|
var import_colorManipulator = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/Alert/alertClasses.js
|
|
function getAlertUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAlert", slot);
|
|
}
|
|
var alertClasses = generateUtilityClasses("MuiAlert", ["root", "action", "icon", "message", "filled", "colorSuccess", "colorInfo", "colorWarning", "colorError", "filledSuccess", "filledInfo", "filledWarning", "filledError", "outlined", "outlinedSuccess", "outlinedInfo", "outlinedWarning", "outlinedError", "standard", "standardSuccess", "standardInfo", "standardWarning", "standardError"]);
|
|
var alertClasses_default = alertClasses;
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js
|
|
var React7 = __toESM(require_react());
|
|
var import_jsx_runtime8 = __toESM(require_jsx_runtime());
|
|
var SuccessOutlined_default = createSvgIcon((0, import_jsx_runtime8.jsx)("path", {
|
|
d: "M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"
|
|
}), "SuccessOutlined");
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js
|
|
var React8 = __toESM(require_react());
|
|
var import_jsx_runtime9 = __toESM(require_jsx_runtime());
|
|
var ReportProblemOutlined_default = createSvgIcon((0, import_jsx_runtime9.jsx)("path", {
|
|
d: "M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"
|
|
}), "ReportProblemOutlined");
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/ErrorOutline.js
|
|
var React9 = __toESM(require_react());
|
|
var import_jsx_runtime10 = __toESM(require_jsx_runtime());
|
|
var ErrorOutline_default = createSvgIcon((0, import_jsx_runtime10.jsx)("path", {
|
|
d: "M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
|
|
}), "ErrorOutline");
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/InfoOutlined.js
|
|
var React10 = __toESM(require_react());
|
|
var import_jsx_runtime11 = __toESM(require_jsx_runtime());
|
|
var InfoOutlined_default = createSvgIcon((0, import_jsx_runtime11.jsx)("path", {
|
|
d: "M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"
|
|
}), "InfoOutlined");
|
|
|
|
// node_modules/@mui/material/Alert/Alert.js
|
|
var import_jsx_runtime12 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime13 = __toESM(require_jsx_runtime());
|
|
var _excluded8 = ["action", "children", "className", "closeText", "color", "components", "componentsProps", "icon", "iconMapping", "onClose", "role", "severity", "slotProps", "slots", "variant"];
|
|
var useUtilityClasses6 = (ownerState) => {
|
|
const {
|
|
variant,
|
|
color,
|
|
severity,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `color${capitalize_default(color || severity)}`, `${variant}${capitalize_default(color || severity)}`, `${variant}`],
|
|
icon: ["icon"],
|
|
message: ["message"],
|
|
action: ["action"]
|
|
};
|
|
return composeClasses(slots, getAlertUtilityClass, classes);
|
|
};
|
|
var AlertRoot = styled_default(Paper_default, {
|
|
name: "MuiAlert",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.variant], styles3[`${ownerState.variant}${capitalize_default(ownerState.color || ownerState.severity)}`]];
|
|
}
|
|
})(({
|
|
theme
|
|
}) => {
|
|
const getColor = theme.palette.mode === "light" ? import_colorManipulator.darken : import_colorManipulator.lighten;
|
|
const getBackgroundColor = theme.palette.mode === "light" ? import_colorManipulator.lighten : import_colorManipulator.darken;
|
|
return _extends({}, theme.typography.body2, {
|
|
backgroundColor: "transparent",
|
|
display: "flex",
|
|
padding: "6px 16px",
|
|
variants: [...Object.entries(theme.palette).filter(([, value]) => value.main && value.light).map(([color]) => ({
|
|
props: {
|
|
colorSeverity: color,
|
|
variant: "standard"
|
|
},
|
|
style: {
|
|
color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),
|
|
backgroundColor: theme.vars ? theme.vars.palette.Alert[`${color}StandardBg`] : getBackgroundColor(theme.palette[color].light, 0.9),
|
|
[`& .${alertClasses_default.icon}`]: theme.vars ? {
|
|
color: theme.vars.palette.Alert[`${color}IconColor`]
|
|
} : {
|
|
color: theme.palette[color].main
|
|
}
|
|
}
|
|
})), ...Object.entries(theme.palette).filter(([, value]) => value.main && value.light).map(([color]) => ({
|
|
props: {
|
|
colorSeverity: color,
|
|
variant: "outlined"
|
|
},
|
|
style: {
|
|
color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),
|
|
border: `1px solid ${(theme.vars || theme).palette[color].light}`,
|
|
[`& .${alertClasses_default.icon}`]: theme.vars ? {
|
|
color: theme.vars.palette.Alert[`${color}IconColor`]
|
|
} : {
|
|
color: theme.palette[color].main
|
|
}
|
|
}
|
|
})), ...Object.entries(theme.palette).filter(([, value]) => value.main && value.dark).map(([color]) => ({
|
|
props: {
|
|
colorSeverity: color,
|
|
variant: "filled"
|
|
},
|
|
style: _extends({
|
|
fontWeight: theme.typography.fontWeightMedium
|
|
}, theme.vars ? {
|
|
color: theme.vars.palette.Alert[`${color}FilledColor`],
|
|
backgroundColor: theme.vars.palette.Alert[`${color}FilledBg`]
|
|
} : {
|
|
backgroundColor: theme.palette.mode === "dark" ? theme.palette[color].dark : theme.palette[color].main,
|
|
color: theme.palette.getContrastText(theme.palette[color].main)
|
|
})
|
|
}))]
|
|
});
|
|
});
|
|
var AlertIcon = styled_default("div", {
|
|
name: "MuiAlert",
|
|
slot: "Icon",
|
|
overridesResolver: (props, styles3) => styles3.icon
|
|
})({
|
|
marginRight: 12,
|
|
padding: "7px 0",
|
|
display: "flex",
|
|
fontSize: 22,
|
|
opacity: 0.9
|
|
});
|
|
var AlertMessage = styled_default("div", {
|
|
name: "MuiAlert",
|
|
slot: "Message",
|
|
overridesResolver: (props, styles3) => styles3.message
|
|
})({
|
|
padding: "8px 0",
|
|
minWidth: 0,
|
|
overflow: "auto"
|
|
});
|
|
var AlertAction = styled_default("div", {
|
|
name: "MuiAlert",
|
|
slot: "Action",
|
|
overridesResolver: (props, styles3) => styles3.action
|
|
})({
|
|
display: "flex",
|
|
alignItems: "flex-start",
|
|
padding: "4px 0 0 16px",
|
|
marginLeft: "auto",
|
|
marginRight: -8
|
|
});
|
|
var defaultIconMapping = {
|
|
success: (0, import_jsx_runtime12.jsx)(SuccessOutlined_default, {
|
|
fontSize: "inherit"
|
|
}),
|
|
warning: (0, import_jsx_runtime12.jsx)(ReportProblemOutlined_default, {
|
|
fontSize: "inherit"
|
|
}),
|
|
error: (0, import_jsx_runtime12.jsx)(ErrorOutline_default, {
|
|
fontSize: "inherit"
|
|
}),
|
|
info: (0, import_jsx_runtime12.jsx)(InfoOutlined_default, {
|
|
fontSize: "inherit"
|
|
})
|
|
};
|
|
var Alert = React11.forwardRef(function Alert2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAlert"
|
|
});
|
|
const {
|
|
action,
|
|
children,
|
|
className,
|
|
closeText = "Close",
|
|
color,
|
|
components = {},
|
|
componentsProps = {},
|
|
icon,
|
|
iconMapping = defaultIconMapping,
|
|
onClose,
|
|
role = "alert",
|
|
severity = "success",
|
|
slotProps = {},
|
|
slots = {},
|
|
variant = "standard"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded8);
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
severity,
|
|
variant,
|
|
colorSeverity: color || severity
|
|
});
|
|
const classes = useUtilityClasses6(ownerState);
|
|
const externalForwardedProps = {
|
|
slots: _extends({
|
|
closeButton: components.CloseButton,
|
|
closeIcon: components.CloseIcon
|
|
}, slots),
|
|
slotProps: _extends({}, componentsProps, slotProps)
|
|
};
|
|
const [CloseButtonSlot, closeButtonProps] = useSlot("closeButton", {
|
|
elementType: IconButton_default,
|
|
externalForwardedProps,
|
|
ownerState
|
|
});
|
|
const [CloseIconSlot, closeIconProps] = useSlot("closeIcon", {
|
|
elementType: Close_default,
|
|
externalForwardedProps,
|
|
ownerState
|
|
});
|
|
return (0, import_jsx_runtime13.jsxs)(AlertRoot, _extends({
|
|
role,
|
|
elevation: 0,
|
|
ownerState,
|
|
className: clsx_default(classes.root, className),
|
|
ref
|
|
}, other, {
|
|
children: [icon !== false ? (0, import_jsx_runtime12.jsx)(AlertIcon, {
|
|
ownerState,
|
|
className: classes.icon,
|
|
children: icon || iconMapping[severity] || defaultIconMapping[severity]
|
|
}) : null, (0, import_jsx_runtime12.jsx)(AlertMessage, {
|
|
ownerState,
|
|
className: classes.message,
|
|
children
|
|
}), action != null ? (0, import_jsx_runtime12.jsx)(AlertAction, {
|
|
ownerState,
|
|
className: classes.action,
|
|
children: action
|
|
}) : null, action == null && onClose ? (0, import_jsx_runtime12.jsx)(AlertAction, {
|
|
ownerState,
|
|
className: classes.action,
|
|
children: (0, import_jsx_runtime12.jsx)(CloseButtonSlot, _extends({
|
|
size: "small",
|
|
"aria-label": closeText,
|
|
title: closeText,
|
|
color: "inherit",
|
|
onClick: onClose
|
|
}, closeButtonProps, {
|
|
children: (0, import_jsx_runtime12.jsx)(CloseIconSlot, _extends({
|
|
fontSize: "small"
|
|
}, closeIconProps))
|
|
}))
|
|
}) : null]
|
|
}));
|
|
});
|
|
true ? Alert.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The action to display. It renders after the message, at the end of the alert.
|
|
*/
|
|
action: import_prop_types6.default.node,
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types6.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types6.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types6.default.string,
|
|
/**
|
|
* Override the default label for the *close popup* icon button.
|
|
*
|
|
* For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).
|
|
* @default 'Close'
|
|
*/
|
|
closeText: import_prop_types6.default.string,
|
|
/**
|
|
* The color of the component. Unless provided, the value is taken from the `severity` prop.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
*/
|
|
color: import_prop_types6.default.oneOfType([import_prop_types6.default.oneOf(["error", "info", "success", "warning"]), import_prop_types6.default.string]),
|
|
/**
|
|
* The components used for each slot inside.
|
|
*
|
|
* @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
|
|
*
|
|
* @default {}
|
|
*/
|
|
components: import_prop_types6.default.shape({
|
|
CloseButton: import_prop_types6.default.elementType,
|
|
CloseIcon: import_prop_types6.default.elementType
|
|
}),
|
|
/**
|
|
* The extra props for the slot components.
|
|
* You can override the existing props or add new ones.
|
|
*
|
|
* @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
|
|
*
|
|
* @default {}
|
|
*/
|
|
componentsProps: import_prop_types6.default.shape({
|
|
closeButton: import_prop_types6.default.object,
|
|
closeIcon: import_prop_types6.default.object
|
|
}),
|
|
/**
|
|
* Override the icon displayed before the children.
|
|
* Unless provided, the icon is mapped to the value of the `severity` prop.
|
|
* Set to `false` to remove the `icon`.
|
|
*/
|
|
icon: import_prop_types6.default.node,
|
|
/**
|
|
* The component maps the `severity` prop to a range of different icons,
|
|
* for instance success to `<SuccessOutlined>`.
|
|
* If you wish to change this mapping, you can provide your own.
|
|
* Alternatively, you can use the `icon` prop to override the icon displayed.
|
|
*/
|
|
iconMapping: import_prop_types6.default.shape({
|
|
error: import_prop_types6.default.node,
|
|
info: import_prop_types6.default.node,
|
|
success: import_prop_types6.default.node,
|
|
warning: import_prop_types6.default.node
|
|
}),
|
|
/**
|
|
* Callback fired when the component requests to be closed.
|
|
* When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.
|
|
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
*/
|
|
onClose: import_prop_types6.default.func,
|
|
/**
|
|
* The ARIA role attribute of the element.
|
|
* @default 'alert'
|
|
*/
|
|
role: import_prop_types6.default.string,
|
|
/**
|
|
* The severity of the alert. This defines the color and icon used.
|
|
* @default 'success'
|
|
*/
|
|
severity: import_prop_types6.default.oneOfType([import_prop_types6.default.oneOf(["error", "info", "success", "warning"]), import_prop_types6.default.string]),
|
|
/**
|
|
* The props used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types6.default.shape({
|
|
closeButton: import_prop_types6.default.oneOfType([import_prop_types6.default.func, import_prop_types6.default.object]),
|
|
closeIcon: import_prop_types6.default.oneOfType([import_prop_types6.default.func, import_prop_types6.default.object])
|
|
}),
|
|
/**
|
|
* The components used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types6.default.shape({
|
|
closeButton: import_prop_types6.default.elementType,
|
|
closeIcon: import_prop_types6.default.elementType
|
|
}),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types6.default.oneOfType([import_prop_types6.default.arrayOf(import_prop_types6.default.oneOfType([import_prop_types6.default.func, import_prop_types6.default.object, import_prop_types6.default.bool])), import_prop_types6.default.func, import_prop_types6.default.object]),
|
|
/**
|
|
* The variant to use.
|
|
* @default 'standard'
|
|
*/
|
|
variant: import_prop_types6.default.oneOfType([import_prop_types6.default.oneOf(["filled", "outlined", "standard"]), import_prop_types6.default.string])
|
|
} : void 0;
|
|
var Alert_default = Alert;
|
|
|
|
// node_modules/@mui/material/AlertTitle/AlertTitle.js
|
|
init_extends();
|
|
var React12 = __toESM(require_react());
|
|
var import_prop_types7 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/AlertTitle/alertTitleClasses.js
|
|
function getAlertTitleUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAlertTitle", slot);
|
|
}
|
|
var alertTitleClasses = generateUtilityClasses("MuiAlertTitle", ["root"]);
|
|
var alertTitleClasses_default = alertTitleClasses;
|
|
|
|
// node_modules/@mui/material/AlertTitle/AlertTitle.js
|
|
var import_jsx_runtime14 = __toESM(require_jsx_runtime());
|
|
var _excluded9 = ["className"];
|
|
var useUtilityClasses7 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getAlertTitleUtilityClass, classes);
|
|
};
|
|
var AlertTitleRoot = styled_default(Typography_default, {
|
|
name: "MuiAlertTitle",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(({
|
|
theme
|
|
}) => {
|
|
return {
|
|
fontWeight: theme.typography.fontWeightMedium,
|
|
marginTop: -2
|
|
};
|
|
});
|
|
var AlertTitle = React12.forwardRef(function AlertTitle2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAlertTitle"
|
|
});
|
|
const {
|
|
className
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded9);
|
|
const ownerState = props;
|
|
const classes = useUtilityClasses7(ownerState);
|
|
return (0, import_jsx_runtime14.jsx)(AlertTitleRoot, _extends({
|
|
gutterBottom: true,
|
|
component: "div",
|
|
ownerState,
|
|
ref,
|
|
className: clsx_default(classes.root, className)
|
|
}, other));
|
|
});
|
|
true ? AlertTitle.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types7.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types7.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types7.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types7.default.oneOfType([import_prop_types7.default.arrayOf(import_prop_types7.default.oneOfType([import_prop_types7.default.func, import_prop_types7.default.object, import_prop_types7.default.bool])), import_prop_types7.default.func, import_prop_types7.default.object])
|
|
} : void 0;
|
|
var AlertTitle_default = AlertTitle;
|
|
|
|
// node_modules/@mui/material/AppBar/AppBar.js
|
|
init_extends();
|
|
var React13 = __toESM(require_react());
|
|
var import_prop_types8 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/AppBar/appBarClasses.js
|
|
function getAppBarUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAppBar", slot);
|
|
}
|
|
var appBarClasses = generateUtilityClasses("MuiAppBar", ["root", "positionFixed", "positionAbsolute", "positionSticky", "positionStatic", "positionRelative", "colorDefault", "colorPrimary", "colorSecondary", "colorInherit", "colorTransparent", "colorError", "colorInfo", "colorSuccess", "colorWarning"]);
|
|
var appBarClasses_default = appBarClasses;
|
|
|
|
// node_modules/@mui/material/AppBar/AppBar.js
|
|
var import_jsx_runtime15 = __toESM(require_jsx_runtime());
|
|
var _excluded10 = ["className", "color", "enableColorOnDark", "position"];
|
|
var useUtilityClasses8 = (ownerState) => {
|
|
const {
|
|
color,
|
|
position,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `color${capitalize_default(color)}`, `position${capitalize_default(position)}`]
|
|
};
|
|
return composeClasses(slots, getAppBarUtilityClass, classes);
|
|
};
|
|
var joinVars = (var1, var2) => var1 ? `${var1 == null ? void 0 : var1.replace(")", "")}, ${var2})` : var2;
|
|
var AppBarRoot = styled_default(Paper_default, {
|
|
name: "MuiAppBar",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`position${capitalize_default(ownerState.position)}`], styles3[`color${capitalize_default(ownerState.color)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
const backgroundColorDefault = theme.palette.mode === "light" ? theme.palette.grey[100] : theme.palette.grey[900];
|
|
return _extends({
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
width: "100%",
|
|
boxSizing: "border-box",
|
|
// Prevent padding issue with the Modal and fixed positioned AppBar.
|
|
flexShrink: 0
|
|
}, ownerState.position === "fixed" && {
|
|
position: "fixed",
|
|
zIndex: (theme.vars || theme).zIndex.appBar,
|
|
top: 0,
|
|
left: "auto",
|
|
right: 0,
|
|
"@media print": {
|
|
// Prevent the app bar to be visible on each printed page.
|
|
position: "absolute"
|
|
}
|
|
}, ownerState.position === "absolute" && {
|
|
position: "absolute",
|
|
zIndex: (theme.vars || theme).zIndex.appBar,
|
|
top: 0,
|
|
left: "auto",
|
|
right: 0
|
|
}, ownerState.position === "sticky" && {
|
|
// ⚠️ sticky is not supported by IE11.
|
|
position: "sticky",
|
|
zIndex: (theme.vars || theme).zIndex.appBar,
|
|
top: 0,
|
|
left: "auto",
|
|
right: 0
|
|
}, ownerState.position === "static" && {
|
|
position: "static"
|
|
}, ownerState.position === "relative" && {
|
|
position: "relative"
|
|
}, !theme.vars && _extends({}, ownerState.color === "default" && {
|
|
backgroundColor: backgroundColorDefault,
|
|
color: theme.palette.getContrastText(backgroundColorDefault)
|
|
}, ownerState.color && ownerState.color !== "default" && ownerState.color !== "inherit" && ownerState.color !== "transparent" && {
|
|
backgroundColor: theme.palette[ownerState.color].main,
|
|
color: theme.palette[ownerState.color].contrastText
|
|
}, ownerState.color === "inherit" && {
|
|
color: "inherit"
|
|
}, theme.palette.mode === "dark" && !ownerState.enableColorOnDark && {
|
|
backgroundColor: null,
|
|
color: null
|
|
}, ownerState.color === "transparent" && _extends({
|
|
backgroundColor: "transparent",
|
|
color: "inherit"
|
|
}, theme.palette.mode === "dark" && {
|
|
backgroundImage: "none"
|
|
})), theme.vars && _extends({}, ownerState.color === "default" && {
|
|
"--AppBar-background": ownerState.enableColorOnDark ? theme.vars.palette.AppBar.defaultBg : joinVars(theme.vars.palette.AppBar.darkBg, theme.vars.palette.AppBar.defaultBg),
|
|
"--AppBar-color": ownerState.enableColorOnDark ? theme.vars.palette.text.primary : joinVars(theme.vars.palette.AppBar.darkColor, theme.vars.palette.text.primary)
|
|
}, ownerState.color && !ownerState.color.match(/^(default|inherit|transparent)$/) && {
|
|
"--AppBar-background": ownerState.enableColorOnDark ? theme.vars.palette[ownerState.color].main : joinVars(theme.vars.palette.AppBar.darkBg, theme.vars.palette[ownerState.color].main),
|
|
"--AppBar-color": ownerState.enableColorOnDark ? theme.vars.palette[ownerState.color].contrastText : joinVars(theme.vars.palette.AppBar.darkColor, theme.vars.palette[ownerState.color].contrastText)
|
|
}, !["inherit", "transparent"].includes(ownerState.color) && {
|
|
backgroundColor: "var(--AppBar-background)"
|
|
}, {
|
|
color: ownerState.color === "inherit" ? "inherit" : "var(--AppBar-color)"
|
|
}, ownerState.color === "transparent" && {
|
|
backgroundImage: "none",
|
|
backgroundColor: "transparent",
|
|
color: "inherit"
|
|
}));
|
|
});
|
|
var AppBar = React13.forwardRef(function AppBar2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAppBar"
|
|
});
|
|
const {
|
|
className,
|
|
color = "primary",
|
|
enableColorOnDark = false,
|
|
position = "fixed"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded10);
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
position,
|
|
enableColorOnDark
|
|
});
|
|
const classes = useUtilityClasses8(ownerState);
|
|
return (0, import_jsx_runtime15.jsx)(AppBarRoot, _extends({
|
|
square: true,
|
|
component: "header",
|
|
ownerState,
|
|
elevation: 4,
|
|
className: clsx_default(classes.root, className, position === "fixed" && "mui-fixed"),
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? AppBar.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types8.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types8.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types8.default.string,
|
|
/**
|
|
* The color of the component.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'primary'
|
|
*/
|
|
color: import_prop_types8.default.oneOfType([import_prop_types8.default.oneOf(["default", "inherit", "primary", "secondary", "transparent", "error", "info", "success", "warning"]), import_prop_types8.default.string]),
|
|
/**
|
|
* If true, the `color` prop is applied in dark mode.
|
|
* @default false
|
|
*/
|
|
enableColorOnDark: import_prop_types8.default.bool,
|
|
/**
|
|
* The positioning type. The behavior of the different options is described
|
|
* [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).
|
|
* Note: `sticky` is not universally supported and will fall back to `static` when unavailable.
|
|
* @default 'fixed'
|
|
*/
|
|
position: import_prop_types8.default.oneOf(["absolute", "fixed", "relative", "static", "sticky"]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types8.default.oneOfType([import_prop_types8.default.arrayOf(import_prop_types8.default.oneOfType([import_prop_types8.default.func, import_prop_types8.default.object, import_prop_types8.default.bool])), import_prop_types8.default.func, import_prop_types8.default.object])
|
|
} : void 0;
|
|
var AppBar_default = AppBar;
|
|
|
|
// node_modules/@mui/material/Avatar/Avatar.js
|
|
init_extends();
|
|
var React15 = __toESM(require_react());
|
|
var import_prop_types9 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/Person.js
|
|
var React14 = __toESM(require_react());
|
|
var import_jsx_runtime16 = __toESM(require_jsx_runtime());
|
|
var Person_default = createSvgIcon((0, import_jsx_runtime16.jsx)("path", {
|
|
d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"
|
|
}), "Person");
|
|
|
|
// node_modules/@mui/material/Avatar/avatarClasses.js
|
|
function getAvatarUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAvatar", slot);
|
|
}
|
|
var avatarClasses = generateUtilityClasses("MuiAvatar", ["root", "colorDefault", "circular", "rounded", "square", "img", "fallback"]);
|
|
var avatarClasses_default = avatarClasses;
|
|
|
|
// node_modules/@mui/material/Avatar/Avatar.js
|
|
var import_jsx_runtime17 = __toESM(require_jsx_runtime());
|
|
var _excluded11 = ["alt", "children", "className", "component", "slots", "slotProps", "imgProps", "sizes", "src", "srcSet", "variant"];
|
|
var useUtilityClasses9 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
variant,
|
|
colorDefault
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", variant, colorDefault && "colorDefault"],
|
|
img: ["img"],
|
|
fallback: ["fallback"]
|
|
};
|
|
return composeClasses(slots, getAvatarUtilityClass, classes);
|
|
};
|
|
var AvatarRoot = styled_default("div", {
|
|
name: "MuiAvatar",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.variant], ownerState.colorDefault && styles3.colorDefault];
|
|
}
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
position: "relative",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
flexShrink: 0,
|
|
width: 40,
|
|
height: 40,
|
|
fontFamily: theme.typography.fontFamily,
|
|
fontSize: theme.typography.pxToRem(20),
|
|
lineHeight: 1,
|
|
borderRadius: "50%",
|
|
overflow: "hidden",
|
|
userSelect: "none",
|
|
variants: [{
|
|
props: {
|
|
variant: "rounded"
|
|
},
|
|
style: {
|
|
borderRadius: (theme.vars || theme).shape.borderRadius
|
|
}
|
|
}, {
|
|
props: {
|
|
variant: "square"
|
|
},
|
|
style: {
|
|
borderRadius: 0
|
|
}
|
|
}, {
|
|
props: {
|
|
colorDefault: true
|
|
},
|
|
style: _extends({
|
|
color: (theme.vars || theme).palette.background.default
|
|
}, theme.vars ? {
|
|
backgroundColor: theme.vars.palette.Avatar.defaultBg
|
|
} : _extends({
|
|
backgroundColor: theme.palette.grey[400]
|
|
}, theme.applyStyles("dark", {
|
|
backgroundColor: theme.palette.grey[600]
|
|
})))
|
|
}]
|
|
}));
|
|
var AvatarImg = styled_default("img", {
|
|
name: "MuiAvatar",
|
|
slot: "Img",
|
|
overridesResolver: (props, styles3) => styles3.img
|
|
})({
|
|
width: "100%",
|
|
height: "100%",
|
|
textAlign: "center",
|
|
// Handle non-square image. The property isn't supported by IE11.
|
|
objectFit: "cover",
|
|
// Hide alt text.
|
|
color: "transparent",
|
|
// Hide the image broken icon, only works on Chrome.
|
|
textIndent: 1e4
|
|
});
|
|
var AvatarFallback = styled_default(Person_default, {
|
|
name: "MuiAvatar",
|
|
slot: "Fallback",
|
|
overridesResolver: (props, styles3) => styles3.fallback
|
|
})({
|
|
width: "75%",
|
|
height: "75%"
|
|
});
|
|
function useLoaded({
|
|
crossOrigin,
|
|
referrerPolicy,
|
|
src,
|
|
srcSet
|
|
}) {
|
|
const [loaded, setLoaded] = React15.useState(false);
|
|
React15.useEffect(() => {
|
|
if (!src && !srcSet) {
|
|
return void 0;
|
|
}
|
|
setLoaded(false);
|
|
let active = true;
|
|
const image = new Image();
|
|
image.onload = () => {
|
|
if (!active) {
|
|
return;
|
|
}
|
|
setLoaded("loaded");
|
|
};
|
|
image.onerror = () => {
|
|
if (!active) {
|
|
return;
|
|
}
|
|
setLoaded("error");
|
|
};
|
|
image.crossOrigin = crossOrigin;
|
|
image.referrerPolicy = referrerPolicy;
|
|
image.src = src;
|
|
if (srcSet) {
|
|
image.srcset = srcSet;
|
|
}
|
|
return () => {
|
|
active = false;
|
|
};
|
|
}, [crossOrigin, referrerPolicy, src, srcSet]);
|
|
return loaded;
|
|
}
|
|
var Avatar = React15.forwardRef(function Avatar2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAvatar"
|
|
});
|
|
const {
|
|
alt,
|
|
children: childrenProp,
|
|
className,
|
|
component = "div",
|
|
slots = {},
|
|
slotProps = {},
|
|
imgProps,
|
|
sizes,
|
|
src,
|
|
srcSet,
|
|
variant = "circular"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded11);
|
|
let children = null;
|
|
const loaded = useLoaded(_extends({}, imgProps, {
|
|
src,
|
|
srcSet
|
|
}));
|
|
const hasImg = src || srcSet;
|
|
const hasImgNotFailing = hasImg && loaded !== "error";
|
|
const ownerState = _extends({}, props, {
|
|
colorDefault: !hasImgNotFailing,
|
|
component,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses9(ownerState);
|
|
const [ImgSlot, imgSlotProps] = useSlot("img", {
|
|
className: classes.img,
|
|
elementType: AvatarImg,
|
|
externalForwardedProps: {
|
|
slots,
|
|
slotProps: {
|
|
img: _extends({}, imgProps, slotProps.img)
|
|
}
|
|
},
|
|
additionalProps: {
|
|
alt,
|
|
src,
|
|
srcSet,
|
|
sizes
|
|
},
|
|
ownerState
|
|
});
|
|
if (hasImgNotFailing) {
|
|
children = (0, import_jsx_runtime17.jsx)(ImgSlot, _extends({}, imgSlotProps));
|
|
} else if (!!childrenProp || childrenProp === 0) {
|
|
children = childrenProp;
|
|
} else if (hasImg && alt) {
|
|
children = alt[0];
|
|
} else {
|
|
children = (0, import_jsx_runtime17.jsx)(AvatarFallback, {
|
|
ownerState,
|
|
className: classes.fallback
|
|
});
|
|
}
|
|
return (0, import_jsx_runtime17.jsx)(AvatarRoot, _extends({
|
|
as: component,
|
|
ownerState,
|
|
className: clsx_default(classes.root, className),
|
|
ref
|
|
}, other, {
|
|
children
|
|
}));
|
|
});
|
|
true ? Avatar.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Used in combination with `src` or `srcSet` to
|
|
* provide an alt attribute for the rendered `img` element.
|
|
*/
|
|
alt: import_prop_types9.default.string,
|
|
/**
|
|
* Used to render icon or text elements inside the Avatar if `src` is not set.
|
|
* This can be an element, or just a string.
|
|
*/
|
|
children: import_prop_types9.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types9.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types9.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types9.default.elementType,
|
|
/**
|
|
* [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attributes) applied to the `img` element if the component is used to display an image.
|
|
* It can be used to listen for the loading error event.
|
|
* @deprecated Use `slotProps.img` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
|
|
*/
|
|
imgProps: import_prop_types9.default.object,
|
|
/**
|
|
* The `sizes` attribute for the `img` element.
|
|
*/
|
|
sizes: import_prop_types9.default.string,
|
|
/**
|
|
* The props used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types9.default.shape({
|
|
img: import_prop_types9.default.oneOfType([import_prop_types9.default.func, import_prop_types9.default.object])
|
|
}),
|
|
/**
|
|
* The components used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types9.default.shape({
|
|
img: import_prop_types9.default.elementType
|
|
}),
|
|
/**
|
|
* The `src` attribute for the `img` element.
|
|
*/
|
|
src: import_prop_types9.default.string,
|
|
/**
|
|
* The `srcSet` attribute for the `img` element.
|
|
* Use this attribute for responsive image display.
|
|
*/
|
|
srcSet: import_prop_types9.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types9.default.oneOfType([import_prop_types9.default.arrayOf(import_prop_types9.default.oneOfType([import_prop_types9.default.func, import_prop_types9.default.object, import_prop_types9.default.bool])), import_prop_types9.default.func, import_prop_types9.default.object]),
|
|
/**
|
|
* The shape of the avatar.
|
|
* @default 'circular'
|
|
*/
|
|
variant: import_prop_types9.default.oneOfType([import_prop_types9.default.oneOf(["circular", "rounded", "square"]), import_prop_types9.default.string])
|
|
} : void 0;
|
|
var Avatar_default = Avatar;
|
|
|
|
// node_modules/@mui/material/AvatarGroup/AvatarGroup.js
|
|
init_extends();
|
|
var React16 = __toESM(require_react());
|
|
var import_prop_types10 = __toESM(require_prop_types());
|
|
var import_react_is2 = __toESM(require_react_is());
|
|
|
|
// node_modules/@mui/material/AvatarGroup/avatarGroupClasses.js
|
|
function getAvatarGroupUtilityClass(slot) {
|
|
return generateUtilityClass("MuiAvatarGroup", slot);
|
|
}
|
|
var avatarGroupClasses = generateUtilityClasses("MuiAvatarGroup", ["root", "avatar"]);
|
|
var avatarGroupClasses_default = avatarGroupClasses;
|
|
|
|
// node_modules/@mui/material/AvatarGroup/AvatarGroup.js
|
|
var import_jsx_runtime18 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime19 = __toESM(require_jsx_runtime());
|
|
var _excluded12 = ["children", "className", "component", "componentsProps", "max", "renderSurplus", "slotProps", "spacing", "total", "variant"];
|
|
var SPACINGS = {
|
|
small: -16,
|
|
medium: null
|
|
};
|
|
var useUtilityClasses10 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"],
|
|
avatar: ["avatar"]
|
|
};
|
|
return composeClasses(slots, getAvatarGroupUtilityClass, classes);
|
|
};
|
|
var AvatarGroupRoot = styled_default("div", {
|
|
name: "MuiAvatarGroup",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => _extends({
|
|
[`& .${avatarGroupClasses_default.avatar}`]: styles3.avatar
|
|
}, styles3.root)
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
const marginValue = ownerState.spacing && SPACINGS[ownerState.spacing] !== void 0 ? SPACINGS[ownerState.spacing] : -ownerState.spacing;
|
|
return {
|
|
[`& .${avatarClasses_default.root}`]: {
|
|
border: `2px solid ${(theme.vars || theme).palette.background.default}`,
|
|
boxSizing: "content-box",
|
|
marginLeft: marginValue != null ? marginValue : -8,
|
|
"&:last-child": {
|
|
marginLeft: 0
|
|
}
|
|
},
|
|
display: "flex",
|
|
flexDirection: "row-reverse"
|
|
};
|
|
});
|
|
var AvatarGroup = React16.forwardRef(function AvatarGroup2(inProps, ref) {
|
|
var _slotProps$additional;
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiAvatarGroup"
|
|
});
|
|
const {
|
|
children: childrenProp,
|
|
className,
|
|
component = "div",
|
|
componentsProps = {},
|
|
max = 5,
|
|
renderSurplus,
|
|
slotProps = {},
|
|
spacing = "medium",
|
|
total,
|
|
variant = "circular"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded12);
|
|
let clampedMax = max < 2 ? 2 : max;
|
|
const ownerState = _extends({}, props, {
|
|
max,
|
|
spacing,
|
|
component,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses10(ownerState);
|
|
const children = React16.Children.toArray(childrenProp).filter((child) => {
|
|
if (true) {
|
|
if ((0, import_react_is2.isFragment)(child)) {
|
|
console.error(["MUI: The AvatarGroup component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
|
|
}
|
|
}
|
|
return React16.isValidElement(child);
|
|
});
|
|
const totalAvatars = total || children.length;
|
|
if (totalAvatars === clampedMax) {
|
|
clampedMax += 1;
|
|
}
|
|
clampedMax = Math.min(totalAvatars + 1, clampedMax);
|
|
const maxAvatars = Math.min(children.length, clampedMax - 1);
|
|
const extraAvatars = Math.max(totalAvatars - clampedMax, totalAvatars - maxAvatars, 0);
|
|
const extraAvatarsElement = renderSurplus ? renderSurplus(extraAvatars) : `+${extraAvatars}`;
|
|
const additionalAvatarSlotProps = (_slotProps$additional = slotProps.additionalAvatar) != null ? _slotProps$additional : componentsProps.additionalAvatar;
|
|
return (0, import_jsx_runtime19.jsxs)(AvatarGroupRoot, _extends({
|
|
as: component,
|
|
ownerState,
|
|
className: clsx_default(classes.root, className),
|
|
ref
|
|
}, other, {
|
|
children: [extraAvatars ? (0, import_jsx_runtime18.jsx)(Avatar_default, _extends({
|
|
variant
|
|
}, additionalAvatarSlotProps, {
|
|
className: clsx_default(classes.avatar, additionalAvatarSlotProps == null ? void 0 : additionalAvatarSlotProps.className),
|
|
children: extraAvatarsElement
|
|
})) : null, children.slice(0, maxAvatars).reverse().map((child) => {
|
|
return React16.cloneElement(child, {
|
|
className: clsx_default(child.props.className, classes.avatar),
|
|
variant: child.props.variant || variant
|
|
});
|
|
})]
|
|
}));
|
|
});
|
|
true ? AvatarGroup.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The avatars to stack.
|
|
*/
|
|
children: import_prop_types10.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types10.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types10.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types10.default.elementType,
|
|
/**
|
|
* The extra props for the slot components.
|
|
* You can override the existing props or add new ones.
|
|
*
|
|
* This prop is an alias for the `slotProps` prop.
|
|
* It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.
|
|
*
|
|
* @default {}
|
|
*/
|
|
componentsProps: import_prop_types10.default.shape({
|
|
additionalAvatar: import_prop_types10.default.object
|
|
}),
|
|
/**
|
|
* Max avatars to show before +x.
|
|
* @default 5
|
|
*/
|
|
max: chainPropTypes(import_prop_types10.default.number, (props) => {
|
|
if (props.max < 2) {
|
|
return new Error(["MUI: The prop `max` should be equal to 2 or above.", "A value below is clamped to 2."].join("\n"));
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* custom renderer of extraAvatars
|
|
* @param {number} surplus number of extra avatars
|
|
* @returns {React.ReactNode} custom element to display
|
|
*/
|
|
renderSurplus: import_prop_types10.default.func,
|
|
/**
|
|
* The extra props for the slot components.
|
|
* You can override the existing props or add new ones.
|
|
*
|
|
* This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.
|
|
*
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types10.default.shape({
|
|
additionalAvatar: import_prop_types10.default.object
|
|
}),
|
|
/**
|
|
* Spacing between avatars.
|
|
* @default 'medium'
|
|
*/
|
|
spacing: import_prop_types10.default.oneOfType([import_prop_types10.default.oneOf(["medium", "small"]), import_prop_types10.default.number]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types10.default.oneOfType([import_prop_types10.default.arrayOf(import_prop_types10.default.oneOfType([import_prop_types10.default.func, import_prop_types10.default.object, import_prop_types10.default.bool])), import_prop_types10.default.func, import_prop_types10.default.object]),
|
|
/**
|
|
* The total number of avatars. Used for calculating the number of extra avatars.
|
|
* @default children.length
|
|
*/
|
|
total: import_prop_types10.default.number,
|
|
/**
|
|
* The variant to use.
|
|
* @default 'circular'
|
|
*/
|
|
variant: import_prop_types10.default.oneOfType([import_prop_types10.default.oneOf(["circular", "rounded", "square"]), import_prop_types10.default.string])
|
|
} : void 0;
|
|
var AvatarGroup_default = AvatarGroup;
|
|
|
|
// node_modules/@mui/material/BottomNavigation/BottomNavigation.js
|
|
init_extends();
|
|
var React17 = __toESM(require_react());
|
|
var import_react_is3 = __toESM(require_react_is());
|
|
var import_prop_types11 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/BottomNavigation/bottomNavigationClasses.js
|
|
function getBottomNavigationUtilityClass(slot) {
|
|
return generateUtilityClass("MuiBottomNavigation", slot);
|
|
}
|
|
var bottomNavigationClasses = generateUtilityClasses("MuiBottomNavigation", ["root"]);
|
|
var bottomNavigationClasses_default = bottomNavigationClasses;
|
|
|
|
// node_modules/@mui/material/BottomNavigation/BottomNavigation.js
|
|
var import_jsx_runtime20 = __toESM(require_jsx_runtime());
|
|
var _excluded13 = ["children", "className", "component", "onChange", "showLabels", "value"];
|
|
var useUtilityClasses11 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getBottomNavigationUtilityClass, classes);
|
|
};
|
|
var BottomNavigationRoot = styled_default("div", {
|
|
name: "MuiBottomNavigation",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
display: "flex",
|
|
justifyContent: "center",
|
|
height: 56,
|
|
backgroundColor: (theme.vars || theme).palette.background.paper
|
|
}));
|
|
var BottomNavigation = React17.forwardRef(function BottomNavigation2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiBottomNavigation"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
component = "div",
|
|
onChange,
|
|
showLabels = false,
|
|
value
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded13);
|
|
const ownerState = _extends({}, props, {
|
|
component,
|
|
showLabels
|
|
});
|
|
const classes = useUtilityClasses11(ownerState);
|
|
return (0, import_jsx_runtime20.jsx)(BottomNavigationRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: React17.Children.map(children, (child, childIndex) => {
|
|
if (!React17.isValidElement(child)) {
|
|
return null;
|
|
}
|
|
if (true) {
|
|
if ((0, import_react_is3.isFragment)(child)) {
|
|
console.error(["MUI: The BottomNavigation component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
|
|
}
|
|
}
|
|
const childValue = child.props.value === void 0 ? childIndex : child.props.value;
|
|
return React17.cloneElement(child, {
|
|
selected: childValue === value,
|
|
showLabel: child.props.showLabel !== void 0 ? child.props.showLabel : showLabels,
|
|
value: childValue,
|
|
onChange
|
|
});
|
|
})
|
|
}));
|
|
});
|
|
true ? BottomNavigation.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types11.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types11.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types11.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types11.default.elementType,
|
|
/**
|
|
* Callback fired when the value changes.
|
|
*
|
|
* @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.
|
|
* @param {any} value We default to the index of the child.
|
|
*/
|
|
onChange: import_prop_types11.default.func,
|
|
/**
|
|
* If `true`, all `BottomNavigationAction`s will show their labels.
|
|
* By default, only the selected `BottomNavigationAction` will show its label.
|
|
* @default false
|
|
*/
|
|
showLabels: import_prop_types11.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types11.default.oneOfType([import_prop_types11.default.arrayOf(import_prop_types11.default.oneOfType([import_prop_types11.default.func, import_prop_types11.default.object, import_prop_types11.default.bool])), import_prop_types11.default.func, import_prop_types11.default.object]),
|
|
/**
|
|
* The value of the currently selected `BottomNavigationAction`.
|
|
*/
|
|
value: import_prop_types11.default.any
|
|
} : void 0;
|
|
var BottomNavigation_default = BottomNavigation;
|
|
|
|
// node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction.js
|
|
init_extends();
|
|
var React18 = __toESM(require_react());
|
|
var import_prop_types12 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/BottomNavigationAction/bottomNavigationActionClasses.js
|
|
function getBottomNavigationActionUtilityClass(slot) {
|
|
return generateUtilityClass("MuiBottomNavigationAction", slot);
|
|
}
|
|
var bottomNavigationActionClasses = generateUtilityClasses("MuiBottomNavigationAction", ["root", "iconOnly", "selected", "label"]);
|
|
var bottomNavigationActionClasses_default = bottomNavigationActionClasses;
|
|
|
|
// node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction.js
|
|
var import_jsx_runtime21 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime22 = __toESM(require_jsx_runtime());
|
|
var _excluded14 = ["className", "icon", "label", "onChange", "onClick", "selected", "showLabel", "value"];
|
|
var useUtilityClasses12 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
showLabel,
|
|
selected
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", !showLabel && !selected && "iconOnly", selected && "selected"],
|
|
label: ["label", !showLabel && !selected && "iconOnly", selected && "selected"]
|
|
};
|
|
return composeClasses(slots, getBottomNavigationActionUtilityClass, classes);
|
|
};
|
|
var BottomNavigationActionRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiBottomNavigationAction",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, !ownerState.showLabel && !ownerState.selected && styles3.iconOnly];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
transition: theme.transitions.create(["color", "padding-top"], {
|
|
duration: theme.transitions.duration.short
|
|
}),
|
|
padding: "0px 12px",
|
|
minWidth: 80,
|
|
maxWidth: 168,
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
flexDirection: "column",
|
|
flex: "1"
|
|
}, !ownerState.showLabel && !ownerState.selected && {
|
|
paddingTop: 14
|
|
}, !ownerState.showLabel && !ownerState.selected && !ownerState.label && {
|
|
paddingTop: 0
|
|
}, {
|
|
[`&.${bottomNavigationActionClasses_default.selected}`]: {
|
|
color: (theme.vars || theme).palette.primary.main
|
|
}
|
|
}));
|
|
var BottomNavigationActionLabel = styled_default("span", {
|
|
name: "MuiBottomNavigationAction",
|
|
slot: "Label",
|
|
overridesResolver: (props, styles3) => styles3.label
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
fontFamily: theme.typography.fontFamily,
|
|
fontSize: theme.typography.pxToRem(12),
|
|
opacity: 1,
|
|
transition: "font-size 0.2s, opacity 0.2s",
|
|
transitionDelay: "0.1s"
|
|
}, !ownerState.showLabel && !ownerState.selected && {
|
|
opacity: 0,
|
|
transitionDelay: "0s"
|
|
}, {
|
|
[`&.${bottomNavigationActionClasses_default.selected}`]: {
|
|
fontSize: theme.typography.pxToRem(14)
|
|
}
|
|
}));
|
|
var BottomNavigationAction = React18.forwardRef(function BottomNavigationAction2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiBottomNavigationAction"
|
|
});
|
|
const {
|
|
className,
|
|
icon,
|
|
label,
|
|
onChange,
|
|
onClick,
|
|
value
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded14);
|
|
const ownerState = props;
|
|
const classes = useUtilityClasses12(ownerState);
|
|
const handleChange = (event) => {
|
|
if (onChange) {
|
|
onChange(event, value);
|
|
}
|
|
if (onClick) {
|
|
onClick(event);
|
|
}
|
|
};
|
|
return (0, import_jsx_runtime22.jsxs)(BottomNavigationActionRoot, _extends({
|
|
ref,
|
|
className: clsx_default(classes.root, className),
|
|
focusRipple: true,
|
|
onClick: handleChange,
|
|
ownerState
|
|
}, other, {
|
|
children: [icon, (0, import_jsx_runtime21.jsx)(BottomNavigationActionLabel, {
|
|
className: classes.label,
|
|
ownerState,
|
|
children: label
|
|
})]
|
|
}));
|
|
});
|
|
true ? BottomNavigationAction.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* This prop isn't supported.
|
|
* Use the `component` prop if you need to change the children structure.
|
|
*/
|
|
children: unsupportedProp_default,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types12.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types12.default.string,
|
|
/**
|
|
* The icon to display.
|
|
*/
|
|
icon: import_prop_types12.default.node,
|
|
/**
|
|
* The label element.
|
|
*/
|
|
label: import_prop_types12.default.node,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onChange: import_prop_types12.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onClick: import_prop_types12.default.func,
|
|
/**
|
|
* If `true`, the `BottomNavigationAction` will show its label.
|
|
* By default, only the selected `BottomNavigationAction`
|
|
* inside `BottomNavigation` will show its label.
|
|
*
|
|
* The prop defaults to the value (`false`) inherited from the parent BottomNavigation component.
|
|
*/
|
|
showLabel: import_prop_types12.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types12.default.oneOfType([import_prop_types12.default.arrayOf(import_prop_types12.default.oneOfType([import_prop_types12.default.func, import_prop_types12.default.object, import_prop_types12.default.bool])), import_prop_types12.default.func, import_prop_types12.default.object]),
|
|
/**
|
|
* You can provide your own value. Otherwise, we fallback to the child position index.
|
|
*/
|
|
value: import_prop_types12.default.any
|
|
} : void 0;
|
|
var BottomNavigationAction_default = BottomNavigationAction;
|
|
|
|
// node_modules/@mui/material/Breadcrumbs/Breadcrumbs.js
|
|
init_extends();
|
|
var React21 = __toESM(require_react());
|
|
var import_react_is4 = __toESM(require_react_is());
|
|
var import_prop_types14 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Breadcrumbs/BreadcrumbCollapsed.js
|
|
init_extends();
|
|
var React20 = __toESM(require_react());
|
|
var import_prop_types13 = __toESM(require_prop_types());
|
|
var import_colorManipulator2 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/MoreHoriz.js
|
|
var React19 = __toESM(require_react());
|
|
var import_jsx_runtime23 = __toESM(require_jsx_runtime());
|
|
var MoreHoriz_default = createSvgIcon((0, import_jsx_runtime23.jsx)("path", {
|
|
d: "M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"
|
|
}), "MoreHoriz");
|
|
|
|
// node_modules/@mui/material/Breadcrumbs/BreadcrumbCollapsed.js
|
|
var import_jsx_runtime24 = __toESM(require_jsx_runtime());
|
|
var _excluded15 = ["slots", "slotProps"];
|
|
var BreadcrumbCollapsedButton = styled_default(ButtonBase_default, {
|
|
name: "MuiBreadcrumbCollapsed"
|
|
})(({
|
|
theme
|
|
}) => _extends({
|
|
display: "flex",
|
|
marginLeft: `calc(${theme.spacing(1)} * 0.5)`,
|
|
marginRight: `calc(${theme.spacing(1)} * 0.5)`
|
|
}, theme.palette.mode === "light" ? {
|
|
backgroundColor: theme.palette.grey[100],
|
|
color: theme.palette.grey[700]
|
|
} : {
|
|
backgroundColor: theme.palette.grey[700],
|
|
color: theme.palette.grey[100]
|
|
}, {
|
|
borderRadius: 2,
|
|
"&:hover, &:focus": _extends({}, theme.palette.mode === "light" ? {
|
|
backgroundColor: theme.palette.grey[200]
|
|
} : {
|
|
backgroundColor: theme.palette.grey[600]
|
|
}),
|
|
"&:active": _extends({
|
|
boxShadow: theme.shadows[0]
|
|
}, theme.palette.mode === "light" ? {
|
|
backgroundColor: (0, import_colorManipulator2.emphasize)(theme.palette.grey[200], 0.12)
|
|
} : {
|
|
backgroundColor: (0, import_colorManipulator2.emphasize)(theme.palette.grey[600], 0.12)
|
|
})
|
|
}));
|
|
var BreadcrumbCollapsedIcon = styled_default(MoreHoriz_default)({
|
|
width: 24,
|
|
height: 16
|
|
});
|
|
function BreadcrumbCollapsed(props) {
|
|
const {
|
|
slots = {},
|
|
slotProps = {}
|
|
} = props, otherProps = _objectWithoutPropertiesLoose(props, _excluded15);
|
|
const ownerState = props;
|
|
return (0, import_jsx_runtime24.jsx)("li", {
|
|
children: (0, import_jsx_runtime24.jsx)(BreadcrumbCollapsedButton, _extends({
|
|
focusRipple: true
|
|
}, otherProps, {
|
|
ownerState,
|
|
children: (0, import_jsx_runtime24.jsx)(BreadcrumbCollapsedIcon, _extends({
|
|
as: slots.CollapsedIcon,
|
|
ownerState
|
|
}, slotProps.collapsedIcon))
|
|
}))
|
|
});
|
|
}
|
|
true ? BreadcrumbCollapsed.propTypes = {
|
|
/**
|
|
* The props used for the CollapsedIcon slot.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types13.default.shape({
|
|
collapsedIcon: import_prop_types13.default.oneOfType([import_prop_types13.default.func, import_prop_types13.default.object])
|
|
}),
|
|
/**
|
|
* The components used for each slot inside the BreadcumbCollapsed.
|
|
* Either a string to use a HTML element or a component.
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types13.default.shape({
|
|
CollapsedIcon: import_prop_types13.default.elementType
|
|
}),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types13.default.object
|
|
} : void 0;
|
|
var BreadcrumbCollapsed_default = BreadcrumbCollapsed;
|
|
|
|
// node_modules/@mui/material/Breadcrumbs/breadcrumbsClasses.js
|
|
function getBreadcrumbsUtilityClass(slot) {
|
|
return generateUtilityClass("MuiBreadcrumbs", slot);
|
|
}
|
|
var breadcrumbsClasses = generateUtilityClasses("MuiBreadcrumbs", ["root", "ol", "li", "separator"]);
|
|
var breadcrumbsClasses_default = breadcrumbsClasses;
|
|
|
|
// node_modules/@mui/material/Breadcrumbs/Breadcrumbs.js
|
|
var import_jsx_runtime25 = __toESM(require_jsx_runtime());
|
|
var _excluded16 = ["children", "className", "component", "slots", "slotProps", "expandText", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "separator"];
|
|
var useUtilityClasses13 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"],
|
|
li: ["li"],
|
|
ol: ["ol"],
|
|
separator: ["separator"]
|
|
};
|
|
return composeClasses(slots, getBreadcrumbsUtilityClass, classes);
|
|
};
|
|
var BreadcrumbsRoot = styled_default(Typography_default, {
|
|
name: "MuiBreadcrumbs",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
return [{
|
|
[`& .${breadcrumbsClasses_default.li}`]: styles3.li
|
|
}, styles3.root];
|
|
}
|
|
})({});
|
|
var BreadcrumbsOl = styled_default("ol", {
|
|
name: "MuiBreadcrumbs",
|
|
slot: "Ol",
|
|
overridesResolver: (props, styles3) => styles3.ol
|
|
})({
|
|
display: "flex",
|
|
flexWrap: "wrap",
|
|
alignItems: "center",
|
|
padding: 0,
|
|
margin: 0,
|
|
listStyle: "none"
|
|
});
|
|
var BreadcrumbsSeparator = styled_default("li", {
|
|
name: "MuiBreadcrumbs",
|
|
slot: "Separator",
|
|
overridesResolver: (props, styles3) => styles3.separator
|
|
})({
|
|
display: "flex",
|
|
userSelect: "none",
|
|
marginLeft: 8,
|
|
marginRight: 8
|
|
});
|
|
function insertSeparators(items, className, separator, ownerState) {
|
|
return items.reduce((acc, current, index) => {
|
|
if (index < items.length - 1) {
|
|
acc = acc.concat(current, (0, import_jsx_runtime25.jsx)(BreadcrumbsSeparator, {
|
|
"aria-hidden": true,
|
|
className,
|
|
ownerState,
|
|
children: separator
|
|
}, `separator-${index}`));
|
|
} else {
|
|
acc.push(current);
|
|
}
|
|
return acc;
|
|
}, []);
|
|
}
|
|
var Breadcrumbs = React21.forwardRef(function Breadcrumbs2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiBreadcrumbs"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
component = "nav",
|
|
slots = {},
|
|
slotProps = {},
|
|
expandText = "Show path",
|
|
itemsAfterCollapse = 1,
|
|
itemsBeforeCollapse = 1,
|
|
maxItems = 8,
|
|
separator = "/"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded16);
|
|
const [expanded, setExpanded] = React21.useState(false);
|
|
const ownerState = _extends({}, props, {
|
|
component,
|
|
expanded,
|
|
expandText,
|
|
itemsAfterCollapse,
|
|
itemsBeforeCollapse,
|
|
maxItems,
|
|
separator
|
|
});
|
|
const classes = useUtilityClasses13(ownerState);
|
|
const collapsedIconSlotProps = useSlotProps_default({
|
|
elementType: slots.CollapsedIcon,
|
|
externalSlotProps: slotProps.collapsedIcon,
|
|
ownerState
|
|
});
|
|
const listRef = React21.useRef(null);
|
|
const renderItemsBeforeAndAfter = (allItems2) => {
|
|
const handleClickExpand = () => {
|
|
setExpanded(true);
|
|
const focusable = listRef.current.querySelector("a[href],button,[tabindex]");
|
|
if (focusable) {
|
|
focusable.focus();
|
|
}
|
|
};
|
|
if (itemsBeforeCollapse + itemsAfterCollapse >= allItems2.length) {
|
|
if (true) {
|
|
console.error(["MUI: You have provided an invalid combination of props to the Breadcrumbs.", `itemsAfterCollapse={${itemsAfterCollapse}} + itemsBeforeCollapse={${itemsBeforeCollapse}} >= maxItems={${maxItems}}`].join("\n"));
|
|
}
|
|
return allItems2;
|
|
}
|
|
return [...allItems2.slice(0, itemsBeforeCollapse), (0, import_jsx_runtime25.jsx)(BreadcrumbCollapsed_default, {
|
|
"aria-label": expandText,
|
|
slots: {
|
|
CollapsedIcon: slots.CollapsedIcon
|
|
},
|
|
slotProps: {
|
|
collapsedIcon: collapsedIconSlotProps
|
|
},
|
|
onClick: handleClickExpand
|
|
}, "ellipsis"), ...allItems2.slice(allItems2.length - itemsAfterCollapse, allItems2.length)];
|
|
};
|
|
const allItems = React21.Children.toArray(children).filter((child) => {
|
|
if (true) {
|
|
if ((0, import_react_is4.isFragment)(child)) {
|
|
console.error(["MUI: The Breadcrumbs component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
|
|
}
|
|
}
|
|
return React21.isValidElement(child);
|
|
}).map((child, index) => (0, import_jsx_runtime25.jsx)("li", {
|
|
className: classes.li,
|
|
children: child
|
|
}, `child-${index}`));
|
|
return (0, import_jsx_runtime25.jsx)(BreadcrumbsRoot, _extends({
|
|
ref,
|
|
component,
|
|
color: "text.secondary",
|
|
className: clsx_default(classes.root, className),
|
|
ownerState
|
|
}, other, {
|
|
children: (0, import_jsx_runtime25.jsx)(BreadcrumbsOl, {
|
|
className: classes.ol,
|
|
ref: listRef,
|
|
ownerState,
|
|
children: insertSeparators(expanded || maxItems && allItems.length <= maxItems ? allItems : renderItemsBeforeAndAfter(allItems), classes.separator, separator, ownerState)
|
|
})
|
|
}));
|
|
});
|
|
true ? Breadcrumbs.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types14.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types14.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types14.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types14.default.elementType,
|
|
/**
|
|
* Override the default label for the expand button.
|
|
*
|
|
* For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).
|
|
* @default 'Show path'
|
|
*/
|
|
expandText: import_prop_types14.default.string,
|
|
/**
|
|
* If max items is exceeded, the number of items to show after the ellipsis.
|
|
* @default 1
|
|
*/
|
|
itemsAfterCollapse: integerPropType_default,
|
|
/**
|
|
* If max items is exceeded, the number of items to show before the ellipsis.
|
|
* @default 1
|
|
*/
|
|
itemsBeforeCollapse: integerPropType_default,
|
|
/**
|
|
* Specifies the maximum number of breadcrumbs to display. When there are more
|
|
* than the maximum number, only the first `itemsBeforeCollapse` and last `itemsAfterCollapse`
|
|
* will be shown, with an ellipsis in between.
|
|
* @default 8
|
|
*/
|
|
maxItems: integerPropType_default,
|
|
/**
|
|
* Custom separator node.
|
|
* @default '/'
|
|
*/
|
|
separator: import_prop_types14.default.node,
|
|
/**
|
|
* The props used for each slot inside the Breadcumb.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types14.default.shape({
|
|
collapsedIcon: import_prop_types14.default.oneOfType([import_prop_types14.default.func, import_prop_types14.default.object])
|
|
}),
|
|
/**
|
|
* The components used for each slot inside the Breadcumb.
|
|
* Either a string to use a HTML element or a component.
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types14.default.shape({
|
|
CollapsedIcon: import_prop_types14.default.elementType
|
|
}),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types14.default.oneOfType([import_prop_types14.default.arrayOf(import_prop_types14.default.oneOfType([import_prop_types14.default.func, import_prop_types14.default.object, import_prop_types14.default.bool])), import_prop_types14.default.func, import_prop_types14.default.object])
|
|
} : void 0;
|
|
var Breadcrumbs_default = Breadcrumbs;
|
|
|
|
// node_modules/@mui/material/ButtonGroup/ButtonGroup.js
|
|
init_extends();
|
|
var React22 = __toESM(require_react());
|
|
var import_prop_types15 = __toESM(require_prop_types());
|
|
var import_colorManipulator3 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/ButtonGroup/buttonGroupClasses.js
|
|
function getButtonGroupUtilityClass(slot) {
|
|
return generateUtilityClass("MuiButtonGroup", slot);
|
|
}
|
|
var buttonGroupClasses = generateUtilityClasses("MuiButtonGroup", ["root", "contained", "outlined", "text", "disableElevation", "disabled", "firstButton", "fullWidth", "vertical", "grouped", "groupedHorizontal", "groupedVertical", "groupedText", "groupedTextHorizontal", "groupedTextVertical", "groupedTextPrimary", "groupedTextSecondary", "groupedOutlined", "groupedOutlinedHorizontal", "groupedOutlinedVertical", "groupedOutlinedPrimary", "groupedOutlinedSecondary", "groupedContained", "groupedContainedHorizontal", "groupedContainedVertical", "groupedContainedPrimary", "groupedContainedSecondary", "lastButton", "middleButton"]);
|
|
var buttonGroupClasses_default = buttonGroupClasses;
|
|
|
|
// node_modules/@mui/material/ButtonGroup/ButtonGroup.js
|
|
var import_jsx_runtime26 = __toESM(require_jsx_runtime());
|
|
var _excluded17 = ["children", "className", "color", "component", "disabled", "disableElevation", "disableFocusRipple", "disableRipple", "fullWidth", "orientation", "size", "variant"];
|
|
var overridesResolver = (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [{
|
|
[`& .${buttonGroupClasses_default.grouped}`]: styles3.grouped
|
|
}, {
|
|
[`& .${buttonGroupClasses_default.grouped}`]: styles3[`grouped${capitalize_default(ownerState.orientation)}`]
|
|
}, {
|
|
[`& .${buttonGroupClasses_default.grouped}`]: styles3[`grouped${capitalize_default(ownerState.variant)}`]
|
|
}, {
|
|
[`& .${buttonGroupClasses_default.grouped}`]: styles3[`grouped${capitalize_default(ownerState.variant)}${capitalize_default(ownerState.orientation)}`]
|
|
}, {
|
|
[`& .${buttonGroupClasses_default.grouped}`]: styles3[`grouped${capitalize_default(ownerState.variant)}${capitalize_default(ownerState.color)}`]
|
|
}, {
|
|
[`& .${buttonGroupClasses_default.firstButton}`]: styles3.firstButton
|
|
}, {
|
|
[`& .${buttonGroupClasses_default.lastButton}`]: styles3.lastButton
|
|
}, {
|
|
[`& .${buttonGroupClasses_default.middleButton}`]: styles3.middleButton
|
|
}, styles3.root, styles3[ownerState.variant], ownerState.disableElevation === true && styles3.disableElevation, ownerState.fullWidth && styles3.fullWidth, ownerState.orientation === "vertical" && styles3.vertical];
|
|
};
|
|
var useUtilityClasses14 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
color,
|
|
disabled,
|
|
disableElevation,
|
|
fullWidth,
|
|
orientation,
|
|
variant
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", variant, orientation === "vertical" && "vertical", fullWidth && "fullWidth", disableElevation && "disableElevation"],
|
|
grouped: ["grouped", `grouped${capitalize_default(orientation)}`, `grouped${capitalize_default(variant)}`, `grouped${capitalize_default(variant)}${capitalize_default(orientation)}`, `grouped${capitalize_default(variant)}${capitalize_default(color)}`, disabled && "disabled"],
|
|
firstButton: ["firstButton"],
|
|
lastButton: ["lastButton"],
|
|
middleButton: ["middleButton"]
|
|
};
|
|
return composeClasses(slots, getButtonGroupUtilityClass, classes);
|
|
};
|
|
var ButtonGroupRoot = styled_default("div", {
|
|
name: "MuiButtonGroup",
|
|
slot: "Root",
|
|
overridesResolver
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
display: "inline-flex",
|
|
borderRadius: (theme.vars || theme).shape.borderRadius
|
|
}, ownerState.variant === "contained" && {
|
|
boxShadow: (theme.vars || theme).shadows[2]
|
|
}, ownerState.disableElevation && {
|
|
boxShadow: "none"
|
|
}, ownerState.fullWidth && {
|
|
width: "100%"
|
|
}, ownerState.orientation === "vertical" && {
|
|
flexDirection: "column"
|
|
}, {
|
|
[`& .${buttonGroupClasses_default.grouped}`]: _extends({
|
|
minWidth: 40,
|
|
"&:hover": _extends({}, ownerState.variant === "contained" && {
|
|
boxShadow: "none"
|
|
})
|
|
}, ownerState.variant === "contained" && {
|
|
boxShadow: "none"
|
|
}),
|
|
[`& .${buttonGroupClasses_default.firstButton},& .${buttonGroupClasses_default.middleButton}`]: _extends({}, ownerState.orientation === "horizontal" && {
|
|
borderTopRightRadius: 0,
|
|
borderBottomRightRadius: 0
|
|
}, ownerState.orientation === "vertical" && {
|
|
borderBottomRightRadius: 0,
|
|
borderBottomLeftRadius: 0
|
|
}, ownerState.variant === "text" && ownerState.orientation === "horizontal" && {
|
|
borderRight: theme.vars ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : `1px solid ${theme.palette.mode === "light" ? "rgba(0, 0, 0, 0.23)" : "rgba(255, 255, 255, 0.23)"}`,
|
|
[`&.${buttonGroupClasses_default.disabled}`]: {
|
|
borderRight: `1px solid ${(theme.vars || theme).palette.action.disabled}`
|
|
}
|
|
}, ownerState.variant === "text" && ownerState.orientation === "vertical" && {
|
|
borderBottom: theme.vars ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : `1px solid ${theme.palette.mode === "light" ? "rgba(0, 0, 0, 0.23)" : "rgba(255, 255, 255, 0.23)"}`,
|
|
[`&.${buttonGroupClasses_default.disabled}`]: {
|
|
borderBottom: `1px solid ${(theme.vars || theme).palette.action.disabled}`
|
|
}
|
|
}, ownerState.variant === "text" && ownerState.color !== "inherit" && {
|
|
borderColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.5)` : (0, import_colorManipulator3.alpha)(theme.palette[ownerState.color].main, 0.5)
|
|
}, ownerState.variant === "outlined" && ownerState.orientation === "horizontal" && {
|
|
borderRightColor: "transparent"
|
|
}, ownerState.variant === "outlined" && ownerState.orientation === "vertical" && {
|
|
borderBottomColor: "transparent"
|
|
}, ownerState.variant === "contained" && ownerState.orientation === "horizontal" && {
|
|
borderRight: `1px solid ${(theme.vars || theme).palette.grey[400]}`,
|
|
[`&.${buttonGroupClasses_default.disabled}`]: {
|
|
borderRight: `1px solid ${(theme.vars || theme).palette.action.disabled}`
|
|
}
|
|
}, ownerState.variant === "contained" && ownerState.orientation === "vertical" && {
|
|
borderBottom: `1px solid ${(theme.vars || theme).palette.grey[400]}`,
|
|
[`&.${buttonGroupClasses_default.disabled}`]: {
|
|
borderBottom: `1px solid ${(theme.vars || theme).palette.action.disabled}`
|
|
}
|
|
}, ownerState.variant === "contained" && ownerState.color !== "inherit" && {
|
|
borderColor: (theme.vars || theme).palette[ownerState.color].dark
|
|
}, {
|
|
"&:hover": _extends({}, ownerState.variant === "outlined" && ownerState.orientation === "horizontal" && {
|
|
borderRightColor: "currentColor"
|
|
}, ownerState.variant === "outlined" && ownerState.orientation === "vertical" && {
|
|
borderBottomColor: "currentColor"
|
|
})
|
|
}),
|
|
[`& .${buttonGroupClasses_default.lastButton},& .${buttonGroupClasses_default.middleButton}`]: _extends({}, ownerState.orientation === "horizontal" && {
|
|
borderTopLeftRadius: 0,
|
|
borderBottomLeftRadius: 0
|
|
}, ownerState.orientation === "vertical" && {
|
|
borderTopRightRadius: 0,
|
|
borderTopLeftRadius: 0
|
|
}, ownerState.variant === "outlined" && ownerState.orientation === "horizontal" && {
|
|
marginLeft: -1
|
|
}, ownerState.variant === "outlined" && ownerState.orientation === "vertical" && {
|
|
marginTop: -1
|
|
})
|
|
}));
|
|
var ButtonGroup = React22.forwardRef(function ButtonGroup2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiButtonGroup"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
color = "primary",
|
|
component = "div",
|
|
disabled = false,
|
|
disableElevation = false,
|
|
disableFocusRipple = false,
|
|
disableRipple = false,
|
|
fullWidth = false,
|
|
orientation = "horizontal",
|
|
size = "medium",
|
|
variant = "outlined"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded17);
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
component,
|
|
disabled,
|
|
disableElevation,
|
|
disableFocusRipple,
|
|
disableRipple,
|
|
fullWidth,
|
|
orientation,
|
|
size,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses14(ownerState);
|
|
const context = React22.useMemo(() => ({
|
|
className: classes.grouped,
|
|
color,
|
|
disabled,
|
|
disableElevation,
|
|
disableFocusRipple,
|
|
disableRipple,
|
|
fullWidth,
|
|
size,
|
|
variant
|
|
}), [color, disabled, disableElevation, disableFocusRipple, disableRipple, fullWidth, size, variant, classes.grouped]);
|
|
const validChildren = getValidReactChildren(children);
|
|
const childrenCount = validChildren.length;
|
|
const getButtonPositionClassName = (index) => {
|
|
const isFirstButton = index === 0;
|
|
const isLastButton = index === childrenCount - 1;
|
|
if (isFirstButton && isLastButton) {
|
|
return "";
|
|
}
|
|
if (isFirstButton) {
|
|
return classes.firstButton;
|
|
}
|
|
if (isLastButton) {
|
|
return classes.lastButton;
|
|
}
|
|
return classes.middleButton;
|
|
};
|
|
return (0, import_jsx_runtime26.jsx)(ButtonGroupRoot, _extends({
|
|
as: component,
|
|
role: "group",
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: (0, import_jsx_runtime26.jsx)(ButtonGroupContext_default.Provider, {
|
|
value: context,
|
|
children: validChildren.map((child, index) => {
|
|
return (0, import_jsx_runtime26.jsx)(ButtonGroupButtonContext_default.Provider, {
|
|
value: getButtonPositionClassName(index),
|
|
children: child
|
|
}, index);
|
|
})
|
|
})
|
|
}));
|
|
});
|
|
true ? ButtonGroup.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types15.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types15.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types15.default.string,
|
|
/**
|
|
* The color of the component.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'primary'
|
|
*/
|
|
color: import_prop_types15.default.oneOfType([import_prop_types15.default.oneOf(["inherit", "primary", "secondary", "error", "info", "success", "warning"]), import_prop_types15.default.string]),
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types15.default.elementType,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types15.default.bool,
|
|
/**
|
|
* If `true`, no elevation is used.
|
|
* @default false
|
|
*/
|
|
disableElevation: import_prop_types15.default.bool,
|
|
/**
|
|
* If `true`, the button keyboard focus ripple is disabled.
|
|
* @default false
|
|
*/
|
|
disableFocusRipple: import_prop_types15.default.bool,
|
|
/**
|
|
* If `true`, the button ripple effect is disabled.
|
|
* @default false
|
|
*/
|
|
disableRipple: import_prop_types15.default.bool,
|
|
/**
|
|
* If `true`, the buttons will take up the full width of its container.
|
|
* @default false
|
|
*/
|
|
fullWidth: import_prop_types15.default.bool,
|
|
/**
|
|
* The component orientation (layout flow direction).
|
|
* @default 'horizontal'
|
|
*/
|
|
orientation: import_prop_types15.default.oneOf(["horizontal", "vertical"]),
|
|
/**
|
|
* The size of the component.
|
|
* `small` is equivalent to the dense button styling.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types15.default.oneOfType([import_prop_types15.default.oneOf(["small", "medium", "large"]), import_prop_types15.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types15.default.oneOfType([import_prop_types15.default.arrayOf(import_prop_types15.default.oneOfType([import_prop_types15.default.func, import_prop_types15.default.object, import_prop_types15.default.bool])), import_prop_types15.default.func, import_prop_types15.default.object]),
|
|
/**
|
|
* The variant to use.
|
|
* @default 'outlined'
|
|
*/
|
|
variant: import_prop_types15.default.oneOfType([import_prop_types15.default.oneOf(["contained", "outlined", "text"]), import_prop_types15.default.string])
|
|
} : void 0;
|
|
var ButtonGroup_default = ButtonGroup;
|
|
|
|
// node_modules/@mui/material/Card/Card.js
|
|
init_extends();
|
|
var React23 = __toESM(require_react());
|
|
var import_prop_types16 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Card/cardClasses.js
|
|
function getCardUtilityClass(slot) {
|
|
return generateUtilityClass("MuiCard", slot);
|
|
}
|
|
var cardClasses = generateUtilityClasses("MuiCard", ["root"]);
|
|
var cardClasses_default = cardClasses;
|
|
|
|
// node_modules/@mui/material/Card/Card.js
|
|
var import_jsx_runtime27 = __toESM(require_jsx_runtime());
|
|
var _excluded18 = ["className", "raised"];
|
|
var useUtilityClasses15 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getCardUtilityClass, classes);
|
|
};
|
|
var CardRoot = styled_default(Paper_default, {
|
|
name: "MuiCard",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(() => {
|
|
return {
|
|
overflow: "hidden"
|
|
};
|
|
});
|
|
var Card = React23.forwardRef(function Card2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiCard"
|
|
});
|
|
const {
|
|
className,
|
|
raised = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded18);
|
|
const ownerState = _extends({}, props, {
|
|
raised
|
|
});
|
|
const classes = useUtilityClasses15(ownerState);
|
|
return (0, import_jsx_runtime27.jsx)(CardRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
elevation: raised ? 8 : void 0,
|
|
ref,
|
|
ownerState
|
|
}, other));
|
|
});
|
|
true ? Card.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types16.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types16.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types16.default.string,
|
|
/**
|
|
* If `true`, the card will use raised styling.
|
|
* @default false
|
|
*/
|
|
raised: chainPropTypes(import_prop_types16.default.bool, (props) => {
|
|
if (props.raised && props.variant === "outlined") {
|
|
return new Error('MUI: Combining `raised={true}` with `variant="outlined"` has no effect.');
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types16.default.oneOfType([import_prop_types16.default.arrayOf(import_prop_types16.default.oneOfType([import_prop_types16.default.func, import_prop_types16.default.object, import_prop_types16.default.bool])), import_prop_types16.default.func, import_prop_types16.default.object])
|
|
} : void 0;
|
|
var Card_default = Card;
|
|
|
|
// node_modules/@mui/material/CardActionArea/CardActionArea.js
|
|
init_extends();
|
|
var React24 = __toESM(require_react());
|
|
var import_prop_types17 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/CardActionArea/cardActionAreaClasses.js
|
|
function getCardActionAreaUtilityClass(slot) {
|
|
return generateUtilityClass("MuiCardActionArea", slot);
|
|
}
|
|
var cardActionAreaClasses = generateUtilityClasses("MuiCardActionArea", ["root", "focusVisible", "focusHighlight"]);
|
|
var cardActionAreaClasses_default = cardActionAreaClasses;
|
|
|
|
// node_modules/@mui/material/CardActionArea/CardActionArea.js
|
|
var import_jsx_runtime28 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime29 = __toESM(require_jsx_runtime());
|
|
var _excluded19 = ["children", "className", "focusVisibleClassName"];
|
|
var useUtilityClasses16 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"],
|
|
focusHighlight: ["focusHighlight"]
|
|
};
|
|
return composeClasses(slots, getCardActionAreaUtilityClass, classes);
|
|
};
|
|
var CardActionAreaRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiCardActionArea",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
display: "block",
|
|
textAlign: "inherit",
|
|
borderRadius: "inherit",
|
|
// for Safari to work https://github.com/mui/material-ui/issues/36285.
|
|
width: "100%",
|
|
[`&:hover .${cardActionAreaClasses_default.focusHighlight}`]: {
|
|
opacity: (theme.vars || theme).palette.action.hoverOpacity,
|
|
"@media (hover: none)": {
|
|
opacity: 0
|
|
}
|
|
},
|
|
[`&.${cardActionAreaClasses_default.focusVisible} .${cardActionAreaClasses_default.focusHighlight}`]: {
|
|
opacity: (theme.vars || theme).palette.action.focusOpacity
|
|
}
|
|
}));
|
|
var CardActionAreaFocusHighlight = styled_default("span", {
|
|
name: "MuiCardActionArea",
|
|
slot: "FocusHighlight",
|
|
overridesResolver: (props, styles3) => styles3.focusHighlight
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
overflow: "hidden",
|
|
pointerEvents: "none",
|
|
position: "absolute",
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
left: 0,
|
|
borderRadius: "inherit",
|
|
opacity: 0,
|
|
backgroundColor: "currentcolor",
|
|
transition: theme.transitions.create("opacity", {
|
|
duration: theme.transitions.duration.short
|
|
})
|
|
}));
|
|
var CardActionArea = React24.forwardRef(function CardActionArea2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiCardActionArea"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
focusVisibleClassName
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded19);
|
|
const ownerState = props;
|
|
const classes = useUtilityClasses16(ownerState);
|
|
return (0, import_jsx_runtime29.jsxs)(CardActionAreaRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
focusVisibleClassName: clsx_default(focusVisibleClassName, classes.focusVisible),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: [children, (0, import_jsx_runtime28.jsx)(CardActionAreaFocusHighlight, {
|
|
className: classes.focusHighlight,
|
|
ownerState
|
|
})]
|
|
}));
|
|
});
|
|
true ? CardActionArea.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types17.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types17.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types17.default.string,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
focusVisibleClassName: import_prop_types17.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types17.default.oneOfType([import_prop_types17.default.arrayOf(import_prop_types17.default.oneOfType([import_prop_types17.default.func, import_prop_types17.default.object, import_prop_types17.default.bool])), import_prop_types17.default.func, import_prop_types17.default.object])
|
|
} : void 0;
|
|
var CardActionArea_default = CardActionArea;
|
|
|
|
// node_modules/@mui/material/CardActions/CardActions.js
|
|
init_extends();
|
|
var React25 = __toESM(require_react());
|
|
var import_prop_types18 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/CardActions/cardActionsClasses.js
|
|
function getCardActionsUtilityClass(slot) {
|
|
return generateUtilityClass("MuiCardActions", slot);
|
|
}
|
|
var cardActionsClasses = generateUtilityClasses("MuiCardActions", ["root", "spacing"]);
|
|
var cardActionsClasses_default = cardActionsClasses;
|
|
|
|
// node_modules/@mui/material/CardActions/CardActions.js
|
|
var import_jsx_runtime30 = __toESM(require_jsx_runtime());
|
|
var _excluded20 = ["disableSpacing", "className"];
|
|
var useUtilityClasses17 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
disableSpacing
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", !disableSpacing && "spacing"]
|
|
};
|
|
return composeClasses(slots, getCardActionsUtilityClass, classes);
|
|
};
|
|
var CardActionsRoot = styled_default("div", {
|
|
name: "MuiCardActions",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, !ownerState.disableSpacing && styles3.spacing];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex",
|
|
alignItems: "center",
|
|
padding: 8
|
|
}, !ownerState.disableSpacing && {
|
|
"& > :not(style) ~ :not(style)": {
|
|
marginLeft: 8
|
|
}
|
|
}));
|
|
var CardActions = React25.forwardRef(function CardActions2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiCardActions"
|
|
});
|
|
const {
|
|
disableSpacing = false,
|
|
className
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded20);
|
|
const ownerState = _extends({}, props, {
|
|
disableSpacing
|
|
});
|
|
const classes = useUtilityClasses17(ownerState);
|
|
return (0, import_jsx_runtime30.jsx)(CardActionsRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? CardActions.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types18.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types18.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types18.default.string,
|
|
/**
|
|
* If `true`, the actions do not have additional margin.
|
|
* @default false
|
|
*/
|
|
disableSpacing: import_prop_types18.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types18.default.oneOfType([import_prop_types18.default.arrayOf(import_prop_types18.default.oneOfType([import_prop_types18.default.func, import_prop_types18.default.object, import_prop_types18.default.bool])), import_prop_types18.default.func, import_prop_types18.default.object])
|
|
} : void 0;
|
|
var CardActions_default = CardActions;
|
|
|
|
// node_modules/@mui/material/CardContent/CardContent.js
|
|
init_extends();
|
|
var React26 = __toESM(require_react());
|
|
var import_prop_types19 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/CardContent/cardContentClasses.js
|
|
function getCardContentUtilityClass(slot) {
|
|
return generateUtilityClass("MuiCardContent", slot);
|
|
}
|
|
var cardContentClasses = generateUtilityClasses("MuiCardContent", ["root"]);
|
|
var cardContentClasses_default = cardContentClasses;
|
|
|
|
// node_modules/@mui/material/CardContent/CardContent.js
|
|
var import_jsx_runtime31 = __toESM(require_jsx_runtime());
|
|
var _excluded21 = ["className", "component"];
|
|
var useUtilityClasses18 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getCardContentUtilityClass, classes);
|
|
};
|
|
var CardContentRoot = styled_default("div", {
|
|
name: "MuiCardContent",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(() => {
|
|
return {
|
|
padding: 16,
|
|
"&:last-child": {
|
|
paddingBottom: 24
|
|
}
|
|
};
|
|
});
|
|
var CardContent = React26.forwardRef(function CardContent2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiCardContent"
|
|
});
|
|
const {
|
|
className,
|
|
component = "div"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded21);
|
|
const ownerState = _extends({}, props, {
|
|
component
|
|
});
|
|
const classes = useUtilityClasses18(ownerState);
|
|
return (0, import_jsx_runtime31.jsx)(CardContentRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? CardContent.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types19.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types19.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types19.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types19.default.elementType,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types19.default.oneOfType([import_prop_types19.default.arrayOf(import_prop_types19.default.oneOfType([import_prop_types19.default.func, import_prop_types19.default.object, import_prop_types19.default.bool])), import_prop_types19.default.func, import_prop_types19.default.object])
|
|
} : void 0;
|
|
var CardContent_default = CardContent;
|
|
|
|
// node_modules/@mui/material/CardHeader/CardHeader.js
|
|
init_extends();
|
|
var React27 = __toESM(require_react());
|
|
var import_prop_types20 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/CardHeader/cardHeaderClasses.js
|
|
function getCardHeaderUtilityClass(slot) {
|
|
return generateUtilityClass("MuiCardHeader", slot);
|
|
}
|
|
var cardHeaderClasses = generateUtilityClasses("MuiCardHeader", ["root", "avatar", "action", "content", "title", "subheader"]);
|
|
var cardHeaderClasses_default = cardHeaderClasses;
|
|
|
|
// node_modules/@mui/material/CardHeader/CardHeader.js
|
|
var import_jsx_runtime32 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime33 = __toESM(require_jsx_runtime());
|
|
var _excluded23 = ["action", "avatar", "className", "component", "disableTypography", "subheader", "subheaderTypographyProps", "title", "titleTypographyProps"];
|
|
var useUtilityClasses19 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"],
|
|
avatar: ["avatar"],
|
|
action: ["action"],
|
|
content: ["content"],
|
|
title: ["title"],
|
|
subheader: ["subheader"]
|
|
};
|
|
return composeClasses(slots, getCardHeaderUtilityClass, classes);
|
|
};
|
|
var CardHeaderRoot = styled_default("div", {
|
|
name: "MuiCardHeader",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => _extends({
|
|
[`& .${cardHeaderClasses_default.title}`]: styles3.title,
|
|
[`& .${cardHeaderClasses_default.subheader}`]: styles3.subheader
|
|
}, styles3.root)
|
|
})({
|
|
display: "flex",
|
|
alignItems: "center",
|
|
padding: 16
|
|
});
|
|
var CardHeaderAvatar = styled_default("div", {
|
|
name: "MuiCardHeader",
|
|
slot: "Avatar",
|
|
overridesResolver: (props, styles3) => styles3.avatar
|
|
})({
|
|
display: "flex",
|
|
flex: "0 0 auto",
|
|
marginRight: 16
|
|
});
|
|
var CardHeaderAction = styled_default("div", {
|
|
name: "MuiCardHeader",
|
|
slot: "Action",
|
|
overridesResolver: (props, styles3) => styles3.action
|
|
})({
|
|
flex: "0 0 auto",
|
|
alignSelf: "flex-start",
|
|
marginTop: -4,
|
|
marginRight: -8,
|
|
marginBottom: -4
|
|
});
|
|
var CardHeaderContent = styled_default("div", {
|
|
name: "MuiCardHeader",
|
|
slot: "Content",
|
|
overridesResolver: (props, styles3) => styles3.content
|
|
})({
|
|
flex: "1 1 auto"
|
|
});
|
|
var CardHeader = React27.forwardRef(function CardHeader2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiCardHeader"
|
|
});
|
|
const {
|
|
action,
|
|
avatar,
|
|
className,
|
|
component = "div",
|
|
disableTypography = false,
|
|
subheader: subheaderProp,
|
|
subheaderTypographyProps,
|
|
title: titleProp,
|
|
titleTypographyProps
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded23);
|
|
const ownerState = _extends({}, props, {
|
|
component,
|
|
disableTypography
|
|
});
|
|
const classes = useUtilityClasses19(ownerState);
|
|
let title = titleProp;
|
|
if (title != null && title.type !== Typography_default && !disableTypography) {
|
|
title = (0, import_jsx_runtime32.jsx)(Typography_default, _extends({
|
|
variant: avatar ? "body2" : "h5",
|
|
className: classes.title,
|
|
component: "span",
|
|
display: "block"
|
|
}, titleTypographyProps, {
|
|
children: title
|
|
}));
|
|
}
|
|
let subheader = subheaderProp;
|
|
if (subheader != null && subheader.type !== Typography_default && !disableTypography) {
|
|
subheader = (0, import_jsx_runtime32.jsx)(Typography_default, _extends({
|
|
variant: avatar ? "body2" : "body1",
|
|
className: classes.subheader,
|
|
color: "text.secondary",
|
|
component: "span",
|
|
display: "block"
|
|
}, subheaderTypographyProps, {
|
|
children: subheader
|
|
}));
|
|
}
|
|
return (0, import_jsx_runtime33.jsxs)(CardHeaderRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
as: component,
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: [avatar && (0, import_jsx_runtime32.jsx)(CardHeaderAvatar, {
|
|
className: classes.avatar,
|
|
ownerState,
|
|
children: avatar
|
|
}), (0, import_jsx_runtime33.jsxs)(CardHeaderContent, {
|
|
className: classes.content,
|
|
ownerState,
|
|
children: [title, subheader]
|
|
}), action && (0, import_jsx_runtime32.jsx)(CardHeaderAction, {
|
|
className: classes.action,
|
|
ownerState,
|
|
children: action
|
|
})]
|
|
}));
|
|
});
|
|
true ? CardHeader.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The action to display in the card header.
|
|
*/
|
|
action: import_prop_types20.default.node,
|
|
/**
|
|
* The Avatar element to display.
|
|
*/
|
|
avatar: import_prop_types20.default.node,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
children: import_prop_types20.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types20.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types20.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types20.default.elementType,
|
|
/**
|
|
* If `true`, `subheader` and `title` won't be wrapped by a Typography component.
|
|
* This can be useful to render an alternative Typography variant by wrapping
|
|
* the `title` text, and optional `subheader` text
|
|
* with the Typography component.
|
|
* @default false
|
|
*/
|
|
disableTypography: import_prop_types20.default.bool,
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
subheader: import_prop_types20.default.node,
|
|
/**
|
|
* These props will be forwarded to the subheader
|
|
* (as long as disableTypography is not `true`).
|
|
*/
|
|
subheaderTypographyProps: import_prop_types20.default.object,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types20.default.oneOfType([import_prop_types20.default.arrayOf(import_prop_types20.default.oneOfType([import_prop_types20.default.func, import_prop_types20.default.object, import_prop_types20.default.bool])), import_prop_types20.default.func, import_prop_types20.default.object]),
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
title: import_prop_types20.default.node,
|
|
/**
|
|
* These props will be forwarded to the title
|
|
* (as long as disableTypography is not `true`).
|
|
*/
|
|
titleTypographyProps: import_prop_types20.default.object
|
|
} : void 0;
|
|
var CardHeader_default = CardHeader;
|
|
|
|
// node_modules/@mui/material/CardMedia/CardMedia.js
|
|
init_extends();
|
|
var React28 = __toESM(require_react());
|
|
var import_prop_types21 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/CardMedia/cardMediaClasses.js
|
|
function getCardMediaUtilityClass(slot) {
|
|
return generateUtilityClass("MuiCardMedia", slot);
|
|
}
|
|
var cardMediaClasses = generateUtilityClasses("MuiCardMedia", ["root", "media", "img"]);
|
|
var cardMediaClasses_default = cardMediaClasses;
|
|
|
|
// node_modules/@mui/material/CardMedia/CardMedia.js
|
|
var import_jsx_runtime34 = __toESM(require_jsx_runtime());
|
|
var _excluded24 = ["children", "className", "component", "image", "src", "style"];
|
|
var useUtilityClasses20 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
isMediaComponent,
|
|
isImageComponent
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", isMediaComponent && "media", isImageComponent && "img"]
|
|
};
|
|
return composeClasses(slots, getCardMediaUtilityClass, classes);
|
|
};
|
|
var CardMediaRoot = styled_default("div", {
|
|
name: "MuiCardMedia",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
const {
|
|
isMediaComponent,
|
|
isImageComponent
|
|
} = ownerState;
|
|
return [styles3.root, isMediaComponent && styles3.media, isImageComponent && styles3.img];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "block",
|
|
backgroundSize: "cover",
|
|
backgroundRepeat: "no-repeat",
|
|
backgroundPosition: "center"
|
|
}, ownerState.isMediaComponent && {
|
|
width: "100%"
|
|
}, ownerState.isImageComponent && {
|
|
// ⚠️ object-fit is not supported by IE11.
|
|
objectFit: "cover"
|
|
}));
|
|
var MEDIA_COMPONENTS = ["video", "audio", "picture", "iframe", "img"];
|
|
var IMAGE_COMPONENTS = ["picture", "img"];
|
|
var CardMedia = React28.forwardRef(function CardMedia2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiCardMedia"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
component = "div",
|
|
image,
|
|
src,
|
|
style
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded24);
|
|
const isMediaComponent = MEDIA_COMPONENTS.indexOf(component) !== -1;
|
|
const composedStyle = !isMediaComponent && image ? _extends({
|
|
backgroundImage: `url("${image}")`
|
|
}, style) : style;
|
|
const ownerState = _extends({}, props, {
|
|
component,
|
|
isMediaComponent,
|
|
isImageComponent: IMAGE_COMPONENTS.indexOf(component) !== -1
|
|
});
|
|
const classes = useUtilityClasses20(ownerState);
|
|
return (0, import_jsx_runtime34.jsx)(CardMediaRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
as: component,
|
|
role: !isMediaComponent && image ? "img" : void 0,
|
|
ref,
|
|
style: composedStyle,
|
|
ownerState,
|
|
src: isMediaComponent ? image || src : void 0
|
|
}, other, {
|
|
children
|
|
}));
|
|
});
|
|
true ? CardMedia.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: chainPropTypes(import_prop_types21.default.node, (props) => {
|
|
if (!props.children && !props.image && !props.src && !props.component) {
|
|
return new Error("MUI: Either `children`, `image`, `src` or `component` prop must be specified.");
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types21.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types21.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types21.default.elementType,
|
|
/**
|
|
* Image to be displayed as a background image.
|
|
* Either `image` or `src` prop must be specified.
|
|
* Note that caller must specify height otherwise the image will not be visible.
|
|
*/
|
|
image: import_prop_types21.default.string,
|
|
/**
|
|
* An alias for `image` property.
|
|
* Available only with media components.
|
|
* Media components: `video`, `audio`, `picture`, `iframe`, `img`.
|
|
*/
|
|
src: import_prop_types21.default.string,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
style: import_prop_types21.default.object,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types21.default.oneOfType([import_prop_types21.default.arrayOf(import_prop_types21.default.oneOfType([import_prop_types21.default.func, import_prop_types21.default.object, import_prop_types21.default.bool])), import_prop_types21.default.func, import_prop_types21.default.object])
|
|
} : void 0;
|
|
var CardMedia_default = CardMedia;
|
|
|
|
// node_modules/@mui/material/Container/Container.js
|
|
var import_prop_types22 = __toESM(require_prop_types());
|
|
var Container = createContainer({
|
|
createStyledComponent: styled_default("div", {
|
|
name: "MuiContainer",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`maxWidth${capitalize_default(String(ownerState.maxWidth))}`], ownerState.fixed && styles3.fixed, ownerState.disableGutters && styles3.disableGutters];
|
|
}
|
|
}),
|
|
useThemeProps: (inProps) => useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiContainer"
|
|
})
|
|
});
|
|
true ? Container.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* @ignore
|
|
*/
|
|
children: import_prop_types22.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types22.default.object,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types22.default.elementType,
|
|
/**
|
|
* If `true`, the left and right padding is removed.
|
|
* @default false
|
|
*/
|
|
disableGutters: import_prop_types22.default.bool,
|
|
/**
|
|
* Set the max-width to match the min-width of the current breakpoint.
|
|
* This is useful if you'd prefer to design for a fixed set of sizes
|
|
* instead of trying to accommodate a fully fluid viewport.
|
|
* It's fluid by default.
|
|
* @default false
|
|
*/
|
|
fixed: import_prop_types22.default.bool,
|
|
/**
|
|
* Determine the max-width of the container.
|
|
* The container width grows with the size of the screen.
|
|
* Set to `false` to disable `maxWidth`.
|
|
* @default 'lg'
|
|
*/
|
|
maxWidth: import_prop_types22.default.oneOfType([import_prop_types22.default.oneOf(["xs", "sm", "md", "lg", "xl", false]), import_prop_types22.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types22.default.oneOfType([import_prop_types22.default.arrayOf(import_prop_types22.default.oneOfType([import_prop_types22.default.func, import_prop_types22.default.object, import_prop_types22.default.bool])), import_prop_types22.default.func, import_prop_types22.default.object])
|
|
} : void 0;
|
|
var Container_default = Container;
|
|
|
|
// node_modules/@mui/material/Container/containerClasses.js
|
|
function getContainerUtilityClass(slot) {
|
|
return generateUtilityClass("MuiContainer", slot);
|
|
}
|
|
var containerClasses = generateUtilityClasses("MuiContainer", ["root", "disableGutters", "fixed", "maxWidthXs", "maxWidthSm", "maxWidthMd", "maxWidthLg", "maxWidthXl"]);
|
|
var containerClasses_default = containerClasses;
|
|
|
|
// node_modules/@mui/material/darkScrollbar/index.js
|
|
var scrollBar = {
|
|
track: "#2b2b2b",
|
|
thumb: "#6b6b6b",
|
|
active: "#959595"
|
|
};
|
|
function darkScrollbar(options = scrollBar) {
|
|
return {
|
|
scrollbarColor: `${options.thumb} ${options.track}`,
|
|
"&::-webkit-scrollbar, & *::-webkit-scrollbar": {
|
|
backgroundColor: options.track
|
|
},
|
|
"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb": {
|
|
borderRadius: 8,
|
|
backgroundColor: options.thumb,
|
|
minHeight: 24,
|
|
border: `3px solid ${options.track}`
|
|
},
|
|
"&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus": {
|
|
backgroundColor: options.active
|
|
},
|
|
"&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active": {
|
|
backgroundColor: options.active
|
|
},
|
|
"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover": {
|
|
backgroundColor: options.active
|
|
},
|
|
"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner": {
|
|
backgroundColor: options.track
|
|
}
|
|
};
|
|
}
|
|
|
|
// node_modules/@mui/material/Dialog/Dialog.js
|
|
init_extends();
|
|
var React30 = __toESM(require_react());
|
|
var import_prop_types23 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Dialog/dialogClasses.js
|
|
function getDialogUtilityClass(slot) {
|
|
return generateUtilityClass("MuiDialog", slot);
|
|
}
|
|
var dialogClasses = generateUtilityClasses("MuiDialog", ["root", "scrollPaper", "scrollBody", "container", "paper", "paperScrollPaper", "paperScrollBody", "paperWidthFalse", "paperWidthXs", "paperWidthSm", "paperWidthMd", "paperWidthLg", "paperWidthXl", "paperFullWidth", "paperFullScreen"]);
|
|
var dialogClasses_default = dialogClasses;
|
|
|
|
// node_modules/@mui/material/Dialog/DialogContext.js
|
|
var React29 = __toESM(require_react());
|
|
var DialogContext = React29.createContext({});
|
|
if (true) {
|
|
DialogContext.displayName = "DialogContext";
|
|
}
|
|
var DialogContext_default = DialogContext;
|
|
|
|
// node_modules/@mui/material/Dialog/Dialog.js
|
|
var import_jsx_runtime35 = __toESM(require_jsx_runtime());
|
|
var _excluded25 = ["aria-describedby", "aria-labelledby", "BackdropComponent", "BackdropProps", "children", "className", "disableEscapeKeyDown", "fullScreen", "fullWidth", "maxWidth", "onBackdropClick", "onClick", "onClose", "open", "PaperComponent", "PaperProps", "scroll", "TransitionComponent", "transitionDuration", "TransitionProps"];
|
|
var DialogBackdrop = styled_default(Backdrop_default, {
|
|
name: "MuiDialog",
|
|
slot: "Backdrop",
|
|
overrides: (props, styles3) => styles3.backdrop
|
|
})({
|
|
// Improve scrollable dialog support.
|
|
zIndex: -1
|
|
});
|
|
var useUtilityClasses21 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
scroll,
|
|
maxWidth,
|
|
fullWidth,
|
|
fullScreen
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"],
|
|
container: ["container", `scroll${capitalize_default(scroll)}`],
|
|
paper: ["paper", `paperScroll${capitalize_default(scroll)}`, `paperWidth${capitalize_default(String(maxWidth))}`, fullWidth && "paperFullWidth", fullScreen && "paperFullScreen"]
|
|
};
|
|
return composeClasses(slots, getDialogUtilityClass, classes);
|
|
};
|
|
var DialogRoot = styled_default(Modal_default, {
|
|
name: "MuiDialog",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})({
|
|
"@media print": {
|
|
// Use !important to override the Modal inline-style.
|
|
position: "absolute !important"
|
|
}
|
|
});
|
|
var DialogContainer = styled_default("div", {
|
|
name: "MuiDialog",
|
|
slot: "Container",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.container, styles3[`scroll${capitalize_default(ownerState.scroll)}`]];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
height: "100%",
|
|
"@media print": {
|
|
height: "auto"
|
|
},
|
|
// We disable the focus ring for mouse, touch and keyboard users.
|
|
outline: 0
|
|
}, ownerState.scroll === "paper" && {
|
|
display: "flex",
|
|
justifyContent: "center",
|
|
alignItems: "center"
|
|
}, ownerState.scroll === "body" && {
|
|
overflowY: "auto",
|
|
overflowX: "hidden",
|
|
textAlign: "center",
|
|
"&::after": {
|
|
content: '""',
|
|
display: "inline-block",
|
|
verticalAlign: "middle",
|
|
height: "100%",
|
|
width: "0"
|
|
}
|
|
}));
|
|
var DialogPaper = styled_default(Paper_default, {
|
|
name: "MuiDialog",
|
|
slot: "Paper",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.paper, styles3[`scrollPaper${capitalize_default(ownerState.scroll)}`], styles3[`paperWidth${capitalize_default(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles3.paperFullWidth, ownerState.fullScreen && styles3.paperFullScreen];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
margin: 32,
|
|
position: "relative",
|
|
overflowY: "auto",
|
|
// Fix IE11 issue, to remove at some point.
|
|
"@media print": {
|
|
overflowY: "visible",
|
|
boxShadow: "none"
|
|
}
|
|
}, ownerState.scroll === "paper" && {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
maxHeight: "calc(100% - 64px)"
|
|
}, ownerState.scroll === "body" && {
|
|
display: "inline-block",
|
|
verticalAlign: "middle",
|
|
textAlign: "left"
|
|
// 'initial' doesn't work on IE11
|
|
}, !ownerState.maxWidth && {
|
|
maxWidth: "calc(100% - 64px)"
|
|
}, ownerState.maxWidth === "xs" && {
|
|
maxWidth: theme.breakpoints.unit === "px" ? Math.max(theme.breakpoints.values.xs, 444) : `max(${theme.breakpoints.values.xs}${theme.breakpoints.unit}, 444px)`,
|
|
[`&.${dialogClasses_default.paperScrollBody}`]: {
|
|
[theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {
|
|
maxWidth: "calc(100% - 64px)"
|
|
}
|
|
}
|
|
}, ownerState.maxWidth && ownerState.maxWidth !== "xs" && {
|
|
maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`,
|
|
[`&.${dialogClasses_default.paperScrollBody}`]: {
|
|
[theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: {
|
|
maxWidth: "calc(100% - 64px)"
|
|
}
|
|
}
|
|
}, ownerState.fullWidth && {
|
|
width: "calc(100% - 64px)"
|
|
}, ownerState.fullScreen && {
|
|
margin: 0,
|
|
width: "100%",
|
|
maxWidth: "100%",
|
|
height: "100%",
|
|
maxHeight: "none",
|
|
borderRadius: 0,
|
|
[`&.${dialogClasses_default.paperScrollBody}`]: {
|
|
margin: 0,
|
|
maxWidth: "100%"
|
|
}
|
|
}));
|
|
var Dialog = React30.forwardRef(function Dialog2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiDialog"
|
|
});
|
|
const theme = useTheme();
|
|
const defaultTransitionDuration = {
|
|
enter: theme.transitions.duration.enteringScreen,
|
|
exit: theme.transitions.duration.leavingScreen
|
|
};
|
|
const {
|
|
"aria-describedby": ariaDescribedby,
|
|
"aria-labelledby": ariaLabelledbyProp,
|
|
BackdropComponent,
|
|
BackdropProps,
|
|
children,
|
|
className,
|
|
disableEscapeKeyDown = false,
|
|
fullScreen = false,
|
|
fullWidth = false,
|
|
maxWidth = "sm",
|
|
onBackdropClick,
|
|
onClick,
|
|
onClose,
|
|
open,
|
|
PaperComponent = Paper_default,
|
|
PaperProps = {},
|
|
scroll = "paper",
|
|
TransitionComponent = Fade_default,
|
|
transitionDuration = defaultTransitionDuration,
|
|
TransitionProps
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded25);
|
|
const ownerState = _extends({}, props, {
|
|
disableEscapeKeyDown,
|
|
fullScreen,
|
|
fullWidth,
|
|
maxWidth,
|
|
scroll
|
|
});
|
|
const classes = useUtilityClasses21(ownerState);
|
|
const backdropClick = React30.useRef();
|
|
const handleMouseDown = (event) => {
|
|
backdropClick.current = event.target === event.currentTarget;
|
|
};
|
|
const handleBackdropClick = (event) => {
|
|
if (onClick) {
|
|
onClick(event);
|
|
}
|
|
if (!backdropClick.current) {
|
|
return;
|
|
}
|
|
backdropClick.current = null;
|
|
if (onBackdropClick) {
|
|
onBackdropClick(event);
|
|
}
|
|
if (onClose) {
|
|
onClose(event, "backdropClick");
|
|
}
|
|
};
|
|
const ariaLabelledby = useId(ariaLabelledbyProp);
|
|
const dialogContextValue = React30.useMemo(() => {
|
|
return {
|
|
titleId: ariaLabelledby
|
|
};
|
|
}, [ariaLabelledby]);
|
|
return (0, import_jsx_runtime35.jsx)(DialogRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
closeAfterTransition: true,
|
|
components: {
|
|
Backdrop: DialogBackdrop
|
|
},
|
|
componentsProps: {
|
|
backdrop: _extends({
|
|
transitionDuration,
|
|
as: BackdropComponent
|
|
}, BackdropProps)
|
|
},
|
|
disableEscapeKeyDown,
|
|
onClose,
|
|
open,
|
|
ref,
|
|
onClick: handleBackdropClick,
|
|
ownerState
|
|
}, other, {
|
|
children: (0, import_jsx_runtime35.jsx)(TransitionComponent, _extends({
|
|
appear: true,
|
|
in: open,
|
|
timeout: transitionDuration,
|
|
role: "presentation"
|
|
}, TransitionProps, {
|
|
children: (0, import_jsx_runtime35.jsx)(DialogContainer, {
|
|
className: clsx_default(classes.container),
|
|
onMouseDown: handleMouseDown,
|
|
ownerState,
|
|
children: (0, import_jsx_runtime35.jsx)(DialogPaper, _extends({
|
|
as: PaperComponent,
|
|
elevation: 24,
|
|
role: "dialog",
|
|
"aria-describedby": ariaDescribedby,
|
|
"aria-labelledby": ariaLabelledby
|
|
}, PaperProps, {
|
|
className: clsx_default(classes.paper, PaperProps.className),
|
|
ownerState,
|
|
children: (0, import_jsx_runtime35.jsx)(DialogContext_default.Provider, {
|
|
value: dialogContextValue,
|
|
children
|
|
})
|
|
}))
|
|
})
|
|
}))
|
|
}));
|
|
});
|
|
true ? Dialog.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The id(s) of the element(s) that describe the dialog.
|
|
*/
|
|
"aria-describedby": import_prop_types23.default.string,
|
|
/**
|
|
* The id(s) of the element(s) that label the dialog.
|
|
*/
|
|
"aria-labelledby": import_prop_types23.default.string,
|
|
/**
|
|
* A backdrop component. This prop enables custom backdrop rendering.
|
|
* @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.
|
|
* Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.
|
|
* @default styled(Backdrop, {
|
|
* name: 'MuiModal',
|
|
* slot: 'Backdrop',
|
|
* overridesResolver: (props, styles) => {
|
|
* return styles.backdrop;
|
|
* },
|
|
* })({
|
|
* zIndex: -1,
|
|
* })
|
|
*/
|
|
BackdropComponent: import_prop_types23.default.elementType,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
BackdropProps: import_prop_types23.default.object,
|
|
/**
|
|
* Dialog children, usually the included sub-components.
|
|
*/
|
|
children: import_prop_types23.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types23.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types23.default.string,
|
|
/**
|
|
* If `true`, hitting escape will not fire the `onClose` callback.
|
|
* @default false
|
|
*/
|
|
disableEscapeKeyDown: import_prop_types23.default.bool,
|
|
/**
|
|
* If `true`, the dialog is full-screen.
|
|
* @default false
|
|
*/
|
|
fullScreen: import_prop_types23.default.bool,
|
|
/**
|
|
* If `true`, the dialog stretches to `maxWidth`.
|
|
*
|
|
* Notice that the dialog width grow is limited by the default margin.
|
|
* @default false
|
|
*/
|
|
fullWidth: import_prop_types23.default.bool,
|
|
/**
|
|
* Determine the max-width of the dialog.
|
|
* The dialog width grows with the size of the screen.
|
|
* Set to `false` to disable `maxWidth`.
|
|
* @default 'sm'
|
|
*/
|
|
maxWidth: import_prop_types23.default.oneOfType([import_prop_types23.default.oneOf(["xs", "sm", "md", "lg", "xl", false]), import_prop_types23.default.string]),
|
|
/**
|
|
* Callback fired when the backdrop is clicked.
|
|
* @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.
|
|
*/
|
|
onBackdropClick: import_prop_types23.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onClick: import_prop_types23.default.func,
|
|
/**
|
|
* Callback fired when the component requests to be closed.
|
|
*
|
|
* @param {object} event The event source of the callback.
|
|
* @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`.
|
|
*/
|
|
onClose: import_prop_types23.default.func,
|
|
/**
|
|
* If `true`, the component is shown.
|
|
*/
|
|
open: import_prop_types23.default.bool.isRequired,
|
|
/**
|
|
* The component used to render the body of the dialog.
|
|
* @default Paper
|
|
*/
|
|
PaperComponent: import_prop_types23.default.elementType,
|
|
/**
|
|
* Props applied to the [`Paper`](/material-ui/api/paper/) element.
|
|
* @default {}
|
|
*/
|
|
PaperProps: import_prop_types23.default.object,
|
|
/**
|
|
* Determine the container for scrolling the dialog.
|
|
* @default 'paper'
|
|
*/
|
|
scroll: import_prop_types23.default.oneOf(["body", "paper"]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types23.default.oneOfType([import_prop_types23.default.arrayOf(import_prop_types23.default.oneOfType([import_prop_types23.default.func, import_prop_types23.default.object, import_prop_types23.default.bool])), import_prop_types23.default.func, import_prop_types23.default.object]),
|
|
/**
|
|
* The component used for the transition.
|
|
* [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
|
|
* @default Fade
|
|
*/
|
|
TransitionComponent: import_prop_types23.default.elementType,
|
|
/**
|
|
* The duration for the transition, in milliseconds.
|
|
* You may specify a single timeout for all transitions, or individually with an object.
|
|
* @default {
|
|
* enter: theme.transitions.duration.enteringScreen,
|
|
* exit: theme.transitions.duration.leavingScreen,
|
|
* }
|
|
*/
|
|
transitionDuration: import_prop_types23.default.oneOfType([import_prop_types23.default.number, import_prop_types23.default.shape({
|
|
appear: import_prop_types23.default.number,
|
|
enter: import_prop_types23.default.number,
|
|
exit: import_prop_types23.default.number
|
|
})]),
|
|
/**
|
|
* Props applied to the transition element.
|
|
* By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
|
|
*/
|
|
TransitionProps: import_prop_types23.default.object
|
|
} : void 0;
|
|
var Dialog_default = Dialog;
|
|
|
|
// node_modules/@mui/material/DialogActions/DialogActions.js
|
|
init_extends();
|
|
var React31 = __toESM(require_react());
|
|
var import_prop_types24 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/DialogActions/dialogActionsClasses.js
|
|
function getDialogActionsUtilityClass(slot) {
|
|
return generateUtilityClass("MuiDialogActions", slot);
|
|
}
|
|
var dialogActionsClasses = generateUtilityClasses("MuiDialogActions", ["root", "spacing"]);
|
|
var dialogActionsClasses_default = dialogActionsClasses;
|
|
|
|
// node_modules/@mui/material/DialogActions/DialogActions.js
|
|
var import_jsx_runtime36 = __toESM(require_jsx_runtime());
|
|
var _excluded26 = ["className", "disableSpacing"];
|
|
var useUtilityClasses22 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
disableSpacing
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", !disableSpacing && "spacing"]
|
|
};
|
|
return composeClasses(slots, getDialogActionsUtilityClass, classes);
|
|
};
|
|
var DialogActionsRoot = styled_default("div", {
|
|
name: "MuiDialogActions",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, !ownerState.disableSpacing && styles3.spacing];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex",
|
|
alignItems: "center",
|
|
padding: 8,
|
|
justifyContent: "flex-end",
|
|
flex: "0 0 auto"
|
|
}, !ownerState.disableSpacing && {
|
|
"& > :not(style) ~ :not(style)": {
|
|
marginLeft: 8
|
|
}
|
|
}));
|
|
var DialogActions = React31.forwardRef(function DialogActions2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiDialogActions"
|
|
});
|
|
const {
|
|
className,
|
|
disableSpacing = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded26);
|
|
const ownerState = _extends({}, props, {
|
|
disableSpacing
|
|
});
|
|
const classes = useUtilityClasses22(ownerState);
|
|
return (0, import_jsx_runtime36.jsx)(DialogActionsRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? DialogActions.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types24.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types24.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types24.default.string,
|
|
/**
|
|
* If `true`, the actions do not have additional margin.
|
|
* @default false
|
|
*/
|
|
disableSpacing: import_prop_types24.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types24.default.oneOfType([import_prop_types24.default.arrayOf(import_prop_types24.default.oneOfType([import_prop_types24.default.func, import_prop_types24.default.object, import_prop_types24.default.bool])), import_prop_types24.default.func, import_prop_types24.default.object])
|
|
} : void 0;
|
|
var DialogActions_default = DialogActions;
|
|
|
|
// node_modules/@mui/material/DialogContent/DialogContent.js
|
|
init_extends();
|
|
var React32 = __toESM(require_react());
|
|
var import_prop_types25 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/DialogContent/dialogContentClasses.js
|
|
function getDialogContentUtilityClass(slot) {
|
|
return generateUtilityClass("MuiDialogContent", slot);
|
|
}
|
|
var dialogContentClasses = generateUtilityClasses("MuiDialogContent", ["root", "dividers"]);
|
|
var dialogContentClasses_default = dialogContentClasses;
|
|
|
|
// node_modules/@mui/material/DialogTitle/dialogTitleClasses.js
|
|
function getDialogTitleUtilityClass(slot) {
|
|
return generateUtilityClass("MuiDialogTitle", slot);
|
|
}
|
|
var dialogTitleClasses = generateUtilityClasses("MuiDialogTitle", ["root"]);
|
|
var dialogTitleClasses_default = dialogTitleClasses;
|
|
|
|
// node_modules/@mui/material/DialogContent/DialogContent.js
|
|
var import_jsx_runtime37 = __toESM(require_jsx_runtime());
|
|
var _excluded27 = ["className", "dividers"];
|
|
var useUtilityClasses23 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
dividers
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", dividers && "dividers"]
|
|
};
|
|
return composeClasses(slots, getDialogContentUtilityClass, classes);
|
|
};
|
|
var DialogContentRoot = styled_default("div", {
|
|
name: "MuiDialogContent",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.dividers && styles3.dividers];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
flex: "1 1 auto",
|
|
// Add iOS momentum scrolling for iOS < 13.0
|
|
WebkitOverflowScrolling: "touch",
|
|
overflowY: "auto",
|
|
padding: "20px 24px"
|
|
}, ownerState.dividers ? {
|
|
padding: "16px 24px",
|
|
borderTop: `1px solid ${(theme.vars || theme).palette.divider}`,
|
|
borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
} : {
|
|
[`.${dialogTitleClasses_default.root} + &`]: {
|
|
paddingTop: 0
|
|
}
|
|
}));
|
|
var DialogContent = React32.forwardRef(function DialogContent2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiDialogContent"
|
|
});
|
|
const {
|
|
className,
|
|
dividers = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded27);
|
|
const ownerState = _extends({}, props, {
|
|
dividers
|
|
});
|
|
const classes = useUtilityClasses23(ownerState);
|
|
return (0, import_jsx_runtime37.jsx)(DialogContentRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? DialogContent.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types25.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types25.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types25.default.string,
|
|
/**
|
|
* Display the top and bottom dividers.
|
|
* @default false
|
|
*/
|
|
dividers: import_prop_types25.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types25.default.oneOfType([import_prop_types25.default.arrayOf(import_prop_types25.default.oneOfType([import_prop_types25.default.func, import_prop_types25.default.object, import_prop_types25.default.bool])), import_prop_types25.default.func, import_prop_types25.default.object])
|
|
} : void 0;
|
|
var DialogContent_default = DialogContent;
|
|
|
|
// node_modules/@mui/material/DialogContentText/DialogContentText.js
|
|
init_extends();
|
|
var React33 = __toESM(require_react());
|
|
var import_prop_types26 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js
|
|
function getDialogContentTextUtilityClass(slot) {
|
|
return generateUtilityClass("MuiDialogContentText", slot);
|
|
}
|
|
var dialogContentTextClasses = generateUtilityClasses("MuiDialogContentText", ["root"]);
|
|
var dialogContentTextClasses_default = dialogContentTextClasses;
|
|
|
|
// node_modules/@mui/material/DialogContentText/DialogContentText.js
|
|
var import_jsx_runtime38 = __toESM(require_jsx_runtime());
|
|
var _excluded28 = ["children", "className"];
|
|
var useUtilityClasses24 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
const composedClasses = composeClasses(slots, getDialogContentTextUtilityClass, classes);
|
|
return _extends({}, classes, composedClasses);
|
|
};
|
|
var DialogContentTextRoot = styled_default(Typography_default, {
|
|
shouldForwardProp: (prop) => rootShouldForwardProp_default(prop) || prop === "classes",
|
|
name: "MuiDialogContentText",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})({});
|
|
var DialogContentText = React33.forwardRef(function DialogContentText2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiDialogContentText"
|
|
});
|
|
const {
|
|
className
|
|
} = props, ownerState = _objectWithoutPropertiesLoose(props, _excluded28);
|
|
const classes = useUtilityClasses24(ownerState);
|
|
return (0, import_jsx_runtime38.jsx)(DialogContentTextRoot, _extends({
|
|
component: "p",
|
|
variant: "body1",
|
|
color: "text.secondary",
|
|
ref,
|
|
ownerState,
|
|
className: clsx_default(classes.root, className)
|
|
}, props, {
|
|
classes
|
|
}));
|
|
});
|
|
true ? DialogContentText.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types26.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types26.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types26.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types26.default.oneOfType([import_prop_types26.default.arrayOf(import_prop_types26.default.oneOfType([import_prop_types26.default.func, import_prop_types26.default.object, import_prop_types26.default.bool])), import_prop_types26.default.func, import_prop_types26.default.object])
|
|
} : void 0;
|
|
var DialogContentText_default = DialogContentText;
|
|
|
|
// node_modules/@mui/material/DialogTitle/DialogTitle.js
|
|
init_extends();
|
|
var React34 = __toESM(require_react());
|
|
var import_prop_types27 = __toESM(require_prop_types());
|
|
var import_jsx_runtime39 = __toESM(require_jsx_runtime());
|
|
var _excluded29 = ["className", "id"];
|
|
var useUtilityClasses25 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getDialogTitleUtilityClass, classes);
|
|
};
|
|
var DialogTitleRoot = styled_default(Typography_default, {
|
|
name: "MuiDialogTitle",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})({
|
|
padding: "16px 24px",
|
|
flex: "0 0 auto"
|
|
});
|
|
var DialogTitle = React34.forwardRef(function DialogTitle2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiDialogTitle"
|
|
});
|
|
const {
|
|
className,
|
|
id: idProp
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded29);
|
|
const ownerState = props;
|
|
const classes = useUtilityClasses25(ownerState);
|
|
const {
|
|
titleId = idProp
|
|
} = React34.useContext(DialogContext_default);
|
|
return (0, import_jsx_runtime39.jsx)(DialogTitleRoot, _extends({
|
|
component: "h2",
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref,
|
|
variant: "h6",
|
|
id: idProp != null ? idProp : titleId
|
|
}, other));
|
|
});
|
|
true ? DialogTitle.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types27.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types27.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types27.default.string,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
id: import_prop_types27.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types27.default.oneOfType([import_prop_types27.default.arrayOf(import_prop_types27.default.oneOfType([import_prop_types27.default.func, import_prop_types27.default.object, import_prop_types27.default.bool])), import_prop_types27.default.func, import_prop_types27.default.object])
|
|
} : void 0;
|
|
var DialogTitle_default = DialogTitle;
|
|
|
|
// node_modules/@mui/material/Drawer/Drawer.js
|
|
init_extends();
|
|
var React36 = __toESM(require_react());
|
|
var import_prop_types29 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Slide/Slide.js
|
|
init_extends();
|
|
var React35 = __toESM(require_react());
|
|
var import_prop_types28 = __toESM(require_prop_types());
|
|
var import_jsx_runtime40 = __toESM(require_jsx_runtime());
|
|
var _excluded30 = ["addEndListener", "appear", "children", "container", "direction", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];
|
|
function getTranslateValue(direction, node, resolvedContainer) {
|
|
const rect = node.getBoundingClientRect();
|
|
const containerRect = resolvedContainer && resolvedContainer.getBoundingClientRect();
|
|
const containerWindow = ownerWindow_default(node);
|
|
let transform;
|
|
if (node.fakeTransform) {
|
|
transform = node.fakeTransform;
|
|
} else {
|
|
const computedStyle = containerWindow.getComputedStyle(node);
|
|
transform = computedStyle.getPropertyValue("-webkit-transform") || computedStyle.getPropertyValue("transform");
|
|
}
|
|
let offsetX = 0;
|
|
let offsetY = 0;
|
|
if (transform && transform !== "none" && typeof transform === "string") {
|
|
const transformValues = transform.split("(")[1].split(")")[0].split(",");
|
|
offsetX = parseInt(transformValues[4], 10);
|
|
offsetY = parseInt(transformValues[5], 10);
|
|
}
|
|
if (direction === "left") {
|
|
if (containerRect) {
|
|
return `translateX(${containerRect.right + offsetX - rect.left}px)`;
|
|
}
|
|
return `translateX(${containerWindow.innerWidth + offsetX - rect.left}px)`;
|
|
}
|
|
if (direction === "right") {
|
|
if (containerRect) {
|
|
return `translateX(-${rect.right - containerRect.left - offsetX}px)`;
|
|
}
|
|
return `translateX(-${rect.left + rect.width - offsetX}px)`;
|
|
}
|
|
if (direction === "up") {
|
|
if (containerRect) {
|
|
return `translateY(${containerRect.bottom + offsetY - rect.top}px)`;
|
|
}
|
|
return `translateY(${containerWindow.innerHeight + offsetY - rect.top}px)`;
|
|
}
|
|
if (containerRect) {
|
|
return `translateY(-${rect.top - containerRect.top + rect.height - offsetY}px)`;
|
|
}
|
|
return `translateY(-${rect.top + rect.height - offsetY}px)`;
|
|
}
|
|
function resolveContainer(containerPropProp) {
|
|
return typeof containerPropProp === "function" ? containerPropProp() : containerPropProp;
|
|
}
|
|
function setTranslateValue(direction, node, containerProp) {
|
|
const resolvedContainer = resolveContainer(containerProp);
|
|
const transform = getTranslateValue(direction, node, resolvedContainer);
|
|
if (transform) {
|
|
node.style.webkitTransform = transform;
|
|
node.style.transform = transform;
|
|
}
|
|
}
|
|
var Slide = React35.forwardRef(function Slide2(props, ref) {
|
|
const theme = useTheme();
|
|
const defaultEasing = {
|
|
enter: theme.transitions.easing.easeOut,
|
|
exit: theme.transitions.easing.sharp
|
|
};
|
|
const defaultTimeout = {
|
|
enter: theme.transitions.duration.enteringScreen,
|
|
exit: theme.transitions.duration.leavingScreen
|
|
};
|
|
const {
|
|
addEndListener,
|
|
appear = true,
|
|
children,
|
|
container: containerProp,
|
|
direction = "down",
|
|
easing: easingProp = defaultEasing,
|
|
in: inProp,
|
|
onEnter,
|
|
onEntered,
|
|
onEntering,
|
|
onExit,
|
|
onExited,
|
|
onExiting,
|
|
style,
|
|
timeout = defaultTimeout,
|
|
// eslint-disable-next-line react/prop-types
|
|
TransitionComponent = Transition_default
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded30);
|
|
const childrenRef = React35.useRef(null);
|
|
const handleRef = useForkRef_default(getReactElementRef(children), childrenRef, ref);
|
|
const normalizedTransitionCallback = (callback) => (isAppearing) => {
|
|
if (callback) {
|
|
if (isAppearing === void 0) {
|
|
callback(childrenRef.current);
|
|
} else {
|
|
callback(childrenRef.current, isAppearing);
|
|
}
|
|
}
|
|
};
|
|
const handleEnter = normalizedTransitionCallback((node, isAppearing) => {
|
|
setTranslateValue(direction, node, containerProp);
|
|
reflow(node);
|
|
if (onEnter) {
|
|
onEnter(node, isAppearing);
|
|
}
|
|
});
|
|
const handleEntering = normalizedTransitionCallback((node, isAppearing) => {
|
|
const transitionProps = getTransitionProps({
|
|
timeout,
|
|
style,
|
|
easing: easingProp
|
|
}, {
|
|
mode: "enter"
|
|
});
|
|
node.style.webkitTransition = theme.transitions.create("-webkit-transform", _extends({}, transitionProps));
|
|
node.style.transition = theme.transitions.create("transform", _extends({}, transitionProps));
|
|
node.style.webkitTransform = "none";
|
|
node.style.transform = "none";
|
|
if (onEntering) {
|
|
onEntering(node, isAppearing);
|
|
}
|
|
});
|
|
const handleEntered = normalizedTransitionCallback(onEntered);
|
|
const handleExiting = normalizedTransitionCallback(onExiting);
|
|
const handleExit = normalizedTransitionCallback((node) => {
|
|
const transitionProps = getTransitionProps({
|
|
timeout,
|
|
style,
|
|
easing: easingProp
|
|
}, {
|
|
mode: "exit"
|
|
});
|
|
node.style.webkitTransition = theme.transitions.create("-webkit-transform", transitionProps);
|
|
node.style.transition = theme.transitions.create("transform", transitionProps);
|
|
setTranslateValue(direction, node, containerProp);
|
|
if (onExit) {
|
|
onExit(node);
|
|
}
|
|
});
|
|
const handleExited = normalizedTransitionCallback((node) => {
|
|
node.style.webkitTransition = "";
|
|
node.style.transition = "";
|
|
if (onExited) {
|
|
onExited(node);
|
|
}
|
|
});
|
|
const handleAddEndListener = (next) => {
|
|
if (addEndListener) {
|
|
addEndListener(childrenRef.current, next);
|
|
}
|
|
};
|
|
const updatePosition = React35.useCallback(() => {
|
|
if (childrenRef.current) {
|
|
setTranslateValue(direction, childrenRef.current, containerProp);
|
|
}
|
|
}, [direction, containerProp]);
|
|
React35.useEffect(() => {
|
|
if (inProp || direction === "down" || direction === "right") {
|
|
return void 0;
|
|
}
|
|
const handleResize = debounce_default(() => {
|
|
if (childrenRef.current) {
|
|
setTranslateValue(direction, childrenRef.current, containerProp);
|
|
}
|
|
});
|
|
const containerWindow = ownerWindow_default(childrenRef.current);
|
|
containerWindow.addEventListener("resize", handleResize);
|
|
return () => {
|
|
handleResize.clear();
|
|
containerWindow.removeEventListener("resize", handleResize);
|
|
};
|
|
}, [direction, inProp, containerProp]);
|
|
React35.useEffect(() => {
|
|
if (!inProp) {
|
|
updatePosition();
|
|
}
|
|
}, [inProp, updatePosition]);
|
|
return (0, import_jsx_runtime40.jsx)(TransitionComponent, _extends({
|
|
nodeRef: childrenRef,
|
|
onEnter: handleEnter,
|
|
onEntered: handleEntered,
|
|
onEntering: handleEntering,
|
|
onExit: handleExit,
|
|
onExited: handleExited,
|
|
onExiting: handleExiting,
|
|
addEndListener: handleAddEndListener,
|
|
appear,
|
|
in: inProp,
|
|
timeout
|
|
}, other, {
|
|
children: (state, childProps) => {
|
|
return React35.cloneElement(children, _extends({
|
|
ref: handleRef,
|
|
style: _extends({
|
|
visibility: state === "exited" && !inProp ? "hidden" : void 0
|
|
}, style, children.props.style)
|
|
}, childProps));
|
|
}
|
|
}));
|
|
});
|
|
true ? Slide.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Add a custom transition end trigger. Called with the transitioning DOM
|
|
* node and a done callback. Allows for more fine grained transition end
|
|
* logic. Note: Timeouts are still used as a fallback if provided.
|
|
*/
|
|
addEndListener: import_prop_types28.default.func,
|
|
/**
|
|
* Perform the enter transition when it first mounts if `in` is also `true`.
|
|
* Set this to `false` to disable this behavior.
|
|
* @default true
|
|
*/
|
|
appear: import_prop_types28.default.bool,
|
|
/**
|
|
* A single child content element.
|
|
*/
|
|
children: elementAcceptingRef_default.isRequired,
|
|
/**
|
|
* An HTML element, or a function that returns one.
|
|
* It's used to set the container the Slide is transitioning from.
|
|
*/
|
|
container: chainPropTypes(import_prop_types28.default.oneOfType([HTMLElementType, import_prop_types28.default.func]), (props) => {
|
|
if (props.open) {
|
|
const resolvedContainer = resolveContainer(props.container);
|
|
if (resolvedContainer && resolvedContainer.nodeType === 1) {
|
|
const box = resolvedContainer.getBoundingClientRect();
|
|
if (box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {
|
|
return new Error(["MUI: The `container` prop provided to the component is invalid.", "The anchor element should be part of the document layout.", "Make sure the element is present in the document or that it's not display none."].join("\n"));
|
|
}
|
|
} else if (!resolvedContainer || typeof resolvedContainer.getBoundingClientRect !== "function" || resolvedContainer.contextElement != null && resolvedContainer.contextElement.nodeType !== 1) {
|
|
return new Error(["MUI: The `container` prop provided to the component is invalid.", "It should be an HTML element instance."].join("\n"));
|
|
}
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* Direction the child node will enter from.
|
|
* @default 'down'
|
|
*/
|
|
direction: import_prop_types28.default.oneOf(["down", "left", "right", "up"]),
|
|
/**
|
|
* The transition timing function.
|
|
* You may specify a single easing or a object containing enter and exit values.
|
|
* @default {
|
|
* enter: theme.transitions.easing.easeOut,
|
|
* exit: theme.transitions.easing.sharp,
|
|
* }
|
|
*/
|
|
easing: import_prop_types28.default.oneOfType([import_prop_types28.default.shape({
|
|
enter: import_prop_types28.default.string,
|
|
exit: import_prop_types28.default.string
|
|
}), import_prop_types28.default.string]),
|
|
/**
|
|
* If `true`, the component will transition in.
|
|
*/
|
|
in: import_prop_types28.default.bool,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEnter: import_prop_types28.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEntered: import_prop_types28.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEntering: import_prop_types28.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExit: import_prop_types28.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExited: import_prop_types28.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExiting: import_prop_types28.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
style: import_prop_types28.default.object,
|
|
/**
|
|
* The duration for the transition, in milliseconds.
|
|
* You may specify a single timeout for all transitions, or individually with an object.
|
|
* @default {
|
|
* enter: theme.transitions.duration.enteringScreen,
|
|
* exit: theme.transitions.duration.leavingScreen,
|
|
* }
|
|
*/
|
|
timeout: import_prop_types28.default.oneOfType([import_prop_types28.default.number, import_prop_types28.default.shape({
|
|
appear: import_prop_types28.default.number,
|
|
enter: import_prop_types28.default.number,
|
|
exit: import_prop_types28.default.number
|
|
})])
|
|
} : void 0;
|
|
var Slide_default = Slide;
|
|
|
|
// node_modules/@mui/material/Drawer/drawerClasses.js
|
|
function getDrawerUtilityClass(slot) {
|
|
return generateUtilityClass("MuiDrawer", slot);
|
|
}
|
|
var drawerClasses = generateUtilityClasses("MuiDrawer", ["root", "docked", "paper", "paperAnchorLeft", "paperAnchorRight", "paperAnchorTop", "paperAnchorBottom", "paperAnchorDockedLeft", "paperAnchorDockedRight", "paperAnchorDockedTop", "paperAnchorDockedBottom", "modal"]);
|
|
var drawerClasses_default = drawerClasses;
|
|
|
|
// node_modules/@mui/material/Drawer/Drawer.js
|
|
var import_jsx_runtime41 = __toESM(require_jsx_runtime());
|
|
var _excluded31 = ["BackdropProps"];
|
|
var _excluded210 = ["anchor", "BackdropProps", "children", "className", "elevation", "hideBackdrop", "ModalProps", "onClose", "open", "PaperProps", "SlideProps", "TransitionComponent", "transitionDuration", "variant"];
|
|
var overridesResolver2 = (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, (ownerState.variant === "permanent" || ownerState.variant === "persistent") && styles3.docked, styles3.modal];
|
|
};
|
|
var useUtilityClasses26 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
anchor,
|
|
variant
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"],
|
|
docked: [(variant === "permanent" || variant === "persistent") && "docked"],
|
|
modal: ["modal"],
|
|
paper: ["paper", `paperAnchor${capitalize_default(anchor)}`, variant !== "temporary" && `paperAnchorDocked${capitalize_default(anchor)}`]
|
|
};
|
|
return composeClasses(slots, getDrawerUtilityClass, classes);
|
|
};
|
|
var DrawerRoot = styled_default(Modal_default, {
|
|
name: "MuiDrawer",
|
|
slot: "Root",
|
|
overridesResolver: overridesResolver2
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
zIndex: (theme.vars || theme).zIndex.drawer
|
|
}));
|
|
var DrawerDockedRoot = styled_default("div", {
|
|
shouldForwardProp: rootShouldForwardProp_default,
|
|
name: "MuiDrawer",
|
|
slot: "Docked",
|
|
skipVariantsResolver: false,
|
|
overridesResolver: overridesResolver2
|
|
})({
|
|
flex: "0 0 auto"
|
|
});
|
|
var DrawerPaper = styled_default(Paper_default, {
|
|
name: "MuiDrawer",
|
|
slot: "Paper",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.paper, styles3[`paperAnchor${capitalize_default(ownerState.anchor)}`], ownerState.variant !== "temporary" && styles3[`paperAnchorDocked${capitalize_default(ownerState.anchor)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
overflowY: "auto",
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
height: "100%",
|
|
flex: "1 0 auto",
|
|
zIndex: (theme.vars || theme).zIndex.drawer,
|
|
// Add iOS momentum scrolling for iOS < 13.0
|
|
WebkitOverflowScrolling: "touch",
|
|
// temporary style
|
|
position: "fixed",
|
|
top: 0,
|
|
// We disable the focus ring for mouse, touch and keyboard users.
|
|
// At some point, it would be better to keep it for keyboard users.
|
|
// :focus-ring CSS pseudo-class will help.
|
|
outline: 0
|
|
}, ownerState.anchor === "left" && {
|
|
left: 0
|
|
}, ownerState.anchor === "top" && {
|
|
top: 0,
|
|
left: 0,
|
|
right: 0,
|
|
height: "auto",
|
|
maxHeight: "100%"
|
|
}, ownerState.anchor === "right" && {
|
|
right: 0
|
|
}, ownerState.anchor === "bottom" && {
|
|
top: "auto",
|
|
left: 0,
|
|
bottom: 0,
|
|
right: 0,
|
|
height: "auto",
|
|
maxHeight: "100%"
|
|
}, ownerState.anchor === "left" && ownerState.variant !== "temporary" && {
|
|
borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
}, ownerState.anchor === "top" && ownerState.variant !== "temporary" && {
|
|
borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
}, ownerState.anchor === "right" && ownerState.variant !== "temporary" && {
|
|
borderLeft: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
}, ownerState.anchor === "bottom" && ownerState.variant !== "temporary" && {
|
|
borderTop: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
}));
|
|
var oppositeDirection = {
|
|
left: "right",
|
|
right: "left",
|
|
top: "down",
|
|
bottom: "up"
|
|
};
|
|
function isHorizontal(anchor) {
|
|
return ["left", "right"].indexOf(anchor) !== -1;
|
|
}
|
|
function getAnchor({
|
|
direction
|
|
}, anchor) {
|
|
return direction === "rtl" && isHorizontal(anchor) ? oppositeDirection[anchor] : anchor;
|
|
}
|
|
var Drawer = React36.forwardRef(function Drawer2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiDrawer"
|
|
});
|
|
const theme = useTheme();
|
|
const isRtl = useRtl();
|
|
const defaultTransitionDuration = {
|
|
enter: theme.transitions.duration.enteringScreen,
|
|
exit: theme.transitions.duration.leavingScreen
|
|
};
|
|
const {
|
|
anchor: anchorProp = "left",
|
|
BackdropProps,
|
|
children,
|
|
className,
|
|
elevation = 16,
|
|
hideBackdrop = false,
|
|
ModalProps: {
|
|
BackdropProps: BackdropPropsProp
|
|
} = {},
|
|
onClose,
|
|
open = false,
|
|
PaperProps = {},
|
|
SlideProps,
|
|
// eslint-disable-next-line react/prop-types
|
|
TransitionComponent = Slide_default,
|
|
transitionDuration = defaultTransitionDuration,
|
|
variant = "temporary"
|
|
} = props, ModalProps = _objectWithoutPropertiesLoose(props.ModalProps, _excluded31), other = _objectWithoutPropertiesLoose(props, _excluded210);
|
|
const mounted = React36.useRef(false);
|
|
React36.useEffect(() => {
|
|
mounted.current = true;
|
|
}, []);
|
|
const anchorInvariant = getAnchor({
|
|
direction: isRtl ? "rtl" : "ltr"
|
|
}, anchorProp);
|
|
const anchor = anchorProp;
|
|
const ownerState = _extends({}, props, {
|
|
anchor,
|
|
elevation,
|
|
open,
|
|
variant
|
|
}, other);
|
|
const classes = useUtilityClasses26(ownerState);
|
|
const drawer = (0, import_jsx_runtime41.jsx)(DrawerPaper, _extends({
|
|
elevation: variant === "temporary" ? elevation : 0,
|
|
square: true
|
|
}, PaperProps, {
|
|
className: clsx_default(classes.paper, PaperProps.className),
|
|
ownerState,
|
|
children
|
|
}));
|
|
if (variant === "permanent") {
|
|
return (0, import_jsx_runtime41.jsx)(DrawerDockedRoot, _extends({
|
|
className: clsx_default(classes.root, classes.docked, className),
|
|
ownerState,
|
|
ref
|
|
}, other, {
|
|
children: drawer
|
|
}));
|
|
}
|
|
const slidingDrawer = (0, import_jsx_runtime41.jsx)(TransitionComponent, _extends({
|
|
in: open,
|
|
direction: oppositeDirection[anchorInvariant],
|
|
timeout: transitionDuration,
|
|
appear: mounted.current
|
|
}, SlideProps, {
|
|
children: drawer
|
|
}));
|
|
if (variant === "persistent") {
|
|
return (0, import_jsx_runtime41.jsx)(DrawerDockedRoot, _extends({
|
|
className: clsx_default(classes.root, classes.docked, className),
|
|
ownerState,
|
|
ref
|
|
}, other, {
|
|
children: slidingDrawer
|
|
}));
|
|
}
|
|
return (0, import_jsx_runtime41.jsx)(DrawerRoot, _extends({
|
|
BackdropProps: _extends({}, BackdropProps, BackdropPropsProp, {
|
|
transitionDuration
|
|
}),
|
|
className: clsx_default(classes.root, classes.modal, className),
|
|
open,
|
|
ownerState,
|
|
onClose,
|
|
hideBackdrop,
|
|
ref
|
|
}, other, ModalProps, {
|
|
children: slidingDrawer
|
|
}));
|
|
});
|
|
true ? Drawer.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Side from which the drawer will appear.
|
|
* @default 'left'
|
|
*/
|
|
anchor: import_prop_types29.default.oneOf(["bottom", "left", "right", "top"]),
|
|
/**
|
|
* @ignore
|
|
*/
|
|
BackdropProps: import_prop_types29.default.object,
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types29.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types29.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types29.default.string,
|
|
/**
|
|
* The elevation of the drawer.
|
|
* @default 16
|
|
*/
|
|
elevation: integerPropType_default,
|
|
/**
|
|
* If `true`, the backdrop is not rendered.
|
|
* @default false
|
|
*/
|
|
hideBackdrop: import_prop_types29.default.bool,
|
|
/**
|
|
* Props applied to the [`Modal`](/material-ui/api/modal/) element.
|
|
* @default {}
|
|
*/
|
|
ModalProps: import_prop_types29.default.object,
|
|
/**
|
|
* Callback fired when the component requests to be closed.
|
|
* The `reason` parameter can optionally be used to control the response to `onClose`.
|
|
*
|
|
* @param {object} event The event source of the callback.
|
|
* @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`.
|
|
*/
|
|
onClose: import_prop_types29.default.func,
|
|
/**
|
|
* If `true`, the component is shown.
|
|
* @default false
|
|
*/
|
|
open: import_prop_types29.default.bool,
|
|
/**
|
|
* Props applied to the [`Paper`](/material-ui/api/paper/) element.
|
|
* @default {}
|
|
*/
|
|
PaperProps: import_prop_types29.default.object,
|
|
/**
|
|
* Props applied to the [`Slide`](/material-ui/api/slide/) element.
|
|
*/
|
|
SlideProps: import_prop_types29.default.object,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types29.default.oneOfType([import_prop_types29.default.arrayOf(import_prop_types29.default.oneOfType([import_prop_types29.default.func, import_prop_types29.default.object, import_prop_types29.default.bool])), import_prop_types29.default.func, import_prop_types29.default.object]),
|
|
/**
|
|
* The duration for the transition, in milliseconds.
|
|
* You may specify a single timeout for all transitions, or individually with an object.
|
|
* @default {
|
|
* enter: theme.transitions.duration.enteringScreen,
|
|
* exit: theme.transitions.duration.leavingScreen,
|
|
* }
|
|
*/
|
|
transitionDuration: import_prop_types29.default.oneOfType([import_prop_types29.default.number, import_prop_types29.default.shape({
|
|
appear: import_prop_types29.default.number,
|
|
enter: import_prop_types29.default.number,
|
|
exit: import_prop_types29.default.number
|
|
})]),
|
|
/**
|
|
* The variant to use.
|
|
* @default 'temporary'
|
|
*/
|
|
variant: import_prop_types29.default.oneOf(["permanent", "persistent", "temporary"])
|
|
} : void 0;
|
|
var Drawer_default = Drawer;
|
|
|
|
// node_modules/@mui/material/Fab/Fab.js
|
|
init_extends();
|
|
var React37 = __toESM(require_react());
|
|
var import_prop_types30 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Fab/fabClasses.js
|
|
function getFabUtilityClass(slot) {
|
|
return generateUtilityClass("MuiFab", slot);
|
|
}
|
|
var fabClasses = generateUtilityClasses("MuiFab", ["root", "primary", "secondary", "extended", "circular", "focusVisible", "disabled", "colorInherit", "sizeSmall", "sizeMedium", "sizeLarge", "info", "error", "warning", "success"]);
|
|
var fabClasses_default = fabClasses;
|
|
|
|
// node_modules/@mui/material/Fab/Fab.js
|
|
var import_jsx_runtime42 = __toESM(require_jsx_runtime());
|
|
var _excluded32 = ["children", "className", "color", "component", "disabled", "disableFocusRipple", "focusVisibleClassName", "size", "variant"];
|
|
var useUtilityClasses27 = (ownerState) => {
|
|
const {
|
|
color,
|
|
variant,
|
|
classes,
|
|
size
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", variant, `size${capitalize_default(size)}`, color === "inherit" ? "colorInherit" : color]
|
|
};
|
|
const composedClasses = composeClasses(slots, getFabUtilityClass, classes);
|
|
return _extends({}, classes, composedClasses);
|
|
};
|
|
var FabRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiFab",
|
|
slot: "Root",
|
|
shouldForwardProp: (prop) => rootShouldForwardProp_default(prop) || prop === "classes",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.variant], styles3[`size${capitalize_default(ownerState.size)}`], ownerState.color === "inherit" && styles3.colorInherit, styles3[capitalize_default(ownerState.size)], styles3[ownerState.color]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
var _theme$palette$getCon, _theme$palette;
|
|
return _extends({}, theme.typography.button, {
|
|
minHeight: 36,
|
|
transition: theme.transitions.create(["background-color", "box-shadow", "border-color"], {
|
|
duration: theme.transitions.duration.short
|
|
}),
|
|
borderRadius: "50%",
|
|
padding: 0,
|
|
minWidth: 0,
|
|
width: 56,
|
|
height: 56,
|
|
zIndex: (theme.vars || theme).zIndex.fab,
|
|
boxShadow: (theme.vars || theme).shadows[6],
|
|
"&:active": {
|
|
boxShadow: (theme.vars || theme).shadows[12]
|
|
},
|
|
color: theme.vars ? theme.vars.palette.text.primary : (_theme$palette$getCon = (_theme$palette = theme.palette).getContrastText) == null ? void 0 : _theme$palette$getCon.call(_theme$palette, theme.palette.grey[300]),
|
|
backgroundColor: (theme.vars || theme).palette.grey[300],
|
|
"&:hover": {
|
|
backgroundColor: (theme.vars || theme).palette.grey.A100,
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: (theme.vars || theme).palette.grey[300]
|
|
},
|
|
textDecoration: "none"
|
|
},
|
|
[`&.${fabClasses_default.focusVisible}`]: {
|
|
boxShadow: (theme.vars || theme).shadows[6]
|
|
}
|
|
}, ownerState.size === "small" && {
|
|
width: 40,
|
|
height: 40
|
|
}, ownerState.size === "medium" && {
|
|
width: 48,
|
|
height: 48
|
|
}, ownerState.variant === "extended" && {
|
|
borderRadius: 48 / 2,
|
|
padding: "0 16px",
|
|
width: "auto",
|
|
minHeight: "auto",
|
|
minWidth: 48,
|
|
height: 48
|
|
}, ownerState.variant === "extended" && ownerState.size === "small" && {
|
|
width: "auto",
|
|
padding: "0 8px",
|
|
borderRadius: 34 / 2,
|
|
minWidth: 34,
|
|
height: 34
|
|
}, ownerState.variant === "extended" && ownerState.size === "medium" && {
|
|
width: "auto",
|
|
padding: "0 16px",
|
|
borderRadius: 40 / 2,
|
|
minWidth: 40,
|
|
height: 40
|
|
}, ownerState.color === "inherit" && {
|
|
color: "inherit"
|
|
});
|
|
}, ({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({}, ownerState.color !== "inherit" && ownerState.color !== "default" && (theme.vars || theme).palette[ownerState.color] != null && {
|
|
color: (theme.vars || theme).palette[ownerState.color].contrastText,
|
|
backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
|
|
"&:hover": {
|
|
backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: (theme.vars || theme).palette[ownerState.color].main
|
|
}
|
|
}
|
|
}), ({
|
|
theme
|
|
}) => ({
|
|
[`&.${fabClasses_default.disabled}`]: {
|
|
color: (theme.vars || theme).palette.action.disabled,
|
|
boxShadow: (theme.vars || theme).shadows[0],
|
|
backgroundColor: (theme.vars || theme).palette.action.disabledBackground
|
|
}
|
|
}));
|
|
var Fab = React37.forwardRef(function Fab2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiFab"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
color = "default",
|
|
component = "button",
|
|
disabled = false,
|
|
disableFocusRipple = false,
|
|
focusVisibleClassName,
|
|
size = "large",
|
|
variant = "circular"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded32);
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
component,
|
|
disabled,
|
|
disableFocusRipple,
|
|
size,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses27(ownerState);
|
|
return (0, import_jsx_runtime42.jsx)(FabRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
component,
|
|
disabled,
|
|
focusRipple: !disableFocusRipple,
|
|
focusVisibleClassName: clsx_default(classes.focusVisible, focusVisibleClassName),
|
|
ownerState,
|
|
ref
|
|
}, other, {
|
|
classes,
|
|
children
|
|
}));
|
|
});
|
|
true ? Fab.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types30.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types30.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types30.default.string,
|
|
/**
|
|
* The color of the component.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'default'
|
|
*/
|
|
color: import_prop_types30.default.oneOfType([import_prop_types30.default.oneOf(["default", "error", "info", "inherit", "primary", "secondary", "success", "warning"]), import_prop_types30.default.string]),
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types30.default.elementType,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types30.default.bool,
|
|
/**
|
|
* If `true`, the keyboard focus ripple is disabled.
|
|
* @default false
|
|
*/
|
|
disableFocusRipple: import_prop_types30.default.bool,
|
|
/**
|
|
* If `true`, the ripple effect is disabled.
|
|
*/
|
|
disableRipple: import_prop_types30.default.bool,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
focusVisibleClassName: import_prop_types30.default.string,
|
|
/**
|
|
* The URL to link to when the button is clicked.
|
|
* If defined, an `a` element will be used as the root node.
|
|
*/
|
|
href: import_prop_types30.default.string,
|
|
/**
|
|
* The size of the component.
|
|
* `small` is equivalent to the dense button styling.
|
|
* @default 'large'
|
|
*/
|
|
size: import_prop_types30.default.oneOfType([import_prop_types30.default.oneOf(["small", "medium", "large"]), import_prop_types30.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types30.default.oneOfType([import_prop_types30.default.arrayOf(import_prop_types30.default.oneOfType([import_prop_types30.default.func, import_prop_types30.default.object, import_prop_types30.default.bool])), import_prop_types30.default.func, import_prop_types30.default.object]),
|
|
/**
|
|
* The variant to use.
|
|
* @default 'circular'
|
|
*/
|
|
variant: import_prop_types30.default.oneOfType([import_prop_types30.default.oneOf(["circular", "extended"]), import_prop_types30.default.string])
|
|
} : void 0;
|
|
var Fab_default = Fab;
|
|
|
|
// node_modules/@mui/material/FormGroup/FormGroup.js
|
|
init_extends();
|
|
var React38 = __toESM(require_react());
|
|
var import_prop_types31 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/FormGroup/formGroupClasses.js
|
|
function getFormGroupUtilityClass(slot) {
|
|
return generateUtilityClass("MuiFormGroup", slot);
|
|
}
|
|
var formGroupClasses = generateUtilityClasses("MuiFormGroup", ["root", "row", "error"]);
|
|
var formGroupClasses_default = formGroupClasses;
|
|
|
|
// node_modules/@mui/material/FormGroup/FormGroup.js
|
|
var import_jsx_runtime43 = __toESM(require_jsx_runtime());
|
|
var _excluded33 = ["className", "row"];
|
|
var useUtilityClasses28 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
row,
|
|
error
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", row && "row", error && "error"]
|
|
};
|
|
return composeClasses(slots, getFormGroupUtilityClass, classes);
|
|
};
|
|
var FormGroupRoot = styled_default("div", {
|
|
name: "MuiFormGroup",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.row && styles3.row];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
flexWrap: "wrap"
|
|
}, ownerState.row && {
|
|
flexDirection: "row"
|
|
}));
|
|
var FormGroup = React38.forwardRef(function FormGroup2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiFormGroup"
|
|
});
|
|
const {
|
|
className,
|
|
row = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded33);
|
|
const muiFormControl = useFormControl();
|
|
const fcs = formControlState({
|
|
props,
|
|
muiFormControl,
|
|
states: ["error"]
|
|
});
|
|
const ownerState = _extends({}, props, {
|
|
row,
|
|
error: fcs.error
|
|
});
|
|
const classes = useUtilityClasses28(ownerState);
|
|
return (0, import_jsx_runtime43.jsx)(FormGroupRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? FormGroup.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types31.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types31.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types31.default.string,
|
|
/**
|
|
* Display group of elements in a compact row.
|
|
* @default false
|
|
*/
|
|
row: import_prop_types31.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types31.default.oneOfType([import_prop_types31.default.arrayOf(import_prop_types31.default.oneOfType([import_prop_types31.default.func, import_prop_types31.default.object, import_prop_types31.default.bool])), import_prop_types31.default.func, import_prop_types31.default.object])
|
|
} : void 0;
|
|
var FormGroup_default = FormGroup;
|
|
|
|
// node_modules/@mui/material/Grid/Grid.js
|
|
init_extends();
|
|
var React40 = __toESM(require_react());
|
|
var import_prop_types32 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Grid/GridContext.js
|
|
var React39 = __toESM(require_react());
|
|
var GridContext = React39.createContext();
|
|
if (true) {
|
|
GridContext.displayName = "GridContext";
|
|
}
|
|
var GridContext_default = GridContext;
|
|
|
|
// node_modules/@mui/material/Grid/gridClasses.js
|
|
function getGridUtilityClass(slot) {
|
|
return generateUtilityClass("MuiGrid", slot);
|
|
}
|
|
var SPACINGS2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
var DIRECTIONS = ["column-reverse", "column", "row-reverse", "row"];
|
|
var WRAPS = ["nowrap", "wrap-reverse", "wrap"];
|
|
var GRID_SIZES = ["auto", true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
var gridClasses = generateUtilityClasses("MuiGrid", [
|
|
"root",
|
|
"container",
|
|
"item",
|
|
"zeroMinWidth",
|
|
// spacings
|
|
...SPACINGS2.map((spacing) => `spacing-xs-${spacing}`),
|
|
// direction values
|
|
...DIRECTIONS.map((direction) => `direction-xs-${direction}`),
|
|
// wrap values
|
|
...WRAPS.map((wrap) => `wrap-xs-${wrap}`),
|
|
// grid sizes for all breakpoints
|
|
...GRID_SIZES.map((size) => `grid-xs-${size}`),
|
|
...GRID_SIZES.map((size) => `grid-sm-${size}`),
|
|
...GRID_SIZES.map((size) => `grid-md-${size}`),
|
|
...GRID_SIZES.map((size) => `grid-lg-${size}`),
|
|
...GRID_SIZES.map((size) => `grid-xl-${size}`)
|
|
]);
|
|
var gridClasses_default = gridClasses;
|
|
|
|
// node_modules/@mui/material/Grid/Grid.js
|
|
var import_jsx_runtime44 = __toESM(require_jsx_runtime());
|
|
var _excluded34 = ["className", "columns", "columnSpacing", "component", "container", "direction", "item", "rowSpacing", "spacing", "wrap", "zeroMinWidth"];
|
|
function getOffset(val) {
|
|
const parse = parseFloat(val);
|
|
return `${parse}${String(val).replace(String(parse), "") || "px"}`;
|
|
}
|
|
function generateGrid({
|
|
theme,
|
|
ownerState
|
|
}) {
|
|
let size;
|
|
return theme.breakpoints.keys.reduce((globalStyles, breakpoint) => {
|
|
let styles3 = {};
|
|
if (ownerState[breakpoint]) {
|
|
size = ownerState[breakpoint];
|
|
}
|
|
if (!size) {
|
|
return globalStyles;
|
|
}
|
|
if (size === true) {
|
|
styles3 = {
|
|
flexBasis: 0,
|
|
flexGrow: 1,
|
|
maxWidth: "100%"
|
|
};
|
|
} else if (size === "auto") {
|
|
styles3 = {
|
|
flexBasis: "auto",
|
|
flexGrow: 0,
|
|
flexShrink: 0,
|
|
maxWidth: "none",
|
|
width: "auto"
|
|
};
|
|
} else {
|
|
const columnsBreakpointValues = resolveBreakpointValues({
|
|
values: ownerState.columns,
|
|
breakpoints: theme.breakpoints.values
|
|
});
|
|
const columnValue = typeof columnsBreakpointValues === "object" ? columnsBreakpointValues[breakpoint] : columnsBreakpointValues;
|
|
if (columnValue === void 0 || columnValue === null) {
|
|
return globalStyles;
|
|
}
|
|
const width = `${Math.round(size / columnValue * 1e8) / 1e6}%`;
|
|
let more = {};
|
|
if (ownerState.container && ownerState.item && ownerState.columnSpacing !== 0) {
|
|
const themeSpacing = theme.spacing(ownerState.columnSpacing);
|
|
if (themeSpacing !== "0px") {
|
|
const fullWidth = `calc(${width} + ${getOffset(themeSpacing)})`;
|
|
more = {
|
|
flexBasis: fullWidth,
|
|
maxWidth: fullWidth
|
|
};
|
|
}
|
|
}
|
|
styles3 = _extends({
|
|
flexBasis: width,
|
|
flexGrow: 0,
|
|
maxWidth: width
|
|
}, more);
|
|
}
|
|
if (theme.breakpoints.values[breakpoint] === 0) {
|
|
Object.assign(globalStyles, styles3);
|
|
} else {
|
|
globalStyles[theme.breakpoints.up(breakpoint)] = styles3;
|
|
}
|
|
return globalStyles;
|
|
}, {});
|
|
}
|
|
function generateDirection({
|
|
theme,
|
|
ownerState
|
|
}) {
|
|
const directionValues = resolveBreakpointValues({
|
|
values: ownerState.direction,
|
|
breakpoints: theme.breakpoints.values
|
|
});
|
|
return handleBreakpoints({
|
|
theme
|
|
}, directionValues, (propValue) => {
|
|
const output = {
|
|
flexDirection: propValue
|
|
};
|
|
if (propValue.indexOf("column") === 0) {
|
|
output[`& > .${gridClasses_default.item}`] = {
|
|
maxWidth: "none"
|
|
};
|
|
}
|
|
return output;
|
|
});
|
|
}
|
|
function extractZeroValueBreakpointKeys({
|
|
breakpoints,
|
|
values
|
|
}) {
|
|
let nonZeroKey = "";
|
|
Object.keys(values).forEach((key) => {
|
|
if (nonZeroKey !== "") {
|
|
return;
|
|
}
|
|
if (values[key] !== 0) {
|
|
nonZeroKey = key;
|
|
}
|
|
});
|
|
const sortedBreakpointKeysByValue = Object.keys(breakpoints).sort((a, b) => {
|
|
return breakpoints[a] - breakpoints[b];
|
|
});
|
|
return sortedBreakpointKeysByValue.slice(0, sortedBreakpointKeysByValue.indexOf(nonZeroKey));
|
|
}
|
|
function generateRowGap({
|
|
theme,
|
|
ownerState
|
|
}) {
|
|
const {
|
|
container,
|
|
rowSpacing
|
|
} = ownerState;
|
|
let styles3 = {};
|
|
if (container && rowSpacing !== 0) {
|
|
const rowSpacingValues = resolveBreakpointValues({
|
|
values: rowSpacing,
|
|
breakpoints: theme.breakpoints.values
|
|
});
|
|
let zeroValueBreakpointKeys;
|
|
if (typeof rowSpacingValues === "object") {
|
|
zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({
|
|
breakpoints: theme.breakpoints.values,
|
|
values: rowSpacingValues
|
|
});
|
|
}
|
|
styles3 = handleBreakpoints({
|
|
theme
|
|
}, rowSpacingValues, (propValue, breakpoint) => {
|
|
var _zeroValueBreakpointK;
|
|
const themeSpacing = theme.spacing(propValue);
|
|
if (themeSpacing !== "0px") {
|
|
return {
|
|
marginTop: `-${getOffset(themeSpacing)}`,
|
|
[`& > .${gridClasses_default.item}`]: {
|
|
paddingTop: getOffset(themeSpacing)
|
|
}
|
|
};
|
|
}
|
|
if ((_zeroValueBreakpointK = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK.includes(breakpoint)) {
|
|
return {};
|
|
}
|
|
return {
|
|
marginTop: 0,
|
|
[`& > .${gridClasses_default.item}`]: {
|
|
paddingTop: 0
|
|
}
|
|
};
|
|
});
|
|
}
|
|
return styles3;
|
|
}
|
|
function generateColumnGap({
|
|
theme,
|
|
ownerState
|
|
}) {
|
|
const {
|
|
container,
|
|
columnSpacing
|
|
} = ownerState;
|
|
let styles3 = {};
|
|
if (container && columnSpacing !== 0) {
|
|
const columnSpacingValues = resolveBreakpointValues({
|
|
values: columnSpacing,
|
|
breakpoints: theme.breakpoints.values
|
|
});
|
|
let zeroValueBreakpointKeys;
|
|
if (typeof columnSpacingValues === "object") {
|
|
zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({
|
|
breakpoints: theme.breakpoints.values,
|
|
values: columnSpacingValues
|
|
});
|
|
}
|
|
styles3 = handleBreakpoints({
|
|
theme
|
|
}, columnSpacingValues, (propValue, breakpoint) => {
|
|
var _zeroValueBreakpointK2;
|
|
const themeSpacing = theme.spacing(propValue);
|
|
if (themeSpacing !== "0px") {
|
|
return {
|
|
width: `calc(100% + ${getOffset(themeSpacing)})`,
|
|
marginLeft: `-${getOffset(themeSpacing)}`,
|
|
[`& > .${gridClasses_default.item}`]: {
|
|
paddingLeft: getOffset(themeSpacing)
|
|
}
|
|
};
|
|
}
|
|
if ((_zeroValueBreakpointK2 = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK2.includes(breakpoint)) {
|
|
return {};
|
|
}
|
|
return {
|
|
width: "100%",
|
|
marginLeft: 0,
|
|
[`& > .${gridClasses_default.item}`]: {
|
|
paddingLeft: 0
|
|
}
|
|
};
|
|
});
|
|
}
|
|
return styles3;
|
|
}
|
|
function resolveSpacingStyles(spacing, breakpoints, styles3 = {}) {
|
|
if (!spacing || spacing <= 0) {
|
|
return [];
|
|
}
|
|
if (typeof spacing === "string" && !Number.isNaN(Number(spacing)) || typeof spacing === "number") {
|
|
return [styles3[`spacing-xs-${String(spacing)}`]];
|
|
}
|
|
const spacingStyles = [];
|
|
breakpoints.forEach((breakpoint) => {
|
|
const value = spacing[breakpoint];
|
|
if (Number(value) > 0) {
|
|
spacingStyles.push(styles3[`spacing-${breakpoint}-${String(value)}`]);
|
|
}
|
|
});
|
|
return spacingStyles;
|
|
}
|
|
var GridRoot = styled_default("div", {
|
|
name: "MuiGrid",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
const {
|
|
container,
|
|
direction,
|
|
item,
|
|
spacing,
|
|
wrap,
|
|
zeroMinWidth,
|
|
breakpoints
|
|
} = ownerState;
|
|
let spacingStyles = [];
|
|
if (container) {
|
|
spacingStyles = resolveSpacingStyles(spacing, breakpoints, styles3);
|
|
}
|
|
const breakpointsStyles = [];
|
|
breakpoints.forEach((breakpoint) => {
|
|
const value = ownerState[breakpoint];
|
|
if (value) {
|
|
breakpointsStyles.push(styles3[`grid-${breakpoint}-${String(value)}`]);
|
|
}
|
|
});
|
|
return [styles3.root, container && styles3.container, item && styles3.item, zeroMinWidth && styles3.zeroMinWidth, ...spacingStyles, direction !== "row" && styles3[`direction-xs-${String(direction)}`], wrap !== "wrap" && styles3[`wrap-xs-${String(wrap)}`], ...breakpointsStyles];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
boxSizing: "border-box"
|
|
}, ownerState.container && {
|
|
display: "flex",
|
|
flexWrap: "wrap",
|
|
width: "100%"
|
|
}, ownerState.item && {
|
|
margin: 0
|
|
// For instance, it's useful when used with a `figure` element.
|
|
}, ownerState.zeroMinWidth && {
|
|
minWidth: 0
|
|
}, ownerState.wrap !== "wrap" && {
|
|
flexWrap: ownerState.wrap
|
|
}), generateDirection, generateRowGap, generateColumnGap, generateGrid);
|
|
function resolveSpacingClasses(spacing, breakpoints) {
|
|
if (!spacing || spacing <= 0) {
|
|
return [];
|
|
}
|
|
if (typeof spacing === "string" && !Number.isNaN(Number(spacing)) || typeof spacing === "number") {
|
|
return [`spacing-xs-${String(spacing)}`];
|
|
}
|
|
const classes = [];
|
|
breakpoints.forEach((breakpoint) => {
|
|
const value = spacing[breakpoint];
|
|
if (Number(value) > 0) {
|
|
const className = `spacing-${breakpoint}-${String(value)}`;
|
|
classes.push(className);
|
|
}
|
|
});
|
|
return classes;
|
|
}
|
|
var useUtilityClasses29 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
container,
|
|
direction,
|
|
item,
|
|
spacing,
|
|
wrap,
|
|
zeroMinWidth,
|
|
breakpoints
|
|
} = ownerState;
|
|
let spacingClasses = [];
|
|
if (container) {
|
|
spacingClasses = resolveSpacingClasses(spacing, breakpoints);
|
|
}
|
|
const breakpointsClasses = [];
|
|
breakpoints.forEach((breakpoint) => {
|
|
const value = ownerState[breakpoint];
|
|
if (value) {
|
|
breakpointsClasses.push(`grid-${breakpoint}-${String(value)}`);
|
|
}
|
|
});
|
|
const slots = {
|
|
root: ["root", container && "container", item && "item", zeroMinWidth && "zeroMinWidth", ...spacingClasses, direction !== "row" && `direction-xs-${String(direction)}`, wrap !== "wrap" && `wrap-xs-${String(wrap)}`, ...breakpointsClasses]
|
|
};
|
|
return composeClasses(slots, getGridUtilityClass, classes);
|
|
};
|
|
var Grid = React40.forwardRef(function Grid2(inProps, ref) {
|
|
const themeProps = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiGrid"
|
|
});
|
|
const {
|
|
breakpoints
|
|
} = useTheme();
|
|
const props = extendSxProp(themeProps);
|
|
const {
|
|
className,
|
|
columns: columnsProp,
|
|
columnSpacing: columnSpacingProp,
|
|
component = "div",
|
|
container = false,
|
|
direction = "row",
|
|
item = false,
|
|
rowSpacing: rowSpacingProp,
|
|
spacing = 0,
|
|
wrap = "wrap",
|
|
zeroMinWidth = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded34);
|
|
const rowSpacing = rowSpacingProp || spacing;
|
|
const columnSpacing = columnSpacingProp || spacing;
|
|
const columnsContext = React40.useContext(GridContext_default);
|
|
const columns = container ? columnsProp || 12 : columnsContext;
|
|
const breakpointsValues = {};
|
|
const otherFiltered = _extends({}, other);
|
|
breakpoints.keys.forEach((breakpoint) => {
|
|
if (other[breakpoint] != null) {
|
|
breakpointsValues[breakpoint] = other[breakpoint];
|
|
delete otherFiltered[breakpoint];
|
|
}
|
|
});
|
|
const ownerState = _extends({}, props, {
|
|
columns,
|
|
container,
|
|
direction,
|
|
item,
|
|
rowSpacing,
|
|
columnSpacing,
|
|
wrap,
|
|
zeroMinWidth,
|
|
spacing
|
|
}, breakpointsValues, {
|
|
breakpoints: breakpoints.keys
|
|
});
|
|
const classes = useUtilityClasses29(ownerState);
|
|
return (0, import_jsx_runtime44.jsx)(GridContext_default.Provider, {
|
|
value: columns,
|
|
children: (0, import_jsx_runtime44.jsx)(GridRoot, _extends({
|
|
ownerState,
|
|
className: clsx_default(classes.root, className),
|
|
as: component,
|
|
ref
|
|
}, otherFiltered))
|
|
});
|
|
});
|
|
true ? Grid.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types32.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types32.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types32.default.string,
|
|
/**
|
|
* The number of columns.
|
|
* @default 12
|
|
*/
|
|
columns: import_prop_types32.default.oneOfType([import_prop_types32.default.arrayOf(import_prop_types32.default.number), import_prop_types32.default.number, import_prop_types32.default.object]),
|
|
/**
|
|
* Defines the horizontal space between the type `item` components.
|
|
* It overrides the value of the `spacing` prop.
|
|
*/
|
|
columnSpacing: import_prop_types32.default.oneOfType([import_prop_types32.default.arrayOf(import_prop_types32.default.oneOfType([import_prop_types32.default.number, import_prop_types32.default.string])), import_prop_types32.default.number, import_prop_types32.default.object, import_prop_types32.default.string]),
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types32.default.elementType,
|
|
/**
|
|
* If `true`, the component will have the flex *container* behavior.
|
|
* You should be wrapping *items* with a *container*.
|
|
* @default false
|
|
*/
|
|
container: import_prop_types32.default.bool,
|
|
/**
|
|
* Defines the `flex-direction` style property.
|
|
* It is applied for all screen sizes.
|
|
* @default 'row'
|
|
*/
|
|
direction: import_prop_types32.default.oneOfType([import_prop_types32.default.oneOf(["column-reverse", "column", "row-reverse", "row"]), import_prop_types32.default.arrayOf(import_prop_types32.default.oneOf(["column-reverse", "column", "row-reverse", "row"])), import_prop_types32.default.object]),
|
|
/**
|
|
* If `true`, the component will have the flex *item* behavior.
|
|
* You should be wrapping *items* with a *container*.
|
|
* @default false
|
|
*/
|
|
item: import_prop_types32.default.bool,
|
|
/**
|
|
* If a number, it sets the number of columns the grid item uses.
|
|
* It can't be greater than the total number of columns of the container (12 by default).
|
|
* If 'auto', the grid item's width matches its content.
|
|
* If false, the prop is ignored.
|
|
* If true, the grid item's width grows to use the space available in the grid container.
|
|
* The value is applied for the `lg` breakpoint and wider screens if not overridden.
|
|
* @default false
|
|
*/
|
|
lg: import_prop_types32.default.oneOfType([import_prop_types32.default.oneOf(["auto"]), import_prop_types32.default.number, import_prop_types32.default.bool]),
|
|
/**
|
|
* If a number, it sets the number of columns the grid item uses.
|
|
* It can't be greater than the total number of columns of the container (12 by default).
|
|
* If 'auto', the grid item's width matches its content.
|
|
* If false, the prop is ignored.
|
|
* If true, the grid item's width grows to use the space available in the grid container.
|
|
* The value is applied for the `md` breakpoint and wider screens if not overridden.
|
|
* @default false
|
|
*/
|
|
md: import_prop_types32.default.oneOfType([import_prop_types32.default.oneOf(["auto"]), import_prop_types32.default.number, import_prop_types32.default.bool]),
|
|
/**
|
|
* Defines the vertical space between the type `item` components.
|
|
* It overrides the value of the `spacing` prop.
|
|
*/
|
|
rowSpacing: import_prop_types32.default.oneOfType([import_prop_types32.default.arrayOf(import_prop_types32.default.oneOfType([import_prop_types32.default.number, import_prop_types32.default.string])), import_prop_types32.default.number, import_prop_types32.default.object, import_prop_types32.default.string]),
|
|
/**
|
|
* If a number, it sets the number of columns the grid item uses.
|
|
* It can't be greater than the total number of columns of the container (12 by default).
|
|
* If 'auto', the grid item's width matches its content.
|
|
* If false, the prop is ignored.
|
|
* If true, the grid item's width grows to use the space available in the grid container.
|
|
* The value is applied for the `sm` breakpoint and wider screens if not overridden.
|
|
* @default false
|
|
*/
|
|
sm: import_prop_types32.default.oneOfType([import_prop_types32.default.oneOf(["auto"]), import_prop_types32.default.number, import_prop_types32.default.bool]),
|
|
/**
|
|
* Defines the space between the type `item` components.
|
|
* It can only be used on a type `container` component.
|
|
* @default 0
|
|
*/
|
|
spacing: import_prop_types32.default.oneOfType([import_prop_types32.default.arrayOf(import_prop_types32.default.oneOfType([import_prop_types32.default.number, import_prop_types32.default.string])), import_prop_types32.default.number, import_prop_types32.default.object, import_prop_types32.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types32.default.oneOfType([import_prop_types32.default.arrayOf(import_prop_types32.default.oneOfType([import_prop_types32.default.func, import_prop_types32.default.object, import_prop_types32.default.bool])), import_prop_types32.default.func, import_prop_types32.default.object]),
|
|
/**
|
|
* Defines the `flex-wrap` style property.
|
|
* It's applied for all screen sizes.
|
|
* @default 'wrap'
|
|
*/
|
|
wrap: import_prop_types32.default.oneOf(["nowrap", "wrap-reverse", "wrap"]),
|
|
/**
|
|
* If a number, it sets the number of columns the grid item uses.
|
|
* It can't be greater than the total number of columns of the container (12 by default).
|
|
* If 'auto', the grid item's width matches its content.
|
|
* If false, the prop is ignored.
|
|
* If true, the grid item's width grows to use the space available in the grid container.
|
|
* The value is applied for the `xl` breakpoint and wider screens if not overridden.
|
|
* @default false
|
|
*/
|
|
xl: import_prop_types32.default.oneOfType([import_prop_types32.default.oneOf(["auto"]), import_prop_types32.default.number, import_prop_types32.default.bool]),
|
|
/**
|
|
* If a number, it sets the number of columns the grid item uses.
|
|
* It can't be greater than the total number of columns of the container (12 by default).
|
|
* If 'auto', the grid item's width matches its content.
|
|
* If false, the prop is ignored.
|
|
* If true, the grid item's width grows to use the space available in the grid container.
|
|
* The value is applied for all the screen sizes with the lowest priority.
|
|
* @default false
|
|
*/
|
|
xs: import_prop_types32.default.oneOfType([import_prop_types32.default.oneOf(["auto"]), import_prop_types32.default.number, import_prop_types32.default.bool]),
|
|
/**
|
|
* If `true`, it sets `min-width: 0` on the item.
|
|
* Refer to the limitations section of the documentation to better understand the use case.
|
|
* @default false
|
|
*/
|
|
zeroMinWidth: import_prop_types32.default.bool
|
|
} : void 0;
|
|
if (true) {
|
|
const requireProp = requirePropFactory_default("Grid", Grid);
|
|
Grid["propTypes"] = _extends({}, Grid.propTypes, {
|
|
direction: requireProp("container"),
|
|
lg: requireProp("item"),
|
|
md: requireProp("item"),
|
|
sm: requireProp("item"),
|
|
spacing: requireProp("container"),
|
|
wrap: requireProp("container"),
|
|
xs: requireProp("item"),
|
|
zeroMinWidth: requireProp("item")
|
|
});
|
|
}
|
|
var Grid_default = Grid;
|
|
|
|
// node_modules/@mui/material/Unstable_Grid2/Grid2.js
|
|
var import_prop_types33 = __toESM(require_prop_types());
|
|
var Grid22 = createGrid({
|
|
createStyledComponent: styled_default("div", {
|
|
name: "MuiGrid2",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
}),
|
|
componentName: "MuiGrid2",
|
|
useThemeProps: (inProps) => useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiGrid2"
|
|
})
|
|
});
|
|
true ? Grid22.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types33.default.node,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
sx: import_prop_types33.default.oneOfType([import_prop_types33.default.arrayOf(import_prop_types33.default.oneOfType([import_prop_types33.default.func, import_prop_types33.default.object, import_prop_types33.default.bool])), import_prop_types33.default.func, import_prop_types33.default.object])
|
|
} : void 0;
|
|
var Grid2_default = Grid22;
|
|
|
|
// node_modules/@mui/material/Unstable_Grid2/grid2Classes.js
|
|
function getGrid2UtilityClass(slot) {
|
|
return generateUtilityClass("MuiGrid2", slot);
|
|
}
|
|
var SPACINGS3 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
var DIRECTIONS2 = ["column-reverse", "column", "row-reverse", "row"];
|
|
var WRAPS2 = ["nowrap", "wrap-reverse", "wrap"];
|
|
var GRID_SIZES2 = ["auto", true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
var grid2Classes = generateUtilityClasses("MuiGrid2", [
|
|
"root",
|
|
"container",
|
|
"item",
|
|
"zeroMinWidth",
|
|
// spacings
|
|
...SPACINGS3.map((spacing) => `spacing-xs-${spacing}`),
|
|
// direction values
|
|
...DIRECTIONS2.map((direction) => `direction-xs-${direction}`),
|
|
// wrap values
|
|
...WRAPS2.map((wrap) => `wrap-xs-${wrap}`),
|
|
// grid sizes for all breakpoints
|
|
...GRID_SIZES2.map((size) => `grid-xs-${size}`),
|
|
...GRID_SIZES2.map((size) => `grid-sm-${size}`),
|
|
...GRID_SIZES2.map((size) => `grid-md-${size}`),
|
|
...GRID_SIZES2.map((size) => `grid-lg-${size}`),
|
|
...GRID_SIZES2.map((size) => `grid-xl-${size}`)
|
|
]);
|
|
var grid2Classes_default = grid2Classes;
|
|
|
|
// node_modules/@mui/material/Hidden/Hidden.js
|
|
init_extends();
|
|
var React44 = __toESM(require_react());
|
|
var import_prop_types37 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Hidden/HiddenJs.js
|
|
var React42 = __toESM(require_react());
|
|
var import_prop_types35 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Hidden/withWidth.js
|
|
init_extends();
|
|
var React41 = __toESM(require_react());
|
|
var import_prop_types34 = __toESM(require_prop_types());
|
|
init_getDisplayName();
|
|
var import_jsx_runtime45 = __toESM(require_jsx_runtime());
|
|
var _excluded35 = ["initialWidth", "width"];
|
|
var breakpointKeys = ["xs", "sm", "md", "lg", "xl"];
|
|
var isWidthUp = (breakpoint, width, inclusive = true) => {
|
|
if (inclusive) {
|
|
return breakpointKeys.indexOf(breakpoint) <= breakpointKeys.indexOf(width);
|
|
}
|
|
return breakpointKeys.indexOf(breakpoint) < breakpointKeys.indexOf(width);
|
|
};
|
|
var isWidthDown = (breakpoint, width, inclusive = false) => {
|
|
if (inclusive) {
|
|
return breakpointKeys.indexOf(width) <= breakpointKeys.indexOf(breakpoint);
|
|
}
|
|
return breakpointKeys.indexOf(width) < breakpointKeys.indexOf(breakpoint);
|
|
};
|
|
var withWidth = (options = {}) => (Component) => {
|
|
const {
|
|
withTheme: withThemeOption = false,
|
|
noSSR = false,
|
|
initialWidth: initialWidthOption
|
|
} = options;
|
|
function WithWidth(props) {
|
|
const contextTheme = useTheme();
|
|
const theme = props.theme || contextTheme;
|
|
const _getThemeProps = getThemeProps({
|
|
theme,
|
|
name: "MuiWithWidth",
|
|
props
|
|
}), {
|
|
initialWidth,
|
|
width
|
|
} = _getThemeProps, other = _objectWithoutPropertiesLoose(_getThemeProps, _excluded35);
|
|
const [mountedState, setMountedState] = React41.useState(false);
|
|
useEnhancedEffect_default2(() => {
|
|
setMountedState(true);
|
|
}, []);
|
|
const keys = theme.breakpoints.keys.slice().reverse();
|
|
const widthComputed = keys.reduce((output, key) => {
|
|
const matches = useMediaQuery(theme.breakpoints.up(key));
|
|
return !output && matches ? key : output;
|
|
}, null);
|
|
const more = _extends({
|
|
width: width || (mountedState || noSSR ? widthComputed : void 0) || initialWidth || initialWidthOption
|
|
}, withThemeOption ? {
|
|
theme
|
|
} : {}, other);
|
|
if (more.width === void 0) {
|
|
return null;
|
|
}
|
|
return (0, import_jsx_runtime45.jsx)(Component, _extends({}, more));
|
|
}
|
|
true ? WithWidth.propTypes = {
|
|
/**
|
|
* As `window.innerWidth` is unavailable on the server,
|
|
* we default to rendering an empty component during the first mount.
|
|
* You might want to use a heuristic to approximate
|
|
* the screen width of the client browser screen width.
|
|
*
|
|
* For instance, you could be using the user-agent or the client-hints.
|
|
* https://caniuse.com/#search=client%20hint
|
|
*/
|
|
initialWidth: import_prop_types34.default.oneOf(["xs", "sm", "md", "lg", "xl"]),
|
|
/**
|
|
* @ignore
|
|
*/
|
|
theme: import_prop_types34.default.object,
|
|
/**
|
|
* Bypass the width calculation logic.
|
|
*/
|
|
width: import_prop_types34.default.oneOf(["xs", "sm", "md", "lg", "xl"])
|
|
} : void 0;
|
|
if (true) {
|
|
WithWidth.displayName = `WithWidth(${getDisplayName(Component)})`;
|
|
}
|
|
return WithWidth;
|
|
};
|
|
var withWidth_default = withWidth;
|
|
|
|
// node_modules/@mui/material/Hidden/HiddenJs.js
|
|
var import_jsx_runtime46 = __toESM(require_jsx_runtime());
|
|
function HiddenJs(props) {
|
|
const {
|
|
children,
|
|
only,
|
|
width
|
|
} = props;
|
|
const theme = useTheme();
|
|
let visible = true;
|
|
if (only) {
|
|
if (Array.isArray(only)) {
|
|
for (let i = 0; i < only.length; i += 1) {
|
|
const breakpoint = only[i];
|
|
if (width === breakpoint) {
|
|
visible = false;
|
|
break;
|
|
}
|
|
}
|
|
} else if (only && width === only) {
|
|
visible = false;
|
|
}
|
|
}
|
|
if (visible) {
|
|
for (let i = 0; i < theme.breakpoints.keys.length; i += 1) {
|
|
const breakpoint = theme.breakpoints.keys[i];
|
|
const breakpointUp = props[`${breakpoint}Up`];
|
|
const breakpointDown = props[`${breakpoint}Down`];
|
|
if (breakpointUp && isWidthUp(breakpoint, width) || breakpointDown && isWidthDown(breakpoint, width)) {
|
|
visible = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (!visible) {
|
|
return null;
|
|
}
|
|
return (0, import_jsx_runtime46.jsx)(React42.Fragment, {
|
|
children
|
|
});
|
|
}
|
|
true ? HiddenJs.propTypes = {
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types35.default.node,
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
lgDown: import_prop_types35.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
lgUp: import_prop_types35.default.bool,
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
mdDown: import_prop_types35.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
mdUp: import_prop_types35.default.bool,
|
|
/**
|
|
* Hide the given breakpoint(s).
|
|
*/
|
|
only: import_prop_types35.default.oneOfType([import_prop_types35.default.oneOf(["xs", "sm", "md", "lg", "xl"]), import_prop_types35.default.arrayOf(import_prop_types35.default.oneOf(["xs", "sm", "md", "lg", "xl"]))]),
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
smDown: import_prop_types35.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
smUp: import_prop_types35.default.bool,
|
|
/**
|
|
* @ignore
|
|
* width prop provided by withWidth decorator.
|
|
*/
|
|
width: import_prop_types35.default.string.isRequired,
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
xlDown: import_prop_types35.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
xlUp: import_prop_types35.default.bool,
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
xsDown: import_prop_types35.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
// eslint-disable-next-line react/no-unused-prop-types
|
|
xsUp: import_prop_types35.default.bool
|
|
} : void 0;
|
|
if (true) {
|
|
true ? HiddenJs.propTypes = exactProp(HiddenJs.propTypes) : void 0;
|
|
}
|
|
var HiddenJs_default = withWidth_default()(HiddenJs);
|
|
|
|
// node_modules/@mui/material/Hidden/HiddenCss.js
|
|
init_extends();
|
|
var React43 = __toESM(require_react());
|
|
var import_prop_types36 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Hidden/hiddenCssClasses.js
|
|
function getHiddenCssUtilityClass(slot) {
|
|
return generateUtilityClass("PrivateHiddenCss", slot);
|
|
}
|
|
var hiddenCssClasses = generateUtilityClasses("PrivateHiddenCss", ["root", "xlDown", "xlUp", "onlyXl", "lgDown", "lgUp", "onlyLg", "mdDown", "mdUp", "onlyMd", "smDown", "smUp", "onlySm", "xsDown", "xsUp", "onlyXs"]);
|
|
|
|
// node_modules/@mui/material/Hidden/HiddenCss.js
|
|
var import_jsx_runtime47 = __toESM(require_jsx_runtime());
|
|
var _excluded36 = ["children", "className", "only"];
|
|
var useUtilityClasses30 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
breakpoints
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", ...breakpoints.map(({
|
|
breakpoint,
|
|
dir
|
|
}) => {
|
|
return dir === "only" ? `${dir}${capitalize_default(breakpoint)}` : `${breakpoint}${capitalize_default(dir)}`;
|
|
})]
|
|
};
|
|
return composeClasses(slots, getHiddenCssUtilityClass, classes);
|
|
};
|
|
var HiddenCssRoot = styled_default("div", {
|
|
name: "PrivateHiddenCss",
|
|
slot: "Root"
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
const hidden = {
|
|
display: "none"
|
|
};
|
|
return _extends({}, ownerState.breakpoints.map(({
|
|
breakpoint,
|
|
dir
|
|
}) => {
|
|
if (dir === "only") {
|
|
return {
|
|
[theme.breakpoints.only(breakpoint)]: hidden
|
|
};
|
|
}
|
|
return dir === "up" ? {
|
|
[theme.breakpoints.up(breakpoint)]: hidden
|
|
} : {
|
|
[theme.breakpoints.down(breakpoint)]: hidden
|
|
};
|
|
}).reduce((r, o) => {
|
|
Object.keys(o).forEach((k) => {
|
|
r[k] = o[k];
|
|
});
|
|
return r;
|
|
}, {}));
|
|
});
|
|
function HiddenCss(props) {
|
|
const {
|
|
children,
|
|
className,
|
|
only
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded36);
|
|
const theme = useTheme();
|
|
if (true) {
|
|
const unknownProps = Object.keys(other).filter((propName) => {
|
|
const isUndeclaredBreakpoint = !theme.breakpoints.keys.some((breakpoint) => {
|
|
return `${breakpoint}Up` === propName || `${breakpoint}Down` === propName;
|
|
});
|
|
return !["classes", "theme", "isRtl", "sx"].includes(propName) && isUndeclaredBreakpoint;
|
|
});
|
|
if (unknownProps.length > 0) {
|
|
console.error(`MUI: Unsupported props received by \`<Hidden implementation="css" />\`: ${unknownProps.join(", ")}. Did you forget to wrap this component in a ThemeProvider declaring these breakpoints?`);
|
|
}
|
|
}
|
|
const breakpoints = [];
|
|
for (let i = 0; i < theme.breakpoints.keys.length; i += 1) {
|
|
const breakpoint = theme.breakpoints.keys[i];
|
|
const breakpointUp = other[`${breakpoint}Up`];
|
|
const breakpointDown = other[`${breakpoint}Down`];
|
|
if (breakpointUp) {
|
|
breakpoints.push({
|
|
breakpoint,
|
|
dir: "up"
|
|
});
|
|
}
|
|
if (breakpointDown) {
|
|
breakpoints.push({
|
|
breakpoint,
|
|
dir: "down"
|
|
});
|
|
}
|
|
}
|
|
if (only) {
|
|
const onlyBreakpoints = Array.isArray(only) ? only : [only];
|
|
onlyBreakpoints.forEach((breakpoint) => {
|
|
breakpoints.push({
|
|
breakpoint,
|
|
dir: "only"
|
|
});
|
|
});
|
|
}
|
|
const ownerState = _extends({}, props, {
|
|
breakpoints
|
|
});
|
|
const classes = useUtilityClasses30(ownerState);
|
|
return (0, import_jsx_runtime47.jsx)(HiddenCssRoot, {
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
children
|
|
});
|
|
}
|
|
true ? HiddenCss.propTypes = {
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types36.default.node,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types36.default.string,
|
|
/**
|
|
* Specify which implementation to use. 'js' is the default, 'css' works better for
|
|
* server-side rendering.
|
|
*/
|
|
implementation: import_prop_types36.default.oneOf(["js", "css"]),
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
lgDown: import_prop_types36.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
lgUp: import_prop_types36.default.bool,
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
mdDown: import_prop_types36.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
mdUp: import_prop_types36.default.bool,
|
|
/**
|
|
* Hide the given breakpoint(s).
|
|
*/
|
|
only: import_prop_types36.default.oneOfType([import_prop_types36.default.oneOf(["xs", "sm", "md", "lg", "xl"]), import_prop_types36.default.arrayOf(import_prop_types36.default.oneOf(["xs", "sm", "md", "lg", "xl"]))]),
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
smDown: import_prop_types36.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
smUp: import_prop_types36.default.bool,
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
xlDown: import_prop_types36.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
xlUp: import_prop_types36.default.bool,
|
|
/**
|
|
* If `true`, screens this size and down are hidden.
|
|
*/
|
|
xsDown: import_prop_types36.default.bool,
|
|
/**
|
|
* If `true`, screens this size and up are hidden.
|
|
*/
|
|
xsUp: import_prop_types36.default.bool
|
|
} : void 0;
|
|
var HiddenCss_default = HiddenCss;
|
|
|
|
// node_modules/@mui/material/Hidden/Hidden.js
|
|
var import_jsx_runtime48 = __toESM(require_jsx_runtime());
|
|
var _excluded37 = ["implementation", "lgDown", "lgUp", "mdDown", "mdUp", "smDown", "smUp", "xlDown", "xlUp", "xsDown", "xsUp"];
|
|
function Hidden(props) {
|
|
const {
|
|
implementation = "js",
|
|
lgDown = false,
|
|
lgUp = false,
|
|
mdDown = false,
|
|
mdUp = false,
|
|
smDown = false,
|
|
smUp = false,
|
|
xlDown = false,
|
|
xlUp = false,
|
|
xsDown = false,
|
|
xsUp = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded37);
|
|
if (implementation === "js") {
|
|
return (0, import_jsx_runtime48.jsx)(HiddenJs_default, _extends({
|
|
lgDown,
|
|
lgUp,
|
|
mdDown,
|
|
mdUp,
|
|
smDown,
|
|
smUp,
|
|
xlDown,
|
|
xlUp,
|
|
xsDown,
|
|
xsUp
|
|
}, other));
|
|
}
|
|
return (0, import_jsx_runtime48.jsx)(HiddenCss_default, _extends({
|
|
lgDown,
|
|
lgUp,
|
|
mdDown,
|
|
mdUp,
|
|
smDown,
|
|
smUp,
|
|
xlDown,
|
|
xlUp,
|
|
xsDown,
|
|
xsUp
|
|
}, other));
|
|
}
|
|
true ? Hidden.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types37.default.node,
|
|
/**
|
|
* Specify which implementation to use. 'js' is the default, 'css' works better for
|
|
* server-side rendering.
|
|
* @default 'js'
|
|
*/
|
|
implementation: import_prop_types37.default.oneOf(["css", "js"]),
|
|
/**
|
|
* You can use this prop when choosing the `js` implementation with server-side rendering.
|
|
*
|
|
* As `window.innerWidth` is unavailable on the server,
|
|
* we default to rendering an empty component during the first mount.
|
|
* You might want to use a heuristic to approximate
|
|
* the screen width of the client browser screen width.
|
|
*
|
|
* For instance, you could be using the user-agent or the client-hints.
|
|
* https://caniuse.com/#search=client%20hint
|
|
*/
|
|
initialWidth: import_prop_types37.default.oneOf(["xs", "sm", "md", "lg", "xl"]),
|
|
/**
|
|
* If `true`, component is hidden on screens below (but not including) this size.
|
|
* @default false
|
|
*/
|
|
lgDown: import_prop_types37.default.bool,
|
|
/**
|
|
* If `true`, component is hidden on screens this size and above.
|
|
* @default false
|
|
*/
|
|
lgUp: import_prop_types37.default.bool,
|
|
/**
|
|
* If `true`, component is hidden on screens below (but not including) this size.
|
|
* @default false
|
|
*/
|
|
mdDown: import_prop_types37.default.bool,
|
|
/**
|
|
* If `true`, component is hidden on screens this size and above.
|
|
* @default false
|
|
*/
|
|
mdUp: import_prop_types37.default.bool,
|
|
/**
|
|
* Hide the given breakpoint(s).
|
|
*/
|
|
only: import_prop_types37.default.oneOfType([import_prop_types37.default.oneOf(["xs", "sm", "md", "lg", "xl"]), import_prop_types37.default.arrayOf(import_prop_types37.default.oneOf(["xs", "sm", "md", "lg", "xl"]).isRequired)]),
|
|
/**
|
|
* If `true`, component is hidden on screens below (but not including) this size.
|
|
* @default false
|
|
*/
|
|
smDown: import_prop_types37.default.bool,
|
|
/**
|
|
* If `true`, component is hidden on screens this size and above.
|
|
* @default false
|
|
*/
|
|
smUp: import_prop_types37.default.bool,
|
|
/**
|
|
* If `true`, component is hidden on screens below (but not including) this size.
|
|
* @default false
|
|
*/
|
|
xlDown: import_prop_types37.default.bool,
|
|
/**
|
|
* If `true`, component is hidden on screens this size and above.
|
|
* @default false
|
|
*/
|
|
xlUp: import_prop_types37.default.bool,
|
|
/**
|
|
* If `true`, component is hidden on screens below (but not including) this size.
|
|
* @default false
|
|
*/
|
|
xsDown: import_prop_types37.default.bool,
|
|
/**
|
|
* If `true`, component is hidden on screens this size and above.
|
|
* @default false
|
|
*/
|
|
xsUp: import_prop_types37.default.bool
|
|
} : void 0;
|
|
var Hidden_default = Hidden;
|
|
|
|
// node_modules/@mui/material/Icon/Icon.js
|
|
init_extends();
|
|
var React45 = __toESM(require_react());
|
|
var import_prop_types38 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Icon/iconClasses.js
|
|
function getIconUtilityClass(slot) {
|
|
return generateUtilityClass("MuiIcon", slot);
|
|
}
|
|
var iconClasses = generateUtilityClasses("MuiIcon", ["root", "colorPrimary", "colorSecondary", "colorAction", "colorError", "colorDisabled", "fontSizeInherit", "fontSizeSmall", "fontSizeMedium", "fontSizeLarge"]);
|
|
var iconClasses_default = iconClasses;
|
|
|
|
// node_modules/@mui/material/Icon/Icon.js
|
|
var import_jsx_runtime49 = __toESM(require_jsx_runtime());
|
|
var _excluded38 = ["baseClassName", "className", "color", "component", "fontSize"];
|
|
var useUtilityClasses31 = (ownerState) => {
|
|
const {
|
|
color,
|
|
fontSize,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", color !== "inherit" && `color${capitalize_default(color)}`, `fontSize${capitalize_default(fontSize)}`]
|
|
};
|
|
return composeClasses(slots, getIconUtilityClass, classes);
|
|
};
|
|
var IconRoot = styled_default("span", {
|
|
name: "MuiIcon",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.color !== "inherit" && styles3[`color${capitalize_default(ownerState.color)}`], styles3[`fontSize${capitalize_default(ownerState.fontSize)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => ({
|
|
userSelect: "none",
|
|
width: "1em",
|
|
height: "1em",
|
|
// Chrome fix for https://bugs.chromium.org/p/chromium/issues/detail?id=820541
|
|
// To remove at some point.
|
|
overflow: "hidden",
|
|
display: "inline-block",
|
|
// allow overflow hidden to take action
|
|
textAlign: "center",
|
|
// support non-square icon
|
|
flexShrink: 0,
|
|
fontSize: {
|
|
inherit: "inherit",
|
|
small: theme.typography.pxToRem(20),
|
|
medium: theme.typography.pxToRem(24),
|
|
large: theme.typography.pxToRem(36)
|
|
}[ownerState.fontSize],
|
|
// TODO v5 deprecate, v6 remove for sx
|
|
color: {
|
|
primary: (theme.vars || theme).palette.primary.main,
|
|
secondary: (theme.vars || theme).palette.secondary.main,
|
|
info: (theme.vars || theme).palette.info.main,
|
|
success: (theme.vars || theme).palette.success.main,
|
|
warning: (theme.vars || theme).palette.warning.main,
|
|
action: (theme.vars || theme).palette.action.active,
|
|
error: (theme.vars || theme).palette.error.main,
|
|
disabled: (theme.vars || theme).palette.action.disabled,
|
|
inherit: void 0
|
|
}[ownerState.color]
|
|
}));
|
|
var Icon = React45.forwardRef(function Icon2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiIcon"
|
|
});
|
|
const {
|
|
baseClassName = "material-icons",
|
|
className,
|
|
color = "inherit",
|
|
component: Component = "span",
|
|
fontSize = "medium"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded38);
|
|
const ownerState = _extends({}, props, {
|
|
baseClassName,
|
|
color,
|
|
component: Component,
|
|
fontSize
|
|
});
|
|
const classes = useUtilityClasses31(ownerState);
|
|
return (0, import_jsx_runtime49.jsx)(IconRoot, _extends({
|
|
as: Component,
|
|
className: clsx_default(
|
|
baseClassName,
|
|
// Prevent the translation of the text content.
|
|
// The font relies on the exact text content to render the icon.
|
|
"notranslate",
|
|
classes.root,
|
|
className
|
|
),
|
|
ownerState,
|
|
"aria-hidden": true,
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? Icon.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The base class applied to the icon. Defaults to 'material-icons', but can be changed to any
|
|
* other base class that suits the icon font you're using (for example material-icons-rounded, fas, etc).
|
|
* @default 'material-icons'
|
|
*/
|
|
baseClassName: import_prop_types38.default.string,
|
|
/**
|
|
* The name of the icon font ligature.
|
|
*/
|
|
children: import_prop_types38.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types38.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types38.default.string,
|
|
/**
|
|
* The color of the component.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'inherit'
|
|
*/
|
|
color: import_prop_types38.default.oneOfType([import_prop_types38.default.oneOf(["inherit", "action", "disabled", "primary", "secondary", "error", "info", "success", "warning"]), import_prop_types38.default.string]),
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types38.default.elementType,
|
|
/**
|
|
* The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.
|
|
* @default 'medium'
|
|
*/
|
|
fontSize: import_prop_types38.default.oneOfType([import_prop_types38.default.oneOf(["inherit", "large", "medium", "small"]), import_prop_types38.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types38.default.oneOfType([import_prop_types38.default.arrayOf(import_prop_types38.default.oneOfType([import_prop_types38.default.func, import_prop_types38.default.object, import_prop_types38.default.bool])), import_prop_types38.default.func, import_prop_types38.default.object])
|
|
} : void 0;
|
|
Icon.muiName = "Icon";
|
|
var Icon_default = Icon;
|
|
|
|
// node_modules/@mui/material/ImageList/ImageList.js
|
|
init_extends();
|
|
var import_prop_types39 = __toESM(require_prop_types());
|
|
var React47 = __toESM(require_react());
|
|
|
|
// node_modules/@mui/material/ImageList/imageListClasses.js
|
|
function getImageListUtilityClass(slot) {
|
|
return generateUtilityClass("MuiImageList", slot);
|
|
}
|
|
var imageListClasses = generateUtilityClasses("MuiImageList", ["root", "masonry", "quilted", "standard", "woven"]);
|
|
var imageListClasses_default = imageListClasses;
|
|
|
|
// node_modules/@mui/material/ImageList/ImageListContext.js
|
|
var React46 = __toESM(require_react());
|
|
var ImageListContext = React46.createContext({});
|
|
if (true) {
|
|
ImageListContext.displayName = "ImageListContext";
|
|
}
|
|
var ImageListContext_default = ImageListContext;
|
|
|
|
// node_modules/@mui/material/ImageList/ImageList.js
|
|
var import_jsx_runtime50 = __toESM(require_jsx_runtime());
|
|
var _excluded39 = ["children", "className", "cols", "component", "rowHeight", "gap", "style", "variant"];
|
|
var useUtilityClasses32 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
variant
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", variant]
|
|
};
|
|
return composeClasses(slots, getImageListUtilityClass, classes);
|
|
};
|
|
var ImageListRoot = styled_default("ul", {
|
|
name: "MuiImageList",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.variant]];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => {
|
|
return _extends({
|
|
display: "grid",
|
|
overflowY: "auto",
|
|
listStyle: "none",
|
|
padding: 0,
|
|
// Add iOS momentum scrolling for iOS < 13.0
|
|
WebkitOverflowScrolling: "touch"
|
|
}, ownerState.variant === "masonry" && {
|
|
display: "block"
|
|
});
|
|
});
|
|
var ImageList = React47.forwardRef(function ImageList2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiImageList"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
cols = 2,
|
|
component = "ul",
|
|
rowHeight = "auto",
|
|
gap = 4,
|
|
style: styleProp,
|
|
variant = "standard"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded39);
|
|
const contextValue = React47.useMemo(() => ({
|
|
rowHeight,
|
|
gap,
|
|
variant
|
|
}), [rowHeight, gap, variant]);
|
|
React47.useEffect(() => {
|
|
if (true) {
|
|
if (document !== void 0 && "objectFit" in document.documentElement.style === false) {
|
|
console.error(["MUI: ImageList v5+ no longer natively supports Internet Explorer.", "Use v4 of this component instead, or polyfill CSS object-fit."].join("\n"));
|
|
}
|
|
}
|
|
}, []);
|
|
const style = variant === "masonry" ? _extends({
|
|
columnCount: cols,
|
|
columnGap: gap
|
|
}, styleProp) : _extends({
|
|
gridTemplateColumns: `repeat(${cols}, 1fr)`,
|
|
gap
|
|
}, styleProp);
|
|
const ownerState = _extends({}, props, {
|
|
component,
|
|
gap,
|
|
rowHeight,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses32(ownerState);
|
|
return (0, import_jsx_runtime50.jsx)(ImageListRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, classes[variant], className),
|
|
ref,
|
|
style,
|
|
ownerState
|
|
}, other, {
|
|
children: (0, import_jsx_runtime50.jsx)(ImageListContext_default.Provider, {
|
|
value: contextValue,
|
|
children
|
|
})
|
|
}));
|
|
});
|
|
true ? ImageList.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component, normally `ImageListItem`s.
|
|
*/
|
|
children: import_prop_types39.default.node.isRequired,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types39.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types39.default.string,
|
|
/**
|
|
* Number of columns.
|
|
* @default 2
|
|
*/
|
|
cols: integerPropType_default,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types39.default.elementType,
|
|
/**
|
|
* The gap between items in px.
|
|
* @default 4
|
|
*/
|
|
gap: import_prop_types39.default.number,
|
|
/**
|
|
* The height of one row in px.
|
|
* @default 'auto'
|
|
*/
|
|
rowHeight: import_prop_types39.default.oneOfType([import_prop_types39.default.oneOf(["auto"]), import_prop_types39.default.number]),
|
|
/**
|
|
* @ignore
|
|
*/
|
|
style: import_prop_types39.default.object,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types39.default.oneOfType([import_prop_types39.default.arrayOf(import_prop_types39.default.oneOfType([import_prop_types39.default.func, import_prop_types39.default.object, import_prop_types39.default.bool])), import_prop_types39.default.func, import_prop_types39.default.object]),
|
|
/**
|
|
* The variant to use.
|
|
* @default 'standard'
|
|
*/
|
|
variant: import_prop_types39.default.oneOfType([import_prop_types39.default.oneOf(["masonry", "quilted", "standard", "woven"]), import_prop_types39.default.string])
|
|
} : void 0;
|
|
var ImageList_default = ImageList;
|
|
|
|
// node_modules/@mui/material/ImageListItem/ImageListItem.js
|
|
init_extends();
|
|
var import_prop_types40 = __toESM(require_prop_types());
|
|
var React48 = __toESM(require_react());
|
|
var import_react_is5 = __toESM(require_react_is());
|
|
|
|
// node_modules/@mui/material/ImageListItem/imageListItemClasses.js
|
|
function getImageListItemUtilityClass(slot) {
|
|
return generateUtilityClass("MuiImageListItem", slot);
|
|
}
|
|
var imageListItemClasses = generateUtilityClasses("MuiImageListItem", ["root", "img", "standard", "woven", "masonry", "quilted"]);
|
|
var imageListItemClasses_default = imageListItemClasses;
|
|
|
|
// node_modules/@mui/material/ImageListItem/ImageListItem.js
|
|
var import_jsx_runtime51 = __toESM(require_jsx_runtime());
|
|
var _excluded40 = ["children", "className", "cols", "component", "rows", "style"];
|
|
var useUtilityClasses33 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
variant
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", variant],
|
|
img: ["img"]
|
|
};
|
|
return composeClasses(slots, getImageListItemUtilityClass, classes);
|
|
};
|
|
var ImageListItemRoot = styled_default("li", {
|
|
name: "MuiImageListItem",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [{
|
|
[`& .${imageListItemClasses_default.img}`]: styles3.img
|
|
}, styles3.root, styles3[ownerState.variant]];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "block",
|
|
position: "relative"
|
|
}, ownerState.variant === "standard" && {
|
|
// For titlebar under list item
|
|
display: "flex",
|
|
flexDirection: "column"
|
|
}, ownerState.variant === "woven" && {
|
|
height: "100%",
|
|
alignSelf: "center",
|
|
"&:nth-of-type(even)": {
|
|
height: "70%"
|
|
}
|
|
}, {
|
|
[`& .${imageListItemClasses_default.img}`]: _extends({
|
|
objectFit: "cover",
|
|
width: "100%",
|
|
height: "100%",
|
|
display: "block"
|
|
}, ownerState.variant === "standard" && {
|
|
height: "auto",
|
|
flexGrow: 1
|
|
})
|
|
}));
|
|
var ImageListItem = React48.forwardRef(function ImageListItem2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiImageListItem"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
cols = 1,
|
|
component = "li",
|
|
rows = 1,
|
|
style
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded40);
|
|
const {
|
|
rowHeight = "auto",
|
|
gap,
|
|
variant
|
|
} = React48.useContext(ImageListContext_default);
|
|
let height = "auto";
|
|
if (variant === "woven") {
|
|
height = void 0;
|
|
} else if (rowHeight !== "auto") {
|
|
height = rowHeight * rows + gap * (rows - 1);
|
|
}
|
|
const ownerState = _extends({}, props, {
|
|
cols,
|
|
component,
|
|
gap,
|
|
rowHeight,
|
|
rows,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses33(ownerState);
|
|
return (0, import_jsx_runtime51.jsx)(ImageListItemRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, classes[variant], className),
|
|
ref,
|
|
style: _extends({
|
|
height,
|
|
gridColumnEnd: variant !== "masonry" ? `span ${cols}` : void 0,
|
|
gridRowEnd: variant !== "masonry" ? `span ${rows}` : void 0,
|
|
marginBottom: variant === "masonry" ? gap : void 0,
|
|
breakInside: variant === "masonry" ? "avoid" : void 0
|
|
}, style),
|
|
ownerState
|
|
}, other, {
|
|
children: React48.Children.map(children, (child) => {
|
|
if (!React48.isValidElement(child)) {
|
|
return null;
|
|
}
|
|
if (true) {
|
|
if ((0, import_react_is5.isFragment)(child)) {
|
|
console.error(["MUI: The ImageListItem component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
|
|
}
|
|
}
|
|
if (child.type === "img" || isMuiElement_default(child, ["Image"])) {
|
|
return React48.cloneElement(child, {
|
|
className: clsx_default(classes.img, child.props.className)
|
|
});
|
|
}
|
|
return child;
|
|
})
|
|
}));
|
|
});
|
|
true ? ImageListItem.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component, normally an `<img>`.
|
|
*/
|
|
children: import_prop_types40.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types40.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types40.default.string,
|
|
/**
|
|
* Width of the item in number of grid columns.
|
|
* @default 1
|
|
*/
|
|
cols: integerPropType_default,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types40.default.elementType,
|
|
/**
|
|
* Height of the item in number of grid rows.
|
|
* @default 1
|
|
*/
|
|
rows: integerPropType_default,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
style: import_prop_types40.default.object,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types40.default.oneOfType([import_prop_types40.default.arrayOf(import_prop_types40.default.oneOfType([import_prop_types40.default.func, import_prop_types40.default.object, import_prop_types40.default.bool])), import_prop_types40.default.func, import_prop_types40.default.object])
|
|
} : void 0;
|
|
var ImageListItem_default = ImageListItem;
|
|
|
|
// node_modules/@mui/material/ImageListItemBar/ImageListItemBar.js
|
|
init_extends();
|
|
var import_prop_types41 = __toESM(require_prop_types());
|
|
var React49 = __toESM(require_react());
|
|
|
|
// node_modules/@mui/material/ImageListItemBar/imageListItemBarClasses.js
|
|
function getImageListItemBarUtilityClass(slot) {
|
|
return generateUtilityClass("MuiImageListItemBar", slot);
|
|
}
|
|
var imageListItemBarClasses = generateUtilityClasses("MuiImageListItemBar", ["root", "positionBottom", "positionTop", "positionBelow", "titleWrap", "titleWrapBottom", "titleWrapTop", "titleWrapBelow", "titleWrapActionPosLeft", "titleWrapActionPosRight", "title", "subtitle", "actionIcon", "actionIconActionPosLeft", "actionIconActionPosRight"]);
|
|
var imageListItemBarClasses_default = imageListItemBarClasses;
|
|
|
|
// node_modules/@mui/material/ImageListItemBar/ImageListItemBar.js
|
|
var import_jsx_runtime52 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime53 = __toESM(require_jsx_runtime());
|
|
var _excluded41 = ["actionIcon", "actionPosition", "className", "subtitle", "title", "position"];
|
|
var useUtilityClasses34 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
position,
|
|
actionIcon,
|
|
actionPosition
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `position${capitalize_default(position)}`],
|
|
titleWrap: ["titleWrap", `titleWrap${capitalize_default(position)}`, actionIcon && `titleWrapActionPos${capitalize_default(actionPosition)}`],
|
|
title: ["title"],
|
|
subtitle: ["subtitle"],
|
|
actionIcon: ["actionIcon", `actionIconActionPos${capitalize_default(actionPosition)}`]
|
|
};
|
|
return composeClasses(slots, getImageListItemBarUtilityClass, classes);
|
|
};
|
|
var ImageListItemBarRoot = styled_default("div", {
|
|
name: "MuiImageListItemBar",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`position${capitalize_default(ownerState.position)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
return _extends({
|
|
position: "absolute",
|
|
left: 0,
|
|
right: 0,
|
|
background: "rgba(0, 0, 0, 0.5)",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
fontFamily: theme.typography.fontFamily
|
|
}, ownerState.position === "bottom" && {
|
|
bottom: 0
|
|
}, ownerState.position === "top" && {
|
|
top: 0
|
|
}, ownerState.position === "below" && {
|
|
position: "relative",
|
|
background: "transparent",
|
|
alignItems: "normal"
|
|
});
|
|
});
|
|
var ImageListItemBarTitleWrap = styled_default("div", {
|
|
name: "MuiImageListItemBar",
|
|
slot: "TitleWrap",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.titleWrap, styles3[`titleWrap${capitalize_default(ownerState.position)}`], ownerState.actionIcon && styles3[`titleWrapActionPos${capitalize_default(ownerState.actionPosition)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
return _extends({
|
|
flexGrow: 1,
|
|
padding: "12px 16px",
|
|
color: (theme.vars || theme).palette.common.white,
|
|
overflow: "hidden"
|
|
}, ownerState.position === "below" && {
|
|
padding: "6px 0 12px",
|
|
color: "inherit"
|
|
}, ownerState.actionIcon && ownerState.actionPosition === "left" && {
|
|
paddingLeft: 0
|
|
}, ownerState.actionIcon && ownerState.actionPosition === "right" && {
|
|
paddingRight: 0
|
|
});
|
|
});
|
|
var ImageListItemBarTitle = styled_default("div", {
|
|
name: "MuiImageListItemBar",
|
|
slot: "Title",
|
|
overridesResolver: (props, styles3) => styles3.title
|
|
})(({
|
|
theme
|
|
}) => {
|
|
return {
|
|
fontSize: theme.typography.pxToRem(16),
|
|
lineHeight: "24px",
|
|
textOverflow: "ellipsis",
|
|
overflow: "hidden",
|
|
whiteSpace: "nowrap"
|
|
};
|
|
});
|
|
var ImageListItemBarSubtitle = styled_default("div", {
|
|
name: "MuiImageListItemBar",
|
|
slot: "Subtitle",
|
|
overridesResolver: (props, styles3) => styles3.subtitle
|
|
})(({
|
|
theme
|
|
}) => {
|
|
return {
|
|
fontSize: theme.typography.pxToRem(12),
|
|
lineHeight: 1,
|
|
textOverflow: "ellipsis",
|
|
overflow: "hidden",
|
|
whiteSpace: "nowrap"
|
|
};
|
|
});
|
|
var ImageListItemBarActionIcon = styled_default("div", {
|
|
name: "MuiImageListItemBar",
|
|
slot: "ActionIcon",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.actionIcon, styles3[`actionIconActionPos${capitalize_default(ownerState.actionPosition)}`]];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => {
|
|
return _extends({}, ownerState.actionPosition === "left" && {
|
|
order: -1
|
|
});
|
|
});
|
|
var ImageListItemBar = React49.forwardRef(function ImageListItemBar2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiImageListItemBar"
|
|
});
|
|
const {
|
|
actionIcon,
|
|
actionPosition = "right",
|
|
className,
|
|
subtitle,
|
|
title,
|
|
position = "bottom"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded41);
|
|
const ownerState = _extends({}, props, {
|
|
position,
|
|
actionPosition
|
|
});
|
|
const classes = useUtilityClasses34(ownerState);
|
|
return (0, import_jsx_runtime53.jsxs)(ImageListItemBarRoot, _extends({
|
|
ownerState,
|
|
className: clsx_default(classes.root, className),
|
|
ref
|
|
}, other, {
|
|
children: [(0, import_jsx_runtime53.jsxs)(ImageListItemBarTitleWrap, {
|
|
ownerState,
|
|
className: classes.titleWrap,
|
|
children: [(0, import_jsx_runtime52.jsx)(ImageListItemBarTitle, {
|
|
className: classes.title,
|
|
children: title
|
|
}), subtitle ? (0, import_jsx_runtime52.jsx)(ImageListItemBarSubtitle, {
|
|
className: classes.subtitle,
|
|
children: subtitle
|
|
}) : null]
|
|
}), actionIcon ? (0, import_jsx_runtime52.jsx)(ImageListItemBarActionIcon, {
|
|
ownerState,
|
|
className: classes.actionIcon,
|
|
children: actionIcon
|
|
}) : null]
|
|
}));
|
|
});
|
|
true ? ImageListItemBar.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* An IconButton element to be used as secondary action target
|
|
* (primary action target is the item itself).
|
|
*/
|
|
actionIcon: import_prop_types41.default.node,
|
|
/**
|
|
* Position of secondary action IconButton.
|
|
* @default 'right'
|
|
*/
|
|
actionPosition: import_prop_types41.default.oneOf(["left", "right"]),
|
|
/**
|
|
* @ignore
|
|
*/
|
|
children: import_prop_types41.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types41.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types41.default.string,
|
|
/**
|
|
* Position of the title bar.
|
|
* @default 'bottom'
|
|
*/
|
|
position: import_prop_types41.default.oneOf(["below", "bottom", "top"]),
|
|
/**
|
|
* String or element serving as subtitle (support text).
|
|
*/
|
|
subtitle: import_prop_types41.default.node,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types41.default.oneOfType([import_prop_types41.default.arrayOf(import_prop_types41.default.oneOfType([import_prop_types41.default.func, import_prop_types41.default.object, import_prop_types41.default.bool])), import_prop_types41.default.func, import_prop_types41.default.object]),
|
|
/**
|
|
* Title to be displayed.
|
|
*/
|
|
title: import_prop_types41.default.node
|
|
} : void 0;
|
|
var ImageListItemBar_default = ImageListItemBar;
|
|
|
|
// node_modules/@mui/material/LinearProgress/LinearProgress.js
|
|
init_extends();
|
|
var React50 = __toESM(require_react());
|
|
var import_prop_types42 = __toESM(require_prop_types());
|
|
var import_colorManipulator4 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/LinearProgress/linearProgressClasses.js
|
|
function getLinearProgressUtilityClass(slot) {
|
|
return generateUtilityClass("MuiLinearProgress", slot);
|
|
}
|
|
var linearProgressClasses = generateUtilityClasses("MuiLinearProgress", ["root", "colorPrimary", "colorSecondary", "determinate", "indeterminate", "buffer", "query", "dashed", "dashedColorPrimary", "dashedColorSecondary", "bar", "barColorPrimary", "barColorSecondary", "bar1Indeterminate", "bar1Determinate", "bar1Buffer", "bar2Indeterminate", "bar2Buffer"]);
|
|
var linearProgressClasses_default = linearProgressClasses;
|
|
|
|
// node_modules/@mui/material/LinearProgress/LinearProgress.js
|
|
var import_jsx_runtime54 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime55 = __toESM(require_jsx_runtime());
|
|
var _excluded42 = ["className", "color", "value", "valueBuffer", "variant"];
|
|
var _ = (t) => t;
|
|
var _t;
|
|
var _t2;
|
|
var _t3;
|
|
var _t4;
|
|
var _t5;
|
|
var _t6;
|
|
var TRANSITION_DURATION = 4;
|
|
var indeterminate1Keyframe = keyframes(_t || (_t = _`
|
|
0% {
|
|
left: -35%;
|
|
right: 100%;
|
|
}
|
|
|
|
60% {
|
|
left: 100%;
|
|
right: -90%;
|
|
}
|
|
|
|
100% {
|
|
left: 100%;
|
|
right: -90%;
|
|
}
|
|
`));
|
|
var indeterminate2Keyframe = keyframes(_t2 || (_t2 = _`
|
|
0% {
|
|
left: -200%;
|
|
right: 100%;
|
|
}
|
|
|
|
60% {
|
|
left: 107%;
|
|
right: -8%;
|
|
}
|
|
|
|
100% {
|
|
left: 107%;
|
|
right: -8%;
|
|
}
|
|
`));
|
|
var bufferKeyframe = keyframes(_t3 || (_t3 = _`
|
|
0% {
|
|
opacity: 1;
|
|
background-position: 0 -23px;
|
|
}
|
|
|
|
60% {
|
|
opacity: 0;
|
|
background-position: 0 -23px;
|
|
}
|
|
|
|
100% {
|
|
opacity: 1;
|
|
background-position: -200px -23px;
|
|
}
|
|
`));
|
|
var useUtilityClasses35 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
variant,
|
|
color
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `color${capitalize_default(color)}`, variant],
|
|
dashed: ["dashed", `dashedColor${capitalize_default(color)}`],
|
|
bar1: ["bar", `barColor${capitalize_default(color)}`, (variant === "indeterminate" || variant === "query") && "bar1Indeterminate", variant === "determinate" && "bar1Determinate", variant === "buffer" && "bar1Buffer"],
|
|
bar2: ["bar", variant !== "buffer" && `barColor${capitalize_default(color)}`, variant === "buffer" && `color${capitalize_default(color)}`, (variant === "indeterminate" || variant === "query") && "bar2Indeterminate", variant === "buffer" && "bar2Buffer"]
|
|
};
|
|
return composeClasses(slots, getLinearProgressUtilityClass, classes);
|
|
};
|
|
var getColorShade = (theme, color) => {
|
|
if (color === "inherit") {
|
|
return "currentColor";
|
|
}
|
|
if (theme.vars) {
|
|
return theme.vars.palette.LinearProgress[`${color}Bg`];
|
|
}
|
|
return theme.palette.mode === "light" ? (0, import_colorManipulator4.lighten)(theme.palette[color].main, 0.62) : (0, import_colorManipulator4.darken)(theme.palette[color].main, 0.5);
|
|
};
|
|
var LinearProgressRoot = styled_default("span", {
|
|
name: "MuiLinearProgress",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`color${capitalize_default(ownerState.color)}`], styles3[ownerState.variant]];
|
|
}
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => _extends({
|
|
position: "relative",
|
|
overflow: "hidden",
|
|
display: "block",
|
|
height: 4,
|
|
zIndex: 0,
|
|
// Fix Safari's bug during composition of different paint.
|
|
"@media print": {
|
|
colorAdjust: "exact"
|
|
},
|
|
backgroundColor: getColorShade(theme, ownerState.color)
|
|
}, ownerState.color === "inherit" && ownerState.variant !== "buffer" && {
|
|
backgroundColor: "none",
|
|
"&::before": {
|
|
content: '""',
|
|
position: "absolute",
|
|
left: 0,
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
backgroundColor: "currentColor",
|
|
opacity: 0.3
|
|
}
|
|
}, ownerState.variant === "buffer" && {
|
|
backgroundColor: "transparent"
|
|
}, ownerState.variant === "query" && {
|
|
transform: "rotate(180deg)"
|
|
}));
|
|
var LinearProgressDashed = styled_default("span", {
|
|
name: "MuiLinearProgress",
|
|
slot: "Dashed",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.dashed, styles3[`dashedColor${capitalize_default(ownerState.color)}`]];
|
|
}
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => {
|
|
const backgroundColor = getColorShade(theme, ownerState.color);
|
|
return _extends({
|
|
position: "absolute",
|
|
marginTop: 0,
|
|
height: "100%",
|
|
width: "100%"
|
|
}, ownerState.color === "inherit" && {
|
|
opacity: 0.3
|
|
}, {
|
|
backgroundImage: `radial-gradient(${backgroundColor} 0%, ${backgroundColor} 16%, transparent 42%)`,
|
|
backgroundSize: "10px 10px",
|
|
backgroundPosition: "0 -23px"
|
|
});
|
|
}, css(_t4 || (_t4 = _`
|
|
animation: ${0} 3s infinite linear;
|
|
`), bufferKeyframe));
|
|
var LinearProgressBar1 = styled_default("span", {
|
|
name: "MuiLinearProgress",
|
|
slot: "Bar1",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.bar, styles3[`barColor${capitalize_default(ownerState.color)}`], (ownerState.variant === "indeterminate" || ownerState.variant === "query") && styles3.bar1Indeterminate, ownerState.variant === "determinate" && styles3.bar1Determinate, ownerState.variant === "buffer" && styles3.bar1Buffer];
|
|
}
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => _extends({
|
|
width: "100%",
|
|
position: "absolute",
|
|
left: 0,
|
|
bottom: 0,
|
|
top: 0,
|
|
transition: "transform 0.2s linear",
|
|
transformOrigin: "left",
|
|
backgroundColor: ownerState.color === "inherit" ? "currentColor" : (theme.vars || theme).palette[ownerState.color].main
|
|
}, ownerState.variant === "determinate" && {
|
|
transition: `transform .${TRANSITION_DURATION}s linear`
|
|
}, ownerState.variant === "buffer" && {
|
|
zIndex: 1,
|
|
transition: `transform .${TRANSITION_DURATION}s linear`
|
|
}), ({
|
|
ownerState
|
|
}) => (ownerState.variant === "indeterminate" || ownerState.variant === "query") && css(_t5 || (_t5 = _`
|
|
width: auto;
|
|
animation: ${0} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
|
|
`), indeterminate1Keyframe));
|
|
var LinearProgressBar2 = styled_default("span", {
|
|
name: "MuiLinearProgress",
|
|
slot: "Bar2",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.bar, styles3[`barColor${capitalize_default(ownerState.color)}`], (ownerState.variant === "indeterminate" || ownerState.variant === "query") && styles3.bar2Indeterminate, ownerState.variant === "buffer" && styles3.bar2Buffer];
|
|
}
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => _extends({
|
|
width: "100%",
|
|
position: "absolute",
|
|
left: 0,
|
|
bottom: 0,
|
|
top: 0,
|
|
transition: "transform 0.2s linear",
|
|
transformOrigin: "left"
|
|
}, ownerState.variant !== "buffer" && {
|
|
backgroundColor: ownerState.color === "inherit" ? "currentColor" : (theme.vars || theme).palette[ownerState.color].main
|
|
}, ownerState.color === "inherit" && {
|
|
opacity: 0.3
|
|
}, ownerState.variant === "buffer" && {
|
|
backgroundColor: getColorShade(theme, ownerState.color),
|
|
transition: `transform .${TRANSITION_DURATION}s linear`
|
|
}), ({
|
|
ownerState
|
|
}) => (ownerState.variant === "indeterminate" || ownerState.variant === "query") && css(_t6 || (_t6 = _`
|
|
width: auto;
|
|
animation: ${0} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
|
|
`), indeterminate2Keyframe));
|
|
var LinearProgress = React50.forwardRef(function LinearProgress2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiLinearProgress"
|
|
});
|
|
const {
|
|
className,
|
|
color = "primary",
|
|
value,
|
|
valueBuffer,
|
|
variant = "indeterminate"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded42);
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses35(ownerState);
|
|
const isRtl = useRtl();
|
|
const rootProps = {};
|
|
const inlineStyles = {
|
|
bar1: {},
|
|
bar2: {}
|
|
};
|
|
if (variant === "determinate" || variant === "buffer") {
|
|
if (value !== void 0) {
|
|
rootProps["aria-valuenow"] = Math.round(value);
|
|
rootProps["aria-valuemin"] = 0;
|
|
rootProps["aria-valuemax"] = 100;
|
|
let transform = value - 100;
|
|
if (isRtl) {
|
|
transform = -transform;
|
|
}
|
|
inlineStyles.bar1.transform = `translateX(${transform}%)`;
|
|
} else if (true) {
|
|
console.error("MUI: You need to provide a value prop when using the determinate or buffer variant of LinearProgress .");
|
|
}
|
|
}
|
|
if (variant === "buffer") {
|
|
if (valueBuffer !== void 0) {
|
|
let transform = (valueBuffer || 0) - 100;
|
|
if (isRtl) {
|
|
transform = -transform;
|
|
}
|
|
inlineStyles.bar2.transform = `translateX(${transform}%)`;
|
|
} else if (true) {
|
|
console.error("MUI: You need to provide a valueBuffer prop when using the buffer variant of LinearProgress.");
|
|
}
|
|
}
|
|
return (0, import_jsx_runtime55.jsxs)(LinearProgressRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
role: "progressbar"
|
|
}, rootProps, {
|
|
ref
|
|
}, other, {
|
|
children: [variant === "buffer" ? (0, import_jsx_runtime54.jsx)(LinearProgressDashed, {
|
|
className: classes.dashed,
|
|
ownerState
|
|
}) : null, (0, import_jsx_runtime54.jsx)(LinearProgressBar1, {
|
|
className: classes.bar1,
|
|
ownerState,
|
|
style: inlineStyles.bar1
|
|
}), variant === "determinate" ? null : (0, import_jsx_runtime54.jsx)(LinearProgressBar2, {
|
|
className: classes.bar2,
|
|
ownerState,
|
|
style: inlineStyles.bar2
|
|
})]
|
|
}));
|
|
});
|
|
true ? LinearProgress.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types42.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types42.default.string,
|
|
/**
|
|
* The color of the component.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'primary'
|
|
*/
|
|
color: import_prop_types42.default.oneOfType([import_prop_types42.default.oneOf(["inherit", "primary", "secondary"]), import_prop_types42.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types42.default.oneOfType([import_prop_types42.default.arrayOf(import_prop_types42.default.oneOfType([import_prop_types42.default.func, import_prop_types42.default.object, import_prop_types42.default.bool])), import_prop_types42.default.func, import_prop_types42.default.object]),
|
|
/**
|
|
* The value of the progress indicator for the determinate and buffer variants.
|
|
* Value between 0 and 100.
|
|
*/
|
|
value: import_prop_types42.default.number,
|
|
/**
|
|
* The value for the buffer variant.
|
|
* Value between 0 and 100.
|
|
*/
|
|
valueBuffer: import_prop_types42.default.number,
|
|
/**
|
|
* The variant to use.
|
|
* Use indeterminate or query when there is no progress value.
|
|
* @default 'indeterminate'
|
|
*/
|
|
variant: import_prop_types42.default.oneOf(["buffer", "determinate", "indeterminate", "query"])
|
|
} : void 0;
|
|
var LinearProgress_default = LinearProgress;
|
|
|
|
// node_modules/@mui/material/Link/Link.js
|
|
init_extends();
|
|
var React51 = __toESM(require_react());
|
|
var import_prop_types43 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Link/linkClasses.js
|
|
function getLinkUtilityClass(slot) {
|
|
return generateUtilityClass("MuiLink", slot);
|
|
}
|
|
var linkClasses = generateUtilityClasses("MuiLink", ["root", "underlineNone", "underlineHover", "underlineAlways", "button", "focusVisible"]);
|
|
var linkClasses_default = linkClasses;
|
|
|
|
// node_modules/@mui/material/Link/getTextDecoration.js
|
|
var import_colorManipulator5 = __toESM(require_colorManipulator());
|
|
var colorTransformations = {
|
|
primary: "primary.main",
|
|
textPrimary: "text.primary",
|
|
secondary: "secondary.main",
|
|
textSecondary: "text.secondary",
|
|
error: "error.main"
|
|
};
|
|
var transformDeprecatedColors = (color) => {
|
|
return colorTransformations[color] || color;
|
|
};
|
|
var getTextDecoration = ({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
const transformedColor = transformDeprecatedColors(ownerState.color);
|
|
const color = getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;
|
|
const channelColor = getPath(theme, `palette.${transformedColor}Channel`);
|
|
if ("vars" in theme && channelColor) {
|
|
return `rgba(${channelColor} / 0.4)`;
|
|
}
|
|
return (0, import_colorManipulator5.alpha)(color, 0.4);
|
|
};
|
|
var getTextDecoration_default = getTextDecoration;
|
|
|
|
// node_modules/@mui/material/Link/Link.js
|
|
var import_jsx_runtime56 = __toESM(require_jsx_runtime());
|
|
var _excluded43 = ["className", "color", "component", "onBlur", "onFocus", "TypographyClasses", "underline", "variant", "sx"];
|
|
var useUtilityClasses36 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
component,
|
|
focusVisible,
|
|
underline
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `underline${capitalize_default(underline)}`, component === "button" && "button", focusVisible && "focusVisible"]
|
|
};
|
|
return composeClasses(slots, getLinkUtilityClass, classes);
|
|
};
|
|
var LinkRoot = styled_default(Typography_default, {
|
|
name: "MuiLink",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`underline${capitalize_default(ownerState.underline)}`], ownerState.component === "button" && styles3.button];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
return _extends({}, ownerState.underline === "none" && {
|
|
textDecoration: "none"
|
|
}, ownerState.underline === "hover" && {
|
|
textDecoration: "none",
|
|
"&:hover": {
|
|
textDecoration: "underline"
|
|
}
|
|
}, ownerState.underline === "always" && _extends({
|
|
textDecoration: "underline"
|
|
}, ownerState.color !== "inherit" && {
|
|
textDecorationColor: getTextDecoration_default({
|
|
theme,
|
|
ownerState
|
|
})
|
|
}, {
|
|
"&:hover": {
|
|
textDecorationColor: "inherit"
|
|
}
|
|
}), ownerState.component === "button" && {
|
|
position: "relative",
|
|
WebkitTapHighlightColor: "transparent",
|
|
backgroundColor: "transparent",
|
|
// Reset default value
|
|
// We disable the focus ring for mouse, touch and keyboard users.
|
|
outline: 0,
|
|
border: 0,
|
|
margin: 0,
|
|
// Remove the margin in Safari
|
|
borderRadius: 0,
|
|
padding: 0,
|
|
// Remove the padding in Firefox
|
|
cursor: "pointer",
|
|
userSelect: "none",
|
|
verticalAlign: "middle",
|
|
MozAppearance: "none",
|
|
// Reset
|
|
WebkitAppearance: "none",
|
|
// Reset
|
|
"&::-moz-focus-inner": {
|
|
borderStyle: "none"
|
|
// Remove Firefox dotted outline.
|
|
},
|
|
[`&.${linkClasses_default.focusVisible}`]: {
|
|
outline: "auto"
|
|
}
|
|
});
|
|
});
|
|
var Link = React51.forwardRef(function Link2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiLink"
|
|
});
|
|
const {
|
|
className,
|
|
color = "primary",
|
|
component = "a",
|
|
onBlur,
|
|
onFocus,
|
|
TypographyClasses,
|
|
underline = "always",
|
|
variant = "inherit",
|
|
sx
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded43);
|
|
const {
|
|
isFocusVisibleRef,
|
|
onBlur: handleBlurVisible,
|
|
onFocus: handleFocusVisible,
|
|
ref: focusVisibleRef
|
|
} = useIsFocusVisible_default();
|
|
const [focusVisible, setFocusVisible] = React51.useState(false);
|
|
const handlerRef = useForkRef_default(ref, focusVisibleRef);
|
|
const handleBlur = (event) => {
|
|
handleBlurVisible(event);
|
|
if (isFocusVisibleRef.current === false) {
|
|
setFocusVisible(false);
|
|
}
|
|
if (onBlur) {
|
|
onBlur(event);
|
|
}
|
|
};
|
|
const handleFocus = (event) => {
|
|
handleFocusVisible(event);
|
|
if (isFocusVisibleRef.current === true) {
|
|
setFocusVisible(true);
|
|
}
|
|
if (onFocus) {
|
|
onFocus(event);
|
|
}
|
|
};
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
component,
|
|
focusVisible,
|
|
underline,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses36(ownerState);
|
|
return (0, import_jsx_runtime56.jsx)(LinkRoot, _extends({
|
|
color,
|
|
className: clsx_default(classes.root, className),
|
|
classes: TypographyClasses,
|
|
component,
|
|
onBlur: handleBlur,
|
|
onFocus: handleFocus,
|
|
ref: handlerRef,
|
|
ownerState,
|
|
variant,
|
|
sx: [...!Object.keys(colorTransformations).includes(color) ? [{
|
|
color
|
|
}] : [], ...Array.isArray(sx) ? sx : [sx]]
|
|
}, other));
|
|
});
|
|
true ? Link.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types43.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types43.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types43.default.string,
|
|
/**
|
|
* The color of the link.
|
|
* @default 'primary'
|
|
*/
|
|
color: import_prop_types43.default.any,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: elementTypeAcceptingRef_default,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onBlur: import_prop_types43.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onFocus: import_prop_types43.default.func,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types43.default.oneOfType([import_prop_types43.default.arrayOf(import_prop_types43.default.oneOfType([import_prop_types43.default.func, import_prop_types43.default.object, import_prop_types43.default.bool])), import_prop_types43.default.func, import_prop_types43.default.object]),
|
|
/**
|
|
* `classes` prop applied to the [`Typography`](/material-ui/api/typography/) element.
|
|
*/
|
|
TypographyClasses: import_prop_types43.default.object,
|
|
/**
|
|
* Controls when the link should have an underline.
|
|
* @default 'always'
|
|
*/
|
|
underline: import_prop_types43.default.oneOf(["always", "hover", "none"]),
|
|
/**
|
|
* Applies the theme typography styles.
|
|
* @default 'inherit'
|
|
*/
|
|
variant: import_prop_types43.default.oneOfType([import_prop_types43.default.oneOf(["body1", "body2", "button", "caption", "h1", "h2", "h3", "h4", "h5", "h6", "inherit", "overline", "subtitle1", "subtitle2"]), import_prop_types43.default.string])
|
|
} : void 0;
|
|
var Link_default = Link;
|
|
|
|
// node_modules/@mui/material/ListItem/ListItem.js
|
|
init_extends();
|
|
var React54 = __toESM(require_react());
|
|
var import_prop_types46 = __toESM(require_prop_types());
|
|
var import_colorManipulator7 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/ListItem/listItemClasses.js
|
|
function getListItemUtilityClass(slot) {
|
|
return generateUtilityClass("MuiListItem", slot);
|
|
}
|
|
var listItemClasses = generateUtilityClasses("MuiListItem", ["root", "container", "focusVisible", "dense", "alignItemsFlexStart", "disabled", "divider", "gutters", "padding", "button", "secondaryAction", "selected"]);
|
|
var listItemClasses_default = listItemClasses;
|
|
|
|
// node_modules/@mui/material/ListItemButton/ListItemButton.js
|
|
init_extends();
|
|
var React52 = __toESM(require_react());
|
|
var import_prop_types44 = __toESM(require_prop_types());
|
|
var import_colorManipulator6 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/ListItemButton/listItemButtonClasses.js
|
|
function getListItemButtonUtilityClass(slot) {
|
|
return generateUtilityClass("MuiListItemButton", slot);
|
|
}
|
|
var listItemButtonClasses = generateUtilityClasses("MuiListItemButton", ["root", "focusVisible", "dense", "alignItemsFlexStart", "disabled", "divider", "gutters", "selected"]);
|
|
var listItemButtonClasses_default = listItemButtonClasses;
|
|
|
|
// node_modules/@mui/material/ListItemButton/ListItemButton.js
|
|
var import_jsx_runtime57 = __toESM(require_jsx_runtime());
|
|
var _excluded44 = ["alignItems", "autoFocus", "component", "children", "dense", "disableGutters", "divider", "focusVisibleClassName", "selected", "className"];
|
|
var overridesResolver3 = (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.dense && styles3.dense, ownerState.alignItems === "flex-start" && styles3.alignItemsFlexStart, ownerState.divider && styles3.divider, !ownerState.disableGutters && styles3.gutters];
|
|
};
|
|
var useUtilityClasses37 = (ownerState) => {
|
|
const {
|
|
alignItems,
|
|
classes,
|
|
dense,
|
|
disabled,
|
|
disableGutters,
|
|
divider,
|
|
selected
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", dense && "dense", !disableGutters && "gutters", divider && "divider", disabled && "disabled", alignItems === "flex-start" && "alignItemsFlexStart", selected && "selected"]
|
|
};
|
|
const composedClasses = composeClasses(slots, getListItemButtonUtilityClass, classes);
|
|
return _extends({}, classes, composedClasses);
|
|
};
|
|
var ListItemButtonRoot = styled_default(ButtonBase_default, {
|
|
shouldForwardProp: (prop) => rootShouldForwardProp_default(prop) || prop === "classes",
|
|
name: "MuiListItemButton",
|
|
slot: "Root",
|
|
overridesResolver: overridesResolver3
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex",
|
|
flexGrow: 1,
|
|
justifyContent: "flex-start",
|
|
alignItems: "center",
|
|
position: "relative",
|
|
textDecoration: "none",
|
|
minWidth: 0,
|
|
boxSizing: "border-box",
|
|
textAlign: "left",
|
|
paddingTop: 8,
|
|
paddingBottom: 8,
|
|
transition: theme.transitions.create("background-color", {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
"&:hover": {
|
|
textDecoration: "none",
|
|
backgroundColor: (theme.vars || theme).palette.action.hover,
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: "transparent"
|
|
}
|
|
},
|
|
[`&.${listItemButtonClasses_default.selected}`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, import_colorManipulator6.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
|
|
[`&.${listItemButtonClasses_default.focusVisible}`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, import_colorManipulator6.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
|
|
}
|
|
},
|
|
[`&.${listItemButtonClasses_default.selected}:hover`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, import_colorManipulator6.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, import_colorManipulator6.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity)
|
|
}
|
|
},
|
|
[`&.${listItemButtonClasses_default.focusVisible}`]: {
|
|
backgroundColor: (theme.vars || theme).palette.action.focus
|
|
},
|
|
[`&.${listItemButtonClasses_default.disabled}`]: {
|
|
opacity: (theme.vars || theme).palette.action.disabledOpacity
|
|
}
|
|
}, ownerState.divider && {
|
|
borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,
|
|
backgroundClip: "padding-box"
|
|
}, ownerState.alignItems === "flex-start" && {
|
|
alignItems: "flex-start"
|
|
}, !ownerState.disableGutters && {
|
|
paddingLeft: 16,
|
|
paddingRight: 16
|
|
}, ownerState.dense && {
|
|
paddingTop: 4,
|
|
paddingBottom: 4
|
|
}));
|
|
var ListItemButton = React52.forwardRef(function ListItemButton2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiListItemButton"
|
|
});
|
|
const {
|
|
alignItems = "center",
|
|
autoFocus = false,
|
|
component = "div",
|
|
children,
|
|
dense = false,
|
|
disableGutters = false,
|
|
divider = false,
|
|
focusVisibleClassName,
|
|
selected = false,
|
|
className
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded44);
|
|
const context = React52.useContext(ListContext_default);
|
|
const childContext = React52.useMemo(() => ({
|
|
dense: dense || context.dense || false,
|
|
alignItems,
|
|
disableGutters
|
|
}), [alignItems, context.dense, dense, disableGutters]);
|
|
const listItemRef = React52.useRef(null);
|
|
useEnhancedEffect_default2(() => {
|
|
if (autoFocus) {
|
|
if (listItemRef.current) {
|
|
listItemRef.current.focus();
|
|
} else if (true) {
|
|
console.error("MUI: Unable to set focus to a ListItemButton whose component has not been rendered.");
|
|
}
|
|
}
|
|
}, [autoFocus]);
|
|
const ownerState = _extends({}, props, {
|
|
alignItems,
|
|
dense: childContext.dense,
|
|
disableGutters,
|
|
divider,
|
|
selected
|
|
});
|
|
const classes = useUtilityClasses37(ownerState);
|
|
const handleRef = useForkRef_default(listItemRef, ref);
|
|
return (0, import_jsx_runtime57.jsx)(ListContext_default.Provider, {
|
|
value: childContext,
|
|
children: (0, import_jsx_runtime57.jsx)(ListItemButtonRoot, _extends({
|
|
ref: handleRef,
|
|
href: other.href || other.to,
|
|
component: (other.href || other.to) && component === "div" ? "button" : component,
|
|
focusVisibleClassName: clsx_default(classes.focusVisible, focusVisibleClassName),
|
|
ownerState,
|
|
className: clsx_default(classes.root, className)
|
|
}, other, {
|
|
classes,
|
|
children
|
|
}))
|
|
});
|
|
});
|
|
true ? ListItemButton.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Defines the `align-items` style property.
|
|
* @default 'center'
|
|
*/
|
|
alignItems: import_prop_types44.default.oneOf(["center", "flex-start"]),
|
|
/**
|
|
* If `true`, the list item is focused during the first mount.
|
|
* Focus will also be triggered if the value changes from false to true.
|
|
* @default false
|
|
*/
|
|
autoFocus: import_prop_types44.default.bool,
|
|
/**
|
|
* The content of the component if a `ListItemSecondaryAction` is used it must
|
|
* be the last child.
|
|
*/
|
|
children: import_prop_types44.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types44.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types44.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types44.default.elementType,
|
|
/**
|
|
* If `true`, compact vertical padding designed for keyboard and mouse input is used.
|
|
* The prop defaults to the value inherited from the parent List component.
|
|
* @default false
|
|
*/
|
|
dense: import_prop_types44.default.bool,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types44.default.bool,
|
|
/**
|
|
* If `true`, the left and right padding is removed.
|
|
* @default false
|
|
*/
|
|
disableGutters: import_prop_types44.default.bool,
|
|
/**
|
|
* If `true`, a 1px light border is added to the bottom of the list item.
|
|
* @default false
|
|
*/
|
|
divider: import_prop_types44.default.bool,
|
|
/**
|
|
* This prop can help identify which element has keyboard focus.
|
|
* The class name will be applied when the element gains the focus through keyboard interaction.
|
|
* It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
|
|
* The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
|
|
* A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
|
|
* if needed.
|
|
*/
|
|
focusVisibleClassName: import_prop_types44.default.string,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
href: import_prop_types44.default.string,
|
|
/**
|
|
* Use to apply selected styling.
|
|
* @default false
|
|
*/
|
|
selected: import_prop_types44.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types44.default.oneOfType([import_prop_types44.default.arrayOf(import_prop_types44.default.oneOfType([import_prop_types44.default.func, import_prop_types44.default.object, import_prop_types44.default.bool])), import_prop_types44.default.func, import_prop_types44.default.object])
|
|
} : void 0;
|
|
var ListItemButton_default = ListItemButton;
|
|
|
|
// node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js
|
|
init_extends();
|
|
var React53 = __toESM(require_react());
|
|
var import_prop_types45 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js
|
|
function getListItemSecondaryActionClassesUtilityClass(slot) {
|
|
return generateUtilityClass("MuiListItemSecondaryAction", slot);
|
|
}
|
|
var listItemSecondaryActionClasses = generateUtilityClasses("MuiListItemSecondaryAction", ["root", "disableGutters"]);
|
|
var listItemSecondaryActionClasses_default = listItemSecondaryActionClasses;
|
|
|
|
// node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js
|
|
var import_jsx_runtime58 = __toESM(require_jsx_runtime());
|
|
var _excluded45 = ["className"];
|
|
var useUtilityClasses38 = (ownerState) => {
|
|
const {
|
|
disableGutters,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", disableGutters && "disableGutters"]
|
|
};
|
|
return composeClasses(slots, getListItemSecondaryActionClassesUtilityClass, classes);
|
|
};
|
|
var ListItemSecondaryActionRoot = styled_default("div", {
|
|
name: "MuiListItemSecondaryAction",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.disableGutters && styles3.disableGutters];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
position: "absolute",
|
|
right: 16,
|
|
top: "50%",
|
|
transform: "translateY(-50%)"
|
|
}, ownerState.disableGutters && {
|
|
right: 0
|
|
}));
|
|
var ListItemSecondaryAction = React53.forwardRef(function ListItemSecondaryAction2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiListItemSecondaryAction"
|
|
});
|
|
const {
|
|
className
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded45);
|
|
const context = React53.useContext(ListContext_default);
|
|
const ownerState = _extends({}, props, {
|
|
disableGutters: context.disableGutters
|
|
});
|
|
const classes = useUtilityClasses38(ownerState);
|
|
return (0, import_jsx_runtime58.jsx)(ListItemSecondaryActionRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? ListItemSecondaryAction.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component, normally an `IconButton` or selection control.
|
|
*/
|
|
children: import_prop_types45.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types45.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types45.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types45.default.oneOfType([import_prop_types45.default.arrayOf(import_prop_types45.default.oneOfType([import_prop_types45.default.func, import_prop_types45.default.object, import_prop_types45.default.bool])), import_prop_types45.default.func, import_prop_types45.default.object])
|
|
} : void 0;
|
|
ListItemSecondaryAction.muiName = "ListItemSecondaryAction";
|
|
var ListItemSecondaryAction_default = ListItemSecondaryAction;
|
|
|
|
// node_modules/@mui/material/ListItem/ListItem.js
|
|
var import_jsx_runtime59 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime60 = __toESM(require_jsx_runtime());
|
|
var _excluded46 = ["className"];
|
|
var _excluded211 = ["alignItems", "autoFocus", "button", "children", "className", "component", "components", "componentsProps", "ContainerComponent", "ContainerProps", "dense", "disabled", "disableGutters", "disablePadding", "divider", "focusVisibleClassName", "secondaryAction", "selected", "slotProps", "slots"];
|
|
var overridesResolver4 = (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.dense && styles3.dense, ownerState.alignItems === "flex-start" && styles3.alignItemsFlexStart, ownerState.divider && styles3.divider, !ownerState.disableGutters && styles3.gutters, !ownerState.disablePadding && styles3.padding, ownerState.button && styles3.button, ownerState.hasSecondaryAction && styles3.secondaryAction];
|
|
};
|
|
var useUtilityClasses39 = (ownerState) => {
|
|
const {
|
|
alignItems,
|
|
button,
|
|
classes,
|
|
dense,
|
|
disabled,
|
|
disableGutters,
|
|
disablePadding,
|
|
divider,
|
|
hasSecondaryAction,
|
|
selected
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", dense && "dense", !disableGutters && "gutters", !disablePadding && "padding", divider && "divider", disabled && "disabled", button && "button", alignItems === "flex-start" && "alignItemsFlexStart", hasSecondaryAction && "secondaryAction", selected && "selected"],
|
|
container: ["container"]
|
|
};
|
|
return composeClasses(slots, getListItemUtilityClass, classes);
|
|
};
|
|
var ListItemRoot = styled_default("div", {
|
|
name: "MuiListItem",
|
|
slot: "Root",
|
|
overridesResolver: overridesResolver4
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex",
|
|
justifyContent: "flex-start",
|
|
alignItems: "center",
|
|
position: "relative",
|
|
textDecoration: "none",
|
|
width: "100%",
|
|
boxSizing: "border-box",
|
|
textAlign: "left"
|
|
}, !ownerState.disablePadding && _extends({
|
|
paddingTop: 8,
|
|
paddingBottom: 8
|
|
}, ownerState.dense && {
|
|
paddingTop: 4,
|
|
paddingBottom: 4
|
|
}, !ownerState.disableGutters && {
|
|
paddingLeft: 16,
|
|
paddingRight: 16
|
|
}, !!ownerState.secondaryAction && {
|
|
// Add some space to avoid collision as `ListItemSecondaryAction`
|
|
// is absolutely positioned.
|
|
paddingRight: 48
|
|
}), !!ownerState.secondaryAction && {
|
|
[`& > .${listItemButtonClasses_default.root}`]: {
|
|
paddingRight: 48
|
|
}
|
|
}, {
|
|
[`&.${listItemClasses_default.focusVisible}`]: {
|
|
backgroundColor: (theme.vars || theme).palette.action.focus
|
|
},
|
|
[`&.${listItemClasses_default.selected}`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, import_colorManipulator7.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
|
|
[`&.${listItemClasses_default.focusVisible}`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, import_colorManipulator7.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
|
|
}
|
|
},
|
|
[`&.${listItemClasses_default.disabled}`]: {
|
|
opacity: (theme.vars || theme).palette.action.disabledOpacity
|
|
}
|
|
}, ownerState.alignItems === "flex-start" && {
|
|
alignItems: "flex-start"
|
|
}, ownerState.divider && {
|
|
borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,
|
|
backgroundClip: "padding-box"
|
|
}, ownerState.button && {
|
|
transition: theme.transitions.create("background-color", {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
"&:hover": {
|
|
textDecoration: "none",
|
|
backgroundColor: (theme.vars || theme).palette.action.hover,
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: "transparent"
|
|
}
|
|
},
|
|
[`&.${listItemClasses_default.selected}:hover`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, import_colorManipulator7.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, import_colorManipulator7.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity)
|
|
}
|
|
}
|
|
}, ownerState.hasSecondaryAction && {
|
|
// Add some space to avoid collision as `ListItemSecondaryAction`
|
|
// is absolutely positioned.
|
|
paddingRight: 48
|
|
}));
|
|
var ListItemContainer = styled_default("li", {
|
|
name: "MuiListItem",
|
|
slot: "Container",
|
|
overridesResolver: (props, styles3) => styles3.container
|
|
})({
|
|
position: "relative"
|
|
});
|
|
var ListItem = React54.forwardRef(function ListItem2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiListItem"
|
|
});
|
|
const {
|
|
alignItems = "center",
|
|
autoFocus = false,
|
|
button = false,
|
|
children: childrenProp,
|
|
className,
|
|
component: componentProp,
|
|
components = {},
|
|
componentsProps = {},
|
|
ContainerComponent = "li",
|
|
ContainerProps: {
|
|
className: ContainerClassName
|
|
} = {},
|
|
dense = false,
|
|
disabled = false,
|
|
disableGutters = false,
|
|
disablePadding = false,
|
|
divider = false,
|
|
focusVisibleClassName,
|
|
secondaryAction,
|
|
selected = false,
|
|
slotProps = {},
|
|
slots = {}
|
|
} = props, ContainerProps = _objectWithoutPropertiesLoose(props.ContainerProps, _excluded46), other = _objectWithoutPropertiesLoose(props, _excluded211);
|
|
const context = React54.useContext(ListContext_default);
|
|
const childContext = React54.useMemo(() => ({
|
|
dense: dense || context.dense || false,
|
|
alignItems,
|
|
disableGutters
|
|
}), [alignItems, context.dense, dense, disableGutters]);
|
|
const listItemRef = React54.useRef(null);
|
|
useEnhancedEffect_default2(() => {
|
|
if (autoFocus) {
|
|
if (listItemRef.current) {
|
|
listItemRef.current.focus();
|
|
} else if (true) {
|
|
console.error("MUI: Unable to set focus to a ListItem whose component has not been rendered.");
|
|
}
|
|
}
|
|
}, [autoFocus]);
|
|
const children = React54.Children.toArray(childrenProp);
|
|
const hasSecondaryAction = children.length && isMuiElement_default(children[children.length - 1], ["ListItemSecondaryAction"]);
|
|
const ownerState = _extends({}, props, {
|
|
alignItems,
|
|
autoFocus,
|
|
button,
|
|
dense: childContext.dense,
|
|
disabled,
|
|
disableGutters,
|
|
disablePadding,
|
|
divider,
|
|
hasSecondaryAction,
|
|
selected
|
|
});
|
|
const classes = useUtilityClasses39(ownerState);
|
|
const handleRef = useForkRef_default(listItemRef, ref);
|
|
const Root = slots.root || components.Root || ListItemRoot;
|
|
const rootProps = slotProps.root || componentsProps.root || {};
|
|
const componentProps = _extends({
|
|
className: clsx_default(classes.root, rootProps.className, className),
|
|
disabled
|
|
}, other);
|
|
let Component = componentProp || "li";
|
|
if (button) {
|
|
componentProps.component = componentProp || "div";
|
|
componentProps.focusVisibleClassName = clsx_default(listItemClasses_default.focusVisible, focusVisibleClassName);
|
|
Component = ButtonBase_default;
|
|
}
|
|
if (hasSecondaryAction) {
|
|
Component = !componentProps.component && !componentProp ? "div" : Component;
|
|
if (ContainerComponent === "li") {
|
|
if (Component === "li") {
|
|
Component = "div";
|
|
} else if (componentProps.component === "li") {
|
|
componentProps.component = "div";
|
|
}
|
|
}
|
|
return (0, import_jsx_runtime59.jsx)(ListContext_default.Provider, {
|
|
value: childContext,
|
|
children: (0, import_jsx_runtime60.jsxs)(ListItemContainer, _extends({
|
|
as: ContainerComponent,
|
|
className: clsx_default(classes.container, ContainerClassName),
|
|
ref: handleRef,
|
|
ownerState
|
|
}, ContainerProps, {
|
|
children: [(0, import_jsx_runtime59.jsx)(Root, _extends({}, rootProps, !isHostComponent_default(Root) && {
|
|
as: Component,
|
|
ownerState: _extends({}, ownerState, rootProps.ownerState)
|
|
}, componentProps, {
|
|
children
|
|
})), children.pop()]
|
|
}))
|
|
});
|
|
}
|
|
return (0, import_jsx_runtime59.jsx)(ListContext_default.Provider, {
|
|
value: childContext,
|
|
children: (0, import_jsx_runtime60.jsxs)(Root, _extends({}, rootProps, {
|
|
as: Component,
|
|
ref: handleRef
|
|
}, !isHostComponent_default(Root) && {
|
|
ownerState: _extends({}, ownerState, rootProps.ownerState)
|
|
}, componentProps, {
|
|
children: [children, secondaryAction && (0, import_jsx_runtime59.jsx)(ListItemSecondaryAction_default, {
|
|
children: secondaryAction
|
|
})]
|
|
}))
|
|
});
|
|
});
|
|
true ? ListItem.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Defines the `align-items` style property.
|
|
* @default 'center'
|
|
*/
|
|
alignItems: import_prop_types46.default.oneOf(["center", "flex-start"]),
|
|
/**
|
|
* If `true`, the list item is focused during the first mount.
|
|
* Focus will also be triggered if the value changes from false to true.
|
|
* @default false
|
|
* @deprecated checkout [ListItemButton](/material-ui/api/list-item-button/) instead
|
|
*/
|
|
autoFocus: import_prop_types46.default.bool,
|
|
/**
|
|
* If `true`, the list item is a button (using `ButtonBase`). Props intended
|
|
* for `ButtonBase` can then be applied to `ListItem`.
|
|
* @default false
|
|
* @deprecated checkout [ListItemButton](/material-ui/api/list-item-button/) instead
|
|
*/
|
|
button: import_prop_types46.default.bool,
|
|
/**
|
|
* The content of the component if a `ListItemSecondaryAction` is used it must
|
|
* be the last child.
|
|
*/
|
|
children: chainPropTypes(import_prop_types46.default.node, (props) => {
|
|
const children = React54.Children.toArray(props.children);
|
|
let secondaryActionIndex = -1;
|
|
for (let i = children.length - 1; i >= 0; i -= 1) {
|
|
const child = children[i];
|
|
if (isMuiElement_default(child, ["ListItemSecondaryAction"])) {
|
|
secondaryActionIndex = i;
|
|
break;
|
|
}
|
|
}
|
|
if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {
|
|
return new Error("MUI: You used an element after ListItemSecondaryAction. For ListItem to detect that it has a secondary action you must pass it as the last child to ListItem.");
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types46.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types46.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types46.default.elementType,
|
|
/**
|
|
* The components used for each slot inside.
|
|
*
|
|
* This prop is an alias for the `slots` prop.
|
|
* It's recommended to use the `slots` prop instead.
|
|
*
|
|
* @default {}
|
|
*/
|
|
components: import_prop_types46.default.shape({
|
|
Root: import_prop_types46.default.elementType
|
|
}),
|
|
/**
|
|
* The extra props for the slot components.
|
|
* You can override the existing props or add new ones.
|
|
*
|
|
* This prop is an alias for the `slotProps` prop.
|
|
* It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.
|
|
*
|
|
* @default {}
|
|
*/
|
|
componentsProps: import_prop_types46.default.shape({
|
|
root: import_prop_types46.default.object
|
|
}),
|
|
/**
|
|
* The container component used when a `ListItemSecondaryAction` is the last child.
|
|
* @default 'li'
|
|
* @deprecated
|
|
*/
|
|
ContainerComponent: elementTypeAcceptingRef_default,
|
|
/**
|
|
* Props applied to the container component if used.
|
|
* @default {}
|
|
* @deprecated
|
|
*/
|
|
ContainerProps: import_prop_types46.default.object,
|
|
/**
|
|
* If `true`, compact vertical padding designed for keyboard and mouse input is used.
|
|
* The prop defaults to the value inherited from the parent List component.
|
|
* @default false
|
|
*/
|
|
dense: import_prop_types46.default.bool,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
* @deprecated checkout [ListItemButton](/material-ui/api/list-item-button/) instead
|
|
*/
|
|
disabled: import_prop_types46.default.bool,
|
|
/**
|
|
* If `true`, the left and right padding is removed.
|
|
* @default false
|
|
*/
|
|
disableGutters: import_prop_types46.default.bool,
|
|
/**
|
|
* If `true`, all padding is removed.
|
|
* @default false
|
|
*/
|
|
disablePadding: import_prop_types46.default.bool,
|
|
/**
|
|
* If `true`, a 1px light border is added to the bottom of the list item.
|
|
* @default false
|
|
*/
|
|
divider: import_prop_types46.default.bool,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
focusVisibleClassName: import_prop_types46.default.string,
|
|
/**
|
|
* The element to display at the end of ListItem.
|
|
*/
|
|
secondaryAction: import_prop_types46.default.node,
|
|
/**
|
|
* Use to apply selected styling.
|
|
* @default false
|
|
* @deprecated checkout [ListItemButton](/material-ui/api/list-item-button/) instead
|
|
*/
|
|
selected: import_prop_types46.default.bool,
|
|
/**
|
|
* The extra props for the slot components.
|
|
* You can override the existing props or add new ones.
|
|
*
|
|
* This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.
|
|
*
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types46.default.shape({
|
|
root: import_prop_types46.default.object
|
|
}),
|
|
/**
|
|
* The components used for each slot inside.
|
|
*
|
|
* This prop is an alias for the `components` prop, which will be deprecated in the future.
|
|
*
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types46.default.shape({
|
|
root: import_prop_types46.default.elementType
|
|
}),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types46.default.oneOfType([import_prop_types46.default.arrayOf(import_prop_types46.default.oneOfType([import_prop_types46.default.func, import_prop_types46.default.object, import_prop_types46.default.bool])), import_prop_types46.default.func, import_prop_types46.default.object])
|
|
} : void 0;
|
|
var ListItem_default = ListItem;
|
|
|
|
// node_modules/@mui/material/ListItemAvatar/ListItemAvatar.js
|
|
init_extends();
|
|
var React55 = __toESM(require_react());
|
|
var import_prop_types47 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/ListItemAvatar/listItemAvatarClasses.js
|
|
function getListItemAvatarUtilityClass(slot) {
|
|
return generateUtilityClass("MuiListItemAvatar", slot);
|
|
}
|
|
var listItemAvatarClasses = generateUtilityClasses("MuiListItemAvatar", ["root", "alignItemsFlexStart"]);
|
|
var listItemAvatarClasses_default = listItemAvatarClasses;
|
|
|
|
// node_modules/@mui/material/ListItemAvatar/ListItemAvatar.js
|
|
var import_jsx_runtime61 = __toESM(require_jsx_runtime());
|
|
var _excluded47 = ["className"];
|
|
var useUtilityClasses40 = (ownerState) => {
|
|
const {
|
|
alignItems,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", alignItems === "flex-start" && "alignItemsFlexStart"]
|
|
};
|
|
return composeClasses(slots, getListItemAvatarUtilityClass, classes);
|
|
};
|
|
var ListItemAvatarRoot = styled_default("div", {
|
|
name: "MuiListItemAvatar",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.alignItems === "flex-start" && styles3.alignItemsFlexStart];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
minWidth: 56,
|
|
flexShrink: 0
|
|
}, ownerState.alignItems === "flex-start" && {
|
|
marginTop: 8
|
|
}));
|
|
var ListItemAvatar = React55.forwardRef(function ListItemAvatar2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiListItemAvatar"
|
|
});
|
|
const {
|
|
className
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded47);
|
|
const context = React55.useContext(ListContext_default);
|
|
const ownerState = _extends({}, props, {
|
|
alignItems: context.alignItems
|
|
});
|
|
const classes = useUtilityClasses40(ownerState);
|
|
return (0, import_jsx_runtime61.jsx)(ListItemAvatarRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other));
|
|
});
|
|
true ? ListItemAvatar.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component, normally an `Avatar`.
|
|
*/
|
|
children: import_prop_types47.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types47.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types47.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types47.default.oneOfType([import_prop_types47.default.arrayOf(import_prop_types47.default.oneOfType([import_prop_types47.default.func, import_prop_types47.default.object, import_prop_types47.default.bool])), import_prop_types47.default.func, import_prop_types47.default.object])
|
|
} : void 0;
|
|
var ListItemAvatar_default = ListItemAvatar;
|
|
|
|
// node_modules/@mui/material/MobileStepper/MobileStepper.js
|
|
init_extends();
|
|
var React56 = __toESM(require_react());
|
|
var import_prop_types48 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/MobileStepper/mobileStepperClasses.js
|
|
function getMobileStepperUtilityClass(slot) {
|
|
return generateUtilityClass("MuiMobileStepper", slot);
|
|
}
|
|
var mobileStepperClasses = generateUtilityClasses("MuiMobileStepper", ["root", "positionBottom", "positionTop", "positionStatic", "dots", "dot", "dotActive", "progress"]);
|
|
var mobileStepperClasses_default = mobileStepperClasses;
|
|
|
|
// node_modules/@mui/material/MobileStepper/MobileStepper.js
|
|
var import_jsx_runtime62 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime63 = __toESM(require_jsx_runtime());
|
|
var _excluded48 = ["activeStep", "backButton", "className", "LinearProgressProps", "nextButton", "position", "steps", "variant"];
|
|
var useUtilityClasses41 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
position
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `position${capitalize_default(position)}`],
|
|
dots: ["dots"],
|
|
dot: ["dot"],
|
|
dotActive: ["dotActive"],
|
|
progress: ["progress"]
|
|
};
|
|
return composeClasses(slots, getMobileStepperUtilityClass, classes);
|
|
};
|
|
var MobileStepperRoot = styled_default(Paper_default, {
|
|
name: "MuiMobileStepper",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`position${capitalize_default(ownerState.position)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex",
|
|
flexDirection: "row",
|
|
justifyContent: "space-between",
|
|
alignItems: "center",
|
|
background: (theme.vars || theme).palette.background.default,
|
|
padding: 8
|
|
}, ownerState.position === "bottom" && {
|
|
position: "fixed",
|
|
bottom: 0,
|
|
left: 0,
|
|
right: 0,
|
|
zIndex: (theme.vars || theme).zIndex.mobileStepper
|
|
}, ownerState.position === "top" && {
|
|
position: "fixed",
|
|
top: 0,
|
|
left: 0,
|
|
right: 0,
|
|
zIndex: (theme.vars || theme).zIndex.mobileStepper
|
|
}));
|
|
var MobileStepperDots = styled_default("div", {
|
|
name: "MuiMobileStepper",
|
|
slot: "Dots",
|
|
overridesResolver: (props, styles3) => styles3.dots
|
|
})(({
|
|
ownerState
|
|
}) => _extends({}, ownerState.variant === "dots" && {
|
|
display: "flex",
|
|
flexDirection: "row"
|
|
}));
|
|
var MobileStepperDot = styled_default("div", {
|
|
name: "MuiMobileStepper",
|
|
slot: "Dot",
|
|
shouldForwardProp: (prop) => slotShouldForwardProp_default(prop) && prop !== "dotActive",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
dotActive
|
|
} = props;
|
|
return [styles3.dot, dotActive && styles3.dotActive];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState,
|
|
dotActive
|
|
}) => _extends({}, ownerState.variant === "dots" && _extends({
|
|
transition: theme.transitions.create("background-color", {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
backgroundColor: (theme.vars || theme).palette.action.disabled,
|
|
borderRadius: "50%",
|
|
width: 8,
|
|
height: 8,
|
|
margin: "0 2px"
|
|
}, dotActive && {
|
|
backgroundColor: (theme.vars || theme).palette.primary.main
|
|
})));
|
|
var MobileStepperProgress = styled_default(LinearProgress_default, {
|
|
name: "MuiMobileStepper",
|
|
slot: "Progress",
|
|
overridesResolver: (props, styles3) => styles3.progress
|
|
})(({
|
|
ownerState
|
|
}) => _extends({}, ownerState.variant === "progress" && {
|
|
width: "50%"
|
|
}));
|
|
var MobileStepper = React56.forwardRef(function MobileStepper2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiMobileStepper"
|
|
});
|
|
const {
|
|
activeStep = 0,
|
|
backButton,
|
|
className,
|
|
LinearProgressProps,
|
|
nextButton,
|
|
position = "bottom",
|
|
steps,
|
|
variant = "dots"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded48);
|
|
const ownerState = _extends({}, props, {
|
|
activeStep,
|
|
position,
|
|
variant
|
|
});
|
|
let value;
|
|
if (variant === "progress") {
|
|
if (steps === 1) {
|
|
value = 100;
|
|
} else {
|
|
value = Math.ceil(activeStep / (steps - 1) * 100);
|
|
}
|
|
}
|
|
const classes = useUtilityClasses41(ownerState);
|
|
return (0, import_jsx_runtime62.jsxs)(MobileStepperRoot, _extends({
|
|
square: true,
|
|
elevation: 0,
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: [backButton, variant === "text" && (0, import_jsx_runtime62.jsxs)(React56.Fragment, {
|
|
children: [activeStep + 1, " / ", steps]
|
|
}), variant === "dots" && (0, import_jsx_runtime63.jsx)(MobileStepperDots, {
|
|
ownerState,
|
|
className: classes.dots,
|
|
children: [...new Array(steps)].map((_2, index) => (0, import_jsx_runtime63.jsx)(MobileStepperDot, {
|
|
className: clsx_default(classes.dot, index === activeStep && classes.dotActive),
|
|
ownerState,
|
|
dotActive: index === activeStep
|
|
}, index))
|
|
}), variant === "progress" && (0, import_jsx_runtime63.jsx)(MobileStepperProgress, _extends({
|
|
ownerState,
|
|
className: classes.progress,
|
|
variant: "determinate",
|
|
value
|
|
}, LinearProgressProps)), nextButton]
|
|
}));
|
|
});
|
|
true ? MobileStepper.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Set the active step (zero based index).
|
|
* Defines which dot is highlighted when the variant is 'dots'.
|
|
* @default 0
|
|
*/
|
|
activeStep: integerPropType_default,
|
|
/**
|
|
* A back button element. For instance, it can be a `Button` or an `IconButton`.
|
|
*/
|
|
backButton: import_prop_types48.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types48.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types48.default.string,
|
|
/**
|
|
* Props applied to the `LinearProgress` element.
|
|
*/
|
|
LinearProgressProps: import_prop_types48.default.object,
|
|
/**
|
|
* A next button element. For instance, it can be a `Button` or an `IconButton`.
|
|
*/
|
|
nextButton: import_prop_types48.default.node,
|
|
/**
|
|
* Set the positioning type.
|
|
* @default 'bottom'
|
|
*/
|
|
position: import_prop_types48.default.oneOf(["bottom", "static", "top"]),
|
|
/**
|
|
* The total steps.
|
|
*/
|
|
steps: integerPropType_default.isRequired,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types48.default.oneOfType([import_prop_types48.default.arrayOf(import_prop_types48.default.oneOfType([import_prop_types48.default.func, import_prop_types48.default.object, import_prop_types48.default.bool])), import_prop_types48.default.func, import_prop_types48.default.object]),
|
|
/**
|
|
* The variant to use.
|
|
* @default 'dots'
|
|
*/
|
|
variant: import_prop_types48.default.oneOf(["dots", "progress", "text"])
|
|
} : void 0;
|
|
var MobileStepper_default = MobileStepper;
|
|
|
|
// node_modules/@mui/material/NativeSelect/NativeSelect.js
|
|
init_extends();
|
|
var React57 = __toESM(require_react());
|
|
var import_prop_types49 = __toESM(require_prop_types());
|
|
var import_jsx_runtime64 = __toESM(require_jsx_runtime());
|
|
var _excluded49 = ["className", "children", "classes", "IconComponent", "input", "inputProps", "variant"];
|
|
var _excluded212 = ["root"];
|
|
var useUtilityClasses42 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getNativeSelectUtilityClasses, classes);
|
|
};
|
|
var defaultInput = (0, import_jsx_runtime64.jsx)(Input_default, {});
|
|
var NativeSelect = React57.forwardRef(function NativeSelect2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
name: "MuiNativeSelect",
|
|
props: inProps
|
|
});
|
|
const {
|
|
className,
|
|
children,
|
|
classes: classesProp = {},
|
|
IconComponent = ArrowDropDown_default,
|
|
input = defaultInput,
|
|
inputProps
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded49);
|
|
const muiFormControl = useFormControl();
|
|
const fcs = formControlState({
|
|
props,
|
|
muiFormControl,
|
|
states: ["variant"]
|
|
});
|
|
const ownerState = _extends({}, props, {
|
|
classes: classesProp
|
|
});
|
|
const classes = useUtilityClasses42(ownerState);
|
|
const otherClasses = _objectWithoutPropertiesLoose(classesProp, _excluded212);
|
|
return (0, import_jsx_runtime64.jsx)(React57.Fragment, {
|
|
children: React57.cloneElement(input, _extends({
|
|
// Most of the logic is implemented in `NativeSelectInput`.
|
|
// The `Select` component is a simple API wrapper to expose something better to play with.
|
|
inputComponent: NativeSelectInput_default,
|
|
inputProps: _extends({
|
|
children,
|
|
classes: otherClasses,
|
|
IconComponent,
|
|
variant: fcs.variant,
|
|
type: void 0
|
|
}, inputProps, input ? input.props.inputProps : {}),
|
|
ref
|
|
}, other, {
|
|
className: clsx_default(classes.root, input.props.className, className)
|
|
}))
|
|
});
|
|
});
|
|
true ? NativeSelect.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The option elements to populate the select with.
|
|
* Can be some `<option>` elements.
|
|
*/
|
|
children: import_prop_types49.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
* @default {}
|
|
*/
|
|
classes: import_prop_types49.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types49.default.string,
|
|
/**
|
|
* The icon that displays the arrow.
|
|
* @default ArrowDropDownIcon
|
|
*/
|
|
IconComponent: import_prop_types49.default.elementType,
|
|
/**
|
|
* An `Input` element; does not have to be a material-ui specific `Input`.
|
|
* @default <Input />
|
|
*/
|
|
input: import_prop_types49.default.element,
|
|
/**
|
|
* [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attributes) applied to the `select` element.
|
|
*/
|
|
inputProps: import_prop_types49.default.object,
|
|
/**
|
|
* Callback fired when a menu item is selected.
|
|
*
|
|
* @param {React.ChangeEvent<HTMLSelectElement>} event The event source of the callback.
|
|
* You can pull out the new value by accessing `event.target.value` (string).
|
|
*/
|
|
onChange: import_prop_types49.default.func,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types49.default.oneOfType([import_prop_types49.default.arrayOf(import_prop_types49.default.oneOfType([import_prop_types49.default.func, import_prop_types49.default.object, import_prop_types49.default.bool])), import_prop_types49.default.func, import_prop_types49.default.object]),
|
|
/**
|
|
* The `input` value. The DOM API casts this to a string.
|
|
*/
|
|
value: import_prop_types49.default.any,
|
|
/**
|
|
* The variant to use.
|
|
*/
|
|
variant: import_prop_types49.default.oneOf(["filled", "outlined", "standard"])
|
|
} : void 0;
|
|
NativeSelect.muiName = "Select";
|
|
var NativeSelect_default = NativeSelect;
|
|
|
|
// node_modules/@mui/material/NoSsr/NoSsr.js
|
|
var React58 = __toESM(require_react());
|
|
var import_prop_types50 = __toESM(require_prop_types());
|
|
var import_jsx_runtime65 = __toESM(require_jsx_runtime());
|
|
function NoSsr(props) {
|
|
const {
|
|
children,
|
|
defer = false,
|
|
fallback = null
|
|
} = props;
|
|
const [mountedState, setMountedState] = React58.useState(false);
|
|
useEnhancedEffect_default(() => {
|
|
if (!defer) {
|
|
setMountedState(true);
|
|
}
|
|
}, [defer]);
|
|
React58.useEffect(() => {
|
|
if (defer) {
|
|
setMountedState(true);
|
|
}
|
|
}, [defer]);
|
|
return (0, import_jsx_runtime65.jsx)(React58.Fragment, {
|
|
children: mountedState ? children : fallback
|
|
});
|
|
}
|
|
true ? NoSsr.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* You can wrap a node.
|
|
*/
|
|
children: import_prop_types50.default.node,
|
|
/**
|
|
* If `true`, the component will not only prevent server-side rendering.
|
|
* It will also defer the rendering of the children into a different screen frame.
|
|
* @default false
|
|
*/
|
|
defer: import_prop_types50.default.bool,
|
|
/**
|
|
* The fallback content to display.
|
|
* @default null
|
|
*/
|
|
fallback: import_prop_types50.default.node
|
|
} : void 0;
|
|
if (true) {
|
|
NoSsr["propTypes"] = exactProp(NoSsr.propTypes);
|
|
}
|
|
var NoSsr_default = NoSsr;
|
|
|
|
// node_modules/@mui/material/Pagination/Pagination.js
|
|
init_extends();
|
|
var React62 = __toESM(require_react());
|
|
var import_prop_types52 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Pagination/paginationClasses.js
|
|
function getPaginationUtilityClass(slot) {
|
|
return generateUtilityClass("MuiPagination", slot);
|
|
}
|
|
var paginationClasses = generateUtilityClasses("MuiPagination", ["root", "ul", "outlined", "text"]);
|
|
var paginationClasses_default = paginationClasses;
|
|
|
|
// node_modules/@mui/material/usePagination/usePagination.js
|
|
init_extends();
|
|
var _excluded50 = ["boundaryCount", "componentName", "count", "defaultPage", "disabled", "hideNextButton", "hidePrevButton", "onChange", "page", "showFirstButton", "showLastButton", "siblingCount"];
|
|
function usePagination(props = {}) {
|
|
const {
|
|
boundaryCount = 1,
|
|
componentName = "usePagination",
|
|
count = 1,
|
|
defaultPage = 1,
|
|
disabled = false,
|
|
hideNextButton = false,
|
|
hidePrevButton = false,
|
|
onChange: handleChange,
|
|
page: pageProp,
|
|
showFirstButton = false,
|
|
showLastButton = false,
|
|
siblingCount = 1
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded50);
|
|
const [page, setPageState] = useControlled({
|
|
controlled: pageProp,
|
|
default: defaultPage,
|
|
name: componentName,
|
|
state: "page"
|
|
});
|
|
const handleClick = (event, value) => {
|
|
if (!pageProp) {
|
|
setPageState(value);
|
|
}
|
|
if (handleChange) {
|
|
handleChange(event, value);
|
|
}
|
|
};
|
|
const range = (start, end) => {
|
|
const length = end - start + 1;
|
|
return Array.from({
|
|
length
|
|
}, (_2, i) => start + i);
|
|
};
|
|
const startPages = range(1, Math.min(boundaryCount, count));
|
|
const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);
|
|
const siblingsStart = Math.max(
|
|
Math.min(
|
|
// Natural start
|
|
page - siblingCount,
|
|
// Lower boundary when page is high
|
|
count - boundaryCount - siblingCount * 2 - 1
|
|
),
|
|
// Greater than startPages
|
|
boundaryCount + 2
|
|
);
|
|
const siblingsEnd = Math.min(
|
|
Math.max(
|
|
// Natural end
|
|
page + siblingCount,
|
|
// Upper boundary when page is low
|
|
boundaryCount + siblingCount * 2 + 2
|
|
),
|
|
// Less than endPages
|
|
endPages.length > 0 ? endPages[0] - 2 : count - 1
|
|
);
|
|
const itemList = [
|
|
...showFirstButton ? ["first"] : [],
|
|
...hidePrevButton ? [] : ["previous"],
|
|
...startPages,
|
|
// Start ellipsis
|
|
// eslint-disable-next-line no-nested-ternary
|
|
...siblingsStart > boundaryCount + 2 ? ["start-ellipsis"] : boundaryCount + 1 < count - boundaryCount ? [boundaryCount + 1] : [],
|
|
// Sibling pages
|
|
...range(siblingsStart, siblingsEnd),
|
|
// End ellipsis
|
|
// eslint-disable-next-line no-nested-ternary
|
|
...siblingsEnd < count - boundaryCount - 1 ? ["end-ellipsis"] : count - boundaryCount > boundaryCount ? [count - boundaryCount] : [],
|
|
...endPages,
|
|
...hideNextButton ? [] : ["next"],
|
|
...showLastButton ? ["last"] : []
|
|
];
|
|
const buttonPage = (type) => {
|
|
switch (type) {
|
|
case "first":
|
|
return 1;
|
|
case "previous":
|
|
return page - 1;
|
|
case "next":
|
|
return page + 1;
|
|
case "last":
|
|
return count;
|
|
default:
|
|
return null;
|
|
}
|
|
};
|
|
const items = itemList.map((item) => {
|
|
return typeof item === "number" ? {
|
|
onClick: (event) => {
|
|
handleClick(event, item);
|
|
},
|
|
type: "page",
|
|
page: item,
|
|
selected: item === page,
|
|
disabled,
|
|
"aria-current": item === page ? "true" : void 0
|
|
} : {
|
|
onClick: (event) => {
|
|
handleClick(event, buttonPage(item));
|
|
},
|
|
type: item,
|
|
page: buttonPage(item),
|
|
selected: false,
|
|
disabled: disabled || item.indexOf("ellipsis") === -1 && (item === "next" || item === "last" ? page >= count : page <= 1)
|
|
};
|
|
});
|
|
return _extends({
|
|
items
|
|
}, other);
|
|
}
|
|
|
|
// node_modules/@mui/material/PaginationItem/PaginationItem.js
|
|
init_extends();
|
|
var React61 = __toESM(require_react());
|
|
var import_prop_types51 = __toESM(require_prop_types());
|
|
var import_colorManipulator8 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/PaginationItem/paginationItemClasses.js
|
|
function getPaginationItemUtilityClass(slot) {
|
|
return generateUtilityClass("MuiPaginationItem", slot);
|
|
}
|
|
var paginationItemClasses = generateUtilityClasses("MuiPaginationItem", ["root", "page", "sizeSmall", "sizeLarge", "text", "textPrimary", "textSecondary", "outlined", "outlinedPrimary", "outlinedSecondary", "rounded", "ellipsis", "firstLast", "previousNext", "focusVisible", "disabled", "selected", "icon", "colorPrimary", "colorSecondary"]);
|
|
var paginationItemClasses_default = paginationItemClasses;
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/NavigateBefore.js
|
|
var React59 = __toESM(require_react());
|
|
var import_jsx_runtime66 = __toESM(require_jsx_runtime());
|
|
var NavigateBefore_default = createSvgIcon((0, import_jsx_runtime66.jsx)("path", {
|
|
d: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"
|
|
}), "NavigateBefore");
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/NavigateNext.js
|
|
var React60 = __toESM(require_react());
|
|
var import_jsx_runtime67 = __toESM(require_jsx_runtime());
|
|
var NavigateNext_default = createSvgIcon((0, import_jsx_runtime67.jsx)("path", {
|
|
d: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"
|
|
}), "NavigateNext");
|
|
|
|
// node_modules/@mui/material/PaginationItem/PaginationItem.js
|
|
var import_jsx_runtime68 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime69 = __toESM(require_jsx_runtime());
|
|
var _excluded51 = ["className", "color", "component", "components", "disabled", "page", "selected", "shape", "size", "slots", "type", "variant"];
|
|
var overridesResolver5 = (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.variant], styles3[`size${capitalize_default(ownerState.size)}`], ownerState.variant === "text" && styles3[`text${capitalize_default(ownerState.color)}`], ownerState.variant === "outlined" && styles3[`outlined${capitalize_default(ownerState.color)}`], ownerState.shape === "rounded" && styles3.rounded, ownerState.type === "page" && styles3.page, (ownerState.type === "start-ellipsis" || ownerState.type === "end-ellipsis") && styles3.ellipsis, (ownerState.type === "previous" || ownerState.type === "next") && styles3.previousNext, (ownerState.type === "first" || ownerState.type === "last") && styles3.firstLast];
|
|
};
|
|
var useUtilityClasses43 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
color,
|
|
disabled,
|
|
selected,
|
|
size,
|
|
shape,
|
|
type,
|
|
variant
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `size${capitalize_default(size)}`, variant, shape, color !== "standard" && `color${capitalize_default(color)}`, color !== "standard" && `${variant}${capitalize_default(color)}`, disabled && "disabled", selected && "selected", {
|
|
page: "page",
|
|
first: "firstLast",
|
|
last: "firstLast",
|
|
"start-ellipsis": "ellipsis",
|
|
"end-ellipsis": "ellipsis",
|
|
previous: "previousNext",
|
|
next: "previousNext"
|
|
}[type]],
|
|
icon: ["icon"]
|
|
};
|
|
return composeClasses(slots, getPaginationItemUtilityClass, classes);
|
|
};
|
|
var PaginationItemEllipsis = styled_default("div", {
|
|
name: "MuiPaginationItem",
|
|
slot: "Root",
|
|
overridesResolver: overridesResolver5
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({}, theme.typography.body2, {
|
|
borderRadius: 32 / 2,
|
|
textAlign: "center",
|
|
boxSizing: "border-box",
|
|
minWidth: 32,
|
|
padding: "0 6px",
|
|
margin: "0 3px",
|
|
color: (theme.vars || theme).palette.text.primary,
|
|
height: "auto",
|
|
[`&.${paginationItemClasses_default.disabled}`]: {
|
|
opacity: (theme.vars || theme).palette.action.disabledOpacity
|
|
}
|
|
}, ownerState.size === "small" && {
|
|
minWidth: 26,
|
|
borderRadius: 26 / 2,
|
|
margin: "0 1px",
|
|
padding: "0 4px"
|
|
}, ownerState.size === "large" && {
|
|
minWidth: 40,
|
|
borderRadius: 40 / 2,
|
|
padding: "0 10px",
|
|
fontSize: theme.typography.pxToRem(15)
|
|
}));
|
|
var PaginationItemPage = styled_default(ButtonBase_default, {
|
|
name: "MuiPaginationItem",
|
|
slot: "Root",
|
|
overridesResolver: overridesResolver5
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({}, theme.typography.body2, {
|
|
borderRadius: 32 / 2,
|
|
textAlign: "center",
|
|
boxSizing: "border-box",
|
|
minWidth: 32,
|
|
height: 32,
|
|
padding: "0 6px",
|
|
margin: "0 3px",
|
|
color: (theme.vars || theme).palette.text.primary,
|
|
[`&.${paginationItemClasses_default.focusVisible}`]: {
|
|
backgroundColor: (theme.vars || theme).palette.action.focus
|
|
},
|
|
[`&.${paginationItemClasses_default.disabled}`]: {
|
|
opacity: (theme.vars || theme).palette.action.disabledOpacity
|
|
},
|
|
transition: theme.transitions.create(["color", "background-color"], {
|
|
duration: theme.transitions.duration.short
|
|
}),
|
|
"&:hover": {
|
|
backgroundColor: (theme.vars || theme).palette.action.hover,
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: "transparent"
|
|
}
|
|
},
|
|
[`&.${paginationItemClasses_default.selected}`]: {
|
|
backgroundColor: (theme.vars || theme).palette.action.selected,
|
|
"&:hover": {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, import_colorManipulator8.alpha)(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: (theme.vars || theme).palette.action.selected
|
|
}
|
|
},
|
|
[`&.${paginationItemClasses_default.focusVisible}`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, import_colorManipulator8.alpha)(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
|
|
},
|
|
[`&.${paginationItemClasses_default.disabled}`]: {
|
|
opacity: 1,
|
|
color: (theme.vars || theme).palette.action.disabled,
|
|
backgroundColor: (theme.vars || theme).palette.action.selected
|
|
}
|
|
}
|
|
}, ownerState.size === "small" && {
|
|
minWidth: 26,
|
|
height: 26,
|
|
borderRadius: 26 / 2,
|
|
margin: "0 1px",
|
|
padding: "0 4px"
|
|
}, ownerState.size === "large" && {
|
|
minWidth: 40,
|
|
height: 40,
|
|
borderRadius: 40 / 2,
|
|
padding: "0 10px",
|
|
fontSize: theme.typography.pxToRem(15)
|
|
}, ownerState.shape === "rounded" && {
|
|
borderRadius: (theme.vars || theme).shape.borderRadius
|
|
}), ({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({}, ownerState.variant === "text" && {
|
|
[`&.${paginationItemClasses_default.selected}`]: _extends({}, ownerState.color !== "standard" && {
|
|
color: (theme.vars || theme).palette[ownerState.color].contrastText,
|
|
backgroundColor: (theme.vars || theme).palette[ownerState.color].main,
|
|
"&:hover": {
|
|
backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: (theme.vars || theme).palette[ownerState.color].main
|
|
}
|
|
},
|
|
[`&.${paginationItemClasses_default.focusVisible}`]: {
|
|
backgroundColor: (theme.vars || theme).palette[ownerState.color].dark
|
|
}
|
|
}, {
|
|
[`&.${paginationItemClasses_default.disabled}`]: {
|
|
color: (theme.vars || theme).palette.action.disabled
|
|
}
|
|
})
|
|
}, ownerState.variant === "outlined" && {
|
|
border: theme.vars ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : `1px solid ${theme.palette.mode === "light" ? "rgba(0, 0, 0, 0.23)" : "rgba(255, 255, 255, 0.23)"}`,
|
|
[`&.${paginationItemClasses_default.selected}`]: _extends({}, ownerState.color !== "standard" && {
|
|
color: (theme.vars || theme).palette[ownerState.color].main,
|
|
border: `1px solid ${theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.5)` : (0, import_colorManipulator8.alpha)(theme.palette[ownerState.color].main, 0.5)}`,
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.activatedOpacity})` : (0, import_colorManipulator8.alpha)(theme.palette[ownerState.color].main, theme.palette.action.activatedOpacity),
|
|
"&:hover": {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, import_colorManipulator8.alpha)(theme.palette[ownerState.color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity),
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: "transparent"
|
|
}
|
|
},
|
|
[`&.${paginationItemClasses_default.focusVisible}`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, import_colorManipulator8.alpha)(theme.palette[ownerState.color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity)
|
|
}
|
|
}, {
|
|
[`&.${paginationItemClasses_default.disabled}`]: {
|
|
borderColor: (theme.vars || theme).palette.action.disabledBackground,
|
|
color: (theme.vars || theme).palette.action.disabled
|
|
}
|
|
})
|
|
}));
|
|
var PaginationItemPageIcon = styled_default("div", {
|
|
name: "MuiPaginationItem",
|
|
slot: "Icon",
|
|
overridesResolver: (props, styles3) => styles3.icon
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
fontSize: theme.typography.pxToRem(20),
|
|
margin: "0 -8px"
|
|
}, ownerState.size === "small" && {
|
|
fontSize: theme.typography.pxToRem(18)
|
|
}, ownerState.size === "large" && {
|
|
fontSize: theme.typography.pxToRem(22)
|
|
}));
|
|
var PaginationItem = React61.forwardRef(function PaginationItem2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiPaginationItem"
|
|
});
|
|
const {
|
|
className,
|
|
color = "standard",
|
|
component,
|
|
components = {},
|
|
disabled = false,
|
|
page,
|
|
selected = false,
|
|
shape = "circular",
|
|
size = "medium",
|
|
slots = {},
|
|
type = "page",
|
|
variant = "text"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded51);
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
disabled,
|
|
selected,
|
|
shape,
|
|
size,
|
|
type,
|
|
variant
|
|
});
|
|
const isRtl = useRtl();
|
|
const classes = useUtilityClasses43(ownerState);
|
|
const normalizedIcons = isRtl ? {
|
|
previous: slots.next || components.next || NavigateNext_default,
|
|
next: slots.previous || components.previous || NavigateBefore_default,
|
|
last: slots.first || components.first || FirstPage_default,
|
|
first: slots.last || components.last || LastPage_default
|
|
} : {
|
|
previous: slots.previous || components.previous || NavigateBefore_default,
|
|
next: slots.next || components.next || NavigateNext_default,
|
|
first: slots.first || components.first || FirstPage_default,
|
|
last: slots.last || components.last || LastPage_default
|
|
};
|
|
const Icon3 = normalizedIcons[type];
|
|
return type === "start-ellipsis" || type === "end-ellipsis" ? (0, import_jsx_runtime68.jsx)(PaginationItemEllipsis, {
|
|
ref,
|
|
ownerState,
|
|
className: clsx_default(classes.root, className),
|
|
children: "…"
|
|
}) : (0, import_jsx_runtime69.jsxs)(PaginationItemPage, _extends({
|
|
ref,
|
|
ownerState,
|
|
component,
|
|
disabled,
|
|
className: clsx_default(classes.root, className)
|
|
}, other, {
|
|
children: [type === "page" && page, Icon3 ? (0, import_jsx_runtime68.jsx)(PaginationItemPageIcon, {
|
|
as: Icon3,
|
|
ownerState,
|
|
className: classes.icon
|
|
}) : null]
|
|
}));
|
|
});
|
|
true ? PaginationItem.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* @ignore
|
|
*/
|
|
children: import_prop_types51.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types51.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types51.default.string,
|
|
/**
|
|
* The active color.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'standard'
|
|
*/
|
|
color: import_prop_types51.default.oneOfType([import_prop_types51.default.oneOf(["primary", "secondary", "standard"]), import_prop_types51.default.string]),
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types51.default.elementType,
|
|
/**
|
|
* The components used for each slot inside.
|
|
*
|
|
* This prop is an alias for the `slots` prop.
|
|
* It's recommended to use the `slots` prop instead.
|
|
*
|
|
* @default {}
|
|
*/
|
|
components: import_prop_types51.default.shape({
|
|
first: import_prop_types51.default.elementType,
|
|
last: import_prop_types51.default.elementType,
|
|
next: import_prop_types51.default.elementType,
|
|
previous: import_prop_types51.default.elementType
|
|
}),
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types51.default.bool,
|
|
/**
|
|
* The current page number.
|
|
*/
|
|
page: import_prop_types51.default.node,
|
|
/**
|
|
* If `true` the pagination item is selected.
|
|
* @default false
|
|
*/
|
|
selected: import_prop_types51.default.bool,
|
|
/**
|
|
* The shape of the pagination item.
|
|
* @default 'circular'
|
|
*/
|
|
shape: import_prop_types51.default.oneOf(["circular", "rounded"]),
|
|
/**
|
|
* The size of the component.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types51.default.oneOfType([import_prop_types51.default.oneOf(["small", "medium", "large"]), import_prop_types51.default.string]),
|
|
/**
|
|
* The components used for each slot inside.
|
|
*
|
|
* This prop is an alias for the `components` prop, which will be deprecated in the future.
|
|
*
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types51.default.shape({
|
|
first: import_prop_types51.default.elementType,
|
|
last: import_prop_types51.default.elementType,
|
|
next: import_prop_types51.default.elementType,
|
|
previous: import_prop_types51.default.elementType
|
|
}),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types51.default.oneOfType([import_prop_types51.default.arrayOf(import_prop_types51.default.oneOfType([import_prop_types51.default.func, import_prop_types51.default.object, import_prop_types51.default.bool])), import_prop_types51.default.func, import_prop_types51.default.object]),
|
|
/**
|
|
* The type of pagination item.
|
|
* @default 'page'
|
|
*/
|
|
type: import_prop_types51.default.oneOf(["end-ellipsis", "first", "last", "next", "page", "previous", "start-ellipsis"]),
|
|
/**
|
|
* The variant to use.
|
|
* @default 'text'
|
|
*/
|
|
variant: import_prop_types51.default.oneOfType([import_prop_types51.default.oneOf(["outlined", "text"]), import_prop_types51.default.string])
|
|
} : void 0;
|
|
var PaginationItem_default = PaginationItem;
|
|
|
|
// node_modules/@mui/material/Pagination/Pagination.js
|
|
var import_jsx_runtime70 = __toESM(require_jsx_runtime());
|
|
var _excluded52 = ["boundaryCount", "className", "color", "count", "defaultPage", "disabled", "getItemAriaLabel", "hideNextButton", "hidePrevButton", "onChange", "page", "renderItem", "shape", "showFirstButton", "showLastButton", "siblingCount", "size", "variant"];
|
|
var useUtilityClasses44 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
variant
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", variant],
|
|
ul: ["ul"]
|
|
};
|
|
return composeClasses(slots, getPaginationUtilityClass, classes);
|
|
};
|
|
var PaginationRoot = styled_default("nav", {
|
|
name: "MuiPagination",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.variant]];
|
|
}
|
|
})({});
|
|
var PaginationUl = styled_default("ul", {
|
|
name: "MuiPagination",
|
|
slot: "Ul",
|
|
overridesResolver: (props, styles3) => styles3.ul
|
|
})({
|
|
display: "flex",
|
|
flexWrap: "wrap",
|
|
alignItems: "center",
|
|
padding: 0,
|
|
margin: 0,
|
|
listStyle: "none"
|
|
});
|
|
function defaultGetAriaLabel(type, page, selected) {
|
|
if (type === "page") {
|
|
return `${selected ? "" : "Go to "}page ${page}`;
|
|
}
|
|
return `Go to ${type} page`;
|
|
}
|
|
var Pagination = React62.forwardRef(function Pagination2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiPagination"
|
|
});
|
|
const {
|
|
boundaryCount = 1,
|
|
className,
|
|
color = "standard",
|
|
count = 1,
|
|
defaultPage = 1,
|
|
disabled = false,
|
|
getItemAriaLabel = defaultGetAriaLabel,
|
|
hideNextButton = false,
|
|
hidePrevButton = false,
|
|
renderItem = (item) => (0, import_jsx_runtime70.jsx)(PaginationItem_default, _extends({}, item)),
|
|
shape = "circular",
|
|
showFirstButton = false,
|
|
showLastButton = false,
|
|
siblingCount = 1,
|
|
size = "medium",
|
|
variant = "text"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded52);
|
|
const {
|
|
items
|
|
} = usePagination(_extends({}, props, {
|
|
componentName: "Pagination"
|
|
}));
|
|
const ownerState = _extends({}, props, {
|
|
boundaryCount,
|
|
color,
|
|
count,
|
|
defaultPage,
|
|
disabled,
|
|
getItemAriaLabel,
|
|
hideNextButton,
|
|
hidePrevButton,
|
|
renderItem,
|
|
shape,
|
|
showFirstButton,
|
|
showLastButton,
|
|
siblingCount,
|
|
size,
|
|
variant
|
|
});
|
|
const classes = useUtilityClasses44(ownerState);
|
|
return (0, import_jsx_runtime70.jsx)(PaginationRoot, _extends({
|
|
"aria-label": "pagination navigation",
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other, {
|
|
children: (0, import_jsx_runtime70.jsx)(PaginationUl, {
|
|
className: classes.ul,
|
|
ownerState,
|
|
children: items.map((item, index) => (0, import_jsx_runtime70.jsx)("li", {
|
|
children: renderItem(_extends({}, item, {
|
|
color,
|
|
"aria-label": getItemAriaLabel(item.type, item.page, item.selected),
|
|
shape,
|
|
size,
|
|
variant
|
|
}))
|
|
}, index))
|
|
})
|
|
}));
|
|
});
|
|
true ? Pagination.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Number of always visible pages at the beginning and end.
|
|
* @default 1
|
|
*/
|
|
boundaryCount: integerPropType_default,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types52.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types52.default.string,
|
|
/**
|
|
* The active color.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'standard'
|
|
*/
|
|
color: import_prop_types52.default.oneOfType([import_prop_types52.default.oneOf(["primary", "secondary", "standard"]), import_prop_types52.default.string]),
|
|
/**
|
|
* The total number of pages.
|
|
* @default 1
|
|
*/
|
|
count: integerPropType_default,
|
|
/**
|
|
* The page selected by default when the component is uncontrolled.
|
|
* @default 1
|
|
*/
|
|
defaultPage: integerPropType_default,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types52.default.bool,
|
|
/**
|
|
* Accepts a function which returns a string value that provides a user-friendly name for the current page.
|
|
* This is important for screen reader users.
|
|
*
|
|
* For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).
|
|
* @param {string} type The link or button type to format ('page' | 'first' | 'last' | 'next' | 'previous' | 'start-ellipsis' | 'end-ellipsis'). Defaults to 'page'.
|
|
* @param {number} page The page number to format.
|
|
* @param {bool} selected If true, the current page is selected.
|
|
* @returns {string}
|
|
*/
|
|
getItemAriaLabel: import_prop_types52.default.func,
|
|
/**
|
|
* If `true`, hide the next-page button.
|
|
* @default false
|
|
*/
|
|
hideNextButton: import_prop_types52.default.bool,
|
|
/**
|
|
* If `true`, hide the previous-page button.
|
|
* @default false
|
|
*/
|
|
hidePrevButton: import_prop_types52.default.bool,
|
|
/**
|
|
* Callback fired when the page is changed.
|
|
*
|
|
* @param {React.ChangeEvent<unknown>} event The event source of the callback.
|
|
* @param {number} page The page selected.
|
|
*/
|
|
onChange: import_prop_types52.default.func,
|
|
/**
|
|
* The current page. Unlike `TablePagination`, which starts numbering from `0`, this pagination starts from `1`.
|
|
*/
|
|
page: integerPropType_default,
|
|
/**
|
|
* Render the item.
|
|
* @param {PaginationRenderItemParams} params The props to spread on a PaginationItem.
|
|
* @returns {ReactNode}
|
|
* @default (item) => <PaginationItem {...item} />
|
|
*/
|
|
renderItem: import_prop_types52.default.func,
|
|
/**
|
|
* The shape of the pagination items.
|
|
* @default 'circular'
|
|
*/
|
|
shape: import_prop_types52.default.oneOf(["circular", "rounded"]),
|
|
/**
|
|
* If `true`, show the first-page button.
|
|
* @default false
|
|
*/
|
|
showFirstButton: import_prop_types52.default.bool,
|
|
/**
|
|
* If `true`, show the last-page button.
|
|
* @default false
|
|
*/
|
|
showLastButton: import_prop_types52.default.bool,
|
|
/**
|
|
* Number of always visible pages before and after the current page.
|
|
* @default 1
|
|
*/
|
|
siblingCount: integerPropType_default,
|
|
/**
|
|
* The size of the component.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types52.default.oneOfType([import_prop_types52.default.oneOf(["small", "medium", "large"]), import_prop_types52.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types52.default.oneOfType([import_prop_types52.default.arrayOf(import_prop_types52.default.oneOfType([import_prop_types52.default.func, import_prop_types52.default.object, import_prop_types52.default.bool])), import_prop_types52.default.func, import_prop_types52.default.object]),
|
|
/**
|
|
* The variant to use.
|
|
* @default 'text'
|
|
*/
|
|
variant: import_prop_types52.default.oneOfType([import_prop_types52.default.oneOf(["outlined", "text"]), import_prop_types52.default.string])
|
|
} : void 0;
|
|
var Pagination_default = Pagination;
|
|
|
|
// node_modules/@mui/material/Radio/Radio.js
|
|
init_extends();
|
|
var React68 = __toESM(require_react());
|
|
var import_prop_types54 = __toESM(require_prop_types());
|
|
var import_colorManipulator9 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/Radio/RadioButtonIcon.js
|
|
init_extends();
|
|
var React65 = __toESM(require_react());
|
|
var import_prop_types53 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/RadioButtonUnchecked.js
|
|
var React63 = __toESM(require_react());
|
|
var import_jsx_runtime71 = __toESM(require_jsx_runtime());
|
|
var RadioButtonUnchecked_default = createSvgIcon((0, import_jsx_runtime71.jsx)("path", {
|
|
d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
|
|
}), "RadioButtonUnchecked");
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/RadioButtonChecked.js
|
|
var React64 = __toESM(require_react());
|
|
var import_jsx_runtime72 = __toESM(require_jsx_runtime());
|
|
var RadioButtonChecked_default = createSvgIcon((0, import_jsx_runtime72.jsx)("path", {
|
|
d: "M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"
|
|
}), "RadioButtonChecked");
|
|
|
|
// node_modules/@mui/material/Radio/RadioButtonIcon.js
|
|
var import_jsx_runtime73 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime74 = __toESM(require_jsx_runtime());
|
|
var RadioButtonIconRoot = styled_default("span", {
|
|
name: "MuiRadioButtonIcon",
|
|
shouldForwardProp: rootShouldForwardProp_default
|
|
})({
|
|
position: "relative",
|
|
display: "flex"
|
|
});
|
|
var RadioButtonIconBackground = styled_default(RadioButtonUnchecked_default, {
|
|
name: "MuiRadioButtonIcon"
|
|
})({
|
|
// Scale applied to prevent dot misalignment in Safari
|
|
transform: "scale(1)"
|
|
});
|
|
var RadioButtonIconDot = styled_default(RadioButtonChecked_default, {
|
|
name: "MuiRadioButtonIcon"
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
left: 0,
|
|
position: "absolute",
|
|
transform: "scale(0)",
|
|
transition: theme.transitions.create("transform", {
|
|
easing: theme.transitions.easing.easeIn,
|
|
duration: theme.transitions.duration.shortest
|
|
})
|
|
}, ownerState.checked && {
|
|
transform: "scale(1)",
|
|
transition: theme.transitions.create("transform", {
|
|
easing: theme.transitions.easing.easeOut,
|
|
duration: theme.transitions.duration.shortest
|
|
})
|
|
}));
|
|
function RadioButtonIcon(props) {
|
|
const {
|
|
checked = false,
|
|
classes = {},
|
|
fontSize
|
|
} = props;
|
|
const ownerState = _extends({}, props, {
|
|
checked
|
|
});
|
|
return (0, import_jsx_runtime74.jsxs)(RadioButtonIconRoot, {
|
|
className: classes.root,
|
|
ownerState,
|
|
children: [(0, import_jsx_runtime73.jsx)(RadioButtonIconBackground, {
|
|
fontSize,
|
|
className: classes.background,
|
|
ownerState
|
|
}), (0, import_jsx_runtime73.jsx)(RadioButtonIconDot, {
|
|
fontSize,
|
|
className: classes.dot,
|
|
ownerState
|
|
})]
|
|
});
|
|
}
|
|
true ? RadioButtonIcon.propTypes = {
|
|
/**
|
|
* If `true`, the component is checked.
|
|
*/
|
|
checked: import_prop_types53.default.bool,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types53.default.object,
|
|
/**
|
|
* The size of the component.
|
|
* `small` is equivalent to the dense radio styling.
|
|
*/
|
|
fontSize: import_prop_types53.default.oneOf(["small", "medium"])
|
|
} : void 0;
|
|
var RadioButtonIcon_default = RadioButtonIcon;
|
|
|
|
// node_modules/@mui/material/RadioGroup/useRadioGroup.js
|
|
var React67 = __toESM(require_react());
|
|
|
|
// node_modules/@mui/material/RadioGroup/RadioGroupContext.js
|
|
var React66 = __toESM(require_react());
|
|
var RadioGroupContext = React66.createContext(void 0);
|
|
if (true) {
|
|
RadioGroupContext.displayName = "RadioGroupContext";
|
|
}
|
|
var RadioGroupContext_default = RadioGroupContext;
|
|
|
|
// node_modules/@mui/material/RadioGroup/useRadioGroup.js
|
|
function useRadioGroup() {
|
|
return React67.useContext(RadioGroupContext_default);
|
|
}
|
|
|
|
// node_modules/@mui/material/Radio/radioClasses.js
|
|
function getRadioUtilityClass(slot) {
|
|
return generateUtilityClass("MuiRadio", slot);
|
|
}
|
|
var radioClasses = generateUtilityClasses("MuiRadio", ["root", "checked", "disabled", "colorPrimary", "colorSecondary", "sizeSmall"]);
|
|
var radioClasses_default = radioClasses;
|
|
|
|
// node_modules/@mui/material/Radio/Radio.js
|
|
var import_jsx_runtime75 = __toESM(require_jsx_runtime());
|
|
var _excluded53 = ["checked", "checkedIcon", "color", "icon", "name", "onChange", "size", "className"];
|
|
var useUtilityClasses45 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
color,
|
|
size
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `color${capitalize_default(color)}`, size !== "medium" && `size${capitalize_default(size)}`]
|
|
};
|
|
return _extends({}, classes, composeClasses(slots, getRadioUtilityClass, classes));
|
|
};
|
|
var RadioRoot = styled_default(SwitchBase_default, {
|
|
shouldForwardProp: (prop) => rootShouldForwardProp_default(prop) || prop === "classes",
|
|
name: "MuiRadio",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.size !== "medium" && styles3[`size${capitalize_default(ownerState.size)}`], styles3[`color${capitalize_default(ownerState.color)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
color: (theme.vars || theme).palette.text.secondary
|
|
}, !ownerState.disableRipple && {
|
|
"&:hover": {
|
|
backgroundColor: theme.vars ? `rgba(${ownerState.color === "default" ? theme.vars.palette.action.activeChannel : theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : (0, import_colorManipulator9.alpha)(ownerState.color === "default" ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: "transparent"
|
|
}
|
|
}
|
|
}, ownerState.color !== "default" && {
|
|
[`&.${radioClasses_default.checked}`]: {
|
|
color: (theme.vars || theme).palette[ownerState.color].main
|
|
}
|
|
}, {
|
|
[`&.${radioClasses_default.disabled}`]: {
|
|
color: (theme.vars || theme).palette.action.disabled
|
|
}
|
|
}));
|
|
function areEqualValues(a, b) {
|
|
if (typeof b === "object" && b !== null) {
|
|
return a === b;
|
|
}
|
|
return String(a) === String(b);
|
|
}
|
|
var defaultCheckedIcon = (0, import_jsx_runtime75.jsx)(RadioButtonIcon_default, {
|
|
checked: true
|
|
});
|
|
var defaultIcon = (0, import_jsx_runtime75.jsx)(RadioButtonIcon_default, {});
|
|
var Radio = React68.forwardRef(function Radio2(inProps, ref) {
|
|
var _defaultIcon$props$fo, _defaultCheckedIcon$p;
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiRadio"
|
|
});
|
|
const {
|
|
checked: checkedProp,
|
|
checkedIcon = defaultCheckedIcon,
|
|
color = "primary",
|
|
icon = defaultIcon,
|
|
name: nameProp,
|
|
onChange: onChangeProp,
|
|
size = "medium",
|
|
className
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded53);
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
size
|
|
});
|
|
const classes = useUtilityClasses45(ownerState);
|
|
const radioGroup = useRadioGroup();
|
|
let checked = checkedProp;
|
|
const onChange = createChainedFunction_default(onChangeProp, radioGroup && radioGroup.onChange);
|
|
let name = nameProp;
|
|
if (radioGroup) {
|
|
if (typeof checked === "undefined") {
|
|
checked = areEqualValues(radioGroup.value, props.value);
|
|
}
|
|
if (typeof name === "undefined") {
|
|
name = radioGroup.name;
|
|
}
|
|
}
|
|
return (0, import_jsx_runtime75.jsx)(RadioRoot, _extends({
|
|
type: "radio",
|
|
icon: React68.cloneElement(icon, {
|
|
fontSize: (_defaultIcon$props$fo = defaultIcon.props.fontSize) != null ? _defaultIcon$props$fo : size
|
|
}),
|
|
checkedIcon: React68.cloneElement(checkedIcon, {
|
|
fontSize: (_defaultCheckedIcon$p = defaultCheckedIcon.props.fontSize) != null ? _defaultCheckedIcon$p : size
|
|
}),
|
|
ownerState,
|
|
classes,
|
|
name,
|
|
checked,
|
|
onChange,
|
|
ref,
|
|
className: clsx_default(classes.root, className)
|
|
}, other));
|
|
});
|
|
true ? Radio.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* If `true`, the component is checked.
|
|
*/
|
|
checked: import_prop_types54.default.bool,
|
|
/**
|
|
* The icon to display when the component is checked.
|
|
* @default <RadioButtonIcon checked />
|
|
*/
|
|
checkedIcon: import_prop_types54.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types54.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types54.default.string,
|
|
/**
|
|
* The color of the component.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'primary'
|
|
*/
|
|
color: import_prop_types54.default.oneOfType([import_prop_types54.default.oneOf(["default", "primary", "secondary", "error", "info", "success", "warning"]), import_prop_types54.default.string]),
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
*/
|
|
disabled: import_prop_types54.default.bool,
|
|
/**
|
|
* If `true`, the ripple effect is disabled.
|
|
* @default false
|
|
*/
|
|
disableRipple: import_prop_types54.default.bool,
|
|
/**
|
|
* The icon to display when the component is unchecked.
|
|
* @default <RadioButtonIcon />
|
|
*/
|
|
icon: import_prop_types54.default.node,
|
|
/**
|
|
* The id of the `input` element.
|
|
*/
|
|
id: import_prop_types54.default.string,
|
|
/**
|
|
* [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.
|
|
*/
|
|
inputProps: import_prop_types54.default.object,
|
|
/**
|
|
* Pass a ref to the `input` element.
|
|
*/
|
|
inputRef: refType_default,
|
|
/**
|
|
* Name attribute of the `input` element.
|
|
*/
|
|
name: import_prop_types54.default.string,
|
|
/**
|
|
* Callback fired when the state is changed.
|
|
*
|
|
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
* You can pull out the new value by accessing `event.target.value` (string).
|
|
* You can pull out the new checked state by accessing `event.target.checked` (boolean).
|
|
*/
|
|
onChange: import_prop_types54.default.func,
|
|
/**
|
|
* If `true`, the `input` element is required.
|
|
* @default false
|
|
*/
|
|
required: import_prop_types54.default.bool,
|
|
/**
|
|
* The size of the component.
|
|
* `small` is equivalent to the dense radio styling.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types54.default.oneOfType([import_prop_types54.default.oneOf(["medium", "small"]), import_prop_types54.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types54.default.oneOfType([import_prop_types54.default.arrayOf(import_prop_types54.default.oneOfType([import_prop_types54.default.func, import_prop_types54.default.object, import_prop_types54.default.bool])), import_prop_types54.default.func, import_prop_types54.default.object]),
|
|
/**
|
|
* The value of the component. The DOM API casts this to a string.
|
|
*/
|
|
value: import_prop_types54.default.any
|
|
} : void 0;
|
|
var Radio_default = Radio;
|
|
|
|
// node_modules/@mui/material/RadioGroup/RadioGroup.js
|
|
init_extends();
|
|
var React69 = __toESM(require_react());
|
|
var import_prop_types55 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/RadioGroup/radioGroupClasses.js
|
|
function getRadioGroupUtilityClass(slot) {
|
|
return generateUtilityClass("MuiRadioGroup", slot);
|
|
}
|
|
var radioGroupClasses = generateUtilityClasses("MuiRadioGroup", ["root", "row", "error"]);
|
|
var radioGroupClasses_default = radioGroupClasses;
|
|
|
|
// node_modules/@mui/material/RadioGroup/RadioGroup.js
|
|
var import_jsx_runtime76 = __toESM(require_jsx_runtime());
|
|
var _excluded54 = ["actions", "children", "className", "defaultValue", "name", "onChange", "value"];
|
|
var useUtilityClasses46 = (props) => {
|
|
const {
|
|
classes,
|
|
row,
|
|
error
|
|
} = props;
|
|
const slots = {
|
|
root: ["root", row && "row", error && "error"]
|
|
};
|
|
return composeClasses(slots, getRadioGroupUtilityClass, classes);
|
|
};
|
|
var RadioGroup = React69.forwardRef(function RadioGroup2(props, ref) {
|
|
const {
|
|
// private
|
|
// eslint-disable-next-line react/prop-types
|
|
actions,
|
|
children,
|
|
className,
|
|
defaultValue,
|
|
name: nameProp,
|
|
onChange,
|
|
value: valueProp
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded54);
|
|
const rootRef = React69.useRef(null);
|
|
const classes = useUtilityClasses46(props);
|
|
const [value, setValueState] = useControlled_default({
|
|
controlled: valueProp,
|
|
default: defaultValue,
|
|
name: "RadioGroup"
|
|
});
|
|
React69.useImperativeHandle(actions, () => ({
|
|
focus: () => {
|
|
let input = rootRef.current.querySelector("input:not(:disabled):checked");
|
|
if (!input) {
|
|
input = rootRef.current.querySelector("input:not(:disabled)");
|
|
}
|
|
if (input) {
|
|
input.focus();
|
|
}
|
|
}
|
|
}), []);
|
|
const handleRef = useForkRef_default(ref, rootRef);
|
|
const name = useId_default(nameProp);
|
|
const contextValue = React69.useMemo(() => ({
|
|
name,
|
|
onChange(event) {
|
|
setValueState(event.target.value);
|
|
if (onChange) {
|
|
onChange(event, event.target.value);
|
|
}
|
|
},
|
|
value
|
|
}), [name, onChange, setValueState, value]);
|
|
return (0, import_jsx_runtime76.jsx)(RadioGroupContext_default.Provider, {
|
|
value: contextValue,
|
|
children: (0, import_jsx_runtime76.jsx)(FormGroup_default, _extends({
|
|
role: "radiogroup",
|
|
ref: handleRef,
|
|
className: clsx_default(classes.root, className)
|
|
}, other, {
|
|
children
|
|
}))
|
|
});
|
|
});
|
|
true ? RadioGroup.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types55.default.node,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types55.default.string,
|
|
/**
|
|
* The default value. Use when the component is not controlled.
|
|
*/
|
|
defaultValue: import_prop_types55.default.any,
|
|
/**
|
|
* The name used to reference the value of the control.
|
|
* If you don't provide this prop, it falls back to a randomly generated name.
|
|
*/
|
|
name: import_prop_types55.default.string,
|
|
/**
|
|
* Callback fired when a radio button is selected.
|
|
*
|
|
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
* @param {string} value The value of the selected radio button.
|
|
* You can pull out the new value by accessing `event.target.value` (string).
|
|
*/
|
|
onChange: import_prop_types55.default.func,
|
|
/**
|
|
* Value of the selected radio button. The DOM API casts this to a string.
|
|
*/
|
|
value: import_prop_types55.default.any
|
|
} : void 0;
|
|
var RadioGroup_default = RadioGroup;
|
|
|
|
// node_modules/@mui/material/Rating/Rating.js
|
|
init_extends();
|
|
var React72 = __toESM(require_react());
|
|
var import_prop_types56 = __toESM(require_prop_types());
|
|
init_clamp();
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/Star.js
|
|
var React70 = __toESM(require_react());
|
|
var import_jsx_runtime77 = __toESM(require_jsx_runtime());
|
|
var Star_default = createSvgIcon((0, import_jsx_runtime77.jsx)("path", {
|
|
d: "M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"
|
|
}), "Star");
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/StarBorder.js
|
|
var React71 = __toESM(require_react());
|
|
var import_jsx_runtime78 = __toESM(require_jsx_runtime());
|
|
var StarBorder_default = createSvgIcon((0, import_jsx_runtime78.jsx)("path", {
|
|
d: "M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"
|
|
}), "StarBorder");
|
|
|
|
// node_modules/@mui/material/Rating/ratingClasses.js
|
|
function getRatingUtilityClass(slot) {
|
|
return generateUtilityClass("MuiRating", slot);
|
|
}
|
|
var ratingClasses = generateUtilityClasses("MuiRating", ["root", "sizeSmall", "sizeMedium", "sizeLarge", "readOnly", "disabled", "focusVisible", "visuallyHidden", "pristine", "label", "labelEmptyValueActive", "icon", "iconEmpty", "iconFilled", "iconHover", "iconFocus", "iconActive", "decimal"]);
|
|
var ratingClasses_default = ratingClasses;
|
|
|
|
// node_modules/@mui/material/Rating/Rating.js
|
|
var import_jsx_runtime79 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime80 = __toESM(require_jsx_runtime());
|
|
var _excluded55 = ["value"];
|
|
var _excluded213 = ["className", "defaultValue", "disabled", "emptyIcon", "emptyLabelText", "getLabelText", "highlightSelectedOnly", "icon", "IconContainerComponent", "max", "name", "onChange", "onChangeActive", "onMouseLeave", "onMouseMove", "precision", "readOnly", "size", "value"];
|
|
function getDecimalPrecision(num) {
|
|
const decimalPart = num.toString().split(".")[1];
|
|
return decimalPart ? decimalPart.length : 0;
|
|
}
|
|
function roundValueToPrecision(value, precision) {
|
|
if (value == null) {
|
|
return value;
|
|
}
|
|
const nearest = Math.round(value / precision) * precision;
|
|
return Number(nearest.toFixed(getDecimalPrecision(precision)));
|
|
}
|
|
var useUtilityClasses47 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
size,
|
|
readOnly,
|
|
disabled,
|
|
emptyValueFocused,
|
|
focusVisible
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `size${capitalize_default(size)}`, disabled && "disabled", focusVisible && "focusVisible", readOnly && "readOnly"],
|
|
label: ["label", "pristine"],
|
|
labelEmptyValue: [emptyValueFocused && "labelEmptyValueActive"],
|
|
icon: ["icon"],
|
|
iconEmpty: ["iconEmpty"],
|
|
iconFilled: ["iconFilled"],
|
|
iconHover: ["iconHover"],
|
|
iconFocus: ["iconFocus"],
|
|
iconActive: ["iconActive"],
|
|
decimal: ["decimal"],
|
|
visuallyHidden: ["visuallyHidden"]
|
|
};
|
|
return composeClasses(slots, getRatingUtilityClass, classes);
|
|
};
|
|
var RatingRoot = styled_default("span", {
|
|
name: "MuiRating",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [{
|
|
[`& .${ratingClasses_default.visuallyHidden}`]: styles3.visuallyHidden
|
|
}, styles3.root, styles3[`size${capitalize_default(ownerState.size)}`], ownerState.readOnly && styles3.readOnly];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
display: "inline-flex",
|
|
// Required to position the pristine input absolutely
|
|
position: "relative",
|
|
fontSize: theme.typography.pxToRem(24),
|
|
color: "#faaf00",
|
|
cursor: "pointer",
|
|
textAlign: "left",
|
|
width: "min-content",
|
|
WebkitTapHighlightColor: "transparent",
|
|
[`&.${ratingClasses_default.disabled}`]: {
|
|
opacity: (theme.vars || theme).palette.action.disabledOpacity,
|
|
pointerEvents: "none"
|
|
},
|
|
[`&.${ratingClasses_default.focusVisible} .${ratingClasses_default.iconActive}`]: {
|
|
outline: "1px solid #999"
|
|
},
|
|
[`& .${ratingClasses_default.visuallyHidden}`]: visuallyHidden_default
|
|
}, ownerState.size === "small" && {
|
|
fontSize: theme.typography.pxToRem(18)
|
|
}, ownerState.size === "large" && {
|
|
fontSize: theme.typography.pxToRem(30)
|
|
}, ownerState.readOnly && {
|
|
pointerEvents: "none"
|
|
}));
|
|
var RatingLabel = styled_default("label", {
|
|
name: "MuiRating",
|
|
slot: "Label",
|
|
overridesResolver: ({
|
|
ownerState
|
|
}, styles3) => [styles3.label, ownerState.emptyValueFocused && styles3.labelEmptyValueActive]
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
cursor: "inherit"
|
|
}, ownerState.emptyValueFocused && {
|
|
top: 0,
|
|
bottom: 0,
|
|
position: "absolute",
|
|
outline: "1px solid #999",
|
|
width: "100%"
|
|
}));
|
|
var RatingIcon = styled_default("span", {
|
|
name: "MuiRating",
|
|
slot: "Icon",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.icon, ownerState.iconEmpty && styles3.iconEmpty, ownerState.iconFilled && styles3.iconFilled, ownerState.iconHover && styles3.iconHover, ownerState.iconFocus && styles3.iconFocus, ownerState.iconActive && styles3.iconActive];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
// Fit wrapper to actual icon size.
|
|
display: "flex",
|
|
transition: theme.transitions.create("transform", {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
// Fix mouseLeave issue.
|
|
// https://github.com/facebook/react/issues/4492
|
|
pointerEvents: "none"
|
|
}, ownerState.iconActive && {
|
|
transform: "scale(1.2)"
|
|
}, ownerState.iconEmpty && {
|
|
color: (theme.vars || theme).palette.action.disabled
|
|
}));
|
|
var RatingDecimal = styled_default("span", {
|
|
name: "MuiRating",
|
|
slot: "Decimal",
|
|
shouldForwardProp: (prop) => slotShouldForwardProp_default(prop) && prop !== "iconActive",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
iconActive
|
|
} = props;
|
|
return [styles3.decimal, iconActive && styles3.iconActive];
|
|
}
|
|
})(({
|
|
iconActive
|
|
}) => _extends({
|
|
position: "relative"
|
|
}, iconActive && {
|
|
transform: "scale(1.2)"
|
|
}));
|
|
function IconContainer(props) {
|
|
const other = _objectWithoutPropertiesLoose(props, _excluded55);
|
|
return (0, import_jsx_runtime79.jsx)("span", _extends({}, other));
|
|
}
|
|
true ? IconContainer.propTypes = {
|
|
value: import_prop_types56.default.number.isRequired
|
|
} : void 0;
|
|
function RatingItem(props) {
|
|
const {
|
|
classes,
|
|
disabled,
|
|
emptyIcon,
|
|
focus,
|
|
getLabelText,
|
|
highlightSelectedOnly,
|
|
hover,
|
|
icon,
|
|
IconContainerComponent,
|
|
isActive,
|
|
itemValue,
|
|
labelProps,
|
|
name,
|
|
onBlur,
|
|
onChange,
|
|
onClick,
|
|
onFocus,
|
|
readOnly,
|
|
ownerState,
|
|
ratingValue,
|
|
ratingValueRounded
|
|
} = props;
|
|
const isFilled = highlightSelectedOnly ? itemValue === ratingValue : itemValue <= ratingValue;
|
|
const isHovered = itemValue <= hover;
|
|
const isFocused = itemValue <= focus;
|
|
const isChecked = itemValue === ratingValueRounded;
|
|
const id = useId_default();
|
|
const container = (0, import_jsx_runtime79.jsx)(RatingIcon, {
|
|
as: IconContainerComponent,
|
|
value: itemValue,
|
|
className: clsx_default(classes.icon, isFilled ? classes.iconFilled : classes.iconEmpty, isHovered && classes.iconHover, isFocused && classes.iconFocus, isActive && classes.iconActive),
|
|
ownerState: _extends({}, ownerState, {
|
|
iconEmpty: !isFilled,
|
|
iconFilled: isFilled,
|
|
iconHover: isHovered,
|
|
iconFocus: isFocused,
|
|
iconActive: isActive
|
|
}),
|
|
children: emptyIcon && !isFilled ? emptyIcon : icon
|
|
});
|
|
if (readOnly) {
|
|
return (0, import_jsx_runtime79.jsx)("span", _extends({}, labelProps, {
|
|
children: container
|
|
}));
|
|
}
|
|
return (0, import_jsx_runtime80.jsxs)(React72.Fragment, {
|
|
children: [(0, import_jsx_runtime80.jsxs)(RatingLabel, _extends({
|
|
ownerState: _extends({}, ownerState, {
|
|
emptyValueFocused: void 0
|
|
}),
|
|
htmlFor: id
|
|
}, labelProps, {
|
|
children: [container, (0, import_jsx_runtime79.jsx)("span", {
|
|
className: classes.visuallyHidden,
|
|
children: getLabelText(itemValue)
|
|
})]
|
|
})), (0, import_jsx_runtime79.jsx)("input", {
|
|
className: classes.visuallyHidden,
|
|
onFocus,
|
|
onBlur,
|
|
onChange,
|
|
onClick,
|
|
disabled,
|
|
value: itemValue,
|
|
id,
|
|
type: "radio",
|
|
name,
|
|
checked: isChecked
|
|
})]
|
|
});
|
|
}
|
|
true ? RatingItem.propTypes = {
|
|
classes: import_prop_types56.default.object.isRequired,
|
|
disabled: import_prop_types56.default.bool.isRequired,
|
|
emptyIcon: import_prop_types56.default.node,
|
|
focus: import_prop_types56.default.number.isRequired,
|
|
getLabelText: import_prop_types56.default.func.isRequired,
|
|
highlightSelectedOnly: import_prop_types56.default.bool.isRequired,
|
|
hover: import_prop_types56.default.number.isRequired,
|
|
icon: import_prop_types56.default.node,
|
|
IconContainerComponent: import_prop_types56.default.elementType.isRequired,
|
|
isActive: import_prop_types56.default.bool.isRequired,
|
|
itemValue: import_prop_types56.default.number.isRequired,
|
|
labelProps: import_prop_types56.default.object,
|
|
name: import_prop_types56.default.string,
|
|
onBlur: import_prop_types56.default.func.isRequired,
|
|
onChange: import_prop_types56.default.func.isRequired,
|
|
onClick: import_prop_types56.default.func.isRequired,
|
|
onFocus: import_prop_types56.default.func.isRequired,
|
|
ownerState: import_prop_types56.default.object.isRequired,
|
|
ratingValue: import_prop_types56.default.number,
|
|
ratingValueRounded: import_prop_types56.default.number,
|
|
readOnly: import_prop_types56.default.bool.isRequired
|
|
} : void 0;
|
|
var defaultIcon2 = (0, import_jsx_runtime79.jsx)(Star_default, {
|
|
fontSize: "inherit"
|
|
});
|
|
var defaultEmptyIcon = (0, import_jsx_runtime79.jsx)(StarBorder_default, {
|
|
fontSize: "inherit"
|
|
});
|
|
function defaultLabelText(value) {
|
|
return `${value} Star${value !== 1 ? "s" : ""}`;
|
|
}
|
|
var Rating = React72.forwardRef(function Rating2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
name: "MuiRating",
|
|
props: inProps
|
|
});
|
|
const {
|
|
className,
|
|
defaultValue = null,
|
|
disabled = false,
|
|
emptyIcon = defaultEmptyIcon,
|
|
emptyLabelText = "Empty",
|
|
getLabelText = defaultLabelText,
|
|
highlightSelectedOnly = false,
|
|
icon = defaultIcon2,
|
|
IconContainerComponent = IconContainer,
|
|
max = 5,
|
|
name: nameProp,
|
|
onChange,
|
|
onChangeActive,
|
|
onMouseLeave,
|
|
onMouseMove,
|
|
precision = 1,
|
|
readOnly = false,
|
|
size = "medium",
|
|
value: valueProp
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded213);
|
|
const name = useId_default(nameProp);
|
|
const [valueDerived, setValueState] = useControlled_default({
|
|
controlled: valueProp,
|
|
default: defaultValue,
|
|
name: "Rating"
|
|
});
|
|
const valueRounded = roundValueToPrecision(valueDerived, precision);
|
|
const isRtl = useRtl();
|
|
const [{
|
|
hover,
|
|
focus
|
|
}, setState] = React72.useState({
|
|
hover: -1,
|
|
focus: -1
|
|
});
|
|
let value = valueRounded;
|
|
if (hover !== -1) {
|
|
value = hover;
|
|
}
|
|
if (focus !== -1) {
|
|
value = focus;
|
|
}
|
|
const {
|
|
isFocusVisibleRef,
|
|
onBlur: handleBlurVisible,
|
|
onFocus: handleFocusVisible,
|
|
ref: focusVisibleRef
|
|
} = useIsFocusVisible_default();
|
|
const [focusVisible, setFocusVisible] = React72.useState(false);
|
|
const rootRef = React72.useRef();
|
|
const handleRef = useForkRef_default(focusVisibleRef, rootRef, ref);
|
|
const handleMouseMove = (event) => {
|
|
if (onMouseMove) {
|
|
onMouseMove(event);
|
|
}
|
|
const rootNode = rootRef.current;
|
|
const {
|
|
right,
|
|
left,
|
|
width: containerWidth
|
|
} = rootNode.getBoundingClientRect();
|
|
let percent;
|
|
if (isRtl) {
|
|
percent = (right - event.clientX) / containerWidth;
|
|
} else {
|
|
percent = (event.clientX - left) / containerWidth;
|
|
}
|
|
let newHover = roundValueToPrecision(max * percent + precision / 2, precision);
|
|
newHover = clamp_default(newHover, precision, max);
|
|
setState((prev) => prev.hover === newHover && prev.focus === newHover ? prev : {
|
|
hover: newHover,
|
|
focus: newHover
|
|
});
|
|
setFocusVisible(false);
|
|
if (onChangeActive && hover !== newHover) {
|
|
onChangeActive(event, newHover);
|
|
}
|
|
};
|
|
const handleMouseLeave = (event) => {
|
|
if (onMouseLeave) {
|
|
onMouseLeave(event);
|
|
}
|
|
const newHover = -1;
|
|
setState({
|
|
hover: newHover,
|
|
focus: newHover
|
|
});
|
|
if (onChangeActive && hover !== newHover) {
|
|
onChangeActive(event, newHover);
|
|
}
|
|
};
|
|
const handleChange = (event) => {
|
|
let newValue = event.target.value === "" ? null : parseFloat(event.target.value);
|
|
if (hover !== -1) {
|
|
newValue = hover;
|
|
}
|
|
setValueState(newValue);
|
|
if (onChange) {
|
|
onChange(event, newValue);
|
|
}
|
|
};
|
|
const handleClear = (event) => {
|
|
if (event.clientX === 0 && event.clientY === 0) {
|
|
return;
|
|
}
|
|
setState({
|
|
hover: -1,
|
|
focus: -1
|
|
});
|
|
setValueState(null);
|
|
if (onChange && parseFloat(event.target.value) === valueRounded) {
|
|
onChange(event, null);
|
|
}
|
|
};
|
|
const handleFocus = (event) => {
|
|
handleFocusVisible(event);
|
|
if (isFocusVisibleRef.current === true) {
|
|
setFocusVisible(true);
|
|
}
|
|
const newFocus = parseFloat(event.target.value);
|
|
setState((prev) => ({
|
|
hover: prev.hover,
|
|
focus: newFocus
|
|
}));
|
|
};
|
|
const handleBlur = (event) => {
|
|
if (hover !== -1) {
|
|
return;
|
|
}
|
|
handleBlurVisible(event);
|
|
if (isFocusVisibleRef.current === false) {
|
|
setFocusVisible(false);
|
|
}
|
|
const newFocus = -1;
|
|
setState((prev) => ({
|
|
hover: prev.hover,
|
|
focus: newFocus
|
|
}));
|
|
};
|
|
const [emptyValueFocused, setEmptyValueFocused] = React72.useState(false);
|
|
const ownerState = _extends({}, props, {
|
|
defaultValue,
|
|
disabled,
|
|
emptyIcon,
|
|
emptyLabelText,
|
|
emptyValueFocused,
|
|
focusVisible,
|
|
getLabelText,
|
|
icon,
|
|
IconContainerComponent,
|
|
max,
|
|
precision,
|
|
readOnly,
|
|
size
|
|
});
|
|
const classes = useUtilityClasses47(ownerState);
|
|
return (0, import_jsx_runtime80.jsxs)(RatingRoot, _extends({
|
|
ref: handleRef,
|
|
onMouseMove: handleMouseMove,
|
|
onMouseLeave: handleMouseLeave,
|
|
className: clsx_default(classes.root, className, readOnly && "MuiRating-readOnly"),
|
|
ownerState,
|
|
role: readOnly ? "img" : null,
|
|
"aria-label": readOnly ? getLabelText(value) : null
|
|
}, other, {
|
|
children: [Array.from(new Array(max)).map((_2, index) => {
|
|
const itemValue = index + 1;
|
|
const ratingItemProps = {
|
|
classes,
|
|
disabled,
|
|
emptyIcon,
|
|
focus,
|
|
getLabelText,
|
|
highlightSelectedOnly,
|
|
hover,
|
|
icon,
|
|
IconContainerComponent,
|
|
name,
|
|
onBlur: handleBlur,
|
|
onChange: handleChange,
|
|
onClick: handleClear,
|
|
onFocus: handleFocus,
|
|
ratingValue: value,
|
|
ratingValueRounded: valueRounded,
|
|
readOnly,
|
|
ownerState
|
|
};
|
|
const isActive = itemValue === Math.ceil(value) && (hover !== -1 || focus !== -1);
|
|
if (precision < 1) {
|
|
const items = Array.from(new Array(1 / precision));
|
|
return (0, import_jsx_runtime79.jsx)(RatingDecimal, {
|
|
className: clsx_default(classes.decimal, isActive && classes.iconActive),
|
|
ownerState,
|
|
iconActive: isActive,
|
|
children: items.map(($, indexDecimal) => {
|
|
const itemDecimalValue = roundValueToPrecision(itemValue - 1 + (indexDecimal + 1) * precision, precision);
|
|
return (0, import_jsx_runtime79.jsx)(RatingItem, _extends({}, ratingItemProps, {
|
|
// The icon is already displayed as active
|
|
isActive: false,
|
|
itemValue: itemDecimalValue,
|
|
labelProps: {
|
|
style: items.length - 1 === indexDecimal ? {} : {
|
|
width: itemDecimalValue === value ? `${(indexDecimal + 1) * precision * 100}%` : "0%",
|
|
overflow: "hidden",
|
|
position: "absolute"
|
|
}
|
|
}
|
|
}), itemDecimalValue);
|
|
})
|
|
}, itemValue);
|
|
}
|
|
return (0, import_jsx_runtime79.jsx)(RatingItem, _extends({}, ratingItemProps, {
|
|
isActive,
|
|
itemValue
|
|
}), itemValue);
|
|
}), !readOnly && !disabled && (0, import_jsx_runtime80.jsxs)(RatingLabel, {
|
|
className: clsx_default(classes.label, classes.labelEmptyValue),
|
|
ownerState,
|
|
children: [(0, import_jsx_runtime79.jsx)("input", {
|
|
className: classes.visuallyHidden,
|
|
value: "",
|
|
id: `${name}-empty`,
|
|
type: "radio",
|
|
name,
|
|
checked: valueRounded == null,
|
|
onFocus: () => setEmptyValueFocused(true),
|
|
onBlur: () => setEmptyValueFocused(false),
|
|
onChange: handleChange
|
|
}), (0, import_jsx_runtime79.jsx)("span", {
|
|
className: classes.visuallyHidden,
|
|
children: emptyLabelText
|
|
})]
|
|
})]
|
|
}));
|
|
});
|
|
true ? Rating.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types56.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types56.default.string,
|
|
/**
|
|
* The default value. Use when the component is not controlled.
|
|
* @default null
|
|
*/
|
|
defaultValue: import_prop_types56.default.number,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types56.default.bool,
|
|
/**
|
|
* The icon to display when empty.
|
|
* @default <StarBorder fontSize="inherit" />
|
|
*/
|
|
emptyIcon: import_prop_types56.default.node,
|
|
/**
|
|
* The label read when the rating input is empty.
|
|
* @default 'Empty'
|
|
*/
|
|
emptyLabelText: import_prop_types56.default.node,
|
|
/**
|
|
* Accepts a function which returns a string value that provides a user-friendly name for the current value of the rating.
|
|
* This is important for screen reader users.
|
|
*
|
|
* For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).
|
|
* @param {number} value The rating label's value to format.
|
|
* @returns {string}
|
|
* @default function defaultLabelText(value) {
|
|
* return `${value} Star${value !== 1 ? 's' : ''}`;
|
|
* }
|
|
*/
|
|
getLabelText: import_prop_types56.default.func,
|
|
/**
|
|
* If `true`, only the selected icon will be highlighted.
|
|
* @default false
|
|
*/
|
|
highlightSelectedOnly: import_prop_types56.default.bool,
|
|
/**
|
|
* The icon to display.
|
|
* @default <Star fontSize="inherit" />
|
|
*/
|
|
icon: import_prop_types56.default.node,
|
|
/**
|
|
* The component containing the icon.
|
|
* @default function IconContainer(props) {
|
|
* const { value, ...other } = props;
|
|
* return <span {...other} />;
|
|
* }
|
|
*/
|
|
IconContainerComponent: import_prop_types56.default.elementType,
|
|
/**
|
|
* Maximum rating.
|
|
* @default 5
|
|
*/
|
|
max: import_prop_types56.default.number,
|
|
/**
|
|
* The name attribute of the radio `input` elements.
|
|
* This input `name` should be unique within the page.
|
|
* Being unique within a form is insufficient since the `name` is used to generated IDs.
|
|
*/
|
|
name: import_prop_types56.default.string,
|
|
/**
|
|
* Callback fired when the value changes.
|
|
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
* @param {number|null} value The new value.
|
|
*/
|
|
onChange: import_prop_types56.default.func,
|
|
/**
|
|
* Callback function that is fired when the hover state changes.
|
|
* @param {React.SyntheticEvent} event The event source of the callback.
|
|
* @param {number} value The new value.
|
|
*/
|
|
onChangeActive: import_prop_types56.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onMouseLeave: import_prop_types56.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onMouseMove: import_prop_types56.default.func,
|
|
/**
|
|
* The minimum increment value change allowed.
|
|
* @default 1
|
|
*/
|
|
precision: chainPropTypes(import_prop_types56.default.number, (props) => {
|
|
if (props.precision < 0.1) {
|
|
return new Error(["MUI: The prop `precision` should be above 0.1.", "A value below this limit has an imperceptible impact."].join("\n"));
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* Removes all hover effects and pointer events.
|
|
* @default false
|
|
*/
|
|
readOnly: import_prop_types56.default.bool,
|
|
/**
|
|
* The size of the component.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types56.default.oneOfType([import_prop_types56.default.oneOf(["small", "medium", "large"]), import_prop_types56.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types56.default.oneOfType([import_prop_types56.default.arrayOf(import_prop_types56.default.oneOfType([import_prop_types56.default.func, import_prop_types56.default.object, import_prop_types56.default.bool])), import_prop_types56.default.func, import_prop_types56.default.object]),
|
|
/**
|
|
* The rating value.
|
|
*/
|
|
value: import_prop_types56.default.number
|
|
} : void 0;
|
|
var Rating_default = Rating;
|
|
|
|
// node_modules/@mui/material/ScopedCssBaseline/ScopedCssBaseline.js
|
|
init_extends();
|
|
var React73 = __toESM(require_react());
|
|
var import_prop_types57 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/ScopedCssBaseline/scopedCssBaselineClasses.js
|
|
function getScopedCssBaselineUtilityClass(slot) {
|
|
return generateUtilityClass("MuiScopedCssBaseline", slot);
|
|
}
|
|
var scopedCssBaselineClasses = generateUtilityClasses("MuiScopedCssBaseline", ["root"]);
|
|
var scopedCssBaselineClasses_default = scopedCssBaselineClasses;
|
|
|
|
// node_modules/@mui/material/ScopedCssBaseline/ScopedCssBaseline.js
|
|
var import_jsx_runtime81 = __toESM(require_jsx_runtime());
|
|
var _excluded56 = ["className", "component", "enableColorScheme"];
|
|
var useUtilityClasses48 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getScopedCssBaselineUtilityClass, classes);
|
|
};
|
|
var ScopedCssBaselineRoot = styled_default("div", {
|
|
name: "MuiScopedCssBaseline",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
const colorSchemeStyles = {};
|
|
if (ownerState.enableColorScheme && theme.colorSchemes) {
|
|
Object.entries(theme.colorSchemes).forEach(([key, scheme]) => {
|
|
var _scheme$palette;
|
|
colorSchemeStyles[`&${theme.getColorSchemeSelector(key).replace(/\s*&/, "")}`] = {
|
|
colorScheme: (_scheme$palette = scheme.palette) == null ? void 0 : _scheme$palette.mode
|
|
};
|
|
});
|
|
}
|
|
return _extends({}, html(theme, ownerState.enableColorScheme), body(theme), {
|
|
"& *, & *::before, & *::after": {
|
|
boxSizing: "inherit"
|
|
},
|
|
"& strong, & b": {
|
|
fontWeight: theme.typography.fontWeightBold
|
|
}
|
|
}, colorSchemeStyles);
|
|
});
|
|
var ScopedCssBaseline = React73.forwardRef(function ScopedCssBaseline2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiScopedCssBaseline"
|
|
});
|
|
const {
|
|
className,
|
|
component = "div"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded56);
|
|
const ownerState = _extends({}, props, {
|
|
component
|
|
});
|
|
const classes = useUtilityClasses48(ownerState);
|
|
return (0, import_jsx_runtime81.jsx)(ScopedCssBaselineRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other));
|
|
});
|
|
true ? ScopedCssBaseline.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types57.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types57.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types57.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types57.default.elementType,
|
|
/**
|
|
* Enable `color-scheme` CSS property to use `theme.palette.mode`.
|
|
* For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme
|
|
* For browser support, check out https://caniuse.com/?search=color-scheme
|
|
*/
|
|
enableColorScheme: import_prop_types57.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types57.default.oneOfType([import_prop_types57.default.arrayOf(import_prop_types57.default.oneOfType([import_prop_types57.default.func, import_prop_types57.default.object, import_prop_types57.default.bool])), import_prop_types57.default.func, import_prop_types57.default.object])
|
|
} : void 0;
|
|
var ScopedCssBaseline_default = ScopedCssBaseline;
|
|
|
|
// node_modules/@mui/material/Slider/Slider.js
|
|
init_extends();
|
|
var React76 = __toESM(require_react());
|
|
var import_prop_types59 = __toESM(require_prop_types());
|
|
var import_colorManipulator10 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/Slider/useSlider.js
|
|
init_extends();
|
|
var React74 = __toESM(require_react());
|
|
|
|
// node_modules/@mui/material/utils/areArraysEqual.js
|
|
function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {
|
|
return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));
|
|
}
|
|
var areArraysEqual_default = areArraysEqual;
|
|
|
|
// node_modules/@mui/material/Slider/useSlider.js
|
|
var INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;
|
|
function asc(a, b) {
|
|
return a - b;
|
|
}
|
|
function findClosest(values, currentValue) {
|
|
var _values$reduce;
|
|
const {
|
|
index: closestIndex
|
|
} = (_values$reduce = values.reduce((acc, value, index) => {
|
|
const distance = Math.abs(currentValue - value);
|
|
if (acc === null || distance < acc.distance || distance === acc.distance) {
|
|
return {
|
|
distance,
|
|
index
|
|
};
|
|
}
|
|
return acc;
|
|
}, null)) != null ? _values$reduce : {};
|
|
return closestIndex;
|
|
}
|
|
function trackFinger(event, touchId) {
|
|
if (touchId.current !== void 0 && event.changedTouches) {
|
|
const touchEvent = event;
|
|
for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {
|
|
const touch = touchEvent.changedTouches[i];
|
|
if (touch.identifier === touchId.current) {
|
|
return {
|
|
x: touch.clientX,
|
|
y: touch.clientY
|
|
};
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
return {
|
|
x: event.clientX,
|
|
y: event.clientY
|
|
};
|
|
}
|
|
function valueToPercent(value, min, max) {
|
|
return (value - min) * 100 / (max - min);
|
|
}
|
|
function percentToValue(percent, min, max) {
|
|
return (max - min) * percent + min;
|
|
}
|
|
function getDecimalPrecision2(num) {
|
|
if (Math.abs(num) < 1) {
|
|
const parts = num.toExponential().split("e-");
|
|
const matissaDecimalPart = parts[0].split(".")[1];
|
|
return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);
|
|
}
|
|
const decimalPart = num.toString().split(".")[1];
|
|
return decimalPart ? decimalPart.length : 0;
|
|
}
|
|
function roundValueToStep(value, step, min) {
|
|
const nearest = Math.round((value - min) / step) * step + min;
|
|
return Number(nearest.toFixed(getDecimalPrecision2(step)));
|
|
}
|
|
function setValueIndex({
|
|
values,
|
|
newValue,
|
|
index
|
|
}) {
|
|
const output = values.slice();
|
|
output[index] = newValue;
|
|
return output.sort(asc);
|
|
}
|
|
function focusThumb({
|
|
sliderRef,
|
|
activeIndex,
|
|
setActive
|
|
}) {
|
|
var _sliderRef$current, _doc$activeElement;
|
|
const doc = ownerDocument(sliderRef.current);
|
|
if (!((_sliderRef$current = sliderRef.current) != null && _sliderRef$current.contains(doc.activeElement)) || Number(doc == null || (_doc$activeElement = doc.activeElement) == null ? void 0 : _doc$activeElement.getAttribute("data-index")) !== activeIndex) {
|
|
var _sliderRef$current2;
|
|
(_sliderRef$current2 = sliderRef.current) == null || _sliderRef$current2.querySelector(`[type="range"][data-index="${activeIndex}"]`).focus();
|
|
}
|
|
if (setActive) {
|
|
setActive(activeIndex);
|
|
}
|
|
}
|
|
function areValuesEqual(newValue, oldValue) {
|
|
if (typeof newValue === "number" && typeof oldValue === "number") {
|
|
return newValue === oldValue;
|
|
}
|
|
if (typeof newValue === "object" && typeof oldValue === "object") {
|
|
return areArraysEqual_default(newValue, oldValue);
|
|
}
|
|
return false;
|
|
}
|
|
var axisProps = {
|
|
horizontal: {
|
|
offset: (percent) => ({
|
|
left: `${percent}%`
|
|
}),
|
|
leap: (percent) => ({
|
|
width: `${percent}%`
|
|
})
|
|
},
|
|
"horizontal-reverse": {
|
|
offset: (percent) => ({
|
|
right: `${percent}%`
|
|
}),
|
|
leap: (percent) => ({
|
|
width: `${percent}%`
|
|
})
|
|
},
|
|
vertical: {
|
|
offset: (percent) => ({
|
|
bottom: `${percent}%`
|
|
}),
|
|
leap: (percent) => ({
|
|
height: `${percent}%`
|
|
})
|
|
}
|
|
};
|
|
var Identity = (x) => x;
|
|
var cachedSupportsTouchActionNone;
|
|
function doesSupportTouchActionNone() {
|
|
if (cachedSupportsTouchActionNone === void 0) {
|
|
if (typeof CSS !== "undefined" && typeof CSS.supports === "function") {
|
|
cachedSupportsTouchActionNone = CSS.supports("touch-action", "none");
|
|
} else {
|
|
cachedSupportsTouchActionNone = true;
|
|
}
|
|
}
|
|
return cachedSupportsTouchActionNone;
|
|
}
|
|
function useSlider(parameters) {
|
|
const {
|
|
"aria-labelledby": ariaLabelledby,
|
|
defaultValue,
|
|
disabled = false,
|
|
disableSwap = false,
|
|
isRtl = false,
|
|
marks: marksProp = false,
|
|
max = 100,
|
|
min = 0,
|
|
name,
|
|
onChange,
|
|
onChangeCommitted,
|
|
orientation = "horizontal",
|
|
rootRef: ref,
|
|
scale = Identity,
|
|
step = 1,
|
|
shiftStep = 10,
|
|
tabIndex,
|
|
value: valueProp
|
|
} = parameters;
|
|
const touchId = React74.useRef(void 0);
|
|
const [active, setActive] = React74.useState(-1);
|
|
const [open, setOpen] = React74.useState(-1);
|
|
const [dragging, setDragging] = React74.useState(false);
|
|
const moveCount = React74.useRef(0);
|
|
const [valueDerived, setValueState] = useControlled({
|
|
controlled: valueProp,
|
|
default: defaultValue != null ? defaultValue : min,
|
|
name: "Slider"
|
|
});
|
|
const handleChange = onChange && ((event, value, thumbIndex) => {
|
|
const nativeEvent = event.nativeEvent || event;
|
|
const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);
|
|
Object.defineProperty(clonedEvent, "target", {
|
|
writable: true,
|
|
value: {
|
|
value,
|
|
name
|
|
}
|
|
});
|
|
onChange(clonedEvent, value, thumbIndex);
|
|
});
|
|
const range = Array.isArray(valueDerived);
|
|
let values = range ? valueDerived.slice().sort(asc) : [valueDerived];
|
|
values = values.map((value) => value == null ? min : clamp_default(value, min, max));
|
|
const marks = marksProp === true && step !== null ? [...Array(Math.floor((max - min) / step) + 1)].map((_2, index) => ({
|
|
value: min + step * index
|
|
})) : marksProp || [];
|
|
const marksValues = marks.map((mark) => mark.value);
|
|
const {
|
|
isFocusVisibleRef,
|
|
onBlur: handleBlurVisible,
|
|
onFocus: handleFocusVisible,
|
|
ref: focusVisibleRef
|
|
} = useIsFocusVisible();
|
|
const [focusedThumbIndex, setFocusedThumbIndex] = React74.useState(-1);
|
|
const sliderRef = React74.useRef(null);
|
|
const handleFocusRef = useForkRef(focusVisibleRef, sliderRef);
|
|
const handleRef = useForkRef(ref, handleFocusRef);
|
|
const createHandleHiddenInputFocus = (otherHandlers) => (event) => {
|
|
var _otherHandlers$onFocu;
|
|
const index = Number(event.currentTarget.getAttribute("data-index"));
|
|
handleFocusVisible(event);
|
|
if (isFocusVisibleRef.current === true) {
|
|
setFocusedThumbIndex(index);
|
|
}
|
|
setOpen(index);
|
|
otherHandlers == null || (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);
|
|
};
|
|
const createHandleHiddenInputBlur = (otherHandlers) => (event) => {
|
|
var _otherHandlers$onBlur;
|
|
handleBlurVisible(event);
|
|
if (isFocusVisibleRef.current === false) {
|
|
setFocusedThumbIndex(-1);
|
|
}
|
|
setOpen(-1);
|
|
otherHandlers == null || (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);
|
|
};
|
|
const changeValue = (event, valueInput) => {
|
|
const index = Number(event.currentTarget.getAttribute("data-index"));
|
|
const value = values[index];
|
|
const marksIndex = marksValues.indexOf(value);
|
|
let newValue = valueInput;
|
|
if (marks && step == null) {
|
|
const maxMarksValue = marksValues[marksValues.length - 1];
|
|
if (newValue > maxMarksValue) {
|
|
newValue = maxMarksValue;
|
|
} else if (newValue < marksValues[0]) {
|
|
newValue = marksValues[0];
|
|
} else {
|
|
newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];
|
|
}
|
|
}
|
|
newValue = clamp_default(newValue, min, max);
|
|
if (range) {
|
|
if (disableSwap) {
|
|
newValue = clamp_default(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);
|
|
}
|
|
const previousValue = newValue;
|
|
newValue = setValueIndex({
|
|
values,
|
|
newValue,
|
|
index
|
|
});
|
|
let activeIndex = index;
|
|
if (!disableSwap) {
|
|
activeIndex = newValue.indexOf(previousValue);
|
|
}
|
|
focusThumb({
|
|
sliderRef,
|
|
activeIndex
|
|
});
|
|
}
|
|
setValueState(newValue);
|
|
setFocusedThumbIndex(index);
|
|
if (handleChange && !areValuesEqual(newValue, valueDerived)) {
|
|
handleChange(event, newValue, index);
|
|
}
|
|
if (onChangeCommitted) {
|
|
onChangeCommitted(event, newValue);
|
|
}
|
|
};
|
|
const createHandleHiddenInputKeyDown = (otherHandlers) => (event) => {
|
|
var _otherHandlers$onKeyD;
|
|
if (step !== null) {
|
|
const index = Number(event.currentTarget.getAttribute("data-index"));
|
|
const value = values[index];
|
|
let newValue = null;
|
|
if ((event.key === "ArrowLeft" || event.key === "ArrowDown") && event.shiftKey || event.key === "PageDown") {
|
|
newValue = Math.max(value - shiftStep, min);
|
|
} else if ((event.key === "ArrowRight" || event.key === "ArrowUp") && event.shiftKey || event.key === "PageUp") {
|
|
newValue = Math.min(value + shiftStep, max);
|
|
}
|
|
if (newValue !== null) {
|
|
changeValue(event, newValue);
|
|
event.preventDefault();
|
|
}
|
|
}
|
|
otherHandlers == null || (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);
|
|
};
|
|
useEnhancedEffect_default(() => {
|
|
if (disabled && sliderRef.current.contains(document.activeElement)) {
|
|
var _document$activeEleme;
|
|
(_document$activeEleme = document.activeElement) == null || _document$activeEleme.blur();
|
|
}
|
|
}, [disabled]);
|
|
if (disabled && active !== -1) {
|
|
setActive(-1);
|
|
}
|
|
if (disabled && focusedThumbIndex !== -1) {
|
|
setFocusedThumbIndex(-1);
|
|
}
|
|
const createHandleHiddenInputChange = (otherHandlers) => (event) => {
|
|
var _otherHandlers$onChan;
|
|
(_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event);
|
|
changeValue(event, event.target.valueAsNumber);
|
|
};
|
|
const previousIndex = React74.useRef(void 0);
|
|
let axis = orientation;
|
|
if (isRtl && orientation === "horizontal") {
|
|
axis += "-reverse";
|
|
}
|
|
const getFingerNewValue = ({
|
|
finger,
|
|
move = false
|
|
}) => {
|
|
const {
|
|
current: slider
|
|
} = sliderRef;
|
|
const {
|
|
width,
|
|
height,
|
|
bottom,
|
|
left
|
|
} = slider.getBoundingClientRect();
|
|
let percent;
|
|
if (axis.indexOf("vertical") === 0) {
|
|
percent = (bottom - finger.y) / height;
|
|
} else {
|
|
percent = (finger.x - left) / width;
|
|
}
|
|
if (axis.indexOf("-reverse") !== -1) {
|
|
percent = 1 - percent;
|
|
}
|
|
let newValue;
|
|
newValue = percentToValue(percent, min, max);
|
|
if (step) {
|
|
newValue = roundValueToStep(newValue, step, min);
|
|
} else {
|
|
const closestIndex = findClosest(marksValues, newValue);
|
|
newValue = marksValues[closestIndex];
|
|
}
|
|
newValue = clamp_default(newValue, min, max);
|
|
let activeIndex = 0;
|
|
if (range) {
|
|
if (!move) {
|
|
activeIndex = findClosest(values, newValue);
|
|
} else {
|
|
activeIndex = previousIndex.current;
|
|
}
|
|
if (disableSwap) {
|
|
newValue = clamp_default(newValue, values[activeIndex - 1] || -Infinity, values[activeIndex + 1] || Infinity);
|
|
}
|
|
const previousValue = newValue;
|
|
newValue = setValueIndex({
|
|
values,
|
|
newValue,
|
|
index: activeIndex
|
|
});
|
|
if (!(disableSwap && move)) {
|
|
activeIndex = newValue.indexOf(previousValue);
|
|
previousIndex.current = activeIndex;
|
|
}
|
|
}
|
|
return {
|
|
newValue,
|
|
activeIndex
|
|
};
|
|
};
|
|
const handleTouchMove = useEventCallback_default((nativeEvent) => {
|
|
const finger = trackFinger(nativeEvent, touchId);
|
|
if (!finger) {
|
|
return;
|
|
}
|
|
moveCount.current += 1;
|
|
if (nativeEvent.type === "mousemove" && nativeEvent.buttons === 0) {
|
|
handleTouchEnd(nativeEvent);
|
|
return;
|
|
}
|
|
const {
|
|
newValue,
|
|
activeIndex
|
|
} = getFingerNewValue({
|
|
finger,
|
|
move: true
|
|
});
|
|
focusThumb({
|
|
sliderRef,
|
|
activeIndex,
|
|
setActive
|
|
});
|
|
setValueState(newValue);
|
|
if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {
|
|
setDragging(true);
|
|
}
|
|
if (handleChange && !areValuesEqual(newValue, valueDerived)) {
|
|
handleChange(nativeEvent, newValue, activeIndex);
|
|
}
|
|
});
|
|
const handleTouchEnd = useEventCallback_default((nativeEvent) => {
|
|
const finger = trackFinger(nativeEvent, touchId);
|
|
setDragging(false);
|
|
if (!finger) {
|
|
return;
|
|
}
|
|
const {
|
|
newValue
|
|
} = getFingerNewValue({
|
|
finger,
|
|
move: true
|
|
});
|
|
setActive(-1);
|
|
if (nativeEvent.type === "touchend") {
|
|
setOpen(-1);
|
|
}
|
|
if (onChangeCommitted) {
|
|
onChangeCommitted(nativeEvent, newValue);
|
|
}
|
|
touchId.current = void 0;
|
|
stopListening();
|
|
});
|
|
const handleTouchStart = useEventCallback_default((nativeEvent) => {
|
|
if (disabled) {
|
|
return;
|
|
}
|
|
if (!doesSupportTouchActionNone()) {
|
|
nativeEvent.preventDefault();
|
|
}
|
|
const touch = nativeEvent.changedTouches[0];
|
|
if (touch != null) {
|
|
touchId.current = touch.identifier;
|
|
}
|
|
const finger = trackFinger(nativeEvent, touchId);
|
|
if (finger !== false) {
|
|
const {
|
|
newValue,
|
|
activeIndex
|
|
} = getFingerNewValue({
|
|
finger
|
|
});
|
|
focusThumb({
|
|
sliderRef,
|
|
activeIndex,
|
|
setActive
|
|
});
|
|
setValueState(newValue);
|
|
if (handleChange && !areValuesEqual(newValue, valueDerived)) {
|
|
handleChange(nativeEvent, newValue, activeIndex);
|
|
}
|
|
}
|
|
moveCount.current = 0;
|
|
const doc = ownerDocument(sliderRef.current);
|
|
doc.addEventListener("touchmove", handleTouchMove, {
|
|
passive: true
|
|
});
|
|
doc.addEventListener("touchend", handleTouchEnd, {
|
|
passive: true
|
|
});
|
|
});
|
|
const stopListening = React74.useCallback(() => {
|
|
const doc = ownerDocument(sliderRef.current);
|
|
doc.removeEventListener("mousemove", handleTouchMove);
|
|
doc.removeEventListener("mouseup", handleTouchEnd);
|
|
doc.removeEventListener("touchmove", handleTouchMove);
|
|
doc.removeEventListener("touchend", handleTouchEnd);
|
|
}, [handleTouchEnd, handleTouchMove]);
|
|
React74.useEffect(() => {
|
|
const {
|
|
current: slider
|
|
} = sliderRef;
|
|
slider.addEventListener("touchstart", handleTouchStart, {
|
|
passive: doesSupportTouchActionNone()
|
|
});
|
|
return () => {
|
|
slider.removeEventListener("touchstart", handleTouchStart);
|
|
stopListening();
|
|
};
|
|
}, [stopListening, handleTouchStart]);
|
|
React74.useEffect(() => {
|
|
if (disabled) {
|
|
stopListening();
|
|
}
|
|
}, [disabled, stopListening]);
|
|
const createHandleMouseDown = (otherHandlers) => (event) => {
|
|
var _otherHandlers$onMous;
|
|
(_otherHandlers$onMous = otherHandlers.onMouseDown) == null || _otherHandlers$onMous.call(otherHandlers, event);
|
|
if (disabled) {
|
|
return;
|
|
}
|
|
if (event.defaultPrevented) {
|
|
return;
|
|
}
|
|
if (event.button !== 0) {
|
|
return;
|
|
}
|
|
event.preventDefault();
|
|
const finger = trackFinger(event, touchId);
|
|
if (finger !== false) {
|
|
const {
|
|
newValue,
|
|
activeIndex
|
|
} = getFingerNewValue({
|
|
finger
|
|
});
|
|
focusThumb({
|
|
sliderRef,
|
|
activeIndex,
|
|
setActive
|
|
});
|
|
setValueState(newValue);
|
|
if (handleChange && !areValuesEqual(newValue, valueDerived)) {
|
|
handleChange(event, newValue, activeIndex);
|
|
}
|
|
}
|
|
moveCount.current = 0;
|
|
const doc = ownerDocument(sliderRef.current);
|
|
doc.addEventListener("mousemove", handleTouchMove, {
|
|
passive: true
|
|
});
|
|
doc.addEventListener("mouseup", handleTouchEnd);
|
|
};
|
|
const trackOffset = valueToPercent(range ? values[0] : min, min, max);
|
|
const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;
|
|
const getRootProps = (externalProps = {}) => {
|
|
const externalHandlers = extractEventHandlers_default(externalProps);
|
|
const ownEventHandlers = {
|
|
onMouseDown: createHandleMouseDown(externalHandlers || {})
|
|
};
|
|
const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);
|
|
return _extends({}, externalProps, {
|
|
ref: handleRef
|
|
}, mergedEventHandlers);
|
|
};
|
|
const createHandleMouseOver = (otherHandlers) => (event) => {
|
|
var _otherHandlers$onMous2;
|
|
(_otherHandlers$onMous2 = otherHandlers.onMouseOver) == null || _otherHandlers$onMous2.call(otherHandlers, event);
|
|
const index = Number(event.currentTarget.getAttribute("data-index"));
|
|
setOpen(index);
|
|
};
|
|
const createHandleMouseLeave = (otherHandlers) => (event) => {
|
|
var _otherHandlers$onMous3;
|
|
(_otherHandlers$onMous3 = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous3.call(otherHandlers, event);
|
|
setOpen(-1);
|
|
};
|
|
const getThumbProps = (externalProps = {}) => {
|
|
const externalHandlers = extractEventHandlers_default(externalProps);
|
|
const ownEventHandlers = {
|
|
onMouseOver: createHandleMouseOver(externalHandlers || {}),
|
|
onMouseLeave: createHandleMouseLeave(externalHandlers || {})
|
|
};
|
|
return _extends({}, externalProps, externalHandlers, ownEventHandlers);
|
|
};
|
|
const getThumbStyle = (index) => {
|
|
return {
|
|
// So the non active thumb doesn't show its label on hover.
|
|
pointerEvents: active !== -1 && active !== index ? "none" : void 0
|
|
};
|
|
};
|
|
const getHiddenInputProps = (externalProps = {}) => {
|
|
var _parameters$step;
|
|
const externalHandlers = extractEventHandlers_default(externalProps);
|
|
const ownEventHandlers = {
|
|
onChange: createHandleHiddenInputChange(externalHandlers || {}),
|
|
onFocus: createHandleHiddenInputFocus(externalHandlers || {}),
|
|
onBlur: createHandleHiddenInputBlur(externalHandlers || {}),
|
|
onKeyDown: createHandleHiddenInputKeyDown(externalHandlers || {})
|
|
};
|
|
const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);
|
|
return _extends({
|
|
tabIndex,
|
|
"aria-labelledby": ariaLabelledby,
|
|
"aria-orientation": orientation,
|
|
"aria-valuemax": scale(max),
|
|
"aria-valuemin": scale(min),
|
|
name,
|
|
type: "range",
|
|
min: parameters.min,
|
|
max: parameters.max,
|
|
step: parameters.step === null && parameters.marks ? "any" : (_parameters$step = parameters.step) != null ? _parameters$step : void 0,
|
|
disabled
|
|
}, externalProps, mergedEventHandlers, {
|
|
style: _extends({}, visuallyHidden_default, {
|
|
direction: isRtl ? "rtl" : "ltr",
|
|
// So that VoiceOver's focus indicator matches the thumb's dimensions
|
|
width: "100%",
|
|
height: "100%"
|
|
})
|
|
});
|
|
};
|
|
return {
|
|
active,
|
|
axis,
|
|
axisProps,
|
|
dragging,
|
|
focusedThumbIndex,
|
|
getHiddenInputProps,
|
|
getRootProps,
|
|
getThumbProps,
|
|
marks,
|
|
open,
|
|
range,
|
|
rootRef: handleRef,
|
|
trackLeap,
|
|
trackOffset,
|
|
values,
|
|
getThumbStyle
|
|
};
|
|
}
|
|
|
|
// node_modules/@mui/material/utils/shouldSpreadAdditionalProps.js
|
|
var shouldSpreadAdditionalProps = (Slot) => {
|
|
return !Slot || !isHostComponent_default(Slot);
|
|
};
|
|
var shouldSpreadAdditionalProps_default = shouldSpreadAdditionalProps;
|
|
|
|
// node_modules/@mui/material/Slider/SliderValueLabel.js
|
|
var React75 = __toESM(require_react());
|
|
var import_prop_types58 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Slider/sliderClasses.js
|
|
function getSliderUtilityClass(slot) {
|
|
return generateUtilityClass("MuiSlider", slot);
|
|
}
|
|
var sliderClasses = generateUtilityClasses("MuiSlider", ["root", "active", "colorPrimary", "colorSecondary", "colorError", "colorInfo", "colorSuccess", "colorWarning", "disabled", "dragging", "focusVisible", "mark", "markActive", "marked", "markLabel", "markLabelActive", "rail", "sizeSmall", "thumb", "thumbColorPrimary", "thumbColorSecondary", "thumbColorError", "thumbColorSuccess", "thumbColorInfo", "thumbColorWarning", "track", "trackInverted", "trackFalse", "thumbSizeSmall", "valueLabel", "valueLabelOpen", "valueLabelCircle", "valueLabelLabel", "vertical"]);
|
|
var sliderClasses_default = sliderClasses;
|
|
|
|
// node_modules/@mui/material/Slider/SliderValueLabel.js
|
|
var import_jsx_runtime82 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime83 = __toESM(require_jsx_runtime());
|
|
var useValueLabelClasses = (props) => {
|
|
const {
|
|
open
|
|
} = props;
|
|
const utilityClasses = {
|
|
offset: clsx_default(open && sliderClasses_default.valueLabelOpen),
|
|
circle: sliderClasses_default.valueLabelCircle,
|
|
label: sliderClasses_default.valueLabelLabel
|
|
};
|
|
return utilityClasses;
|
|
};
|
|
function SliderValueLabel(props) {
|
|
const {
|
|
children,
|
|
className,
|
|
value
|
|
} = props;
|
|
const classes = useValueLabelClasses(props);
|
|
if (!children) {
|
|
return null;
|
|
}
|
|
return React75.cloneElement(children, {
|
|
className: clsx_default(children.props.className)
|
|
}, (0, import_jsx_runtime83.jsxs)(React75.Fragment, {
|
|
children: [children.props.children, (0, import_jsx_runtime82.jsx)("span", {
|
|
className: clsx_default(classes.offset, className),
|
|
"aria-hidden": true,
|
|
children: (0, import_jsx_runtime82.jsx)("span", {
|
|
className: classes.circle,
|
|
children: (0, import_jsx_runtime82.jsx)("span", {
|
|
className: classes.label,
|
|
children: value
|
|
})
|
|
})
|
|
})]
|
|
}));
|
|
}
|
|
true ? SliderValueLabel.propTypes = {
|
|
children: import_prop_types58.default.element.isRequired,
|
|
className: import_prop_types58.default.string,
|
|
value: import_prop_types58.default.node
|
|
} : void 0;
|
|
|
|
// node_modules/@mui/material/Slider/Slider.js
|
|
var import_jsx_runtime84 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime85 = __toESM(require_jsx_runtime());
|
|
var _excluded57 = ["aria-label", "aria-valuetext", "aria-labelledby", "component", "components", "componentsProps", "color", "classes", "className", "disableSwap", "disabled", "getAriaLabel", "getAriaValueText", "marks", "max", "min", "name", "onChange", "onChangeCommitted", "orientation", "shiftStep", "size", "step", "scale", "slotProps", "slots", "tabIndex", "track", "value", "valueLabelDisplay", "valueLabelFormat"];
|
|
function Identity2(x) {
|
|
return x;
|
|
}
|
|
var SliderRoot = styled_default("span", {
|
|
name: "MuiSlider",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`color${capitalize_default(ownerState.color)}`], ownerState.size !== "medium" && styles3[`size${capitalize_default(ownerState.size)}`], ownerState.marked && styles3.marked, ownerState.orientation === "vertical" && styles3.vertical, ownerState.track === "inverted" && styles3.trackInverted, ownerState.track === false && styles3.trackFalse];
|
|
}
|
|
})(({
|
|
theme
|
|
}) => {
|
|
var _theme$vars;
|
|
return {
|
|
borderRadius: 12,
|
|
boxSizing: "content-box",
|
|
display: "inline-block",
|
|
position: "relative",
|
|
cursor: "pointer",
|
|
touchAction: "none",
|
|
WebkitTapHighlightColor: "transparent",
|
|
"@media print": {
|
|
colorAdjust: "exact"
|
|
},
|
|
[`&.${sliderClasses_default.disabled}`]: {
|
|
pointerEvents: "none",
|
|
cursor: "default",
|
|
color: (theme.vars || theme).palette.grey[400]
|
|
},
|
|
[`&.${sliderClasses_default.dragging}`]: {
|
|
[`& .${sliderClasses_default.thumb}, & .${sliderClasses_default.track}`]: {
|
|
transition: "none"
|
|
}
|
|
},
|
|
variants: [...Object.keys(((_theme$vars = theme.vars) != null ? _theme$vars : theme).palette).filter((key) => {
|
|
var _theme$vars2;
|
|
return ((_theme$vars2 = theme.vars) != null ? _theme$vars2 : theme).palette[key].main;
|
|
}).map((color) => ({
|
|
props: {
|
|
color
|
|
},
|
|
style: {
|
|
color: (theme.vars || theme).palette[color].main
|
|
}
|
|
})), {
|
|
props: {
|
|
orientation: "horizontal"
|
|
},
|
|
style: {
|
|
height: 4,
|
|
width: "100%",
|
|
padding: "13px 0",
|
|
// The primary input mechanism of the device includes a pointing device of limited accuracy.
|
|
"@media (pointer: coarse)": {
|
|
// Reach 42px touch target, about ~8mm on screen.
|
|
padding: "20px 0"
|
|
}
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "horizontal",
|
|
size: "small"
|
|
},
|
|
style: {
|
|
height: 2
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "horizontal",
|
|
marked: true
|
|
},
|
|
style: {
|
|
marginBottom: 20
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical"
|
|
},
|
|
style: {
|
|
height: "100%",
|
|
width: 4,
|
|
padding: "0 13px",
|
|
// The primary input mechanism of the device includes a pointing device of limited accuracy.
|
|
"@media (pointer: coarse)": {
|
|
// Reach 42px touch target, about ~8mm on screen.
|
|
padding: "0 20px"
|
|
}
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical",
|
|
size: "small"
|
|
},
|
|
style: {
|
|
width: 2
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical",
|
|
marked: true
|
|
},
|
|
style: {
|
|
marginRight: 44
|
|
}
|
|
}]
|
|
};
|
|
});
|
|
var SliderRail = styled_default("span", {
|
|
name: "MuiSlider",
|
|
slot: "Rail",
|
|
overridesResolver: (props, styles3) => styles3.rail
|
|
})({
|
|
display: "block",
|
|
position: "absolute",
|
|
borderRadius: "inherit",
|
|
backgroundColor: "currentColor",
|
|
opacity: 0.38,
|
|
variants: [{
|
|
props: {
|
|
orientation: "horizontal"
|
|
},
|
|
style: {
|
|
width: "100%",
|
|
height: "inherit",
|
|
top: "50%",
|
|
transform: "translateY(-50%)"
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical"
|
|
},
|
|
style: {
|
|
height: "100%",
|
|
width: "inherit",
|
|
left: "50%",
|
|
transform: "translateX(-50%)"
|
|
}
|
|
}, {
|
|
props: {
|
|
track: "inverted"
|
|
},
|
|
style: {
|
|
opacity: 1
|
|
}
|
|
}]
|
|
});
|
|
var SliderTrack = styled_default("span", {
|
|
name: "MuiSlider",
|
|
slot: "Track",
|
|
overridesResolver: (props, styles3) => styles3.track
|
|
})(({
|
|
theme
|
|
}) => {
|
|
var _theme$vars3;
|
|
return {
|
|
display: "block",
|
|
position: "absolute",
|
|
borderRadius: "inherit",
|
|
border: "1px solid currentColor",
|
|
backgroundColor: "currentColor",
|
|
transition: theme.transitions.create(["left", "width", "bottom", "height"], {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
variants: [{
|
|
props: {
|
|
size: "small"
|
|
},
|
|
style: {
|
|
border: "none"
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "horizontal"
|
|
},
|
|
style: {
|
|
height: "inherit",
|
|
top: "50%",
|
|
transform: "translateY(-50%)"
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical"
|
|
},
|
|
style: {
|
|
width: "inherit",
|
|
left: "50%",
|
|
transform: "translateX(-50%)"
|
|
}
|
|
}, {
|
|
props: {
|
|
track: false
|
|
},
|
|
style: {
|
|
display: "none"
|
|
}
|
|
}, ...Object.keys(((_theme$vars3 = theme.vars) != null ? _theme$vars3 : theme).palette).filter((key) => {
|
|
var _theme$vars4;
|
|
return ((_theme$vars4 = theme.vars) != null ? _theme$vars4 : theme).palette[key].main;
|
|
}).map((color) => ({
|
|
props: {
|
|
color,
|
|
track: "inverted"
|
|
},
|
|
style: _extends({}, theme.vars ? {
|
|
backgroundColor: theme.vars.palette.Slider[`${color}Track`],
|
|
borderColor: theme.vars.palette.Slider[`${color}Track`]
|
|
} : _extends({
|
|
backgroundColor: (0, import_colorManipulator10.lighten)(theme.palette[color].main, 0.62),
|
|
borderColor: (0, import_colorManipulator10.lighten)(theme.palette[color].main, 0.62)
|
|
}, theme.applyStyles("dark", {
|
|
backgroundColor: (0, import_colorManipulator10.darken)(theme.palette[color].main, 0.5)
|
|
}), theme.applyStyles("dark", {
|
|
borderColor: (0, import_colorManipulator10.darken)(theme.palette[color].main, 0.5)
|
|
})))
|
|
}))]
|
|
};
|
|
});
|
|
var SliderThumb = styled_default("span", {
|
|
name: "MuiSlider",
|
|
slot: "Thumb",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.thumb, styles3[`thumbColor${capitalize_default(ownerState.color)}`], ownerState.size !== "medium" && styles3[`thumbSize${capitalize_default(ownerState.size)}`]];
|
|
}
|
|
})(({
|
|
theme
|
|
}) => {
|
|
var _theme$vars5;
|
|
return {
|
|
position: "absolute",
|
|
width: 20,
|
|
height: 20,
|
|
boxSizing: "border-box",
|
|
borderRadius: "50%",
|
|
outline: 0,
|
|
backgroundColor: "currentColor",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
transition: theme.transitions.create(["box-shadow", "left", "bottom"], {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
"&::before": {
|
|
position: "absolute",
|
|
content: '""',
|
|
borderRadius: "inherit",
|
|
width: "100%",
|
|
height: "100%",
|
|
boxShadow: (theme.vars || theme).shadows[2]
|
|
},
|
|
"&::after": {
|
|
position: "absolute",
|
|
content: '""',
|
|
borderRadius: "50%",
|
|
// 42px is the hit target
|
|
width: 42,
|
|
height: 42,
|
|
top: "50%",
|
|
left: "50%",
|
|
transform: "translate(-50%, -50%)"
|
|
},
|
|
[`&.${sliderClasses_default.disabled}`]: {
|
|
"&:hover": {
|
|
boxShadow: "none"
|
|
}
|
|
},
|
|
variants: [{
|
|
props: {
|
|
size: "small"
|
|
},
|
|
style: {
|
|
width: 12,
|
|
height: 12,
|
|
"&::before": {
|
|
boxShadow: "none"
|
|
}
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "horizontal"
|
|
},
|
|
style: {
|
|
top: "50%",
|
|
transform: "translate(-50%, -50%)"
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical"
|
|
},
|
|
style: {
|
|
left: "50%",
|
|
transform: "translate(-50%, 50%)"
|
|
}
|
|
}, ...Object.keys(((_theme$vars5 = theme.vars) != null ? _theme$vars5 : theme).palette).filter((key) => {
|
|
var _theme$vars6;
|
|
return ((_theme$vars6 = theme.vars) != null ? _theme$vars6 : theme).palette[key].main;
|
|
}).map((color) => ({
|
|
props: {
|
|
color
|
|
},
|
|
style: {
|
|
[`&:hover, &.${sliderClasses_default.focusVisible}`]: _extends({}, theme.vars ? {
|
|
boxShadow: `0px 0px 0px 8px rgba(${theme.vars.palette[color].mainChannel} / 0.16)`
|
|
} : {
|
|
boxShadow: `0px 0px 0px 8px ${(0, import_colorManipulator10.alpha)(theme.palette[color].main, 0.16)}`
|
|
}, {
|
|
"@media (hover: none)": {
|
|
boxShadow: "none"
|
|
}
|
|
}),
|
|
[`&.${sliderClasses_default.active}`]: _extends({}, theme.vars ? {
|
|
boxShadow: `0px 0px 0px 14px rgba(${theme.vars.palette[color].mainChannel} / 0.16)`
|
|
} : {
|
|
boxShadow: `0px 0px 0px 14px ${(0, import_colorManipulator10.alpha)(theme.palette[color].main, 0.16)}`
|
|
})
|
|
}
|
|
}))]
|
|
};
|
|
});
|
|
var SliderValueLabel2 = styled_default(SliderValueLabel, {
|
|
name: "MuiSlider",
|
|
slot: "ValueLabel",
|
|
overridesResolver: (props, styles3) => styles3.valueLabel
|
|
})(({
|
|
theme
|
|
}) => _extends({
|
|
zIndex: 1,
|
|
whiteSpace: "nowrap"
|
|
}, theme.typography.body2, {
|
|
fontWeight: 500,
|
|
transition: theme.transitions.create(["transform"], {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
position: "absolute",
|
|
backgroundColor: (theme.vars || theme).palette.grey[600],
|
|
borderRadius: 2,
|
|
color: (theme.vars || theme).palette.common.white,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
padding: "0.25rem 0.75rem",
|
|
variants: [{
|
|
props: {
|
|
orientation: "horizontal"
|
|
},
|
|
style: {
|
|
transform: "translateY(-100%) scale(0)",
|
|
top: "-10px",
|
|
transformOrigin: "bottom center",
|
|
"&::before": {
|
|
position: "absolute",
|
|
content: '""',
|
|
width: 8,
|
|
height: 8,
|
|
transform: "translate(-50%, 50%) rotate(45deg)",
|
|
backgroundColor: "inherit",
|
|
bottom: 0,
|
|
left: "50%"
|
|
},
|
|
[`&.${sliderClasses_default.valueLabelOpen}`]: {
|
|
transform: "translateY(-100%) scale(1)"
|
|
}
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical"
|
|
},
|
|
style: {
|
|
transform: "translateY(-50%) scale(0)",
|
|
right: "30px",
|
|
top: "50%",
|
|
transformOrigin: "right center",
|
|
"&::before": {
|
|
position: "absolute",
|
|
content: '""',
|
|
width: 8,
|
|
height: 8,
|
|
transform: "translate(-50%, -50%) rotate(45deg)",
|
|
backgroundColor: "inherit",
|
|
right: -8,
|
|
top: "50%"
|
|
},
|
|
[`&.${sliderClasses_default.valueLabelOpen}`]: {
|
|
transform: "translateY(-50%) scale(1)"
|
|
}
|
|
}
|
|
}, {
|
|
props: {
|
|
size: "small"
|
|
},
|
|
style: {
|
|
fontSize: theme.typography.pxToRem(12),
|
|
padding: "0.25rem 0.5rem"
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical",
|
|
size: "small"
|
|
},
|
|
style: {
|
|
right: "20px"
|
|
}
|
|
}]
|
|
}));
|
|
var SliderMark = styled_default("span", {
|
|
name: "MuiSlider",
|
|
slot: "Mark",
|
|
shouldForwardProp: (prop) => slotShouldForwardProp_default(prop) && prop !== "markActive",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
markActive
|
|
} = props;
|
|
return [styles3.mark, markActive && styles3.markActive];
|
|
}
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
position: "absolute",
|
|
width: 2,
|
|
height: 2,
|
|
borderRadius: 1,
|
|
backgroundColor: "currentColor",
|
|
variants: [{
|
|
props: {
|
|
orientation: "horizontal"
|
|
},
|
|
style: {
|
|
top: "50%",
|
|
transform: "translate(-1px, -50%)"
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical"
|
|
},
|
|
style: {
|
|
left: "50%",
|
|
transform: "translate(-50%, 1px)"
|
|
}
|
|
}, {
|
|
props: {
|
|
markActive: true
|
|
},
|
|
style: {
|
|
backgroundColor: (theme.vars || theme).palette.background.paper,
|
|
opacity: 0.8
|
|
}
|
|
}]
|
|
}));
|
|
var SliderMarkLabel = styled_default("span", {
|
|
name: "MuiSlider",
|
|
slot: "MarkLabel",
|
|
shouldForwardProp: (prop) => slotShouldForwardProp_default(prop) && prop !== "markLabelActive",
|
|
overridesResolver: (props, styles3) => styles3.markLabel
|
|
})(({
|
|
theme
|
|
}) => _extends({}, theme.typography.body2, {
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
position: "absolute",
|
|
whiteSpace: "nowrap",
|
|
variants: [{
|
|
props: {
|
|
orientation: "horizontal"
|
|
},
|
|
style: {
|
|
top: 30,
|
|
transform: "translateX(-50%)",
|
|
"@media (pointer: coarse)": {
|
|
top: 40
|
|
}
|
|
}
|
|
}, {
|
|
props: {
|
|
orientation: "vertical"
|
|
},
|
|
style: {
|
|
left: 36,
|
|
transform: "translateY(50%)",
|
|
"@media (pointer: coarse)": {
|
|
left: 44
|
|
}
|
|
}
|
|
}, {
|
|
props: {
|
|
markLabelActive: true
|
|
},
|
|
style: {
|
|
color: (theme.vars || theme).palette.text.primary
|
|
}
|
|
}]
|
|
}));
|
|
var useUtilityClasses49 = (ownerState) => {
|
|
const {
|
|
disabled,
|
|
dragging,
|
|
marked,
|
|
orientation,
|
|
track,
|
|
classes,
|
|
color,
|
|
size
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", disabled && "disabled", dragging && "dragging", marked && "marked", orientation === "vertical" && "vertical", track === "inverted" && "trackInverted", track === false && "trackFalse", color && `color${capitalize_default(color)}`, size && `size${capitalize_default(size)}`],
|
|
rail: ["rail"],
|
|
track: ["track"],
|
|
mark: ["mark"],
|
|
markActive: ["markActive"],
|
|
markLabel: ["markLabel"],
|
|
markLabelActive: ["markLabelActive"],
|
|
valueLabel: ["valueLabel"],
|
|
thumb: ["thumb", disabled && "disabled", size && `thumbSize${capitalize_default(size)}`, color && `thumbColor${capitalize_default(color)}`],
|
|
active: ["active"],
|
|
disabled: ["disabled"],
|
|
focusVisible: ["focusVisible"]
|
|
};
|
|
return composeClasses(slots, getSliderUtilityClass, classes);
|
|
};
|
|
var Forward = ({
|
|
children
|
|
}) => children;
|
|
var Slider = React76.forwardRef(function Slider2(inputProps, ref) {
|
|
var _ref, _slots$root, _ref2, _slots$rail, _ref3, _slots$track, _ref4, _slots$thumb, _ref5, _slots$valueLabel, _ref6, _slots$mark, _ref7, _slots$markLabel, _ref8, _slots$input, _slotProps$root, _slotProps$rail, _slotProps$track, _slotProps$thumb, _slotProps$valueLabel, _slotProps$mark, _slotProps$markLabel, _slotProps$input;
|
|
const props = useDefaultProps({
|
|
props: inputProps,
|
|
name: "MuiSlider"
|
|
});
|
|
const isRtl = useRtl();
|
|
const {
|
|
"aria-label": ariaLabel,
|
|
"aria-valuetext": ariaValuetext,
|
|
"aria-labelledby": ariaLabelledby,
|
|
// eslint-disable-next-line react/prop-types
|
|
component = "span",
|
|
components = {},
|
|
componentsProps = {},
|
|
color = "primary",
|
|
classes: classesProp,
|
|
className,
|
|
disableSwap = false,
|
|
disabled = false,
|
|
getAriaLabel,
|
|
getAriaValueText,
|
|
marks: marksProp = false,
|
|
max = 100,
|
|
min = 0,
|
|
orientation = "horizontal",
|
|
shiftStep = 10,
|
|
size = "medium",
|
|
step = 1,
|
|
scale = Identity2,
|
|
slotProps,
|
|
slots,
|
|
track = "normal",
|
|
valueLabelDisplay = "off",
|
|
valueLabelFormat = Identity2
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded57);
|
|
const ownerState = _extends({}, props, {
|
|
isRtl,
|
|
max,
|
|
min,
|
|
classes: classesProp,
|
|
disabled,
|
|
disableSwap,
|
|
orientation,
|
|
marks: marksProp,
|
|
color,
|
|
size,
|
|
step,
|
|
shiftStep,
|
|
scale,
|
|
track,
|
|
valueLabelDisplay,
|
|
valueLabelFormat
|
|
});
|
|
const {
|
|
axisProps: axisProps2,
|
|
getRootProps,
|
|
getHiddenInputProps,
|
|
getThumbProps,
|
|
open,
|
|
active,
|
|
axis,
|
|
focusedThumbIndex,
|
|
range,
|
|
dragging,
|
|
marks,
|
|
values,
|
|
trackOffset,
|
|
trackLeap,
|
|
getThumbStyle
|
|
} = useSlider(_extends({}, ownerState, {
|
|
rootRef: ref
|
|
}));
|
|
ownerState.marked = marks.length > 0 && marks.some((mark) => mark.label);
|
|
ownerState.dragging = dragging;
|
|
ownerState.focusedThumbIndex = focusedThumbIndex;
|
|
const classes = useUtilityClasses49(ownerState);
|
|
const RootSlot = (_ref = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : components.Root) != null ? _ref : SliderRoot;
|
|
const RailSlot = (_ref2 = (_slots$rail = slots == null ? void 0 : slots.rail) != null ? _slots$rail : components.Rail) != null ? _ref2 : SliderRail;
|
|
const TrackSlot = (_ref3 = (_slots$track = slots == null ? void 0 : slots.track) != null ? _slots$track : components.Track) != null ? _ref3 : SliderTrack;
|
|
const ThumbSlot = (_ref4 = (_slots$thumb = slots == null ? void 0 : slots.thumb) != null ? _slots$thumb : components.Thumb) != null ? _ref4 : SliderThumb;
|
|
const ValueLabelSlot = (_ref5 = (_slots$valueLabel = slots == null ? void 0 : slots.valueLabel) != null ? _slots$valueLabel : components.ValueLabel) != null ? _ref5 : SliderValueLabel2;
|
|
const MarkSlot = (_ref6 = (_slots$mark = slots == null ? void 0 : slots.mark) != null ? _slots$mark : components.Mark) != null ? _ref6 : SliderMark;
|
|
const MarkLabelSlot = (_ref7 = (_slots$markLabel = slots == null ? void 0 : slots.markLabel) != null ? _slots$markLabel : components.MarkLabel) != null ? _ref7 : SliderMarkLabel;
|
|
const InputSlot = (_ref8 = (_slots$input = slots == null ? void 0 : slots.input) != null ? _slots$input : components.Input) != null ? _ref8 : "input";
|
|
const rootSlotProps = (_slotProps$root = slotProps == null ? void 0 : slotProps.root) != null ? _slotProps$root : componentsProps.root;
|
|
const railSlotProps = (_slotProps$rail = slotProps == null ? void 0 : slotProps.rail) != null ? _slotProps$rail : componentsProps.rail;
|
|
const trackSlotProps = (_slotProps$track = slotProps == null ? void 0 : slotProps.track) != null ? _slotProps$track : componentsProps.track;
|
|
const thumbSlotProps = (_slotProps$thumb = slotProps == null ? void 0 : slotProps.thumb) != null ? _slotProps$thumb : componentsProps.thumb;
|
|
const valueLabelSlotProps = (_slotProps$valueLabel = slotProps == null ? void 0 : slotProps.valueLabel) != null ? _slotProps$valueLabel : componentsProps.valueLabel;
|
|
const markSlotProps = (_slotProps$mark = slotProps == null ? void 0 : slotProps.mark) != null ? _slotProps$mark : componentsProps.mark;
|
|
const markLabelSlotProps = (_slotProps$markLabel = slotProps == null ? void 0 : slotProps.markLabel) != null ? _slotProps$markLabel : componentsProps.markLabel;
|
|
const inputSlotProps = (_slotProps$input = slotProps == null ? void 0 : slotProps.input) != null ? _slotProps$input : componentsProps.input;
|
|
const rootProps = useSlotProps_default({
|
|
elementType: RootSlot,
|
|
getSlotProps: getRootProps,
|
|
externalSlotProps: rootSlotProps,
|
|
externalForwardedProps: other,
|
|
additionalProps: _extends({}, shouldSpreadAdditionalProps_default(RootSlot) && {
|
|
as: component
|
|
}),
|
|
ownerState: _extends({}, ownerState, rootSlotProps == null ? void 0 : rootSlotProps.ownerState),
|
|
className: [classes.root, className]
|
|
});
|
|
const railProps = useSlotProps_default({
|
|
elementType: RailSlot,
|
|
externalSlotProps: railSlotProps,
|
|
ownerState,
|
|
className: classes.rail
|
|
});
|
|
const trackProps = useSlotProps_default({
|
|
elementType: TrackSlot,
|
|
externalSlotProps: trackSlotProps,
|
|
additionalProps: {
|
|
style: _extends({}, axisProps2[axis].offset(trackOffset), axisProps2[axis].leap(trackLeap))
|
|
},
|
|
ownerState: _extends({}, ownerState, trackSlotProps == null ? void 0 : trackSlotProps.ownerState),
|
|
className: classes.track
|
|
});
|
|
const thumbProps = useSlotProps_default({
|
|
elementType: ThumbSlot,
|
|
getSlotProps: getThumbProps,
|
|
externalSlotProps: thumbSlotProps,
|
|
ownerState: _extends({}, ownerState, thumbSlotProps == null ? void 0 : thumbSlotProps.ownerState),
|
|
className: classes.thumb
|
|
});
|
|
const valueLabelProps = useSlotProps_default({
|
|
elementType: ValueLabelSlot,
|
|
externalSlotProps: valueLabelSlotProps,
|
|
ownerState: _extends({}, ownerState, valueLabelSlotProps == null ? void 0 : valueLabelSlotProps.ownerState),
|
|
className: classes.valueLabel
|
|
});
|
|
const markProps = useSlotProps_default({
|
|
elementType: MarkSlot,
|
|
externalSlotProps: markSlotProps,
|
|
ownerState,
|
|
className: classes.mark
|
|
});
|
|
const markLabelProps = useSlotProps_default({
|
|
elementType: MarkLabelSlot,
|
|
externalSlotProps: markLabelSlotProps,
|
|
ownerState,
|
|
className: classes.markLabel
|
|
});
|
|
const inputSliderProps = useSlotProps_default({
|
|
elementType: InputSlot,
|
|
getSlotProps: getHiddenInputProps,
|
|
externalSlotProps: inputSlotProps,
|
|
ownerState
|
|
});
|
|
return (0, import_jsx_runtime85.jsxs)(RootSlot, _extends({}, rootProps, {
|
|
children: [(0, import_jsx_runtime84.jsx)(RailSlot, _extends({}, railProps)), (0, import_jsx_runtime84.jsx)(TrackSlot, _extends({}, trackProps)), marks.filter((mark) => mark.value >= min && mark.value <= max).map((mark, index) => {
|
|
const percent = valueToPercent(mark.value, min, max);
|
|
const style = axisProps2[axis].offset(percent);
|
|
let markActive;
|
|
if (track === false) {
|
|
markActive = values.indexOf(mark.value) !== -1;
|
|
} else {
|
|
markActive = track === "normal" && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === "inverted" && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);
|
|
}
|
|
return (0, import_jsx_runtime85.jsxs)(React76.Fragment, {
|
|
children: [(0, import_jsx_runtime84.jsx)(MarkSlot, _extends({
|
|
"data-index": index
|
|
}, markProps, !isHostComponent_default(MarkSlot) && {
|
|
markActive
|
|
}, {
|
|
style: _extends({}, style, markProps.style),
|
|
className: clsx_default(markProps.className, markActive && classes.markActive)
|
|
})), mark.label != null ? (0, import_jsx_runtime84.jsx)(MarkLabelSlot, _extends({
|
|
"aria-hidden": true,
|
|
"data-index": index
|
|
}, markLabelProps, !isHostComponent_default(MarkLabelSlot) && {
|
|
markLabelActive: markActive
|
|
}, {
|
|
style: _extends({}, style, markLabelProps.style),
|
|
className: clsx_default(classes.markLabel, markLabelProps.className, markActive && classes.markLabelActive),
|
|
children: mark.label
|
|
})) : null]
|
|
}, index);
|
|
}), values.map((value, index) => {
|
|
const percent = valueToPercent(value, min, max);
|
|
const style = axisProps2[axis].offset(percent);
|
|
const ValueLabelComponent = valueLabelDisplay === "off" ? Forward : ValueLabelSlot;
|
|
return (
|
|
/* TODO v6: Change component structure. It will help in avoiding the complicated React.cloneElement API added in SliderValueLabel component. Should be: Thumb -> Input, ValueLabel. Follow Joy UI's Slider structure. */
|
|
(0, import_jsx_runtime84.jsx)(ValueLabelComponent, _extends({}, !isHostComponent_default(ValueLabelComponent) && {
|
|
valueLabelFormat,
|
|
valueLabelDisplay,
|
|
value: typeof valueLabelFormat === "function" ? valueLabelFormat(scale(value), index) : valueLabelFormat,
|
|
index,
|
|
open: open === index || active === index || valueLabelDisplay === "on",
|
|
disabled
|
|
}, valueLabelProps, {
|
|
children: (0, import_jsx_runtime84.jsx)(ThumbSlot, _extends({
|
|
"data-index": index
|
|
}, thumbProps, {
|
|
className: clsx_default(classes.thumb, thumbProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),
|
|
style: _extends({}, style, getThumbStyle(index), thumbProps.style),
|
|
children: (0, import_jsx_runtime84.jsx)(InputSlot, _extends({
|
|
"data-index": index,
|
|
"aria-label": getAriaLabel ? getAriaLabel(index) : ariaLabel,
|
|
"aria-valuenow": scale(value),
|
|
"aria-labelledby": ariaLabelledby,
|
|
"aria-valuetext": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,
|
|
value: values[index]
|
|
}, inputSliderProps))
|
|
}))
|
|
}), index)
|
|
);
|
|
})]
|
|
}));
|
|
});
|
|
true ? Slider.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The label of the slider.
|
|
*/
|
|
"aria-label": chainPropTypes(import_prop_types59.default.string, (props) => {
|
|
const range = Array.isArray(props.value || props.defaultValue);
|
|
if (range && props["aria-label"] != null) {
|
|
return new Error("MUI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.");
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* The id of the element containing a label for the slider.
|
|
*/
|
|
"aria-labelledby": import_prop_types59.default.string,
|
|
/**
|
|
* A string value that provides a user-friendly name for the current value of the slider.
|
|
*/
|
|
"aria-valuetext": chainPropTypes(import_prop_types59.default.string, (props) => {
|
|
const range = Array.isArray(props.value || props.defaultValue);
|
|
if (range && props["aria-valuetext"] != null) {
|
|
return new Error("MUI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.");
|
|
}
|
|
return null;
|
|
}),
|
|
/**
|
|
* @ignore
|
|
*/
|
|
children: import_prop_types59.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types59.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types59.default.string,
|
|
/**
|
|
* The color of the component.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'primary'
|
|
*/
|
|
color: import_prop_types59.default.oneOfType([import_prop_types59.default.oneOf(["primary", "secondary", "error", "info", "success", "warning"]), import_prop_types59.default.string]),
|
|
/**
|
|
* The components used for each slot inside.
|
|
*
|
|
* @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
|
|
*
|
|
* @default {}
|
|
*/
|
|
components: import_prop_types59.default.shape({
|
|
Input: import_prop_types59.default.elementType,
|
|
Mark: import_prop_types59.default.elementType,
|
|
MarkLabel: import_prop_types59.default.elementType,
|
|
Rail: import_prop_types59.default.elementType,
|
|
Root: import_prop_types59.default.elementType,
|
|
Thumb: import_prop_types59.default.elementType,
|
|
Track: import_prop_types59.default.elementType,
|
|
ValueLabel: import_prop_types59.default.elementType
|
|
}),
|
|
/**
|
|
* The extra props for the slot components.
|
|
* You can override the existing props or add new ones.
|
|
*
|
|
* @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
|
|
*
|
|
* @default {}
|
|
*/
|
|
componentsProps: import_prop_types59.default.shape({
|
|
input: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
mark: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
markLabel: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
rail: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
root: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
thumb: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
track: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
valueLabel: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.shape({
|
|
children: import_prop_types59.default.element,
|
|
className: import_prop_types59.default.string,
|
|
open: import_prop_types59.default.bool,
|
|
style: import_prop_types59.default.object,
|
|
value: import_prop_types59.default.number,
|
|
valueLabelDisplay: import_prop_types59.default.oneOf(["auto", "off", "on"])
|
|
})])
|
|
}),
|
|
/**
|
|
* The default value. Use when the component is not controlled.
|
|
*/
|
|
defaultValue: import_prop_types59.default.oneOfType([import_prop_types59.default.arrayOf(import_prop_types59.default.number), import_prop_types59.default.number]),
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types59.default.bool,
|
|
/**
|
|
* If `true`, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.
|
|
* @default false
|
|
*/
|
|
disableSwap: import_prop_types59.default.bool,
|
|
/**
|
|
* Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.
|
|
* This is important for screen reader users.
|
|
* @param {number} index The thumb label's index to format.
|
|
* @returns {string}
|
|
*/
|
|
getAriaLabel: import_prop_types59.default.func,
|
|
/**
|
|
* Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.
|
|
* This is important for screen reader users.
|
|
* @param {number} value The thumb label's value to format.
|
|
* @param {number} index The thumb label's index to format.
|
|
* @returns {string}
|
|
*/
|
|
getAriaValueText: import_prop_types59.default.func,
|
|
/**
|
|
* Marks indicate predetermined values to which the user can move the slider.
|
|
* If `true` the marks are spaced according the value of the `step` prop.
|
|
* If an array, it should contain objects with `value` and an optional `label` keys.
|
|
* @default false
|
|
*/
|
|
marks: import_prop_types59.default.oneOfType([import_prop_types59.default.arrayOf(import_prop_types59.default.shape({
|
|
label: import_prop_types59.default.node,
|
|
value: import_prop_types59.default.number.isRequired
|
|
})), import_prop_types59.default.bool]),
|
|
/**
|
|
* The maximum allowed value of the slider.
|
|
* Should not be equal to min.
|
|
* @default 100
|
|
*/
|
|
max: import_prop_types59.default.number,
|
|
/**
|
|
* The minimum allowed value of the slider.
|
|
* Should not be equal to max.
|
|
* @default 0
|
|
*/
|
|
min: import_prop_types59.default.number,
|
|
/**
|
|
* Name attribute of the hidden `input` element.
|
|
*/
|
|
name: import_prop_types59.default.string,
|
|
/**
|
|
* Callback function that is fired when the slider's value changed.
|
|
*
|
|
* @param {Event} event The event source of the callback.
|
|
* You can pull out the new value by accessing `event.target.value` (any).
|
|
* **Warning**: This is a generic event not a change event.
|
|
* @param {number | number[]} value The new value.
|
|
* @param {number} activeThumb Index of the currently moved thumb.
|
|
*/
|
|
onChange: import_prop_types59.default.func,
|
|
/**
|
|
* Callback function that is fired when the `mouseup` is triggered.
|
|
*
|
|
* @param {React.SyntheticEvent | Event} event The event source of the callback. **Warning**: This is a generic event not a change event.
|
|
* @param {number | number[]} value The new value.
|
|
*/
|
|
onChangeCommitted: import_prop_types59.default.func,
|
|
/**
|
|
* The component orientation.
|
|
* @default 'horizontal'
|
|
*/
|
|
orientation: import_prop_types59.default.oneOf(["horizontal", "vertical"]),
|
|
/**
|
|
* A transformation function, to change the scale of the slider.
|
|
* @param {any} x
|
|
* @returns {any}
|
|
* @default function Identity(x) {
|
|
* return x;
|
|
* }
|
|
*/
|
|
scale: import_prop_types59.default.func,
|
|
/**
|
|
* The granularity with which the slider can step through values when using Page Up/Page Down or Shift + Arrow Up/Arrow Down.
|
|
* @default 10
|
|
*/
|
|
shiftStep: import_prop_types59.default.number,
|
|
/**
|
|
* The size of the slider.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types59.default.oneOfType([import_prop_types59.default.oneOf(["small", "medium"]), import_prop_types59.default.string]),
|
|
/**
|
|
* The props used for each slot inside the Slider.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types59.default.shape({
|
|
input: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
mark: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
markLabel: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
rail: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
root: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
thumb: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
track: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
valueLabel: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.shape({
|
|
children: import_prop_types59.default.element,
|
|
className: import_prop_types59.default.string,
|
|
open: import_prop_types59.default.bool,
|
|
style: import_prop_types59.default.object,
|
|
value: import_prop_types59.default.number,
|
|
valueLabelDisplay: import_prop_types59.default.oneOf(["auto", "off", "on"])
|
|
})])
|
|
}),
|
|
/**
|
|
* The components used for each slot inside the Slider.
|
|
* Either a string to use a HTML element or a component.
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types59.default.shape({
|
|
input: import_prop_types59.default.elementType,
|
|
mark: import_prop_types59.default.elementType,
|
|
markLabel: import_prop_types59.default.elementType,
|
|
rail: import_prop_types59.default.elementType,
|
|
root: import_prop_types59.default.elementType,
|
|
thumb: import_prop_types59.default.elementType,
|
|
track: import_prop_types59.default.elementType,
|
|
valueLabel: import_prop_types59.default.elementType
|
|
}),
|
|
/**
|
|
* The granularity with which the slider can step through values. (A "discrete" slider.)
|
|
* The `min` prop serves as the origin for the valid values.
|
|
* We recommend (max - min) to be evenly divisible by the step.
|
|
*
|
|
* When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.
|
|
* @default 1
|
|
*/
|
|
step: import_prop_types59.default.number,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types59.default.oneOfType([import_prop_types59.default.arrayOf(import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.object, import_prop_types59.default.bool])), import_prop_types59.default.func, import_prop_types59.default.object]),
|
|
/**
|
|
* Tab index attribute of the hidden `input` element.
|
|
*/
|
|
tabIndex: import_prop_types59.default.number,
|
|
/**
|
|
* The track presentation:
|
|
*
|
|
* - `normal` the track will render a bar representing the slider value.
|
|
* - `inverted` the track will render a bar representing the remaining slider value.
|
|
* - `false` the track will render without a bar.
|
|
* @default 'normal'
|
|
*/
|
|
track: import_prop_types59.default.oneOf(["inverted", "normal", false]),
|
|
/**
|
|
* The value of the slider.
|
|
* For ranged sliders, provide an array with two values.
|
|
*/
|
|
value: import_prop_types59.default.oneOfType([import_prop_types59.default.arrayOf(import_prop_types59.default.number), import_prop_types59.default.number]),
|
|
/**
|
|
* Controls when the value label is displayed:
|
|
*
|
|
* - `auto` the value label will display when the thumb is hovered or focused.
|
|
* - `on` will display persistently.
|
|
* - `off` will never display.
|
|
* @default 'off'
|
|
*/
|
|
valueLabelDisplay: import_prop_types59.default.oneOf(["auto", "off", "on"]),
|
|
/**
|
|
* The format function the value label's value.
|
|
*
|
|
* When a function is provided, it should have the following signature:
|
|
*
|
|
* - {number} value The value label's value to format
|
|
* - {number} index The value label's index to format
|
|
* @param {any} x
|
|
* @returns {any}
|
|
* @default function Identity(x) {
|
|
* return x;
|
|
* }
|
|
*/
|
|
valueLabelFormat: import_prop_types59.default.oneOfType([import_prop_types59.default.func, import_prop_types59.default.string])
|
|
} : void 0;
|
|
var Slider_default = Slider;
|
|
|
|
// node_modules/@mui/material/Snackbar/Snackbar.js
|
|
init_extends();
|
|
var React79 = __toESM(require_react());
|
|
var import_prop_types61 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Snackbar/useSnackbar.js
|
|
init_extends();
|
|
var React77 = __toESM(require_react());
|
|
function useSnackbar(parameters = {}) {
|
|
const {
|
|
autoHideDuration = null,
|
|
disableWindowBlurListener = false,
|
|
onClose,
|
|
open,
|
|
resumeHideDuration
|
|
} = parameters;
|
|
const timerAutoHide = useTimeout();
|
|
React77.useEffect(() => {
|
|
if (!open) {
|
|
return void 0;
|
|
}
|
|
function handleKeyDown(nativeEvent) {
|
|
if (!nativeEvent.defaultPrevented) {
|
|
if (nativeEvent.key === "Escape" || nativeEvent.key === "Esc") {
|
|
onClose == null || onClose(nativeEvent, "escapeKeyDown");
|
|
}
|
|
}
|
|
}
|
|
document.addEventListener("keydown", handleKeyDown);
|
|
return () => {
|
|
document.removeEventListener("keydown", handleKeyDown);
|
|
};
|
|
}, [open, onClose]);
|
|
const handleClose = useEventCallback_default((event, reason) => {
|
|
onClose == null || onClose(event, reason);
|
|
});
|
|
const setAutoHideTimer = useEventCallback_default((autoHideDurationParam) => {
|
|
if (!onClose || autoHideDurationParam == null) {
|
|
return;
|
|
}
|
|
timerAutoHide.start(autoHideDurationParam, () => {
|
|
handleClose(null, "timeout");
|
|
});
|
|
});
|
|
React77.useEffect(() => {
|
|
if (open) {
|
|
setAutoHideTimer(autoHideDuration);
|
|
}
|
|
return timerAutoHide.clear;
|
|
}, [open, autoHideDuration, setAutoHideTimer, timerAutoHide]);
|
|
const handleClickAway = (event) => {
|
|
onClose == null || onClose(event, "clickaway");
|
|
};
|
|
const handlePause = timerAutoHide.clear;
|
|
const handleResume = React77.useCallback(() => {
|
|
if (autoHideDuration != null) {
|
|
setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);
|
|
}
|
|
}, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);
|
|
const createHandleBlur = (otherHandlers) => (event) => {
|
|
const onBlurCallback = otherHandlers.onBlur;
|
|
onBlurCallback == null || onBlurCallback(event);
|
|
handleResume();
|
|
};
|
|
const createHandleFocus = (otherHandlers) => (event) => {
|
|
const onFocusCallback = otherHandlers.onFocus;
|
|
onFocusCallback == null || onFocusCallback(event);
|
|
handlePause();
|
|
};
|
|
const createMouseEnter = (otherHandlers) => (event) => {
|
|
const onMouseEnterCallback = otherHandlers.onMouseEnter;
|
|
onMouseEnterCallback == null || onMouseEnterCallback(event);
|
|
handlePause();
|
|
};
|
|
const createMouseLeave = (otherHandlers) => (event) => {
|
|
const onMouseLeaveCallback = otherHandlers.onMouseLeave;
|
|
onMouseLeaveCallback == null || onMouseLeaveCallback(event);
|
|
handleResume();
|
|
};
|
|
React77.useEffect(() => {
|
|
if (!disableWindowBlurListener && open) {
|
|
window.addEventListener("focus", handleResume);
|
|
window.addEventListener("blur", handlePause);
|
|
return () => {
|
|
window.removeEventListener("focus", handleResume);
|
|
window.removeEventListener("blur", handlePause);
|
|
};
|
|
}
|
|
return void 0;
|
|
}, [disableWindowBlurListener, open, handleResume, handlePause]);
|
|
const getRootProps = (externalProps = {}) => {
|
|
const externalEventHandlers = _extends({}, extractEventHandlers_default(parameters), extractEventHandlers_default(externalProps));
|
|
return _extends({
|
|
// ClickAwayListener adds an `onClick` prop which results in the alert not being announced.
|
|
// See https://github.com/mui/material-ui/issues/29080
|
|
role: "presentation"
|
|
}, externalProps, externalEventHandlers, {
|
|
onBlur: createHandleBlur(externalEventHandlers),
|
|
onFocus: createHandleFocus(externalEventHandlers),
|
|
onMouseEnter: createMouseEnter(externalEventHandlers),
|
|
onMouseLeave: createMouseLeave(externalEventHandlers)
|
|
});
|
|
};
|
|
return {
|
|
getRootProps,
|
|
onClickAway: handleClickAway
|
|
};
|
|
}
|
|
var useSnackbar_default = useSnackbar;
|
|
|
|
// node_modules/@mui/material/SnackbarContent/SnackbarContent.js
|
|
init_extends();
|
|
var React78 = __toESM(require_react());
|
|
var import_prop_types60 = __toESM(require_prop_types());
|
|
var import_colorManipulator11 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/SnackbarContent/snackbarContentClasses.js
|
|
function getSnackbarContentUtilityClass(slot) {
|
|
return generateUtilityClass("MuiSnackbarContent", slot);
|
|
}
|
|
var snackbarContentClasses = generateUtilityClasses("MuiSnackbarContent", ["root", "message", "action"]);
|
|
var snackbarContentClasses_default = snackbarContentClasses;
|
|
|
|
// node_modules/@mui/material/SnackbarContent/SnackbarContent.js
|
|
var import_jsx_runtime86 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime87 = __toESM(require_jsx_runtime());
|
|
var _excluded58 = ["action", "className", "message", "role"];
|
|
var useUtilityClasses50 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"],
|
|
action: ["action"],
|
|
message: ["message"]
|
|
};
|
|
return composeClasses(slots, getSnackbarContentUtilityClass, classes);
|
|
};
|
|
var SnackbarContentRoot = styled_default(Paper_default, {
|
|
name: "MuiSnackbarContent",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(({
|
|
theme
|
|
}) => {
|
|
const emphasis = theme.palette.mode === "light" ? 0.8 : 0.98;
|
|
const backgroundColor = (0, import_colorManipulator11.emphasize)(theme.palette.background.default, emphasis);
|
|
return _extends({}, theme.typography.body2, {
|
|
color: theme.vars ? theme.vars.palette.SnackbarContent.color : theme.palette.getContrastText(backgroundColor),
|
|
backgroundColor: theme.vars ? theme.vars.palette.SnackbarContent.bg : backgroundColor,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
flexWrap: "wrap",
|
|
padding: "6px 16px",
|
|
borderRadius: (theme.vars || theme).shape.borderRadius,
|
|
flexGrow: 1,
|
|
[theme.breakpoints.up("sm")]: {
|
|
flexGrow: "initial",
|
|
minWidth: 288
|
|
}
|
|
});
|
|
});
|
|
var SnackbarContentMessage = styled_default("div", {
|
|
name: "MuiSnackbarContent",
|
|
slot: "Message",
|
|
overridesResolver: (props, styles3) => styles3.message
|
|
})({
|
|
padding: "8px 0"
|
|
});
|
|
var SnackbarContentAction = styled_default("div", {
|
|
name: "MuiSnackbarContent",
|
|
slot: "Action",
|
|
overridesResolver: (props, styles3) => styles3.action
|
|
})({
|
|
display: "flex",
|
|
alignItems: "center",
|
|
marginLeft: "auto",
|
|
paddingLeft: 16,
|
|
marginRight: -8
|
|
});
|
|
var SnackbarContent = React78.forwardRef(function SnackbarContent2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiSnackbarContent"
|
|
});
|
|
const {
|
|
action,
|
|
className,
|
|
message,
|
|
role = "alert"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded58);
|
|
const ownerState = props;
|
|
const classes = useUtilityClasses50(ownerState);
|
|
return (0, import_jsx_runtime87.jsxs)(SnackbarContentRoot, _extends({
|
|
role,
|
|
square: true,
|
|
elevation: 6,
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref
|
|
}, other, {
|
|
children: [(0, import_jsx_runtime86.jsx)(SnackbarContentMessage, {
|
|
className: classes.message,
|
|
ownerState,
|
|
children: message
|
|
}), action ? (0, import_jsx_runtime86.jsx)(SnackbarContentAction, {
|
|
className: classes.action,
|
|
ownerState,
|
|
children: action
|
|
}) : null]
|
|
}));
|
|
});
|
|
true ? SnackbarContent.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The action to display. It renders after the message, at the end of the snackbar.
|
|
*/
|
|
action: import_prop_types60.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types60.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types60.default.string,
|
|
/**
|
|
* The message to display.
|
|
*/
|
|
message: import_prop_types60.default.node,
|
|
/**
|
|
* The ARIA role attribute of the element.
|
|
* @default 'alert'
|
|
*/
|
|
role: import_prop_types60.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types60.default.oneOfType([import_prop_types60.default.arrayOf(import_prop_types60.default.oneOfType([import_prop_types60.default.func, import_prop_types60.default.object, import_prop_types60.default.bool])), import_prop_types60.default.func, import_prop_types60.default.object])
|
|
} : void 0;
|
|
var SnackbarContent_default = SnackbarContent;
|
|
|
|
// node_modules/@mui/material/Snackbar/snackbarClasses.js
|
|
function getSnackbarUtilityClass(slot) {
|
|
return generateUtilityClass("MuiSnackbar", slot);
|
|
}
|
|
var snackbarClasses = generateUtilityClasses("MuiSnackbar", ["root", "anchorOriginTopCenter", "anchorOriginBottomCenter", "anchorOriginTopRight", "anchorOriginBottomRight", "anchorOriginTopLeft", "anchorOriginBottomLeft"]);
|
|
var snackbarClasses_default = snackbarClasses;
|
|
|
|
// node_modules/@mui/material/Snackbar/Snackbar.js
|
|
var import_jsx_runtime88 = __toESM(require_jsx_runtime());
|
|
var _excluded59 = ["onEnter", "onExited"];
|
|
var _excluded214 = ["action", "anchorOrigin", "autoHideDuration", "children", "className", "ClickAwayListenerProps", "ContentProps", "disableWindowBlurListener", "message", "onBlur", "onClose", "onFocus", "onMouseEnter", "onMouseLeave", "open", "resumeHideDuration", "TransitionComponent", "transitionDuration", "TransitionProps"];
|
|
var useUtilityClasses51 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
anchorOrigin
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `anchorOrigin${capitalize_default(anchorOrigin.vertical)}${capitalize_default(anchorOrigin.horizontal)}`]
|
|
};
|
|
return composeClasses(slots, getSnackbarUtilityClass, classes);
|
|
};
|
|
var SnackbarRoot = styled_default("div", {
|
|
name: "MuiSnackbar",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`anchorOrigin${capitalize_default(ownerState.anchorOrigin.vertical)}${capitalize_default(ownerState.anchorOrigin.horizontal)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
const center = {
|
|
left: "50%",
|
|
right: "auto",
|
|
transform: "translateX(-50%)"
|
|
};
|
|
return _extends({
|
|
zIndex: (theme.vars || theme).zIndex.snackbar,
|
|
position: "fixed",
|
|
display: "flex",
|
|
left: 8,
|
|
right: 8,
|
|
justifyContent: "center",
|
|
alignItems: "center"
|
|
}, ownerState.anchorOrigin.vertical === "top" ? {
|
|
top: 8
|
|
} : {
|
|
bottom: 8
|
|
}, ownerState.anchorOrigin.horizontal === "left" && {
|
|
justifyContent: "flex-start"
|
|
}, ownerState.anchorOrigin.horizontal === "right" && {
|
|
justifyContent: "flex-end"
|
|
}, {
|
|
[theme.breakpoints.up("sm")]: _extends({}, ownerState.anchorOrigin.vertical === "top" ? {
|
|
top: 24
|
|
} : {
|
|
bottom: 24
|
|
}, ownerState.anchorOrigin.horizontal === "center" && center, ownerState.anchorOrigin.horizontal === "left" && {
|
|
left: 24,
|
|
right: "auto"
|
|
}, ownerState.anchorOrigin.horizontal === "right" && {
|
|
right: 24,
|
|
left: "auto"
|
|
})
|
|
});
|
|
});
|
|
var Snackbar = React79.forwardRef(function Snackbar2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiSnackbar"
|
|
});
|
|
const theme = useTheme();
|
|
const defaultTransitionDuration = {
|
|
enter: theme.transitions.duration.enteringScreen,
|
|
exit: theme.transitions.duration.leavingScreen
|
|
};
|
|
const {
|
|
action,
|
|
anchorOrigin: {
|
|
vertical,
|
|
horizontal
|
|
} = {
|
|
vertical: "bottom",
|
|
horizontal: "left"
|
|
},
|
|
autoHideDuration = null,
|
|
children,
|
|
className,
|
|
ClickAwayListenerProps,
|
|
ContentProps,
|
|
disableWindowBlurListener = false,
|
|
message,
|
|
open,
|
|
TransitionComponent = Grow_default,
|
|
transitionDuration = defaultTransitionDuration,
|
|
TransitionProps: {
|
|
onEnter,
|
|
onExited
|
|
} = {}
|
|
} = props, TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded59), other = _objectWithoutPropertiesLoose(props, _excluded214);
|
|
const ownerState = _extends({}, props, {
|
|
anchorOrigin: {
|
|
vertical,
|
|
horizontal
|
|
},
|
|
autoHideDuration,
|
|
disableWindowBlurListener,
|
|
TransitionComponent,
|
|
transitionDuration
|
|
});
|
|
const classes = useUtilityClasses51(ownerState);
|
|
const {
|
|
getRootProps,
|
|
onClickAway
|
|
} = useSnackbar_default(_extends({}, ownerState));
|
|
const [exited, setExited] = React79.useState(true);
|
|
const rootProps = useSlotProps_default({
|
|
elementType: SnackbarRoot,
|
|
getSlotProps: getRootProps,
|
|
externalForwardedProps: other,
|
|
ownerState,
|
|
additionalProps: {
|
|
ref
|
|
},
|
|
className: [classes.root, className]
|
|
});
|
|
const handleExited = (node) => {
|
|
setExited(true);
|
|
if (onExited) {
|
|
onExited(node);
|
|
}
|
|
};
|
|
const handleEnter = (node, isAppearing) => {
|
|
setExited(false);
|
|
if (onEnter) {
|
|
onEnter(node, isAppearing);
|
|
}
|
|
};
|
|
if (!open && exited) {
|
|
return null;
|
|
}
|
|
return (0, import_jsx_runtime88.jsx)(ClickAwayListener, _extends({
|
|
onClickAway
|
|
}, ClickAwayListenerProps, {
|
|
children: (0, import_jsx_runtime88.jsx)(SnackbarRoot, _extends({}, rootProps, {
|
|
children: (0, import_jsx_runtime88.jsx)(TransitionComponent, _extends({
|
|
appear: true,
|
|
in: open,
|
|
timeout: transitionDuration,
|
|
direction: vertical === "top" ? "down" : "up",
|
|
onEnter: handleEnter,
|
|
onExited: handleExited
|
|
}, TransitionProps, {
|
|
children: children || (0, import_jsx_runtime88.jsx)(SnackbarContent_default, _extends({
|
|
message,
|
|
action
|
|
}, ContentProps))
|
|
}))
|
|
}))
|
|
}));
|
|
});
|
|
true ? Snackbar.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The action to display. It renders after the message, at the end of the snackbar.
|
|
*/
|
|
action: import_prop_types61.default.node,
|
|
/**
|
|
* The anchor of the `Snackbar`.
|
|
* On smaller screens, the component grows to occupy all the available width,
|
|
* the horizontal alignment is ignored.
|
|
* @default { vertical: 'bottom', horizontal: 'left' }
|
|
*/
|
|
anchorOrigin: import_prop_types61.default.shape({
|
|
horizontal: import_prop_types61.default.oneOf(["center", "left", "right"]).isRequired,
|
|
vertical: import_prop_types61.default.oneOf(["bottom", "top"]).isRequired
|
|
}),
|
|
/**
|
|
* The number of milliseconds to wait before automatically calling the
|
|
* `onClose` function. `onClose` should then set the state of the `open`
|
|
* prop to hide the Snackbar. This behavior is disabled by default with
|
|
* the `null` value.
|
|
* @default null
|
|
*/
|
|
autoHideDuration: import_prop_types61.default.number,
|
|
/**
|
|
* Replace the `SnackbarContent` component.
|
|
*/
|
|
children: import_prop_types61.default.element,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types61.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types61.default.string,
|
|
/**
|
|
* Props applied to the `ClickAwayListener` element.
|
|
*/
|
|
ClickAwayListenerProps: import_prop_types61.default.object,
|
|
/**
|
|
* Props applied to the [`SnackbarContent`](/material-ui/api/snackbar-content/) element.
|
|
*/
|
|
ContentProps: import_prop_types61.default.object,
|
|
/**
|
|
* If `true`, the `autoHideDuration` timer will expire even if the window is not focused.
|
|
* @default false
|
|
*/
|
|
disableWindowBlurListener: import_prop_types61.default.bool,
|
|
/**
|
|
* When displaying multiple consecutive snackbars using a single parent-rendered
|
|
* `<Snackbar/>`, add the `key` prop to ensure independent treatment of each message.
|
|
* For instance, use `<Snackbar key={message} />`. Otherwise, messages might update
|
|
* in place, and features like `autoHideDuration` could be affected.
|
|
*/
|
|
key: () => null,
|
|
/**
|
|
* The message to display.
|
|
*/
|
|
message: import_prop_types61.default.node,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onBlur: import_prop_types61.default.func,
|
|
/**
|
|
* Callback fired when the component requests to be closed.
|
|
* Typically `onClose` is used to set state in the parent component,
|
|
* which is used to control the `Snackbar` `open` prop.
|
|
* The `reason` parameter can optionally be used to control the response to `onClose`,
|
|
* for example ignoring `clickaway`.
|
|
*
|
|
* @param {React.SyntheticEvent<any> | Event} event The event source of the callback.
|
|
* @param {string} reason Can be: `"timeout"` (`autoHideDuration` expired), `"clickaway"`, or `"escapeKeyDown"`.
|
|
*/
|
|
onClose: import_prop_types61.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onFocus: import_prop_types61.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onMouseEnter: import_prop_types61.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onMouseLeave: import_prop_types61.default.func,
|
|
/**
|
|
* If `true`, the component is shown.
|
|
*/
|
|
open: import_prop_types61.default.bool,
|
|
/**
|
|
* The number of milliseconds to wait before dismissing after user interaction.
|
|
* If `autoHideDuration` prop isn't specified, it does nothing.
|
|
* If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,
|
|
* we default to `autoHideDuration / 2` ms.
|
|
*/
|
|
resumeHideDuration: import_prop_types61.default.number,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types61.default.oneOfType([import_prop_types61.default.arrayOf(import_prop_types61.default.oneOfType([import_prop_types61.default.func, import_prop_types61.default.object, import_prop_types61.default.bool])), import_prop_types61.default.func, import_prop_types61.default.object]),
|
|
/**
|
|
* The component used for the transition.
|
|
* [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
|
|
* @default Grow
|
|
*/
|
|
TransitionComponent: import_prop_types61.default.elementType,
|
|
/**
|
|
* The duration for the transition, in milliseconds.
|
|
* You may specify a single timeout for all transitions, or individually with an object.
|
|
* @default {
|
|
* enter: theme.transitions.duration.enteringScreen,
|
|
* exit: theme.transitions.duration.leavingScreen,
|
|
* }
|
|
*/
|
|
transitionDuration: import_prop_types61.default.oneOfType([import_prop_types61.default.number, import_prop_types61.default.shape({
|
|
appear: import_prop_types61.default.number,
|
|
enter: import_prop_types61.default.number,
|
|
exit: import_prop_types61.default.number
|
|
})]),
|
|
/**
|
|
* Props applied to the transition element.
|
|
* By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
|
|
* @default {}
|
|
*/
|
|
TransitionProps: import_prop_types61.default.object
|
|
} : void 0;
|
|
var Snackbar_default = Snackbar;
|
|
|
|
// node_modules/@mui/material/SpeedDial/SpeedDial.js
|
|
init_extends();
|
|
var React81 = __toESM(require_react());
|
|
var import_react_is6 = __toESM(require_react_is());
|
|
var import_prop_types63 = __toESM(require_prop_types());
|
|
init_clamp();
|
|
|
|
// node_modules/@mui/material/Zoom/Zoom.js
|
|
init_extends();
|
|
var React80 = __toESM(require_react());
|
|
var import_prop_types62 = __toESM(require_prop_types());
|
|
var import_jsx_runtime89 = __toESM(require_jsx_runtime());
|
|
var _excluded60 = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];
|
|
var styles = {
|
|
entering: {
|
|
transform: "none"
|
|
},
|
|
entered: {
|
|
transform: "none"
|
|
}
|
|
};
|
|
var Zoom = React80.forwardRef(function Zoom2(props, ref) {
|
|
const theme = useTheme();
|
|
const defaultTimeout = {
|
|
enter: theme.transitions.duration.enteringScreen,
|
|
exit: theme.transitions.duration.leavingScreen
|
|
};
|
|
const {
|
|
addEndListener,
|
|
appear = true,
|
|
children,
|
|
easing: easing2,
|
|
in: inProp,
|
|
onEnter,
|
|
onEntered,
|
|
onEntering,
|
|
onExit,
|
|
onExited,
|
|
onExiting,
|
|
style,
|
|
timeout = defaultTimeout,
|
|
// eslint-disable-next-line react/prop-types
|
|
TransitionComponent = Transition_default
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded60);
|
|
const nodeRef = React80.useRef(null);
|
|
const handleRef = useForkRef_default(nodeRef, getReactElementRef(children), ref);
|
|
const normalizedTransitionCallback = (callback) => (maybeIsAppearing) => {
|
|
if (callback) {
|
|
const node = nodeRef.current;
|
|
if (maybeIsAppearing === void 0) {
|
|
callback(node);
|
|
} else {
|
|
callback(node, maybeIsAppearing);
|
|
}
|
|
}
|
|
};
|
|
const handleEntering = normalizedTransitionCallback(onEntering);
|
|
const handleEnter = normalizedTransitionCallback((node, isAppearing) => {
|
|
reflow(node);
|
|
const transitionProps = getTransitionProps({
|
|
style,
|
|
timeout,
|
|
easing: easing2
|
|
}, {
|
|
mode: "enter"
|
|
});
|
|
node.style.webkitTransition = theme.transitions.create("transform", transitionProps);
|
|
node.style.transition = theme.transitions.create("transform", transitionProps);
|
|
if (onEnter) {
|
|
onEnter(node, isAppearing);
|
|
}
|
|
});
|
|
const handleEntered = normalizedTransitionCallback(onEntered);
|
|
const handleExiting = normalizedTransitionCallback(onExiting);
|
|
const handleExit = normalizedTransitionCallback((node) => {
|
|
const transitionProps = getTransitionProps({
|
|
style,
|
|
timeout,
|
|
easing: easing2
|
|
}, {
|
|
mode: "exit"
|
|
});
|
|
node.style.webkitTransition = theme.transitions.create("transform", transitionProps);
|
|
node.style.transition = theme.transitions.create("transform", transitionProps);
|
|
if (onExit) {
|
|
onExit(node);
|
|
}
|
|
});
|
|
const handleExited = normalizedTransitionCallback(onExited);
|
|
const handleAddEndListener = (next) => {
|
|
if (addEndListener) {
|
|
addEndListener(nodeRef.current, next);
|
|
}
|
|
};
|
|
return (0, import_jsx_runtime89.jsx)(TransitionComponent, _extends({
|
|
appear,
|
|
in: inProp,
|
|
nodeRef,
|
|
onEnter: handleEnter,
|
|
onEntered: handleEntered,
|
|
onEntering: handleEntering,
|
|
onExit: handleExit,
|
|
onExited: handleExited,
|
|
onExiting: handleExiting,
|
|
addEndListener: handleAddEndListener,
|
|
timeout
|
|
}, other, {
|
|
children: (state, childProps) => {
|
|
return React80.cloneElement(children, _extends({
|
|
style: _extends({
|
|
transform: "scale(0)",
|
|
visibility: state === "exited" && !inProp ? "hidden" : void 0
|
|
}, styles[state], style, children.props.style),
|
|
ref: handleRef
|
|
}, childProps));
|
|
}
|
|
}));
|
|
});
|
|
true ? Zoom.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Add a custom transition end trigger. Called with the transitioning DOM
|
|
* node and a done callback. Allows for more fine grained transition end
|
|
* logic. Note: Timeouts are still used as a fallback if provided.
|
|
*/
|
|
addEndListener: import_prop_types62.default.func,
|
|
/**
|
|
* Perform the enter transition when it first mounts if `in` is also `true`.
|
|
* Set this to `false` to disable this behavior.
|
|
* @default true
|
|
*/
|
|
appear: import_prop_types62.default.bool,
|
|
/**
|
|
* A single child content element.
|
|
*/
|
|
children: elementAcceptingRef_default.isRequired,
|
|
/**
|
|
* The transition timing function.
|
|
* You may specify a single easing or a object containing enter and exit values.
|
|
*/
|
|
easing: import_prop_types62.default.oneOfType([import_prop_types62.default.shape({
|
|
enter: import_prop_types62.default.string,
|
|
exit: import_prop_types62.default.string
|
|
}), import_prop_types62.default.string]),
|
|
/**
|
|
* If `true`, the component will transition in.
|
|
*/
|
|
in: import_prop_types62.default.bool,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEnter: import_prop_types62.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEntered: import_prop_types62.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onEntering: import_prop_types62.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExit: import_prop_types62.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExited: import_prop_types62.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onExiting: import_prop_types62.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
style: import_prop_types62.default.object,
|
|
/**
|
|
* The duration for the transition, in milliseconds.
|
|
* You may specify a single timeout for all transitions, or individually with an object.
|
|
* @default {
|
|
* enter: theme.transitions.duration.enteringScreen,
|
|
* exit: theme.transitions.duration.leavingScreen,
|
|
* }
|
|
*/
|
|
timeout: import_prop_types62.default.oneOfType([import_prop_types62.default.number, import_prop_types62.default.shape({
|
|
appear: import_prop_types62.default.number,
|
|
enter: import_prop_types62.default.number,
|
|
exit: import_prop_types62.default.number
|
|
})])
|
|
} : void 0;
|
|
var Zoom_default = Zoom;
|
|
|
|
// node_modules/@mui/material/SpeedDial/speedDialClasses.js
|
|
function getSpeedDialUtilityClass(slot) {
|
|
return generateUtilityClass("MuiSpeedDial", slot);
|
|
}
|
|
var speedDialClasses = generateUtilityClasses("MuiSpeedDial", ["root", "fab", "directionUp", "directionDown", "directionLeft", "directionRight", "actions", "actionsClosed"]);
|
|
var speedDialClasses_default = speedDialClasses;
|
|
|
|
// node_modules/@mui/material/SpeedDial/SpeedDial.js
|
|
var import_jsx_runtime90 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime91 = __toESM(require_jsx_runtime());
|
|
var _excluded61 = ["ref"];
|
|
var _excluded215 = ["ariaLabel", "FabProps", "children", "className", "direction", "hidden", "icon", "onBlur", "onClose", "onFocus", "onKeyDown", "onMouseEnter", "onMouseLeave", "onOpen", "open", "openIcon", "TransitionComponent", "transitionDuration", "TransitionProps"];
|
|
var _excluded310 = ["ref"];
|
|
var useUtilityClasses52 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
open,
|
|
direction
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", `direction${capitalize_default(direction)}`],
|
|
fab: ["fab"],
|
|
actions: ["actions", !open && "actionsClosed"]
|
|
};
|
|
return composeClasses(slots, getSpeedDialUtilityClass, classes);
|
|
};
|
|
function getOrientation(direction) {
|
|
if (direction === "up" || direction === "down") {
|
|
return "vertical";
|
|
}
|
|
if (direction === "right" || direction === "left") {
|
|
return "horizontal";
|
|
}
|
|
return void 0;
|
|
}
|
|
var dialRadius = 32;
|
|
var spacingActions = 16;
|
|
var SpeedDialRoot = styled_default("div", {
|
|
name: "MuiSpeedDial",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`direction${capitalize_default(ownerState.direction)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
zIndex: (theme.vars || theme).zIndex.speedDial,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
pointerEvents: "none"
|
|
}, ownerState.direction === "up" && {
|
|
flexDirection: "column-reverse",
|
|
[`& .${speedDialClasses_default.actions}`]: {
|
|
flexDirection: "column-reverse",
|
|
marginBottom: -dialRadius,
|
|
paddingBottom: spacingActions + dialRadius
|
|
}
|
|
}, ownerState.direction === "down" && {
|
|
flexDirection: "column",
|
|
[`& .${speedDialClasses_default.actions}`]: {
|
|
flexDirection: "column",
|
|
marginTop: -dialRadius,
|
|
paddingTop: spacingActions + dialRadius
|
|
}
|
|
}, ownerState.direction === "left" && {
|
|
flexDirection: "row-reverse",
|
|
[`& .${speedDialClasses_default.actions}`]: {
|
|
flexDirection: "row-reverse",
|
|
marginRight: -dialRadius,
|
|
paddingRight: spacingActions + dialRadius
|
|
}
|
|
}, ownerState.direction === "right" && {
|
|
flexDirection: "row",
|
|
[`& .${speedDialClasses_default.actions}`]: {
|
|
flexDirection: "row",
|
|
marginLeft: -dialRadius,
|
|
paddingLeft: spacingActions + dialRadius
|
|
}
|
|
}));
|
|
var SpeedDialFab = styled_default(Fab_default, {
|
|
name: "MuiSpeedDial",
|
|
slot: "Fab",
|
|
overridesResolver: (props, styles3) => styles3.fab
|
|
})(() => ({
|
|
pointerEvents: "auto"
|
|
}));
|
|
var SpeedDialActions = styled_default("div", {
|
|
name: "MuiSpeedDial",
|
|
slot: "Actions",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.actions, !ownerState.open && styles3.actionsClosed];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex",
|
|
pointerEvents: "auto"
|
|
}, !ownerState.open && {
|
|
transition: "top 0s linear 0.2s",
|
|
pointerEvents: "none"
|
|
}));
|
|
var SpeedDial = React81.forwardRef(function SpeedDial2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiSpeedDial"
|
|
});
|
|
const theme = useTheme();
|
|
const defaultTransitionDuration = {
|
|
enter: theme.transitions.duration.enteringScreen,
|
|
exit: theme.transitions.duration.leavingScreen
|
|
};
|
|
const {
|
|
ariaLabel,
|
|
FabProps: {
|
|
ref: origDialButtonRef
|
|
} = {},
|
|
children: childrenProp,
|
|
className,
|
|
direction = "up",
|
|
hidden = false,
|
|
icon,
|
|
onBlur,
|
|
onClose,
|
|
onFocus,
|
|
onKeyDown,
|
|
onMouseEnter,
|
|
onMouseLeave,
|
|
onOpen,
|
|
open: openProp,
|
|
TransitionComponent = Zoom_default,
|
|
transitionDuration = defaultTransitionDuration,
|
|
TransitionProps
|
|
} = props, FabProps = _objectWithoutPropertiesLoose(props.FabProps, _excluded61), other = _objectWithoutPropertiesLoose(props, _excluded215);
|
|
const [open, setOpenState] = useControlled_default({
|
|
controlled: openProp,
|
|
default: false,
|
|
name: "SpeedDial",
|
|
state: "open"
|
|
});
|
|
const ownerState = _extends({}, props, {
|
|
open,
|
|
direction
|
|
});
|
|
const classes = useUtilityClasses52(ownerState);
|
|
const eventTimer = useTimeout();
|
|
const focusedAction = React81.useRef(0);
|
|
const nextItemArrowKey = React81.useRef();
|
|
const actions = React81.useRef([]);
|
|
actions.current = [actions.current[0]];
|
|
const handleOwnFabRef = React81.useCallback((fabFef) => {
|
|
actions.current[0] = fabFef;
|
|
}, []);
|
|
const handleFabRef = useForkRef_default(origDialButtonRef, handleOwnFabRef);
|
|
const createHandleSpeedDialActionButtonRef = (dialActionIndex, origButtonRef) => {
|
|
return (buttonRef) => {
|
|
actions.current[dialActionIndex + 1] = buttonRef;
|
|
if (origButtonRef) {
|
|
origButtonRef(buttonRef);
|
|
}
|
|
};
|
|
};
|
|
const handleKeyDown = (event) => {
|
|
if (onKeyDown) {
|
|
onKeyDown(event);
|
|
}
|
|
const key = event.key.replace("Arrow", "").toLowerCase();
|
|
const {
|
|
current: nextItemArrowKeyCurrent = key
|
|
} = nextItemArrowKey;
|
|
if (event.key === "Escape") {
|
|
setOpenState(false);
|
|
actions.current[0].focus();
|
|
if (onClose) {
|
|
onClose(event, "escapeKeyDown");
|
|
}
|
|
return;
|
|
}
|
|
if (getOrientation(key) === getOrientation(nextItemArrowKeyCurrent) && getOrientation(key) !== void 0) {
|
|
event.preventDefault();
|
|
const actionStep = key === nextItemArrowKeyCurrent ? 1 : -1;
|
|
const nextAction = clamp_default(focusedAction.current + actionStep, 0, actions.current.length - 1);
|
|
actions.current[nextAction].focus();
|
|
focusedAction.current = nextAction;
|
|
nextItemArrowKey.current = nextItemArrowKeyCurrent;
|
|
}
|
|
};
|
|
React81.useEffect(() => {
|
|
if (!open) {
|
|
focusedAction.current = 0;
|
|
nextItemArrowKey.current = void 0;
|
|
}
|
|
}, [open]);
|
|
const handleClose = (event) => {
|
|
if (event.type === "mouseleave" && onMouseLeave) {
|
|
onMouseLeave(event);
|
|
}
|
|
if (event.type === "blur" && onBlur) {
|
|
onBlur(event);
|
|
}
|
|
eventTimer.clear();
|
|
if (event.type === "blur") {
|
|
eventTimer.start(0, () => {
|
|
setOpenState(false);
|
|
if (onClose) {
|
|
onClose(event, "blur");
|
|
}
|
|
});
|
|
} else {
|
|
setOpenState(false);
|
|
if (onClose) {
|
|
onClose(event, "mouseLeave");
|
|
}
|
|
}
|
|
};
|
|
const handleClick = (event) => {
|
|
if (FabProps.onClick) {
|
|
FabProps.onClick(event);
|
|
}
|
|
eventTimer.clear();
|
|
if (open) {
|
|
setOpenState(false);
|
|
if (onClose) {
|
|
onClose(event, "toggle");
|
|
}
|
|
} else {
|
|
setOpenState(true);
|
|
if (onOpen) {
|
|
onOpen(event, "toggle");
|
|
}
|
|
}
|
|
};
|
|
const handleOpen = (event) => {
|
|
if (event.type === "mouseenter" && onMouseEnter) {
|
|
onMouseEnter(event);
|
|
}
|
|
if (event.type === "focus" && onFocus) {
|
|
onFocus(event);
|
|
}
|
|
eventTimer.clear();
|
|
if (!open) {
|
|
eventTimer.start(0, () => {
|
|
setOpenState(true);
|
|
if (onOpen) {
|
|
const eventMap = {
|
|
focus: "focus",
|
|
mouseenter: "mouseEnter"
|
|
};
|
|
onOpen(event, eventMap[event.type]);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
const id = ariaLabel.replace(/^[^a-z]+|[^\w:.-]+/gi, "");
|
|
const allItems = React81.Children.toArray(childrenProp).filter((child) => {
|
|
if (true) {
|
|
if ((0, import_react_is6.isFragment)(child)) {
|
|
console.error(["MUI: The SpeedDial component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
|
|
}
|
|
}
|
|
return React81.isValidElement(child);
|
|
});
|
|
const children = allItems.map((child, index) => {
|
|
const _child$props = child.props, {
|
|
FabProps: {
|
|
ref: origButtonRef
|
|
} = {},
|
|
tooltipPlacement: tooltipPlacementProp
|
|
} = _child$props, ChildFabProps = _objectWithoutPropertiesLoose(_child$props.FabProps, _excluded310);
|
|
const tooltipPlacement = tooltipPlacementProp || (getOrientation(direction) === "vertical" ? "left" : "top");
|
|
return React81.cloneElement(child, {
|
|
FabProps: _extends({}, ChildFabProps, {
|
|
ref: createHandleSpeedDialActionButtonRef(index, origButtonRef)
|
|
}),
|
|
delay: 30 * (open ? index : allItems.length - index),
|
|
open,
|
|
tooltipPlacement,
|
|
id: `${id}-action-${index}`
|
|
});
|
|
});
|
|
return (0, import_jsx_runtime91.jsxs)(SpeedDialRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
role: "presentation",
|
|
onKeyDown: handleKeyDown,
|
|
onBlur: handleClose,
|
|
onFocus: handleOpen,
|
|
onMouseEnter: handleOpen,
|
|
onMouseLeave: handleClose,
|
|
ownerState
|
|
}, other, {
|
|
children: [(0, import_jsx_runtime90.jsx)(TransitionComponent, _extends({
|
|
in: !hidden,
|
|
timeout: transitionDuration,
|
|
unmountOnExit: true
|
|
}, TransitionProps, {
|
|
children: (0, import_jsx_runtime90.jsx)(SpeedDialFab, _extends({
|
|
color: "primary",
|
|
"aria-label": ariaLabel,
|
|
"aria-haspopup": "true",
|
|
"aria-expanded": open,
|
|
"aria-controls": `${id}-actions`
|
|
}, FabProps, {
|
|
onClick: handleClick,
|
|
className: clsx_default(classes.fab, FabProps.className),
|
|
ref: handleFabRef,
|
|
ownerState,
|
|
children: React81.isValidElement(icon) && isMuiElement_default(icon, ["SpeedDialIcon"]) ? React81.cloneElement(icon, {
|
|
open
|
|
}) : icon
|
|
}))
|
|
})), (0, import_jsx_runtime90.jsx)(SpeedDialActions, {
|
|
id: `${id}-actions`,
|
|
role: "menu",
|
|
"aria-orientation": getOrientation(direction),
|
|
className: clsx_default(classes.actions, !open && classes.actionsClosed),
|
|
ownerState,
|
|
children
|
|
})]
|
|
}));
|
|
});
|
|
true ? SpeedDial.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The aria-label of the button element.
|
|
* Also used to provide the `id` for the `SpeedDial` element and its children.
|
|
*/
|
|
ariaLabel: import_prop_types63.default.string.isRequired,
|
|
/**
|
|
* SpeedDialActions to display when the SpeedDial is `open`.
|
|
*/
|
|
children: import_prop_types63.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types63.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types63.default.string,
|
|
/**
|
|
* The direction the actions open relative to the floating action button.
|
|
* @default 'up'
|
|
*/
|
|
direction: import_prop_types63.default.oneOf(["down", "left", "right", "up"]),
|
|
/**
|
|
* Props applied to the [`Fab`](/material-ui/api/fab/) element.
|
|
* @default {}
|
|
*/
|
|
FabProps: import_prop_types63.default.object,
|
|
/**
|
|
* If `true`, the SpeedDial is hidden.
|
|
* @default false
|
|
*/
|
|
hidden: import_prop_types63.default.bool,
|
|
/**
|
|
* The icon to display in the SpeedDial Fab. The `SpeedDialIcon` component
|
|
* provides a default Icon with animation.
|
|
*/
|
|
icon: import_prop_types63.default.node,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onBlur: import_prop_types63.default.func,
|
|
/**
|
|
* Callback fired when the component requests to be closed.
|
|
*
|
|
* @param {object} event The event source of the callback.
|
|
* @param {string} reason Can be: `"toggle"`, `"blur"`, `"mouseLeave"`, `"escapeKeyDown"`.
|
|
*/
|
|
onClose: import_prop_types63.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onFocus: import_prop_types63.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onKeyDown: import_prop_types63.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onMouseEnter: import_prop_types63.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onMouseLeave: import_prop_types63.default.func,
|
|
/**
|
|
* Callback fired when the component requests to be open.
|
|
*
|
|
* @param {object} event The event source of the callback.
|
|
* @param {string} reason Can be: `"toggle"`, `"focus"`, `"mouseEnter"`.
|
|
*/
|
|
onOpen: import_prop_types63.default.func,
|
|
/**
|
|
* If `true`, the component is shown.
|
|
*/
|
|
open: import_prop_types63.default.bool,
|
|
/**
|
|
* The icon to display in the SpeedDial Fab when the SpeedDial is open.
|
|
*/
|
|
openIcon: import_prop_types63.default.node,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types63.default.oneOfType([import_prop_types63.default.arrayOf(import_prop_types63.default.oneOfType([import_prop_types63.default.func, import_prop_types63.default.object, import_prop_types63.default.bool])), import_prop_types63.default.func, import_prop_types63.default.object]),
|
|
/**
|
|
* The component used for the transition.
|
|
* [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
|
|
* @default Zoom
|
|
*/
|
|
TransitionComponent: import_prop_types63.default.elementType,
|
|
/**
|
|
* The duration for the transition, in milliseconds.
|
|
* You may specify a single timeout for all transitions, or individually with an object.
|
|
* @default {
|
|
* enter: theme.transitions.duration.enteringScreen,
|
|
* exit: theme.transitions.duration.leavingScreen,
|
|
* }
|
|
*/
|
|
transitionDuration: import_prop_types63.default.oneOfType([import_prop_types63.default.number, import_prop_types63.default.shape({
|
|
appear: import_prop_types63.default.number,
|
|
enter: import_prop_types63.default.number,
|
|
exit: import_prop_types63.default.number
|
|
})]),
|
|
/**
|
|
* Props applied to the transition element.
|
|
* By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
|
|
*/
|
|
TransitionProps: import_prop_types63.default.object
|
|
} : void 0;
|
|
var SpeedDial_default = SpeedDial;
|
|
|
|
// node_modules/@mui/material/SpeedDialAction/SpeedDialAction.js
|
|
init_extends();
|
|
var React82 = __toESM(require_react());
|
|
var import_prop_types64 = __toESM(require_prop_types());
|
|
var import_colorManipulator12 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/SpeedDialAction/speedDialActionClasses.js
|
|
function getSpeedDialActionUtilityClass(slot) {
|
|
return generateUtilityClass("MuiSpeedDialAction", slot);
|
|
}
|
|
var speedDialActionClasses = generateUtilityClasses("MuiSpeedDialAction", ["fab", "fabClosed", "staticTooltip", "staticTooltipClosed", "staticTooltipLabel", "tooltipPlacementLeft", "tooltipPlacementRight"]);
|
|
var speedDialActionClasses_default = speedDialActionClasses;
|
|
|
|
// node_modules/@mui/material/SpeedDialAction/SpeedDialAction.js
|
|
var import_jsx_runtime92 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime93 = __toESM(require_jsx_runtime());
|
|
var _excluded62 = ["className", "delay", "FabProps", "icon", "id", "open", "TooltipClasses", "tooltipOpen", "tooltipPlacement", "tooltipTitle"];
|
|
var useUtilityClasses53 = (ownerState) => {
|
|
const {
|
|
open,
|
|
tooltipPlacement,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
fab: ["fab", !open && "fabClosed"],
|
|
staticTooltip: ["staticTooltip", `tooltipPlacement${capitalize_default(tooltipPlacement)}`, !open && "staticTooltipClosed"],
|
|
staticTooltipLabel: ["staticTooltipLabel"]
|
|
};
|
|
return composeClasses(slots, getSpeedDialActionUtilityClass, classes);
|
|
};
|
|
var SpeedDialActionFab = styled_default(Fab_default, {
|
|
name: "MuiSpeedDialAction",
|
|
slot: "Fab",
|
|
skipVariantsResolver: false,
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.fab, !ownerState.open && styles3.fabClosed];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
margin: 8,
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
backgroundColor: (theme.vars || theme).palette.background.paper,
|
|
"&:hover": {
|
|
backgroundColor: theme.vars ? theme.vars.palette.SpeedDialAction.fabHoverBg : (0, import_colorManipulator12.emphasize)(theme.palette.background.paper, 0.15)
|
|
},
|
|
transition: `${theme.transitions.create("transform", {
|
|
duration: theme.transitions.duration.shorter
|
|
})}, opacity 0.8s`,
|
|
opacity: 1
|
|
}, !ownerState.open && {
|
|
opacity: 0,
|
|
transform: "scale(0)"
|
|
}));
|
|
var SpeedDialActionStaticTooltip = styled_default("span", {
|
|
name: "MuiSpeedDialAction",
|
|
slot: "StaticTooltip",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.staticTooltip, !ownerState.open && styles3.staticTooltipClosed, styles3[`tooltipPlacement${capitalize_default(ownerState.tooltipPlacement)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => ({
|
|
position: "relative",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
[`& .${speedDialActionClasses_default.staticTooltipLabel}`]: _extends({
|
|
transition: theme.transitions.create(["transform", "opacity"], {
|
|
duration: theme.transitions.duration.shorter
|
|
}),
|
|
opacity: 1
|
|
}, !ownerState.open && {
|
|
opacity: 0,
|
|
transform: "scale(0.5)"
|
|
}, ownerState.tooltipPlacement === "left" && {
|
|
transformOrigin: "100% 50%",
|
|
right: "100%",
|
|
marginRight: 8
|
|
}, ownerState.tooltipPlacement === "right" && {
|
|
transformOrigin: "0% 50%",
|
|
left: "100%",
|
|
marginLeft: 8
|
|
})
|
|
}));
|
|
var SpeedDialActionStaticTooltipLabel = styled_default("span", {
|
|
name: "MuiSpeedDialAction",
|
|
slot: "StaticTooltipLabel",
|
|
overridesResolver: (props, styles3) => styles3.staticTooltipLabel
|
|
})(({
|
|
theme
|
|
}) => _extends({
|
|
position: "absolute"
|
|
}, theme.typography.body1, {
|
|
backgroundColor: (theme.vars || theme).palette.background.paper,
|
|
borderRadius: (theme.vars || theme).shape.borderRadius,
|
|
boxShadow: (theme.vars || theme).shadows[1],
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
padding: "4px 16px",
|
|
wordBreak: "keep-all"
|
|
}));
|
|
var SpeedDialAction = React82.forwardRef(function SpeedDialAction2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiSpeedDialAction"
|
|
});
|
|
const {
|
|
className,
|
|
delay = 0,
|
|
FabProps = {},
|
|
icon,
|
|
id,
|
|
open,
|
|
TooltipClasses,
|
|
tooltipOpen: tooltipOpenProp = false,
|
|
tooltipPlacement = "left",
|
|
tooltipTitle
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded62);
|
|
const ownerState = _extends({}, props, {
|
|
tooltipPlacement
|
|
});
|
|
const classes = useUtilityClasses53(ownerState);
|
|
const [tooltipOpen, setTooltipOpen] = React82.useState(tooltipOpenProp);
|
|
const handleTooltipClose = () => {
|
|
setTooltipOpen(false);
|
|
};
|
|
const handleTooltipOpen = () => {
|
|
setTooltipOpen(true);
|
|
};
|
|
const transitionStyle = {
|
|
transitionDelay: `${delay}ms`
|
|
};
|
|
const fab = (0, import_jsx_runtime92.jsx)(SpeedDialActionFab, _extends({
|
|
size: "small",
|
|
className: clsx_default(classes.fab, className),
|
|
tabIndex: -1,
|
|
role: "menuitem",
|
|
ownerState
|
|
}, FabProps, {
|
|
style: _extends({}, transitionStyle, FabProps.style),
|
|
children: icon
|
|
}));
|
|
if (tooltipOpenProp) {
|
|
return (0, import_jsx_runtime93.jsxs)(SpeedDialActionStaticTooltip, _extends({
|
|
id,
|
|
ref,
|
|
className: classes.staticTooltip,
|
|
ownerState
|
|
}, other, {
|
|
children: [(0, import_jsx_runtime92.jsx)(SpeedDialActionStaticTooltipLabel, {
|
|
style: transitionStyle,
|
|
id: `${id}-label`,
|
|
className: classes.staticTooltipLabel,
|
|
ownerState,
|
|
children: tooltipTitle
|
|
}), React82.cloneElement(fab, {
|
|
"aria-labelledby": `${id}-label`
|
|
})]
|
|
}));
|
|
}
|
|
if (!open && tooltipOpen) {
|
|
setTooltipOpen(false);
|
|
}
|
|
return (0, import_jsx_runtime92.jsx)(Tooltip_default, _extends({
|
|
id,
|
|
ref,
|
|
title: tooltipTitle,
|
|
placement: tooltipPlacement,
|
|
onClose: handleTooltipClose,
|
|
onOpen: handleTooltipOpen,
|
|
open: open && tooltipOpen,
|
|
classes: TooltipClasses
|
|
}, other, {
|
|
children: fab
|
|
}));
|
|
});
|
|
true ? SpeedDialAction.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types64.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types64.default.string,
|
|
/**
|
|
* Adds a transition delay, to allow a series of SpeedDialActions to be animated.
|
|
* @default 0
|
|
*/
|
|
delay: import_prop_types64.default.number,
|
|
/**
|
|
* Props applied to the [`Fab`](/material-ui/api/fab/) component.
|
|
* @default {}
|
|
*/
|
|
FabProps: import_prop_types64.default.object,
|
|
/**
|
|
* The icon to display in the SpeedDial Fab.
|
|
*/
|
|
icon: import_prop_types64.default.node,
|
|
/**
|
|
* This prop is used to help implement the accessibility logic.
|
|
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
*/
|
|
id: import_prop_types64.default.string,
|
|
/**
|
|
* If `true`, the component is shown.
|
|
*/
|
|
open: import_prop_types64.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types64.default.oneOfType([import_prop_types64.default.arrayOf(import_prop_types64.default.oneOfType([import_prop_types64.default.func, import_prop_types64.default.object, import_prop_types64.default.bool])), import_prop_types64.default.func, import_prop_types64.default.object]),
|
|
/**
|
|
* `classes` prop applied to the [`Tooltip`](/material-ui/api/tooltip/) element.
|
|
*/
|
|
TooltipClasses: import_prop_types64.default.object,
|
|
/**
|
|
* Make the tooltip always visible when the SpeedDial is open.
|
|
* @default false
|
|
*/
|
|
tooltipOpen: import_prop_types64.default.bool,
|
|
/**
|
|
* Placement of the tooltip.
|
|
* @default 'left'
|
|
*/
|
|
tooltipPlacement: import_prop_types64.default.oneOf(["bottom-end", "bottom-start", "bottom", "left-end", "left-start", "left", "right-end", "right-start", "right", "top-end", "top-start", "top"]),
|
|
/**
|
|
* Label to display in the tooltip.
|
|
*/
|
|
tooltipTitle: import_prop_types64.default.node
|
|
} : void 0;
|
|
var SpeedDialAction_default = SpeedDialAction;
|
|
|
|
// node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon.js
|
|
init_extends();
|
|
var React84 = __toESM(require_react());
|
|
var import_prop_types65 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/Add.js
|
|
var React83 = __toESM(require_react());
|
|
var import_jsx_runtime94 = __toESM(require_jsx_runtime());
|
|
var Add_default = createSvgIcon((0, import_jsx_runtime94.jsx)("path", {
|
|
d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
|
|
}), "Add");
|
|
|
|
// node_modules/@mui/material/SpeedDialIcon/speedDialIconClasses.js
|
|
function getSpeedDialIconUtilityClass(slot) {
|
|
return generateUtilityClass("MuiSpeedDialIcon", slot);
|
|
}
|
|
var speedDialIconClasses = generateUtilityClasses("MuiSpeedDialIcon", ["root", "icon", "iconOpen", "iconWithOpenIconOpen", "openIcon", "openIconOpen"]);
|
|
var speedDialIconClasses_default = speedDialIconClasses;
|
|
|
|
// node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon.js
|
|
var import_jsx_runtime95 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime96 = __toESM(require_jsx_runtime());
|
|
var _excluded63 = ["className", "icon", "open", "openIcon"];
|
|
var useUtilityClasses54 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
open,
|
|
openIcon
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"],
|
|
icon: ["icon", open && "iconOpen", openIcon && open && "iconWithOpenIconOpen"],
|
|
openIcon: ["openIcon", open && "openIconOpen"]
|
|
};
|
|
return composeClasses(slots, getSpeedDialIconUtilityClass, classes);
|
|
};
|
|
var SpeedDialIconRoot = styled_default("span", {
|
|
name: "MuiSpeedDialIcon",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [{
|
|
[`& .${speedDialIconClasses_default.icon}`]: styles3.icon
|
|
}, {
|
|
[`& .${speedDialIconClasses_default.icon}`]: ownerState.open && styles3.iconOpen
|
|
}, {
|
|
[`& .${speedDialIconClasses_default.icon}`]: ownerState.open && ownerState.openIcon && styles3.iconWithOpenIconOpen
|
|
}, {
|
|
[`& .${speedDialIconClasses_default.openIcon}`]: styles3.openIcon
|
|
}, {
|
|
[`& .${speedDialIconClasses_default.openIcon}`]: ownerState.open && styles3.openIconOpen
|
|
}, styles3.root];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => ({
|
|
height: 24,
|
|
[`& .${speedDialIconClasses_default.icon}`]: _extends({
|
|
transition: theme.transitions.create(["transform", "opacity"], {
|
|
duration: theme.transitions.duration.short
|
|
})
|
|
}, ownerState.open && _extends({
|
|
transform: "rotate(45deg)"
|
|
}, ownerState.openIcon && {
|
|
opacity: 0
|
|
})),
|
|
[`& .${speedDialIconClasses_default.openIcon}`]: _extends({
|
|
position: "absolute",
|
|
transition: theme.transitions.create(["transform", "opacity"], {
|
|
duration: theme.transitions.duration.short
|
|
}),
|
|
opacity: 0,
|
|
transform: "rotate(-45deg)"
|
|
}, ownerState.open && {
|
|
transform: "rotate(0deg)",
|
|
opacity: 1
|
|
})
|
|
}));
|
|
var SpeedDialIcon = React84.forwardRef(function SpeedDialIcon2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiSpeedDialIcon"
|
|
});
|
|
const {
|
|
className,
|
|
icon: iconProp,
|
|
openIcon: openIconProp
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded63);
|
|
const ownerState = props;
|
|
const classes = useUtilityClasses54(ownerState);
|
|
function formatIcon(icon, newClassName) {
|
|
if (React84.isValidElement(icon)) {
|
|
return React84.cloneElement(icon, {
|
|
className: newClassName
|
|
});
|
|
}
|
|
return icon;
|
|
}
|
|
return (0, import_jsx_runtime96.jsxs)(SpeedDialIconRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: [openIconProp ? formatIcon(openIconProp, classes.openIcon) : null, iconProp ? formatIcon(iconProp, classes.icon) : (0, import_jsx_runtime95.jsx)(Add_default, {
|
|
className: classes.icon
|
|
})]
|
|
}));
|
|
});
|
|
true ? SpeedDialIcon.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types65.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types65.default.string,
|
|
/**
|
|
* The icon to display.
|
|
*/
|
|
icon: import_prop_types65.default.node,
|
|
/**
|
|
* @ignore
|
|
* If `true`, the component is shown.
|
|
*/
|
|
open: import_prop_types65.default.bool,
|
|
/**
|
|
* The icon to display in the SpeedDial Floating Action Button when the SpeedDial is open.
|
|
*/
|
|
openIcon: import_prop_types65.default.node,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types65.default.oneOfType([import_prop_types65.default.arrayOf(import_prop_types65.default.oneOfType([import_prop_types65.default.func, import_prop_types65.default.object, import_prop_types65.default.bool])), import_prop_types65.default.func, import_prop_types65.default.object])
|
|
} : void 0;
|
|
SpeedDialIcon.muiName = "SpeedDialIcon";
|
|
var SpeedDialIcon_default = SpeedDialIcon;
|
|
|
|
// node_modules/@mui/material/Step/Step.js
|
|
init_extends();
|
|
var React87 = __toESM(require_react());
|
|
var import_prop_types66 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Stepper/StepperContext.js
|
|
var React85 = __toESM(require_react());
|
|
var StepperContext = React85.createContext({});
|
|
if (true) {
|
|
StepperContext.displayName = "StepperContext";
|
|
}
|
|
function useStepperContext() {
|
|
return React85.useContext(StepperContext);
|
|
}
|
|
var StepperContext_default = StepperContext;
|
|
|
|
// node_modules/@mui/material/Step/StepContext.js
|
|
var React86 = __toESM(require_react());
|
|
var StepContext = React86.createContext({});
|
|
if (true) {
|
|
StepContext.displayName = "StepContext";
|
|
}
|
|
function useStepContext() {
|
|
return React86.useContext(StepContext);
|
|
}
|
|
var StepContext_default = StepContext;
|
|
|
|
// node_modules/@mui/material/Step/stepClasses.js
|
|
function getStepUtilityClass(slot) {
|
|
return generateUtilityClass("MuiStep", slot);
|
|
}
|
|
var stepClasses = generateUtilityClasses("MuiStep", ["root", "horizontal", "vertical", "alternativeLabel", "completed"]);
|
|
var stepClasses_default = stepClasses;
|
|
|
|
// node_modules/@mui/material/Step/Step.js
|
|
var import_jsx_runtime97 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime98 = __toESM(require_jsx_runtime());
|
|
var _excluded64 = ["active", "children", "className", "component", "completed", "disabled", "expanded", "index", "last"];
|
|
var useUtilityClasses55 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
orientation,
|
|
alternativeLabel,
|
|
completed
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", orientation, alternativeLabel && "alternativeLabel", completed && "completed"]
|
|
};
|
|
return composeClasses(slots, getStepUtilityClass, classes);
|
|
};
|
|
var StepRoot = styled_default("div", {
|
|
name: "MuiStep",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.orientation], ownerState.alternativeLabel && styles3.alternativeLabel, ownerState.completed && styles3.completed];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({}, ownerState.orientation === "horizontal" && {
|
|
paddingLeft: 8,
|
|
paddingRight: 8
|
|
}, ownerState.alternativeLabel && {
|
|
flex: 1,
|
|
position: "relative"
|
|
}));
|
|
var Step = React87.forwardRef(function Step2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiStep"
|
|
});
|
|
const {
|
|
active: activeProp,
|
|
children,
|
|
className,
|
|
component = "div",
|
|
completed: completedProp,
|
|
disabled: disabledProp,
|
|
expanded = false,
|
|
index,
|
|
last
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded64);
|
|
const {
|
|
activeStep,
|
|
connector,
|
|
alternativeLabel,
|
|
orientation,
|
|
nonLinear
|
|
} = React87.useContext(StepperContext_default);
|
|
let [active = false, completed = false, disabled = false] = [activeProp, completedProp, disabledProp];
|
|
if (activeStep === index) {
|
|
active = activeProp !== void 0 ? activeProp : true;
|
|
} else if (!nonLinear && activeStep > index) {
|
|
completed = completedProp !== void 0 ? completedProp : true;
|
|
} else if (!nonLinear && activeStep < index) {
|
|
disabled = disabledProp !== void 0 ? disabledProp : true;
|
|
}
|
|
const contextValue = React87.useMemo(() => ({
|
|
index,
|
|
last,
|
|
expanded,
|
|
icon: index + 1,
|
|
active,
|
|
completed,
|
|
disabled
|
|
}), [index, last, expanded, active, completed, disabled]);
|
|
const ownerState = _extends({}, props, {
|
|
active,
|
|
orientation,
|
|
alternativeLabel,
|
|
completed,
|
|
disabled,
|
|
expanded,
|
|
component
|
|
});
|
|
const classes = useUtilityClasses55(ownerState);
|
|
const newChildren = (0, import_jsx_runtime97.jsxs)(StepRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: [connector && alternativeLabel && index !== 0 ? connector : null, children]
|
|
}));
|
|
return (0, import_jsx_runtime98.jsx)(StepContext_default.Provider, {
|
|
value: contextValue,
|
|
children: connector && !alternativeLabel && index !== 0 ? (0, import_jsx_runtime97.jsxs)(React87.Fragment, {
|
|
children: [connector, newChildren]
|
|
}) : newChildren
|
|
});
|
|
});
|
|
true ? Step.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Sets the step as active. Is passed to child components.
|
|
*/
|
|
active: import_prop_types66.default.bool,
|
|
/**
|
|
* Should be `Step` sub-components such as `StepLabel`, `StepContent`.
|
|
*/
|
|
children: import_prop_types66.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types66.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types66.default.string,
|
|
/**
|
|
* Mark the step as completed. Is passed to child components.
|
|
*/
|
|
completed: import_prop_types66.default.bool,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types66.default.elementType,
|
|
/**
|
|
* If `true`, the step is disabled, will also disable the button if
|
|
* `StepButton` is a child of `Step`. Is passed to child components.
|
|
*/
|
|
disabled: import_prop_types66.default.bool,
|
|
/**
|
|
* Expand the step.
|
|
* @default false
|
|
*/
|
|
expanded: import_prop_types66.default.bool,
|
|
/**
|
|
* The position of the step.
|
|
* The prop defaults to the value inherited from the parent Stepper component.
|
|
*/
|
|
index: integerPropType_default,
|
|
/**
|
|
* If `true`, the Step is displayed as rendered last.
|
|
* The prop defaults to the value inherited from the parent Stepper component.
|
|
*/
|
|
last: import_prop_types66.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types66.default.oneOfType([import_prop_types66.default.arrayOf(import_prop_types66.default.oneOfType([import_prop_types66.default.func, import_prop_types66.default.object, import_prop_types66.default.bool])), import_prop_types66.default.func, import_prop_types66.default.object])
|
|
} : void 0;
|
|
var Step_default = Step;
|
|
|
|
// node_modules/@mui/material/StepButton/StepButton.js
|
|
init_extends();
|
|
var React92 = __toESM(require_react());
|
|
var import_prop_types69 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/StepLabel/StepLabel.js
|
|
init_extends();
|
|
var React91 = __toESM(require_react());
|
|
var import_prop_types68 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/StepIcon/StepIcon.js
|
|
init_extends();
|
|
var React90 = __toESM(require_react());
|
|
var import_prop_types67 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/CheckCircle.js
|
|
var React88 = __toESM(require_react());
|
|
var import_jsx_runtime99 = __toESM(require_jsx_runtime());
|
|
var CheckCircle_default = createSvgIcon((0, import_jsx_runtime99.jsx)("path", {
|
|
d: "M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"
|
|
}), "CheckCircle");
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/Warning.js
|
|
var React89 = __toESM(require_react());
|
|
var import_jsx_runtime100 = __toESM(require_jsx_runtime());
|
|
var Warning_default = createSvgIcon((0, import_jsx_runtime100.jsx)("path", {
|
|
d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"
|
|
}), "Warning");
|
|
|
|
// node_modules/@mui/material/StepIcon/stepIconClasses.js
|
|
function getStepIconUtilityClass(slot) {
|
|
return generateUtilityClass("MuiStepIcon", slot);
|
|
}
|
|
var stepIconClasses = generateUtilityClasses("MuiStepIcon", ["root", "active", "completed", "error", "text"]);
|
|
var stepIconClasses_default = stepIconClasses;
|
|
|
|
// node_modules/@mui/material/StepIcon/StepIcon.js
|
|
var import_jsx_runtime101 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime102 = __toESM(require_jsx_runtime());
|
|
var _circle;
|
|
var _excluded65 = ["active", "className", "completed", "error", "icon"];
|
|
var useUtilityClasses56 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
active,
|
|
completed,
|
|
error
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", active && "active", completed && "completed", error && "error"],
|
|
text: ["text"]
|
|
};
|
|
return composeClasses(slots, getStepIconUtilityClass, classes);
|
|
};
|
|
var StepIconRoot = styled_default(SvgIcon_default, {
|
|
name: "MuiStepIcon",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
display: "block",
|
|
transition: theme.transitions.create("color", {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
color: (theme.vars || theme).palette.text.disabled,
|
|
[`&.${stepIconClasses_default.completed}`]: {
|
|
color: (theme.vars || theme).palette.primary.main
|
|
},
|
|
[`&.${stepIconClasses_default.active}`]: {
|
|
color: (theme.vars || theme).palette.primary.main
|
|
},
|
|
[`&.${stepIconClasses_default.error}`]: {
|
|
color: (theme.vars || theme).palette.error.main
|
|
}
|
|
}));
|
|
var StepIconText = styled_default("text", {
|
|
name: "MuiStepIcon",
|
|
slot: "Text",
|
|
overridesResolver: (props, styles3) => styles3.text
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
fill: (theme.vars || theme).palette.primary.contrastText,
|
|
fontSize: theme.typography.caption.fontSize,
|
|
fontFamily: theme.typography.fontFamily
|
|
}));
|
|
var StepIcon = React90.forwardRef(function StepIcon2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiStepIcon"
|
|
});
|
|
const {
|
|
active = false,
|
|
className: classNameProp,
|
|
completed = false,
|
|
error = false,
|
|
icon
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded65);
|
|
const ownerState = _extends({}, props, {
|
|
active,
|
|
completed,
|
|
error
|
|
});
|
|
const classes = useUtilityClasses56(ownerState);
|
|
if (typeof icon === "number" || typeof icon === "string") {
|
|
const className = clsx_default(classNameProp, classes.root);
|
|
if (error) {
|
|
return (0, import_jsx_runtime101.jsx)(StepIconRoot, _extends({
|
|
as: Warning_default,
|
|
className,
|
|
ref,
|
|
ownerState
|
|
}, other));
|
|
}
|
|
if (completed) {
|
|
return (0, import_jsx_runtime101.jsx)(StepIconRoot, _extends({
|
|
as: CheckCircle_default,
|
|
className,
|
|
ref,
|
|
ownerState
|
|
}, other));
|
|
}
|
|
return (0, import_jsx_runtime102.jsxs)(StepIconRoot, _extends({
|
|
className,
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: [_circle || (_circle = (0, import_jsx_runtime101.jsx)("circle", {
|
|
cx: "12",
|
|
cy: "12",
|
|
r: "12"
|
|
})), (0, import_jsx_runtime101.jsx)(StepIconText, {
|
|
className: classes.text,
|
|
x: "12",
|
|
y: "12",
|
|
textAnchor: "middle",
|
|
dominantBaseline: "central",
|
|
ownerState,
|
|
children: icon
|
|
})]
|
|
}));
|
|
}
|
|
return icon;
|
|
});
|
|
true ? StepIcon.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Whether this step is active.
|
|
* @default false
|
|
*/
|
|
active: import_prop_types67.default.bool,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types67.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types67.default.string,
|
|
/**
|
|
* Mark the step as completed. Is passed to child components.
|
|
* @default false
|
|
*/
|
|
completed: import_prop_types67.default.bool,
|
|
/**
|
|
* If `true`, the step is marked as failed.
|
|
* @default false
|
|
*/
|
|
error: import_prop_types67.default.bool,
|
|
/**
|
|
* The label displayed in the step icon.
|
|
*/
|
|
icon: import_prop_types67.default.node,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types67.default.oneOfType([import_prop_types67.default.arrayOf(import_prop_types67.default.oneOfType([import_prop_types67.default.func, import_prop_types67.default.object, import_prop_types67.default.bool])), import_prop_types67.default.func, import_prop_types67.default.object])
|
|
} : void 0;
|
|
var StepIcon_default = StepIcon;
|
|
|
|
// node_modules/@mui/material/StepLabel/stepLabelClasses.js
|
|
function getStepLabelUtilityClass(slot) {
|
|
return generateUtilityClass("MuiStepLabel", slot);
|
|
}
|
|
var stepLabelClasses = generateUtilityClasses("MuiStepLabel", ["root", "horizontal", "vertical", "label", "active", "completed", "error", "disabled", "iconContainer", "alternativeLabel", "labelContainer"]);
|
|
var stepLabelClasses_default = stepLabelClasses;
|
|
|
|
// node_modules/@mui/material/StepLabel/StepLabel.js
|
|
var import_jsx_runtime103 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime104 = __toESM(require_jsx_runtime());
|
|
var _excluded66 = ["children", "className", "componentsProps", "error", "icon", "optional", "slotProps", "StepIconComponent", "StepIconProps"];
|
|
var useUtilityClasses57 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
orientation,
|
|
active,
|
|
completed,
|
|
error,
|
|
disabled,
|
|
alternativeLabel
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", orientation, error && "error", disabled && "disabled", alternativeLabel && "alternativeLabel"],
|
|
label: ["label", active && "active", completed && "completed", error && "error", disabled && "disabled", alternativeLabel && "alternativeLabel"],
|
|
iconContainer: ["iconContainer", active && "active", completed && "completed", error && "error", disabled && "disabled", alternativeLabel && "alternativeLabel"],
|
|
labelContainer: ["labelContainer", alternativeLabel && "alternativeLabel"]
|
|
};
|
|
return composeClasses(slots, getStepLabelUtilityClass, classes);
|
|
};
|
|
var StepLabelRoot = styled_default("span", {
|
|
name: "MuiStepLabel",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.orientation]];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex",
|
|
alignItems: "center",
|
|
[`&.${stepLabelClasses_default.alternativeLabel}`]: {
|
|
flexDirection: "column"
|
|
},
|
|
[`&.${stepLabelClasses_default.disabled}`]: {
|
|
cursor: "default"
|
|
}
|
|
}, ownerState.orientation === "vertical" && {
|
|
textAlign: "left",
|
|
padding: "8px 0"
|
|
}));
|
|
var StepLabelLabel = styled_default("span", {
|
|
name: "MuiStepLabel",
|
|
slot: "Label",
|
|
overridesResolver: (props, styles3) => styles3.label
|
|
})(({
|
|
theme
|
|
}) => _extends({}, theme.typography.body2, {
|
|
display: "block",
|
|
transition: theme.transitions.create("color", {
|
|
duration: theme.transitions.duration.shortest
|
|
}),
|
|
[`&.${stepLabelClasses_default.active}`]: {
|
|
color: (theme.vars || theme).palette.text.primary,
|
|
fontWeight: 500
|
|
},
|
|
[`&.${stepLabelClasses_default.completed}`]: {
|
|
color: (theme.vars || theme).palette.text.primary,
|
|
fontWeight: 500
|
|
},
|
|
[`&.${stepLabelClasses_default.alternativeLabel}`]: {
|
|
marginTop: 16
|
|
},
|
|
[`&.${stepLabelClasses_default.error}`]: {
|
|
color: (theme.vars || theme).palette.error.main
|
|
}
|
|
}));
|
|
var StepLabelIconContainer = styled_default("span", {
|
|
name: "MuiStepLabel",
|
|
slot: "IconContainer",
|
|
overridesResolver: (props, styles3) => styles3.iconContainer
|
|
})(() => ({
|
|
flexShrink: 0,
|
|
// Fix IE11 issue
|
|
display: "flex",
|
|
paddingRight: 8,
|
|
[`&.${stepLabelClasses_default.alternativeLabel}`]: {
|
|
paddingRight: 0
|
|
}
|
|
}));
|
|
var StepLabelLabelContainer = styled_default("span", {
|
|
name: "MuiStepLabel",
|
|
slot: "LabelContainer",
|
|
overridesResolver: (props, styles3) => styles3.labelContainer
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
width: "100%",
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
[`&.${stepLabelClasses_default.alternativeLabel}`]: {
|
|
textAlign: "center"
|
|
}
|
|
}));
|
|
var StepLabel = React91.forwardRef(function StepLabel2(inProps, ref) {
|
|
var _slotProps$label;
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiStepLabel"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
componentsProps = {},
|
|
error = false,
|
|
icon: iconProp,
|
|
optional,
|
|
slotProps = {},
|
|
StepIconComponent: StepIconComponentProp,
|
|
StepIconProps
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded66);
|
|
const {
|
|
alternativeLabel,
|
|
orientation
|
|
} = React91.useContext(StepperContext_default);
|
|
const {
|
|
active,
|
|
disabled,
|
|
completed,
|
|
icon: iconContext
|
|
} = React91.useContext(StepContext_default);
|
|
const icon = iconProp || iconContext;
|
|
let StepIconComponent = StepIconComponentProp;
|
|
if (icon && !StepIconComponent) {
|
|
StepIconComponent = StepIcon_default;
|
|
}
|
|
const ownerState = _extends({}, props, {
|
|
active,
|
|
alternativeLabel,
|
|
completed,
|
|
disabled,
|
|
error,
|
|
orientation
|
|
});
|
|
const classes = useUtilityClasses57(ownerState);
|
|
const labelSlotProps = (_slotProps$label = slotProps.label) != null ? _slotProps$label : componentsProps.label;
|
|
return (0, import_jsx_runtime104.jsxs)(StepLabelRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: [icon || StepIconComponent ? (0, import_jsx_runtime103.jsx)(StepLabelIconContainer, {
|
|
className: classes.iconContainer,
|
|
ownerState,
|
|
children: (0, import_jsx_runtime103.jsx)(StepIconComponent, _extends({
|
|
completed,
|
|
active,
|
|
error,
|
|
icon
|
|
}, StepIconProps))
|
|
}) : null, (0, import_jsx_runtime104.jsxs)(StepLabelLabelContainer, {
|
|
className: classes.labelContainer,
|
|
ownerState,
|
|
children: [children ? (0, import_jsx_runtime103.jsx)(StepLabelLabel, _extends({
|
|
ownerState
|
|
}, labelSlotProps, {
|
|
className: clsx_default(classes.label, labelSlotProps == null ? void 0 : labelSlotProps.className),
|
|
children
|
|
})) : null, optional]
|
|
})]
|
|
}));
|
|
});
|
|
true ? StepLabel.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* In most cases will simply be a string containing a title for the label.
|
|
*/
|
|
children: import_prop_types68.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types68.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types68.default.string,
|
|
/**
|
|
* The props used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
componentsProps: import_prop_types68.default.shape({
|
|
label: import_prop_types68.default.object
|
|
}),
|
|
/**
|
|
* If `true`, the step is marked as failed.
|
|
* @default false
|
|
*/
|
|
error: import_prop_types68.default.bool,
|
|
/**
|
|
* Override the default label of the step icon.
|
|
*/
|
|
icon: import_prop_types68.default.node,
|
|
/**
|
|
* The optional node to display.
|
|
*/
|
|
optional: import_prop_types68.default.node,
|
|
/**
|
|
* The props used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types68.default.shape({
|
|
label: import_prop_types68.default.object
|
|
}),
|
|
/**
|
|
* The component to render in place of the [`StepIcon`](/material-ui/api/step-icon/).
|
|
*/
|
|
StepIconComponent: import_prop_types68.default.elementType,
|
|
/**
|
|
* Props applied to the [`StepIcon`](/material-ui/api/step-icon/) element.
|
|
*/
|
|
StepIconProps: import_prop_types68.default.object,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types68.default.oneOfType([import_prop_types68.default.arrayOf(import_prop_types68.default.oneOfType([import_prop_types68.default.func, import_prop_types68.default.object, import_prop_types68.default.bool])), import_prop_types68.default.func, import_prop_types68.default.object])
|
|
} : void 0;
|
|
StepLabel.muiName = "StepLabel";
|
|
var StepLabel_default = StepLabel;
|
|
|
|
// node_modules/@mui/material/StepButton/stepButtonClasses.js
|
|
function getStepButtonUtilityClass(slot) {
|
|
return generateUtilityClass("MuiStepButton", slot);
|
|
}
|
|
var stepButtonClasses = generateUtilityClasses("MuiStepButton", ["root", "horizontal", "vertical", "touchRipple"]);
|
|
var stepButtonClasses_default = stepButtonClasses;
|
|
|
|
// node_modules/@mui/material/StepButton/StepButton.js
|
|
var import_jsx_runtime105 = __toESM(require_jsx_runtime());
|
|
var _excluded67 = ["children", "className", "icon", "optional"];
|
|
var useUtilityClasses58 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
orientation
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", orientation],
|
|
touchRipple: ["touchRipple"]
|
|
};
|
|
return composeClasses(slots, getStepButtonUtilityClass, classes);
|
|
};
|
|
var StepButtonRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiStepButton",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [{
|
|
[`& .${stepButtonClasses_default.touchRipple}`]: styles3.touchRipple
|
|
}, styles3.root, styles3[ownerState.orientation]];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
width: "100%",
|
|
padding: "24px 16px",
|
|
margin: "-24px -16px",
|
|
boxSizing: "content-box"
|
|
}, ownerState.orientation === "vertical" && {
|
|
justifyContent: "flex-start",
|
|
padding: "8px",
|
|
margin: "-8px"
|
|
}, {
|
|
[`& .${stepButtonClasses_default.touchRipple}`]: {
|
|
color: "rgba(0, 0, 0, 0.3)"
|
|
}
|
|
}));
|
|
var StepButton = React92.forwardRef(function StepButton2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiStepButton"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
icon,
|
|
optional
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded67);
|
|
const {
|
|
disabled,
|
|
active
|
|
} = React92.useContext(StepContext_default);
|
|
const {
|
|
orientation
|
|
} = React92.useContext(StepperContext_default);
|
|
const ownerState = _extends({}, props, {
|
|
orientation
|
|
});
|
|
const classes = useUtilityClasses58(ownerState);
|
|
const childProps = {
|
|
icon,
|
|
optional
|
|
};
|
|
const child = isMuiElement_default(children, ["StepLabel"]) ? React92.cloneElement(children, childProps) : (0, import_jsx_runtime105.jsx)(StepLabel_default, _extends({}, childProps, {
|
|
children
|
|
}));
|
|
return (0, import_jsx_runtime105.jsx)(StepButtonRoot, _extends({
|
|
focusRipple: true,
|
|
disabled,
|
|
TouchRippleProps: {
|
|
className: classes.touchRipple
|
|
},
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState,
|
|
"aria-current": active ? "step" : void 0
|
|
}, other, {
|
|
children: child
|
|
}));
|
|
});
|
|
true ? StepButton.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Can be a `StepLabel` or a node to place inside `StepLabel` as children.
|
|
*/
|
|
children: import_prop_types69.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types69.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types69.default.string,
|
|
/**
|
|
* The icon displayed by the step label.
|
|
*/
|
|
icon: import_prop_types69.default.node,
|
|
/**
|
|
* The optional node to display.
|
|
*/
|
|
optional: import_prop_types69.default.node,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types69.default.oneOfType([import_prop_types69.default.arrayOf(import_prop_types69.default.oneOfType([import_prop_types69.default.func, import_prop_types69.default.object, import_prop_types69.default.bool])), import_prop_types69.default.func, import_prop_types69.default.object])
|
|
} : void 0;
|
|
var StepButton_default = StepButton;
|
|
|
|
// node_modules/@mui/material/StepConnector/StepConnector.js
|
|
init_extends();
|
|
var React93 = __toESM(require_react());
|
|
var import_prop_types70 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/StepConnector/stepConnectorClasses.js
|
|
function getStepConnectorUtilityClass(slot) {
|
|
return generateUtilityClass("MuiStepConnector", slot);
|
|
}
|
|
var stepConnectorClasses = generateUtilityClasses("MuiStepConnector", ["root", "horizontal", "vertical", "alternativeLabel", "active", "completed", "disabled", "line", "lineHorizontal", "lineVertical"]);
|
|
var stepConnectorClasses_default = stepConnectorClasses;
|
|
|
|
// node_modules/@mui/material/StepConnector/StepConnector.js
|
|
var import_jsx_runtime106 = __toESM(require_jsx_runtime());
|
|
var _excluded68 = ["className"];
|
|
var useUtilityClasses59 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
orientation,
|
|
alternativeLabel,
|
|
active,
|
|
completed,
|
|
disabled
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", orientation, alternativeLabel && "alternativeLabel", active && "active", completed && "completed", disabled && "disabled"],
|
|
line: ["line", `line${capitalize_default(orientation)}`]
|
|
};
|
|
return composeClasses(slots, getStepConnectorUtilityClass, classes);
|
|
};
|
|
var StepConnectorRoot = styled_default("div", {
|
|
name: "MuiStepConnector",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.orientation], ownerState.alternativeLabel && styles3.alternativeLabel, ownerState.completed && styles3.completed];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
flex: "1 1 auto"
|
|
}, ownerState.orientation === "vertical" && {
|
|
marginLeft: 12
|
|
// half icon
|
|
}, ownerState.alternativeLabel && {
|
|
position: "absolute",
|
|
top: 8 + 4,
|
|
left: "calc(-50% + 20px)",
|
|
right: "calc(50% + 20px)"
|
|
}));
|
|
var StepConnectorLine = styled_default("span", {
|
|
name: "MuiStepConnector",
|
|
slot: "Line",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.line, styles3[`line${capitalize_default(ownerState.orientation)}`]];
|
|
}
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => {
|
|
const borderColor = theme.palette.mode === "light" ? theme.palette.grey[400] : theme.palette.grey[600];
|
|
return _extends({
|
|
display: "block",
|
|
borderColor: theme.vars ? theme.vars.palette.StepConnector.border : borderColor
|
|
}, ownerState.orientation === "horizontal" && {
|
|
borderTopStyle: "solid",
|
|
borderTopWidth: 1
|
|
}, ownerState.orientation === "vertical" && {
|
|
borderLeftStyle: "solid",
|
|
borderLeftWidth: 1,
|
|
minHeight: 24
|
|
});
|
|
});
|
|
var StepConnector = React93.forwardRef(function StepConnector2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiStepConnector"
|
|
});
|
|
const {
|
|
className
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded68);
|
|
const {
|
|
alternativeLabel,
|
|
orientation = "horizontal"
|
|
} = React93.useContext(StepperContext_default);
|
|
const {
|
|
active,
|
|
disabled,
|
|
completed
|
|
} = React93.useContext(StepContext_default);
|
|
const ownerState = _extends({}, props, {
|
|
alternativeLabel,
|
|
orientation,
|
|
active,
|
|
completed,
|
|
disabled
|
|
});
|
|
const classes = useUtilityClasses59(ownerState);
|
|
return (0, import_jsx_runtime106.jsx)(StepConnectorRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: (0, import_jsx_runtime106.jsx)(StepConnectorLine, {
|
|
className: classes.line,
|
|
ownerState
|
|
})
|
|
}));
|
|
});
|
|
true ? StepConnector.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types70.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types70.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types70.default.oneOfType([import_prop_types70.default.arrayOf(import_prop_types70.default.oneOfType([import_prop_types70.default.func, import_prop_types70.default.object, import_prop_types70.default.bool])), import_prop_types70.default.func, import_prop_types70.default.object])
|
|
} : void 0;
|
|
var StepConnector_default = StepConnector;
|
|
|
|
// node_modules/@mui/material/StepContent/StepContent.js
|
|
init_extends();
|
|
var React94 = __toESM(require_react());
|
|
var import_prop_types71 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/StepContent/stepContentClasses.js
|
|
function getStepContentUtilityClass(slot) {
|
|
return generateUtilityClass("MuiStepContent", slot);
|
|
}
|
|
var stepContentClasses = generateUtilityClasses("MuiStepContent", ["root", "last", "transition"]);
|
|
var stepContentClasses_default = stepContentClasses;
|
|
|
|
// node_modules/@mui/material/StepContent/StepContent.js
|
|
var import_jsx_runtime107 = __toESM(require_jsx_runtime());
|
|
var _excluded69 = ["children", "className", "TransitionComponent", "transitionDuration", "TransitionProps"];
|
|
var useUtilityClasses60 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
last
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", last && "last"],
|
|
transition: ["transition"]
|
|
};
|
|
return composeClasses(slots, getStepContentUtilityClass, classes);
|
|
};
|
|
var StepContentRoot = styled_default("div", {
|
|
name: "MuiStepContent",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.last && styles3.last];
|
|
}
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => _extends({
|
|
marginLeft: 12,
|
|
// half icon
|
|
paddingLeft: 8 + 12,
|
|
// margin + half icon
|
|
paddingRight: 8,
|
|
borderLeft: theme.vars ? `1px solid ${theme.vars.palette.StepContent.border}` : `1px solid ${theme.palette.mode === "light" ? theme.palette.grey[400] : theme.palette.grey[600]}`
|
|
}, ownerState.last && {
|
|
borderLeft: "none"
|
|
}));
|
|
var StepContentTransition = styled_default(Collapse_default, {
|
|
name: "MuiStepContent",
|
|
slot: "Transition",
|
|
overridesResolver: (props, styles3) => styles3.transition
|
|
})({});
|
|
var StepContent = React94.forwardRef(function StepContent2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiStepContent"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
TransitionComponent = Collapse_default,
|
|
transitionDuration: transitionDurationProp = "auto",
|
|
TransitionProps
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded69);
|
|
const {
|
|
orientation
|
|
} = React94.useContext(StepperContext_default);
|
|
const {
|
|
active,
|
|
last,
|
|
expanded
|
|
} = React94.useContext(StepContext_default);
|
|
const ownerState = _extends({}, props, {
|
|
last
|
|
});
|
|
const classes = useUtilityClasses60(ownerState);
|
|
if (true) {
|
|
if (orientation !== "vertical") {
|
|
console.error("MUI: <StepContent /> is only designed for use with the vertical stepper.");
|
|
}
|
|
}
|
|
let transitionDuration = transitionDurationProp;
|
|
if (transitionDurationProp === "auto" && !TransitionComponent.muiSupportAuto) {
|
|
transitionDuration = void 0;
|
|
}
|
|
return (0, import_jsx_runtime107.jsx)(StepContentRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: (0, import_jsx_runtime107.jsx)(StepContentTransition, _extends({
|
|
as: TransitionComponent,
|
|
in: active || expanded,
|
|
className: classes.transition,
|
|
ownerState,
|
|
timeout: transitionDuration,
|
|
unmountOnExit: true
|
|
}, TransitionProps, {
|
|
children
|
|
}))
|
|
}));
|
|
});
|
|
true ? StepContent.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types71.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types71.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types71.default.string,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types71.default.oneOfType([import_prop_types71.default.arrayOf(import_prop_types71.default.oneOfType([import_prop_types71.default.func, import_prop_types71.default.object, import_prop_types71.default.bool])), import_prop_types71.default.func, import_prop_types71.default.object]),
|
|
/**
|
|
* The component used for the transition.
|
|
* [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
|
|
* @default Collapse
|
|
*/
|
|
TransitionComponent: import_prop_types71.default.elementType,
|
|
/**
|
|
* Adjust the duration of the content expand transition.
|
|
* Passed as a prop to the transition component.
|
|
*
|
|
* Set to 'auto' to automatically calculate transition time based on height.
|
|
* @default 'auto'
|
|
*/
|
|
transitionDuration: import_prop_types71.default.oneOfType([import_prop_types71.default.oneOf(["auto"]), import_prop_types71.default.number, import_prop_types71.default.shape({
|
|
appear: import_prop_types71.default.number,
|
|
enter: import_prop_types71.default.number,
|
|
exit: import_prop_types71.default.number
|
|
})]),
|
|
/**
|
|
* Props applied to the transition element.
|
|
* By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
|
|
*/
|
|
TransitionProps: import_prop_types71.default.object
|
|
} : void 0;
|
|
var StepContent_default = StepContent;
|
|
|
|
// node_modules/@mui/material/Stepper/Stepper.js
|
|
init_extends();
|
|
var React95 = __toESM(require_react());
|
|
var import_prop_types72 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Stepper/stepperClasses.js
|
|
function getStepperUtilityClass(slot) {
|
|
return generateUtilityClass("MuiStepper", slot);
|
|
}
|
|
var stepperClasses = generateUtilityClasses("MuiStepper", ["root", "horizontal", "vertical", "nonLinear", "alternativeLabel"]);
|
|
var stepperClasses_default = stepperClasses;
|
|
|
|
// node_modules/@mui/material/Stepper/Stepper.js
|
|
var import_jsx_runtime108 = __toESM(require_jsx_runtime());
|
|
var _excluded70 = ["activeStep", "alternativeLabel", "children", "className", "component", "connector", "nonLinear", "orientation"];
|
|
var useUtilityClasses61 = (ownerState) => {
|
|
const {
|
|
orientation,
|
|
nonLinear,
|
|
alternativeLabel,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", orientation, nonLinear && "nonLinear", alternativeLabel && "alternativeLabel"]
|
|
};
|
|
return composeClasses(slots, getStepperUtilityClass, classes);
|
|
};
|
|
var StepperRoot = styled_default("div", {
|
|
name: "MuiStepper",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[ownerState.orientation], ownerState.alternativeLabel && styles3.alternativeLabel, ownerState.nonLinear && styles3.nonLinear];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex"
|
|
}, ownerState.orientation === "horizontal" && {
|
|
flexDirection: "row",
|
|
alignItems: "center"
|
|
}, ownerState.orientation === "vertical" && {
|
|
flexDirection: "column"
|
|
}, ownerState.alternativeLabel && {
|
|
alignItems: "flex-start"
|
|
}));
|
|
var defaultConnector = (0, import_jsx_runtime108.jsx)(StepConnector_default, {});
|
|
var Stepper = React95.forwardRef(function Stepper2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiStepper"
|
|
});
|
|
const {
|
|
activeStep = 0,
|
|
alternativeLabel = false,
|
|
children,
|
|
className,
|
|
component = "div",
|
|
connector = defaultConnector,
|
|
nonLinear = false,
|
|
orientation = "horizontal"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded70);
|
|
const ownerState = _extends({}, props, {
|
|
nonLinear,
|
|
alternativeLabel,
|
|
orientation,
|
|
component
|
|
});
|
|
const classes = useUtilityClasses61(ownerState);
|
|
const childrenArray = React95.Children.toArray(children).filter(Boolean);
|
|
const steps = childrenArray.map((step, index) => {
|
|
return React95.cloneElement(step, _extends({
|
|
index,
|
|
last: index + 1 === childrenArray.length
|
|
}, step.props));
|
|
});
|
|
const contextValue = React95.useMemo(() => ({
|
|
activeStep,
|
|
alternativeLabel,
|
|
connector,
|
|
nonLinear,
|
|
orientation
|
|
}), [activeStep, alternativeLabel, connector, nonLinear, orientation]);
|
|
return (0, import_jsx_runtime108.jsx)(StepperContext_default.Provider, {
|
|
value: contextValue,
|
|
children: (0, import_jsx_runtime108.jsx)(StepperRoot, _extends({
|
|
as: component,
|
|
ownerState,
|
|
className: clsx_default(classes.root, className),
|
|
ref
|
|
}, other, {
|
|
children: steps
|
|
}))
|
|
});
|
|
});
|
|
true ? Stepper.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Set the active step (zero based index).
|
|
* Set to -1 to disable all the steps.
|
|
* @default 0
|
|
*/
|
|
activeStep: integerPropType_default,
|
|
/**
|
|
* If set to 'true' and orientation is horizontal,
|
|
* then the step label will be positioned under the icon.
|
|
* @default false
|
|
*/
|
|
alternativeLabel: import_prop_types72.default.bool,
|
|
/**
|
|
* Two or more `<Step />` components.
|
|
*/
|
|
children: import_prop_types72.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types72.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types72.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types72.default.elementType,
|
|
/**
|
|
* An element to be placed between each step.
|
|
* @default <StepConnector />
|
|
*/
|
|
connector: import_prop_types72.default.element,
|
|
/**
|
|
* If set the `Stepper` will not assist in controlling steps for linear flow.
|
|
* @default false
|
|
*/
|
|
nonLinear: import_prop_types72.default.bool,
|
|
/**
|
|
* The component orientation (layout flow direction).
|
|
* @default 'horizontal'
|
|
*/
|
|
orientation: import_prop_types72.default.oneOf(["horizontal", "vertical"]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types72.default.oneOfType([import_prop_types72.default.arrayOf(import_prop_types72.default.oneOfType([import_prop_types72.default.func, import_prop_types72.default.object, import_prop_types72.default.bool])), import_prop_types72.default.func, import_prop_types72.default.object])
|
|
} : void 0;
|
|
var Stepper_default = Stepper;
|
|
|
|
// node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer.js
|
|
init_extends();
|
|
var React97 = __toESM(require_react());
|
|
var ReactDOM = __toESM(require_react_dom());
|
|
var import_prop_types74 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/SwipeableDrawer/SwipeArea.js
|
|
init_extends();
|
|
var React96 = __toESM(require_react());
|
|
var import_prop_types73 = __toESM(require_prop_types());
|
|
var import_jsx_runtime109 = __toESM(require_jsx_runtime());
|
|
var _excluded71 = ["anchor", "classes", "className", "width", "style"];
|
|
var SwipeAreaRoot = styled_default("div", {
|
|
name: "MuiSwipeArea",
|
|
shouldForwardProp: rootShouldForwardProp_default
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
position: "fixed",
|
|
top: 0,
|
|
left: 0,
|
|
bottom: 0,
|
|
zIndex: theme.zIndex.drawer - 1
|
|
}, ownerState.anchor === "left" && {
|
|
right: "auto"
|
|
}, ownerState.anchor === "right" && {
|
|
left: "auto",
|
|
right: 0
|
|
}, ownerState.anchor === "top" && {
|
|
bottom: "auto",
|
|
right: 0
|
|
}, ownerState.anchor === "bottom" && {
|
|
top: "auto",
|
|
bottom: 0,
|
|
right: 0
|
|
}));
|
|
var SwipeArea = React96.forwardRef(function SwipeArea2(props, ref) {
|
|
const {
|
|
anchor,
|
|
classes = {},
|
|
className,
|
|
width,
|
|
style
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded71);
|
|
const ownerState = props;
|
|
return (0, import_jsx_runtime109.jsx)(SwipeAreaRoot, _extends({
|
|
className: clsx_default("PrivateSwipeArea-root", classes.root, classes[`anchor${capitalize_default(anchor)}`], className),
|
|
ref,
|
|
style: _extends({
|
|
[isHorizontal(anchor) ? "width" : "height"]: width
|
|
}, style),
|
|
ownerState
|
|
}, other));
|
|
});
|
|
true ? SwipeArea.propTypes = {
|
|
/**
|
|
* Side on which to attach the discovery area.
|
|
*/
|
|
anchor: import_prop_types73.default.oneOf(["left", "top", "right", "bottom"]).isRequired,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
classes: import_prop_types73.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types73.default.string,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
style: import_prop_types73.default.object,
|
|
/**
|
|
* The width of the left most (or right most) area in `px` where the
|
|
* drawer can be swiped open from.
|
|
*/
|
|
width: import_prop_types73.default.number.isRequired
|
|
} : void 0;
|
|
var SwipeArea_default = SwipeArea;
|
|
|
|
// node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer.js
|
|
var import_jsx_runtime110 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime111 = __toESM(require_jsx_runtime());
|
|
var _excluded72 = ["BackdropProps"];
|
|
var _excluded216 = ["anchor", "disableBackdropTransition", "disableDiscovery", "disableSwipeToOpen", "hideBackdrop", "hysteresis", "allowSwipeInChildren", "minFlingVelocity", "ModalProps", "onClose", "onOpen", "open", "PaperProps", "SwipeAreaProps", "swipeAreaWidth", "transitionDuration", "variant"];
|
|
var UNCERTAINTY_THRESHOLD = 3;
|
|
var DRAG_STARTED_SIGNAL = 20;
|
|
var claimedSwipeInstance = null;
|
|
function calculateCurrentX(anchor, touches, doc) {
|
|
return anchor === "right" ? doc.body.offsetWidth - touches[0].pageX : touches[0].pageX;
|
|
}
|
|
function calculateCurrentY(anchor, touches, containerWindow) {
|
|
return anchor === "bottom" ? containerWindow.innerHeight - touches[0].clientY : touches[0].clientY;
|
|
}
|
|
function getMaxTranslate(horizontalSwipe, paperInstance) {
|
|
return horizontalSwipe ? paperInstance.clientWidth : paperInstance.clientHeight;
|
|
}
|
|
function getTranslate(currentTranslate, startLocation, open, maxTranslate) {
|
|
return Math.min(Math.max(open ? startLocation - currentTranslate : maxTranslate + startLocation - currentTranslate, 0), maxTranslate);
|
|
}
|
|
function getDomTreeShapes(element, rootNode) {
|
|
const domTreeShapes = [];
|
|
while (element && element !== rootNode.parentElement) {
|
|
const style = ownerWindow_default(rootNode).getComputedStyle(element);
|
|
if (
|
|
// Ignore the scroll children if the element is absolute positioned.
|
|
style.getPropertyValue("position") === "absolute" || // Ignore the scroll children if the element has an overflowX hidden
|
|
style.getPropertyValue("overflow-x") === "hidden"
|
|
) {
|
|
} else if (element.clientWidth > 0 && element.scrollWidth > element.clientWidth || element.clientHeight > 0 && element.scrollHeight > element.clientHeight) {
|
|
domTreeShapes.push(element);
|
|
}
|
|
element = element.parentElement;
|
|
}
|
|
return domTreeShapes;
|
|
}
|
|
function computeHasNativeHandler({
|
|
domTreeShapes,
|
|
start,
|
|
current,
|
|
anchor
|
|
}) {
|
|
const axisProperties = {
|
|
scrollPosition: {
|
|
x: "scrollLeft",
|
|
y: "scrollTop"
|
|
},
|
|
scrollLength: {
|
|
x: "scrollWidth",
|
|
y: "scrollHeight"
|
|
},
|
|
clientLength: {
|
|
x: "clientWidth",
|
|
y: "clientHeight"
|
|
}
|
|
};
|
|
return domTreeShapes.some((shape) => {
|
|
let goingForward = current >= start;
|
|
if (anchor === "top" || anchor === "left") {
|
|
goingForward = !goingForward;
|
|
}
|
|
const axis = anchor === "left" || anchor === "right" ? "x" : "y";
|
|
const scrollPosition = Math.round(shape[axisProperties.scrollPosition[axis]]);
|
|
const areNotAtStart = scrollPosition > 0;
|
|
const areNotAtEnd = scrollPosition + shape[axisProperties.clientLength[axis]] < shape[axisProperties.scrollLength[axis]];
|
|
if (goingForward && areNotAtEnd || !goingForward && areNotAtStart) {
|
|
return true;
|
|
}
|
|
return false;
|
|
});
|
|
}
|
|
var iOS = typeof navigator !== "undefined" && /iPad|iPhone|iPod/.test(navigator.userAgent);
|
|
var SwipeableDrawer = React97.forwardRef(function SwipeableDrawer2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
name: "MuiSwipeableDrawer",
|
|
props: inProps
|
|
});
|
|
const theme = useTheme();
|
|
const transitionDurationDefault = {
|
|
enter: theme.transitions.duration.enteringScreen,
|
|
exit: theme.transitions.duration.leavingScreen
|
|
};
|
|
const {
|
|
anchor = "left",
|
|
disableBackdropTransition = false,
|
|
disableDiscovery = false,
|
|
disableSwipeToOpen = iOS,
|
|
hideBackdrop,
|
|
hysteresis = 0.52,
|
|
allowSwipeInChildren = false,
|
|
minFlingVelocity = 450,
|
|
ModalProps: {
|
|
BackdropProps
|
|
} = {},
|
|
onClose,
|
|
onOpen,
|
|
open = false,
|
|
PaperProps = {},
|
|
SwipeAreaProps,
|
|
swipeAreaWidth = 20,
|
|
transitionDuration = transitionDurationDefault,
|
|
variant = "temporary"
|
|
// Mobile first.
|
|
} = props, ModalPropsProp = _objectWithoutPropertiesLoose(props.ModalProps, _excluded72), other = _objectWithoutPropertiesLoose(props, _excluded216);
|
|
const [maybeSwiping, setMaybeSwiping] = React97.useState(false);
|
|
const swipeInstance = React97.useRef({
|
|
isSwiping: null
|
|
});
|
|
const swipeAreaRef = React97.useRef();
|
|
const backdropRef = React97.useRef();
|
|
const paperRef = React97.useRef();
|
|
const handleRef = useForkRef_default(PaperProps.ref, paperRef);
|
|
const touchDetected = React97.useRef(false);
|
|
const calculatedDurationRef = React97.useRef();
|
|
useEnhancedEffect_default2(() => {
|
|
calculatedDurationRef.current = null;
|
|
}, [open]);
|
|
const setPosition = React97.useCallback((translate, options = {}) => {
|
|
const {
|
|
mode = null,
|
|
changeTransition = true
|
|
} = options;
|
|
const anchorRtl = getAnchor(theme, anchor);
|
|
const rtlTranslateMultiplier = ["right", "bottom"].indexOf(anchorRtl) !== -1 ? 1 : -1;
|
|
const horizontalSwipe = isHorizontal(anchor);
|
|
const transform = horizontalSwipe ? `translate(${rtlTranslateMultiplier * translate}px, 0)` : `translate(0, ${rtlTranslateMultiplier * translate}px)`;
|
|
const drawerStyle = paperRef.current.style;
|
|
drawerStyle.webkitTransform = transform;
|
|
drawerStyle.transform = transform;
|
|
let transition = "";
|
|
if (mode) {
|
|
transition = theme.transitions.create("all", getTransitionProps({
|
|
easing: void 0,
|
|
style: void 0,
|
|
timeout: transitionDuration
|
|
}, {
|
|
mode
|
|
}));
|
|
}
|
|
if (changeTransition) {
|
|
drawerStyle.webkitTransition = transition;
|
|
drawerStyle.transition = transition;
|
|
}
|
|
if (!disableBackdropTransition && !hideBackdrop) {
|
|
const backdropStyle = backdropRef.current.style;
|
|
backdropStyle.opacity = 1 - translate / getMaxTranslate(horizontalSwipe, paperRef.current);
|
|
if (changeTransition) {
|
|
backdropStyle.webkitTransition = transition;
|
|
backdropStyle.transition = transition;
|
|
}
|
|
}
|
|
}, [anchor, disableBackdropTransition, hideBackdrop, theme, transitionDuration]);
|
|
const handleBodyTouchEnd = useEventCallback_default2((nativeEvent) => {
|
|
if (!touchDetected.current) {
|
|
return;
|
|
}
|
|
claimedSwipeInstance = null;
|
|
touchDetected.current = false;
|
|
ReactDOM.flushSync(() => {
|
|
setMaybeSwiping(false);
|
|
});
|
|
if (!swipeInstance.current.isSwiping) {
|
|
swipeInstance.current.isSwiping = null;
|
|
return;
|
|
}
|
|
swipeInstance.current.isSwiping = null;
|
|
const anchorRtl = getAnchor(theme, anchor);
|
|
const horizontal = isHorizontal(anchor);
|
|
let current;
|
|
if (horizontal) {
|
|
current = calculateCurrentX(anchorRtl, nativeEvent.changedTouches, ownerDocument_default(nativeEvent.currentTarget));
|
|
} else {
|
|
current = calculateCurrentY(anchorRtl, nativeEvent.changedTouches, ownerWindow_default(nativeEvent.currentTarget));
|
|
}
|
|
const startLocation = horizontal ? swipeInstance.current.startX : swipeInstance.current.startY;
|
|
const maxTranslate = getMaxTranslate(horizontal, paperRef.current);
|
|
const currentTranslate = getTranslate(current, startLocation, open, maxTranslate);
|
|
const translateRatio = currentTranslate / maxTranslate;
|
|
if (Math.abs(swipeInstance.current.velocity) > minFlingVelocity) {
|
|
calculatedDurationRef.current = Math.abs((maxTranslate - currentTranslate) / swipeInstance.current.velocity) * 1e3;
|
|
}
|
|
if (open) {
|
|
if (swipeInstance.current.velocity > minFlingVelocity || translateRatio > hysteresis) {
|
|
onClose();
|
|
} else {
|
|
setPosition(0, {
|
|
mode: "exit"
|
|
});
|
|
}
|
|
return;
|
|
}
|
|
if (swipeInstance.current.velocity < -minFlingVelocity || 1 - translateRatio > hysteresis) {
|
|
onOpen();
|
|
} else {
|
|
setPosition(getMaxTranslate(horizontal, paperRef.current), {
|
|
mode: "enter"
|
|
});
|
|
}
|
|
});
|
|
const startMaybeSwiping = (force = false) => {
|
|
if (!maybeSwiping) {
|
|
if (force || !(disableDiscovery && allowSwipeInChildren)) {
|
|
ReactDOM.flushSync(() => {
|
|
setMaybeSwiping(true);
|
|
});
|
|
}
|
|
const horizontalSwipe = isHorizontal(anchor);
|
|
if (!open && paperRef.current) {
|
|
setPosition(getMaxTranslate(horizontalSwipe, paperRef.current) + (disableDiscovery ? 15 : -DRAG_STARTED_SIGNAL), {
|
|
changeTransition: false
|
|
});
|
|
}
|
|
swipeInstance.current.velocity = 0;
|
|
swipeInstance.current.lastTime = null;
|
|
swipeInstance.current.lastTranslate = null;
|
|
swipeInstance.current.paperHit = false;
|
|
touchDetected.current = true;
|
|
}
|
|
};
|
|
const handleBodyTouchMove = useEventCallback_default2((nativeEvent) => {
|
|
if (!paperRef.current || !touchDetected.current) {
|
|
return;
|
|
}
|
|
if (claimedSwipeInstance !== null && claimedSwipeInstance !== swipeInstance.current) {
|
|
return;
|
|
}
|
|
startMaybeSwiping(true);
|
|
const anchorRtl = getAnchor(theme, anchor);
|
|
const horizontalSwipe = isHorizontal(anchor);
|
|
const currentX = calculateCurrentX(anchorRtl, nativeEvent.touches, ownerDocument_default(nativeEvent.currentTarget));
|
|
const currentY = calculateCurrentY(anchorRtl, nativeEvent.touches, ownerWindow_default(nativeEvent.currentTarget));
|
|
if (open && paperRef.current.contains(nativeEvent.target) && claimedSwipeInstance === null) {
|
|
const domTreeShapes = getDomTreeShapes(nativeEvent.target, paperRef.current);
|
|
const hasNativeHandler = computeHasNativeHandler({
|
|
domTreeShapes,
|
|
start: horizontalSwipe ? swipeInstance.current.startX : swipeInstance.current.startY,
|
|
current: horizontalSwipe ? currentX : currentY,
|
|
anchor
|
|
});
|
|
if (hasNativeHandler) {
|
|
claimedSwipeInstance = true;
|
|
return;
|
|
}
|
|
claimedSwipeInstance = swipeInstance.current;
|
|
}
|
|
if (swipeInstance.current.isSwiping == null) {
|
|
const dx = Math.abs(currentX - swipeInstance.current.startX);
|
|
const dy = Math.abs(currentY - swipeInstance.current.startY);
|
|
const definitelySwiping = horizontalSwipe ? dx > dy && dx > UNCERTAINTY_THRESHOLD : dy > dx && dy > UNCERTAINTY_THRESHOLD;
|
|
if (definitelySwiping && nativeEvent.cancelable) {
|
|
nativeEvent.preventDefault();
|
|
}
|
|
if (definitelySwiping === true || (horizontalSwipe ? dy > UNCERTAINTY_THRESHOLD : dx > UNCERTAINTY_THRESHOLD)) {
|
|
swipeInstance.current.isSwiping = definitelySwiping;
|
|
if (!definitelySwiping) {
|
|
handleBodyTouchEnd(nativeEvent);
|
|
return;
|
|
}
|
|
swipeInstance.current.startX = currentX;
|
|
swipeInstance.current.startY = currentY;
|
|
if (!disableDiscovery && !open) {
|
|
if (horizontalSwipe) {
|
|
swipeInstance.current.startX -= DRAG_STARTED_SIGNAL;
|
|
} else {
|
|
swipeInstance.current.startY -= DRAG_STARTED_SIGNAL;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!swipeInstance.current.isSwiping) {
|
|
return;
|
|
}
|
|
const maxTranslate = getMaxTranslate(horizontalSwipe, paperRef.current);
|
|
let startLocation = horizontalSwipe ? swipeInstance.current.startX : swipeInstance.current.startY;
|
|
if (open && !swipeInstance.current.paperHit) {
|
|
startLocation = Math.min(startLocation, maxTranslate);
|
|
}
|
|
const translate = getTranslate(horizontalSwipe ? currentX : currentY, startLocation, open, maxTranslate);
|
|
if (open) {
|
|
if (!swipeInstance.current.paperHit) {
|
|
const paperHit = horizontalSwipe ? currentX < maxTranslate : currentY < maxTranslate;
|
|
if (paperHit) {
|
|
swipeInstance.current.paperHit = true;
|
|
swipeInstance.current.startX = currentX;
|
|
swipeInstance.current.startY = currentY;
|
|
} else {
|
|
return;
|
|
}
|
|
} else if (translate === 0) {
|
|
swipeInstance.current.startX = currentX;
|
|
swipeInstance.current.startY = currentY;
|
|
}
|
|
}
|
|
if (swipeInstance.current.lastTranslate === null) {
|
|
swipeInstance.current.lastTranslate = translate;
|
|
swipeInstance.current.lastTime = performance.now() + 1;
|
|
}
|
|
const velocity = (translate - swipeInstance.current.lastTranslate) / (performance.now() - swipeInstance.current.lastTime) * 1e3;
|
|
swipeInstance.current.velocity = swipeInstance.current.velocity * 0.4 + velocity * 0.6;
|
|
swipeInstance.current.lastTranslate = translate;
|
|
swipeInstance.current.lastTime = performance.now();
|
|
if (nativeEvent.cancelable) {
|
|
nativeEvent.preventDefault();
|
|
}
|
|
setPosition(translate);
|
|
});
|
|
const handleBodyTouchStart = useEventCallback_default2((nativeEvent) => {
|
|
if (nativeEvent.defaultPrevented) {
|
|
return;
|
|
}
|
|
if (nativeEvent.defaultMuiPrevented) {
|
|
return;
|
|
}
|
|
if (open && (hideBackdrop || !backdropRef.current.contains(nativeEvent.target)) && !paperRef.current.contains(nativeEvent.target)) {
|
|
return;
|
|
}
|
|
const anchorRtl = getAnchor(theme, anchor);
|
|
const horizontalSwipe = isHorizontal(anchor);
|
|
const currentX = calculateCurrentX(anchorRtl, nativeEvent.touches, ownerDocument_default(nativeEvent.currentTarget));
|
|
const currentY = calculateCurrentY(anchorRtl, nativeEvent.touches, ownerWindow_default(nativeEvent.currentTarget));
|
|
if (!open) {
|
|
var _paperRef$current;
|
|
if (disableSwipeToOpen || !(nativeEvent.target === swipeAreaRef.current || (_paperRef$current = paperRef.current) != null && _paperRef$current.contains(nativeEvent.target) && (typeof allowSwipeInChildren === "function" ? allowSwipeInChildren(nativeEvent, swipeAreaRef.current, paperRef.current) : allowSwipeInChildren))) {
|
|
return;
|
|
}
|
|
if (horizontalSwipe) {
|
|
if (currentX > swipeAreaWidth) {
|
|
return;
|
|
}
|
|
} else if (currentY > swipeAreaWidth) {
|
|
return;
|
|
}
|
|
}
|
|
nativeEvent.defaultMuiPrevented = true;
|
|
claimedSwipeInstance = null;
|
|
swipeInstance.current.startX = currentX;
|
|
swipeInstance.current.startY = currentY;
|
|
startMaybeSwiping();
|
|
});
|
|
React97.useEffect(() => {
|
|
if (variant === "temporary") {
|
|
const doc = ownerDocument_default(paperRef.current);
|
|
doc.addEventListener("touchstart", handleBodyTouchStart);
|
|
doc.addEventListener("touchmove", handleBodyTouchMove, {
|
|
passive: !open
|
|
});
|
|
doc.addEventListener("touchend", handleBodyTouchEnd);
|
|
return () => {
|
|
doc.removeEventListener("touchstart", handleBodyTouchStart);
|
|
doc.removeEventListener("touchmove", handleBodyTouchMove, {
|
|
passive: !open
|
|
});
|
|
doc.removeEventListener("touchend", handleBodyTouchEnd);
|
|
};
|
|
}
|
|
return void 0;
|
|
}, [variant, open, handleBodyTouchStart, handleBodyTouchMove, handleBodyTouchEnd]);
|
|
React97.useEffect(() => () => {
|
|
if (claimedSwipeInstance === swipeInstance.current) {
|
|
claimedSwipeInstance = null;
|
|
}
|
|
}, []);
|
|
React97.useEffect(() => {
|
|
if (!open) {
|
|
setMaybeSwiping(false);
|
|
}
|
|
}, [open]);
|
|
return (0, import_jsx_runtime111.jsxs)(React97.Fragment, {
|
|
children: [(0, import_jsx_runtime110.jsx)(Drawer_default, _extends({
|
|
open: variant === "temporary" && maybeSwiping ? true : open,
|
|
variant,
|
|
ModalProps: _extends({
|
|
BackdropProps: _extends({}, BackdropProps, {
|
|
ref: backdropRef
|
|
})
|
|
}, variant === "temporary" && {
|
|
keepMounted: true
|
|
}, ModalPropsProp),
|
|
hideBackdrop,
|
|
PaperProps: _extends({}, PaperProps, {
|
|
style: _extends({
|
|
pointerEvents: variant === "temporary" && !open && !allowSwipeInChildren ? "none" : ""
|
|
}, PaperProps.style),
|
|
ref: handleRef
|
|
}),
|
|
anchor,
|
|
transitionDuration: calculatedDurationRef.current || transitionDuration,
|
|
onClose,
|
|
ref
|
|
}, other)), !disableSwipeToOpen && variant === "temporary" && (0, import_jsx_runtime110.jsx)(NoSsr_default, {
|
|
children: (0, import_jsx_runtime110.jsx)(SwipeArea_default, _extends({
|
|
anchor,
|
|
ref: swipeAreaRef,
|
|
width: swipeAreaWidth
|
|
}, SwipeAreaProps))
|
|
})]
|
|
});
|
|
});
|
|
true ? SwipeableDrawer.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* If set to true, the swipe event will open the drawer even if the user begins the swipe on one of the drawer's children.
|
|
* This can be useful in scenarios where the drawer is partially visible.
|
|
* You can customize it further with a callback that determines which children the user can drag over to open the drawer
|
|
* (for example, to ignore other elements that handle touch move events, like sliders).
|
|
*
|
|
* @param {TouchEvent} event The 'touchstart' event
|
|
* @param {HTMLDivElement} swipeArea The swipe area element
|
|
* @param {HTMLDivElement} paper The drawer's paper element
|
|
*
|
|
* @default false
|
|
*/
|
|
allowSwipeInChildren: import_prop_types74.default.oneOfType([import_prop_types74.default.func, import_prop_types74.default.bool]),
|
|
/**
|
|
* @ignore
|
|
*/
|
|
anchor: import_prop_types74.default.oneOf(["bottom", "left", "right", "top"]),
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types74.default.node,
|
|
/**
|
|
* Disable the backdrop transition.
|
|
* This can improve the FPS on low-end devices.
|
|
* @default false
|
|
*/
|
|
disableBackdropTransition: import_prop_types74.default.bool,
|
|
/**
|
|
* If `true`, touching the screen near the edge of the drawer will not slide in the drawer a bit
|
|
* to promote accidental discovery of the swipe gesture.
|
|
* @default false
|
|
*/
|
|
disableDiscovery: import_prop_types74.default.bool,
|
|
/**
|
|
* If `true`, swipe to open is disabled. This is useful in browsers where swiping triggers
|
|
* navigation actions. Swipe to open is disabled on iOS browsers by default.
|
|
* @default typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent)
|
|
*/
|
|
disableSwipeToOpen: import_prop_types74.default.bool,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
hideBackdrop: import_prop_types74.default.bool,
|
|
/**
|
|
* Affects how far the drawer must be opened/closed to change its state.
|
|
* Specified as percent (0-1) of the width of the drawer
|
|
* @default 0.52
|
|
*/
|
|
hysteresis: import_prop_types74.default.number,
|
|
/**
|
|
* Defines, from which (average) velocity on, the swipe is
|
|
* defined as complete although hysteresis isn't reached.
|
|
* Good threshold is between 250 - 1000 px/s
|
|
* @default 450
|
|
*/
|
|
minFlingVelocity: import_prop_types74.default.number,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
ModalProps: import_prop_types74.default.shape({
|
|
BackdropProps: import_prop_types74.default.shape({
|
|
component: elementTypeAcceptingRef_default
|
|
})
|
|
}),
|
|
/**
|
|
* Callback fired when the component requests to be closed.
|
|
*
|
|
* @param {React.SyntheticEvent<{}>} event The event source of the callback.
|
|
*/
|
|
onClose: import_prop_types74.default.func.isRequired,
|
|
/**
|
|
* Callback fired when the component requests to be opened.
|
|
*
|
|
* @param {React.SyntheticEvent<{}>} event The event source of the callback.
|
|
*/
|
|
onOpen: import_prop_types74.default.func.isRequired,
|
|
/**
|
|
* If `true`, the component is shown.
|
|
* @default false
|
|
*/
|
|
open: import_prop_types74.default.bool,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
PaperProps: import_prop_types74.default.shape({
|
|
component: elementTypeAcceptingRef_default,
|
|
style: import_prop_types74.default.object
|
|
}),
|
|
/**
|
|
* The element is used to intercept the touch events on the edge.
|
|
*/
|
|
SwipeAreaProps: import_prop_types74.default.object,
|
|
/**
|
|
* The width of the left most (or right most) area in `px` that
|
|
* the drawer can be swiped open from.
|
|
* @default 20
|
|
*/
|
|
swipeAreaWidth: import_prop_types74.default.number,
|
|
/**
|
|
* The duration for the transition, in milliseconds.
|
|
* You may specify a single timeout for all transitions, or individually with an object.
|
|
* @default {
|
|
* enter: theme.transitions.duration.enteringScreen,
|
|
* exit: theme.transitions.duration.leavingScreen,
|
|
* }
|
|
*/
|
|
transitionDuration: import_prop_types74.default.oneOfType([import_prop_types74.default.number, import_prop_types74.default.shape({
|
|
appear: import_prop_types74.default.number,
|
|
enter: import_prop_types74.default.number,
|
|
exit: import_prop_types74.default.number
|
|
})]),
|
|
/**
|
|
* @ignore
|
|
*/
|
|
variant: import_prop_types74.default.oneOf(["permanent", "persistent", "temporary"])
|
|
} : void 0;
|
|
var SwipeableDrawer_default = SwipeableDrawer;
|
|
|
|
// node_modules/@mui/material/Tab/Tab.js
|
|
init_extends();
|
|
var React98 = __toESM(require_react());
|
|
var import_prop_types75 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Tab/tabClasses.js
|
|
function getTabUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTab", slot);
|
|
}
|
|
var tabClasses = generateUtilityClasses("MuiTab", ["root", "labelIcon", "textColorInherit", "textColorPrimary", "textColorSecondary", "selected", "disabled", "fullWidth", "wrapped", "iconWrapper"]);
|
|
var tabClasses_default = tabClasses;
|
|
|
|
// node_modules/@mui/material/Tab/Tab.js
|
|
var import_jsx_runtime112 = __toESM(require_jsx_runtime());
|
|
var _excluded73 = ["className", "disabled", "disableFocusRipple", "fullWidth", "icon", "iconPosition", "indicator", "label", "onChange", "onClick", "onFocus", "selected", "selectionFollowsFocus", "textColor", "value", "wrapped"];
|
|
var useUtilityClasses62 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
textColor,
|
|
fullWidth,
|
|
wrapped,
|
|
icon,
|
|
label,
|
|
selected,
|
|
disabled
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", icon && label && "labelIcon", `textColor${capitalize_default(textColor)}`, fullWidth && "fullWidth", wrapped && "wrapped", selected && "selected", disabled && "disabled"],
|
|
iconWrapper: ["iconWrapper"]
|
|
};
|
|
return composeClasses(slots, getTabUtilityClass, classes);
|
|
};
|
|
var TabRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiTab",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.label && ownerState.icon && styles3.labelIcon, styles3[`textColor${capitalize_default(ownerState.textColor)}`], ownerState.fullWidth && styles3.fullWidth, ownerState.wrapped && styles3.wrapped, {
|
|
[`& .${tabClasses_default.iconWrapper}`]: styles3.iconWrapper
|
|
}];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({}, theme.typography.button, {
|
|
maxWidth: 360,
|
|
minWidth: 90,
|
|
position: "relative",
|
|
minHeight: 48,
|
|
flexShrink: 0,
|
|
padding: "12px 16px",
|
|
overflow: "hidden",
|
|
whiteSpace: "normal",
|
|
textAlign: "center"
|
|
}, ownerState.label && {
|
|
flexDirection: ownerState.iconPosition === "top" || ownerState.iconPosition === "bottom" ? "column" : "row"
|
|
}, {
|
|
lineHeight: 1.25
|
|
}, ownerState.icon && ownerState.label && {
|
|
minHeight: 72,
|
|
paddingTop: 9,
|
|
paddingBottom: 9,
|
|
[`& > .${tabClasses_default.iconWrapper}`]: _extends({}, ownerState.iconPosition === "top" && {
|
|
marginBottom: 6
|
|
}, ownerState.iconPosition === "bottom" && {
|
|
marginTop: 6
|
|
}, ownerState.iconPosition === "start" && {
|
|
marginRight: theme.spacing(1)
|
|
}, ownerState.iconPosition === "end" && {
|
|
marginLeft: theme.spacing(1)
|
|
})
|
|
}, ownerState.textColor === "inherit" && {
|
|
color: "inherit",
|
|
opacity: 0.6,
|
|
// same opacity as theme.palette.text.secondary
|
|
[`&.${tabClasses_default.selected}`]: {
|
|
opacity: 1
|
|
},
|
|
[`&.${tabClasses_default.disabled}`]: {
|
|
opacity: (theme.vars || theme).palette.action.disabledOpacity
|
|
}
|
|
}, ownerState.textColor === "primary" && {
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
[`&.${tabClasses_default.selected}`]: {
|
|
color: (theme.vars || theme).palette.primary.main
|
|
},
|
|
[`&.${tabClasses_default.disabled}`]: {
|
|
color: (theme.vars || theme).palette.text.disabled
|
|
}
|
|
}, ownerState.textColor === "secondary" && {
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
[`&.${tabClasses_default.selected}`]: {
|
|
color: (theme.vars || theme).palette.secondary.main
|
|
},
|
|
[`&.${tabClasses_default.disabled}`]: {
|
|
color: (theme.vars || theme).palette.text.disabled
|
|
}
|
|
}, ownerState.fullWidth && {
|
|
flexShrink: 1,
|
|
flexGrow: 1,
|
|
flexBasis: 0,
|
|
maxWidth: "none"
|
|
}, ownerState.wrapped && {
|
|
fontSize: theme.typography.pxToRem(12)
|
|
}));
|
|
var Tab = React98.forwardRef(function Tab2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTab"
|
|
});
|
|
const {
|
|
className,
|
|
disabled = false,
|
|
disableFocusRipple = false,
|
|
// eslint-disable-next-line react/prop-types
|
|
fullWidth,
|
|
icon: iconProp,
|
|
iconPosition = "top",
|
|
// eslint-disable-next-line react/prop-types
|
|
indicator,
|
|
label,
|
|
onChange,
|
|
onClick,
|
|
onFocus,
|
|
// eslint-disable-next-line react/prop-types
|
|
selected,
|
|
// eslint-disable-next-line react/prop-types
|
|
selectionFollowsFocus,
|
|
// eslint-disable-next-line react/prop-types
|
|
textColor = "inherit",
|
|
value,
|
|
wrapped = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded73);
|
|
const ownerState = _extends({}, props, {
|
|
disabled,
|
|
disableFocusRipple,
|
|
selected,
|
|
icon: !!iconProp,
|
|
iconPosition,
|
|
label: !!label,
|
|
fullWidth,
|
|
textColor,
|
|
wrapped
|
|
});
|
|
const classes = useUtilityClasses62(ownerState);
|
|
const icon = iconProp && label && React98.isValidElement(iconProp) ? React98.cloneElement(iconProp, {
|
|
className: clsx_default(classes.iconWrapper, iconProp.props.className)
|
|
}) : iconProp;
|
|
const handleClick = (event) => {
|
|
if (!selected && onChange) {
|
|
onChange(event, value);
|
|
}
|
|
if (onClick) {
|
|
onClick(event);
|
|
}
|
|
};
|
|
const handleFocus = (event) => {
|
|
if (selectionFollowsFocus && !selected && onChange) {
|
|
onChange(event, value);
|
|
}
|
|
if (onFocus) {
|
|
onFocus(event);
|
|
}
|
|
};
|
|
return (0, import_jsx_runtime112.jsxs)(TabRoot, _extends({
|
|
focusRipple: !disableFocusRipple,
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
role: "tab",
|
|
"aria-selected": selected,
|
|
disabled,
|
|
onClick: handleClick,
|
|
onFocus: handleFocus,
|
|
ownerState,
|
|
tabIndex: selected ? 0 : -1
|
|
}, other, {
|
|
children: [iconPosition === "top" || iconPosition === "start" ? (0, import_jsx_runtime112.jsxs)(React98.Fragment, {
|
|
children: [icon, label]
|
|
}) : (0, import_jsx_runtime112.jsxs)(React98.Fragment, {
|
|
children: [label, icon]
|
|
}), indicator]
|
|
}));
|
|
});
|
|
true ? Tab.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* This prop isn't supported.
|
|
* Use the `component` prop if you need to change the children structure.
|
|
*/
|
|
children: unsupportedProp_default,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types75.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types75.default.string,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types75.default.bool,
|
|
/**
|
|
* If `true`, the keyboard focus ripple is disabled.
|
|
* @default false
|
|
*/
|
|
disableFocusRipple: import_prop_types75.default.bool,
|
|
/**
|
|
* If `true`, the ripple effect is disabled.
|
|
*
|
|
* ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
|
|
* to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
|
|
* @default false
|
|
*/
|
|
disableRipple: import_prop_types75.default.bool,
|
|
/**
|
|
* The icon to display.
|
|
*/
|
|
icon: import_prop_types75.default.oneOfType([import_prop_types75.default.element, import_prop_types75.default.string]),
|
|
/**
|
|
* The position of the icon relative to the label.
|
|
* @default 'top'
|
|
*/
|
|
iconPosition: import_prop_types75.default.oneOf(["bottom", "end", "start", "top"]),
|
|
/**
|
|
* The label element.
|
|
*/
|
|
label: import_prop_types75.default.node,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onChange: import_prop_types75.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onClick: import_prop_types75.default.func,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
onFocus: import_prop_types75.default.func,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types75.default.oneOfType([import_prop_types75.default.arrayOf(import_prop_types75.default.oneOfType([import_prop_types75.default.func, import_prop_types75.default.object, import_prop_types75.default.bool])), import_prop_types75.default.func, import_prop_types75.default.object]),
|
|
/**
|
|
* You can provide your own value. Otherwise, we fallback to the child position index.
|
|
*/
|
|
value: import_prop_types75.default.any,
|
|
/**
|
|
* Tab labels appear in a single row.
|
|
* They can use a second line if needed.
|
|
* @default false
|
|
*/
|
|
wrapped: import_prop_types75.default.bool
|
|
} : void 0;
|
|
var Tab_default = Tab;
|
|
|
|
// node_modules/@mui/material/Table/Table.js
|
|
init_extends();
|
|
var React99 = __toESM(require_react());
|
|
var import_prop_types76 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/Table/tableClasses.js
|
|
function getTableUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTable", slot);
|
|
}
|
|
var tableClasses = generateUtilityClasses("MuiTable", ["root", "stickyHeader"]);
|
|
var tableClasses_default = tableClasses;
|
|
|
|
// node_modules/@mui/material/Table/Table.js
|
|
var import_jsx_runtime113 = __toESM(require_jsx_runtime());
|
|
var _excluded74 = ["className", "component", "padding", "size", "stickyHeader"];
|
|
var useUtilityClasses63 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
stickyHeader
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", stickyHeader && "stickyHeader"]
|
|
};
|
|
return composeClasses(slots, getTableUtilityClass, classes);
|
|
};
|
|
var TableRoot = styled_default("table", {
|
|
name: "MuiTable",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.stickyHeader && styles3.stickyHeader];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
display: "table",
|
|
width: "100%",
|
|
borderCollapse: "collapse",
|
|
borderSpacing: 0,
|
|
"& caption": _extends({}, theme.typography.body2, {
|
|
padding: theme.spacing(2),
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
textAlign: "left",
|
|
captionSide: "bottom"
|
|
})
|
|
}, ownerState.stickyHeader && {
|
|
borderCollapse: "separate"
|
|
}));
|
|
var defaultComponent = "table";
|
|
var Table = React99.forwardRef(function Table2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTable"
|
|
});
|
|
const {
|
|
className,
|
|
component = defaultComponent,
|
|
padding = "normal",
|
|
size = "medium",
|
|
stickyHeader = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded74);
|
|
const ownerState = _extends({}, props, {
|
|
component,
|
|
padding,
|
|
size,
|
|
stickyHeader
|
|
});
|
|
const classes = useUtilityClasses63(ownerState);
|
|
const table = React99.useMemo(() => ({
|
|
padding,
|
|
size,
|
|
stickyHeader
|
|
}), [padding, size, stickyHeader]);
|
|
return (0, import_jsx_runtime113.jsx)(TableContext_default.Provider, {
|
|
value: table,
|
|
children: (0, import_jsx_runtime113.jsx)(TableRoot, _extends({
|
|
as: component,
|
|
role: component === defaultComponent ? null : "table",
|
|
ref,
|
|
className: clsx_default(classes.root, className),
|
|
ownerState
|
|
}, other))
|
|
});
|
|
});
|
|
true ? Table.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the table, normally `TableHead` and `TableBody`.
|
|
*/
|
|
children: import_prop_types76.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types76.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types76.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types76.default.elementType,
|
|
/**
|
|
* Allows TableCells to inherit padding of the Table.
|
|
* @default 'normal'
|
|
*/
|
|
padding: import_prop_types76.default.oneOf(["checkbox", "none", "normal"]),
|
|
/**
|
|
* Allows TableCells to inherit size of the Table.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types76.default.oneOfType([import_prop_types76.default.oneOf(["medium", "small"]), import_prop_types76.default.string]),
|
|
/**
|
|
* Set the header sticky.
|
|
*
|
|
* ⚠️ It doesn't work with IE11.
|
|
* @default false
|
|
*/
|
|
stickyHeader: import_prop_types76.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types76.default.oneOfType([import_prop_types76.default.arrayOf(import_prop_types76.default.oneOfType([import_prop_types76.default.func, import_prop_types76.default.object, import_prop_types76.default.bool])), import_prop_types76.default.func, import_prop_types76.default.object])
|
|
} : void 0;
|
|
var Table_default = Table;
|
|
|
|
// node_modules/@mui/material/TableBody/TableBody.js
|
|
init_extends();
|
|
var React100 = __toESM(require_react());
|
|
var import_prop_types77 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/TableBody/tableBodyClasses.js
|
|
function getTableBodyUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTableBody", slot);
|
|
}
|
|
var tableBodyClasses = generateUtilityClasses("MuiTableBody", ["root"]);
|
|
var tableBodyClasses_default = tableBodyClasses;
|
|
|
|
// node_modules/@mui/material/TableBody/TableBody.js
|
|
var import_jsx_runtime114 = __toESM(require_jsx_runtime());
|
|
var _excluded75 = ["className", "component"];
|
|
var useUtilityClasses64 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getTableBodyUtilityClass, classes);
|
|
};
|
|
var TableBodyRoot = styled_default("tbody", {
|
|
name: "MuiTableBody",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})({
|
|
display: "table-row-group"
|
|
});
|
|
var tablelvl2 = {
|
|
variant: "body"
|
|
};
|
|
var defaultComponent2 = "tbody";
|
|
var TableBody = React100.forwardRef(function TableBody2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTableBody"
|
|
});
|
|
const {
|
|
className,
|
|
component = defaultComponent2
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded75);
|
|
const ownerState = _extends({}, props, {
|
|
component
|
|
});
|
|
const classes = useUtilityClasses64(ownerState);
|
|
return (0, import_jsx_runtime114.jsx)(Tablelvl2Context_default.Provider, {
|
|
value: tablelvl2,
|
|
children: (0, import_jsx_runtime114.jsx)(TableBodyRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
as: component,
|
|
ref,
|
|
role: component === defaultComponent2 ? null : "rowgroup",
|
|
ownerState
|
|
}, other))
|
|
});
|
|
});
|
|
true ? TableBody.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component, normally `TableRow`.
|
|
*/
|
|
children: import_prop_types77.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types77.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types77.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types77.default.elementType,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types77.default.oneOfType([import_prop_types77.default.arrayOf(import_prop_types77.default.oneOfType([import_prop_types77.default.func, import_prop_types77.default.object, import_prop_types77.default.bool])), import_prop_types77.default.func, import_prop_types77.default.object])
|
|
} : void 0;
|
|
var TableBody_default = TableBody;
|
|
|
|
// node_modules/@mui/material/TableContainer/TableContainer.js
|
|
init_extends();
|
|
var React101 = __toESM(require_react());
|
|
var import_prop_types78 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/TableContainer/tableContainerClasses.js
|
|
function getTableContainerUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTableContainer", slot);
|
|
}
|
|
var tableContainerClasses = generateUtilityClasses("MuiTableContainer", ["root"]);
|
|
var tableContainerClasses_default = tableContainerClasses;
|
|
|
|
// node_modules/@mui/material/TableContainer/TableContainer.js
|
|
var import_jsx_runtime115 = __toESM(require_jsx_runtime());
|
|
var _excluded76 = ["className", "component"];
|
|
var useUtilityClasses65 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getTableContainerUtilityClass, classes);
|
|
};
|
|
var TableContainerRoot = styled_default("div", {
|
|
name: "MuiTableContainer",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})({
|
|
width: "100%",
|
|
overflowX: "auto"
|
|
});
|
|
var TableContainer = React101.forwardRef(function TableContainer2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTableContainer"
|
|
});
|
|
const {
|
|
className,
|
|
component = "div"
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded76);
|
|
const ownerState = _extends({}, props, {
|
|
component
|
|
});
|
|
const classes = useUtilityClasses65(ownerState);
|
|
return (0, import_jsx_runtime115.jsx)(TableContainerRoot, _extends({
|
|
ref,
|
|
as: component,
|
|
className: clsx_default(classes.root, className),
|
|
ownerState
|
|
}, other));
|
|
});
|
|
true ? TableContainer.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component, normally `Table`.
|
|
*/
|
|
children: import_prop_types78.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types78.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types78.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types78.default.elementType,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types78.default.oneOfType([import_prop_types78.default.arrayOf(import_prop_types78.default.oneOfType([import_prop_types78.default.func, import_prop_types78.default.object, import_prop_types78.default.bool])), import_prop_types78.default.func, import_prop_types78.default.object])
|
|
} : void 0;
|
|
var TableContainer_default = TableContainer;
|
|
|
|
// node_modules/@mui/material/TableFooter/TableFooter.js
|
|
init_extends();
|
|
var React102 = __toESM(require_react());
|
|
var import_prop_types79 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/TableFooter/tableFooterClasses.js
|
|
function getTableFooterUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTableFooter", slot);
|
|
}
|
|
var tableFooterClasses = generateUtilityClasses("MuiTableFooter", ["root"]);
|
|
var tableFooterClasses_default = tableFooterClasses;
|
|
|
|
// node_modules/@mui/material/TableFooter/TableFooter.js
|
|
var import_jsx_runtime116 = __toESM(require_jsx_runtime());
|
|
var _excluded77 = ["className", "component"];
|
|
var useUtilityClasses66 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getTableFooterUtilityClass, classes);
|
|
};
|
|
var TableFooterRoot = styled_default("tfoot", {
|
|
name: "MuiTableFooter",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})({
|
|
display: "table-footer-group"
|
|
});
|
|
var tablelvl22 = {
|
|
variant: "footer"
|
|
};
|
|
var defaultComponent3 = "tfoot";
|
|
var TableFooter = React102.forwardRef(function TableFooter2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTableFooter"
|
|
});
|
|
const {
|
|
className,
|
|
component = defaultComponent3
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded77);
|
|
const ownerState = _extends({}, props, {
|
|
component
|
|
});
|
|
const classes = useUtilityClasses66(ownerState);
|
|
return (0, import_jsx_runtime116.jsx)(Tablelvl2Context_default.Provider, {
|
|
value: tablelvl22,
|
|
children: (0, import_jsx_runtime116.jsx)(TableFooterRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
role: component === defaultComponent3 ? null : "rowgroup",
|
|
ownerState
|
|
}, other))
|
|
});
|
|
});
|
|
true ? TableFooter.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component, normally `TableRow`.
|
|
*/
|
|
children: import_prop_types79.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types79.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types79.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types79.default.elementType,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types79.default.oneOfType([import_prop_types79.default.arrayOf(import_prop_types79.default.oneOfType([import_prop_types79.default.func, import_prop_types79.default.object, import_prop_types79.default.bool])), import_prop_types79.default.func, import_prop_types79.default.object])
|
|
} : void 0;
|
|
var TableFooter_default = TableFooter;
|
|
|
|
// node_modules/@mui/material/TableHead/TableHead.js
|
|
init_extends();
|
|
var React103 = __toESM(require_react());
|
|
var import_prop_types80 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/TableHead/tableHeadClasses.js
|
|
function getTableHeadUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTableHead", slot);
|
|
}
|
|
var tableHeadClasses = generateUtilityClasses("MuiTableHead", ["root"]);
|
|
var tableHeadClasses_default = tableHeadClasses;
|
|
|
|
// node_modules/@mui/material/TableHead/TableHead.js
|
|
var import_jsx_runtime117 = __toESM(require_jsx_runtime());
|
|
var _excluded78 = ["className", "component"];
|
|
var useUtilityClasses67 = (ownerState) => {
|
|
const {
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root"]
|
|
};
|
|
return composeClasses(slots, getTableHeadUtilityClass, classes);
|
|
};
|
|
var TableHeadRoot = styled_default("thead", {
|
|
name: "MuiTableHead",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => styles3.root
|
|
})({
|
|
display: "table-header-group"
|
|
});
|
|
var tablelvl23 = {
|
|
variant: "head"
|
|
};
|
|
var defaultComponent4 = "thead";
|
|
var TableHead = React103.forwardRef(function TableHead2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTableHead"
|
|
});
|
|
const {
|
|
className,
|
|
component = defaultComponent4
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded78);
|
|
const ownerState = _extends({}, props, {
|
|
component
|
|
});
|
|
const classes = useUtilityClasses67(ownerState);
|
|
return (0, import_jsx_runtime117.jsx)(Tablelvl2Context_default.Provider, {
|
|
value: tablelvl23,
|
|
children: (0, import_jsx_runtime117.jsx)(TableHeadRoot, _extends({
|
|
as: component,
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
role: component === defaultComponent4 ? null : "rowgroup",
|
|
ownerState
|
|
}, other))
|
|
});
|
|
});
|
|
true ? TableHead.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component, normally `TableRow`.
|
|
*/
|
|
children: import_prop_types80.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types80.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types80.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types80.default.elementType,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types80.default.oneOfType([import_prop_types80.default.arrayOf(import_prop_types80.default.oneOfType([import_prop_types80.default.func, import_prop_types80.default.object, import_prop_types80.default.bool])), import_prop_types80.default.func, import_prop_types80.default.object])
|
|
} : void 0;
|
|
var TableHead_default = TableHead;
|
|
|
|
// node_modules/@mui/material/TableRow/TableRow.js
|
|
init_extends();
|
|
var React104 = __toESM(require_react());
|
|
var import_prop_types81 = __toESM(require_prop_types());
|
|
var import_colorManipulator13 = __toESM(require_colorManipulator());
|
|
|
|
// node_modules/@mui/material/TableRow/tableRowClasses.js
|
|
function getTableRowUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTableRow", slot);
|
|
}
|
|
var tableRowClasses = generateUtilityClasses("MuiTableRow", ["root", "selected", "hover", "head", "footer"]);
|
|
var tableRowClasses_default = tableRowClasses;
|
|
|
|
// node_modules/@mui/material/TableRow/TableRow.js
|
|
var import_jsx_runtime118 = __toESM(require_jsx_runtime());
|
|
var _excluded79 = ["className", "component", "hover", "selected"];
|
|
var useUtilityClasses68 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
selected,
|
|
hover,
|
|
head,
|
|
footer
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", selected && "selected", hover && "hover", head && "head", footer && "footer"]
|
|
};
|
|
return composeClasses(slots, getTableRowUtilityClass, classes);
|
|
};
|
|
var TableRowRoot = styled_default("tr", {
|
|
name: "MuiTableRow",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.head && styles3.head, ownerState.footer && styles3.footer];
|
|
}
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
color: "inherit",
|
|
display: "table-row",
|
|
verticalAlign: "middle",
|
|
// We disable the focus ring for mouse, touch and keyboard users.
|
|
outline: 0,
|
|
[`&.${tableRowClasses_default.hover}:hover`]: {
|
|
backgroundColor: (theme.vars || theme).palette.action.hover
|
|
},
|
|
[`&.${tableRowClasses_default.selected}`]: {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, import_colorManipulator13.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
|
|
"&:hover": {
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, import_colorManipulator13.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)
|
|
}
|
|
}
|
|
}));
|
|
var defaultComponent5 = "tr";
|
|
var TableRow = React104.forwardRef(function TableRow2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTableRow"
|
|
});
|
|
const {
|
|
className,
|
|
component = defaultComponent5,
|
|
hover = false,
|
|
selected = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded79);
|
|
const tablelvl24 = React104.useContext(Tablelvl2Context_default);
|
|
const ownerState = _extends({}, props, {
|
|
component,
|
|
hover,
|
|
selected,
|
|
head: tablelvl24 && tablelvl24.variant === "head",
|
|
footer: tablelvl24 && tablelvl24.variant === "footer"
|
|
});
|
|
const classes = useUtilityClasses68(ownerState);
|
|
return (0, import_jsx_runtime118.jsx)(TableRowRoot, _extends({
|
|
as: component,
|
|
ref,
|
|
className: clsx_default(classes.root, className),
|
|
role: component === defaultComponent5 ? null : "row",
|
|
ownerState
|
|
}, other));
|
|
});
|
|
true ? TableRow.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Should be valid `<tr>` children such as `TableCell`.
|
|
*/
|
|
children: import_prop_types81.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types81.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types81.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types81.default.elementType,
|
|
/**
|
|
* If `true`, the table row will shade on hover.
|
|
* @default false
|
|
*/
|
|
hover: import_prop_types81.default.bool,
|
|
/**
|
|
* If `true`, the table row will have the selected shading.
|
|
* @default false
|
|
*/
|
|
selected: import_prop_types81.default.bool,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types81.default.oneOfType([import_prop_types81.default.arrayOf(import_prop_types81.default.oneOfType([import_prop_types81.default.func, import_prop_types81.default.object, import_prop_types81.default.bool])), import_prop_types81.default.func, import_prop_types81.default.object])
|
|
} : void 0;
|
|
var TableRow_default = TableRow;
|
|
|
|
// node_modules/@mui/material/TableSortLabel/TableSortLabel.js
|
|
init_extends();
|
|
var import_prop_types82 = __toESM(require_prop_types());
|
|
var React106 = __toESM(require_react());
|
|
|
|
// node_modules/@mui/material/internal/svg-icons/ArrowDownward.js
|
|
var React105 = __toESM(require_react());
|
|
var import_jsx_runtime119 = __toESM(require_jsx_runtime());
|
|
var ArrowDownward_default = createSvgIcon((0, import_jsx_runtime119.jsx)("path", {
|
|
d: "M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"
|
|
}), "ArrowDownward");
|
|
|
|
// node_modules/@mui/material/TableSortLabel/tableSortLabelClasses.js
|
|
function getTableSortLabelUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTableSortLabel", slot);
|
|
}
|
|
var tableSortLabelClasses = generateUtilityClasses("MuiTableSortLabel", ["root", "active", "icon", "iconDirectionDesc", "iconDirectionAsc"]);
|
|
var tableSortLabelClasses_default = tableSortLabelClasses;
|
|
|
|
// node_modules/@mui/material/TableSortLabel/TableSortLabel.js
|
|
var import_jsx_runtime120 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime121 = __toESM(require_jsx_runtime());
|
|
var _excluded80 = ["active", "children", "className", "direction", "hideSortIcon", "IconComponent"];
|
|
var useUtilityClasses69 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
direction,
|
|
active
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", active && "active"],
|
|
icon: ["icon", `iconDirection${capitalize_default(direction)}`]
|
|
};
|
|
return composeClasses(slots, getTableSortLabelUtilityClass, classes);
|
|
};
|
|
var TableSortLabelRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiTableSortLabel",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.active && styles3.active];
|
|
}
|
|
})(({
|
|
theme
|
|
}) => ({
|
|
cursor: "pointer",
|
|
display: "inline-flex",
|
|
justifyContent: "flex-start",
|
|
flexDirection: "inherit",
|
|
alignItems: "center",
|
|
"&:focus": {
|
|
color: (theme.vars || theme).palette.text.secondary
|
|
},
|
|
"&:hover": {
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
[`& .${tableSortLabelClasses_default.icon}`]: {
|
|
opacity: 0.5
|
|
}
|
|
},
|
|
[`&.${tableSortLabelClasses_default.active}`]: {
|
|
color: (theme.vars || theme).palette.text.primary,
|
|
[`& .${tableSortLabelClasses_default.icon}`]: {
|
|
opacity: 1,
|
|
color: (theme.vars || theme).palette.text.secondary
|
|
}
|
|
}
|
|
}));
|
|
var TableSortLabelIcon = styled_default("span", {
|
|
name: "MuiTableSortLabel",
|
|
slot: "Icon",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.icon, styles3[`iconDirection${capitalize_default(ownerState.direction)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => _extends({
|
|
fontSize: 18,
|
|
marginRight: 4,
|
|
marginLeft: 4,
|
|
opacity: 0,
|
|
transition: theme.transitions.create(["opacity", "transform"], {
|
|
duration: theme.transitions.duration.shorter
|
|
}),
|
|
userSelect: "none"
|
|
}, ownerState.direction === "desc" && {
|
|
transform: "rotate(0deg)"
|
|
}, ownerState.direction === "asc" && {
|
|
transform: "rotate(180deg)"
|
|
}));
|
|
var TableSortLabel = React106.forwardRef(function TableSortLabel2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTableSortLabel"
|
|
});
|
|
const {
|
|
active = false,
|
|
children,
|
|
className,
|
|
direction = "asc",
|
|
hideSortIcon = false,
|
|
IconComponent = ArrowDownward_default
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded80);
|
|
const ownerState = _extends({}, props, {
|
|
active,
|
|
direction,
|
|
hideSortIcon,
|
|
IconComponent
|
|
});
|
|
const classes = useUtilityClasses69(ownerState);
|
|
return (0, import_jsx_runtime121.jsxs)(TableSortLabelRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
component: "span",
|
|
disableRipple: true,
|
|
ownerState,
|
|
ref
|
|
}, other, {
|
|
children: [children, hideSortIcon && !active ? null : (0, import_jsx_runtime120.jsx)(TableSortLabelIcon, {
|
|
as: IconComponent,
|
|
className: clsx_default(classes.icon),
|
|
ownerState
|
|
})]
|
|
}));
|
|
});
|
|
true ? TableSortLabel.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* If `true`, the label will have the active styling (should be true for the sorted column).
|
|
* @default false
|
|
*/
|
|
active: import_prop_types82.default.bool,
|
|
/**
|
|
* Label contents, the arrow will be appended automatically.
|
|
*/
|
|
children: import_prop_types82.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types82.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types82.default.string,
|
|
/**
|
|
* The current sort direction.
|
|
* @default 'asc'
|
|
*/
|
|
direction: import_prop_types82.default.oneOf(["asc", "desc"]),
|
|
/**
|
|
* Hide sort icon when active is false.
|
|
* @default false
|
|
*/
|
|
hideSortIcon: import_prop_types82.default.bool,
|
|
/**
|
|
* Sort icon to use.
|
|
* @default ArrowDownwardIcon
|
|
*/
|
|
IconComponent: import_prop_types82.default.elementType,
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types82.default.oneOfType([import_prop_types82.default.arrayOf(import_prop_types82.default.oneOfType([import_prop_types82.default.func, import_prop_types82.default.object, import_prop_types82.default.bool])), import_prop_types82.default.func, import_prop_types82.default.object])
|
|
} : void 0;
|
|
var TableSortLabel_default = TableSortLabel;
|
|
|
|
// node_modules/@mui/material/Tabs/Tabs.js
|
|
init_extends();
|
|
var React109 = __toESM(require_react());
|
|
var import_react_is7 = __toESM(require_react_is());
|
|
var import_prop_types85 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/internal/animate.js
|
|
function easeInOutSin(time) {
|
|
return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;
|
|
}
|
|
function animate(property, element, to, options = {}, cb = () => {
|
|
}) {
|
|
const {
|
|
ease = easeInOutSin,
|
|
duration: duration2 = 300
|
|
// standard
|
|
} = options;
|
|
let start = null;
|
|
const from = element[property];
|
|
let cancelled = false;
|
|
const cancel = () => {
|
|
cancelled = true;
|
|
};
|
|
const step = (timestamp) => {
|
|
if (cancelled) {
|
|
cb(new Error("Animation cancelled"));
|
|
return;
|
|
}
|
|
if (start === null) {
|
|
start = timestamp;
|
|
}
|
|
const time = Math.min(1, (timestamp - start) / duration2);
|
|
element[property] = ease(time) * (to - from) + from;
|
|
if (time >= 1) {
|
|
requestAnimationFrame(() => {
|
|
cb(null);
|
|
});
|
|
return;
|
|
}
|
|
requestAnimationFrame(step);
|
|
};
|
|
if (from === to) {
|
|
cb(new Error("Element already at target position"));
|
|
return cancel;
|
|
}
|
|
requestAnimationFrame(step);
|
|
return cancel;
|
|
}
|
|
|
|
// node_modules/@mui/material/Tabs/ScrollbarSize.js
|
|
init_extends();
|
|
var React107 = __toESM(require_react());
|
|
var import_prop_types83 = __toESM(require_prop_types());
|
|
var import_jsx_runtime122 = __toESM(require_jsx_runtime());
|
|
var _excluded81 = ["onChange"];
|
|
var styles2 = {
|
|
width: 99,
|
|
height: 99,
|
|
position: "absolute",
|
|
top: -9999,
|
|
overflow: "scroll"
|
|
};
|
|
function ScrollbarSize(props) {
|
|
const {
|
|
onChange
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded81);
|
|
const scrollbarHeight = React107.useRef();
|
|
const nodeRef = React107.useRef(null);
|
|
const setMeasurements = () => {
|
|
scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;
|
|
};
|
|
useEnhancedEffect_default2(() => {
|
|
const handleResize = debounce_default(() => {
|
|
const prevHeight = scrollbarHeight.current;
|
|
setMeasurements();
|
|
if (prevHeight !== scrollbarHeight.current) {
|
|
onChange(scrollbarHeight.current);
|
|
}
|
|
});
|
|
const containerWindow = ownerWindow_default(nodeRef.current);
|
|
containerWindow.addEventListener("resize", handleResize);
|
|
return () => {
|
|
handleResize.clear();
|
|
containerWindow.removeEventListener("resize", handleResize);
|
|
};
|
|
}, [onChange]);
|
|
React107.useEffect(() => {
|
|
setMeasurements();
|
|
onChange(scrollbarHeight.current);
|
|
}, [onChange]);
|
|
return (0, import_jsx_runtime122.jsx)("div", _extends({
|
|
style: styles2
|
|
}, other, {
|
|
ref: nodeRef
|
|
}));
|
|
}
|
|
true ? ScrollbarSize.propTypes = {
|
|
onChange: import_prop_types83.default.func.isRequired
|
|
} : void 0;
|
|
|
|
// node_modules/@mui/material/TabScrollButton/TabScrollButton.js
|
|
init_extends();
|
|
var React108 = __toESM(require_react());
|
|
var import_prop_types84 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js
|
|
function getTabScrollButtonUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTabScrollButton", slot);
|
|
}
|
|
var tabScrollButtonClasses = generateUtilityClasses("MuiTabScrollButton", ["root", "vertical", "horizontal", "disabled"]);
|
|
var tabScrollButtonClasses_default = tabScrollButtonClasses;
|
|
|
|
// node_modules/@mui/material/TabScrollButton/TabScrollButton.js
|
|
var import_jsx_runtime123 = __toESM(require_jsx_runtime());
|
|
var _excluded82 = ["className", "slots", "slotProps", "direction", "orientation", "disabled"];
|
|
var useUtilityClasses70 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
orientation,
|
|
disabled
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", orientation, disabled && "disabled"]
|
|
};
|
|
return composeClasses(slots, getTabScrollButtonUtilityClass, classes);
|
|
};
|
|
var TabScrollButtonRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiTabScrollButton",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, ownerState.orientation && styles3[ownerState.orientation]];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
width: 40,
|
|
flexShrink: 0,
|
|
opacity: 0.8,
|
|
[`&.${tabScrollButtonClasses_default.disabled}`]: {
|
|
opacity: 0
|
|
}
|
|
}, ownerState.orientation === "vertical" && {
|
|
width: "100%",
|
|
height: 40,
|
|
"& svg": {
|
|
transform: `rotate(${ownerState.isRtl ? -90 : 90}deg)`
|
|
}
|
|
}));
|
|
var TabScrollButton = React108.forwardRef(function TabScrollButton2(inProps, ref) {
|
|
var _slots$StartScrollBut, _slots$EndScrollButto;
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTabScrollButton"
|
|
});
|
|
const {
|
|
className,
|
|
slots = {},
|
|
slotProps = {},
|
|
direction
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded82);
|
|
const isRtl = useRtl();
|
|
const ownerState = _extends({
|
|
isRtl
|
|
}, props);
|
|
const classes = useUtilityClasses70(ownerState);
|
|
const StartButtonIcon = (_slots$StartScrollBut = slots.StartScrollButtonIcon) != null ? _slots$StartScrollBut : KeyboardArrowLeft_default;
|
|
const EndButtonIcon = (_slots$EndScrollButto = slots.EndScrollButtonIcon) != null ? _slots$EndScrollButto : KeyboardArrowRight_default;
|
|
const startButtonIconProps = useSlotProps_default({
|
|
elementType: StartButtonIcon,
|
|
externalSlotProps: slotProps.startScrollButtonIcon,
|
|
additionalProps: {
|
|
fontSize: "small"
|
|
},
|
|
ownerState
|
|
});
|
|
const endButtonIconProps = useSlotProps_default({
|
|
elementType: EndButtonIcon,
|
|
externalSlotProps: slotProps.endScrollButtonIcon,
|
|
additionalProps: {
|
|
fontSize: "small"
|
|
},
|
|
ownerState
|
|
});
|
|
return (0, import_jsx_runtime123.jsx)(TabScrollButtonRoot, _extends({
|
|
component: "div",
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
role: null,
|
|
ownerState,
|
|
tabIndex: null
|
|
}, other, {
|
|
children: direction === "left" ? (0, import_jsx_runtime123.jsx)(StartButtonIcon, _extends({}, startButtonIconProps)) : (0, import_jsx_runtime123.jsx)(EndButtonIcon, _extends({}, endButtonIconProps))
|
|
}));
|
|
});
|
|
true ? TabScrollButton.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types84.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types84.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types84.default.string,
|
|
/**
|
|
* The direction the button should indicate.
|
|
*/
|
|
direction: import_prop_types84.default.oneOf(["left", "right"]).isRequired,
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types84.default.bool,
|
|
/**
|
|
* The component orientation (layout flow direction).
|
|
*/
|
|
orientation: import_prop_types84.default.oneOf(["horizontal", "vertical"]).isRequired,
|
|
/**
|
|
* The extra props for the slot components.
|
|
* You can override the existing props or add new ones.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types84.default.shape({
|
|
endScrollButtonIcon: import_prop_types84.default.oneOfType([import_prop_types84.default.func, import_prop_types84.default.object]),
|
|
startScrollButtonIcon: import_prop_types84.default.oneOfType([import_prop_types84.default.func, import_prop_types84.default.object])
|
|
}),
|
|
/**
|
|
* The components used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types84.default.shape({
|
|
EndScrollButtonIcon: import_prop_types84.default.elementType,
|
|
StartScrollButtonIcon: import_prop_types84.default.elementType
|
|
}),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types84.default.oneOfType([import_prop_types84.default.arrayOf(import_prop_types84.default.oneOfType([import_prop_types84.default.func, import_prop_types84.default.object, import_prop_types84.default.bool])), import_prop_types84.default.func, import_prop_types84.default.object])
|
|
} : void 0;
|
|
var TabScrollButton_default = TabScrollButton;
|
|
|
|
// node_modules/@mui/material/Tabs/tabsClasses.js
|
|
function getTabsUtilityClass(slot) {
|
|
return generateUtilityClass("MuiTabs", slot);
|
|
}
|
|
var tabsClasses = generateUtilityClasses("MuiTabs", ["root", "vertical", "flexContainer", "flexContainerVertical", "centered", "scroller", "fixed", "scrollableX", "scrollableY", "hideScrollbar", "scrollButtons", "scrollButtonsHideMobile", "indicator"]);
|
|
var tabsClasses_default = tabsClasses;
|
|
|
|
// node_modules/@mui/material/Tabs/Tabs.js
|
|
var import_jsx_runtime124 = __toESM(require_jsx_runtime());
|
|
var import_jsx_runtime125 = __toESM(require_jsx_runtime());
|
|
var _excluded83 = ["aria-label", "aria-labelledby", "action", "centered", "children", "className", "component", "allowScrollButtonsMobile", "indicatorColor", "onChange", "orientation", "ScrollButtonComponent", "scrollButtons", "selectionFollowsFocus", "slots", "slotProps", "TabIndicatorProps", "TabScrollButtonProps", "textColor", "value", "variant", "visibleScrollbar"];
|
|
var nextItem = (list, item) => {
|
|
if (list === item) {
|
|
return list.firstChild;
|
|
}
|
|
if (item && item.nextElementSibling) {
|
|
return item.nextElementSibling;
|
|
}
|
|
return list.firstChild;
|
|
};
|
|
var previousItem = (list, item) => {
|
|
if (list === item) {
|
|
return list.lastChild;
|
|
}
|
|
if (item && item.previousElementSibling) {
|
|
return item.previousElementSibling;
|
|
}
|
|
return list.lastChild;
|
|
};
|
|
var moveFocus = (list, currentFocus, traversalFunction) => {
|
|
let wrappedOnce = false;
|
|
let nextFocus = traversalFunction(list, currentFocus);
|
|
while (nextFocus) {
|
|
if (nextFocus === list.firstChild) {
|
|
if (wrappedOnce) {
|
|
return;
|
|
}
|
|
wrappedOnce = true;
|
|
}
|
|
const nextFocusDisabled = nextFocus.disabled || nextFocus.getAttribute("aria-disabled") === "true";
|
|
if (!nextFocus.hasAttribute("tabindex") || nextFocusDisabled) {
|
|
nextFocus = traversalFunction(list, nextFocus);
|
|
} else {
|
|
nextFocus.focus();
|
|
return;
|
|
}
|
|
}
|
|
};
|
|
var useUtilityClasses71 = (ownerState) => {
|
|
const {
|
|
vertical,
|
|
fixed,
|
|
hideScrollbar,
|
|
scrollableX,
|
|
scrollableY,
|
|
centered,
|
|
scrollButtonsHideMobile,
|
|
classes
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", vertical && "vertical"],
|
|
scroller: ["scroller", fixed && "fixed", hideScrollbar && "hideScrollbar", scrollableX && "scrollableX", scrollableY && "scrollableY"],
|
|
flexContainer: ["flexContainer", vertical && "flexContainerVertical", centered && "centered"],
|
|
indicator: ["indicator"],
|
|
scrollButtons: ["scrollButtons", scrollButtonsHideMobile && "scrollButtonsHideMobile"],
|
|
scrollableX: [scrollableX && "scrollableX"],
|
|
hideScrollbar: [hideScrollbar && "hideScrollbar"]
|
|
};
|
|
return composeClasses(slots, getTabsUtilityClass, classes);
|
|
};
|
|
var TabsRoot = styled_default("div", {
|
|
name: "MuiTabs",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [{
|
|
[`& .${tabsClasses_default.scrollButtons}`]: styles3.scrollButtons
|
|
}, {
|
|
[`& .${tabsClasses_default.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles3.scrollButtonsHideMobile
|
|
}, styles3.root, ownerState.vertical && styles3.vertical];
|
|
}
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => _extends({
|
|
overflow: "hidden",
|
|
minHeight: 48,
|
|
// Add iOS momentum scrolling for iOS < 13.0
|
|
WebkitOverflowScrolling: "touch",
|
|
display: "flex"
|
|
}, ownerState.vertical && {
|
|
flexDirection: "column"
|
|
}, ownerState.scrollButtonsHideMobile && {
|
|
[`& .${tabsClasses_default.scrollButtons}`]: {
|
|
[theme.breakpoints.down("sm")]: {
|
|
display: "none"
|
|
}
|
|
}
|
|
}));
|
|
var TabsScroller = styled_default("div", {
|
|
name: "MuiTabs",
|
|
slot: "Scroller",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.scroller, ownerState.fixed && styles3.fixed, ownerState.hideScrollbar && styles3.hideScrollbar, ownerState.scrollableX && styles3.scrollableX, ownerState.scrollableY && styles3.scrollableY];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
position: "relative",
|
|
display: "inline-block",
|
|
flex: "1 1 auto",
|
|
whiteSpace: "nowrap"
|
|
}, ownerState.fixed && {
|
|
overflowX: "hidden",
|
|
width: "100%"
|
|
}, ownerState.hideScrollbar && {
|
|
// Hide dimensionless scrollbar on macOS
|
|
scrollbarWidth: "none",
|
|
// Firefox
|
|
"&::-webkit-scrollbar": {
|
|
display: "none"
|
|
// Safari + Chrome
|
|
}
|
|
}, ownerState.scrollableX && {
|
|
overflowX: "auto",
|
|
overflowY: "hidden"
|
|
}, ownerState.scrollableY && {
|
|
overflowY: "auto",
|
|
overflowX: "hidden"
|
|
}));
|
|
var FlexContainer = styled_default("div", {
|
|
name: "MuiTabs",
|
|
slot: "FlexContainer",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.flexContainer, ownerState.vertical && styles3.flexContainerVertical, ownerState.centered && styles3.centered];
|
|
}
|
|
})(({
|
|
ownerState
|
|
}) => _extends({
|
|
display: "flex"
|
|
}, ownerState.vertical && {
|
|
flexDirection: "column"
|
|
}, ownerState.centered && {
|
|
justifyContent: "center"
|
|
}));
|
|
var TabsIndicator = styled_default("span", {
|
|
name: "MuiTabs",
|
|
slot: "Indicator",
|
|
overridesResolver: (props, styles3) => styles3.indicator
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => _extends({
|
|
position: "absolute",
|
|
height: 2,
|
|
bottom: 0,
|
|
width: "100%",
|
|
transition: theme.transitions.create()
|
|
}, ownerState.indicatorColor === "primary" && {
|
|
backgroundColor: (theme.vars || theme).palette.primary.main
|
|
}, ownerState.indicatorColor === "secondary" && {
|
|
backgroundColor: (theme.vars || theme).palette.secondary.main
|
|
}, ownerState.vertical && {
|
|
height: "100%",
|
|
width: 2,
|
|
right: 0
|
|
}));
|
|
var TabsScrollbarSize = styled_default(ScrollbarSize)({
|
|
overflowX: "auto",
|
|
overflowY: "hidden",
|
|
// Hide dimensionless scrollbar on macOS
|
|
scrollbarWidth: "none",
|
|
// Firefox
|
|
"&::-webkit-scrollbar": {
|
|
display: "none"
|
|
// Safari + Chrome
|
|
}
|
|
});
|
|
var defaultIndicatorStyle = {};
|
|
var warnedOnceTabPresent = false;
|
|
var Tabs = React109.forwardRef(function Tabs2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiTabs"
|
|
});
|
|
const theme = useTheme();
|
|
const isRtl = useRtl();
|
|
const {
|
|
"aria-label": ariaLabel,
|
|
"aria-labelledby": ariaLabelledBy,
|
|
action,
|
|
centered = false,
|
|
children: childrenProp,
|
|
className,
|
|
component = "div",
|
|
allowScrollButtonsMobile = false,
|
|
indicatorColor = "primary",
|
|
onChange,
|
|
orientation = "horizontal",
|
|
ScrollButtonComponent = TabScrollButton_default,
|
|
scrollButtons = "auto",
|
|
selectionFollowsFocus,
|
|
slots = {},
|
|
slotProps = {},
|
|
TabIndicatorProps = {},
|
|
TabScrollButtonProps = {},
|
|
textColor = "primary",
|
|
value,
|
|
variant = "standard",
|
|
visibleScrollbar = false
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded83);
|
|
const scrollable = variant === "scrollable";
|
|
const vertical = orientation === "vertical";
|
|
const scrollStart = vertical ? "scrollTop" : "scrollLeft";
|
|
const start = vertical ? "top" : "left";
|
|
const end = vertical ? "bottom" : "right";
|
|
const clientSize = vertical ? "clientHeight" : "clientWidth";
|
|
const size = vertical ? "height" : "width";
|
|
const ownerState = _extends({}, props, {
|
|
component,
|
|
allowScrollButtonsMobile,
|
|
indicatorColor,
|
|
orientation,
|
|
vertical,
|
|
scrollButtons,
|
|
textColor,
|
|
variant,
|
|
visibleScrollbar,
|
|
fixed: !scrollable,
|
|
hideScrollbar: scrollable && !visibleScrollbar,
|
|
scrollableX: scrollable && !vertical,
|
|
scrollableY: scrollable && vertical,
|
|
centered: centered && !scrollable,
|
|
scrollButtonsHideMobile: !allowScrollButtonsMobile
|
|
});
|
|
const classes = useUtilityClasses71(ownerState);
|
|
const startScrollButtonIconProps = useSlotProps_default({
|
|
elementType: slots.StartScrollButtonIcon,
|
|
externalSlotProps: slotProps.startScrollButtonIcon,
|
|
ownerState
|
|
});
|
|
const endScrollButtonIconProps = useSlotProps_default({
|
|
elementType: slots.EndScrollButtonIcon,
|
|
externalSlotProps: slotProps.endScrollButtonIcon,
|
|
ownerState
|
|
});
|
|
if (true) {
|
|
if (centered && scrollable) {
|
|
console.error('MUI: You can not use the `centered={true}` and `variant="scrollable"` properties at the same time on a `Tabs` component.');
|
|
}
|
|
}
|
|
const [mounted, setMounted] = React109.useState(false);
|
|
const [indicatorStyle, setIndicatorStyle] = React109.useState(defaultIndicatorStyle);
|
|
const [displayStartScroll, setDisplayStartScroll] = React109.useState(false);
|
|
const [displayEndScroll, setDisplayEndScroll] = React109.useState(false);
|
|
const [updateScrollObserver, setUpdateScrollObserver] = React109.useState(false);
|
|
const [scrollerStyle, setScrollerStyle] = React109.useState({
|
|
overflow: "hidden",
|
|
scrollbarWidth: 0
|
|
});
|
|
const valueToIndex = /* @__PURE__ */ new Map();
|
|
const tabsRef = React109.useRef(null);
|
|
const tabListRef = React109.useRef(null);
|
|
const getTabsMeta = () => {
|
|
const tabsNode = tabsRef.current;
|
|
let tabsMeta;
|
|
if (tabsNode) {
|
|
const rect = tabsNode.getBoundingClientRect();
|
|
tabsMeta = {
|
|
clientWidth: tabsNode.clientWidth,
|
|
scrollLeft: tabsNode.scrollLeft,
|
|
scrollTop: tabsNode.scrollTop,
|
|
scrollLeftNormalized: getNormalizedScrollLeft(tabsNode, isRtl ? "rtl" : "ltr"),
|
|
scrollWidth: tabsNode.scrollWidth,
|
|
top: rect.top,
|
|
bottom: rect.bottom,
|
|
left: rect.left,
|
|
right: rect.right
|
|
};
|
|
}
|
|
let tabMeta;
|
|
if (tabsNode && value !== false) {
|
|
const children2 = tabListRef.current.children;
|
|
if (children2.length > 0) {
|
|
const tab = children2[valueToIndex.get(value)];
|
|
if (true) {
|
|
if (!tab) {
|
|
console.error([`MUI: The \`value\` provided to the Tabs component is invalid.`, `None of the Tabs' children match with "${value}".`, valueToIndex.keys ? `You can provide one of the following values: ${Array.from(valueToIndex.keys()).join(", ")}.` : null].join("\n"));
|
|
}
|
|
}
|
|
tabMeta = tab ? tab.getBoundingClientRect() : null;
|
|
if (true) {
|
|
if (!warnedOnceTabPresent && tabMeta && tabMeta.width === 0 && tabMeta.height === 0 && // if the whole Tabs component is hidden, don't warn
|
|
tabsMeta.clientWidth !== 0) {
|
|
tabsMeta = null;
|
|
console.error(["MUI: The `value` provided to the Tabs component is invalid.", `The Tab with this \`value\` ("${value}") is not part of the document layout.`, "Make sure the tab item is present in the document or that it's not `display: none`."].join("\n"));
|
|
warnedOnceTabPresent = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
tabsMeta,
|
|
tabMeta
|
|
};
|
|
};
|
|
const updateIndicatorState = useEventCallback_default2(() => {
|
|
const {
|
|
tabsMeta,
|
|
tabMeta
|
|
} = getTabsMeta();
|
|
let startValue = 0;
|
|
let startIndicator;
|
|
if (vertical) {
|
|
startIndicator = "top";
|
|
if (tabMeta && tabsMeta) {
|
|
startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;
|
|
}
|
|
} else {
|
|
startIndicator = isRtl ? "right" : "left";
|
|
if (tabMeta && tabsMeta) {
|
|
const correction = isRtl ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft;
|
|
startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + correction);
|
|
}
|
|
}
|
|
const newIndicatorStyle = {
|
|
[startIndicator]: startValue,
|
|
// May be wrong until the font is loaded.
|
|
[size]: tabMeta ? tabMeta[size] : 0
|
|
};
|
|
if (isNaN(indicatorStyle[startIndicator]) || isNaN(indicatorStyle[size])) {
|
|
setIndicatorStyle(newIndicatorStyle);
|
|
} else {
|
|
const dStart = Math.abs(indicatorStyle[startIndicator] - newIndicatorStyle[startIndicator]);
|
|
const dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);
|
|
if (dStart >= 1 || dSize >= 1) {
|
|
setIndicatorStyle(newIndicatorStyle);
|
|
}
|
|
}
|
|
});
|
|
const scroll = (scrollValue, {
|
|
animation = true
|
|
} = {}) => {
|
|
if (animation) {
|
|
animate(scrollStart, tabsRef.current, scrollValue, {
|
|
duration: theme.transitions.duration.standard
|
|
});
|
|
} else {
|
|
tabsRef.current[scrollStart] = scrollValue;
|
|
}
|
|
};
|
|
const moveTabsScroll = (delta) => {
|
|
let scrollValue = tabsRef.current[scrollStart];
|
|
if (vertical) {
|
|
scrollValue += delta;
|
|
} else {
|
|
scrollValue += delta * (isRtl ? -1 : 1);
|
|
scrollValue *= isRtl && detectScrollType() === "reverse" ? -1 : 1;
|
|
}
|
|
scroll(scrollValue);
|
|
};
|
|
const getScrollSize = () => {
|
|
const containerSize = tabsRef.current[clientSize];
|
|
let totalSize = 0;
|
|
const children2 = Array.from(tabListRef.current.children);
|
|
for (let i = 0; i < children2.length; i += 1) {
|
|
const tab = children2[i];
|
|
if (totalSize + tab[clientSize] > containerSize) {
|
|
if (i === 0) {
|
|
totalSize = containerSize;
|
|
}
|
|
break;
|
|
}
|
|
totalSize += tab[clientSize];
|
|
}
|
|
return totalSize;
|
|
};
|
|
const handleStartScrollClick = () => {
|
|
moveTabsScroll(-1 * getScrollSize());
|
|
};
|
|
const handleEndScrollClick = () => {
|
|
moveTabsScroll(getScrollSize());
|
|
};
|
|
const handleScrollbarSizeChange = React109.useCallback((scrollbarWidth) => {
|
|
setScrollerStyle({
|
|
overflow: null,
|
|
scrollbarWidth
|
|
});
|
|
}, []);
|
|
const getConditionalElements = () => {
|
|
const conditionalElements2 = {};
|
|
conditionalElements2.scrollbarSizeListener = scrollable ? (0, import_jsx_runtime124.jsx)(TabsScrollbarSize, {
|
|
onChange: handleScrollbarSizeChange,
|
|
className: clsx_default(classes.scrollableX, classes.hideScrollbar)
|
|
}) : null;
|
|
const scrollButtonsActive = displayStartScroll || displayEndScroll;
|
|
const showScrollButtons = scrollable && (scrollButtons === "auto" && scrollButtonsActive || scrollButtons === true);
|
|
conditionalElements2.scrollButtonStart = showScrollButtons ? (0, import_jsx_runtime124.jsx)(ScrollButtonComponent, _extends({
|
|
slots: {
|
|
StartScrollButtonIcon: slots.StartScrollButtonIcon
|
|
},
|
|
slotProps: {
|
|
startScrollButtonIcon: startScrollButtonIconProps
|
|
},
|
|
orientation,
|
|
direction: isRtl ? "right" : "left",
|
|
onClick: handleStartScrollClick,
|
|
disabled: !displayStartScroll
|
|
}, TabScrollButtonProps, {
|
|
className: clsx_default(classes.scrollButtons, TabScrollButtonProps.className)
|
|
})) : null;
|
|
conditionalElements2.scrollButtonEnd = showScrollButtons ? (0, import_jsx_runtime124.jsx)(ScrollButtonComponent, _extends({
|
|
slots: {
|
|
EndScrollButtonIcon: slots.EndScrollButtonIcon
|
|
},
|
|
slotProps: {
|
|
endScrollButtonIcon: endScrollButtonIconProps
|
|
},
|
|
orientation,
|
|
direction: isRtl ? "left" : "right",
|
|
onClick: handleEndScrollClick,
|
|
disabled: !displayEndScroll
|
|
}, TabScrollButtonProps, {
|
|
className: clsx_default(classes.scrollButtons, TabScrollButtonProps.className)
|
|
})) : null;
|
|
return conditionalElements2;
|
|
};
|
|
const scrollSelectedIntoView = useEventCallback_default2((animation) => {
|
|
const {
|
|
tabsMeta,
|
|
tabMeta
|
|
} = getTabsMeta();
|
|
if (!tabMeta || !tabsMeta) {
|
|
return;
|
|
}
|
|
if (tabMeta[start] < tabsMeta[start]) {
|
|
const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);
|
|
scroll(nextScrollStart, {
|
|
animation
|
|
});
|
|
} else if (tabMeta[end] > tabsMeta[end]) {
|
|
const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);
|
|
scroll(nextScrollStart, {
|
|
animation
|
|
});
|
|
}
|
|
});
|
|
const updateScrollButtonState = useEventCallback_default2(() => {
|
|
if (scrollable && scrollButtons !== false) {
|
|
setUpdateScrollObserver(!updateScrollObserver);
|
|
}
|
|
});
|
|
React109.useEffect(() => {
|
|
const handleResize = debounce_default(() => {
|
|
if (tabsRef.current) {
|
|
updateIndicatorState();
|
|
}
|
|
});
|
|
let resizeObserver;
|
|
const handleMutation = (records) => {
|
|
records.forEach((record) => {
|
|
record.removedNodes.forEach((item) => {
|
|
var _resizeObserver;
|
|
(_resizeObserver = resizeObserver) == null || _resizeObserver.unobserve(item);
|
|
});
|
|
record.addedNodes.forEach((item) => {
|
|
var _resizeObserver2;
|
|
(_resizeObserver2 = resizeObserver) == null || _resizeObserver2.observe(item);
|
|
});
|
|
});
|
|
handleResize();
|
|
updateScrollButtonState();
|
|
};
|
|
const win = ownerWindow_default(tabsRef.current);
|
|
win.addEventListener("resize", handleResize);
|
|
let mutationObserver;
|
|
if (typeof ResizeObserver !== "undefined") {
|
|
resizeObserver = new ResizeObserver(handleResize);
|
|
Array.from(tabListRef.current.children).forEach((child) => {
|
|
resizeObserver.observe(child);
|
|
});
|
|
}
|
|
if (typeof MutationObserver !== "undefined") {
|
|
mutationObserver = new MutationObserver(handleMutation);
|
|
mutationObserver.observe(tabListRef.current, {
|
|
childList: true
|
|
});
|
|
}
|
|
return () => {
|
|
var _mutationObserver, _resizeObserver3;
|
|
handleResize.clear();
|
|
win.removeEventListener("resize", handleResize);
|
|
(_mutationObserver = mutationObserver) == null || _mutationObserver.disconnect();
|
|
(_resizeObserver3 = resizeObserver) == null || _resizeObserver3.disconnect();
|
|
};
|
|
}, [updateIndicatorState, updateScrollButtonState]);
|
|
React109.useEffect(() => {
|
|
const tabListChildren = Array.from(tabListRef.current.children);
|
|
const length = tabListChildren.length;
|
|
if (typeof IntersectionObserver !== "undefined" && length > 0 && scrollable && scrollButtons !== false) {
|
|
const firstTab = tabListChildren[0];
|
|
const lastTab = tabListChildren[length - 1];
|
|
const observerOptions = {
|
|
root: tabsRef.current,
|
|
threshold: 0.99
|
|
};
|
|
const handleScrollButtonStart = (entries) => {
|
|
setDisplayStartScroll(!entries[0].isIntersecting);
|
|
};
|
|
const firstObserver = new IntersectionObserver(handleScrollButtonStart, observerOptions);
|
|
firstObserver.observe(firstTab);
|
|
const handleScrollButtonEnd = (entries) => {
|
|
setDisplayEndScroll(!entries[0].isIntersecting);
|
|
};
|
|
const lastObserver = new IntersectionObserver(handleScrollButtonEnd, observerOptions);
|
|
lastObserver.observe(lastTab);
|
|
return () => {
|
|
firstObserver.disconnect();
|
|
lastObserver.disconnect();
|
|
};
|
|
}
|
|
return void 0;
|
|
}, [scrollable, scrollButtons, updateScrollObserver, childrenProp == null ? void 0 : childrenProp.length]);
|
|
React109.useEffect(() => {
|
|
setMounted(true);
|
|
}, []);
|
|
React109.useEffect(() => {
|
|
updateIndicatorState();
|
|
});
|
|
React109.useEffect(() => {
|
|
scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);
|
|
}, [scrollSelectedIntoView, indicatorStyle]);
|
|
React109.useImperativeHandle(action, () => ({
|
|
updateIndicator: updateIndicatorState,
|
|
updateScrollButtons: updateScrollButtonState
|
|
}), [updateIndicatorState, updateScrollButtonState]);
|
|
const indicator = (0, import_jsx_runtime124.jsx)(TabsIndicator, _extends({}, TabIndicatorProps, {
|
|
className: clsx_default(classes.indicator, TabIndicatorProps.className),
|
|
ownerState,
|
|
style: _extends({}, indicatorStyle, TabIndicatorProps.style)
|
|
}));
|
|
let childIndex = 0;
|
|
const children = React109.Children.map(childrenProp, (child) => {
|
|
if (!React109.isValidElement(child)) {
|
|
return null;
|
|
}
|
|
if (true) {
|
|
if ((0, import_react_is7.isFragment)(child)) {
|
|
console.error(["MUI: The Tabs component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
|
|
}
|
|
}
|
|
const childValue = child.props.value === void 0 ? childIndex : child.props.value;
|
|
valueToIndex.set(childValue, childIndex);
|
|
const selected = childValue === value;
|
|
childIndex += 1;
|
|
return React109.cloneElement(child, _extends({
|
|
fullWidth: variant === "fullWidth",
|
|
indicator: selected && !mounted && indicator,
|
|
selected,
|
|
selectionFollowsFocus,
|
|
onChange,
|
|
textColor,
|
|
value: childValue
|
|
}, childIndex === 1 && value === false && !child.props.tabIndex ? {
|
|
tabIndex: 0
|
|
} : {}));
|
|
});
|
|
const handleKeyDown = (event) => {
|
|
const list = tabListRef.current;
|
|
const currentFocus = ownerDocument_default(list).activeElement;
|
|
const role = currentFocus.getAttribute("role");
|
|
if (role !== "tab") {
|
|
return;
|
|
}
|
|
let previousItemKey = orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
|
|
let nextItemKey = orientation === "horizontal" ? "ArrowRight" : "ArrowDown";
|
|
if (orientation === "horizontal" && isRtl) {
|
|
previousItemKey = "ArrowRight";
|
|
nextItemKey = "ArrowLeft";
|
|
}
|
|
switch (event.key) {
|
|
case previousItemKey:
|
|
event.preventDefault();
|
|
moveFocus(list, currentFocus, previousItem);
|
|
break;
|
|
case nextItemKey:
|
|
event.preventDefault();
|
|
moveFocus(list, currentFocus, nextItem);
|
|
break;
|
|
case "Home":
|
|
event.preventDefault();
|
|
moveFocus(list, null, nextItem);
|
|
break;
|
|
case "End":
|
|
event.preventDefault();
|
|
moveFocus(list, null, previousItem);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
};
|
|
const conditionalElements = getConditionalElements();
|
|
return (0, import_jsx_runtime125.jsxs)(TabsRoot, _extends({
|
|
className: clsx_default(classes.root, className),
|
|
ownerState,
|
|
ref,
|
|
as: component
|
|
}, other, {
|
|
children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, (0, import_jsx_runtime125.jsxs)(TabsScroller, {
|
|
className: classes.scroller,
|
|
ownerState,
|
|
style: {
|
|
overflow: scrollerStyle.overflow,
|
|
[vertical ? `margin${isRtl ? "Left" : "Right"}` : "marginBottom"]: visibleScrollbar ? void 0 : -scrollerStyle.scrollbarWidth
|
|
},
|
|
ref: tabsRef,
|
|
children: [(0, import_jsx_runtime124.jsx)(FlexContainer, {
|
|
"aria-label": ariaLabel,
|
|
"aria-labelledby": ariaLabelledBy,
|
|
"aria-orientation": orientation === "vertical" ? "vertical" : null,
|
|
className: classes.flexContainer,
|
|
ownerState,
|
|
onKeyDown: handleKeyDown,
|
|
ref: tabListRef,
|
|
role: "tablist",
|
|
children
|
|
}), mounted && indicator]
|
|
}), conditionalElements.scrollButtonEnd]
|
|
}));
|
|
});
|
|
true ? Tabs.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* Callback fired when the component mounts.
|
|
* This is useful when you want to trigger an action programmatically.
|
|
* It supports two actions: `updateIndicator()` and `updateScrollButtons()`
|
|
*
|
|
* @param {object} actions This object contains all possible actions
|
|
* that can be triggered programmatically.
|
|
*/
|
|
action: refType_default,
|
|
/**
|
|
* If `true`, the scroll buttons aren't forced hidden on mobile.
|
|
* By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.
|
|
* @default false
|
|
*/
|
|
allowScrollButtonsMobile: import_prop_types85.default.bool,
|
|
/**
|
|
* The label for the Tabs as a string.
|
|
*/
|
|
"aria-label": import_prop_types85.default.string,
|
|
/**
|
|
* An id or list of ids separated by a space that label the Tabs.
|
|
*/
|
|
"aria-labelledby": import_prop_types85.default.string,
|
|
/**
|
|
* If `true`, the tabs are centered.
|
|
* This prop is intended for large views.
|
|
* @default false
|
|
*/
|
|
centered: import_prop_types85.default.bool,
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types85.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types85.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types85.default.string,
|
|
/**
|
|
* The component used for the root node.
|
|
* Either a string to use a HTML element or a component.
|
|
*/
|
|
component: import_prop_types85.default.elementType,
|
|
/**
|
|
* Determines the color of the indicator.
|
|
* @default 'primary'
|
|
*/
|
|
indicatorColor: import_prop_types85.default.oneOfType([import_prop_types85.default.oneOf(["primary", "secondary"]), import_prop_types85.default.string]),
|
|
/**
|
|
* Callback fired when the value changes.
|
|
*
|
|
* @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.
|
|
* @param {any} value We default to the index of the child (number)
|
|
*/
|
|
onChange: import_prop_types85.default.func,
|
|
/**
|
|
* The component orientation (layout flow direction).
|
|
* @default 'horizontal'
|
|
*/
|
|
orientation: import_prop_types85.default.oneOf(["horizontal", "vertical"]),
|
|
/**
|
|
* The component used to render the scroll buttons.
|
|
* @default TabScrollButton
|
|
*/
|
|
ScrollButtonComponent: import_prop_types85.default.elementType,
|
|
/**
|
|
* Determine behavior of scroll buttons when tabs are set to scroll:
|
|
*
|
|
* - `auto` will only present them when not all the items are visible.
|
|
* - `true` will always present them.
|
|
* - `false` will never present them.
|
|
*
|
|
* By default the scroll buttons are hidden on mobile.
|
|
* This behavior can be disabled with `allowScrollButtonsMobile`.
|
|
* @default 'auto'
|
|
*/
|
|
scrollButtons: import_prop_types85.default.oneOf(["auto", false, true]),
|
|
/**
|
|
* If `true` the selected tab changes on focus. Otherwise it only
|
|
* changes on activation.
|
|
*/
|
|
selectionFollowsFocus: import_prop_types85.default.bool,
|
|
/**
|
|
* The extra props for the slot components.
|
|
* You can override the existing props or add new ones.
|
|
* @default {}
|
|
*/
|
|
slotProps: import_prop_types85.default.shape({
|
|
endScrollButtonIcon: import_prop_types85.default.oneOfType([import_prop_types85.default.func, import_prop_types85.default.object]),
|
|
startScrollButtonIcon: import_prop_types85.default.oneOfType([import_prop_types85.default.func, import_prop_types85.default.object])
|
|
}),
|
|
/**
|
|
* The components used for each slot inside.
|
|
* @default {}
|
|
*/
|
|
slots: import_prop_types85.default.shape({
|
|
EndScrollButtonIcon: import_prop_types85.default.elementType,
|
|
StartScrollButtonIcon: import_prop_types85.default.elementType
|
|
}),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types85.default.oneOfType([import_prop_types85.default.arrayOf(import_prop_types85.default.oneOfType([import_prop_types85.default.func, import_prop_types85.default.object, import_prop_types85.default.bool])), import_prop_types85.default.func, import_prop_types85.default.object]),
|
|
/**
|
|
* Props applied to the tab indicator element.
|
|
* @default {}
|
|
*/
|
|
TabIndicatorProps: import_prop_types85.default.object,
|
|
/**
|
|
* Props applied to the [`TabScrollButton`](/material-ui/api/tab-scroll-button/) element.
|
|
* @default {}
|
|
*/
|
|
TabScrollButtonProps: import_prop_types85.default.object,
|
|
/**
|
|
* Determines the color of the `Tab`.
|
|
* @default 'primary'
|
|
*/
|
|
textColor: import_prop_types85.default.oneOf(["inherit", "primary", "secondary"]),
|
|
/**
|
|
* The value of the currently selected `Tab`.
|
|
* If you don't want any selected `Tab`, you can set this prop to `false`.
|
|
*/
|
|
value: import_prop_types85.default.any,
|
|
/**
|
|
* Determines additional display behavior of the tabs:
|
|
*
|
|
* - `scrollable` will invoke scrolling properties and allow for horizontally
|
|
* scrolling (or swiping) of the tab bar.
|
|
* - `fullWidth` will make the tabs grow to use all the available space,
|
|
* which should be used for small views, like on mobile.
|
|
* - `standard` will render the default state.
|
|
* @default 'standard'
|
|
*/
|
|
variant: import_prop_types85.default.oneOf(["fullWidth", "scrollable", "standard"]),
|
|
/**
|
|
* If `true`, the scrollbar is visible. It can be useful when displaying
|
|
* a long vertical list of tabs.
|
|
* @default false
|
|
*/
|
|
visibleScrollbar: import_prop_types85.default.bool
|
|
} : void 0;
|
|
var Tabs_default = Tabs;
|
|
|
|
// node_modules/@mui/material/ToggleButton/ToggleButton.js
|
|
init_extends();
|
|
var React112 = __toESM(require_react());
|
|
var import_prop_types86 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/ToggleButton/toggleButtonClasses.js
|
|
function getToggleButtonUtilityClass(slot) {
|
|
return generateUtilityClass("MuiToggleButton", slot);
|
|
}
|
|
var toggleButtonClasses = generateUtilityClasses("MuiToggleButton", ["root", "disabled", "selected", "standard", "primary", "secondary", "sizeSmall", "sizeMedium", "sizeLarge", "fullWidth"]);
|
|
var toggleButtonClasses_default = toggleButtonClasses;
|
|
|
|
// node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupContext.js
|
|
var React110 = __toESM(require_react());
|
|
var ToggleButtonGroupContext = React110.createContext({});
|
|
if (true) {
|
|
ToggleButtonGroupContext.displayName = "ToggleButtonGroupContext";
|
|
}
|
|
var ToggleButtonGroupContext_default = ToggleButtonGroupContext;
|
|
|
|
// node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupButtonContext.js
|
|
var React111 = __toESM(require_react());
|
|
var ToggleButtonGroupButtonContext = React111.createContext(void 0);
|
|
if (true) {
|
|
ToggleButtonGroupButtonContext.displayName = "ToggleButtonGroupButtonContext";
|
|
}
|
|
var ToggleButtonGroupButtonContext_default = ToggleButtonGroupButtonContext;
|
|
|
|
// node_modules/@mui/material/ToggleButtonGroup/isValueSelected.js
|
|
function isValueSelected(value, candidate) {
|
|
if (candidate === void 0 || value === void 0) {
|
|
return false;
|
|
}
|
|
if (Array.isArray(candidate)) {
|
|
return candidate.indexOf(value) >= 0;
|
|
}
|
|
return value === candidate;
|
|
}
|
|
|
|
// node_modules/@mui/material/ToggleButton/ToggleButton.js
|
|
var import_jsx_runtime126 = __toESM(require_jsx_runtime());
|
|
var _excluded84 = ["value"];
|
|
var _excluded217 = ["children", "className", "color", "disabled", "disableFocusRipple", "fullWidth", "onChange", "onClick", "selected", "size", "value"];
|
|
var useUtilityClasses72 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
fullWidth,
|
|
selected,
|
|
disabled,
|
|
size,
|
|
color
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", selected && "selected", disabled && "disabled", fullWidth && "fullWidth", `size${capitalize_default(size)}`, color]
|
|
};
|
|
return composeClasses(slots, getToggleButtonUtilityClass, classes);
|
|
};
|
|
var ToggleButtonRoot = styled_default(ButtonBase_default, {
|
|
name: "MuiToggleButton",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [styles3.root, styles3[`size${capitalize_default(ownerState.size)}`]];
|
|
}
|
|
})(({
|
|
theme,
|
|
ownerState
|
|
}) => {
|
|
let selectedColor = ownerState.color === "standard" ? theme.palette.text.primary : theme.palette[ownerState.color].main;
|
|
let selectedColorChannel;
|
|
if (theme.vars) {
|
|
selectedColor = ownerState.color === "standard" ? theme.vars.palette.text.primary : theme.vars.palette[ownerState.color].main;
|
|
selectedColorChannel = ownerState.color === "standard" ? theme.vars.palette.text.primaryChannel : theme.vars.palette[ownerState.color].mainChannel;
|
|
}
|
|
return _extends({}, theme.typography.button, {
|
|
borderRadius: (theme.vars || theme).shape.borderRadius,
|
|
padding: 11,
|
|
border: `1px solid ${(theme.vars || theme).palette.divider}`,
|
|
color: (theme.vars || theme).palette.action.active
|
|
}, ownerState.fullWidth && {
|
|
width: "100%"
|
|
}, {
|
|
[`&.${toggleButtonClasses_default.disabled}`]: {
|
|
color: (theme.vars || theme).palette.action.disabled,
|
|
border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`
|
|
},
|
|
"&:hover": {
|
|
textDecoration: "none",
|
|
// Reset on mouse devices
|
|
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),
|
|
"@media (hover: none)": {
|
|
backgroundColor: "transparent"
|
|
}
|
|
},
|
|
[`&.${toggleButtonClasses_default.selected}`]: {
|
|
color: selectedColor,
|
|
backgroundColor: theme.vars ? `rgba(${selectedColorChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(selectedColor, theme.palette.action.selectedOpacity),
|
|
"&:hover": {
|
|
backgroundColor: theme.vars ? `rgba(${selectedColorChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(selectedColor, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
|
|
// Reset on touch devices, it doesn't add specificity
|
|
"@media (hover: none)": {
|
|
backgroundColor: theme.vars ? `rgba(${selectedColorChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(selectedColor, theme.palette.action.selectedOpacity)
|
|
}
|
|
}
|
|
}
|
|
}, ownerState.size === "small" && {
|
|
padding: 7,
|
|
fontSize: theme.typography.pxToRem(13)
|
|
}, ownerState.size === "large" && {
|
|
padding: 15,
|
|
fontSize: theme.typography.pxToRem(15)
|
|
});
|
|
});
|
|
var ToggleButton = React112.forwardRef(function ToggleButton2(inProps, ref) {
|
|
const _React$useContext = React112.useContext(ToggleButtonGroupContext_default), {
|
|
value: contextValue
|
|
} = _React$useContext, contextProps = _objectWithoutPropertiesLoose(_React$useContext, _excluded84);
|
|
const toggleButtonGroupButtonContextPositionClassName = React112.useContext(ToggleButtonGroupButtonContext_default);
|
|
const resolvedProps = resolveProps(_extends({}, contextProps, {
|
|
selected: isValueSelected(inProps.value, contextValue)
|
|
}), inProps);
|
|
const props = useDefaultProps({
|
|
props: resolvedProps,
|
|
name: "MuiToggleButton"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
color = "standard",
|
|
disabled = false,
|
|
disableFocusRipple = false,
|
|
fullWidth = false,
|
|
onChange,
|
|
onClick,
|
|
selected,
|
|
size = "medium",
|
|
value
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded217);
|
|
const ownerState = _extends({}, props, {
|
|
color,
|
|
disabled,
|
|
disableFocusRipple,
|
|
fullWidth,
|
|
size
|
|
});
|
|
const classes = useUtilityClasses72(ownerState);
|
|
const handleChange = (event) => {
|
|
if (onClick) {
|
|
onClick(event, value);
|
|
if (event.defaultPrevented) {
|
|
return;
|
|
}
|
|
}
|
|
if (onChange) {
|
|
onChange(event, value);
|
|
}
|
|
};
|
|
const positionClassName = toggleButtonGroupButtonContextPositionClassName || "";
|
|
return (0, import_jsx_runtime126.jsx)(ToggleButtonRoot, _extends({
|
|
className: clsx_default(contextProps.className, classes.root, className, positionClassName),
|
|
disabled,
|
|
focusRipple: !disableFocusRipple,
|
|
ref,
|
|
onClick: handleChange,
|
|
onChange,
|
|
value,
|
|
ownerState,
|
|
"aria-pressed": selected
|
|
}, other, {
|
|
children
|
|
}));
|
|
});
|
|
true ? ToggleButton.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types86.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types86.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types86.default.string,
|
|
/**
|
|
* The color of the button when it is in an active state.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'standard'
|
|
*/
|
|
color: import_prop_types86.default.oneOfType([import_prop_types86.default.oneOf(["standard", "primary", "secondary", "error", "info", "success", "warning"]), import_prop_types86.default.string]),
|
|
/**
|
|
* If `true`, the component is disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types86.default.bool,
|
|
/**
|
|
* If `true`, the keyboard focus ripple is disabled.
|
|
* @default false
|
|
*/
|
|
disableFocusRipple: import_prop_types86.default.bool,
|
|
/**
|
|
* If `true`, the ripple effect is disabled.
|
|
*
|
|
* ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
|
|
* to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
|
|
* @default false
|
|
*/
|
|
disableRipple: import_prop_types86.default.bool,
|
|
/**
|
|
* If `true`, the button will take up the full width of its container.
|
|
* @default false
|
|
*/
|
|
fullWidth: import_prop_types86.default.bool,
|
|
/**
|
|
* Callback fired when the state changes.
|
|
*
|
|
* @param {React.MouseEvent<HTMLElement>} event The event source of the callback.
|
|
* @param {any} value of the selected button.
|
|
*/
|
|
onChange: import_prop_types86.default.func,
|
|
/**
|
|
* Callback fired when the button is clicked.
|
|
*
|
|
* @param {React.MouseEvent<HTMLElement>} event The event source of the callback.
|
|
* @param {any} value of the selected button.
|
|
*/
|
|
onClick: import_prop_types86.default.func,
|
|
/**
|
|
* If `true`, the button is rendered in an active state.
|
|
*/
|
|
selected: import_prop_types86.default.bool,
|
|
/**
|
|
* The size of the component.
|
|
* The prop defaults to the value inherited from the parent ToggleButtonGroup component.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types86.default.oneOfType([import_prop_types86.default.oneOf(["small", "medium", "large"]), import_prop_types86.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types86.default.oneOfType([import_prop_types86.default.arrayOf(import_prop_types86.default.oneOfType([import_prop_types86.default.func, import_prop_types86.default.object, import_prop_types86.default.bool])), import_prop_types86.default.func, import_prop_types86.default.object]),
|
|
/**
|
|
* The value to associate with the button when selected in a
|
|
* ToggleButtonGroup.
|
|
*/
|
|
value: import_prop_types86.default.any.isRequired
|
|
} : void 0;
|
|
var ToggleButton_default = ToggleButton;
|
|
|
|
// node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js
|
|
init_extends();
|
|
var React113 = __toESM(require_react());
|
|
var import_react_is8 = __toESM(require_react_is());
|
|
var import_prop_types87 = __toESM(require_prop_types());
|
|
|
|
// node_modules/@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js
|
|
function getToggleButtonGroupUtilityClass(slot) {
|
|
return generateUtilityClass("MuiToggleButtonGroup", slot);
|
|
}
|
|
var toggleButtonGroupClasses = generateUtilityClasses("MuiToggleButtonGroup", ["root", "selected", "horizontal", "vertical", "disabled", "grouped", "groupedHorizontal", "groupedVertical", "fullWidth", "firstButton", "lastButton", "middleButton"]);
|
|
var toggleButtonGroupClasses_default = toggleButtonGroupClasses;
|
|
|
|
// node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js
|
|
var import_jsx_runtime127 = __toESM(require_jsx_runtime());
|
|
var _excluded85 = ["children", "className", "color", "disabled", "exclusive", "fullWidth", "onChange", "orientation", "size", "value"];
|
|
var useUtilityClasses73 = (ownerState) => {
|
|
const {
|
|
classes,
|
|
orientation,
|
|
fullWidth,
|
|
disabled
|
|
} = ownerState;
|
|
const slots = {
|
|
root: ["root", orientation === "vertical" && "vertical", fullWidth && "fullWidth"],
|
|
grouped: ["grouped", `grouped${capitalize_default(orientation)}`, disabled && "disabled"],
|
|
firstButton: ["firstButton"],
|
|
lastButton: ["lastButton"],
|
|
middleButton: ["middleButton"]
|
|
};
|
|
return composeClasses(slots, getToggleButtonGroupUtilityClass, classes);
|
|
};
|
|
var ToggleButtonGroupRoot = styled_default("div", {
|
|
name: "MuiToggleButtonGroup",
|
|
slot: "Root",
|
|
overridesResolver: (props, styles3) => {
|
|
const {
|
|
ownerState
|
|
} = props;
|
|
return [{
|
|
[`& .${toggleButtonGroupClasses_default.grouped}`]: styles3.grouped
|
|
}, {
|
|
[`& .${toggleButtonGroupClasses_default.grouped}`]: styles3[`grouped${capitalize_default(ownerState.orientation)}`]
|
|
}, {
|
|
[`& .${toggleButtonGroupClasses_default.firstButton}`]: styles3.firstButton
|
|
}, {
|
|
[`& .${toggleButtonGroupClasses_default.lastButton}`]: styles3.lastButton
|
|
}, {
|
|
[`& .${toggleButtonGroupClasses_default.middleButton}`]: styles3.middleButton
|
|
}, styles3.root, ownerState.orientation === "vertical" && styles3.vertical, ownerState.fullWidth && styles3.fullWidth];
|
|
}
|
|
})(({
|
|
ownerState,
|
|
theme
|
|
}) => _extends({
|
|
display: "inline-flex",
|
|
borderRadius: (theme.vars || theme).shape.borderRadius
|
|
}, ownerState.orientation === "vertical" && {
|
|
flexDirection: "column"
|
|
}, ownerState.fullWidth && {
|
|
width: "100%"
|
|
}, {
|
|
[`& .${toggleButtonGroupClasses_default.grouped}`]: _extends({}, ownerState.orientation === "horizontal" ? {
|
|
[`&.${toggleButtonGroupClasses_default.selected} + .${toggleButtonGroupClasses_default.grouped}.${toggleButtonGroupClasses_default.selected}`]: {
|
|
borderLeft: 0,
|
|
marginLeft: 0
|
|
}
|
|
} : {
|
|
[`&.${toggleButtonGroupClasses_default.selected} + .${toggleButtonGroupClasses_default.grouped}.${toggleButtonGroupClasses_default.selected}`]: {
|
|
borderTop: 0,
|
|
marginTop: 0
|
|
}
|
|
})
|
|
}, ownerState.orientation === "horizontal" ? {
|
|
[`& .${toggleButtonGroupClasses_default.firstButton},& .${toggleButtonGroupClasses_default.middleButton}`]: {
|
|
borderTopRightRadius: 0,
|
|
borderBottomRightRadius: 0
|
|
},
|
|
[`& .${toggleButtonGroupClasses_default.lastButton},& .${toggleButtonGroupClasses_default.middleButton}`]: {
|
|
marginLeft: -1,
|
|
borderLeft: "1px solid transparent",
|
|
borderTopLeftRadius: 0,
|
|
borderBottomLeftRadius: 0
|
|
}
|
|
} : {
|
|
[`& .${toggleButtonGroupClasses_default.firstButton},& .${toggleButtonGroupClasses_default.middleButton}`]: {
|
|
borderBottomLeftRadius: 0,
|
|
borderBottomRightRadius: 0
|
|
},
|
|
[`& .${toggleButtonGroupClasses_default.lastButton},& .${toggleButtonGroupClasses_default.middleButton}`]: {
|
|
marginTop: -1,
|
|
borderTop: "1px solid transparent",
|
|
borderTopLeftRadius: 0,
|
|
borderTopRightRadius: 0
|
|
}
|
|
}, ownerState.orientation === "horizontal" ? {
|
|
[`& .${toggleButtonGroupClasses_default.lastButton}.${toggleButtonClasses_default.disabled},& .${toggleButtonGroupClasses_default.middleButton}.${toggleButtonClasses_default.disabled}`]: {
|
|
borderLeft: "1px solid transparent"
|
|
}
|
|
} : {
|
|
[`& .${toggleButtonGroupClasses_default.lastButton}.${toggleButtonClasses_default.disabled},& .${toggleButtonGroupClasses_default.middleButton}.${toggleButtonClasses_default.disabled}`]: {
|
|
borderTop: "1px solid transparent"
|
|
}
|
|
}));
|
|
var ToggleButtonGroup = React113.forwardRef(function ToggleButtonGroup2(inProps, ref) {
|
|
const props = useDefaultProps({
|
|
props: inProps,
|
|
name: "MuiToggleButtonGroup"
|
|
});
|
|
const {
|
|
children,
|
|
className,
|
|
color = "standard",
|
|
disabled = false,
|
|
exclusive = false,
|
|
fullWidth = false,
|
|
onChange,
|
|
orientation = "horizontal",
|
|
size = "medium",
|
|
value
|
|
} = props, other = _objectWithoutPropertiesLoose(props, _excluded85);
|
|
const ownerState = _extends({}, props, {
|
|
disabled,
|
|
fullWidth,
|
|
orientation,
|
|
size
|
|
});
|
|
const classes = useUtilityClasses73(ownerState);
|
|
const handleChange = React113.useCallback((event, buttonValue) => {
|
|
if (!onChange) {
|
|
return;
|
|
}
|
|
const index = value && value.indexOf(buttonValue);
|
|
let newValue;
|
|
if (value && index >= 0) {
|
|
newValue = value.slice();
|
|
newValue.splice(index, 1);
|
|
} else {
|
|
newValue = value ? value.concat(buttonValue) : [buttonValue];
|
|
}
|
|
onChange(event, newValue);
|
|
}, [onChange, value]);
|
|
const handleExclusiveChange = React113.useCallback((event, buttonValue) => {
|
|
if (!onChange) {
|
|
return;
|
|
}
|
|
onChange(event, value === buttonValue ? null : buttonValue);
|
|
}, [onChange, value]);
|
|
const context = React113.useMemo(() => ({
|
|
className: classes.grouped,
|
|
onChange: exclusive ? handleExclusiveChange : handleChange,
|
|
value,
|
|
size,
|
|
fullWidth,
|
|
color,
|
|
disabled
|
|
}), [classes.grouped, exclusive, handleExclusiveChange, handleChange, value, size, fullWidth, color, disabled]);
|
|
const validChildren = getValidReactChildren(children);
|
|
const childrenCount = validChildren.length;
|
|
const getButtonPositionClassName = (index) => {
|
|
const isFirstButton = index === 0;
|
|
const isLastButton = index === childrenCount - 1;
|
|
if (isFirstButton && isLastButton) {
|
|
return "";
|
|
}
|
|
if (isFirstButton) {
|
|
return classes.firstButton;
|
|
}
|
|
if (isLastButton) {
|
|
return classes.lastButton;
|
|
}
|
|
return classes.middleButton;
|
|
};
|
|
return (0, import_jsx_runtime127.jsx)(ToggleButtonGroupRoot, _extends({
|
|
role: "group",
|
|
className: clsx_default(classes.root, className),
|
|
ref,
|
|
ownerState
|
|
}, other, {
|
|
children: (0, import_jsx_runtime127.jsx)(ToggleButtonGroupContext_default.Provider, {
|
|
value: context,
|
|
children: validChildren.map((child, index) => {
|
|
if (true) {
|
|
if ((0, import_react_is8.isFragment)(child)) {
|
|
console.error(["MUI: The ToggleButtonGroup component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
|
|
}
|
|
}
|
|
return (0, import_jsx_runtime127.jsx)(ToggleButtonGroupButtonContext_default.Provider, {
|
|
value: getButtonPositionClassName(index),
|
|
children: child
|
|
}, index);
|
|
})
|
|
})
|
|
}));
|
|
});
|
|
true ? ToggleButtonGroup.propTypes = {
|
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
// └─────────────────────────────────────────────────────────────────────┘
|
|
/**
|
|
* The content of the component.
|
|
*/
|
|
children: import_prop_types87.default.node,
|
|
/**
|
|
* Override or extend the styles applied to the component.
|
|
*/
|
|
classes: import_prop_types87.default.object,
|
|
/**
|
|
* @ignore
|
|
*/
|
|
className: import_prop_types87.default.string,
|
|
/**
|
|
* The color of the button when it is selected.
|
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
* @default 'standard'
|
|
*/
|
|
color: import_prop_types87.default.oneOfType([import_prop_types87.default.oneOf(["standard", "primary", "secondary", "error", "info", "success", "warning"]), import_prop_types87.default.string]),
|
|
/**
|
|
* If `true`, the component is disabled. This implies that all ToggleButton children will be disabled.
|
|
* @default false
|
|
*/
|
|
disabled: import_prop_types87.default.bool,
|
|
/**
|
|
* If `true`, only allow one of the child ToggleButton values to be selected.
|
|
* @default false
|
|
*/
|
|
exclusive: import_prop_types87.default.bool,
|
|
/**
|
|
* If `true`, the button group will take up the full width of its container.
|
|
* @default false
|
|
*/
|
|
fullWidth: import_prop_types87.default.bool,
|
|
/**
|
|
* Callback fired when the value changes.
|
|
*
|
|
* @param {React.MouseEvent<HTMLElement>} event The event source of the callback.
|
|
* @param {any} value of the selected buttons. When `exclusive` is true
|
|
* this is a single value; when false an array of selected values. If no value
|
|
* is selected and `exclusive` is true the value is null; when false an empty array.
|
|
*/
|
|
onChange: import_prop_types87.default.func,
|
|
/**
|
|
* The component orientation (layout flow direction).
|
|
* @default 'horizontal'
|
|
*/
|
|
orientation: import_prop_types87.default.oneOf(["horizontal", "vertical"]),
|
|
/**
|
|
* The size of the component.
|
|
* @default 'medium'
|
|
*/
|
|
size: import_prop_types87.default.oneOfType([import_prop_types87.default.oneOf(["small", "medium", "large"]), import_prop_types87.default.string]),
|
|
/**
|
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
*/
|
|
sx: import_prop_types87.default.oneOfType([import_prop_types87.default.arrayOf(import_prop_types87.default.oneOfType([import_prop_types87.default.func, import_prop_types87.default.object, import_prop_types87.default.bool])), import_prop_types87.default.func, import_prop_types87.default.object]),
|
|
/**
|
|
* The currently selected value within the group or an array of selected
|
|
* values when `exclusive` is false.
|
|
*
|
|
* The value must have reference equality with the option in order to be selected.
|
|
*/
|
|
value: import_prop_types87.default.any
|
|
} : void 0;
|
|
var ToggleButtonGroup_default = ToggleButtonGroup;
|
|
|
|
// node_modules/@mui/material/useScrollTrigger/useScrollTrigger.js
|
|
init_extends();
|
|
var React114 = __toESM(require_react());
|
|
var _excluded86 = ["getTrigger", "target"];
|
|
function defaultTrigger(store, options) {
|
|
const {
|
|
disableHysteresis = false,
|
|
threshold = 100,
|
|
target
|
|
} = options;
|
|
const previous = store.current;
|
|
if (target) {
|
|
store.current = target.pageYOffset !== void 0 ? target.pageYOffset : target.scrollTop;
|
|
}
|
|
if (!disableHysteresis && previous !== void 0) {
|
|
if (store.current < previous) {
|
|
return false;
|
|
}
|
|
}
|
|
return store.current > threshold;
|
|
}
|
|
var defaultTarget = typeof window !== "undefined" ? window : null;
|
|
function useScrollTrigger(options = {}) {
|
|
const {
|
|
getTrigger = defaultTrigger,
|
|
target = defaultTarget
|
|
} = options, other = _objectWithoutPropertiesLoose(options, _excluded86);
|
|
const store = React114.useRef();
|
|
const [trigger, setTrigger] = React114.useState(() => getTrigger(store, other));
|
|
React114.useEffect(() => {
|
|
const handleScroll = () => {
|
|
setTrigger(getTrigger(store, _extends({
|
|
target
|
|
}, other)));
|
|
};
|
|
handleScroll();
|
|
target.addEventListener("scroll", handleScroll, {
|
|
passive: true
|
|
});
|
|
return () => {
|
|
target.removeEventListener("scroll", handleScroll, {
|
|
passive: true
|
|
});
|
|
};
|
|
}, [target, getTrigger, JSON.stringify(other)]);
|
|
return trigger;
|
|
}
|
|
|
|
// node_modules/@mui/material/version/index.js
|
|
var version = "5.18.0";
|
|
var major = Number("5");
|
|
var minor = Number("18");
|
|
var patch = Number("0");
|
|
var preReleaseLabel = null;
|
|
var preReleaseNumber = Number(void 0) || null;
|
|
export {
|
|
Accordion_default as Accordion,
|
|
AccordionActions_default as AccordionActions,
|
|
AccordionDetails_default as AccordionDetails,
|
|
AccordionSummary_default as AccordionSummary,
|
|
Alert_default as Alert,
|
|
AlertTitle_default as AlertTitle,
|
|
AppBar_default as AppBar,
|
|
Autocomplete_default as Autocomplete,
|
|
Avatar_default as Avatar,
|
|
AvatarGroup_default as AvatarGroup,
|
|
Backdrop_default as Backdrop,
|
|
Badge_default as Badge,
|
|
BottomNavigation_default as BottomNavigation,
|
|
BottomNavigationAction_default as BottomNavigationAction,
|
|
Box_default as Box,
|
|
Breadcrumbs_default as Breadcrumbs,
|
|
Button_default as Button,
|
|
ButtonBase_default as ButtonBase,
|
|
ButtonGroup_default as ButtonGroup,
|
|
ButtonGroupButtonContext_default as ButtonGroupButtonContext,
|
|
ButtonGroupContext_default as ButtonGroupContext,
|
|
Card_default as Card,
|
|
CardActionArea_default as CardActionArea,
|
|
CardActions_default as CardActions,
|
|
CardContent_default as CardContent,
|
|
CardHeader_default as CardHeader,
|
|
CardMedia_default as CardMedia,
|
|
Checkbox_default as Checkbox,
|
|
Chip_default as Chip,
|
|
CircularProgress_default as CircularProgress,
|
|
ClickAwayListener,
|
|
Collapse_default as Collapse,
|
|
Container_default as Container,
|
|
CssBaseline_default as CssBaseline,
|
|
Dialog_default as Dialog,
|
|
DialogActions_default as DialogActions,
|
|
DialogContent_default as DialogContent,
|
|
DialogContentText_default as DialogContentText,
|
|
DialogTitle_default as DialogTitle,
|
|
Divider_default as Divider,
|
|
Drawer_default as Drawer,
|
|
CssVarsProvider as Experimental_CssVarsProvider,
|
|
Fab_default as Fab,
|
|
Fade_default as Fade,
|
|
FilledInput_default as FilledInput,
|
|
FormControl_default as FormControl,
|
|
FormControlLabel_default as FormControlLabel,
|
|
FormGroup_default as FormGroup,
|
|
FormHelperText_default as FormHelperText,
|
|
FormLabel_default as FormLabel,
|
|
FormLabelRoot,
|
|
GlobalStyles_default as GlobalStyles,
|
|
Grid_default as Grid,
|
|
Grow_default as Grow,
|
|
Hidden_default as Hidden,
|
|
Icon_default as Icon,
|
|
IconButton_default as IconButton,
|
|
ImageList_default as ImageList,
|
|
ImageListItem_default as ImageListItem,
|
|
ImageListItemBar_default as ImageListItemBar,
|
|
Input_default as Input,
|
|
InputAdornment_default as InputAdornment,
|
|
InputBase_default as InputBase,
|
|
InputLabel_default as InputLabel,
|
|
LinearProgress_default as LinearProgress,
|
|
Link_default as Link,
|
|
List_default as List,
|
|
ListItem_default as ListItem,
|
|
ListItemAvatar_default as ListItemAvatar,
|
|
ListItemButton_default as ListItemButton,
|
|
ListItemIcon_default as ListItemIcon,
|
|
ListItemSecondaryAction_default as ListItemSecondaryAction,
|
|
ListItemText_default as ListItemText,
|
|
ListSubheader_default as ListSubheader,
|
|
Menu_default as Menu,
|
|
MenuItem_default as MenuItem,
|
|
MenuList_default as MenuList,
|
|
MobileStepper_default as MobileStepper,
|
|
Modal_default as Modal,
|
|
ModalManager,
|
|
NativeSelect_default as NativeSelect,
|
|
NoSsr_default as NoSsr,
|
|
OutlinedInput_default as OutlinedInput,
|
|
Pagination_default as Pagination,
|
|
PaginationItem_default as PaginationItem,
|
|
Paper_default as Paper,
|
|
Popover_default as Popover,
|
|
PopoverPaper,
|
|
PopoverRoot,
|
|
Popper_default as Popper,
|
|
Portal_default as Portal,
|
|
Radio_default as Radio,
|
|
RadioGroup_default as RadioGroup,
|
|
Rating_default as Rating,
|
|
ScopedCssBaseline_default as ScopedCssBaseline,
|
|
Select_default as Select,
|
|
Skeleton_default as Skeleton,
|
|
Slide_default as Slide,
|
|
Slider_default as Slider,
|
|
SliderMark,
|
|
SliderMarkLabel,
|
|
SliderRail,
|
|
SliderRoot,
|
|
SliderThumb,
|
|
SliderTrack,
|
|
SliderValueLabel2 as SliderValueLabel,
|
|
Snackbar_default as Snackbar,
|
|
SnackbarContent_default as SnackbarContent,
|
|
SpeedDial_default as SpeedDial,
|
|
SpeedDialAction_default as SpeedDialAction,
|
|
SpeedDialIcon_default as SpeedDialIcon,
|
|
Stack_default as Stack,
|
|
Step_default as Step,
|
|
StepButton_default as StepButton,
|
|
StepConnector_default as StepConnector,
|
|
StepContent_default as StepContent,
|
|
StepContext_default as StepContext,
|
|
StepIcon_default as StepIcon,
|
|
StepLabel_default as StepLabel,
|
|
Stepper_default as Stepper,
|
|
StepperContext_default as StepperContext,
|
|
StyledEngineProvider,
|
|
SvgIcon_default as SvgIcon,
|
|
SwipeableDrawer_default as SwipeableDrawer,
|
|
Switch_default as Switch,
|
|
identifier_default as THEME_ID,
|
|
Tab_default as Tab,
|
|
TabScrollButton_default as TabScrollButton,
|
|
Table_default as Table,
|
|
TableBody_default as TableBody,
|
|
TableCell_default as TableCell,
|
|
TableContainer_default as TableContainer,
|
|
TableFooter_default as TableFooter,
|
|
TableHead_default as TableHead,
|
|
TablePagination_default as TablePagination,
|
|
TableRow_default as TableRow,
|
|
TableSortLabel_default as TableSortLabel,
|
|
Tabs_default as Tabs,
|
|
TextField_default as TextField,
|
|
TextareaAutosize_default as TextareaAutosize,
|
|
ThemeProvider,
|
|
ToggleButton_default as ToggleButton,
|
|
ToggleButtonGroup_default as ToggleButtonGroup,
|
|
Toolbar_default as Toolbar,
|
|
Tooltip_default as Tooltip,
|
|
Typography_default as Typography,
|
|
Grid2_default as Unstable_Grid2,
|
|
FocusTrap_default as Unstable_TrapFocus,
|
|
Zoom_default as Zoom,
|
|
accordionActionsClasses_default as accordionActionsClasses,
|
|
accordionClasses_default as accordionClasses,
|
|
accordionDetailsClasses_default as accordionDetailsClasses,
|
|
accordionSummaryClasses_default as accordionSummaryClasses,
|
|
adaptV4Theme,
|
|
alertClasses_default as alertClasses,
|
|
alertTitleClasses_default as alertTitleClasses,
|
|
alpha,
|
|
appBarClasses_default as appBarClasses,
|
|
autocompleteClasses_default as autocompleteClasses,
|
|
avatarClasses_default as avatarClasses,
|
|
avatarGroupClasses_default as avatarGroupClasses,
|
|
backdropClasses_default as backdropClasses,
|
|
badgeClasses_default as badgeClasses,
|
|
bottomNavigationActionClasses_default as bottomNavigationActionClasses,
|
|
bottomNavigationClasses_default as bottomNavigationClasses,
|
|
boxClasses_default as boxClasses,
|
|
breadcrumbsClasses_default as breadcrumbsClasses,
|
|
buttonBaseClasses_default as buttonBaseClasses,
|
|
buttonClasses_default as buttonClasses,
|
|
buttonGroupClasses_default as buttonGroupClasses,
|
|
capitalize_default as capitalize,
|
|
cardActionAreaClasses_default as cardActionAreaClasses,
|
|
cardActionsClasses_default as cardActionsClasses,
|
|
cardClasses_default as cardClasses,
|
|
cardContentClasses_default as cardContentClasses,
|
|
cardHeaderClasses_default as cardHeaderClasses,
|
|
cardMediaClasses_default as cardMediaClasses,
|
|
checkboxClasses_default as checkboxClasses,
|
|
chipClasses_default as chipClasses,
|
|
circularProgressClasses_default as circularProgressClasses,
|
|
collapseClasses_default as collapseClasses,
|
|
colors_exports as colors,
|
|
containerClasses_default as containerClasses,
|
|
createChainedFunction_default as createChainedFunction,
|
|
createFilterOptions,
|
|
createMuiTheme,
|
|
createStyles,
|
|
createSvgIcon,
|
|
createTheme_default as createTheme,
|
|
css,
|
|
darkScrollbar,
|
|
darken,
|
|
debounce_default as debounce,
|
|
decomposeColor,
|
|
deprecatedPropType_default as deprecatedPropType,
|
|
dialogActionsClasses_default as dialogActionsClasses,
|
|
dialogClasses_default as dialogClasses,
|
|
dialogContentClasses_default as dialogContentClasses,
|
|
dialogContentTextClasses_default as dialogContentTextClasses,
|
|
dialogTitleClasses_default as dialogTitleClasses,
|
|
dividerClasses_default as dividerClasses,
|
|
drawerClasses_default as drawerClasses,
|
|
duration,
|
|
easing,
|
|
emphasize,
|
|
styled_default as experimentalStyled,
|
|
extendTheme as experimental_extendTheme,
|
|
experimental_sx,
|
|
fabClasses_default as fabClasses,
|
|
filledInputClasses_default as filledInputClasses,
|
|
formControlClasses_default as formControlClasses,
|
|
formControlLabelClasses_default as formControlLabelClasses,
|
|
formGroupClasses_default as formGroupClasses,
|
|
formHelperTextClasses_default as formHelperTextClasses,
|
|
formLabelClasses_default as formLabelClasses,
|
|
generateUtilityClass,
|
|
generateUtilityClasses,
|
|
getAccordionActionsUtilityClass,
|
|
getAccordionDetailsUtilityClass,
|
|
getAccordionSummaryUtilityClass,
|
|
getAccordionUtilityClass,
|
|
getAlertTitleUtilityClass,
|
|
getAlertUtilityClass,
|
|
getAppBarUtilityClass,
|
|
getAutocompleteUtilityClass,
|
|
getAvatarGroupUtilityClass,
|
|
getAvatarUtilityClass,
|
|
getBackdropUtilityClass,
|
|
getBadgeUtilityClass,
|
|
getBottomNavigationActionUtilityClass,
|
|
getBottomNavigationUtilityClass,
|
|
getBreadcrumbsUtilityClass,
|
|
getButtonBaseUtilityClass,
|
|
getButtonGroupUtilityClass,
|
|
getButtonUtilityClass,
|
|
getCardActionAreaUtilityClass,
|
|
getCardActionsUtilityClass,
|
|
getCardContentUtilityClass,
|
|
getCardHeaderUtilityClass,
|
|
getCardMediaUtilityClass,
|
|
getCardUtilityClass,
|
|
getCheckboxUtilityClass,
|
|
getChipUtilityClass,
|
|
getCircularProgressUtilityClass,
|
|
getCollapseUtilityClass,
|
|
getContainerUtilityClass,
|
|
getContrastRatio,
|
|
getDialogActionsUtilityClass,
|
|
getDialogContentTextUtilityClass,
|
|
getDialogContentUtilityClass,
|
|
getDialogTitleUtilityClass,
|
|
getDialogUtilityClass,
|
|
getDividerUtilityClass,
|
|
getDrawerUtilityClass,
|
|
getFabUtilityClass,
|
|
getFilledInputUtilityClass,
|
|
getFormControlLabelUtilityClasses,
|
|
getFormControlUtilityClasses,
|
|
getFormGroupUtilityClass,
|
|
getFormHelperTextUtilityClasses,
|
|
getFormLabelUtilityClasses,
|
|
getGrid2UtilityClass,
|
|
getGridUtilityClass,
|
|
getIconButtonUtilityClass,
|
|
getIconUtilityClass,
|
|
getImageListItemBarUtilityClass,
|
|
getImageListItemUtilityClass,
|
|
getImageListUtilityClass,
|
|
getInitColorSchemeScript,
|
|
getInputAdornmentUtilityClass,
|
|
getInputBaseUtilityClass,
|
|
getInputLabelUtilityClasses,
|
|
getInputUtilityClass,
|
|
getLinearProgressUtilityClass,
|
|
getLinkUtilityClass,
|
|
getListItemAvatarUtilityClass,
|
|
getListItemButtonUtilityClass,
|
|
getListItemIconUtilityClass,
|
|
getListItemSecondaryActionClassesUtilityClass,
|
|
getListItemTextUtilityClass,
|
|
getListItemUtilityClass,
|
|
getListSubheaderUtilityClass,
|
|
getListUtilityClass,
|
|
getLuminance,
|
|
getMenuItemUtilityClass,
|
|
getMenuUtilityClass,
|
|
getMobileStepperUtilityClass,
|
|
getModalUtilityClass,
|
|
getNativeSelectUtilityClasses,
|
|
getOffsetLeft,
|
|
getOffsetTop,
|
|
getOutlinedInputUtilityClass,
|
|
getOverlayAlpha_default as getOverlayAlpha,
|
|
getPaginationItemUtilityClass,
|
|
getPaginationUtilityClass,
|
|
getPaperUtilityClass,
|
|
getPopoverUtilityClass,
|
|
getPopperUtilityClass,
|
|
getRadioGroupUtilityClass,
|
|
getRadioUtilityClass,
|
|
getRatingUtilityClass,
|
|
getScopedCssBaselineUtilityClass,
|
|
getSelectUtilityClasses,
|
|
getSkeletonUtilityClass,
|
|
getSliderUtilityClass,
|
|
getSnackbarContentUtilityClass,
|
|
getSnackbarUtilityClass,
|
|
getSpeedDialActionUtilityClass,
|
|
getSpeedDialIconUtilityClass,
|
|
getSpeedDialUtilityClass,
|
|
getStepButtonUtilityClass,
|
|
getStepConnectorUtilityClass,
|
|
getStepContentUtilityClass,
|
|
getStepIconUtilityClass,
|
|
getStepLabelUtilityClass,
|
|
getStepUtilityClass,
|
|
getStepperUtilityClass,
|
|
getSvgIconUtilityClass,
|
|
getSwitchUtilityClass,
|
|
getTabScrollButtonUtilityClass,
|
|
getTabUtilityClass,
|
|
getTableBodyUtilityClass,
|
|
getTableCellUtilityClass,
|
|
getTableContainerUtilityClass,
|
|
getTableFooterUtilityClass,
|
|
getTableHeadUtilityClass,
|
|
getTablePaginationUtilityClass,
|
|
getTableRowUtilityClass,
|
|
getTableSortLabelUtilityClass,
|
|
getTableUtilityClass,
|
|
getTabsUtilityClass,
|
|
getTextFieldUtilityClass,
|
|
getToggleButtonGroupUtilityClass,
|
|
getToggleButtonUtilityClass,
|
|
getToolbarUtilityClass,
|
|
getTooltipUtilityClass,
|
|
getTouchRippleUtilityClass,
|
|
getTypographyUtilityClass,
|
|
grid2Classes_default as grid2Classes,
|
|
gridClasses_default as gridClasses,
|
|
hexToRgb,
|
|
hslToRgb,
|
|
iconButtonClasses_default as iconButtonClasses,
|
|
iconClasses_default as iconClasses,
|
|
imageListClasses_default as imageListClasses,
|
|
imageListItemBarClasses_default as imageListItemBarClasses,
|
|
imageListItemClasses_default as imageListItemClasses,
|
|
inputAdornmentClasses_default as inputAdornmentClasses,
|
|
inputBaseClasses_default as inputBaseClasses,
|
|
inputClasses_default as inputClasses,
|
|
inputLabelClasses_default as inputLabelClasses,
|
|
isMuiElement_default as isMuiElement,
|
|
keyframes,
|
|
lighten,
|
|
linearProgressClasses_default as linearProgressClasses,
|
|
linkClasses_default as linkClasses,
|
|
listClasses_default as listClasses,
|
|
listItemAvatarClasses_default as listItemAvatarClasses,
|
|
listItemButtonClasses_default as listItemButtonClasses,
|
|
listItemClasses_default as listItemClasses,
|
|
listItemIconClasses_default as listItemIconClasses,
|
|
listItemSecondaryActionClasses_default as listItemSecondaryActionClasses,
|
|
listItemTextClasses_default as listItemTextClasses,
|
|
listSubheaderClasses_default as listSubheaderClasses,
|
|
major,
|
|
makeStyles,
|
|
menuClasses_default as menuClasses,
|
|
menuItemClasses_default as menuItemClasses,
|
|
minor,
|
|
mobileStepperClasses_default as mobileStepperClasses,
|
|
modalClasses_default as modalClasses,
|
|
nativeSelectClasses_default as nativeSelectClasses,
|
|
outlinedInputClasses_default as outlinedInputClasses,
|
|
ownerDocument_default as ownerDocument,
|
|
ownerWindow_default as ownerWindow,
|
|
paginationClasses_default as paginationClasses,
|
|
paginationItemClasses_default as paginationItemClasses,
|
|
paperClasses_default as paperClasses,
|
|
patch,
|
|
popoverClasses_default as popoverClasses,
|
|
preReleaseLabel,
|
|
preReleaseNumber,
|
|
createMixins as private_createMixins,
|
|
createTypography as private_createTypography,
|
|
excludeVariablesFromRoot_default as private_excludeVariablesFromRoot,
|
|
radioClasses_default as radioClasses,
|
|
radioGroupClasses_default as radioGroupClasses,
|
|
ratingClasses_default as ratingClasses,
|
|
recomposeColor,
|
|
requirePropFactory_default as requirePropFactory,
|
|
responsiveFontSizes,
|
|
rgbToHex,
|
|
scopedCssBaselineClasses_default as scopedCssBaselineClasses,
|
|
selectClasses_default as selectClasses,
|
|
setRef_default as setRef,
|
|
shouldSkipGeneratingVar,
|
|
skeletonClasses_default as skeletonClasses,
|
|
sliderClasses_default as sliderClasses,
|
|
snackbarClasses_default as snackbarClasses,
|
|
snackbarContentClasses_default as snackbarContentClasses,
|
|
speedDialActionClasses_default as speedDialActionClasses,
|
|
speedDialClasses_default as speedDialClasses,
|
|
speedDialIconClasses_default as speedDialIconClasses,
|
|
stackClasses_default as stackClasses,
|
|
stepButtonClasses_default as stepButtonClasses,
|
|
stepClasses_default as stepClasses,
|
|
stepConnectorClasses_default as stepConnectorClasses,
|
|
stepContentClasses_default as stepContentClasses,
|
|
stepIconClasses_default as stepIconClasses,
|
|
stepLabelClasses_default as stepLabelClasses,
|
|
stepperClasses_default as stepperClasses,
|
|
styled_default as styled,
|
|
svgIconClasses_default as svgIconClasses,
|
|
switchClasses_default as switchClasses,
|
|
tabClasses_default as tabClasses,
|
|
tabScrollButtonClasses_default as tabScrollButtonClasses,
|
|
tableBodyClasses_default as tableBodyClasses,
|
|
tableCellClasses_default as tableCellClasses,
|
|
tableClasses_default as tableClasses,
|
|
tableContainerClasses_default as tableContainerClasses,
|
|
tableFooterClasses_default as tableFooterClasses,
|
|
tableHeadClasses_default as tableHeadClasses,
|
|
tablePaginationClasses_default as tablePaginationClasses,
|
|
tableRowClasses_default as tableRowClasses,
|
|
tableSortLabelClasses_default as tableSortLabelClasses,
|
|
tabsClasses_default as tabsClasses,
|
|
textFieldClasses_default as textFieldClasses,
|
|
toggleButtonClasses_default as toggleButtonClasses,
|
|
toggleButtonGroupClasses_default as toggleButtonGroupClasses,
|
|
toolbarClasses_default as toolbarClasses,
|
|
tooltipClasses_default as tooltipClasses,
|
|
touchRippleClasses_default as touchRippleClasses,
|
|
typographyClasses_default as typographyClasses,
|
|
unstable_ClassNameGenerator,
|
|
composeClasses as unstable_composeClasses,
|
|
createMuiStrictModeTheme as unstable_createMuiStrictModeTheme,
|
|
getUnit as unstable_getUnit,
|
|
toUnitless as unstable_toUnitless,
|
|
useEnhancedEffect_default2 as unstable_useEnhancedEffect,
|
|
useId_default as unstable_useId,
|
|
unsupportedProp_default as unsupportedProp,
|
|
useAutocomplete_default as useAutocomplete,
|
|
useColorScheme,
|
|
useControlled_default as useControlled,
|
|
useEventCallback_default2 as useEventCallback,
|
|
useForkRef_default as useForkRef,
|
|
useFormControl,
|
|
useIsFocusVisible_default as useIsFocusVisible,
|
|
useMediaQuery,
|
|
usePagination,
|
|
useRadioGroup,
|
|
useScrollTrigger,
|
|
useStepContext,
|
|
useStepperContext,
|
|
useTheme,
|
|
useThemeProps,
|
|
version,
|
|
withStyles,
|
|
withTheme
|
|
};
|
|
/*! Bundled license information:
|
|
|
|
@mui/material/index.js:
|
|
(**
|
|
* @mui/material v5.18.0
|
|
*
|
|
* @license MIT
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*)
|
|
*/
|
|
//# sourceMappingURL=@mui_material.js.map
|