@aehrc/smart-forms-renderer 1.2.7 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js +3 -2
  2. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js.map +1 -1
  3. package/lib/components/FormComponents/BooleanItem/BooleanField.d.ts +2 -1
  4. package/lib/components/FormComponents/BooleanItem/BooleanField.js +6 -4
  5. package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +8 -8
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +11 -11
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
  10. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js +2 -1
  11. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js.map +1 -1
  12. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js +2 -1
  13. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js.map +1 -1
  14. package/lib/components/FormComponents/DecimalItem/DecimalField.js +2 -1
  15. package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -1
  16. package/lib/components/FormComponents/GroupItem/GroupHeading.js +1 -1
  17. package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
  18. package/lib/components/FormComponents/IntegerItem/IntegerField.js +2 -1
  19. package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -1
  20. package/lib/components/FormComponents/Item.styles.d.ts +1 -1
  21. package/lib/components/FormComponents/Item.styles.js +1 -1
  22. package/lib/components/FormComponents/ItemParts/AccessibleFeedback.d.ts +7 -0
  23. package/lib/components/FormComponents/ItemParts/AccessibleFeedback.js +7 -0
  24. package/lib/components/FormComponents/ItemParts/AccessibleFeedback.js.map +1 -0
  25. package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.js +4 -2
  26. package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.js.map +1 -1
  27. package/lib/components/FormComponents/ItemParts/ClearButtonAdornment.js +12 -12
  28. package/lib/components/FormComponents/ItemParts/ClearButtonAdornment.js.map +1 -1
  29. package/lib/components/FormComponents/ItemParts/RadioFormGroup.d.ts +1 -1
  30. package/lib/components/FormComponents/ItemParts/RadioFormGroup.js +5 -3
  31. package/lib/components/FormComponents/ItemParts/RadioFormGroup.js.map +1 -1
  32. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +8 -8
  33. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
  34. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +3 -3
  35. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
  36. package/lib/components/FormComponents/QuantityItem/QuantityField.js +2 -1
  37. package/lib/components/FormComponents/QuantityItem/QuantityField.js.map +1 -1
  38. package/lib/components/FormComponents/SliderItem/SliderField.js +4 -2
  39. package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -1
  40. package/lib/components/FormComponents/StringItem/StringField.js +2 -1
  41. package/lib/components/FormComponents/StringItem/StringField.js.map +1 -1
  42. package/lib/components/FormComponents/TextItem/TextField.js +2 -1
  43. package/lib/components/FormComponents/TextItem/TextField.js.map +1 -1
  44. package/lib/components/FormComponents/UrlItem/UrlField.js +2 -1
  45. package/lib/components/FormComponents/UrlItem/UrlField.js.map +1 -1
  46. package/lib/components/Tabs/FormBodySingleTab.js +6 -1
  47. package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
  48. package/package.json +4 -4
  49. package/src/components/FormComponents/AttachmentItem/AttachmentField.tsx +7 -2
  50. package/src/components/FormComponents/BooleanItem/BooleanField.tsx +12 -3
  51. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +2 -3
  52. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +3 -3
  53. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.tsx +2 -1
  54. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.tsx +6 -3
  55. package/src/components/FormComponents/DecimalItem/DecimalField.tsx +2 -1
  56. package/src/components/FormComponents/GroupItem/GroupHeading.tsx +8 -9
  57. package/src/components/FormComponents/IntegerItem/IntegerField.tsx +2 -1
  58. package/src/components/FormComponents/Item.styles.ts +1 -1
  59. package/src/components/FormComponents/ItemParts/AccessibleFeedback.tsx +35 -0
  60. package/src/components/FormComponents/ItemParts/CheckboxFormGroup.tsx +10 -2
  61. package/src/components/FormComponents/ItemParts/ClearButtonAdornment.tsx +22 -23
  62. package/src/components/FormComponents/ItemParts/RadioFormGroup.tsx +11 -3
  63. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +2 -3
  64. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +2 -3
  65. package/src/components/FormComponents/QuantityItem/QuantityField.tsx +2 -1
  66. package/src/components/FormComponents/SliderItem/SliderField.tsx +10 -2
  67. package/src/components/FormComponents/StringItem/StringField.tsx +2 -1
  68. package/src/components/FormComponents/TextItem/TextField.tsx +2 -1
  69. package/src/components/FormComponents/UrlItem/UrlField.tsx +2 -1
  70. package/src/components/Tabs/FormBodySingleTab.tsx +28 -8
@@ -4,28 +4,30 @@ import RadioGroup from '@mui/material/RadioGroup';
4
4
  import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
5
5
  import { useRendererConfigStore } from '../../../stores';
6
6
  import { getChoiceOrientation } from '../../../utils/choice';
7
- import { StyledRequiredTypography } from '../Item.styles';
7
+ import { StyledFeedbackTypography } from '../Item.styles';
8
8
  import ClearInputButton from './ClearInputButton';
9
9
  import ExpressionUpdateFadingIcon from './ExpressionUpdateFadingIcon';
10
10
  import RadioOptionList from './RadioOptionList';
11
+ import AccessibleFeedback from './AccessibleFeedback';
11
12
  function RadioFormGroup(props) {
12
13
  const { qItem, options, valueRadio, feedback, readOnly, expressionUpdated, answerOptionsToggleExpressionsMap, isTabled, onCheckedChange, onClear, children } = props;
13
14
  const readOnlyVisualStyle = useRendererConfigStore.use.readOnlyVisualStyle();
14
15
  const inputsFlexGrow = useRendererConfigStore.use.inputsFlexGrow();
15
16
  const orientation = getChoiceOrientation(qItem) ?? ChoiceItemOrientation.Vertical;
17
+ const feedbackId = qItem.type + '-' + qItem.linkId + '-feedback';
16
18
  return (_jsxs(_Fragment, { children: [_jsxs(Box, { display: "flex", width: "100%", sx: {
17
19
  justifyContent: 'space-between',
18
20
  alignItems: { xs: 'start', sm: 'center' },
19
21
  flexDirection: { xs: 'column', sm: 'row' }
20
22
  }, children: [_jsxs(Box, { display: "flex", alignItems: "center", sx: inputsFlexGrow ? { width: '100%', flexWrap: 'nowrap' } : {}, children: [_jsxs(RadioGroup, { id: qItem.type + '-' + qItem.linkId, ...(!isTabled
21
23
  ? { 'aria-labelledby': 'label-' + qItem.linkId }
22
- : { 'aria-label': qItem.text ?? 'Unnamed radio group' }), "aria-readonly": readOnly && readOnlyVisualStyle === 'readonly', row: orientation === ChoiceItemOrientation.Horizontal, sx: inputsFlexGrow ? { width: '100%', flexWrap: 'nowrap' } : {}, onChange: (e) => {
24
+ : { 'aria-label': qItem.text ?? 'Unnamed radio group' }), "aria-readonly": readOnly && readOnlyVisualStyle === 'readonly', "aria-describedby": feedback ? feedbackId : undefined, row: orientation === ChoiceItemOrientation.Horizontal, sx: inputsFlexGrow ? { width: '100%', flexWrap: 'nowrap' } : {}, onChange: (e) => {
23
25
  // If item.readOnly=true, do not allow any changes
24
26
  if (readOnly) {
25
27
  return;
26
28
  }
27
29
  onCheckedChange(e.target.value);
28
- }, value: valueRadio, "data-test": "q-item-radio-group", children: [_jsx(RadioOptionList, { options: options, readOnly: readOnly, fullWidth: inputsFlexGrow, answerOptionsToggleExpressionsMap: answerOptionsToggleExpressionsMap }), children] }), _jsx(Box, { flexGrow: 1 }), _jsx(ExpressionUpdateFadingIcon, { fadeIn: expressionUpdated, disabled: readOnly })] }), _jsx(ClearInputButton, { buttonShown: !!valueRadio, readOnly: readOnly, onClear: onClear })] }), feedback ? _jsx(StyledRequiredTypography, { children: feedback }) : null] }));
30
+ }, value: valueRadio, "data-test": "q-item-radio-group", children: [_jsx(RadioOptionList, { options: options, readOnly: readOnly, fullWidth: inputsFlexGrow, answerOptionsToggleExpressionsMap: answerOptionsToggleExpressionsMap }), children] }), _jsx(Box, { flexGrow: 1 }), _jsx(ExpressionUpdateFadingIcon, { fadeIn: expressionUpdated, disabled: readOnly })] }), _jsx(ClearInputButton, { buttonShown: !!valueRadio, readOnly: readOnly, onClear: onClear })] }), feedback ? (_jsx(AccessibleFeedback, { id: feedbackId, children: _jsx(StyledFeedbackTypography, { children: feedback }) })) : null] }));
29
31
  }
