/* * Copyright 2025 Commonwealth Scientific and Industrial Research * Organisation (CSIRO) ABN 41 687 119 230. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with 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 React from 'react'; import type { TypographyProps } from '@mui/material/Typography'; import Typography from '@mui/material/Typography'; import { useRendererConfigStore } from '../../../stores'; import { SrOnly } from '../SrOnly.styles'; interface RequiredAsteriskProps extends TypographyProps { readOnly?: boolean; } function RequiredAsterisk(props: RequiredAsteriskProps) { const { readOnly, children = '*', ...rest } = props; const readOnlyVisualStyle = useRendererConfigStore.use.readOnlyVisualStyle(); const mandatoryFieldLabel = useRendererConfigStore.use.rendererStrings().mandatoryField; const readOnlyTextColor = readOnlyVisualStyle === 'disabled' ? 'text.disabled' : 'text.secondary'; return ( <> {/* Screen-reader-only accessible label */} {mandatoryFieldLabel} ); } export default RequiredAsterisk;