ece-docs-components 1.0.101 → 1.0.102

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteSelect.js","sources":["../../../../src/components/AutocompleteSelect.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Autocomplete as MuiAutocomplete,\n FormHelperText,\n styled,\n} from \"@mui/material\";\nimport { ExpandMoreRounded } from \"@mui/icons-material\";\nimport { useTheme } from \"../ThemeProvider\"; // Adjust pathway according to project layout\nimport { Input, StyledLabel } from \"./Input\";\n\ninterface AutocompleteOption {\n value: string;\n label: string;\n}\n\ninterface AutocompleteSelectProps {\n id?: string;\n label?: string;\n error?: string;\n helperText?: string;\n placeholder?: string;\n fullWidth?: boolean;\n disabled?: boolean;\n options: AutocompleteOption[];\n value: AutocompleteOption | null;\n onChange: (value: AutocompleteOption | null) => void;\n className?: string;\n sx?: any;\n}\n\nconst AutocompleteWrapper = styled(\"div\")({\n width: \"100%\",\n});\n\nexport function AutocompleteSelect({\n id,\n label,\n error,\n helperText,\n placeholder,\n fullWidth = false,\n disabled = false,\n options,\n value,\n onChange,\n className = \"\",\n sx,\n}: AutocompleteSelectProps): React.JSX.Element {\n const theme = useTheme();\n const selectId =\n id || `auto-select-${Math.random().toString(36).substr(2, 9)}`;\n\n return (\n <AutocompleteWrapper\n className={className}\n sx={[\n { ...(!fullWidth && { width: \"auto\" }) },\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n >\n {label && (\n <StyledLabel htmlFor={selectId} shrink={false}>\n {label}\n </StyledLabel>\n )}\n\n <MuiAutocomplete\n id={selectId}\n options={options}\n value={value}\n disabled={disabled}\n disablePortal\n getOptionLabel={(option: { label: string; value: string }) =>\n option?.label || \"\"\n }\n isOptionEqualToValue={(\n option: AutocompleteOption,\n val: AutocompleteOption,\n ) => option?.value === val?.value}\n onChange={(_event: Event, newValue: AutocompleteOption) =>\n onChange(newValue)\n }\n popupIcon={\n <ExpandMoreRounded sx={{ color: `${theme.palette.dark.main}66` }} />\n }\n slotProps={{\n paper: {\n sx: {\n borderRadius: 2,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n maxHeight: \"min(22rem, calc(100vh - 6rem))\",\n overflow: \"hidden\",\n backgroundColor: theme.palette.light.main,\n mt: 0.5,\n },\n },\n }}\n sx={{\n \"& .MuiOutlinedInput-root\": {\n padding: \"0 9px !important\",\n height: 48,\n display: \"flex\",\n alignItems: \"center\",\n },\n \"& .MuiAutocomplete-input\": {\n padding: \"0 !important\",\n },\n \"& + .MuiAutocomplete-popper .MuiAutocomplete-option\": {\n fontSize: \"1rem\",\n color: theme.palette.dark.main,\n '&[aria-selected=\"true\"]': {\n backgroundColor: \"transparent\",\n },\n '&[aria-selected=\"true\"].Mui-focused, &:hover, &.Mui-focused': {\n backgroundColor: `${theme.palette.primary.main}1A !important`,\n },\n },\n }}\n renderInput={(params: any) => {\n // 1. Separate structural configurations from direct props\n const { InputProps, inputProps, ...restParams } = params;\n\n return (\n <Input\n {...restParams}\n // 2. Safely spread native input elements\n inputProps={inputProps}\n // 3. Bind MUI's dynamic layout objects (adornments, ref) into the slot configuration\n InputProps={{\n ...InputProps,\n }}\n error={error}\n placeholder={placeholder}\n fullWidth\n // Explicitly empty string avoids passing a raw error object down to helperText slots\n helperText=\"\"\n />\n );\n }}\n />\n\n {error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: \"0.875rem\",\n color: theme.palette.error.main,\n }}\n >\n {error}\n </FormHelperText>\n )}\n\n {helperText && !error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: \"0.875rem\",\n color: `${theme.palette.dark.main}99`,\n }}\n >\n {helperText}\n </FormHelperText>\n )}\n </AutocompleteWrapper>\n );\n}\n"],"names":["styled","useTheme","_jsxs","_jsx","StyledLabel","MuiAutocomplete","ExpandMoreRounded","Input","FormHelperText"],"mappings":"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"}
1
+ {"version":3,"file":"AutocompleteSelect.js","sources":["../../../../src/components/AutocompleteSelect.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Autocomplete as MuiAutocomplete,\n FormHelperText,\n styled,\n} from \"@mui/material\";\nimport { ExpandMoreRounded } from \"@mui/icons-material\";\nimport { useTheme } from \"../ThemeProvider\"; // Adjust pathway according to project layout\nimport { Input, StyledLabel } from \"./Input\";\n\ninterface AutocompleteOption {\n value: string;\n label: string;\n}\n\ninterface AutocompleteSelectProps {\n id?: string;\n label?: string;\n error?: string;\n helperText?: string;\n placeholder?: string;\n fullWidth?: boolean;\n disabled?: boolean;\n options: AutocompleteOption[];\n value: AutocompleteOption | null;\n onChange: (value: AutocompleteOption | null) => void;\n className?: string;\n sx?: any;\n}\n\nconst AutocompleteWrapper = styled(\"div\")({\n width: \"100%\",\n});\n\nexport function AutocompleteSelect({\n id,\n label,\n error,\n helperText,\n placeholder,\n fullWidth = false,\n disabled = false,\n options,\n value,\n onChange,\n className = \"\",\n sx,\n}: AutocompleteSelectProps): React.JSX.Element {\n const theme = useTheme();\n const selectId =\n id || `auto-select-${Math.random().toString(36).substr(2, 9)}`;\n\n return (\n <AutocompleteWrapper\n className={className}\n sx={[\n { ...(!fullWidth && { width: \"auto\" }) },\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n >\n {label && (\n <StyledLabel htmlFor={selectId} shrink={false}>\n {label}\n </StyledLabel>\n )}\n\n <MuiAutocomplete\n id={selectId}\n options={options}\n value={value}\n disabled={disabled}\n disablePortal\n getOptionLabel={(option: { label: string; value: string }) =>\n option?.label || \"\"\n }\n isOptionEqualToValue={(\n option: AutocompleteOption,\n val: AutocompleteOption,\n ) => option?.value === val?.value}\n onChange={(_event, newValue) => onChange(newValue)}\n popupIcon={\n <ExpandMoreRounded sx={{ color: `${theme.palette.dark.main}66` }} />\n }\n slotProps={{\n paper: {\n sx: {\n borderRadius: 2,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n maxHeight: \"min(22rem, calc(100vh - 6rem))\",\n overflow: \"hidden\",\n backgroundColor: theme.palette.light.main,\n mt: 0.5,\n },\n },\n }}\n sx={{\n \"& .MuiOutlinedInput-root\": {\n padding: \"0 9px !important\",\n height: 48,\n display: \"flex\",\n alignItems: \"center\",\n },\n \"& .MuiAutocomplete-input\": {\n padding: \"0 !important\",\n },\n \"& + .MuiAutocomplete-popper .MuiAutocomplete-option\": {\n fontSize: \"1rem\",\n color: theme.palette.dark.main,\n '&[aria-selected=\"true\"]': {\n backgroundColor: \"transparent\",\n },\n '&[aria-selected=\"true\"].Mui-focused, &:hover, &.Mui-focused': {\n backgroundColor: `${theme.palette.primary.main}1A !important`,\n },\n },\n }}\n renderInput={(params: any) => {\n // 1. Separate structural configurations from direct props\n const { InputProps, inputProps, ...restParams } = params;\n\n return (\n <Input\n {...restParams}\n // 2. Safely spread native input elements\n inputProps={inputProps}\n // 3. Bind MUI's dynamic layout objects (adornments, ref) into the slot configuration\n InputProps={{\n ...InputProps,\n }}\n error={error}\n placeholder={placeholder}\n fullWidth\n // Explicitly empty string avoids passing a raw error object down to helperText slots\n helperText=\"\"\n />\n );\n }}\n />\n\n {error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: \"0.875rem\",\n color: theme.palette.error.main,\n }}\n >\n {error}\n </FormHelperText>\n )}\n\n {helperText && !error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: \"0.875rem\",\n color: `${theme.palette.dark.main}99`,\n }}\n >\n {helperText}\n </FormHelperText>\n )}\n </AutocompleteWrapper>\n );\n}\n"],"names":["styled","useTheme","_jsxs","_jsx","StyledLabel","MuiAutocomplete","ExpandMoreRounded","Input","FormHelperText"],"mappings":"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"}
@@ -12,45 +12,45 @@ var variable = require('../types/variable.js');
12
12
  var variableProcessing = require('../helpers/variableProcessing.js');
13
13
 