30
32
  export default RadioFormGroup;
31
33
  //# sourceMappingURL=RadioFormGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioFormGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/RadioFormGroup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RadioFormGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/RadioFormGroup.tsx"],"names":[],"mappings":"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"}
@@ -3,20 +3,20 @@ import { getAnswerOptionLabel } from '../../../utils/openChoice';
3
3
  import { StandardTextField } from '../Textfield.styles';
4
4
  import Autocomplete from '@mui/material/Autocomplete';
5
5
  import { useRendererConfigStore } from '../../../stores';
6
- import { StyledRequiredTypography } from '../Item.styles';
7
6
  import DisplayUnitText from '../ItemParts/DisplayUnitText';
7
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
8
8
  function OpenChoiceSelectAnswerOptionField(props) {
9
9
  const { qItem, options, valueSelect, feedback, readOnly, isTabled, renderingExtensions, onValueChange } = props;
10
10
  const readOnlyVisualStyle = useRendererConfigStore.use.readOnlyVisualStyle();
11
11
  const textFieldWidth = useRendererConfigStore.use.textFieldWidth();
12
12
  const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
13
- return (_jsxs(_Fragment, { children: [_jsx(Autocomplete, { id: qItem.type + '-' + qItem.linkId, value: valueSelect ?? null, options: options, getOptionLabel: (option) => getAnswerOptionLabel(option), onChange: (_, newValue, reason) => onValueChange(newValue, reason), onInputChange: (_, newValue, reason) => onValueChange(newValue, reason), freeSolo: true, autoHighlight: true, sx: { maxWidth: !isTabled ? textFieldWidth : 3000, minWidth: 160, flexGrow: 1 }, disabled: readOnly && readOnlyVisualStyle === 'disabled', readOnly: readOnly && readOnlyVisualStyle === 'readonly', size: "small", renderInput: (params) => (_jsx(StandardTextField, { multiline: true, textFieldWidth: textFieldWidth, isTabled: isTabled, placeholder: entryFormat || displayPrompt, ...params, slotProps: {
14
- input: {
15
- ...params.InputProps,
16
- readOnly: readOnly && readOnlyVisualStyle === 'readonly',
17
- endAdornment: (_jsxs(_Fragment, { children: [params.InputProps.endAdornment, _jsx(DisplayUnitText, { readOnly: readOnly, children: displayUnit })] }))
18
- }
19
- } })) }), feedback ? _jsx(StyledRequiredTypography, { children: feedback }) : null] }));
13
+ return (_jsx(_Fragment, { children: _jsx(Autocomplete, { id: qItem.type + '-' + qItem.linkId, value: valueSelect ?? null, options: options, getOptionLabel: (option) => getAnswerOptionLabel(option), onChange: (_, newValue, reason) => onValueChange(newValue, reason), onInputChange: (_, newValue, reason) => onValueChange(newValue, reason), freeSolo: true, autoHighlight: true, sx: { maxWidth: !isTabled ? textFieldWidth : 3000, minWidth: 160, flexGrow: 1 }, disabled: readOnly && readOnlyVisualStyle === 'disabled', readOnly: readOnly && readOnlyVisualStyle === 'readonly', size: "small", renderInput: (params) => (_jsx(StandardTextField, { multiline: true, textFieldWidth: textFieldWidth, isTabled: isTabled, placeholder: entryFormat || displayPrompt, helperText: _jsx(AccessibleFeedback, { children: feedback }), ...params, slotProps: {
14
+ input: {
15
+ ...params.InputProps,
16
+ readOnly: readOnly && readOnlyVisualStyle === 'readonly',
17
+ endAdornment: (_jsxs(_Fragment, { children: [params.InputProps.endAdornment, _jsx(DisplayUnitText, { readOnly: readOnly, children: displayUnit })] }))
18
+ }
19
+ } })) }) }));
20
20
  }
21
21
  export default OpenChoiceSelectAnswerOptionField;
22
22
  //# sourceMappingURL=OpenChoiceSelectAnswerOptionField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenChoiceSelectAnswerOptionField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AAOtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAiB3D,SAAS,iCAAiC,CAAC,KAA6C;IACtF,MAAM,EACJ,KAAK,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC;IAExE,OAAO,CACL,8BACE,KAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,EACnC,KAAK,EAAE,WAAW,IAAI,IAAI,EAC1B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EACxD,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAClE,aAAa,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EACvE,QAAQ,QACR,aAAa,QACb,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC/E,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,iBAAiB,IAChB,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,IAAI,aAAa,KACrC,MAAM,EACV,SAAS,EAAE;wBACT,KAAK,EAAE;4BACL,GAAG,MAAM,CAAC,UAAU;4BACpB,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;4BACxD,YAAY,EAAE,CACZ,8BACG,MAAM,CAAC,UAAU,CAAC,YAAY,EAC/B,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACnE,CACJ;yBACF;qBACF,GACD,CACH,GACD,EAED,QAAQ,CAAC,CAAC,CAAC,KAAC,wBAAwB,cAAE,QAAQ,GAA4B,CAAC,CAAC,CAAC,IAAI,IACjF,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,iCAAiC,CAAC"}
1
+ {"version":3,"file":"OpenChoiceSelectAnswerOptionField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AAOtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAiBjE,SAAS,iCAAiC,CAAC,KAA6C;IACtF,MAAM,EACJ,KAAK,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC;IAExE,OAAO,CACL,4BACE,KAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,EACnC,KAAK,EAAE,WAAW,IAAI,IAAI,EAC1B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EACxD,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAClE,aAAa,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EACvE,QAAQ,QACR,aAAa,QACb,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC/E,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,iBAAiB,IAChB,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,IAAI,aAAa,EACzC,UAAU,EAAE,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,KAC3D,MAAM,EACV,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,GAAG,MAAM,CAAC,UAAU;wBACpB,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;wBACxD,YAAY,EAAE,CACZ,8BACG,MAAM,CAAC,UAAU,CAAC,YAAY,EAC/B,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACnE,CACJ;qBACF;iBACF,GACD,CACH,GACD,GACD,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,iCAAiC,CAAC"}
@@ -3,20 +3,20 @@ import Autocomplete from '@mui/material/Autocomplete';
3
3
  import { StandardTextField } from '../Textfield.styles';
