{"version":3,"file":"RadioGroup.cjs","names":["_react","_interopRequireWildcard","require","_Field","_inputUtils","_Radio","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","RadioGroup","ariaDescribedBy","children","defaultValue","errorMessage","errorMessageList","hint","HintLinkComponent","id","idOverride","isDisabled","isReadOnly","label","name","nameOverride","onChange","onChangeProp","testId","translate","value","controlledStateRef","useRef","getControlState","controlledValue","uncontrolledValue","inputValues","useInputValues","controlState","current","useCallback","event","newValue","memoizedChildren","useMemo","React","Children","map","child","isValidElement","type","Radio","cloneElement","props","renderFieldComponent","errorMessageElementId","labelElementId","jsx","_RadioGroup2","Field","fieldType","hasVisibleLabel","MemoizedRadioGroup","exports","memo","displayName"],"sources":["../../../src/Fields/RadioGroup.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 {\n  RadioGroup as MuiRadioGroup,\n  type RadioGroupProps as MuiRadioGroupProps,\n} from \"@mui/material\";\nimport React, { memo, ReactNode, useCallback, useMemo, useRef } from \"react\";\n\nimport type { HtmlProps } from \"../HtmlProps.js\";\n\nimport { Field } from \"../Field.js\";\nimport {\n  FieldComponentProps,\n  FieldComponentRenderProps,\n} from \"../FieldComponentProps.js\";\nimport { getControlState, useInputValues } from \"../inputUtils.js\";\nimport { Radio, RadioProps } from \"./Radio.js\";\n\nexport type RadioGroupProps = {\n  /**\n   * The Radio components within the group. Must include two or more.\n   */\n  children: ReactNode;\n  /**\n   * The text value of the Radio that should be selected by default\n   */\n  defaultValue?: string;\n  /**\n   * The text label for the RadioGroup\n   */\n  label: string;\n  /**\n   * Called when the selected radio option changes. Receives the event and the new value.\n   */\n  onChange?: MuiRadioGroupProps[\"onChange\"];\n  /**\n   * The `value` on the selected Radio\n   */\n  value?: string;\n} & Pick<\n  FieldComponentProps,\n  | \"errorMessage\"\n  | \"errorMessageList\"\n  | \"hint\"\n  | \"HintLinkComponent\"\n  | \"id\"\n  | \"isDisabled\"\n  | \"isReadOnly\"\n  | \"name\"\n> &\n  Pick<HtmlProps, \"ariaDescribedBy\" | \"testId\" | \"translate\">;\n\ntype FieldRenderProps = Partial<\n  Pick<FieldComponentRenderProps, \"ariaDescribedBy\" | \"errorMessageElementId\">\n> &\n  Pick<FieldComponentRenderProps, \"id\" | \"labelElementId\">;\n\n/**\n * A group of mutually exclusive Radio inputs, allowing the user to select exactly one option from a set.\n */\nconst RadioGroup = ({\n  ariaDescribedBy,\n  children,\n  defaultValue,\n  errorMessage,\n  errorMessageList,\n  hint,\n  HintLinkComponent,\n  id: idOverride,\n  isDisabled,\n  isReadOnly = false,\n  label,\n  name: nameOverride,\n  onChange: onChangeProp,\n  testId,\n  translate,\n  value,\n}: RadioGroupProps) => {\n  const controlledStateRef = useRef(\n    getControlState({\n      controlledValue: value,\n      uncontrolledValue: defaultValue,\n    }),\n  );\n\n  const inputValues = useInputValues({\n    defaultValue,\n    value,\n    controlState: controlledStateRef.current,\n  });\n\n  const onChange = useCallback<NonNullable<MuiRadioGroupProps[\"onChange\"]>>(\n    (event, newValue) => {\n      onChangeProp?.(event, newValue);\n    },\n    [onChangeProp],\n  );\n\n  const memoizedChildren = useMemo(\n    () =>\n      React.Children.map(children, (child) => {\n        if (React.isValidElement<RadioProps>(child) && child.type === Radio) {\n          return React.cloneElement(child, {\n            ...child.props,\n            isDisabled: isDisabled || child.props.isDisabled,\n            isReadOnly: isReadOnly || child.props.isReadOnly,\n          });\n        }\n        return child;\n      }),\n    [children, isDisabled, isReadOnly],\n  );\n  const renderFieldComponent = useCallback(\n    ({\n      ariaDescribedBy,\n      errorMessageElementId,\n      id,\n      labelElementId,\n    }: FieldRenderProps) => (\n      <MuiRadioGroup\n        {...inputValues}\n        aria-describedby={ariaDescribedBy}\n        aria-errormessage={errorMessageElementId}\n        aria-labelledby={labelElementId}\n        data-se={testId}\n        id={id}\n        name={nameOverride ?? id}\n        onChange={onChange}\n        translate={translate}\n      >\n        {memoizedChildren}\n      </MuiRadioGroup>\n    ),\n    [inputValues, nameOverride, onChange, memoizedChildren, testId, translate],\n  );\n\n  return (\n    <Field\n      ariaDescribedBy={ariaDescribedBy}\n      errorMessage={errorMessage}\n      errorMessageList={errorMessageList}\n      fieldType=\"group\"\n      hasVisibleLabel={false}\n      hint={hint}\n      HintLinkComponent={HintLinkComponent}\n      id={idOverride}\n      isDisabled={isDisabled}\n      isReadOnly={isReadOnly}\n      label={label}\n      renderFieldComponent={renderFieldComponent}\n    />\n  );\n};\n\nconst MemoizedRadioGroup = memo(RadioGroup);\nMemoizedRadioGroup.displayName = \"RadioGroup\";\n\nexport { MemoizedRadioGroup as RadioGroup };\n"],"mappings":"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","ignoreList":[]}