14
14
  const StyledDialog = material.styled(material.Dialog)(({ theme }) => ({
15
- '& .MuiDialog-paper': {
15
+ "& .MuiDialog-paper": {
16
16
  color: theme.palette.background.default,
17
17
  borderRadius: theme.shape.borderRadius,
18
- maxWidth: '896px',
19
- width: '100%',
20
- maxHeight: '90vh',
18
+ maxWidth: "896px",
19
+ width: "100%",
20
+ maxHeight: "90vh",
21
21
  },
22
22
  }));
23
23
  const NavButton = material.styled(material.IconButton)(({ theme }) => ({
24
- width: '40px',
25
- height: '40px',
24
+ width: "40px",
25
+ height: "40px",
26
26
  borderRadius: 999,
27
27
  border: `2px solid ${theme.palette.dark.main}`,
28
- backgroundColor: '#fff',
28
+ backgroundColor: "#fff",
29
29
  padding: theme.spacing(1, 2),
30
- '&:hover': {
30
+ "&:hover": {
31
31
  backgroundColor: theme.palette.grey[100], // Changed from dark.main to grey[100]
32
32
  color: theme.palette.dark.main, // Keep text dark instead of light
33
33
  borderColor: theme.palette.dark.main, // Keep border dark
34
34
  },
35
35
  }));
36
- const Modal = ({ isOpen, onClose, variableId, status, requirementType, description, value, defaultValue, note, onSave, onSubmit, successMessage, errorMessage, onDeclineWording, onPrevious, onNext, currentPage = 1, totalPages = 1, isLoading }) => {
36
+ const Modal = ({ isOpen, onClose, variableId, status, requirementType, description, value, defaultValue, note, onSave, onSubmit, successMessage, errorMessage, onDeclineWording, onPrevious, onNext, currentPage = 1, totalPages = 1, isLoading, useDefault, }) => {
37
37
  const variableState = variableProcessing.mapStatusToVariableState(status);
38
38
  const variableReqType = variableProcessing.mapRequirementTypeToState(requirementType);
39
39
  const [textValue, setTextValue] = React.useState(value);
40
- const [customValue, setCustomValue] = React.useState('');
40
+ const [customValue, setCustomValue] = React.useState("");
41
41
  const [useDefaultValue, setUseDefaultValue] = React.useState(true);
42
42
  const [isSaving, setIsSaving] = React.useState(false);
43
43
  const [isSubmitting, setIsSubmitting] = React.useState(false);
44
44
  const theme = material.useTheme();
45
- const toDisplay = (str) => str?.replace(/\\n/g, '\n') ?? '';
46
- const toStorage = (str) => str?.replace(/\r?\n/g, '\\n') ?? '';
45
+ const toDisplay = (str) => str?.replace(/\\n/g, "\n") ?? "";
46
+ const toStorage = (str) => str?.replace(/\r?\n/g, "\\n") ?? "";
47
47
  React.useEffect(() => {
48
48
  const displayValue = toDisplay(value);
49
49
  const displayDefault = toDisplay(defaultValue);
50
- const isUsingDefault = displayValue === displayDefault;
50
+ const isUsingDefault = useDefault || displayValue === displayDefault;
51
51
  setUseDefaultValue(isUsingDefault);
52
52
  setTextValue(displayValue);
53
- setCustomValue(isUsingDefault ? '' : displayValue);
53
+ setCustomValue(isUsingDefault ? "" : displayValue);
54
54
  }, [variableId, value, defaultValue]);
55
55
  React.useEffect(() => {
56
56
  if (!isOpen) {
@@ -59,12 +59,12 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
59
59
  }
60
60
  }, [isOpen]);
61
61
  React.useEffect(() => {
62
- if (successMessage && successMessage !== '') {
62
+ if (successMessage && successMessage !== "") {
63
63
  reactToastify.toast.success(successMessage);
64
64
  }
65
65
  }, [successMessage]);
66
66
  React.useEffect(() => {
67
- if (errorMessage && errorMessage !== '') {
67
+ if (errorMessage && errorMessage !== "") {
68
68
  reactToastify.toast.error(errorMessage);
69
69
  }
70
70
  }, [errorMessage]);
@@ -81,35 +81,42 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
81
81
  setTextValue(toDisplay(defaultValue));
82
82
  }
83
83
  else {
84
- setTextValue(customValue || toDisplay(value));
84
+ setTextValue("");
85
85
  }
86
86
  setUseDefaultValue(checked);
87
87
  };
88
88
  const canSubmitSave = isLoading || variableState === variable.VariableState.Pending;
89
89
  const statusConfig = {
90
- [variable.VariableState.Pending]: { color: '#EBC7FF', label: 'Pending' },
91
- [variable.VariableState.Draft]: { color: '#4D3019', label: 'Draft' },
92
- [variable.VariableState.Declined]: { color: '#4D3019', label: 'Declined' },
93
- [variable.VariableState.ActionRequired]: { color: '#FFBCB3', label: 'Action Required' },
94
- [variable.VariableState.Accepted]: { color: '#DBF59A', label: 'Accepted' },
95
- [variable.VariableState.NotStarted]: { color: '#000000ff', label: 'Not Started' },
90
+ [variable.VariableState.Pending]: { color: "#EBC7FF", label: "Pending" },
91
+ [variable.VariableState.Draft]: { color: "#4D3019", label: "Draft" },
92
+ [variable.VariableState.Declined]: { color: "#4D3019", label: "Declined" },
93
+ [variable.VariableState.ActionRequired]: {
94
+ color: "#FFBCB3",
95
+ label: "Action Required",
96
+ },
97
+ [variable.VariableState.Accepted]: { color: "#DBF59A", label: "Accepted" },
98
+ [variable.VariableState.NotStarted]: { color: "#000000ff", label: "Not Started" },
96
99
  };
97
100
  const reqTypeConfig = {
98
- "Default": {
99
- color: '#F5A623',
100
- highlight: '#f3bf6bff',
101
- highlightSelected: '#F5A623',
102
- label: 'Mandatory',
101
+ Default: {
102
+ color: "#F5A623",
103
+ highlight: "#f3bf6bff",
104
+ highlightSelected: "#F5A623",
105
+ label: "Mandatory",
103
106
  },
104
- "Optional": {
105
- color: '#F5D76E',
106
- highlight: '#f3e2a5ff',
107
- highlightSelected: '#F5D76E',
108
- label: 'Optional',
107
+ Optional: {
108
+ color: "#F5D76E",
109
+ highlight: "#f3e2a5ff",
110
+ highlightSelected: "#F5D76E",
111
+ label: "Optional",
109
112
  },
110
113
  };
111
- const statusStyle = variableState ? statusConfig[variableState] : { color: '#ccc', label: 'Unknown' };
112
- const requirementTypeStyle = variableReqType ? reqTypeConfig[variableReqType] : { color: '#ccc', label: 'Unknown' };
114
+ const statusStyle = variableState
115
+ ? statusConfig[variableState]
116
+ : { color: "#ccc", label: "Unknown" };
117
+ const requirementTypeStyle = variableReqType
118
+ ? reqTypeConfig[variableReqType]
119
+ : { color: "#ccc", label: "Unknown" };
113
120
  const handleSave = () => {
114
121
  setIsSaving(true);
115
122
  const payloadValue = toStorage(textValue);
@@ -121,77 +128,76 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
121
128
  onSubmit?.(payloadValue, useDefaultValue);
122
129
  };
123
130
  return (jsxRuntime.jsxs(StyledDialog, { open: isOpen, onClose: onClose, maxWidth: "md", fullWidth: true, children: [jsxRuntime.jsx(material.IconButton, { onClick: onClose, disabled: isLoading, sx: {
124
- position: 'absolute',
131
+ position: "absolute",
125
132
  top: 16,
126
133
  right: 16,
127
134
  zIndex: 1,
128
135
  }, children: jsxRuntime.jsx(iconsMaterial.CloseRounded, { sx: { fontSize: 24 } }) }), jsxRuntime.jsxs(material.DialogContent, { sx: { p: { xs: 3, sm: 4, md: 6 } }, children: [jsxRuntime.jsxs(material.Box, { sx: { mb: 3 }, children: [jsxRuntime.jsx(material.Chip, { label: requirementTypeStyle.label.toUpperCase(), sx: {
129
136
  mr: 3,
130
- border: '3px solid',
137
+ border: "3px solid",
131
138
  backgroundColor: requirementTypeStyle.color,
132
139
  borderColor: requirementTypeStyle.color,
133
140
  color: theme.palette.text.primary,
134
141
  fontWeight: 600,
135
- fontSize: '0.875rem',
136
- height: 'auto',
142
+ fontSize: "0.875rem",
143
+ height: "auto",
137
144
  py: 1,
138
145
  borderRadius: 0,
139
146
  px: 2,
140
- } }), variableState !== variable.VariableState.NotStarted &&
141
- jsxRuntime.jsx(material.Chip, { label: statusStyle.label.toUpperCase(), sx: {
142
- mr: 3,
143
- border: '3px solid',
144
- backgroundColor: theme.palette.background.paper,
145
- borderColor: statusStyle.color,
146
- color: theme.palette.text.primary,
147
- fontWeight: 600,
148
- fontSize: '0.875rem',
149
- height: 'auto',
150
- py: 1,
151
- borderRadius: 0,
152
- px: 2,
153
- } })] }), jsxRuntime.jsx(material.Typography, { sx: { mb: 3, lineHeight: 1.6, whiteSpace: 'pre-line' }, children: index.default(description) }), variableState === variable.VariableState.ActionRequired && note && (jsxRuntime.jsx(Alert.Alert, { variant: "error", icon: jsxRuntime.jsx(iconsMaterial.InfoOutlineRounded, { sx: { fontSize: 20 } }), sx: {
154
- mb: 2
147
+ } }), variableState !== variable.VariableState.NotStarted && (jsxRuntime.jsx(material.Chip, { label: statusStyle.label.toUpperCase(), sx: {
148
+ mr: 3,
149
+ border: "3px solid",
150
+ backgroundColor: theme.palette.background.paper,
151
+ borderColor: statusStyle.color,
152
+ color: theme.palette.text.primary,
153
+ fontWeight: 600,
154
+ fontSize: "0.875rem",
155
+ height: "auto",
156
+ py: 1,
157
+ borderRadius: 0,
158
+ px: 2,
159
+ } }))] }), jsxRuntime.jsx(material.Typography, { sx: { mb: 3, lineHeight: 1.6, whiteSpace: "pre-line" }, children: index.default(description) }), variableState === variable.VariableState.ActionRequired && note && (jsxRuntime.jsx(Alert.Alert, { variant: "error", icon: jsxRuntime.jsx(iconsMaterial.InfoOutlineRounded, { sx: { fontSize: 20 } }), sx: {
160
+ mb: 2,
155
161
  }, children: note })), variableState !== variable.VariableState.ActionRequired && note && (jsxRuntime.jsx(Alert.Alert, { variant: "info", icon: jsxRuntime.jsx(iconsMaterial.ArticleRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }), sx: {
156
162
  mb: 2,
157
- backgroundColor: '#00000000',
158
- borderColor: '#acacacff',
163
+ backgroundColor: "#00000000",
164
+ borderColor: "#acacacff",
159
165
  color: theme.palette.text.primary,
160
166
  }, children: note })), jsxRuntime.jsx(material.TextField, { multiline: true, rows: 6, fullWidth: true, value: textValue, onChange: (e) => setTextValue(e.target.value), disabled: useDefaultValue ||
161
167
  canSubmitSave ||
162
168
  variableState === variable.VariableState.Declined, sx: {
163
169
  mb: 2,
164
- '& .MuiOutlinedInput-root': {
165
- backgroundColor: useDefaultValue || canSubmitSave ? 'rgba(0, 0, 0, 0.05)' : '#fff',
170
+ "& .MuiOutlinedInput-root": {
171
+ backgroundColor: useDefaultValue || canSubmitSave
172
+ ? "rgba(0, 0, 0, 0.05)"
173
+ : "#fff",
166
174
  borderRadius: 2,
167
175
  },
168
176
  } }), jsxRuntime.jsx(material.FormControlLabel, { control: jsxRuntime.jsx(material.Checkbox, { checked: useDefaultValue, disabled: canSubmitSave || variableState === variable.VariableState.Declined, onChange: handleUseDefaultValueChange, sx: {
169
177
  color: theme.palette.primary.main,
170
- '&.Mui-checked': {
178
+ "&.Mui-checked": {
171
179
  color: theme.palette.primary.main,
172
180
  },
173
181
  } }), label: "Use Default Wording", sx: { mb: 3 } }), jsxRuntime.jsxs(material.Box, { sx: {
174
- display: 'flex',
175
- flexDirection: { xs: 'column', sm: 'row' },
176
- alignItems: { xs: 'stretch', sm: 'center' },
177
- justifyContent: 'space-between',
182
+ display: "flex",
183
+ flexDirection: { xs: "column", sm: "row" },
184
+ alignItems: { xs: "stretch", sm: "center" },
185
+ justifyContent: "space-between",
178
186
  gap: 2,
179
187
  pt: 3,
180
- borderTop: '1px solid',
181
- borderColor: 'divider',
182
- }, children: [variableState !== variable.VariableState.Declined ? (jsxRuntime.jsxs(material.Box, { sx: { display: 'flex', gap: 1.5, flexWrap: 'wrap' }, children: [useDefaultValue === false ?
183
- (jsxRuntime.jsx(Button.Button, { onClick: handleSave, variant: "outline", size: "md", disabled: canSubmitSave, children: isSaving ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Saving..." })] }) : "Save" })) : (jsxRuntime.jsx(jsxRuntime.Fragment, {})), jsxRuntime.jsx(Button.Button, { onClick: handleSubmit, variant: "outline", size: "md", disabled: canSubmitSave, sx: {
184
- backgroundColor: theme.palette.primary.main + '52',
185
- '&:hover': {
186
- backgroundColor: theme.palette.primary.main + '80',
188
+ borderTop: "1px solid",
189
+ borderColor: "divider",
190
+ }, children: [variableState !== variable.VariableState.Declined ? (jsxRuntime.jsxs(material.Box, { sx: { display: "flex", gap: 1.5, flexWrap: "wrap" }, children: [useDefaultValue === false ? (jsxRuntime.jsx(Button.Button, { onClick: handleSave, variant: "outline", size: "md", disabled: canSubmitSave, children: isSaving ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Saving..." })] })) : ("Save") })) : (jsxRuntime.jsx(jsxRuntime.Fragment, {})), jsxRuntime.jsx(Button.Button, { onClick: handleSubmit, variant: "outline", size: "md", disabled: canSubmitSave || (useDefaultValue && useDefault), sx: {
191
+ backgroundColor: theme.palette.primary.main + "52",
192
+ "&:hover": {
193
+ backgroundColor: theme.palette.primary.main + "80",
194
+ },
195
+ }, children: isSubmitting ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Submitting..." })] })) : useDefaultValue && useDefault ? ("Default already Accepted") : useDefaultValue === false ? ("Submit for review") : ("Submit") }), variableReqType === variable.RequirementType.Optional && (jsxRuntime.jsx(Button.Button, { onClick: onDeclineWording, variant: "outline", size: "md", sx: {
196
+ backgroundColor: "#ff464652",
197
+ "&:hover": {
198
+ backgroundColor: "#ff464680", // Darker purple on hover
187
199
  },
188
- }, children: isSubmitting ? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Submitting..." })] }) : useDefaultValue === false ? "Submit for review" : "Submit" }), variableReqType === variable.RequirementType.Optional &&
189
- (jsxRuntime.jsx(Button.Button, { onClick: onDeclineWording, variant: "outline", size: "md", sx: {
190
- backgroundColor: '#ff464652',
191
- '&:hover': {
192
- backgroundColor: '#ff464680', // Darker purple on hover
193
- }
194
- }, disabled: canSubmitSave, children: "Decline wording" }))] })) : (jsxRuntime.jsx(material.Box, { sx: { display: 'flex', gap: 1.5, flexWrap: 'wrap' }, children: jsxRuntime.jsx(Button.Button, { onClick: () => {
200
+ }, disabled: canSubmitSave, children: "Decline wording" }))] })) : (jsxRuntime.jsx(material.Box, { sx: { display: "flex", gap: 1.5, flexWrap: "wrap" }, children: jsxRuntime.jsx(Button.Button, { onClick: () => {
195
201
  setIsSubmitting(true);
196
202
  // Pass the default value and true directly to onSubmit
197
203
  const payloadValue = toStorage(toDisplay(defaultValue));
@@ -200,16 +206,16 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
200
206
  setUseDefaultValue(true);
201
207
  onSubmit?.(payloadValue, true);
202
208
  }, variant: "outline", size: "md", disabled: canSubmitSave, sx: {
203
- backgroundColor: '#ff464652',
204
- '&:hover': {
205
- backgroundColor: '#ff464680',
206
- }
209
+ backgroundColor: "#ff464652",
210
+ "&:hover": {
211
+ backgroundColor: "#ff464680",
212
+ },
207
213
  }, children: isSubmitting ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.CircularProgress, { size: 20 }), jsxRuntime.jsx(material.Typography, { sx: { paddingLeft: 2 }, children: "Restoring..." })] })) : ("Restore wording") }) })), jsxRuntime.jsxs(material.Box, { sx: {
208
- display: 'flex',
209
- alignItems: 'center',
214
+ display: "flex",
215
+ alignItems: "center",
210
216
  gap: 1.5,
211
- justifyContent: { xs: 'space-between', sm: 'flex-end' },
212
- }, children: [currentPage !== 1 && jsxRuntime.jsx(NavButton, { onClick: onPrevious, "aria-label": "Previous", disabled: isLoading, children: jsxRuntime.jsx(iconsMaterial.ArrowBackIosRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }) }), currentPage !== totalPages && jsxRuntime.jsx(NavButton, { onClick: onNext, "aria-label": "Next", disabled: isLoading, children: jsxRuntime.jsx(iconsMaterial.ArrowForwardIosRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }) }), jsxRuntime.jsxs(material.Typography, { fontWeight: 500, fontSize: "1.125rem", children: [currentPage, "/", totalPages] })] })] })] })] }));
217
+ justifyContent: { xs: "space-between", sm: "flex-end" },
218
+ }, children: [currentPage !== 1 && (jsxRuntime.jsx(NavButton, { onClick: onPrevious, "aria-label": "Previous", disabled: isLoading, children: jsxRuntime.jsx(iconsMaterial.ArrowBackIosRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }) })), currentPage !== totalPages && (jsxRuntime.jsx(NavButton, { onClick: onNext, "aria-label": "Next", disabled: isLoading, children: jsxRuntime.jsx(iconsMaterial.ArrowForwardIosRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }) })), jsxRuntime.jsxs(material.Typography, { fontWeight: 500, fontSize: "1.125rem", children: [currentPage, "/", totalPages] })] })] })] })] }));
213
219
  };
214
220
 