4
4
  import Typography from '@mui/material/Typography';
5
5
  import { useRendererConfigStore } from '../../../stores';
6
- import { StyledRequiredTypography } from '../Item.styles';
7
6
  import DisplayUnitText from '../ItemParts/DisplayUnitText';
7
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
8
8
  function OpenChoiceSelectAnswerValueSetField(props) {
9
9
  const { qItem, options, valueSelect, terminologyError, feedback, readOnly, isTabled, renderingExtensions, onValueChange } = props;
10
10
  const readOnlyVisualStyle = useRendererConfigStore.use.readOnlyVisualStyle();
11
11
  const textFieldWidth = useRendererConfigStore.use.textFieldWidth();
12
12
  const { displayUnit, displayPrompt, entryFormat } = renderingExtensions;
13
- return (_jsxs(_Fragment, { children: [_jsx(Autocomplete, { id: qItem.type + '-' + qItem.linkId, value: valueSelect ?? null, options: options, getOptionLabel: (option) => typeof option === 'string' ? option : (option.display ?? `${option.code}`), onChange: (_, newValue, reason) => onValueChange(newValue, reason), onInputChange: (_, newValue, reason) => onValueChange(newValue, reason), freeSolo: true, autoHighlight: true, sx: { maxWidth: !isTabled ? textFieldWidth : 3000, minWidth: 160, flexGrow: 1 }, disabled: readOnly && readOnlyVisualStyle === 'disabled', readOnly: readOnly && readOnlyVisualStyle === 'readonly', size: "small", renderInput: (params) => (_jsx(StandardTextField, { multiline: true, textFieldWidth: textFieldWidth, isTabled: isTabled, placeholder: entryFormat || displayPrompt, ...params, slotProps: {
13
+ return (_jsxs(_Fragment, { children: [_jsx(Autocomplete, { id: qItem.type + '-' + qItem.linkId, value: valueSelect ?? null, options: options, getOptionLabel: (option) => typeof option === 'string' ? option : (option.display ?? `${option.code}`), onChange: (_, newValue, reason) => onValueChange(newValue, reason), onInputChange: (_, newValue, reason) => onValueChange(newValue, reason), freeSolo: true, autoHighlight: true, sx: { maxWidth: !isTabled ? textFieldWidth : 3000, minWidth: 160, flexGrow: 1 }, disabled: readOnly && readOnlyVisualStyle === 'disabled', readOnly: readOnly && readOnlyVisualStyle === 'readonly', size: "small", renderInput: (params) => (_jsx(StandardTextField, { multiline: true, textFieldWidth: textFieldWidth, isTabled: isTabled, placeholder: entryFormat || displayPrompt, helperText: _jsx(AccessibleFeedback, { children: feedback }), ...params, slotProps: {
14
14
  input: {
15
15
  ...params.InputProps,
16
16
  readOnly: readOnly && readOnlyVisualStyle === 'readonly',
17
17
  endAdornment: (_jsxs(_Fragment, { children: [params.InputProps.endAdornment, _jsx(DisplayUnitText, { readOnly: readOnly, children: displayUnit })] }))
18
18
  }
19
- } })) }), terminologyError.error ? (_jsxs(Typography, { children: ["There was an error fetching options from the terminology server for", ' ', terminologyError.answerValueSet] })) : null, feedback ? _jsx(StyledRequiredTypography, { children: feedback }) : null] }));
19
+ } })) }), terminologyError.error ? (_jsxs(Typography, { children: ["There was an error fetching options from the terminology server for", ' ', terminologyError.answerValueSet] })) : null] }));
20
20
  }
21
21
  export default OpenChoiceSelectAnswerValueSetField;
22
22
  //# sourceMappingURL=OpenChoiceSelectAnswerValueSetField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenChoiceSelectAnswerValueSetField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx"],"names":[],"mappings":";AAmBA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAQlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAkB3D,SAAS,mCAAmC,CAAC,KAA+C;IAC1F,MAAM,EACJ,KAAK,EACL,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC;IAExE,OAAO,CACL,8BACE,KAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,EACnC,KAAK,EAAE,WAAW,IAAI,IAAI,EAC1B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,EAE5E,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAClE,aAAa,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EACvE,QAAQ,QACR,aAAa,QACb,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC/E,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,iBAAiB,IAChB,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,IAAI,aAAa,KACrC,MAAM,EACV,SAAS,EAAE;wBACT,KAAK,EAAE;4BACL,GAAG,MAAM,CAAC,UAAU;4BACpB,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;4BACxD,YAAY,EAAE,CACZ,8BACG,MAAM,CAAC,UAAU,CAAC,YAAY,EAC/B,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACnE,CACJ;yBACF;qBACF,GACD,CACH,GACD,EACD,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CACxB,MAAC,UAAU,sFAC2D,GAAG,EACtE,gBAAgB,CAAC,cAAc,IACrB,CACd,CAAC,CAAC,CAAC,IAAI,EAEP,QAAQ,CAAC,CAAC,CAAC,KAAC,wBAAwB,cAAE,QAAQ,GAA4B,CAAC,CAAC,CAAC,IAAI,IACjF,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,mCAAmC,CAAC"}
1
+ {"version":3,"file":"OpenChoiceSelectAnswerValueSetField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx"],"names":[],"mappings":";AAmBA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAQlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAkBjE,SAAS,mCAAmC,CAAC,KAA+C;IAC1F,MAAM,EACJ,KAAK,EACL,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC;IAExE,OAAO,CACL,8BACE,KAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,EACnC,KAAK,EAAE,WAAW,IAAI,IAAI,EAC1B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CACzB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,EAE5E,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAClE,aAAa,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EACvE,QAAQ,QACR,aAAa,QACb,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC/E,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,iBAAiB,IAChB,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,IAAI,aAAa,EACzC,UAAU,EAAE,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,KAC3D,MAAM,EACV,SAAS,EAAE;wBACT,KAAK,EAAE;4BACL,GAAG,MAAM,CAAC,UAAU;4BACpB,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;4BACxD,YAAY,EAAE,CACZ,8BACG,MAAM,CAAC,UAAU,CAAC,YAAY,EAC/B,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACnE,CACJ;yBACF;qBACF,GACD,CACH,GACD,EACD,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CACxB,MAAC,UAAU,sFAC2D,GAAG,EACtE,gBAAgB,CAAC,cAAc,IACrB,CACd,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,mCAAmC,CAAC"}
@@ -21,6 +21,7 @@ import DisplayUnitText from '../ItemParts/DisplayUnitText';
21
21
  import { ClearButtonAdornment } from '../ItemParts/ClearButtonAdornment';
22
22
  import ExpressionUpdateFadingIcon from '../ItemParts/ExpressionUpdateFadingIcon';
23
23
  import { StandardTextField } from '../Textfield.styles';
