import _InputLabel from "@mui/material/InputLabel";
/*!
 * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */
import { memo, useMemo } from "react";
import { useTranslation } from "./i18n.generated/i18n.js";
import { ScreenReaderText } from "./ScreenReaderText.js";
import { Subordinate } from "./Typography.js";
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
const FieldLabel = ({
  hasVisibleLabel,
  id,
  inputId,
  isOptional,
  testId,
  translate,
  text
}) => {
  const {
    t
  } = useTranslation();
  const inputLabel = useMemo(() => _jsxs(_InputLabel, {
    "data-se": testId,
    htmlFor: inputId,
    id: id,
    translate: translate,
    children: [_jsx("span", {
      children: text
    }), isOptional && _jsx(Subordinate, {
      children: t("fieldlabel.optional.text")
    })]
  }), [id, inputId, isOptional, testId, translate, text, t]);
  return hasVisibleLabel ? inputLabel : _jsx(ScreenReaderText, {
    translate: translate,
    children: inputLabel
  });
};
const MemoizedFieldLabel = memo(FieldLabel);
MemoizedFieldLabel.displayName = "FieldLabel";
export { MemoizedFieldLabel as FieldLabel };
//# sourceMappingURL=FieldLabel.js.map