215
221
  exports.Modal = Modal;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal.tsx"],"sourcesContent":["import React, { use, useEffect, useState } from 'react';\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n IconButton,\r\n Box,\r\n Typography,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n Alert as MuiAlert,\r\n Chip,\r\n styled,\r\n CircularProgress,\r\n useTheme,\r\n} from '@mui/material';\r\nimport { Button } from './Button';\r\nimport { ArrowBackIosRounded, ArrowForwardIosRounded, ArticleRounded, CloseRounded, ErrorOutlineRounded, InfoOutlineRounded, StickyNote2Rounded } from '@mui/icons-material';\r\nimport { Alert } from './Alert';\r\nimport { toast } from 'react-toastify';\r\nimport parse from 'html-react-parser';\r\nimport { VariableState, RequirementType } from '../types/variable';\r\nimport { mapRequirementTypeToState, mapStatusToVariableState } from '../helpers/variableProcessing';\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n variableId: string;\r\n status: string;\r\n requirementType: string,\r\n description: string;\r\n value: string;\r\n defaultValue: string;\r\n note?: string;\r\n onSave?: (fieldValue: string, defaultChecked: boolean) => void;\r\n onSubmit?: (fieldValue: string, defaultChecked: boolean) => void;\r\n successMessage?: string;\r\n errorMessage?: string;\r\n onDeclineWording?: () => void;\r\n onPrevious?: () => void;\r\n onNext?: () => void;\r\n currentPage?: number;\r\n totalPages?: number;\r\n isLoading: boolean;\r\n}\r\n\r\n\r\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\r\n '& .MuiDialog-paper': {\r\n color: theme.palette.background.default,\r\n borderRadius: theme.shape.borderRadius,\r\n maxWidth: '896px',\r\n width: '100%',\r\n maxHeight: '90vh',\r\n },\r\n}));\r\n\r\n\r\nconst NavButton = styled(IconButton)(({ theme }) => ({\r\n width: '40px',\r\n height: '40px',\r\n borderRadius: 999,\r\n border: `2px solid ${theme.palette.dark.main}`,\r\n backgroundColor: '#fff',\r\n padding: theme.spacing(1, 2),\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[100], // Changed from dark.main to grey[100]\r\n color: theme.palette.dark.main, // Keep text dark instead of light\r\n borderColor: theme.palette.dark.main, // Keep border dark\r\n },\r\n}));\r\n\r\n\r\nexport const Modal: React.FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n variableId,\r\n status,\r\n requirementType,\r\n description,\r\n value,\r\n defaultValue,\r\n note,\r\n onSave,\r\n onSubmit,\r\n successMessage,\r\n errorMessage,\r\n onDeclineWording,\r\n onPrevious,\r\n onNext,\r\n currentPage = 1,\r\n totalPages = 1,\r\n isLoading\r\n}) => {\r\n const variableState = mapStatusToVariableState(status);\r\n const variableReqType = mapRequirementTypeToState(requirementType)\r\n\r\n const [textValue, setTextValue] = useState(value);\r\n const [customValue, setCustomValue] = useState('');\r\n\r\n const [useDefaultValue, setUseDefaultValue] = useState(true);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const theme = useTheme()\r\n\r\n const toDisplay = (str: string) => str?.replace(/\\\\n/g, '\\n') ?? '';\r\n const toStorage = (str: string) => str?.replace(/\\r?\\n/g, '\\\\n') ?? '';\r\n\r\n useEffect(() => {\r\n const displayValue = toDisplay(value);\r\n const displayDefault = toDisplay(defaultValue);\r\n\r\n const isUsingDefault = displayValue === displayDefault;\r\n \r\n setUseDefaultValue(isUsingDefault);\r\n setTextValue(displayValue);\r\n setCustomValue(isUsingDefault ? '' : displayValue);\r\n }, [variableId, value, defaultValue]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (successMessage && successMessage !== '') {\r\n toast.success(successMessage);\r\n }\r\n }, [successMessage]);\r\n \r\n useEffect(() => {\r\n if (errorMessage && errorMessage !== '') {\r\n toast.error(errorMessage);\r\n }\r\n }, [errorMessage]);\r\n \r\n useEffect(() => {\r\n if (!isLoading) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isLoading]);\r\n\r\n const handleUseDefaultValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = event.target.checked;\r\n\r\n if (checked) {\r\n setCustomValue(textValue);\r\n setTextValue(toDisplay(defaultValue));\r\n } else {\r\n setTextValue(customValue || toDisplay(value));\r\n }\r\n\r\n setUseDefaultValue(checked);\r\n };\r\n\r\n\r\n const canSubmitSave = isLoading || variableState === VariableState.Pending\r\n\r\n const statusConfig = {\r\n [VariableState.Pending]: { color: '#EBC7FF', label: 'Pending' },\r\n [VariableState.Draft]: { color: '#4D3019', label: 'Draft' },\r\n [VariableState.Declined]: { color: '#4D3019', label: 'Declined' },\r\n [VariableState.ActionRequired]: { color: '#FFBCB3', label: 'Action Required' },\r\n [VariableState.Accepted]: { color: '#DBF59A', label: 'Accepted' },\r\n [VariableState.NotStarted]: { color: '#000000ff', label: 'Not Started' },\r\n };\r\n\r\n const reqTypeConfig = {\r\n \"Default\": {\r\n color: '#F5A623',\r\n highlight: '#f3bf6bff',\r\n highlightSelected: '#F5A623',\r\n label: 'Mandatory',\r\n },\r\n \"Optional\": {\r\n color: '#F5D76E',\r\n highlight: '#f3e2a5ff',\r\n highlightSelected: '#F5D76E',\r\n label: 'Optional',\r\n },\r\n };\r\n\r\n\r\n const statusStyle = variableState ? statusConfig[variableState] : { color: '#ccc', label: 'Unknown' };;\r\n const requirementTypeStyle = variableReqType ? reqTypeConfig[variableReqType] : { color: '#ccc', label: 'Unknown' };;\r\n\r\n\r\n const handleSave = () => {\r\n setIsSaving(true);\r\n const payloadValue = toStorage(textValue);\r\n onSave?.(payloadValue, useDefaultValue);\r\n };\r\n\r\n\r\n const handleSubmit = () => {\r\n setIsSubmitting(true);\r\n const payloadValue = toStorage(textValue);\r\n onSubmit?.(payloadValue, useDefaultValue);\r\n };\r\n\r\n\r\n return (\r\n <StyledDialog open={isOpen} onClose={onClose} maxWidth=\"md\" fullWidth>\r\n <IconButton\r\n onClick={onClose}\r\n disabled={isLoading}\r\n sx={{\r\n position: 'absolute',\r\n top: 16,\r\n right: 16,\r\n zIndex: 1,\r\n }}\r\n >\r\n <CloseRounded sx={{ fontSize: 24 }} />\r\n </IconButton>\r\n\r\n\r\n <DialogContent sx={{ p: { xs: 3, sm: 4, md: 6 } }}>\r\n {/* Status Chip */}\r\n <Box sx={{ mb: 3}}>\r\n <Chip\r\n label={requirementTypeStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n border: '3px solid',\r\n backgroundColor: requirementTypeStyle.color,\r\n borderColor: requirementTypeStyle.color,\r\n color: theme.palette.text.primary,\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n height: 'auto',\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n {variableState !== VariableState.NotStarted &&\r\n <Chip\r\n label={statusStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n border: '3px solid',\r\n backgroundColor: theme.palette.background.paper,\r\n borderColor: statusStyle.color,\r\n color: theme.palette.text.primary,\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n height: 'auto',\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n }\r\n </Box>\r\n\r\n\r\n {/* Description */}\r\n <Typography sx={{ mb: 3, lineHeight: 1.6, whiteSpace: 'pre-line' }}>\r\n {parse(description)}\r\n </Typography>\r\n\r\n\r\n {/* Error Alert with Custom Icon */}\r\n {variableState === VariableState.ActionRequired && note && (\r\n <Alert\r\n variant=\"error\"\r\n icon={<InfoOutlineRounded sx={{ fontSize: 20 }} />}\r\n sx={{\r\n mb: 2\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n {/* Info Alert with Custom Background and Icon */}\r\n {variableState !== VariableState.ActionRequired && note && (\r\n <Alert\r\n variant=\"info\"\r\n icon={<ArticleRounded sx={{ fontSize: 20, color: theme.palette.text.primary }} />}\r\n sx={{\r\n mb: 2,\r\n backgroundColor: '#00000000',\r\n borderColor: '#acacacff',\r\n color: theme.palette.text.primary,\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n\r\n {/* Text Field */}\r\n <TextField\r\n multiline\r\n rows={6}\r\n fullWidth\r\n value={textValue}\r\n onChange={(e) => setTextValue(e.target.value)}\r\n disabled={\r\n useDefaultValue || \r\n canSubmitSave || \r\n variableState === VariableState.Declined\r\n }\r\n sx={{\r\n mb: 2,\r\n '& .MuiOutlinedInput-root': {\r\n backgroundColor: useDefaultValue || canSubmitSave ? 'rgba(0, 0, 0, 0.05)' : '#fff',\r\n borderRadius: 2,\r\n },\r\n }}\r\n />\r\n\r\n\r\n {/* Checkbox */}\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n checked={useDefaultValue}\r\n disabled={canSubmitSave || variableState === VariableState.Declined}\r\n onChange={handleUseDefaultValueChange}\r\n sx={{\r\n color: theme.palette.primary.main,\r\n '&.Mui-checked': {\r\n color: theme.palette.primary.main,\r\n },\r\n }}\r\n />\r\n }\r\n label=\"Use Default Wording\"\r\n sx={{ mb: 3 }}\r\n />\r\n\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n flexDirection: { xs: 'column', sm: 'row' },\r\n alignItems: { xs: 'stretch', sm: 'center' },\r\n justifyContent: 'space-between',\r\n gap: 2,\r\n pt: 3,\r\n borderTop: '1px solid',\r\n borderColor: 'divider',\r\n }}\r\n >\r\n {variableState !== VariableState.Declined ? (\r\n <Box sx={{ display: 'flex', gap: 1.5, flexWrap: 'wrap' }}>\r\n {useDefaultValue === false? \r\n (\r\n <Button\r\n onClick={handleSave}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n >\r\n {isSaving ? <><CircularProgress size={20} /><Typography sx={{paddingLeft: 2}}>Saving...</Typography></> : \"Save\"}\r\n </Button>\r\n ) : (<></>)\r\n }\r\n <Button\r\n onClick={handleSubmit}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n sx={{\r\n backgroundColor: theme.palette.primary.main + '52',\r\n '&:hover': {\r\n backgroundColor: theme.palette.primary.main + '80',\r\n },\r\n }}\r\n >\r\n {isSubmitting ? <><CircularProgress size={20} /><Typography sx={{paddingLeft: 2}}>Submitting...</Typography></> : useDefaultValue === false ? \"Submit for review\" : \"Submit\"}\r\n </Button>\r\n {variableReqType === RequirementType.Optional &&\r\n (\r\n <Button onClick={onDeclineWording} variant=\"outline\" size=\"md\" sx={{\r\n backgroundColor: '#ff464652',\r\n '&:hover': {\r\n backgroundColor: '#ff464680', // Darker purple on hover\r\n }\r\n }}\r\n disabled={canSubmitSave}\r\n >\r\n Decline wording\r\n </Button>\r\n )}\r\n </Box>\r\n ) : (\r\n <Box sx={{ display: 'flex', gap: 1.5, flexWrap: 'wrap' }}>\r\n <Button\r\n onClick={() => {\r\n setIsSubmitting(true);\r\n // Pass the default value and true directly to onSubmit\r\n const payloadValue = toStorage(toDisplay(defaultValue));\r\n setCustomValue(textValue);\r\n setTextValue(toDisplay(defaultValue));\r\n setUseDefaultValue(true);\r\n onSubmit?.(payloadValue, true);\r\n }}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n sx={{\r\n backgroundColor: '#ff464652',\r\n '&:hover': {\r\n backgroundColor: '#ff464680',\r\n }\r\n }}\r\n >\r\n {isSubmitting ? (\r\n <>\r\n <CircularProgress size={20} />\r\n <Typography sx={{paddingLeft: 2}}>Restoring...</Typography>\r\n </>\r\n ) : (\r\n \"Restore wording\"\r\n )}\r\n </Button>\r\n </Box>\r\n )}\r\n {/* Navigation */}\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 1.5,\r\n justifyContent: { xs: 'space-between', sm: 'flex-end' },\r\n }}\r\n >\r\n {currentPage !== 1 && <NavButton onClick={onPrevious} aria-label=\"Previous\" disabled={isLoading}>\r\n <ArrowBackIosRounded sx={{ fontSize: 20, color: theme.palette.text.primary }}/>\r\n </NavButton>}\r\n {currentPage !== totalPages && <NavButton onClick={onNext} aria-label=\"Next\" disabled={isLoading}>\r\n <ArrowForwardIosRounded sx={{ fontSize: 20, color: theme.palette.text.primary }}/>\r\n </NavButton>}\r\n <Typography fontWeight={500} fontSize=\"1.125rem\">\r\n {currentPage}/{totalPages}\r\n </Typography>\r\n </Box>\r\n </Box>\r\n </DialogContent>\r\n </StyledDialog>\r\n );\r\n};\r\n"],"names":["styled","Dialog","IconButton","mapStatusToVariableState","mapRequirementTypeToState","useState","useTheme","useEffect","toast","VariableState","_jsxs","_jsx","CloseRounded","DialogContent","Box","Chip","Typography","parse","Alert","InfoOutlineRounded","ArticleRounded","TextField","FormControlLabel","Checkbox","Button","_Fragment","CircularProgress","RequirementType","ArrowBackIosRounded","ArrowForwardIosRounded"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal.tsx"],"sourcesContent":["import React, { use, useEffect, useState } from \"react\";\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n IconButton,\r\n Box,\r\n Typography,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n Alert as MuiAlert,\r\n Chip,\r\n styled,\r\n CircularProgress,\r\n useTheme,\r\n} from \"@mui/material\";\r\nimport { Button } from \"./Button\";\r\nimport {\r\n ArrowBackIosRounded,\r\n ArrowForwardIosRounded,\r\n ArticleRounded,\r\n CloseRounded,\r\n ErrorOutlineRounded,\r\n InfoOutlineRounded,\r\n StickyNote2Rounded,\r\n} from \"@mui/icons-material\";\r\nimport { Alert } from \"./Alert\";\r\nimport { toast } from \"react-toastify\";\r\nimport parse from \"html-react-parser\";\r\nimport { VariableState, RequirementType } from \"../types/variable\";\r\nimport {\r\n mapRequirementTypeToState,\r\n mapStatusToVariableState,\r\n} from \"../helpers/variableProcessing\";\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n variableId: string;\r\n status: string;\r\n requirementType: string;\r\n description: string;\r\n value: string;\r\n defaultValue: string;\r\n note?: string;\r\n onSave?: (fieldValue: string, defaultChecked: boolean) => void;\r\n onSubmit?: (fieldValue: string, defaultChecked: boolean) => void;\r\n successMessage?: string;\r\n errorMessage?: string;\r\n onDeclineWording?: () => void;\r\n onPrevious?: () => void;\r\n onNext?: () => void;\r\n currentPage?: number;\r\n totalPages?: number;\r\n isLoading: boolean;\r\n useDefault: boolean;\r\n}\r\n\r\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\r\n \"& .MuiDialog-paper\": {\r\n color: theme.palette.background.default,\r\n borderRadius: theme.shape.borderRadius,\r\n maxWidth: \"896px\",\r\n width: \"100%\",\r\n maxHeight: \"90vh\",\r\n },\r\n}));\r\n\r\nconst NavButton = styled(IconButton)(({ theme }) => ({\r\n width: \"40px\",\r\n height: \"40px\",\r\n borderRadius: 999,\r\n border: `2px solid ${theme.palette.dark.main}`,\r\n backgroundColor: \"#fff\",\r\n padding: theme.spacing(1, 2),\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.grey[100], // Changed from dark.main to grey[100]\r\n color: theme.palette.dark.main, // Keep text dark instead of light\r\n borderColor: theme.palette.dark.main, // Keep border dark\r\n },\r\n}));\r\n\r\nexport const Modal: React.FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n variableId,\r\n status,\r\n requirementType,\r\n description,\r\n value,\r\n defaultValue,\r\n note,\r\n onSave,\r\n onSubmit,\r\n successMessage,\r\n errorMessage,\r\n onDeclineWording,\r\n onPrevious,\r\n onNext,\r\n currentPage = 1,\r\n totalPages = 1,\r\n isLoading,\r\n useDefault,\r\n}) => {\r\n const variableState = mapStatusToVariableState(status);\r\n const variableReqType = mapRequirementTypeToState(requirementType);\r\n\r\n const [textValue, setTextValue] = useState(value);\r\n const [customValue, setCustomValue] = useState(\"\");\r\n\r\n const [useDefaultValue, setUseDefaultValue] = useState(true);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const theme = useTheme();\r\n\r\n const toDisplay = (str: string) => str?.replace(/\\\\n/g, \"\\n\") ?? \"\";\r\n const toStorage = (str: string) => str?.replace(/\\r?\\n/g, \"\\\\n\") ?? \"\";\r\n\r\n useEffect(() => {\r\n const displayValue = toDisplay(value);\r\n const displayDefault = toDisplay(defaultValue);\r\n\r\n const isUsingDefault = useDefault || displayValue === displayDefault;\r\n\r\n setUseDefaultValue(isUsingDefault);\r\n setTextValue(displayValue);\r\n setCustomValue(isUsingDefault ? \"\" : displayValue);\r\n }, [variableId, value, defaultValue]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (successMessage && successMessage !== \"\") {\r\n toast.success(successMessage);\r\n }\r\n }, [successMessage]);\r\n\r\n useEffect(() => {\r\n if (errorMessage && errorMessage !== \"\") {\r\n toast.error(errorMessage);\r\n }\r\n }, [errorMessage]);\r\n\r\n useEffect(() => {\r\n if (!isLoading) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isLoading]);\r\n\r\n const handleUseDefaultValueChange = (\r\n event: React.ChangeEvent<HTMLInputElement>,\r\n ) => {\r\n const checked = event.target.checked;\r\n\r\n if (checked) {\r\n setCustomValue(textValue);\r\n setTextValue(toDisplay(defaultValue));\r\n } else {\r\n setTextValue(\"\");\r\n }\r\n\r\n setUseDefaultValue(checked);\r\n };\r\n\r\n const canSubmitSave = isLoading || variableState === VariableState.Pending;\r\n\r\n const statusConfig = {\r\n [VariableState.Pending]: { color: \"#EBC7FF\", label: \"Pending\" },\r\n [VariableState.Draft]: { color: \"#4D3019\", label: \"Draft\" },\r\n [VariableState.Declined]: { color: \"#4D3019\", label: \"Declined\" },\r\n [VariableState.ActionRequired]: {\r\n color: \"#FFBCB3\",\r\n label: \"Action Required\",\r\n },\r\n [VariableState.Accepted]: { color: \"#DBF59A\", label: \"Accepted\" },\r\n [VariableState.NotStarted]: { color: \"#000000ff\", label: \"Not Started\" },\r\n };\r\n\r\n const reqTypeConfig = {\r\n Default: {\r\n color: \"#F5A623\",\r\n highlight: \"#f3bf6bff\",\r\n highlightSelected: \"#F5A623\",\r\n label: \"Mandatory\",\r\n },\r\n Optional: {\r\n color: \"#F5D76E\",\r\n highlight: \"#f3e2a5ff\",\r\n highlightSelected: \"#F5D76E\",\r\n label: \"Optional\",\r\n },\r\n };\r\n\r\n const statusStyle = variableState\r\n ? statusConfig[variableState]\r\n : { color: \"#ccc\", label: \"Unknown\" };\r\n const requirementTypeStyle = variableReqType\r\n ? reqTypeConfig[variableReqType]\r\n : { color: \"#ccc\", label: \"Unknown\" };\r\n\r\n const handleSave = () => {\r\n setIsSaving(true);\r\n const payloadValue = toStorage(textValue);\r\n onSave?.(payloadValue, useDefaultValue);\r\n };\r\n\r\n const handleSubmit = () => {\r\n setIsSubmitting(true);\r\n const payloadValue = toStorage(textValue);\r\n onSubmit?.(payloadValue, useDefaultValue);\r\n };\r\n\r\n return (\r\n <StyledDialog open={isOpen} onClose={onClose} maxWidth=\"md\" fullWidth>\r\n <IconButton\r\n onClick={onClose}\r\n disabled={isLoading}\r\n sx={{\r\n position: \"absolute\",\r\n top: 16,\r\n right: 16,\r\n zIndex: 1,\r\n }}\r\n >\r\n <CloseRounded sx={{ fontSize: 24 }} />\r\n </IconButton>\r\n\r\n <DialogContent sx={{ p: { xs: 3, sm: 4, md: 6 } }}>\r\n {/* Status Chip */}\r\n <Box sx={{ mb: 3 }}>\r\n <Chip\r\n label={requirementTypeStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n border: \"3px solid\",\r\n backgroundColor: requirementTypeStyle.color,\r\n borderColor: requirementTypeStyle.color,\r\n color: theme.palette.text.primary,\r\n fontWeight: 600,\r\n fontSize: \"0.875rem\",\r\n height: \"auto\",\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n {variableState !== VariableState.NotStarted && (\r\n <Chip\r\n label={statusStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n border: \"3px solid\",\r\n backgroundColor: theme.palette.background.paper,\r\n borderColor: statusStyle.color,\r\n color: theme.palette.text.primary,\r\n fontWeight: 600,\r\n fontSize: \"0.875rem\",\r\n height: \"auto\",\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n )}\r\n </Box>\r\n\r\n {/* Description */}\r\n <Typography sx={{ mb: 3, lineHeight: 1.6, whiteSpace: \"pre-line\" }}>\r\n {parse(description)}\r\n </Typography>\r\n\r\n {/* Error Alert with Custom Icon */}\r\n {variableState === VariableState.ActionRequired && note && (\r\n <Alert\r\n variant=\"error\"\r\n icon={<InfoOutlineRounded sx={{ fontSize: 20 }} />}\r\n sx={{\r\n mb: 2,\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n {/* Info Alert with Custom Background and Icon */}\r\n {variableState !== VariableState.ActionRequired && note && (\r\n <Alert\r\n variant=\"info\"\r\n icon={\r\n <ArticleRounded\r\n sx={{ fontSize: 20, color: theme.palette.text.primary }}\r\n />\r\n }\r\n sx={{\r\n mb: 2,\r\n backgroundColor: \"#00000000\",\r\n borderColor: \"#acacacff\",\r\n color: theme.palette.text.primary,\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n {/* Text Field */}\r\n <TextField\r\n multiline\r\n rows={6}\r\n fullWidth\r\n value={textValue}\r\n onChange={(e) => setTextValue(e.target.value)}\r\n disabled={\r\n useDefaultValue ||\r\n canSubmitSave ||\r\n variableState === VariableState.Declined\r\n }\r\n sx={{\r\n mb: 2,\r\n \"& .MuiOutlinedInput-root\": {\r\n backgroundColor:\r\n useDefaultValue || canSubmitSave\r\n ? \"rgba(0, 0, 0, 0.05)\"\r\n : \"#fff\",\r\n borderRadius: 2,\r\n },\r\n }}\r\n />\r\n\r\n {/* Checkbox */}\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n checked={useDefaultValue}\r\n disabled={\r\n canSubmitSave || variableState === VariableState.Declined\r\n }\r\n onChange={handleUseDefaultValueChange}\r\n sx={{\r\n color: theme.palette.primary.main,\r\n \"&.Mui-checked\": {\r\n color: theme.palette.primary.main,\r\n },\r\n }}\r\n />\r\n }\r\n label=\"Use Default Wording\"\r\n sx={{ mb: 3 }}\r\n />\r\n\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n alignItems: { xs: \"stretch\", sm: \"center\" },\r\n justifyContent: \"space-between\",\r\n gap: 2,\r\n pt: 3,\r\n borderTop: \"1px solid\",\r\n borderColor: \"divider\",\r\n }}\r\n >\r\n {variableState !== VariableState.Declined ? (\r\n <Box sx={{ display: \"flex\", gap: 1.5, flexWrap: \"wrap\" }}>\r\n {useDefaultValue === false ? (\r\n <Button\r\n onClick={handleSave}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n >\r\n {isSaving ? (\r\n <>\r\n <CircularProgress size={20} />\r\n <Typography sx={{ paddingLeft: 2 }}>Saving...</Typography>\r\n </>\r\n ) : (\r\n \"Save\"\r\n )}\r\n </Button>\r\n ) : (\r\n <></>\r\n )}\r\n <Button\r\n onClick={handleSubmit}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave || (useDefaultValue && useDefault)}\r\n sx={{\r\n backgroundColor: theme.palette.primary.main + \"52\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.primary.main + \"80\",\r\n },\r\n }}\r\n >\r\n {isSubmitting ? (\r\n <>\r\n <CircularProgress size={20} />\r\n <Typography sx={{ paddingLeft: 2 }}>\r\n Submitting...\r\n </Typography>\r\n </>\r\n ) : useDefaultValue && useDefault ? (\r\n \"Default already Accepted\"\r\n ) : useDefaultValue === false ? (\r\n \"Submit for review\"\r\n ) : (\r\n \"Submit\"\r\n )}\r\n </Button>\r\n {variableReqType === RequirementType.Optional && (\r\n <Button\r\n onClick={onDeclineWording}\r\n variant=\"outline\"\r\n size=\"md\"\r\n sx={{\r\n backgroundColor: \"#ff464652\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ff464680\", // Darker purple on hover\r\n },\r\n }}\r\n disabled={canSubmitSave}\r\n >\r\n Decline wording\r\n </Button>\r\n )}\r\n </Box>\r\n ) : (\r\n <Box sx={{ display: \"flex\", gap: 1.5, flexWrap: \"wrap\" }}>\r\n <Button\r\n onClick={() => {\r\n setIsSubmitting(true);\r\n // Pass the default value and true directly to onSubmit\r\n const payloadValue = toStorage(toDisplay(defaultValue));\r\n setCustomValue(textValue);\r\n setTextValue(toDisplay(defaultValue));\r\n setUseDefaultValue(true);\r\n onSubmit?.(payloadValue, true);\r\n }}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n sx={{\r\n backgroundColor: \"#ff464652\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ff464680\",\r\n },\r\n }}\r\n >\r\n {isSubmitting ? (\r\n <>\r\n <CircularProgress size={20} />\r\n <Typography sx={{ paddingLeft: 2 }}>\r\n Restoring...\r\n </Typography>\r\n </>\r\n ) : (\r\n \"Restore wording\"\r\n )}\r\n </Button>\r\n </Box>\r\n )}\r\n {/* Navigation */}\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 1.5,\r\n justifyContent: { xs: \"space-between\", sm: \"flex-end\" },\r\n }}\r\n >\r\n {currentPage !== 1 && (\r\n <NavButton\r\n onClick={onPrevious}\r\n aria-label=\"Previous\"\r\n disabled={isLoading}\r\n >\r\n <ArrowBackIosRounded\r\n sx={{ fontSize: 20, color: theme.palette.text.primary }}\r\n />\r\n </NavButton>\r\n )}\r\n {currentPage !== totalPages && (\r\n <NavButton\r\n onClick={onNext}\r\n aria-label=\"Next\"\r\n disabled={isLoading}\r\n >\r\n <ArrowForwardIosRounded\r\n sx={{ fontSize: 20, color: theme.palette.text.primary }}\r\n />\r\n </NavButton>\r\n )}\r\n <Typography fontWeight={500} fontSize=\"1.125rem\">\r\n {currentPage}/{totalPages}\r\n </Typography>\r\n </Box>\r\n </Box>\r\n </DialogContent>\r\n </StyledDialog>\r\n );\r\n};\r\n"],"names":["styled","Dialog","IconButton","mapStatusToVariableState","mapRequirementTypeToState","useState","useTheme","useEffect","toast","VariableState","_jsxs","_jsx","CloseRounded","DialogContent","Box","Chip","Typography","parse","Alert","InfoOutlineRounded","ArticleRounded","TextField","FormControlLabel","Checkbox","Button","_Fragment","CircularProgress","RequirementType","ArrowBackIosRounded","ArrowForwardIosRounded"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('../../../_virtual/index3.js');
3
+ var index = require('../../../_virtual/index4.js');
4
4
  var index$1 = require('../../domelementtype/lib/index.js');
5
5
  var node = require('./node.js');
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('../../../_virtual/index4.js');
3
+ var index = require('../../../_virtual/index3.js');
4
4
  var htmlToDom = require('./server/html-to-dom.js');
5
5
  var types = require('./types.js');
6
6
 
@@ -6,5 +6,5 @@ export declare const ThemeProvider: React.FC<{
6
6
  children: React.ReactNode;
7
7
  theme?: ThemeType;
8
8
  }>;
9
- export declare const useTheme: () => any;
9
+ export declare const useTheme: () => import("@mui/material").Theme;
10
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteSelect.js","sources":["../../../../src/components/AutocompleteSelect.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Autocomplete as MuiAutocomplete,\n FormHelperText,\n styled,\n} from \"@mui/material\";\nimport { ExpandMoreRounded } from \"@mui/icons-material\";\nimport { useTheme } from \"../ThemeProvider\"; // Adjust pathway according to project layout\nimport { Input, StyledLabel } from \"./Input\";\n\ninterface AutocompleteOption {\n value: string;\n label: string;\n}\n\ninterface AutocompleteSelectProps {\n id?: string;\n label?: string;\n error?: string;\n helperText?: string;\n placeholder?: string;\n fullWidth?: boolean;\n disabled?: boolean;\n options: AutocompleteOption[];\n value: AutocompleteOption | null;\n onChange: (value: AutocompleteOption | null) => void;\n className?: string;\n sx?: any;\n}\n\nconst AutocompleteWrapper = styled(\"div\")({\n width: \"100%\",\n});\n\nexport function AutocompleteSelect({\n id,\n label,\n error,\n helperText,\n placeholder,\n fullWidth = false,\n disabled = false,\n options,\n value,\n onChange,\n className = \"\",\n sx,\n}: AutocompleteSelectProps): React.JSX.Element {\n const theme = useTheme();\n const selectId =\n id || `auto-select-${Math.random().toString(36).substr(2, 9)}`;\n\n return (\n <AutocompleteWrapper\n className={className}\n sx={[\n { ...(!fullWidth && { width: \"auto\" }) },\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n >\n {label && (\n <StyledLabel htmlFor={selectId} shrink={false}>\n {label}\n </StyledLabel>\n )}\n\n <MuiAutocomplete\n id={selectId}\n options={options}\n value={value}\n disabled={disabled}\n disablePortal\n getOptionLabel={(option: { label: string; value: string }) =>\n option?.label || \"\"\n }\n isOptionEqualToValue={(\n option: AutocompleteOption,\n val: AutocompleteOption,\n ) => option?.value === val?.value}\n onChange={(_event: Event, newValue: AutocompleteOption) =>\n onChange(newValue)\n }\n popupIcon={\n <ExpandMoreRounded sx={{ color: `${theme.palette.dark.main}66` }} />\n }\n slotProps={{\n paper: {\n sx: {\n borderRadius: 2,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n maxHeight: \"min(22rem, calc(100vh - 6rem))\",\n overflow: \"hidden\",\n backgroundColor: theme.palette.light.main,\n mt: 0.5,\n },\n },\n }}\n sx={{\n \"& .MuiOutlinedInput-root\": {\n padding: \"0 9px !important\",\n height: 48,\n display: \"flex\",\n alignItems: \"center\",\n },\n \"& .MuiAutocomplete-input\": {\n padding: \"0 !important\",\n },\n \"& + .MuiAutocomplete-popper .MuiAutocomplete-option\": {\n fontSize: \"1rem\",\n color: theme.palette.dark.main,\n '&[aria-selected=\"true\"]': {\n backgroundColor: \"transparent\",\n },\n '&[aria-selected=\"true\"].Mui-focused, &:hover, &.Mui-focused': {\n backgroundColor: `${theme.palette.primary.main}1A !important`,\n },\n },\n }}\n renderInput={(params: any) => {\n // 1. Separate structural configurations from direct props\n const { InputProps, inputProps, ...restParams } = params;\n\n return (\n <Input\n {...restParams}\n // 2. Safely spread native input elements\n inputProps={inputProps}\n // 3. Bind MUI's dynamic layout objects (adornments, ref) into the slot configuration\n InputProps={{\n ...InputProps,\n }}\n error={error}\n placeholder={placeholder}\n fullWidth\n // Explicitly empty string avoids passing a raw error object down to helperText slots\n helperText=\"\"\n />\n );\n }}\n />\n\n {error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: \"0.875rem\",\n color: theme.palette.error.main,\n }}\n >\n {error}\n </FormHelperText>\n )}\n\n {helperText && !error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: \"0.875rem\",\n color: `${theme.palette.dark.main}99`,\n }}\n >\n {helperText}\n </FormHelperText>\n )}\n </AutocompleteWrapper>\n );\n}\n"],"names":["_jsxs","_jsx","MuiAutocomplete"],"mappings":"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"}
1
+ {"version":3,"file":"AutocompleteSelect.js","sources":["../../../../src/components/AutocompleteSelect.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Autocomplete as MuiAutocomplete,\n FormHelperText,\n styled,\n} from \"@mui/material\";\nimport { ExpandMoreRounded } from \"@mui/icons-material\";\nimport { useTheme } from \"../ThemeProvider\"; // Adjust pathway according to project layout\nimport { Input, StyledLabel } from \"./Input\";\n\ninterface AutocompleteOption {\n value: string;\n label: string;\n}\n\ninterface AutocompleteSelectProps {\n id?: string;\n label?: string;\n error?: string;\n helperText?: string;\n placeholder?: string;\n fullWidth?: boolean;\n disabled?: boolean;\n options: AutocompleteOption[];\n value: AutocompleteOption | null;\n onChange: (value: AutocompleteOption | null) => void;\n className?: string;\n sx?: any;\n}\n\nconst AutocompleteWrapper = styled(\"div\")({\n width: \"100%\",\n});\n\nexport function AutocompleteSelect({\n id,\n label,\n error,\n helperText,\n placeholder,\n fullWidth = false,\n disabled = false,\n options,\n value,\n onChange,\n className = \"\",\n sx,\n}: AutocompleteSelectProps): React.JSX.Element {\n const theme = useTheme();\n const selectId =\n id || `auto-select-${Math.random().toString(36).substr(2, 9)}`;\n\n return (\n <AutocompleteWrapper\n className={className}\n sx={[\n { ...(!fullWidth && { width: \"auto\" }) },\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n >\n {label && (\n <StyledLabel htmlFor={selectId} shrink={false}>\n {label}\n </StyledLabel>\n )}\n\n <MuiAutocomplete\n id={selectId}\n options={options}\n value={value}\n disabled={disabled}\n disablePortal\n getOptionLabel={(option: { label: string; value: string }) =>\n option?.label || \"\"\n }\n isOptionEqualToValue={(\n option: AutocompleteOption,\n val: AutocompleteOption,\n ) => option?.value === val?.value}\n onChange={(_event, newValue) => onChange(newValue)}\n popupIcon={\n <ExpandMoreRounded sx={{ color: `${theme.palette.dark.main}66` }} />\n }\n slotProps={{\n paper: {\n sx: {\n borderRadius: 2,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n maxHeight: \"min(22rem, calc(100vh - 6rem))\",\n overflow: \"hidden\",\n backgroundColor: theme.palette.light.main,\n mt: 0.5,\n },\n },\n }}\n sx={{\n \"& .MuiOutlinedInput-root\": {\n padding: \"0 9px !important\",\n height: 48,\n display: \"flex\",\n alignItems: \"center\",\n },\n \"& .MuiAutocomplete-input\": {\n padding: \"0 !important\",\n },\n \"& + .MuiAutocomplete-popper .MuiAutocomplete-option\": {\n fontSize: \"1rem\",\n color: theme.palette.dark.main,\n '&[aria-selected=\"true\"]': {\n backgroundColor: \"transparent\",\n },\n '&[aria-selected=\"true\"].Mui-focused, &:hover, &.Mui-focused': {\n backgroundColor: `${theme.palette.primary.main}1A !important`,\n },\n },\n }}\n renderInput={(params: any) => {\n // 1. Separate structural configurations from direct props\n const { InputProps, inputProps, ...restParams } = params;\n\n return (\n <Input\n {...restParams}\n // 2. Safely spread native input elements\n inputProps={inputProps}\n // 3. Bind MUI's dynamic layout objects (adornments, ref) into the slot configuration\n InputProps={{\n ...InputProps,\n }}\n error={error}\n placeholder={placeholder}\n fullWidth\n // Explicitly empty string avoids passing a raw error object down to helperText slots\n helperText=\"\"\n />\n );\n }}\n />\n\n {error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: \"0.875rem\",\n color: theme.palette.error.main,\n }}\n >\n {error}\n </FormHelperText>\n )}\n\n {helperText && !error && (\n <FormHelperText\n sx={{\n mt: 0.75,\n fontSize: \"0.875rem\",\n color: `${theme.palette.dark.main}99`,\n }}\n >\n {helperText}\n </FormHelperText>\n )}\n </AutocompleteWrapper>\n );\n}\n"],"names":["_jsxs","_jsx","MuiAutocomplete"],"mappings":"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"}
@@ -3,6 +3,6 @@ import { TextFieldProps } from '@mui/material';
3
3
  interface InputProps extends Omit<TextFieldProps, 'variant' | 'error'> {
4
4
  error?: string;
5
5
  }