24
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
24
25
  function QuantityField(props) {
25
26
  const { linkId, itemType, itemText, input, feedback, displayPrompt, displayUnit, entryFormat, readOnly, calcExpUpdated, isTabled, onInputChange } = props;
26
27
  const readOnlyVisualStyle = useRendererConfigStore.use.readOnlyVisualStyle();
@@ -47,7 +48,7 @@ function QuantityField(props) {
47
48
  onInputChange('');
48
49
  } }), _jsx(DisplayUnitText, { readOnly: readOnly, children: displayUnit })] }))
49
50
  }
50
- }, helperText: feedback, "data-test": "q-item-quantity-field" }));
51
+ }, helperText: _jsx(AccessibleFeedback, { children: feedback }), "data-test": "q-item-quantity-field" }));
51
52
  }
52
53
  export default QuantityField;
53
54
  //# sourceMappingURL=QuantityField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/QuantityItem/QuantityField.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,0BAA0B,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAgBxD,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,aAAa,EAAE,CAAC;QAClB,eAAe,GAAG,aAAa,CAAC;IAClC,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,CAAC;IAEnD,0DAA0D;IAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAExF,OAAO,CACL,KAAC,iBAAiB,IAChB,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,WAAW,EAAE,eAAe,EAC5B,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE;YACT,SAAS,EAAE;gBACT,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,QAAQ;gBACjB,GAAG,CAAC,SAAS,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;aAC9C;YACD,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;gBACxD,YAAY,EAAE,CACZ,MAAC,cAAc,IAAC,QAAQ,EAAE,KAAK,aAC7B,KAAC,0BAA0B,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAC1E,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE;gCACZ,aAAa,CAAC,EAAE,CAAC,CAAC;4BACpB,CAAC,GACD,EACF,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACrD,CAClB;aACF;SACF,EACD,UAAU,EAAE,QAAQ,eACV,uBAAuB,GACjC,CACH,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"QuantityField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/QuantityItem/QuantityField.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,0BAA0B,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAgBjE,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,aAAa,EAAE,CAAC;QAClB,eAAe,GAAG,aAAa,CAAC;IAClC,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,CAAC;IAEnD,0DAA0D;IAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAExF,OAAO,CACL,KAAC,iBAAiB,IAChB,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,WAAW,EAAE,eAAe,EAC5B,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE;YACT,SAAS,EAAE;gBACT,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,QAAQ;gBACjB,GAAG,CAAC,SAAS,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;aAC9C;YACD,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;gBACxD,YAAY,EAAE,CACZ,MAAC,cAAc,IAAC,QAAQ,EAAE,KAAK,aAC7B,KAAC,0BAA0B,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAC1E,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE;gCACZ,aAAa,CAAC,EAAE,CAAC,CAAC;4BACpB,CAAC,GACD,EACF,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACrD,CAClB;aACF;SACF,EACD,UAAU,EAAE,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,eACrD,uBAAuB,GACjC,CACH,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
@@ -4,8 +4,9 @@ import Stack from '@mui/material/Stack';
4
4
  import SliderLabels from './SliderLabels';
5
5
  import SliderDisplayValue from './SliderDisplayValue';
6
6
  import { useRendererConfigStore } from '../../../stores';
7
- import { StyledRequiredTypography } from '../Item.styles';
7
+ import { StyledFeedbackTypography } from '../Item.styles';
8
8
  import { StandardSlider } from './Slider.styles';
9
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
9
10
  function SliderField(props) {
10
11
  const { linkId, itemType, value, minValue, maxValue, stepValue, minLabel, maxLabel, isInteracted, feedback, readOnly, isTabled, onValueChange } = props;
11
12
  const readOnlyVisualStyle = useRendererConfigStore.use.readOnlyVisualStyle();
@@ -16,6 +17,7 @@ function SliderField(props) {
16
17
  minWidth: 160
17
18
  };
18
19
  const hasLabels = !!(minLabel || maxLabel);
20
+ const feedbackId = itemType + '-' + linkId + '-feedback';
19
21
  return (_jsxs(_Fragment, { children: [_jsxs(Stack, { sx: { ...sliderSx }, children: [_jsx(SliderDisplayValue, { value: value, hasLabels: hasLabels, isInteracted: isInteracted }), hasLabels ? _jsx(SliderLabels, { minLabel: minLabel, maxLabel: maxLabel }) : null, _jsx(StandardSlider, { id: itemType + '-' + linkId, value: value, min: minValue, max: maxValue, step: stepValue, marks: sliderMarks, sx: { ...sliderSx }, onChange: (_, newValue) => {
20
22
  // If item.readOnly=true, do not allow any changes
21
23
  if (readOnly) {
@@ -24,7 +26,7 @@ function SliderField(props) {
24
26
  if (typeof newValue === 'number') {
25
27
  onValueChange(newValue);
26
28
  }
27
- }, disabled: readOnly && readOnlyVisualStyle === 'disabled', readOnly: readOnly && readOnlyVisualStyle === 'readonly', "aria-readonly": readOnly && readOnlyVisualStyle === 'readonly', valueLabelDisplay: "auto", "data-test": "q-item-slider-field" })] }), feedback ? _jsx(StyledRequiredTypography, { children: feedback }) : null] }));
29
+ }, disabled: readOnly && readOnlyVisualStyle === 'disabled', readOnly: readOnly && readOnlyVisualStyle === 'readonly', "aria-readonly": readOnly && readOnlyVisualStyle === 'readonly', "aria-describedby": feedback ? feedbackId : undefined, valueLabelDisplay: "auto", "data-test": "q-item-slider-field" })] }), feedback ? (_jsx(AccessibleFeedback, { id: feedbackId, children: _jsx(StyledFeedbackTypography, { children: feedback }) })) : null] }));
28
30
  }
29
31
  export default SliderField;
30
32
  //# sourceMappingURL=SliderField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SliderItem/SliderField.tsx"],"names":[],"mappings":";AAmBA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAiBjD,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEtF,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;QAC3C,QAAQ,EAAE,GAAG;KACd,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAE3C,OAAO,CACL,8BACE,MAAC,KAAK,IAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,aACxB,KAAC,kBAAkB,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAI,EACrF,SAAS,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,EAC5E,KAAC,cAAc,IACb,EAAE,EAAE,QAAQ,GAAG,GAAG,GAAG,MAAM,EAC3B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;4BACxB,kDAAkD;4BAClD,IAAI,QAAQ,EAAE,CAAC;gCACb,OAAO;4BACT,CAAC;4BAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACjC,aAAa,CAAC,QAAQ,CAAC,CAAC;4BAC1B,CAAC;wBACH,CAAC,EACD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,mBACzC,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EAC7D,iBAAiB,EAAC,MAAM,eACd,qBAAqB,GAC/B,IACI,EAEP,QAAQ,CAAC,CAAC,CAAC,KAAC,wBAAwB,cAAE,QAAQ,GAA4B,CAAC,CAAC,CAAC,IAAI,IACjF,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"SliderField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SliderItem/SliderField.tsx"],"names":[],"mappings":";AAmBA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAiBjE,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEtF,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;QAC3C,QAAQ,EAAE,GAAG;KACd,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,WAAW,CAAC;IAEzD,OAAO,CACL,8BACE,MAAC,KAAK,IAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,aACxB,KAAC,kBAAkB,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAI,EACrF,SAAS,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,IAAI,EAC5E,KAAC,cAAc,IACb,EAAE,EAAE,QAAQ,GAAG,GAAG,GAAG,MAAM,EAC3B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;4BACxB,kDAAkD;4BAClD,IAAI,QAAQ,EAAE,CAAC;gCACb,OAAO;4BACT,CAAC;4BAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACjC,aAAa,CAAC,QAAQ,CAAC,CAAC;4BAC1B,CAAC;wBACH,CAAC,EACD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,mBACzC,QAAQ,IAAI,mBAAmB,KAAK,UAAU,sBAC3C,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACnD,iBAAiB,EAAC,MAAM,eACd,qBAAqB,GAC/B,IACI,EAEP,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,kBAAkB,IAAC,EAAE,EAAE,UAAU,YAChC,KAAC,wBAAwB,cAAE,QAAQ,GAA4B,GAC5C,CACtB,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -22,6 +22,7 @@ import { ClearButtonAdornment } from '../ItemParts/ClearButtonAdornment';
