{"version":3,"file":"CheckboxGroup.cjs","names":["_react","_interopRequireWildcard","require","_Field","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","CheckboxGroup","ariaDescribedBy","children","errorMessage","errorMessageList","hint","HintLinkComponent","id","idOverride","isDisabled","isReadOnly","isRequired","label","testId","translate","memoizedChildren","useMemo","React","Children","map","child","isValidElement","cloneElement","props","renderFieldComponent","useCallback","errorMessageElementId","labelElementId","jsx","_FormGroup2","Field","fieldType","hasVisibleLabel","isOptional","MemoizedCheckboxGroup","exports","memo","displayName"],"sources":["../../../src/Fields/CheckboxGroup.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 { FormGroup as MuiFormGroup } from \"@mui/material\";\nimport React, { memo, ReactNode, useCallback, useMemo } 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 { CheckboxProps } from \"./Checkbox.js\";\n\nexport type CheckboxGroupProps = {\n  /**\n   * A single Checkbox element or an array of Checkbox elements\n   */\n  children: ReactNode;\n  /**\n   * If `true`, at least one checkbox in the group must be selected.\n   * @default false\n   */\n  isRequired?: boolean;\n  /**\n   * The label text for the CheckboxGroup\n   */\n  label: string;\n} & Pick<\n  FieldComponentProps,\n  | \"errorMessage\"\n  | \"errorMessageList\"\n  | \"hint\"\n  | \"HintLinkComponent\"\n  | \"id\"\n  | \"isDisabled\"\n  | \"isReadOnly\"\n> &\n  Pick<HtmlProps, \"ariaDescribedBy\" | \"testId\" | \"translate\">;\n\ntype CheckboxGroupRenderProps = Pick<\n  FieldComponentRenderProps,\n  \"id\" | \"labelElementId\"\n> &\n  Partial<\n    Pick<FieldComponentRenderProps, \"ariaDescribedBy\" | \"errorMessageElementId\">\n  >;\n\n/**\n * A labeled group of Checkbox controls. Wraps one or more Checkbox elements with a shared label, optional hint, and unified error messaging.\n */\nconst CheckboxGroup = ({\n  ariaDescribedBy,\n  children,\n  errorMessage,\n  errorMessageList,\n  hint,\n  HintLinkComponent,\n  id: idOverride,\n  isDisabled,\n  isReadOnly = false,\n  isRequired = false,\n  label,\n  testId,\n  translate,\n}: CheckboxGroupProps) => {\n  const memoizedChildren = useMemo(\n    () =>\n      React.Children.map(children, (child) => {\n        if (React.isValidElement<CheckboxProps>(child)) {\n          return React.cloneElement(child, {\n            isReadOnly,\n            isDisabled: isDisabled || child.props.isDisabled,\n          });\n        }\n        return child;\n      }),\n    [children, isReadOnly, isDisabled],\n  );\n\n  const renderFieldComponent = useCallback(\n    ({\n      ariaDescribedBy,\n      errorMessageElementId,\n      id,\n      labelElementId,\n    }: CheckboxGroupRenderProps) => (\n      <MuiFormGroup\n        aria-describedby={ariaDescribedBy}\n        aria-errormessage={errorMessageElementId}\n        aria-labelledby={labelElementId}\n        data-se={testId}\n        id={id}\n        translate={translate}\n      >\n        {memoizedChildren}\n      </MuiFormGroup>\n    ),\n    [memoizedChildren, testId, translate],\n  );\n\n  return (\n    <Field\n      ariaDescribedBy={ariaDescribedBy}\n      errorMessage={errorMessage}\n      errorMessageList={errorMessageList}\n      fieldType=\"group\"\n      hasVisibleLabel={true}\n      hint={hint}\n      HintLinkComponent={HintLinkComponent}\n      id={idOverride}\n      isDisabled={isDisabled}\n      isOptional={!isRequired}\n      label={label}\n      renderFieldComponent={renderFieldComponent}\n    />\n  );\n};\n\nconst MemoizedCheckboxGroup = memo(CheckboxGroup);\nMemoizedCheckboxGroup.displayName = \"CheckboxGroup\";\n\nexport { MemoizedCheckboxGroup as CheckboxGroup };\n"],"mappings":"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","ignoreList":[]}