6
- export declare const StyledLabel: any;
6
+ export declare const StyledLabel: import("@emotion/styled").StyledComponent<import("@mui/material").InputLabelOwnProps & Pick<import("@mui/material").FormLabelOwnProps, "color" | "filled"> & import("@mui/material/OverridableComponent").CommonProps & Omit<React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "style" | "color" | "margin" | "children" | "sx" | "className" | "classes" | "variant" | "disabled" | "size" | "error" | "filled" | "focused" | "required" | "disableAnimation" | "shrink"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
7
7
  export declare const Input: React.FC<InputProps>;
8
8
  export {};
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React from "react";
2
2
  interface ModalProps {
3
3
  isOpen: boolean;
4
4
  onClose: () => void;
@@ -19,6 +19,7 @@ interface ModalProps {
19
19
  currentPage?: number;
20
20
  totalPages?: number;
21
21
  isLoading: boolean;
22
+ useDefault: boolean;
22
23
  }
23
24
  export declare const Modal: React.FC<ModalProps>;
24
25
  export {};
@@ -10,45 +10,45 @@ import { VariableState, RequirementType } from '../types/variable.js';
10
10
  import { mapStatusToVariableState, mapRequirementTypeToState } from '../helpers/variableProcessing.js';
11
11
 
12
12
  const StyledDialog = styled(Dialog)(({ theme }) => ({
13
- '& .MuiDialog-paper': {
13
+ "& .MuiDialog-paper": {
14
14
  color: theme.palette.background.default,
15
15
  borderRadius: theme.shape.borderRadius,
16
- maxWidth: '896px',
17
- width: '100%',
18
- maxHeight: '90vh',
16
+ maxWidth: "896px",
17
+ width: "100%",
18
+ maxHeight: "90vh",
19
19
  },
20
20
  }));
21
21
  const NavButton = styled(IconButton)(({ theme }) => ({
22
- width: '40px',
23
- height: '40px',
22
+ width: "40px",
23
+ height: "40px",
24
24
  borderRadius: 999,
25
25
  border: `2px solid ${theme.palette.dark.main}`,
26
- backgroundColor: '#fff',
26
+ backgroundColor: "#fff",
27
27
  padding: theme.spacing(1, 2),
28
- '&:hover': {
28
+ "&:hover": {
29
29
  backgroundColor: theme.palette.grey[100], // Changed from dark.main to grey[100]
30
30
  color: theme.palette.dark.main, // Keep text dark instead of light
31
31
  borderColor: theme.palette.dark.main, // Keep border dark
32
32
  },
33
33
  }));
34
- const Modal = ({ isOpen, onClose, variableId, status, requirementType, description, value, defaultValue, note, onSave, onSubmit, successMessage, errorMessage, onDeclineWording, onPrevious, onNext, currentPage = 1, totalPages = 1, isLoading }) => {
34
+ const Modal = ({ isOpen, onClose, variableId, status, requirementType, description, value, defaultValue, note, onSave, onSubmit, successMessage, errorMessage, onDeclineWording, onPrevious, onNext, currentPage = 1, totalPages = 1, isLoading, useDefault, }) => {
35
35
  const variableState = mapStatusToVariableState(status);
36
36
  const variableReqType = mapRequirementTypeToState(requirementType);
37
37
  const [textValue, setTextValue] = useState(value);
38
- const [customValue, setCustomValue] = useState('');
38
+ const [customValue, setCustomValue] = useState("");
39
39
  const [useDefaultValue, setUseDefaultValue] = useState(true);
40
40
  const [isSaving, setIsSaving] = useState(false);
41
41
  const [isSubmitting, setIsSubmitting] = useState(false);
42
42
  const theme = useTheme();
43
- const toDisplay = (str) => str?.replace(/\\n/g, '\n') ?? '';
44
- const toStorage = (str) => str?.replace(/\r?\n/g, '\\n') ?? '';
43
+ const toDisplay = (str) => str?.replace(/\\n/g, "\n") ?? "";
44
+ const toStorage = (str) => str?.replace(/\r?\n/g, "\\n") ?? "";
45
45
  useEffect(() => {
46
46
  const displayValue = toDisplay(value);
47
47
  const displayDefault = toDisplay(defaultValue);
48
- const isUsingDefault = displayValue === displayDefault;
48
+ const isUsingDefault = useDefault || displayValue === displayDefault;
49
49
  setUseDefaultValue(isUsingDefault);
50
50
  setTextValue(displayValue);
51
- setCustomValue(isUsingDefault ? '' : displayValue);
51
+ setCustomValue(isUsingDefault ? "" : displayValue);
52
52
  }, [variableId, value, defaultValue]);
53
53
  useEffect(() => {
54
54
  if (!isOpen) {
@@ -57,12 +57,12 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
57
57
  }
58
58
  }, [isOpen]);
59
59
  useEffect(() => {
60
- if (successMessage && successMessage !== '') {
60
+ if (successMessage && successMessage !== "") {
61
61
  toast.success(successMessage);
62
62
  }
63
63
  }, [successMessage]);
64
64
  useEffect(() => {
65
- if (errorMessage && errorMessage !== '') {
65
+ if (errorMessage && errorMessage !== "") {
66
66
  toast.error(errorMessage);
67
67
  }
68
68
  }, [errorMessage]);
@@ -79,35 +79,42 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
79
79
  setTextValue(toDisplay(defaultValue));
80
80
  }
81
81
  else {
82
- setTextValue(customValue || toDisplay(value));
82
+ setTextValue("");
83
83
  }
84
84
  setUseDefaultValue(checked);
85
85
  };
86
86
  const canSubmitSave = isLoading || variableState === VariableState.Pending;
87
87
  const statusConfig = {
88
- [VariableState.Pending]: { color: '#EBC7FF', label: 'Pending' },
89
- [VariableState.Draft]: { color: '#4D3019', label: 'Draft' },
90
- [VariableState.Declined]: { color: '#4D3019', label: 'Declined' },
91
- [VariableState.ActionRequired]: { color: '#FFBCB3', label: 'Action Required' },
92
- [VariableState.Accepted]: { color: '#DBF59A', label: 'Accepted' },
93
- [VariableState.NotStarted]: { color: '#000000ff', label: 'Not Started' },
88
+ [VariableState.Pending]: { color: "#EBC7FF", label: "Pending" },
89
+ [VariableState.Draft]: { color: "#4D3019", label: "Draft" },
90
+ [VariableState.Declined]: { color: "#4D3019", label: "Declined" },
91
+ [VariableState.ActionRequired]: {
92
+ color: "#FFBCB3",
93
+ label: "Action Required",
94
+ },
95
+ [VariableState.Accepted]: { color: "#DBF59A", label: "Accepted" },
96
+ [VariableState.NotStarted]: { color: "#000000ff", label: "Not Started" },
94
97
  };
95
98
  const reqTypeConfig = {
96
- "Default": {
97
- color: '#F5A623',
98
- highlight: '#f3bf6bff',
99
- highlightSelected: '#F5A623',
100
- label: 'Mandatory',
99
+ Default: {
100
+ color: "#F5A623",
101
+ highlight: "#f3bf6bff",
102
+ highlightSelected: "#F5A623",
103
+ label: "Mandatory",
101
104
  },
102
- "Optional": {
103
- color: '#F5D76E',
104
- highlight: '#f3e2a5ff',
105
- highlightSelected: '#F5D76E',
106
- label: 'Optional',
105
+ Optional: {
106
+ color: "#F5D76E",
107
+ highlight: "#f3e2a5ff",
108
+ highlightSelected: "#F5D76E",
109
+ label: "Optional",
107
110
  },
108
111
  };
109
- const statusStyle = variableState ? statusConfig[variableState] : { color: '#ccc', label: 'Unknown' };
110
- const requirementTypeStyle = variableReqType ? reqTypeConfig[variableReqType] : { color: '#ccc', label: 'Unknown' };
112
+ const statusStyle = variableState
113
+ ? statusConfig[variableState]
114
+ : { color: "#ccc", label: "Unknown" };
115
+ const requirementTypeStyle = variableReqType
116
+ ? reqTypeConfig[variableReqType]
117
+ : { color: "#ccc", label: "Unknown" };
111
118
  const handleSave = () => {
112
119
  setIsSaving(true);
113
120
  const payloadValue = toStorage(textValue);
@@ -119,77 +126,76 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
119
126
  onSubmit?.(payloadValue, useDefaultValue);
120
127
  };
121
128
  return (jsxs(StyledDialog, { open: isOpen, onClose: onClose, maxWidth: "md", fullWidth: true, children: [jsx(IconButton, { onClick: onClose, disabled: isLoading, sx: {
122
- position: 'absolute',
129
+ position: "absolute",
123
130
  top: 16,
124
131
  right: 16,
125
132
  zIndex: 1,
126
133
  }, children: jsx(CloseRounded, { sx: { fontSize: 24 } }) }), jsxs(DialogContent, { sx: { p: { xs: 3, sm: 4, md: 6 } }, children: [jsxs(Box, { sx: { mb: 3 }, children: [jsx(Chip, { label: requirementTypeStyle.label.toUpperCase(), sx: {
127
134
  mr: 3,
128
- border: '3px solid',
135
+ border: "3px solid",
129
136
  backgroundColor: requirementTypeStyle.color,
130
137
  borderColor: requirementTypeStyle.color,
131
138
  color: theme.palette.text.primary,
132
139
  fontWeight: 600,
133
- fontSize: '0.875rem',
134
- height: 'auto',
140
+ fontSize: "0.875rem",
141
+ height: "auto",
135
142
  py: 1,
136
143
  borderRadius: 0,
137
144
  px: 2,
138
- } }), variableState !== VariableState.NotStarted &&
139
- jsx(Chip, { label: statusStyle.label.toUpperCase(), sx: {
140
- mr: 3,
141
- border: '3px solid',
142
- backgroundColor: theme.palette.background.paper,
143
- borderColor: statusStyle.color,
144
- color: theme.palette.text.primary,
145
- fontWeight: 600,
146
- fontSize: '0.875rem',
147
- height: 'auto',
148
- py: 1,
149
- borderRadius: 0,
150
- px: 2,
151
- } })] }), jsx(Typography, { sx: { mb: 3, lineHeight: 1.6, whiteSpace: 'pre-line' }, children: parse(description) }), variableState === VariableState.ActionRequired && note && (jsx(Alert, { variant: "error", icon: jsx(InfoOutlineRounded, { sx: { fontSize: 20 } }), sx: {
152
- mb: 2
145
+ } }), variableState !== VariableState.NotStarted && (jsx(Chip, { label: statusStyle.label.toUpperCase(), sx: {
146
+ mr: 3,
147
+ border: "3px solid",
148
+ backgroundColor: theme.palette.background.paper,
149
+ borderColor: statusStyle.color,
150
+ color: theme.palette.text.primary,
151
+ fontWeight: 600,
152
+ fontSize: "0.875rem",
153
+ height: "auto",
154
+ py: 1,
155
+ borderRadius: 0,
156
+ px: 2,
157
+ } }))] }), jsx(Typography, { sx: { mb: 3, lineHeight: 1.6, whiteSpace: "pre-line" }, children: parse(description) }), variableState === VariableState.ActionRequired && note && (jsx(Alert, { variant: "error", icon: jsx(InfoOutlineRounded, { sx: { fontSize: 20 } }), sx: {
158
+ mb: 2,
153
159
  }, children: note })), variableState !== VariableState.ActionRequired && note && (jsx(Alert, { variant: "info", icon: jsx(ArticleRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }), sx: {
154
160
  mb: 2,
155
- backgroundColor: '#00000000',
156
- borderColor: '#acacacff',
161
+ backgroundColor: "#00000000",
162
+ borderColor: "#acacacff",
157
163
  color: theme.palette.text.primary,
158
164
  }, children: note })), jsx(TextField, { multiline: true, rows: 6, fullWidth: true, value: textValue, onChange: (e) => setTextValue(e.target.value), disabled: useDefaultValue ||
159
165
  canSubmitSave ||
160
166
  variableState === VariableState.Declined, sx: {
161
167
  mb: 2,
162
- '& .MuiOutlinedInput-root': {
163
- backgroundColor: useDefaultValue || canSubmitSave ? 'rgba(0, 0, 0, 0.05)' : '#fff',
168
+ "& .MuiOutlinedInput-root": {
169
+ backgroundColor: useDefaultValue || canSubmitSave
170
+ ? "rgba(0, 0, 0, 0.05)"
171
+ : "#fff",
164
172
  borderRadius: 2,
165
173
  },
166
174
  } }), jsx(FormControlLabel, { control: jsx(Checkbox, { checked: useDefaultValue, disabled: canSubmitSave || variableState === VariableState.Declined, onChange: handleUseDefaultValueChange, sx: {
167
175
  color: theme.palette.primary.main,
168
- '&.Mui-checked': {
176
+ "&.Mui-checked": {
169
177
  color: theme.palette.primary.main,
170
178
  },
171
179
  } }), label: "Use Default Wording", sx: { mb: 3 } }), jsxs(Box, { sx: {
172
- display: 'flex',
173
- flexDirection: { xs: 'column', sm: 'row' },
174
- alignItems: { xs: 'stretch', sm: 'center' },
175
- justifyContent: 'space-between',
180
+ display: "flex",
181
+ flexDirection: { xs: "column", sm: "row" },
182
+ alignItems: { xs: "stretch", sm: "center" },
183
+ justifyContent: "space-between",
176
184
  gap: 2,
177
185
  pt: 3,
178
- borderTop: '1px solid',
179
- borderColor: 'divider',
180
- }, children: [variableState !== VariableState.Declined ? (jsxs(Box, { sx: { display: 'flex', gap: 1.5, flexWrap: 'wrap' }, children: [useDefaultValue === false ?
181
- (jsx(Button, { onClick: handleSave, variant: "outline", size: "md", disabled: canSubmitSave, children: isSaving ? jsxs(Fragment, { children: [jsx(CircularProgress, { size: 20 }), jsx(Typography, { sx: { paddingLeft: 2 }, children: "Saving..." })] }) : "Save" })) : (jsx(Fragment, {})), jsx(Button, { onClick: handleSubmit, variant: "outline", size: "md", disabled: canSubmitSave, sx: {
182
- backgroundColor: theme.palette.primary.main + '52',
183
- '&:hover': {
184
- backgroundColor: theme.palette.primary.main + '80',
186
+ borderTop: "1px solid",
187
+ borderColor: "divider",
188
+ }, children: [variableState !== VariableState.Declined ? (jsxs(Box, { sx: { display: "flex", gap: 1.5, flexWrap: "wrap" }, children: [useDefaultValue === false ? (jsx(Button, { onClick: handleSave, variant: "outline", size: "md", disabled: canSubmitSave, children: isSaving ? (jsxs(Fragment, { children: [jsx(CircularProgress, { size: 20 }), jsx(Typography, { sx: { paddingLeft: 2 }, children: "Saving..." })] })) : ("Save") })) : (jsx(Fragment, {})), jsx(Button, { onClick: handleSubmit, variant: "outline", size: "md", disabled: canSubmitSave || (useDefaultValue && useDefault), sx: {
189
+ backgroundColor: theme.palette.primary.main + "52",
190
+ "&:hover": {
191
+ backgroundColor: theme.palette.primary.main + "80",
192
+ },
193
+ }, children: isSubmitting ? (jsxs(Fragment, { children: [jsx(CircularProgress, { size: 20 }), jsx(Typography, { sx: { paddingLeft: 2 }, children: "Submitting..." })] })) : useDefaultValue && useDefault ? ("Default already Accepted") : useDefaultValue === false ? ("Submit for review") : ("Submit") }), variableReqType === RequirementType.Optional && (jsx(Button, { onClick: onDeclineWording, variant: "outline", size: "md", sx: {
194
+ backgroundColor: "#ff464652",
195
+ "&:hover": {
196
+ backgroundColor: "#ff464680", // Darker purple on hover
185
197
  },
186
- }, children: isSubmitting ? jsxs(Fragment, { children: [jsx(CircularProgress, { size: 20 }), jsx(Typography, { sx: { paddingLeft: 2 }, children: "Submitting..." })] }) : useDefaultValue === false ? "Submit for review" : "Submit" }), variableReqType === RequirementType.Optional &&
187
- (jsx(Button, { onClick: onDeclineWording, variant: "outline", size: "md", sx: {
188
- backgroundColor: '#ff464652',
189
- '&:hover': {
190
- backgroundColor: '#ff464680', // Darker purple on hover
191
- }
192
- }, disabled: canSubmitSave, children: "Decline wording" }))] })) : (jsx(Box, { sx: { display: 'flex', gap: 1.5, flexWrap: 'wrap' }, children: jsx(Button, { onClick: () => {
198
+ }, disabled: canSubmitSave, children: "Decline wording" }))] })) : (jsx(Box, { sx: { display: "flex", gap: 1.5, flexWrap: "wrap" }, children: jsx(Button, { onClick: () => {
193
199
  setIsSubmitting(true);
194
200
  // Pass the default value and true directly to onSubmit
195
201
  const payloadValue = toStorage(toDisplay(defaultValue));
@@ -198,16 +204,16 @@ const Modal = ({ isOpen, onClose, variableId, status, requirementType, descripti
198
204
  setUseDefaultValue(true);
199
205
  onSubmit?.(payloadValue, true);
200
206
  }, variant: "outline", size: "md", disabled: canSubmitSave, sx: {
201
- backgroundColor: '#ff464652',
202
- '&:hover': {
203
- backgroundColor: '#ff464680',
204
- }
207
+ backgroundColor: "#ff464652",
208
+ "&:hover": {
209
+ backgroundColor: "#ff464680",
210
+ },
205
211
  }, children: isSubmitting ? (jsxs(Fragment, { children: [jsx(CircularProgress, { size: 20 }), jsx(Typography, { sx: { paddingLeft: 2 }, children: "Restoring..." })] })) : ("Restore wording") }) })), jsxs(Box, { sx: {
206
- display: 'flex',
207
- alignItems: 'center',
212
+ display: "flex",
213
+ alignItems: "center",
208
214
  gap: 1.5,
209
- justifyContent: { xs: 'space-between', sm: 'flex-end' },
210
- }, children: [currentPage !== 1 && jsx(NavButton, { onClick: onPrevious, "aria-label": "Previous", disabled: isLoading, children: jsx(ArrowBackIosRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }) }), currentPage !== totalPages && jsx(NavButton, { onClick: onNext, "aria-label": "Next", disabled: isLoading, children: jsx(ArrowForwardIosRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }) }), jsxs(Typography, { fontWeight: 500, fontSize: "1.125rem", children: [currentPage, "/", totalPages] })] })] })] })] }));
215
+ justifyContent: { xs: "space-between", sm: "flex-end" },
216
+ }, children: [currentPage !== 1 && (jsx(NavButton, { onClick: onPrevious, "aria-label": "Previous", disabled: isLoading, children: jsx(ArrowBackIosRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }) })), currentPage !== totalPages && (jsx(NavButton, { onClick: onNext, "aria-label": "Next", disabled: isLoading, children: jsx(ArrowForwardIosRounded, { sx: { fontSize: 20, color: theme.palette.text.primary } }) })), jsxs(Typography, { fontWeight: 500, fontSize: "1.125rem", children: [currentPage, "/", totalPages] })] })] })] })] }));
211
217
  };