22
22
  import ExpressionUpdateFadingIcon from '../ItemParts/ExpressionUpdateFadingIcon';
23
23
  import ItemRepopulateButton from '../ItemParts/ItemRepopulateButton';
24
24
  import { StandardTextField } from '../Textfield.styles';
25
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
25
26
  function StringField(props) {
26
27
  const { qItem, input, feedback, renderingExtensions, readOnly, isTabled, calcExpUpdated, onInputChange, onRepopulateSync } = props;
27
28
  const { displayPrompt, displayUnit, entryFormat, isRepopulatable } = renderingExtensions;
@@ -34,7 +35,7 @@ function StringField(props) {
34
35
  onInputChange('');
35
36
  } }), _jsx(ItemRepopulateButton, { qItem: qItem, repopulatable: isRepopulatable, onRepopulate: onRepopulateSync }), _jsx(DisplayUnitText, { readOnly: readOnly, children: displayUnit })] }))
36
37
  }
37
- }, helperText: feedback, "data-test": "q-item-string-field" }));
38
+ }, helperText: _jsx(AccessibleFeedback, { children: feedback }), "data-test": "q-item-string-field" }));
38
39
  }
39
40
  export default StringField;
40
41
  //# sourceMappingURL=StringField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/StringItem/StringField.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,0BAA0B,MAAM,yCAAyC,CAAC;AACjF,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAaxD,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,mBAAmB,CAAC;IAEzF,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,OAAO,CACL,KAAC,iBAAiB,IAChB,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,EACnC,SAAS,QACT,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,WAAW,EAAE,WAAW,IAAI,aAAa,EACzC,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;gBACxD,YAAY,EAAE,CACZ,MAAC,cAAc,IAAC,QAAQ,EAAC,KAAK,aAC5B,KAAC,0BAA0B,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAC1E,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE;gCACZ,aAAa,CAAC,EAAE,CAAC,CAAC;4BACpB,CAAC,GACD,EACF,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,eAAe,EAC9B,YAAY,EAAE,gBAAgB,GAC9B,EACF,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACrD,CAClB;aACF;SACF,EACD,UAAU,EAAE,QAAQ,eACV,qBAAqB,GAC/B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/StringItem/StringField.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,0BAA0B,MAAM,yCAAyC,CAAC;AACjF,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAajE,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,mBAAmB,CAAC;IAEzF,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,OAAO,CACL,KAAC,iBAAiB,IAChB,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,EACnC,SAAS,QACT,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,WAAW,EAAE,WAAW,IAAI,aAAa,EACzC,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;gBACxD,YAAY,EAAE,CACZ,MAAC,cAAc,IAAC,QAAQ,EAAC,KAAK,aAC5B,KAAC,0BAA0B,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAC1E,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE;gCACZ,aAAa,CAAC,EAAE,CAAC,CAAC;4BACpB,CAAC,GACD,EACF,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,eAAe,EAC9B,YAAY,EAAE,gBAAgB,GAC9B,EACF,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACrD,CAClB;aACF;SACF,EACD,UAAU,EAAE,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,eACrD,qBAAqB,GAC/B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -21,6 +21,7 @@ import DisplayUnitText from '../ItemParts/DisplayUnitText';
21
21
  import { useRendererConfigStore } from '../../../stores';
22
22
  import ExpressionUpdateFadingIcon from '../ItemParts/ExpressionUpdateFadingIcon';
23
23
  import ItemRepopulateButton from '../ItemParts/ItemRepopulateButton';
24
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
24
25
  function TextField(props) {
25
26
  const { qItem, input, feedback, renderingExtensions, readOnly, calcExpUpdated, onInputChange, onRepopulateSync } = props;
26
27
  const { displayPrompt, displayUnit, entryFormat, isRepopulatable } = renderingExtensions;
@@ -30,7 +31,7 @@ function TextField(props) {
30
31
  readOnly: readOnly && readOnlyVisualStyle === 'readonly',
31
32
  endAdornment: (_jsxs(InputAdornment, { position: "end", children: [_jsx(ExpressionUpdateFadingIcon, { fadeIn: calcExpUpdated, disabled: readOnly }), _jsx(ItemRepopulateButton, { qItem: qItem, repopulatable: isRepopulatable, onRepopulate: onRepopulateSync }), _jsx(DisplayUnitText, { readOnly: readOnly, children: displayUnit })] }))
32
33
  }
33
- }, helperText: feedback, "data-test": "q-item-text-field" }));
34
+ }, helperText: _jsx(AccessibleFeedback, { children: feedback }), "data-test": "q-item-text-field" }));
34
35
  }
35
36
  export default TextField;
36
37
  //# sourceMappingURL=TextField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/TextItem/TextField.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,0BAA0B,MAAM,yCAAyC,CAAC;AAGjF,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AAarE,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,mBAAmB,CAAC;IAEzF,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAE7E,OAAO,CACL,KAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,EACnC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,WAAW,EAAE,WAAW,IAAI,aAAa,EACzC,SAAS,QACT,SAAS,QACT,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,CAAC,EACV,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;gBACxD,YAAY,EAAE,CACZ,MAAC,cAAc,IAAC,QAAQ,EAAC,KAAK,aAC5B,KAAC,0BAA0B,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAC1E,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,eAAe,EAC9B,YAAY,EAAE,gBAAgB,GAC9B,EACF,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACrD,CAClB;aACF;SACF,EACD,UAAU,EAAE,QAAQ,eACV,mBAAmB,GAC7B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/TextItem/TextField.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,0BAA0B,MAAM,yCAAyC,CAAC;AAGjF,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AACrE,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAajE,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,mBAAmB,CAAC;IAEzF,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAE7E,OAAO,CACL,KAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,EACnC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,WAAW,EAAE,WAAW,IAAI,aAAa,EACzC,SAAS,QACT,SAAS,QACT,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,CAAC,EACV,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;gBACxD,YAAY,EAAE,CACZ,MAAC,cAAc,IAAC,QAAQ,EAAC,KAAK,aAC5B,KAAC,0BAA0B,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI,EAC1E,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,eAAe,EAC9B,YAAY,EAAE,gBAAgB,GAC9B,EACF,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACrD,CAClB;aACF;SACF,EACD,UAAU,EAAE,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,eACrD,mBAAmB,GAC7B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
@@ -4,6 +4,7 @@ import { StandardTextField } from '../Textfield.styles';
4
4
  import { useRendererConfigStore } from '../../../stores';
5
5
  import DisplayUnitText from '../ItemParts/DisplayUnitText';
