{"version":3,"file":"SwitchBase.mjs","sources":["../../../../../../../../node_modules/@mui/material/internal/SwitchBase.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from \"../utils/capitalize.js\";\nimport rootShouldForwardProp from \"../styles/rootShouldForwardProp.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport useControlled from \"../utils/useControlled.js\";\nimport useFormControl from \"../FormControl/useFormControl.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport { getSwitchBaseUtilityClass } from \"./switchBaseClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    checked,\n    disabled,\n    edge\n  } = ownerState;\n  const slots = {\n    root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n    input: ['input']\n  };\n  return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\nconst SwitchBaseRoot = styled(ButtonBase)({\n  padding: 9,\n  borderRadius: '50%',\n  variants: [{\n    props: {\n      edge: 'start',\n      size: 'small'\n    },\n    style: {\n      marginLeft: -3\n    }\n  }, {\n    props: ({\n      edge,\n      ownerState\n    }) => edge === 'start' && ownerState.size !== 'small',\n    style: {\n      marginLeft: -12\n    }\n  }, {\n    props: {\n      edge: 'end',\n      size: 'small'\n    },\n    style: {\n      marginRight: -3\n    }\n  }, {\n    props: ({\n      edge,\n      ownerState\n    }) => edge === 'end' && ownerState.size !== 'small',\n    style: {\n      marginRight: -12\n    }\n  }]\n});\nconst SwitchBaseInput = styled('input', {\n  shouldForwardProp: rootShouldForwardProp\n})({\n  cursor: 'inherit',\n  position: 'absolute',\n  opacity: 0,\n  width: '100%',\n  height: '100%',\n  top: 0,\n  left: 0,\n  margin: 0,\n  padding: 0,\n  zIndex: 1\n});\n\n/**\n * @ignore - internal component.\n */\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n  const {\n    autoFocus,\n    checked: checkedProp,\n    checkedIcon,\n    className,\n    defaultChecked,\n    disabled: disabledProp,\n    disableFocusRipple = false,\n    edge = false,\n    icon,\n    id,\n    inputProps,\n    inputRef,\n    name,\n    onBlur,\n    onChange,\n    onFocus,\n    readOnly,\n    required = false,\n    tabIndex,\n    type,\n    value,\n    ...other\n  } = props;\n  const [checked, setCheckedState] = useControlled({\n    controlled: checkedProp,\n    default: Boolean(defaultChecked),\n    name: 'SwitchBase',\n    state: 'checked'\n  });\n  const muiFormControl = useFormControl();\n  const handleFocus = event => {\n    if (onFocus) {\n      onFocus(event);\n    }\n    if (muiFormControl && muiFormControl.onFocus) {\n      muiFormControl.onFocus(event);\n    }\n  };\n  const handleBlur = event => {\n    if (onBlur) {\n      onBlur(event);\n    }\n    if (muiFormControl && muiFormControl.onBlur) {\n      muiFormControl.onBlur(event);\n    }\n  };\n  const handleInputChange = event => {\n    // Workaround for https://github.com/facebook/react/issues/9023\n    if (event.nativeEvent.defaultPrevented) {\n      return;\n    }\n    const newChecked = event.target.checked;\n    setCheckedState(newChecked);\n    if (onChange) {\n      // TODO v6: remove the second argument.\n      onChange(event, newChecked);\n    }\n  };\n  let disabled = disabledProp;\n  if (muiFormControl) {\n    if (typeof disabled === 'undefined') {\n      disabled = muiFormControl.disabled;\n    }\n  }\n  const hasLabelFor = type === 'checkbox' || type === 'radio';\n  const ownerState = {\n    ...props,\n    checked,\n    disabled,\n    disableFocusRipple,\n    edge\n  };\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsxs(SwitchBaseRoot, {\n    component: \"span\",\n    className: clsx(classes.root, className),\n    centerRipple: true,\n    focusRipple: !disableFocusRipple,\n    disabled: disabled,\n    tabIndex: null,\n    role: undefined,\n    onFocus: handleFocus,\n    onBlur: handleBlur,\n    ownerState: ownerState,\n    ref: ref,\n    ...other,\n    children: [/*#__PURE__*/_jsx(SwitchBaseInput, {\n      autoFocus: autoFocus,\n      checked: checkedProp,\n      defaultChecked: defaultChecked,\n      className: classes.input,\n      disabled: disabled,\n      id: hasLabelFor ? id : undefined,\n      name: name,\n      onChange: handleInputChange,\n      readOnly: readOnly,\n      ref: inputRef,\n      required: required,\n      ownerState: ownerState,\n      tabIndex: tabIndex,\n      type: type,\n      ...(type === 'checkbox' && value === undefined ? {} : {\n        value\n      }),\n      ...inputProps\n    }), checked ? checkedIcon : icon]\n  });\n});\n\n// NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n  /**\n   * If `true`, the `input` element is focused during the first mount.\n   */\n  autoFocus: PropTypes.bool,\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: PropTypes.bool,\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: PropTypes.node.isRequired,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * @ignore\n   */\n  defaultChecked: PropTypes.bool,\n  /**\n   * If `true`, the component is disabled.\n   */\n  disabled: PropTypes.bool,\n  /**\n   * If `true`, the  keyboard focus ripple is disabled.\n   * @default false\n   */\n  disableFocusRipple: PropTypes.bool,\n  /**\n   * If given, uses a negative margin to counteract the padding on one\n   * side (this is often helpful for aligning the left or right\n   * side of the icon with content above or below, without ruining the border\n   * size and shape).\n   * @default false\n   */\n  edge: PropTypes.oneOf(['end', 'start', false]),\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: PropTypes.node.isRequired,\n  /**\n   * The id of the `input` element.\n   */\n  id: PropTypes.string,\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: PropTypes.object,\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: refType,\n  /*\n   * @ignore\n   */\n  name: PropTypes.string,\n  /**\n   * @ignore\n   */\n  onBlur: PropTypes.func,\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n   */\n  onChange: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onFocus: PropTypes.func,\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: PropTypes.bool,\n  /**\n   * If `true`, the `input` element is required.\n   */\n  required: PropTypes.bool,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.object,\n  /**\n   * @ignore\n   */\n  tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  /**\n   * The input component prop `type`.\n   */\n  type: PropTypes.string.isRequired,\n  /**\n   * The value of the component.\n   */\n  value: PropTypes.any\n} : void 0;\nexport default SwitchBase;"],"names":["useUtilityClasses","React.forwardRef","_jsxs","_jsx"],"mappings":"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","x_google_ignoreList":[0]}