212
218
 
213
219
  export { Modal };
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal.tsx"],"sourcesContent":["import React, { use, useEffect, useState } from 'react';\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n IconButton,\r\n Box,\r\n Typography,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n Alert as MuiAlert,\r\n Chip,\r\n styled,\r\n CircularProgress,\r\n useTheme,\r\n} from '@mui/material';\r\nimport { Button } from './Button';\r\nimport { ArrowBackIosRounded, ArrowForwardIosRounded, ArticleRounded, CloseRounded, ErrorOutlineRounded, InfoOutlineRounded, StickyNote2Rounded } from '@mui/icons-material';\r\nimport { Alert } from './Alert';\r\nimport { toast } from 'react-toastify';\r\nimport parse from 'html-react-parser';\r\nimport { VariableState, RequirementType } from '../types/variable';\r\nimport { mapRequirementTypeToState, mapStatusToVariableState } from '../helpers/variableProcessing';\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n variableId: string;\r\n status: string;\r\n requirementType: string,\r\n description: string;\r\n value: string;\r\n defaultValue: string;\r\n note?: string;\r\n onSave?: (fieldValue: string, defaultChecked: boolean) => void;\r\n onSubmit?: (fieldValue: string, defaultChecked: boolean) => void;\r\n successMessage?: string;\r\n errorMessage?: string;\r\n onDeclineWording?: () => void;\r\n onPrevious?: () => void;\r\n onNext?: () => void;\r\n currentPage?: number;\r\n totalPages?: number;\r\n isLoading: boolean;\r\n}\r\n\r\n\r\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\r\n '& .MuiDialog-paper': {\r\n color: theme.palette.background.default,\r\n borderRadius: theme.shape.borderRadius,\r\n maxWidth: '896px',\r\n width: '100%',\r\n maxHeight: '90vh',\r\n },\r\n}));\r\n\r\n\r\nconst NavButton = styled(IconButton)(({ theme }) => ({\r\n width: '40px',\r\n height: '40px',\r\n borderRadius: 999,\r\n border: `2px solid ${theme.palette.dark.main}`,\r\n backgroundColor: '#fff',\r\n padding: theme.spacing(1, 2),\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[100], // Changed from dark.main to grey[100]\r\n color: theme.palette.dark.main, // Keep text dark instead of light\r\n borderColor: theme.palette.dark.main, // Keep border dark\r\n },\r\n}));\r\n\r\n\r\nexport const Modal: React.FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n variableId,\r\n status,\r\n requirementType,\r\n description,\r\n value,\r\n defaultValue,\r\n note,\r\n onSave,\r\n onSubmit,\r\n successMessage,\r\n errorMessage,\r\n onDeclineWording,\r\n onPrevious,\r\n onNext,\r\n currentPage = 1,\r\n totalPages = 1,\r\n isLoading\r\n}) => {\r\n const variableState = mapStatusToVariableState(status);\r\n const variableReqType = mapRequirementTypeToState(requirementType)\r\n\r\n const [textValue, setTextValue] = useState(value);\r\n const [customValue, setCustomValue] = useState('');\r\n\r\n const [useDefaultValue, setUseDefaultValue] = useState(true);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const theme = useTheme()\r\n\r\n const toDisplay = (str: string) => str?.replace(/\\\\n/g, '\\n') ?? '';\r\n const toStorage = (str: string) => str?.replace(/\\r?\\n/g, '\\\\n') ?? '';\r\n\r\n useEffect(() => {\r\n const displayValue = toDisplay(value);\r\n const displayDefault = toDisplay(defaultValue);\r\n\r\n const isUsingDefault = displayValue === displayDefault;\r\n \r\n setUseDefaultValue(isUsingDefault);\r\n setTextValue(displayValue);\r\n setCustomValue(isUsingDefault ? '' : displayValue);\r\n }, [variableId, value, defaultValue]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (successMessage && successMessage !== '') {\r\n toast.success(successMessage);\r\n }\r\n }, [successMessage]);\r\n \r\n useEffect(() => {\r\n if (errorMessage && errorMessage !== '') {\r\n toast.error(errorMessage);\r\n }\r\n }, [errorMessage]);\r\n \r\n useEffect(() => {\r\n if (!isLoading) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isLoading]);\r\n\r\n const handleUseDefaultValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const checked = event.target.checked;\r\n\r\n if (checked) {\r\n setCustomValue(textValue);\r\n setTextValue(toDisplay(defaultValue));\r\n } else {\r\n setTextValue(customValue || toDisplay(value));\r\n }\r\n\r\n setUseDefaultValue(checked);\r\n };\r\n\r\n\r\n const canSubmitSave = isLoading || variableState === VariableState.Pending\r\n\r\n const statusConfig = {\r\n [VariableState.Pending]: { color: '#EBC7FF', label: 'Pending' },\r\n [VariableState.Draft]: { color: '#4D3019', label: 'Draft' },\r\n [VariableState.Declined]: { color: '#4D3019', label: 'Declined' },\r\n [VariableState.ActionRequired]: { color: '#FFBCB3', label: 'Action Required' },\r\n [VariableState.Accepted]: { color: '#DBF59A', label: 'Accepted' },\r\n [VariableState.NotStarted]: { color: '#000000ff', label: 'Not Started' },\r\n };\r\n\r\n const reqTypeConfig = {\r\n \"Default\": {\r\n color: '#F5A623',\r\n highlight: '#f3bf6bff',\r\n highlightSelected: '#F5A623',\r\n label: 'Mandatory',\r\n },\r\n \"Optional\": {\r\n color: '#F5D76E',\r\n highlight: '#f3e2a5ff',\r\n highlightSelected: '#F5D76E',\r\n label: 'Optional',\r\n },\r\n };\r\n\r\n\r\n const statusStyle = variableState ? statusConfig[variableState] : { color: '#ccc', label: 'Unknown' };;\r\n const requirementTypeStyle = variableReqType ? reqTypeConfig[variableReqType] : { color: '#ccc', label: 'Unknown' };;\r\n\r\n\r\n const handleSave = () => {\r\n setIsSaving(true);\r\n const payloadValue = toStorage(textValue);\r\n onSave?.(payloadValue, useDefaultValue);\r\n };\r\n\r\n\r\n const handleSubmit = () => {\r\n setIsSubmitting(true);\r\n const payloadValue = toStorage(textValue);\r\n onSubmit?.(payloadValue, useDefaultValue);\r\n };\r\n\r\n\r\n return (\r\n <StyledDialog open={isOpen} onClose={onClose} maxWidth=\"md\" fullWidth>\r\n <IconButton\r\n onClick={onClose}\r\n disabled={isLoading}\r\n sx={{\r\n position: 'absolute',\r\n top: 16,\r\n right: 16,\r\n zIndex: 1,\r\n }}\r\n >\r\n <CloseRounded sx={{ fontSize: 24 }} />\r\n </IconButton>\r\n\r\n\r\n <DialogContent sx={{ p: { xs: 3, sm: 4, md: 6 } }}>\r\n {/* Status Chip */}\r\n <Box sx={{ mb: 3}}>\r\n <Chip\r\n label={requirementTypeStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n border: '3px solid',\r\n backgroundColor: requirementTypeStyle.color,\r\n borderColor: requirementTypeStyle.color,\r\n color: theme.palette.text.primary,\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n height: 'auto',\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n {variableState !== VariableState.NotStarted &&\r\n <Chip\r\n label={statusStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n border: '3px solid',\r\n backgroundColor: theme.palette.background.paper,\r\n borderColor: statusStyle.color,\r\n color: theme.palette.text.primary,\r\n fontWeight: 600,\r\n fontSize: '0.875rem',\r\n height: 'auto',\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n }\r\n </Box>\r\n\r\n\r\n {/* Description */}\r\n <Typography sx={{ mb: 3, lineHeight: 1.6, whiteSpace: 'pre-line' }}>\r\n {parse(description)}\r\n </Typography>\r\n\r\n\r\n {/* Error Alert with Custom Icon */}\r\n {variableState === VariableState.ActionRequired && note && (\r\n <Alert\r\n variant=\"error\"\r\n icon={<InfoOutlineRounded sx={{ fontSize: 20 }} />}\r\n sx={{\r\n mb: 2\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n {/* Info Alert with Custom Background and Icon */}\r\n {variableState !== VariableState.ActionRequired && note && (\r\n <Alert\r\n variant=\"info\"\r\n icon={<ArticleRounded sx={{ fontSize: 20, color: theme.palette.text.primary }} />}\r\n sx={{\r\n mb: 2,\r\n backgroundColor: '#00000000',\r\n borderColor: '#acacacff',\r\n color: theme.palette.text.primary,\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n\r\n {/* Text Field */}\r\n <TextField\r\n multiline\r\n rows={6}\r\n fullWidth\r\n value={textValue}\r\n onChange={(e) => setTextValue(e.target.value)}\r\n disabled={\r\n useDefaultValue || \r\n canSubmitSave || \r\n variableState === VariableState.Declined\r\n }\r\n sx={{\r\n mb: 2,\r\n '& .MuiOutlinedInput-root': {\r\n backgroundColor: useDefaultValue || canSubmitSave ? 'rgba(0, 0, 0, 0.05)' : '#fff',\r\n borderRadius: 2,\r\n },\r\n }}\r\n />\r\n\r\n\r\n {/* Checkbox */}\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n checked={useDefaultValue}\r\n disabled={canSubmitSave || variableState === VariableState.Declined}\r\n onChange={handleUseDefaultValueChange}\r\n sx={{\r\n color: theme.palette.primary.main,\r\n '&.Mui-checked': {\r\n color: theme.palette.primary.main,\r\n },\r\n }}\r\n />\r\n }\r\n label=\"Use Default Wording\"\r\n sx={{ mb: 3 }}\r\n />\r\n\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n flexDirection: { xs: 'column', sm: 'row' },\r\n alignItems: { xs: 'stretch', sm: 'center' },\r\n justifyContent: 'space-between',\r\n gap: 2,\r\n pt: 3,\r\n borderTop: '1px solid',\r\n borderColor: 'divider',\r\n }}\r\n >\r\n {variableState !== VariableState.Declined ? (\r\n <Box sx={{ display: 'flex', gap: 1.5, flexWrap: 'wrap' }}>\r\n {useDefaultValue === false? \r\n (\r\n <Button\r\n onClick={handleSave}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n >\r\n {isSaving ? <><CircularProgress size={20} /><Typography sx={{paddingLeft: 2}}>Saving...</Typography></> : \"Save\"}\r\n </Button>\r\n ) : (<></>)\r\n }\r\n <Button\r\n onClick={handleSubmit}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n sx={{\r\n backgroundColor: theme.palette.primary.main + '52',\r\n '&:hover': {\r\n backgroundColor: theme.palette.primary.main + '80',\r\n },\r\n }}\r\n >\r\n {isSubmitting ? <><CircularProgress size={20} /><Typography sx={{paddingLeft: 2}}>Submitting...</Typography></> : useDefaultValue === false ? \"Submit for review\" : \"Submit\"}\r\n </Button>\r\n {variableReqType === RequirementType.Optional &&\r\n (\r\n <Button onClick={onDeclineWording} variant=\"outline\" size=\"md\" sx={{\r\n backgroundColor: '#ff464652',\r\n '&:hover': {\r\n backgroundColor: '#ff464680', // Darker purple on hover\r\n }\r\n }}\r\n disabled={canSubmitSave}\r\n >\r\n Decline wording\r\n </Button>\r\n )}\r\n </Box>\r\n ) : (\r\n <Box sx={{ display: 'flex', gap: 1.5, flexWrap: 'wrap' }}>\r\n <Button\r\n onClick={() => {\r\n setIsSubmitting(true);\r\n // Pass the default value and true directly to onSubmit\r\n const payloadValue = toStorage(toDisplay(defaultValue));\r\n setCustomValue(textValue);\r\n setTextValue(toDisplay(defaultValue));\r\n setUseDefaultValue(true);\r\n onSubmit?.(payloadValue, true);\r\n }}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n sx={{\r\n backgroundColor: '#ff464652',\r\n '&:hover': {\r\n backgroundColor: '#ff464680',\r\n }\r\n }}\r\n >\r\n {isSubmitting ? (\r\n <>\r\n <CircularProgress size={20} />\r\n <Typography sx={{paddingLeft: 2}}>Restoring...</Typography>\r\n </>\r\n ) : (\r\n \"Restore wording\"\r\n )}\r\n </Button>\r\n </Box>\r\n )}\r\n {/* Navigation */}\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 1.5,\r\n justifyContent: { xs: 'space-between', sm: 'flex-end' },\r\n }}\r\n >\r\n {currentPage !== 1 && <NavButton onClick={onPrevious} aria-label=\"Previous\" disabled={isLoading}>\r\n <ArrowBackIosRounded sx={{ fontSize: 20, color: theme.palette.text.primary }}/>\r\n </NavButton>}\r\n {currentPage !== totalPages && <NavButton onClick={onNext} aria-label=\"Next\" disabled={isLoading}>\r\n <ArrowForwardIosRounded sx={{ fontSize: 20, color: theme.palette.text.primary }}/>\r\n </NavButton>}\r\n <Typography fontWeight={500} fontSize=\"1.125rem\">\r\n {currentPage}/{totalPages}\r\n </Typography>\r\n </Box>\r\n </Box>\r\n </DialogContent>\r\n </StyledDialog>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal.tsx"],"sourcesContent":["import React, { use, useEffect, useState } from \"react\";\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n IconButton,\r\n Box,\r\n Typography,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n Alert as MuiAlert,\r\n Chip,\r\n styled,\r\n CircularProgress,\r\n useTheme,\r\n} from \"@mui/material\";\r\nimport { Button } from \"./Button\";\r\nimport {\r\n ArrowBackIosRounded,\r\n ArrowForwardIosRounded,\r\n ArticleRounded,\r\n CloseRounded,\r\n ErrorOutlineRounded,\r\n InfoOutlineRounded,\r\n StickyNote2Rounded,\r\n} from \"@mui/icons-material\";\r\nimport { Alert } from \"./Alert\";\r\nimport { toast } from \"react-toastify\";\r\nimport parse from \"html-react-parser\";\r\nimport { VariableState, RequirementType } from \"../types/variable\";\r\nimport {\r\n mapRequirementTypeToState,\r\n mapStatusToVariableState,\r\n} from \"../helpers/variableProcessing\";\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n variableId: string;\r\n status: string;\r\n requirementType: string;\r\n description: string;\r\n value: string;\r\n defaultValue: string;\r\n note?: string;\r\n onSave?: (fieldValue: string, defaultChecked: boolean) => void;\r\n onSubmit?: (fieldValue: string, defaultChecked: boolean) => void;\r\n successMessage?: string;\r\n errorMessage?: string;\r\n onDeclineWording?: () => void;\r\n onPrevious?: () => void;\r\n onNext?: () => void;\r\n currentPage?: number;\r\n totalPages?: number;\r\n isLoading: boolean;\r\n useDefault: boolean;\r\n}\r\n\r\nconst StyledDialog = styled(Dialog)(({ theme }) => ({\r\n \"& .MuiDialog-paper\": {\r\n color: theme.palette.background.default,\r\n borderRadius: theme.shape.borderRadius,\r\n maxWidth: \"896px\",\r\n width: \"100%\",\r\n maxHeight: \"90vh\",\r\n },\r\n}));\r\n\r\nconst NavButton = styled(IconButton)(({ theme }) => ({\r\n width: \"40px\",\r\n height: \"40px\",\r\n borderRadius: 999,\r\n border: `2px solid ${theme.palette.dark.main}`,\r\n backgroundColor: \"#fff\",\r\n padding: theme.spacing(1, 2),\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.grey[100], // Changed from dark.main to grey[100]\r\n color: theme.palette.dark.main, // Keep text dark instead of light\r\n borderColor: theme.palette.dark.main, // Keep border dark\r\n },\r\n}));\r\n\r\nexport const Modal: React.FC<ModalProps> = ({\r\n isOpen,\r\n onClose,\r\n variableId,\r\n status,\r\n requirementType,\r\n description,\r\n value,\r\n defaultValue,\r\n note,\r\n onSave,\r\n onSubmit,\r\n successMessage,\r\n errorMessage,\r\n onDeclineWording,\r\n onPrevious,\r\n onNext,\r\n currentPage = 1,\r\n totalPages = 1,\r\n isLoading,\r\n useDefault,\r\n}) => {\r\n const variableState = mapStatusToVariableState(status);\r\n const variableReqType = mapRequirementTypeToState(requirementType);\r\n\r\n const [textValue, setTextValue] = useState(value);\r\n const [customValue, setCustomValue] = useState(\"\");\r\n\r\n const [useDefaultValue, setUseDefaultValue] = useState(true);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const theme = useTheme();\r\n\r\n const toDisplay = (str: string) => str?.replace(/\\\\n/g, \"\\n\") ?? \"\";\r\n const toStorage = (str: string) => str?.replace(/\\r?\\n/g, \"\\\\n\") ?? \"\";\r\n\r\n useEffect(() => {\r\n const displayValue = toDisplay(value);\r\n const displayDefault = toDisplay(defaultValue);\r\n\r\n const isUsingDefault = useDefault || displayValue === displayDefault;\r\n\r\n setUseDefaultValue(isUsingDefault);\r\n setTextValue(displayValue);\r\n setCustomValue(isUsingDefault ? \"\" : displayValue);\r\n }, [variableId, value, defaultValue]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n if (successMessage && successMessage !== \"\") {\r\n toast.success(successMessage);\r\n }\r\n }, [successMessage]);\r\n\r\n useEffect(() => {\r\n if (errorMessage && errorMessage !== \"\") {\r\n toast.error(errorMessage);\r\n }\r\n }, [errorMessage]);\r\n\r\n useEffect(() => {\r\n if (!isLoading) {\r\n setIsSaving(false);\r\n setIsSubmitting(false);\r\n }\r\n }, [isLoading]);\r\n\r\n const handleUseDefaultValueChange = (\r\n event: React.ChangeEvent<HTMLInputElement>,\r\n ) => {\r\n const checked = event.target.checked;\r\n\r\n if (checked) {\r\n setCustomValue(textValue);\r\n setTextValue(toDisplay(defaultValue));\r\n } else {\r\n setTextValue(\"\");\r\n }\r\n\r\n setUseDefaultValue(checked);\r\n };\r\n\r\n const canSubmitSave = isLoading || variableState === VariableState.Pending;\r\n\r\n const statusConfig = {\r\n [VariableState.Pending]: { color: \"#EBC7FF\", label: \"Pending\" },\r\n [VariableState.Draft]: { color: \"#4D3019\", label: \"Draft\" },\r\n [VariableState.Declined]: { color: \"#4D3019\", label: \"Declined\" },\r\n [VariableState.ActionRequired]: {\r\n color: \"#FFBCB3\",\r\n label: \"Action Required\",\r\n },\r\n [VariableState.Accepted]: { color: \"#DBF59A\", label: \"Accepted\" },\r\n [VariableState.NotStarted]: { color: \"#000000ff\", label: \"Not Started\" },\r\n };\r\n\r\n const reqTypeConfig = {\r\n Default: {\r\n color: \"#F5A623\",\r\n highlight: \"#f3bf6bff\",\r\n highlightSelected: \"#F5A623\",\r\n label: \"Mandatory\",\r\n },\r\n Optional: {\r\n color: \"#F5D76E\",\r\n highlight: \"#f3e2a5ff\",\r\n highlightSelected: \"#F5D76E\",\r\n label: \"Optional\",\r\n },\r\n };\r\n\r\n const statusStyle = variableState\r\n ? statusConfig[variableState]\r\n : { color: \"#ccc\", label: \"Unknown\" };\r\n const requirementTypeStyle = variableReqType\r\n ? reqTypeConfig[variableReqType]\r\n : { color: \"#ccc\", label: \"Unknown\" };\r\n\r\n const handleSave = () => {\r\n setIsSaving(true);\r\n const payloadValue = toStorage(textValue);\r\n onSave?.(payloadValue, useDefaultValue);\r\n };\r\n\r\n const handleSubmit = () => {\r\n setIsSubmitting(true);\r\n const payloadValue = toStorage(textValue);\r\n onSubmit?.(payloadValue, useDefaultValue);\r\n };\r\n\r\n return (\r\n <StyledDialog open={isOpen} onClose={onClose} maxWidth=\"md\" fullWidth>\r\n <IconButton\r\n onClick={onClose}\r\n disabled={isLoading}\r\n sx={{\r\n position: \"absolute\",\r\n top: 16,\r\n right: 16,\r\n zIndex: 1,\r\n }}\r\n >\r\n <CloseRounded sx={{ fontSize: 24 }} />\r\n </IconButton>\r\n\r\n <DialogContent sx={{ p: { xs: 3, sm: 4, md: 6 } }}>\r\n {/* Status Chip */}\r\n <Box sx={{ mb: 3 }}>\r\n <Chip\r\n label={requirementTypeStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n border: \"3px solid\",\r\n backgroundColor: requirementTypeStyle.color,\r\n borderColor: requirementTypeStyle.color,\r\n color: theme.palette.text.primary,\r\n fontWeight: 600,\r\n fontSize: \"0.875rem\",\r\n height: \"auto\",\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n {variableState !== VariableState.NotStarted && (\r\n <Chip\r\n label={statusStyle.label.toUpperCase()}\r\n sx={{\r\n mr: 3,\r\n border: \"3px solid\",\r\n backgroundColor: theme.palette.background.paper,\r\n borderColor: statusStyle.color,\r\n color: theme.palette.text.primary,\r\n fontWeight: 600,\r\n fontSize: \"0.875rem\",\r\n height: \"auto\",\r\n py: 1,\r\n borderRadius: 0,\r\n px: 2,\r\n }}\r\n />\r\n )}\r\n </Box>\r\n\r\n {/* Description */}\r\n <Typography sx={{ mb: 3, lineHeight: 1.6, whiteSpace: \"pre-line\" }}>\r\n {parse(description)}\r\n </Typography>\r\n\r\n {/* Error Alert with Custom Icon */}\r\n {variableState === VariableState.ActionRequired && note && (\r\n <Alert\r\n variant=\"error\"\r\n icon={<InfoOutlineRounded sx={{ fontSize: 20 }} />}\r\n sx={{\r\n mb: 2,\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n {/* Info Alert with Custom Background and Icon */}\r\n {variableState !== VariableState.ActionRequired && note && (\r\n <Alert\r\n variant=\"info\"\r\n icon={\r\n <ArticleRounded\r\n sx={{ fontSize: 20, color: theme.palette.text.primary }}\r\n />\r\n }\r\n sx={{\r\n mb: 2,\r\n backgroundColor: \"#00000000\",\r\n borderColor: \"#acacacff\",\r\n color: theme.palette.text.primary,\r\n }}\r\n >\r\n {note}\r\n </Alert>\r\n )}\r\n\r\n {/* Text Field */}\r\n <TextField\r\n multiline\r\n rows={6}\r\n fullWidth\r\n value={textValue}\r\n onChange={(e) => setTextValue(e.target.value)}\r\n disabled={\r\n useDefaultValue ||\r\n canSubmitSave ||\r\n variableState === VariableState.Declined\r\n }\r\n sx={{\r\n mb: 2,\r\n \"& .MuiOutlinedInput-root\": {\r\n backgroundColor:\r\n useDefaultValue || canSubmitSave\r\n ? \"rgba(0, 0, 0, 0.05)\"\r\n : \"#fff\",\r\n borderRadius: 2,\r\n },\r\n }}\r\n />\r\n\r\n {/* Checkbox */}\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n checked={useDefaultValue}\r\n disabled={\r\n canSubmitSave || variableState === VariableState.Declined\r\n }\r\n onChange={handleUseDefaultValueChange}\r\n sx={{\r\n color: theme.palette.primary.main,\r\n \"&.Mui-checked\": {\r\n color: theme.palette.primary.main,\r\n },\r\n }}\r\n />\r\n }\r\n label=\"Use Default Wording\"\r\n sx={{ mb: 3 }}\r\n />\r\n\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n alignItems: { xs: \"stretch\", sm: \"center\" },\r\n justifyContent: \"space-between\",\r\n gap: 2,\r\n pt: 3,\r\n borderTop: \"1px solid\",\r\n borderColor: \"divider\",\r\n }}\r\n >\r\n {variableState !== VariableState.Declined ? (\r\n <Box sx={{ display: \"flex\", gap: 1.5, flexWrap: \"wrap\" }}>\r\n {useDefaultValue === false ? (\r\n <Button\r\n onClick={handleSave}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n >\r\n {isSaving ? (\r\n <>\r\n <CircularProgress size={20} />\r\n <Typography sx={{ paddingLeft: 2 }}>Saving...</Typography>\r\n </>\r\n ) : (\r\n \"Save\"\r\n )}\r\n </Button>\r\n ) : (\r\n <></>\r\n )}\r\n <Button\r\n onClick={handleSubmit}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave || (useDefaultValue && useDefault)}\r\n sx={{\r\n backgroundColor: theme.palette.primary.main + \"52\",\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.primary.main + \"80\",\r\n },\r\n }}\r\n >\r\n {isSubmitting ? (\r\n <>\r\n <CircularProgress size={20} />\r\n <Typography sx={{ paddingLeft: 2 }}>\r\n Submitting...\r\n </Typography>\r\n </>\r\n ) : useDefaultValue && useDefault ? (\r\n \"Default already Accepted\"\r\n ) : useDefaultValue === false ? (\r\n \"Submit for review\"\r\n ) : (\r\n \"Submit\"\r\n )}\r\n </Button>\r\n {variableReqType === RequirementType.Optional && (\r\n <Button\r\n onClick={onDeclineWording}\r\n variant=\"outline\"\r\n size=\"md\"\r\n sx={{\r\n backgroundColor: \"#ff464652\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ff464680\", // Darker purple on hover\r\n },\r\n }}\r\n disabled={canSubmitSave}\r\n >\r\n Decline wording\r\n </Button>\r\n )}\r\n </Box>\r\n ) : (\r\n <Box sx={{ display: \"flex\", gap: 1.5, flexWrap: \"wrap\" }}>\r\n <Button\r\n onClick={() => {\r\n setIsSubmitting(true);\r\n // Pass the default value and true directly to onSubmit\r\n const payloadValue = toStorage(toDisplay(defaultValue));\r\n setCustomValue(textValue);\r\n setTextValue(toDisplay(defaultValue));\r\n setUseDefaultValue(true);\r\n onSubmit?.(payloadValue, true);\r\n }}\r\n variant=\"outline\"\r\n size=\"md\"\r\n disabled={canSubmitSave}\r\n sx={{\r\n backgroundColor: \"#ff464652\",\r\n \"&:hover\": {\r\n backgroundColor: \"#ff464680\",\r\n },\r\n }}\r\n >\r\n {isSubmitting ? (\r\n <>\r\n <CircularProgress size={20} />\r\n <Typography sx={{ paddingLeft: 2 }}>\r\n Restoring...\r\n </Typography>\r\n </>\r\n ) : (\r\n \"Restore wording\"\r\n )}\r\n </Button>\r\n </Box>\r\n )}\r\n {/* Navigation */}\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 1.5,\r\n justifyContent: { xs: \"space-between\", sm: \"flex-end\" },\r\n }}\r\n >\r\n {currentPage !== 1 && (\r\n <NavButton\r\n onClick={onPrevious}\r\n aria-label=\"Previous\"\r\n disabled={isLoading}\r\n >\r\n <ArrowBackIosRounded\r\n sx={{ fontSize: 20, color: theme.palette.text.primary }}\r\n />\r\n </NavButton>\r\n )}\r\n {currentPage !== totalPages && (\r\n <NavButton\r\n onClick={onNext}\r\n aria-label=\"Next\"\r\n disabled={isLoading}\r\n >\r\n <ArrowForwardIosRounded\r\n sx={{ fontSize: 20, color: theme.palette.text.primary }}\r\n />\r\n </NavButton>\r\n )}\r\n <Typography fontWeight={500} fontSize=\"1.125rem\">\r\n {currentPage}/{totalPages}\r\n </Typography>\r\n </Box>\r\n </Box>\r\n </DialogContent>\r\n </StyledDialog>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { __exports as lib } from '../../../_virtual/index4.js';
1
+ import { __exports as lib } from '../../../_virtual/index3.js';
2
2
  import { __require as requireLib$1 } from '../../domelementtype/lib/index.js';
3
3
  import { __require as requireNode } from './node.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { __exports as lib } from '../../../_virtual/index3.js';
1
+ import { __exports as lib } from '../../../_virtual/index4.js';
2
2
  import { __require as requireHtmlToDom } from './server/html-to-dom.js';
3
3
  import { __require as requireTypes } from './types.js';
4
4
 
@@ -1,2 +1,2 @@
1
- declare const ECETheme: any;
1
+ declare const ECETheme: import("@mui/material").Theme;
2
2
  export default ECETheme;
@@ -1,2 +1,2 @@
1
- declare const GPTheme: any;
1
+ declare const GPTheme: import("@mui/material").Theme;
2
2
  export default GPTheme;
@@ -1,2 +1,2 @@
1
- declare const LightnTheme: any;
1
+ declare const LightnTheme: import("@mui/material").Theme;
2
2
  export default LightnTheme;
@@ -1,2 +1,2 @@
1
- declare const SchoolTheme: any;
1
+ declare const SchoolTheme: import("@mui/material").Theme;
2
2
  export default SchoolTheme;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ece-docs-components",
3
- "version": "1.0.101",
3
+ "version": "1.0.102",
4
4
  "type": "module",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",