6
6
  import { ClearButtonAdornment } from '../ItemParts/ClearButtonAdornment';
7
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
7
8
  function UrlField(props) {
8
9
  const { linkId, itemType, input, feedback, displayPrompt, displayUnit, entryFormat, readOnly, isTabled, onInputChange } = props;
9
10
  const readOnlyVisualStyle = useRendererConfigStore.use.readOnlyVisualStyle();
@@ -15,7 +16,7 @@ function UrlField(props) {
15
16
  onInputChange('');
16
17
  } }), _jsx(DisplayUnitText, { readOnly: readOnly, children: displayUnit })] }))
17
18
  }
18
- }, helperText: feedback, "data-test": "q-item-url-field" }));
19
+ }, helperText: _jsx(AccessibleFeedback, { children: feedback }), "data-test": "q-item-url-field" }));
19
20
  }
20
21
  export default UrlField;
21
22
  //# sourceMappingURL=UrlField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UrlField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/UrlItem/UrlField.tsx"],"names":[],"mappings":";AAmBA,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAczE,SAAS,QAAQ,CAAC,KAAoB;IACpC,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,OAAO,CACL,KAAC,iBAAiB,IAChB,EAAE,EAAE,QAAQ,GAAG,GAAG,GAAG,MAAM,EAC3B,SAAS,QACT,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,WAAW,EAAE,WAAW,IAAI,aAAa,EACzC,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;gBACxD,YAAY,EAAE,CACZ,MAAC,cAAc,IAAC,QAAQ,EAAC,KAAK,aAC5B,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE;gCACZ,aAAa,CAAC,EAAE,CAAC,CAAC;4BACpB,CAAC,GACD,EACF,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACrD,CAClB;aACF;SACF,EACD,UAAU,EAAE,QAAQ,eACV,kBAAkB,GAC5B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"UrlField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/UrlItem/UrlField.tsx"],"names":[],"mappings":";AAmBA,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAcjE,SAAS,QAAQ,CAAC,KAAoB;IACpC,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAEnE,OAAO,CACL,KAAC,iBAAiB,IAChB,EAAE,EAAE,QAAQ,GAAG,GAAG,GAAG,MAAM,EAC3B,SAAS,QACT,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,WAAW,EAAE,WAAW,IAAI,aAAa,EACzC,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU,EACxD,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,KAAK,UAAU;gBACxD,YAAY,EAAE,CACZ,MAAC,cAAc,IAAC,QAAQ,EAAC,KAAK,aAC5B,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE;gCACZ,aAAa,CAAC,EAAE,CAAC,CAAC;4BACpB,CAAC,GACD,EACF,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,YAAG,WAAW,GAAmB,IACrD,CAClB;aACF;SACF,EACD,UAAU,EAAE,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,eACrD,kBAAkB,GAC5B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -24,10 +24,15 @@ import { useQuestionnaireStore, useRendererConfigStore } from '../../stores';
24
24
  import ContextDisplayItem from '../FormComponents/ItemParts/ContextDisplayItem';
25
25
  import { useFocusTabHeading } from '../../hooks/useFocusTabHeading';
26
26
  import useDisplayCqfAndCalculatedExpression from '../../hooks/useDisplayCqfAndCalculatedExpression';
27
+ import RequiredAsterisk from '../FormComponents/ItemParts/RequiredAsterisk';
28
+ import useRenderingExtensions from '../../hooks/useRenderingExtensions';
27
29
  const FormBodySingleTab = memo(function FormBodySingleTab(props) {
28
30
  const { qItem, contextDisplayItems, selected, tabLabel, listIndex } = props;
29
31
  const switchTab = useQuestionnaireStore.use.switchTab();
30
32
  const disableHeadingFocusOnTabSwitch = useRendererConfigStore.use.disableHeadingFocusOnTabSwitch();
33
+ const requiredIndicatorPosition = useRendererConfigStore.use.requiredIndicatorPosition();
34
+ const { required } = useRenderingExtensions(qItem);
35
+ const readOnly = qItem.readOnly ?? false;
31
36
  const focusHeading = useFocusTabHeading();
32
37
  // Get aria-label text if available
33
38
  const itemTextAriaLabel = useDisplayCqfAndCalculatedExpression(qItem, 'item._text.aria-label') ?? undefined;
@@ -41,7 +46,7 @@ const FormBodySingleTab = memo(function FormBodySingleTab(props) {
41
46
  }, 100); // Small delay to ensure panel is rendered
42
47
  }
43
48
  }
44
- return (_jsx(_Fragment, { children: _jsx(ListItemButton, { selected: selected, sx: { my: 0.1, minHeight: '36px' }, onClick: handleTabClick, children: _jsx(ListItemText, { primary: _jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", children: [_jsx(Typography, { id: `tab-${listIndex}`, component: "span", fontWeight: 600, fontSize: "0.8125rem", "aria-label": itemTextAriaLabel, children: tabLabel }), _jsx(Box, { display: "flex", minHeight: 24, minWidth: 24, ml: 1, children: contextDisplayItems.map((item) => {
49
+ return (_jsx(_Fragment, { children: _jsx(ListItemButton, { selected: selected, sx: { my: 0.1, minHeight: '36px' }, onClick: handleTabClick, children: _jsx(ListItemText, { primary: _jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", children: [_jsxs(Box, { display: "flex", gap: 0.25, children: [required && requiredIndicatorPosition === 'start' ? (_jsx(RequiredAsterisk, { children: "*" })) : null, _jsx(Typography, { id: `tab-${listIndex}`, component: "span", fontWeight: 600, fontSize: "0.8125rem", "aria-label": itemTextAriaLabel, children: tabLabel }), required && requiredIndicatorPosition === 'end' ? (_jsx(RequiredAsterisk, { readOnly: readOnly, variant: "groupHeading", children: "*" })) : null] }), _jsx(Box, { display: "flex", minHeight: 24, minWidth: 24, ml: 1, children: contextDisplayItems.map((item) => {
45
50
  return _jsx(ContextDisplayItem, { displayItem: item }, item.linkId);
46
51
  }) })] }) }) }) }));
