{"version":3,"file":"Switch.cjs","names":["_styled","_interopRequireDefault","require","_react","_Box","_FieldHint","_i18n","_index","_inputUtils","_OdysseyDesignTokensContext","_remUtils","_useUniqueId","_jsxRuntime","e","__esModule","default","CONTROLLED","ComponentControlledState","nonForwardedProps","SwitchAndLabelContainer","styled","shouldForwardProp","prop","includes","isFullWidth","odysseyDesignTokens","display","alignItems","justifyContent","maxWidth","TypographyLineLengthMax","SwitchContainer","div","position","StyledSwitchLabel","_FormLabel2","isDisabled","isReadOnly","margin","color","PaletteNeutralDark","TypographyColorDisabled","p","a","HueNeutral700","SwitchTrack","isChecked","width","Spacing7","height","Spacing4","Spacing1","borderRadius","BorderRadiusOuter","backgroundColor","PaletteNeutralMain","transition","TransitionDurationMain","HueNeutral200","HueNeutral600","PaletteSuccessMain","SwitchThumb","thumbOffset","toRem","trackWidth","stripRem","thumbWidth","transformDistance","top","left","BorderRadiusRound","HueNeutralWhite","transform","HueNeutral50","HueNeutral400","SwitchCheckMark","CheckIcon","opacity","path","fill","HiddenCheckbox","input","cursor","zIndex","boxShadow","PalettePrimaryMain","SwitchLabel","hint","hintId","HintLinkComponent","inputId","label","useOdysseyDesignTokens","jsx","Fragment","children","jsxs","htmlFor","FieldHint","id","LinkComponent","text","MemoizedSwitchLabel","memo","displayName","Switch","idProp","isDefaultChecked","name","onChange","testId","value","t","useTranslation","controlledStateRef","useRef","getControlState","controlledValue","uncontrolledValue","inputValues","useMemo","current","checked","defaultChecked","internalSwitchChecked","setInternalSwitchChecked","useState","Boolean","useEffect","useUniqueId","undefined","labelElementId","handleOnChange","useCallback","event","preventDefault","target","Box","sx","marginBlockEnd","Spacing2","disabled","readOnly","type","MemoizedSwitch","exports"],"sources":["../../src/Switch.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { FormLabel, SwitchProps as MuiSwitchProps } from \"@mui/material\";\nimport {\n  ChangeEventHandler,\n  memo,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n} from \"react\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { Box } from \"./Box.js\";\nimport { FieldComponentProps } from \"./FieldComponentProps.js\";\nimport { FieldHint } from \"./FieldHint.js\";\nimport { CheckedFieldProps } from \"./FormCheckedProps.js\";\nimport { useTranslation } from \"./i18n.generated/i18n.js\";\nimport { CheckIcon } from \"./icons.generated/index.js\";\nimport { ComponentControlledState, getControlState } from \"./inputUtils.js\";\nimport {\n  DesignTokens,\n  useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { stripRem, toRem } from \"./remUtils.js\";\nimport { useUniqueId } from \"./useUniqueId.js\";\n\nconst { CONTROLLED } = ComponentControlledState;\n\nconst nonForwardedProps = [\n  \"isChecked\",\n  \"isDisabled\",\n  \"isFullWidth\",\n  \"isReadOnly\",\n  \"odysseyDesignTokens\",\n];\n\nconst SwitchAndLabelContainer = styled(\"div\", {\n  shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n  Pick<SwitchProps, \"isFullWidth\" | \"isDisabled\" | \"isReadOnly\"> & {\n    odysseyDesignTokens: DesignTokens;\n  }\n>(({ isFullWidth, odysseyDesignTokens }) => ({\n  display: \"flex\",\n  alignItems: \"flex-start\",\n  justifyContent: \"space-between\",\n  maxWidth: isFullWidth ? \"100%\" : odysseyDesignTokens.TypographyLineLengthMax,\n}));\n\nconst SwitchContainer = styled.div({\n  position: \"relative\",\n});\n\nconst StyledSwitchLabel = styled(FormLabel, {\n  shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n  Pick<SwitchLabelComponentProps, \"isDisabled\" | \"isReadOnly\"> & {\n    odysseyDesignTokens: DesignTokens;\n  }\n>(({ isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n  display: \"block\",\n  margin: 0,\n  color: odysseyDesignTokens.PaletteNeutralDark,\n\n  ...(isDisabled && {\n    color: odysseyDesignTokens.TypographyColorDisabled,\n    p: {\n      color: odysseyDesignTokens.TypographyColorDisabled,\n    },\n    a: {\n      color: `${odysseyDesignTokens.TypographyColorDisabled} !important`,\n    },\n  }),\n\n  ...(isReadOnly && {\n    color: odysseyDesignTokens.HueNeutral700,\n    p: {\n      color: odysseyDesignTokens.HueNeutral700,\n    },\n    a: {\n      color: `${odysseyDesignTokens.HueNeutral700} !important`,\n    },\n  }),\n}));\n\nconst SwitchTrack = styled(\"div\", {\n  shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n  Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n    odysseyDesignTokens: DesignTokens;\n  }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n  position: \"relative\",\n  width: odysseyDesignTokens.Spacing7,\n  height: `calc(${odysseyDesignTokens.Spacing4} + ${odysseyDesignTokens.Spacing1})`,\n  borderRadius: odysseyDesignTokens.BorderRadiusOuter,\n  backgroundColor: odysseyDesignTokens.PaletteNeutralMain,\n  transition: `background-color ${odysseyDesignTokens.TransitionDurationMain}`,\n\n  ...(isDisabled && {\n    backgroundColor: odysseyDesignTokens.HueNeutral200,\n  }),\n\n  ...(isReadOnly && {\n    backgroundColor: odysseyDesignTokens.HueNeutral600,\n  }),\n\n  ...(isChecked &&\n    !isDisabled &&\n    !isReadOnly && {\n      backgroundColor: odysseyDesignTokens.PaletteSuccessMain,\n    }),\n}));\n\nconst SwitchThumb = styled(\"span\", {\n  shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n  Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n    odysseyDesignTokens: DesignTokens;\n  }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => {\n  const thumbOffset = toRem(3);\n  const trackWidth = stripRem(odysseyDesignTokens.Spacing7);\n  const thumbWidth = stripRem(odysseyDesignTokens.Spacing4) - toRem(2);\n  const transformDistance = trackWidth - thumbWidth - thumbOffset * 2;\n\n  return {\n    position: \"absolute\",\n    top: \"50%\",\n    left: `${thumbOffset}rem`,\n    width: `calc(${odysseyDesignTokens.Spacing4} - ${toRem(2)}rem)`,\n    height: `calc(${odysseyDesignTokens.Spacing4} - ${toRem(2)}rem)`,\n    borderRadius: odysseyDesignTokens.BorderRadiusRound,\n    backgroundColor: odysseyDesignTokens.HueNeutralWhite,\n    transform: \"translate3d(0, -50%, 0)\",\n    transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,\n\n    ...(isDisabled && {\n      backgroundColor: odysseyDesignTokens.HueNeutral50,\n    }),\n\n    ...(isReadOnly && {\n      backgroundColor: odysseyDesignTokens.HueNeutral400,\n    }),\n\n    ...(isChecked && {\n      transform: `translate3d(${transformDistance}rem, -50%, 0)`,\n    }),\n  };\n});\n\nconst SwitchCheckMark = styled(CheckIcon, {\n  shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n  Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n    odysseyDesignTokens: DesignTokens;\n  }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n  position: \"absolute\",\n  top: \"50%\",\n  left: 3,\n  width: odysseyDesignTokens.Spacing4,\n  transform: \"translateY(-50%)\",\n  transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}`,\n  opacity: 0,\n  path: {\n    fill: odysseyDesignTokens.HueNeutralWhite,\n  },\n\n  ...(isChecked && {\n    opacity: 1,\n  }),\n\n  ...((isDisabled || isReadOnly) && {\n    path: {\n      fill: odysseyDesignTokens.HueNeutral50,\n    },\n  }),\n}));\n\nconst HiddenCheckbox = styled.input<{\n  isReadOnly?: boolean;\n  odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens, isReadOnly }) => ({\n  position: \"absolute\",\n  top: 0,\n  left: 0,\n  width: \"100%\",\n  height: \"100%\",\n  margin: 0,\n  opacity: 0,\n  cursor: isReadOnly ? \"default\" : \"pointer\",\n  zIndex: 2,\n\n  \"&:focus-visible\": {\n    \"~ [data-switch-track='true']\": {\n      boxShadow: `0 0 0 2px ${odysseyDesignTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyDesignTokens.PalettePrimaryMain}`,\n    },\n  },\n}));\n\ntype OnChangeCallbackArguments = {\n  checked: boolean;\n  value: string;\n};\n\nexport type SwitchProps = {\n  /**\n   * If `true`, the switch is read-only and cannot be toggled by the user.\n   * @default false\n   */\n  isReadOnly?: boolean;\n  /**\n   * The label text for the Switch.\n   */\n  label: string;\n  /**\n   * Called when the checked state changes. Receives the new checked state and the input value.\n   */\n  onChange?: ({ checked, value }: OnChangeCallbackArguments) => void;\n  /**\n   * The value submitted with the form when the Switch is checked.\n   */\n  value: string;\n} & Pick<\n  FieldComponentProps,\n  \"hint\" | \"HintLinkComponent\" | \"id\" | \"isFullWidth\" | \"isDisabled\" | \"name\"\n> &\n  Pick<CheckedFieldProps<MuiSwitchProps>, \"isChecked\" | \"isDefaultChecked\"> &\n  Pick<HtmlProps, \"testId\">;\n\ntype SwitchLabelComponentProps = {\n  hint: SwitchProps[\"hint\"];\n  hintId?: string;\n  HintLinkComponent: SwitchProps[\"HintLinkComponent\"];\n  inputId: string;\n  isDisabled: SwitchProps[\"isDisabled\"];\n  isFullWidth: SwitchProps[\"isFullWidth\"];\n  isReadOnly: SwitchProps[\"isReadOnly\"];\n  label: SwitchProps[\"label\"];\n};\n\nconst SwitchLabel = ({\n  hint,\n  hintId,\n  HintLinkComponent,\n  inputId,\n  isDisabled,\n  label,\n  isReadOnly,\n}: SwitchLabelComponentProps) => {\n  const odysseyDesignTokens = useOdysseyDesignTokens();\n\n  return (\n    <>\n      <StyledSwitchLabel\n        htmlFor={inputId}\n        isDisabled={isDisabled}\n        isReadOnly={isReadOnly}\n        odysseyDesignTokens={odysseyDesignTokens}\n      >\n        {label}\n        {hint && (\n          <FieldHint\n            id={hintId}\n            LinkComponent={HintLinkComponent}\n            text={hint}\n          />\n        )}\n      </StyledSwitchLabel>\n    </>\n  );\n};\n\nconst MemoizedSwitchLabel = memo(SwitchLabel);\nSwitchLabel.displayName = \"SwitchLabel\";\n\n/**\n * A toggle control that lets users switch a setting on or off. Use in place of a checkbox when the change takes effect immediately without requiring a form submission.\n */\nconst Switch = ({\n  hint,\n  HintLinkComponent,\n  id: idProp,\n  isChecked,\n  isDefaultChecked,\n  isDisabled,\n  isFullWidth = false,\n  isReadOnly = false,\n  label,\n  name,\n  onChange,\n  testId,\n  value,\n}: SwitchProps) => {\n  const { t } = useTranslation();\n  const odysseyDesignTokens = useOdysseyDesignTokens();\n  const controlledStateRef = useRef(\n    getControlState({\n      controlledValue: isChecked,\n      uncontrolledValue: isDefaultChecked,\n    }),\n  );\n  const inputValues = useMemo(() => {\n    if (controlledStateRef.current === CONTROLLED) {\n      return { checked: isChecked };\n    }\n    return { defaultChecked: isDefaultChecked };\n  }, [isDefaultChecked, isChecked]);\n\n  const [internalSwitchChecked, setInternalSwitchChecked] = useState(\n    controlledStateRef.current === CONTROLLED\n      ? Boolean(isChecked)\n      : Boolean(isDefaultChecked),\n  );\n\n  useEffect(() => {\n    if (controlledStateRef.current === CONTROLLED) {\n      setInternalSwitchChecked(Boolean(isChecked));\n    }\n  }, [isChecked]);\n\n  const inputId = useUniqueId(idProp);\n\n  const hintId = hint ? `${inputId}-hint` : undefined;\n  const labelElementId = `${inputId}-label`;\n\n  const handleOnChange = useCallback<ChangeEventHandler<HTMLInputElement>>(\n    (event) => {\n      if (isReadOnly) {\n        event.preventDefault();\n        return;\n      }\n      const target = event.target;\n      const { checked, value } = target;\n      if (controlledStateRef.current !== CONTROLLED) {\n        setInternalSwitchChecked(checked);\n      }\n      onChange?.({ checked, value });\n    },\n    [onChange, isReadOnly],\n  );\n\n  return (\n    <Box\n      sx={{\n        marginBlockEnd: odysseyDesignTokens.Spacing2,\n        \"&:last-child\": {\n          marginBlockEnd: 0,\n        },\n      }}\n    >\n      <SwitchAndLabelContainer\n        isFullWidth={isFullWidth}\n        odysseyDesignTokens={odysseyDesignTokens}\n      >\n        <MemoizedSwitchLabel\n          hint={hint}\n          hintId={hintId}\n          HintLinkComponent={HintLinkComponent}\n          inputId={inputId}\n          isDisabled={isDisabled}\n          isFullWidth={isFullWidth}\n          isReadOnly={isReadOnly}\n          label={label}\n        />\n        <SwitchContainer>\n          <HiddenCheckbox\n            {...inputValues}\n            aria-checked={internalSwitchChecked}\n            aria-describedby={hintId}\n            aria-label={\n              internalSwitchChecked\n                ? `${label}: ${t(\"switch.active\")}`\n                : `${label}: ${t(\"switch.inactive\")}`\n            }\n            aria-labelledby={labelElementId}\n            aria-readonly={isReadOnly}\n            data-se={testId}\n            disabled={isDisabled}\n            id={inputId}\n            isReadOnly={isReadOnly}\n            name={name ?? inputId}\n            odysseyDesignTokens={odysseyDesignTokens}\n            onChange={handleOnChange}\n            readOnly={isReadOnly}\n            type=\"checkbox\"\n            value={value}\n          />\n          <SwitchTrack\n            data-switch-track\n            isChecked={internalSwitchChecked}\n            isDisabled={isDisabled}\n            isReadOnly={isReadOnly}\n            odysseyDesignTokens={odysseyDesignTokens}\n          >\n            <SwitchThumb\n              isChecked={internalSwitchChecked}\n              isDisabled={isDisabled}\n              isReadOnly={isReadOnly}\n              odysseyDesignTokens={odysseyDesignTokens}\n            />\n            <SwitchCheckMark\n              isChecked={internalSwitchChecked}\n              isDisabled={isDisabled}\n              isReadOnly={isReadOnly}\n              odysseyDesignTokens={odysseyDesignTokens}\n            />\n          </SwitchTrack>\n        </SwitchContainer>\n      </SwitchAndLabelContainer>\n    </Box>\n  );\n};\n\nconst MemoizedSwitch = memo(Switch);\nMemoizedSwitch.displayName = \"Switch\";\n\nexport { MemoizedSwitch as Switch };\n"],"mappings":"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","ignoreList":[]}