47
52
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FormBodySingleTab.js","sourceRoot":"","sources":["../../../src/components/Tabs/FormBodySingleTab.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,oCAAoC,MAAM,kDAAkD,CAAC;AAUpG,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC,KAA6B;IACrF,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5E,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IACxD,MAAM,8BAA8B,GAClC,sBAAsB,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;IAE9D,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,mCAAmC;IACnC,MAAM,iBAAiB,GACrB,oCAAoC,CAAC,KAAK,EAAE,uBAAuB,CAAC,IAAI,SAAS,CAAC;IAEpF,SAAS,cAAc;QACrB,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtB,+DAA+D;QAC/D,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACpC,UAAU,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,0CAA0C;QACrD,CAAC;IACH,CAAC;IAED,OAAO,CACL,4BACE,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAClC,OAAO,EAAE,cAAc,YACvB,KAAC,YAAY,IACX,OAAO,EACL,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,aACpE,KAAC,UAAU,IACT,EAAE,EAAE,OAAO,SAAS,EAAE,EACtB,SAAS,EAAC,MAAM,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,EAAC,WAAW,gBACR,iBAAiB,YAC5B,QAAQ,GACE,EACb,KAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,YACnD,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gCAChC,OAAO,KAAC,kBAAkB,IAAmB,WAAW,EAAE,IAAI,IAA9B,IAAI,CAAC,MAAM,CAAuB,CAAC;4BACrE,CAAC,CAAC,GACE,IACF,GAER,GACa,GAChB,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"FormBodySingleTab.js","sourceRoot":"","sources":["../../../src/components/Tabs/FormBodySingleTab.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,oCAAoC,MAAM,kDAAkD,CAAC;AACpG,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAC5E,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AAUxE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC,KAA6B;IACrF,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5E,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IACxD,MAAM,8BAA8B,GAClC,sBAAsB,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;IAC9D,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;IAEzF,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;IAEzC,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,mCAAmC;IACnC,MAAM,iBAAiB,GACrB,oCAAoC,CAAC,KAAK,EAAE,uBAAuB,CAAC,IAAI,SAAS,CAAC;IAEpF,SAAS,cAAc;QACrB,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtB,+DAA+D;QAC/D,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACpC,UAAU,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,0CAA0C;QACrD,CAAC;IACH,CAAC;IAED,OAAO,CACL,4BACE,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAClC,OAAO,EAAE,cAAc,YACvB,KAAC,YAAY,IACX,OAAO,EACL,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,aACpE,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,GAAG,EAAE,IAAI,aAE1B,QAAQ,IAAI,yBAAyB,KAAK,OAAO,CAAC,CAAC,CAAC,CACnD,KAAC,gBAAgB,oBAAqB,CACvC,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,UAAU,IACT,EAAE,EAAE,OAAO,SAAS,EAAE,EACtB,SAAS,EAAC,MAAM,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,EAAC,WAAW,gBACR,iBAAiB,YAC5B,QAAQ,GACE,EAGZ,QAAQ,IAAI,yBAAyB,KAAK,KAAK,CAAC,CAAC,CAAC,CACjD,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAC,cAAc,kBAEzC,CACpB,CAAC,CAAC,CAAC,IAAI,IACJ,EAEN,KAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,YACnD,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gCAChC,OAAO,KAAC,kBAAkB,IAAmB,WAAW,EAAE,IAAI,IAA9B,IAAI,CAAC,MAAM,CAAuB,CAAC;4BACrE,CAAC,CAAC,GACE,IACF,GAER,GACa,GAChB,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "1.2.7",
3
+ "version": "1.2.9",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -39,7 +39,7 @@
39
39
  "@mui/lab": "^7.0.0-beta.13",
40
40
  "@mui/material": "^7.1.1",
41
41
  "@mui/x-date-pickers": "^7.28.3",
42
- "@tanstack/react-query": "^5.90.2",
42
+ "@tanstack/react-query": "^5.90.5",
43
43
  "dayjs": "^1.11.18",
44
44
  "deep-diff": "^1.0.2",
45
45
  "fast-equals": "^5.2.2",
@@ -66,14 +66,14 @@
66
66
  "react-dom": "^18.0.0 || ^19.0.0"
67
67
  },
68
68
  "devDependencies": {
69
- "@babel/core": "^7.27.4",
69
+ "@babel/core": "^7.28.5",
70
70
  "@chromatic-com/storybook": "^4.1.1",
71
71
  "@storybook/addon-docs": "^9.1.13",
72
72
  "@storybook/addon-links": "^9.1.13",
73
73
  "@storybook/addon-onboarding": "^9.1.13",
74
74
  "@storybook/addon-themes": "^9.1.13",
75
75
  "@storybook/react-vite": "^9.1.13",
76
- "@storybook/test-runner": "^0.23.0",
76
+ "@storybook/test-runner": "^0.24.0",
77
77
  "@testing-library/jest-dom": "^6.9.1",
78
78
  "@testing-library/react": "^16.3.0",
79
79
  "@types/deep-diff": "^1.0.5",
@@ -25,9 +25,10 @@ import Stack from '@mui/material/Stack';
25
25
  import type { AttachmentValues } from './AttachmentItem';
26
26
  import AttachmentUrlField from './AttachmentUrlField';
27
27
  import { useRendererConfigStore } from '../../../stores';
28
- import { StyledRequiredTypography } from '../Item.styles';
28
+ import { StyledFeedbackTypography } from '../Item.styles';
29
29
  import InputAdornment from '@mui/material/InputAdornment';
30
30
  import { ClearButtonAdornment } from '../ItemParts/ClearButtonAdornment';
31
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
31
32
 
32
33
  interface AttachmentFieldProps extends PropsWithIsTabledAttribute {
33
34
  linkId: string;
@@ -132,7 +133,11 @@ function AttachmentField(props: AttachmentFieldProps) {
132
133
  ) : null}
133
134
  </Stack>
134
135
 
135
- {feedback ? <StyledRequiredTypography>{feedback}</StyledRequiredTypography> : null}
136
+ {feedback ? (
137
+ <AccessibleFeedback>
138
+ <StyledFeedbackTypography>{feedback}</StyledFeedbackTypography>
139
+ </AccessibleFeedback>
140
+ ) : null}
136
141
  </>
137
142
  );
138
143
  }
@@ -15,13 +15,13 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import { memo } from 'react';
18
+ import React, { memo } from 'react';
19
19
  import Box from '@mui/material/Box';
20
20
  import RadioGroup from '@mui/material/RadioGroup';
21
21
  import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
22
22
  import type { QuestionnaireItem } from 'fhir/r4';
23
23
  import ChoiceRadioSingle from '../ChoiceItems/ChoiceRadioSingle';
24
- import { StyledRequiredTypography } from '../Item.styles';
24
+ import { StyledFeedbackTypography } from '../Item.styles';
25
25
  import { getChoiceOrientation } from '../../../utils/choice';
26
26
  import ExpressionUpdateFadingIcon from '../ItemParts/ExpressionUpdateFadingIcon';
27
27
  import FormControlLabel from '@mui/material/FormControlLabel';
@@ -31,6 +31,7 @@ import { useRendererConfigStore } from '../../../stores';
31
31
  import { StandardCheckbox } from '../../Checkbox.styles';
32
32
  import { ariaCheckedMap } from '../../../utils/checkbox';
33
33
  import { SrOnly } from '../SrOnly.styles';
34
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
34
35
 
35
36
  interface BooleanFieldProps {
36
37
  qItem: QuestionnaireItem;
@@ -59,6 +60,8 @@ const BooleanField = memo(function BooleanField(props: BooleanFieldProps) {
59
60
 
60
61
  const ariaCheckedValue = ariaCheckedMap.get(selection ?? 'false');
61
62
 
63
+ const feedbackId = `${qItem.type}-${qItem.linkId}-feedback`;
64
+
62
65
  return (
63
66
  <>
64
67
  <Box
@@ -78,6 +81,7 @@ const BooleanField = memo(function BooleanField(props: BooleanFieldProps) {
78
81
  checked={selection === 'true'}
79
82
  readOnly={readOnly && readOnlyVisualStyle === 'readonly'}
80
83
  aria-readonly={readOnly && readOnlyVisualStyle === 'readonly'}
84
+ aria-describedby={feedback ? feedbackId : undefined}
81
85
  role="checkbox"
82
86
  aria-checked={ariaCheckedValue}
83
87
  onChange={() => {
@@ -109,6 +113,7 @@ const BooleanField = memo(function BooleanField(props: BooleanFieldProps) {
109
113
  row={orientation === ChoiceItemOrientation.Horizontal}
110
114
  sx={inputsFlexGrow ? { width: '100%', flexWrap: 'nowrap' } : {}}
111
115
  aria-readonly={readOnly && readOnlyVisualStyle === 'readonly'}
116
+ aria-describedby={feedback ? feedbackId : undefined}
112
117
  onChange={(e) => {
113
118
  // If item.readOnly=true, do not allow any changes
114
119
  if (readOnly) {
@@ -168,7 +173,11 @@ const BooleanField = memo(function BooleanField(props: BooleanFieldProps) {
168
173
  />
169
174
  </Box>
170
175
 
171
- {feedback ? <StyledRequiredTypography>{feedback}</StyledRequiredTypography> : null}
176
+ {feedback ? (
177
+ <AccessibleFeedback id={feedbackId}>
178
+ <StyledFeedbackTypography>{feedback}</StyledFeedbackTypography>
179
+ </AccessibleFeedback>
180
+ ) : null}
172
181
  </>
173
182
  );
174
183
  });
@@ -24,10 +24,10 @@ import type {
24
24
  import { useRendererConfigStore } from '../../../stores';
25
25
  import { compareAnswerOptionValue, isOptionDisabled } from '../../../utils/choice';
26
26
  import { getAnswerOptionLabel } from '../../../utils/openChoice';
27
- import { StyledRequiredTypography } from '../Item.styles';
28
27
  import DisplayUnitText from '../ItemParts/DisplayUnitText';
29
28
  import ExpressionUpdateFadingIcon from '../ItemParts/ExpressionUpdateFadingIcon';
30
29
  import { StandardTextField } from '../Textfield.styles';
30
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
31
31
 
32
32
  interface ChoiceSelectAnswerOptionFieldsProps
33
33
  extends PropsWithIsTabledAttribute,
@@ -82,6 +82,7 @@ function ChoiceSelectAnswerOptionFields(props: ChoiceSelectAnswerOptionFieldsPro
82
82
  textFieldWidth={textFieldWidth}
83
83
  isTabled={isTabled}
84
84
  placeholder={entryFormat || displayPrompt}
85
+ helperText={<AccessibleFeedback>{feedback}</AccessibleFeedback>}
85
86
  {...params}
86
87
  slotProps={{
87
88
  input: {
@@ -99,8 +100,6 @@ function ChoiceSelectAnswerOptionFields(props: ChoiceSelectAnswerOptionFieldsPro
99
100
  />
100
101
  )}
101
102
  />
102
-
103
- {feedback ? <StyledRequiredTypography>{feedback}</StyledRequiredTypography> : null}
104
103
  </>
105
104
  );
106
105
  }
@@ -28,9 +28,10 @@ import { useRendererConfigStore } from '../../../stores';
28
28
  import { isCodingDisabled } from '../../../utils/choice';
29
29
  import ExpressionUpdateFadingIcon from '../ItemParts/ExpressionUpdateFadingIcon';
30
30
  import { StyledAlert } from '../../Alert.styles';
31
- import { StyledRequiredTypography } from '../Item.styles';
32
31
  import DisplayUnitText from '../ItemParts/DisplayUnitText';
33
32
  import { StandardTextField } from '../Textfield.styles';
33
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
34
+ import React from 'react';
34
35
 
35
36
  interface ChoiceSelectAnswerValueSetFieldsProps
36
37
  extends PropsWithIsTabledAttribute,
@@ -89,6 +90,7 @@ function ChoiceSelectAnswerValueSetFields(props: ChoiceSelectAnswerValueSetField
89
90
  textFieldWidth={textFieldWidth}
90
91
  isTabled={isTabled}
91
92
  placeholder={entryFormat || displayPrompt}
93
+ helperText={<AccessibleFeedback>{feedback}</AccessibleFeedback>}
92
94
  {...params}
93
95
  slotProps={{
94
96
  input: {
@@ -113,8 +115,6 @@ function ChoiceSelectAnswerValueSetFields(props: ChoiceSelectAnswerValueSetField
113
115
  />
114
116
  )}
115
117
  />
116
-
117
- {feedback ? <StyledRequiredTypography>{feedback}</StyledRequiredTypography> : null}
118
118
  </>
119
119
  );
120
120
  }
@@ -24,6 +24,7 @@ import { StandardTextField } from '../../Textfield.styles';
24
24
  import DatePicker from './DatePicker';
25
25
  import { useRendererConfigStore } from '../../../../stores';
26
26
  import ExpressionUpdateFadingIcon from '../../ItemParts/ExpressionUpdateFadingIcon';
27
+ import AccessibleFeedback from '../../ItemParts/AccessibleFeedback';
27
28
 
28
29
  interface CustomDateFieldProps extends PropsWithIsTabledAttribute {
29
30
  linkId: string;
@@ -119,7 +120,7 @@ function CustomDateField(props: CustomDateFieldProps) {
119
120
  }
120
121
  }
121
122
  }}
122
- helperText={feedback}
123
+ helperText={<AccessibleFeedback>{feedback}</AccessibleFeedback>}
123
124
  />
124
125
  );
125
126
  }
@@ -25,6 +25,7 @@ import type { PropsWithIsTabledAttribute } from '../../../../interfaces/renderPr
25
25
  import { useRendererConfigStore } from '../../../../stores';
26
26
  import FormControl from '@mui/material/FormControl';
27
27
  import MuiTextField from '../../TextItem/MuiTextField';
28
+ import AccessibleFeedback from '../../ItemParts/AccessibleFeedback';
28
29
 
29
30
  interface CustomTimeFieldProps extends PropsWithIsTabledAttribute {
30
31
  linkId: string;
@@ -113,9 +114,11 @@ function CustomTimeField(props: CustomTimeFieldProps) {
113
114
  </Select>
114
115
  </FormControl>
115
116
  </Box>
116
- <Typography component="span" variant="caption" color="error" sx={{ ml: 1.75, mt: -0.5 }}>
117
- {feedback}
118
- </Typography>
117
+ <AccessibleFeedback>
118
+ <Typography component="span" variant="caption" color="error" sx={{ ml: 1.75, mt: -0.5 }}>
119
+ {feedback}
120
+ </Typography>
121
+ </AccessibleFeedback>
119
122
  </>
120
123
  );
121
124
  }
@@ -25,6 +25,7 @@ import ItemRepopulateButton from '../ItemParts/ItemRepopulateButton';
25
25
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
26
  import type { RenderingExtensions } from '../../../hooks/useRenderingExtensions';
27
27
  import { StandardTextField } from '../Textfield.styles';
28
+ import AccessibleFeedback from '../ItemParts/AccessibleFeedback';
28
29
 
29
30
  interface DecimalFieldProps extends PropsWithIsTabledAttribute {
30
31
  qItem: QuestionnaireItem;
@@ -74,7 +75,7 @@ function DecimalField(props: DecimalFieldProps) {
74
75
  id={inputId}
75
76
  value={input}
76
77
  error={!!feedback}
77
- helperText={feedback}
78
+ helperText={<AccessibleFeedback>{feedback}</AccessibleFeedback>}
78
79
  onChange={(event) => onInputChange(event.target.value)}
79
80
  disabled={readOnly && readOnlyVisualStyle === 'disabled'}
80
81
  placeholder={placeholderText}