@form-eng/mui 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/fields/Textbox.tsx","../src/components/ReadOnlyText.tsx","../src/helpers.ts","../src/fields/Number.tsx","../src/fields/Toggle.tsx","../src/fields/Dropdown.tsx","../src/fields/MultiSelect.tsx","../src/fields/DateControl.tsx","../src/fields/Slider.tsx","../src/fields/DynamicFragment.tsx","../src/fields/SimpleDropdown.tsx","../src/fields/MultiSelectSearch.tsx","../src/fields/PopOutEditor.tsx","../src/components/StatusMessage.tsx","../src/fields/DocumentLinks.tsx","../src/fields/StatusDropdown.tsx","../src/fields/readonly/ReadOnly.tsx","../src/fields/readonly/ReadOnlyArray.tsx","../src/fields/readonly/ReadOnlyDateTime.tsx","../src/fields/readonly/ReadOnlyCumulativeNumber.tsx","../src/fields/readonly/ReadOnlyRichText.tsx","../src/fields/readonly/ReadOnlyWithButton.tsx","../src/components/FormLoading.tsx","../src/registry.ts"],"sourcesContent":["import { IFieldProps } from \"@form-eng/core\";\nimport { TextField } from \"@mui/material\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface ITextboxProps {\n ellipsifyTextCharacters?: number;\n placeHolder?: string;\n multiline?: boolean;\n}\n\nconst Textbox = (props: IFieldProps<ITextboxProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, placeholder, setFieldValue } = props;\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setFieldValue(fieldName, event.target.value, false, 3000);\n };\n\n return readOnly ? (\n <ReadOnlyText\n fieldName={fieldName}\n value={value as string}\n ellipsifyTextCharacters={config?.ellipsifyTextCharacters}\n />\n ) : (\n <TextField\n className={FieldClassName(\"hook-textbox\", error)}\n autoComplete=\"off\"\n value={(value as string) ?? \"\"}\n onChange={onChange}\n size=\"small\"\n fullWidth\n error={!!error}\n required={required}\n placeholder={placeholder ?? config?.placeHolder}\n helperText={error?.message}\n inputProps={{\n \"data-testid\": GetFieldDataTestId(fieldName, programName, entityType, entityId),\n }}\n />\n );\n};\n\nexport default Textbox;\n","import { Typography } from \"@mui/material\";\nimport React from \"react\";\n\nexport interface IReadOnlyFieldProps {\n readonly value?: string;\n readonly fieldName?: string;\n readonly labelClassName?: string;\n readonly valueClassName?: string;\n readonly showControlOnSide?: boolean;\n readonly containerClassName?: string;\n readonly ellipsifyTextCharacters?: number;\n}\n\nexport const ReadOnlyText: React.FunctionComponent<IReadOnlyFieldProps> = (props: IReadOnlyFieldProps) => {\n const { value, fieldName, valueClassName, showControlOnSide, containerClassName, ellipsifyTextCharacters } = props;\n const classNameValue = valueClassName === undefined ? \"read-only-field\" : valueClassName;\n const cutoff = (ellipsifyTextCharacters || 0) - 3;\n\n return (\n <div className={`${showControlOnSide ? \"flexBox\" : \"\"} ${containerClassName ?? \"\"}`}>\n <Typography\n variant=\"body2\"\n id={`${fieldName}-read-only`}\n className={classNameValue}\n title={value}\n component=\"span\"\n >\n {value ? (\n <>\n {ellipsifyTextCharacters && value.length > ellipsifyTextCharacters\n ? `${value.substring(0, cutoff)}...`\n : value}\n </>\n ) : (\n <>-</>\n )}\n </Typography>\n </div>\n );\n};\n\nexport default ReadOnlyText;\n","import { FieldError } from \"react-hook-form\";\n\nexport const FieldClassName = (className: string, error?: FieldError): string => {\n return error ? `${className} error` : className;\n};\n\nexport const GetFieldDataTestId = (\n fieldName: string,\n programName?: string,\n entityType?: string,\n entityId?: string\n): string => {\n return `${programName}-${entityType}-${entityId}-${fieldName}`;\n};\n\nexport function formatDateTime(dateStr: string, options?: { hideTimestamp?: boolean }): string {\n if (!dateStr) return \"\";\n const date = new Date(dateStr);\n if (isNaN(date.getTime())) return dateStr;\n if (options?.hideTimestamp) {\n return date.toLocaleDateString(undefined, { year: \"numeric\", month: \"short\", day: \"numeric\" });\n }\n return date.toLocaleString(undefined, { year: \"numeric\", month: \"short\", day: \"numeric\", hour: \"2-digit\", minute: \"2-digit\" });\n}\n\nexport const DocumentLinksStrings = {\n link: \"Link\",\n addLink: \"Add Link\",\n addAnotherLink: \"Add Another Link\",\n deleteLink: \"Delete Link\",\n confirmDeleteLink: \"Are you sure you want to delete\",\n delete: \"Delete\",\n cancel: \"Cancel\",\n saveChanges: \"Save Changes\",\n save: \"Save\",\n};\n","import { IFieldProps, isNull } from \"@form-eng/core\";\nimport { TextField } from \"@mui/material\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\nconst NumberField = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, setFieldValue } = props;\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const number = Number(event.target.value);\n if (!isNaN(number)) {\n setFieldValue(fieldName, number, false, 1500);\n }\n };\n\n return readOnly ? (\n <ReadOnlyText fieldName={fieldName} value={String(value)} />\n ) : (\n <TextField\n className={FieldClassName(\"hook-number\", error)}\n autoComplete=\"off\"\n type=\"number\"\n value={!isNull(value) ? String(value) : \"\"}\n onChange={onChange}\n size=\"small\"\n fullWidth\n error={!!error}\n required={required}\n helperText={error?.message}\n inputProps={{\n \"data-testid\": GetFieldDataTestId(fieldName, programName, entityType, entityId),\n }}\n />\n );\n};\n\nexport default NumberField;\n","import { IFieldProps, convertBooleanToYesOrNoText } from \"@form-eng/core\";\nimport { Switch, FormControlLabel } from \"@mui/material\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { GetFieldDataTestId } from \"../helpers\";\n\nconst Toggle = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, setFieldValue } = props;\n\n const onChange = (_: React.ChangeEvent<HTMLInputElement>, checked: boolean) => {\n setFieldValue(fieldName, checked);\n };\n\n return readOnly ? (\n <ReadOnlyText fieldName={fieldName} value={convertBooleanToYesOrNoText(value as boolean)} />\n ) : (\n <FormControlLabel\n className=\"hook-toggle\"\n control={\n <Switch\n checked={value as boolean}\n onChange={onChange}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n }\n label=\"\"\n />\n );\n};\n\nexport default Toggle;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { FormControl, Select, MenuItem } from \"@mui/material\";\nimport type { SelectChangeEvent } from \"@mui/material\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface IDropdownProps {\n placeHolder?: string;\n setDefaultKeyIfOnlyOneOption?: boolean;\n}\n\nconst Dropdown = (props: IFieldProps<IDropdownProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, placeholder, options, setFieldValue } = props;\n\n const onChange = (event: SelectChangeEvent<string>) => {\n setFieldValue(fieldName, event.target.value);\n };\n\n React.useEffect(() => {\n if (!value && !readOnly && config?.setDefaultKeyIfOnlyOneOption && options?.length === 1) {\n setFieldValue(fieldName, String(options[0].value));\n }\n }, [options]);\n\n return readOnly ? (\n <ReadOnlyText fieldName={fieldName} value={value as string} />\n ) : (\n <FormControl fullWidth size=\"small\" error={!!error} required={required}>\n <Select\n className={FieldClassName(\"hook-dropdown\", error)}\n value={value ? String(value) : \"\"}\n onChange={onChange}\n displayEmpty\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n >\n {!value && (placeholder ?? config?.placeHolder) && (\n <MenuItem value=\"\" disabled>{placeholder ?? config?.placeHolder}</MenuItem>\n )}\n {options?.map(option => (\n <MenuItem key={String(option.value)} value={String(option.value)} disabled={option.disabled}>\n {option.label}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n};\n\nexport default Dropdown;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { FormControl, Select, MenuItem, Chip, Box } from \"@mui/material\";\nimport type { SelectChangeEvent } from \"@mui/material\";\nimport React from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\nconst MultiSelect = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, options, setFieldValue } = props;\n\n const { watch } = useFormContext();\n const selectedOptions = (watch(`${fieldName}` as const) as string[]) ?? [];\n\n const onChange = (event: SelectChangeEvent<string[]>) => {\n const newValue = event.target.value;\n setFieldValue(fieldName, typeof newValue === \"string\" ? newValue.split(\",\") : newValue, false, 1500);\n };\n\n return readOnly ? (\n <>\n {value && (value as string[]).length > 0 ? (\n <Box className=\"hook-multi-select-read-only\" sx={{ display: \"flex\", flexWrap: \"wrap\", gap: 0.5 }}>\n {(value as string[]).map(v => (\n <Chip key={v} label={v} size=\"small\" />\n ))}\n </Box>\n ) : null}\n </>\n ) : (\n <FormControl fullWidth size=\"small\" error={!!error} required={required}>\n <Select\n className={FieldClassName(\"hook-multi-select\", error)}\n multiple\n value={selectedOptions}\n onChange={onChange}\n aria-invalid={!!error}\n aria-required={required}\n renderValue={(selected) => (\n <Box sx={{ display: \"flex\", flexWrap: \"wrap\", gap: 0.5 }}>\n {(selected as string[]).map((val) => (\n <Chip key={val} label={val} size=\"small\" />\n ))}\n </Box>\n )}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n >\n {options?.map(option => (\n <MenuItem key={String(option.value)} value={String(option.value)} disabled={option.disabled}>\n {option.label}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n};\n\nexport default MultiSelect;\n","import { IFieldProps, FormStrings } from \"@form-eng/core\";\nimport { TextField, IconButton } from \"@mui/material\";\nimport React from \"react\";\nimport { FieldClassName, GetFieldDataTestId, formatDateTime } from \"../helpers\";\n\nconst DateControl = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, setFieldValue } = props;\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const date = new Date(event.target.value);\n if (!isNaN(date.getTime())) {\n setFieldValue(fieldName, date.toISOString());\n }\n };\n\n const onClearDate = () => {\n setFieldValue(fieldName, null);\n };\n\n const dateInputValue = value ? new Date(value as string).toISOString().split(\"T\")[0] : \"\";\n\n return readOnly ? (\n <>\n {value ? (\n <span className=\"hook-read-only-date\">{formatDateTime(value as string, { hideTimestamp: true })}</span>\n ) : (\n <>-</>\n )}\n </>\n ) : (\n <div className=\"hook-date-control-container\" style={{ display: \"flex\", alignItems: \"center\", gap: \"4px\" }}>\n <TextField\n className={FieldClassName(\"hook-date-control\", error)}\n type=\"date\"\n value={dateInputValue}\n onChange={onChange}\n size=\"small\"\n fullWidth\n error={!!error}\n required={required}\n helperText={error?.message}\n InputLabelProps={{ shrink: true }}\n inputProps={{\n \"data-testid\": GetFieldDataTestId(fieldName, programName, entityType, entityId),\n }}\n />\n <IconButton\n size=\"small\"\n onClick={onClearDate}\n title={FormStrings.clickToClear}\n aria-label={`${fieldName} ${FormStrings.clear}`}\n >\n &#10005;\n </IconButton>\n </div>\n );\n};\n\nexport default DateControl;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Slider as MuiSlider } from \"@mui/material\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface ISliderProps {\n max?: number;\n min?: number;\n step?: number;\n}\n\nconst Slider = (props: IFieldProps<ISliderProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, setFieldValue } = props;\n\n const onChange = (_: Event, newValue: number | number[]) => {\n setFieldValue(fieldName, newValue as number);\n };\n\n return readOnly ? (\n <ReadOnlyText fieldName={fieldName} value={String(value)} />\n ) : (\n <MuiSlider\n className={FieldClassName(\"hook-slider\", error)}\n value={(value as number) ?? 0}\n onChange={onChange}\n max={config?.max}\n min={config?.min}\n step={config?.step}\n valueLabelDisplay=\"auto\"\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n );\n};\n\nexport default Slider;\n","import { IFieldProps } from \"@form-eng/core\";\nimport React from \"react\";\n\nconst DynamicFragment = (props: IFieldProps<{}>) => {\n const { value } = props;\n return <input type=\"hidden\" value={value as string} />;\n};\n\nexport default DynamicFragment;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { FormControl, Select, MenuItem } from \"@mui/material\";\nimport type { SelectChangeEvent } from \"@mui/material\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface ISimpleDropdownProps {\n dropdownOptions?: string[];\n placeHolder?: string;\n}\n\nconst SimpleDropdown = (props: IFieldProps<ISimpleDropdownProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, placeholder, setFieldValue } = props;\n\n const simpleOptions = config?.dropdownOptions ?? [];\n\n const onChange = (event: SelectChangeEvent<string>) => {\n setFieldValue(fieldName, event.target.value);\n };\n\n return readOnly ? (\n <ReadOnlyText fieldName={fieldName} value={value as string} />\n ) : (\n <FormControl fullWidth size=\"small\" error={!!error} required={required}>\n <Select\n className={FieldClassName(\"hook-dropdown\", error)}\n value={(value as string) ?? \"\"}\n onChange={onChange}\n displayEmpty\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n >\n {!value && (placeholder ?? config?.placeHolder) && (\n <MenuItem value=\"\" disabled>{placeholder ?? config?.placeHolder}</MenuItem>\n )}\n {simpleOptions.map(option => (\n <MenuItem key={option} value={option}>{option}</MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n};\n\nexport default SimpleDropdown;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Autocomplete, TextField, Chip, Box } from \"@mui/material\";\nimport React from \"react\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\nconst MultiSelectSearch = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, options: dropdownOptions, setFieldValue } = props;\n\n const selectedValues = (value as string[]) ?? [];\n\n const mappedOptions = dropdownOptions?.map(o => ({\n value: String(o.value),\n label: o.label,\n disabled: !!o.disabled,\n })) ?? [];\n\n const onChange = (_: unknown, newValue: { value: string; label: string; disabled: boolean }[]) => {\n setFieldValue(fieldName, newValue.map(v => v.value), false, 3000);\n };\n\n return readOnly ? (\n <>\n {value && (value as string[]).length > 0 ? (\n <Box className=\"hook-multi-select-search-read-only\" sx={{ display: \"flex\", flexWrap: \"wrap\", gap: 0.5 }}>\n {(value as string[]).map(v => (\n <Chip key={v} label={v} size=\"small\" />\n ))}\n </Box>\n ) : null}\n </>\n ) : (\n <Autocomplete\n className={FieldClassName(\"hook-multi-select-search\", error)}\n multiple\n freeSolo\n aria-required={required}\n options={mappedOptions}\n getOptionLabel={(option) => typeof option === \"string\" ? option : option.label}\n getOptionDisabled={(option) => typeof option === \"string\" ? false : !!option.disabled}\n value={mappedOptions.filter(o => selectedValues.includes(o.value))}\n onChange={onChange}\n renderTags={(tagValue, getTagProps) =>\n tagValue.map((option, index) => (\n <Chip\n size=\"small\"\n label={typeof option === \"string\" ? option : option.label}\n {...getTagProps({ index })}\n key={typeof option === \"string\" ? option : option.value}\n />\n ))\n }\n renderInput={(params) => (\n <TextField\n {...params}\n size=\"small\"\n error={!!error}\n required={required}\n helperText={error?.message}\n inputProps={{\n ...params.inputProps,\n \"data-testid\": GetFieldDataTestId(fieldName, programName, entityType, entityId),\n }}\n />\n )}\n />\n );\n};\n\nexport default MultiSelectSearch;\n","import { IFieldProps, FormStrings } from \"@form-eng/core\";\nimport {\n TextField, Button, Dialog, DialogTitle, DialogContent, DialogActions, IconButton,\n} from \"@mui/material\";\nimport React, { useState } from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { StatusMessage } from \"../components/StatusMessage\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface IPopOutEditorProps {\n autoAdjustHeight?: boolean;\n numberOfRows?: number;\n ellipsifyTextCharacters?: number;\n additionalInfo?: string;\n maxLimit?: number;\n saveCallback?: () => void;\n renderExtraModalFooter?: () => React.ReactNode;\n}\n\nconst PopOutEditor = (props: IFieldProps<IPopOutEditorProps>) => {\n const {\n error, fieldName, programName, entityType, entityId, config, readOnly,\n required, savePending, saving, value, label, setFieldValue\n } = props;\n\n const [modalValue, setModalValue] = useState<string>();\n const [modalVisible, setModalVisible] = useState(false);\n const [dialogVisible, setDialogVisible] = useState(false);\n\n const onChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = event.target.value;\n modalVisible ? setModalValue(newValue) : setFieldValue(fieldName, newValue, false, 3000);\n };\n\n const onExpandButtonClick = () => {\n setModalVisible(true);\n setModalValue(value ? `${value}` : \"\");\n };\n\n const onSaveButtonClick = () => {\n setFieldValue(fieldName, modalValue, false);\n setDialogVisible(false);\n setModalVisible(false);\n config?.saveCallback?.();\n };\n\n const onCancelButtonClick = () => {\n if (dialogVisible) {\n setDialogVisible(false);\n setModalVisible(false);\n } else if (modalValue !== value) {\n setDialogVisible(true);\n } else {\n setModalVisible(false);\n }\n };\n\n if (readOnly) {\n return (\n <ReadOnlyText\n fieldName={fieldName}\n value={value ? `${value}` : \"\"}\n ellipsifyTextCharacters={config?.ellipsifyTextCharacters}\n />\n );\n }\n\n return (\n <>\n <div className=\"hook-textarea\">\n <TextField\n className={FieldClassName(\"hook-text-area\", error)}\n autoComplete=\"off\"\n multiline\n rows={config?.numberOfRows ?? 4}\n value={modalVisible ? `${modalValue}` : value ? `${value}` : \"\"}\n onChange={onChange}\n size=\"small\"\n fullWidth\n error={!!error}\n helperText={error?.message}\n inputProps={{\n \"data-testid\": GetFieldDataTestId(fieldName, programName, entityType, entityId),\n }}\n />\n <Button\n className=\"expand-button\"\n variant=\"outlined\"\n size=\"small\"\n onClick={onExpandButtonClick}\n aria-label={FormStrings.openExpandedTextEditor}\n sx={{ mt: 1 }}\n >\n {FormStrings.expand}\n </Button>\n </div>\n\n <Dialog\n open={modalVisible}\n onClose={onCancelButtonClick}\n maxWidth=\"md\"\n fullWidth\n >\n <DialogTitle sx={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n <span>\n {label}{required && <span className=\"required-indicator\"> *</span>}\n </span>\n <IconButton\n size=\"small\"\n onClick={onCancelButtonClick}\n aria-label={FormStrings.closeExpandedTextEditor}\n >\n &#10005;\n </IconButton>\n </DialogTitle>\n <DialogContent>\n <TextField\n className={FieldClassName(\"hook-text-area\", error)}\n autoComplete=\"off\"\n multiline\n rows={12}\n value={modalVisible ? `${modalValue}` : value ? `${value}` : \"\"}\n onChange={onChange}\n fullWidth\n error={!!error}\n sx={{ mt: 1 }}\n />\n </DialogContent>\n <DialogActions>\n {config?.renderExtraModalFooter && <div className=\"custom-footer\">{config.renderExtraModalFooter()}</div>}\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n {(savePending || saving) && (\n <StatusMessage savePending={!error ? savePending : undefined} saving={saving} error={error} />\n )}\n </div>\n <Button variant=\"outlined\" onClick={onCancelButtonClick}>{FormStrings.cancel}</Button>\n <Button\n variant=\"contained\"\n onClick={onSaveButtonClick}\n disabled={!config?.saveCallback && modalValue === (value as string)}\n data-testid={`${programName}-${entityType}-${entityId}-save-note`}\n >\n {FormStrings.save}\n </Button>\n </DialogActions>\n </Dialog>\n\n <Dialog open={dialogVisible} onClose={() => setDialogVisible(false)}>\n <DialogTitle>{FormStrings.unsavedChanges}</DialogTitle>\n <DialogContent>{FormStrings.saveChangesTo(label)}</DialogContent>\n <DialogActions>\n <Button variant=\"outlined\" onClick={onCancelButtonClick}>{FormStrings.dontSave}</Button>\n <Button variant=\"contained\" onClick={onSaveButtonClick}>{FormStrings.save}</Button>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n\nexport default PopOutEditor;\n","import { FormStrings } from \"@form-eng/core\";\nimport { CircularProgress } from \"@mui/material\";\nimport React from \"react\";\nimport { FieldError } from \"react-hook-form\";\n\ninterface IStatusMessageProps {\n id?: string;\n readonly error?: FieldError;\n readonly errorCount?: number;\n readonly savePending?: boolean;\n readonly saving?: boolean;\n}\n\nexport const StatusMessage: React.FunctionComponent<IStatusMessageProps> = (props: IStatusMessageProps) => {\n const { id, error, errorCount, savePending, saving } = props;\n return (\n <div className=\"message\">\n {error ? (\n <>\n <span className=\"error-icon\" style={{ color: \"#d32f2f\", fontSize: \"16px\" }}>&#9888;</span>\n <span className=\"error-message\" id={id} role=\"alert\">\n {error.message || \"Error\"}\n </span>\n </>\n ) : savePending ? (\n <>\n <span className=\"warning-icon\" style={{ color: \"#ed6c02\", fontSize: \"16px\" }}>&#9888;</span>\n <span className=\"warning-message\" id={id} role=\"alert\">\n {FormStrings.autoSavePending} ({errorCount} {FormStrings.remaining})\n </span>\n </>\n ) : saving ? (\n <>\n <CircularProgress size={16} />\n <span className=\"save-message\" id={id} role=\"alert\">\n {FormStrings.saving}\n </span>\n </>\n ) : null}\n </div>\n );\n};\n","import { IFieldProps, FormStrings, FormConstants } from \"@form-eng/core\";\nimport {\n Button, IconButton, TextField, Dialog, DialogTitle, DialogContent, DialogActions,\n List, ListItem, ListItemText, Tooltip, Typography,\n} from \"@mui/material\";\nimport React from \"react\";\nimport { Controller, useForm, useFormContext } from \"react-hook-form\";\nimport { FieldClassName, GetFieldDataTestId, DocumentLinksStrings } from \"../helpers\";\n\nexport interface IDocumentLink {\n title: string;\n url: string;\n}\n\ninterface IDocumentLinkItemProps {\n fieldName: string;\n programName?: string;\n entityType?: string;\n entityId?: string;\n readOnly?: boolean;\n index?: number;\n title?: string;\n url?: string;\n addNewLink?: boolean;\n saveLinks: (newLink: IDocumentLink, addNewLink?: boolean, index?: number) => void;\n onCancelAddLink?: () => void;\n onConfirmDeleteLink?: (index: number) => void;\n}\n\nconst DocumentLinkItem = (props: IDocumentLinkItemProps) => {\n const {\n fieldName, programName, entityType, entityId, readOnly, index, title, url, addNewLink,\n saveLinks, onCancelAddLink, onConfirmDeleteLink\n } = props;\n const { confirm, cancel, linkTitleLabel, linkUrlLabel, add, edit, deleteLabel } = FormStrings;\n\n const [editingLink, setEditingLink] = React.useState<boolean>(false);\n\n const { control, handleSubmit, setValue, reset, trigger } = useForm({\n mode: \"onChange\",\n defaultValues: { title: addNewLink ? \"\" : title, url: addNewLink ? \"\" : url }\n });\n\n const onSubmit = (data: { title: string; url: string }) => {\n saveLinks({ title: data.title, url: data.url }, addNewLink, index);\n setEditingLink(false);\n };\n\n React.useEffect(() => {\n setEditingLink(addNewLink);\n }, [title, url, addNewLink]);\n\n const onLinkTitleChange = (e: React.ChangeEvent<HTMLInputElement>) => { setValue(\"title\", e.target.value); trigger(\"title\"); };\n const onLinkUrlChange = (e: React.ChangeEvent<HTMLInputElement>) => { setValue(\"url\", e.target.value); trigger(\"url\"); };\n const onEditDocumentLink = () => setEditingLink(true);\n const onCancelFormChanges = () => { reset(); setEditingLink(false); onCancelAddLink?.(); };\n const onDelete = () => onConfirmDeleteLink(index);\n\n return editingLink ? (\n <div className=\"editing-link\">\n <form onSubmit={handleSubmit(onSubmit)}>\n <div className=\"header\" style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\", marginBottom: \"8px\" }}>\n <Typography variant=\"subtitle2\">\n {addNewLink ? add : edit} {DocumentLinksStrings.link}\n </Typography>\n <div style={{ display: \"flex\", gap: \"4px\" }}>\n <IconButton size=\"small\" aria-label={confirm} onClick={handleSubmit(onSubmit)}>&#10003;</IconButton>\n <IconButton size=\"small\" aria-label={cancel} onClick={onCancelFormChanges}>&#10005;</IconButton>\n </div>\n </div>\n <Controller name=\"title\" control={control} rules={{ required: { value: true, message: FormStrings.required } }}\n render={({ field, fieldState: { error } }) => (\n <div style={{ marginBottom: \"8px\" }}>\n <TextField\n label={linkTitleLabel}\n value={field.value}\n onChange={onLinkTitleChange}\n required\n size=\"small\"\n fullWidth\n error={!!error}\n helperText={error?.message}\n inputProps={{\n \"data-testid\": `${GetFieldDataTestId(fieldName, programName, entityType, entityId)}-link-title`,\n }}\n />\n </div>\n )} />\n <Controller name=\"url\" control={control}\n rules={{\n required: { value: true, message: FormStrings.required },\n pattern: { value: FormConstants.urlRegex, message: FormStrings.urlRequired }\n }}\n render={({ field, fieldState: { error } }) => (\n <div style={{ marginBottom: \"8px\" }}>\n <TextField\n label={linkUrlLabel}\n value={field.value}\n onChange={onLinkUrlChange}\n required\n size=\"small\"\n fullWidth\n error={!!error}\n helperText={error?.message}\n inputProps={{\n \"data-testid\": `${GetFieldDataTestId(fieldName, programName, entityType, entityId)}-link-url`,\n }}\n />\n </div>\n )} />\n </form>\n </div>\n ) : addNewLink ? null : (\n <ListItem\n className=\"document-link-item\"\n disableGutters\n secondaryAction={\n !readOnly ? (\n <div style={{ display: \"flex\", gap: \"2px\" }}>\n <Tooltip title={edit}><IconButton size=\"small\" aria-label={edit} onClick={onEditDocumentLink}>&#9998;</IconButton></Tooltip>\n <Tooltip title={deleteLabel}><IconButton size=\"small\" aria-label={deleteLabel} onClick={onDelete}>&#128465;</IconButton></Tooltip>\n </div>\n ) : undefined\n }\n >\n <ListItemText\n primary={\n <a className=\"link\" href={url} target=\"_blank\" rel=\"noopener noreferrer\">{title}</a>\n }\n />\n </ListItem>\n );\n};\n\nconst DocumentLinks = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, setFieldValue } = props;\n\n const { watch } = useFormContext();\n const documentLinks = watch(`${fieldName}` as const);\n\n const [addNewLink, setAddNewLink] = React.useState<boolean>(false);\n const [deleteLinkIndex, setDeleteLinkIndex] = React.useState<number | undefined>(undefined);\n\n const onUpdateLinks = (newLink: IDocumentLink, addNew?: boolean, index?: number) => {\n let newDocumentLinks: IDocumentLink[] = [];\n if (addNew && !documentLinks) {\n newDocumentLinks = [newLink];\n } else if (addNew) {\n newDocumentLinks = [...documentLinks, newLink];\n } else {\n newDocumentLinks = [...documentLinks];\n newDocumentLinks[index] = newLink;\n }\n setFieldValue(fieldName, newDocumentLinks);\n };\n\n const onDeleteLink = (index: number) => {\n const newDocumentLinks = [...documentLinks];\n newDocumentLinks.splice(index, 1);\n setFieldValue(fieldName, newDocumentLinks);\n };\n\n const onAddNewLink = () => setAddNewLink(true);\n const onCancelAddLink = () => setAddNewLink(false);\n const onConfirmDeleteLink = (index: number) => setDeleteLinkIndex(index);\n const onCloseDeleteDialog = () => setDeleteLinkIndex(undefined);\n const commitDeleteLink = () => { onDeleteLink(deleteLinkIndex); setDeleteLinkIndex(undefined); };\n const saveLinks = (newLink: IDocumentLink, addNew?: boolean, index?: number) => { onUpdateLinks(newLink, addNew, index); setAddNewLink(false); };\n\n const links = value as IDocumentLink[];\n\n return (\n <div className={FieldClassName(\"hook-document-links\", readOnly ? undefined : error)}>\n <List disablePadding>\n {links?.length > 0 ? links.map((link, index) => (\n <DocumentLinkItem\n key={`${link.url}-${index}`} fieldName={fieldName} programName={programName}\n entityType={entityType} entityId={entityId} index={index} title={link.title}\n url={link.url} saveLinks={saveLinks} onConfirmDeleteLink={onConfirmDeleteLink} readOnly={readOnly}\n />\n )) : null}\n </List>\n {addNewLink ? (\n <DocumentLinkItem fieldName={fieldName} programName={programName} entityType={entityType} entityId={entityId}\n addNewLink saveLinks={saveLinks} onCancelAddLink={onCancelAddLink} />\n ) : !readOnly ? (\n <div className=\"add-link\" style={{ marginTop: \"8px\" }}>\n <Tooltip title={DocumentLinksStrings.addAnotherLink}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n onClick={onAddNewLink}\n data-testid={`${GetFieldDataTestId(fieldName, programName, entityType, entityId)}-add-link`}\n >\n {links?.length > 0 ? DocumentLinksStrings.addAnotherLink : DocumentLinksStrings.addLink}\n </Button>\n </Tooltip>\n </div>\n ) : null}\n\n <Dialog open={deleteLinkIndex !== undefined} onClose={onCloseDeleteDialog}>\n <DialogTitle>{DocumentLinksStrings.deleteLink}</DialogTitle>\n <DialogContent>\n {`${DocumentLinksStrings.confirmDeleteLink} ${links?.[deleteLinkIndex]?.title || \"\"}?`}\n </DialogContent>\n <DialogActions>\n <Button variant=\"outlined\" onClick={onCloseDeleteDialog}>{DocumentLinksStrings.cancel}</Button>\n <Button variant=\"contained\" onClick={commitDeleteLink}>{DocumentLinksStrings.delete}</Button>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport default DocumentLinks;\n","import { IFieldProps, Dictionary } from \"@form-eng/core\";\nimport { FormControl, Select, MenuItem, Chip } from \"@mui/material\";\nimport type { SelectChangeEvent } from \"@mui/material\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\nexport interface IStatusDropdownProps {\n placeHolder?: string;\n statusColors?: Dictionary<string>;\n}\n\nconst StatusDot = ({ color }: { color?: string }) => (\n <span\n className=\"status-color\"\n style={{\n display: \"inline-block\",\n backgroundColor: color || \"transparent\",\n width: \"12px\",\n height: \"12px\",\n borderRadius: \"50%\",\n flexShrink: 0,\n marginRight: \"8px\",\n }}\n />\n);\n\nconst StatusDropdown = (props: IFieldProps<IStatusDropdownProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, config, options, setFieldValue } = props;\n\n const statusColors = (config?.statusColors ?? {}) as Dictionary<string>;\n\n const onChange = (event: SelectChangeEvent<string>) => {\n setFieldValue(fieldName, event.target.value);\n };\n\n return readOnly ? (\n <div className=\"hook-read-only-status-dropdown\" style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <StatusDot color={statusColors && value ? statusColors[value as string] : undefined} />\n <ReadOnlyText fieldName={fieldName} value={value as string} />\n </div>\n ) : (\n <div className={FieldClassName(\"hook-status-dropdown\", error)} style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <StatusDot color={statusColors && value ? statusColors[value as string] : undefined} />\n <FormControl fullWidth size=\"small\" error={!!error}>\n <Select\n value={value ? String(value) : \"\"}\n onChange={onChange}\n displayEmpty\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n renderValue={(selected) => {\n const option = options?.find(o => String(o.value) === selected);\n return option?.label ?? \"\";\n }}\n >\n {options?.map(option => (\n <MenuItem key={String(option.value)} value={String(option.value)} disabled={option.disabled}>\n <StatusDot color={statusColors[String(option.value)]} />\n {option.label}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </div>\n );\n};\n\nexport default StatusDropdown;\n","import { IFieldProps } from \"@form-eng/core\";\nimport React from \"react\";\nimport { ReadOnlyText, IReadOnlyFieldProps } from \"../../components/ReadOnlyText\";\n\ninterface IReadOnlyProps extends IReadOnlyFieldProps {}\n\nconst ReadOnly = (props: IFieldProps<IReadOnlyProps>) => {\n const { fieldName, value, config } = props;\n return <ReadOnlyText fieldName={fieldName} value={value as string} {...config} />;\n};\n\nexport default ReadOnly;\n","import { IFieldProps } from \"@form-eng/core\";\nimport React from \"react\";\nimport { ReadOnlyText, IReadOnlyFieldProps } from \"../../components/ReadOnlyText\";\n\nconst ReadOnlyArray = (props: IFieldProps<IReadOnlyFieldProps>) => {\n const { fieldName, value, config } = props;\n return (\n <>\n {(value as string[])?.map((v, i) => (\n <ReadOnlyText key={i} fieldName={fieldName} value={v} {...config} />\n ))}\n </>\n );\n};\n\nexport default ReadOnlyArray;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Typography } from \"@mui/material\";\nimport React from \"react\";\nimport { formatDateTime } from \"../../helpers\";\n\ninterface IReadOnlyDateTimeProps {\n isListView?: boolean;\n hidetimeStamp?: boolean;\n}\n\nconst ReadOnlyDateTime = (props: IFieldProps<IReadOnlyDateTimeProps>) => {\n const { config, value } = props;\n return (\n <>{value ? (\n <Typography variant=\"body2\" className=\"hook-read-only-date-time\" component=\"span\">\n {formatDateTime(value as string, { hideTimestamp: config?.hidetimeStamp })}\n </Typography>\n ) : <>-</>}</>\n );\n};\n\nexport default ReadOnlyDateTime;\n","import { IFieldProps, isEmpty } from \"@form-eng/core\";\nimport React from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport { ReadOnlyText, IReadOnlyFieldProps } from \"../../components/ReadOnlyText\";\n\ninterface IReadOnlyCumulativeNumberProps extends IReadOnlyFieldProps {\n dependencyFields?: string[];\n}\n\nconst ReadOnlyCumulativeNumber = (props: IFieldProps<IReadOnlyCumulativeNumberProps>) => {\n const { fieldName, config } = props;\n const { formState, getValues } = useFormContext();\n const [value, setValue] = React.useState<number>();\n const { dependencyFields } = config || {};\n\n React.useEffect(() => {\n const formValues = getValues();\n if (!isEmpty(dependencyFields)) {\n let totalCount = 0;\n (dependencyFields as string[]).map(fn => {\n totalCount += Number(formValues[fn]) || 0;\n });\n setValue(totalCount);\n }\n }, [formState]);\n\n return fieldName ? <ReadOnlyText fieldName={fieldName} value={String(value)} {...config} /> : <></>;\n};\n\nexport default ReadOnlyCumulativeNumber;\n","import { IFieldProps } from \"@form-eng/core\";\nimport React from \"react\";\n\nconst ReadOnlyRichText = (props: IFieldProps<{}>) => {\n const { value } = props;\n return (\n <div\n className=\"hook-read-only-rich-text-editor\"\n dangerouslySetInnerHTML={{ __html: value as string || \"\" }}\n />\n );\n};\n\nexport default ReadOnlyRichText;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Button } from \"@mui/material\";\nimport React from \"react\";\nimport { ReadOnlyText, IReadOnlyFieldProps } from \"../../components/ReadOnlyText\";\n\ninterface IReadOnlyWithButtonProps extends IReadOnlyFieldProps {\n containerClassName?: string;\n buttonText?: string;\n onButtonClick?: () => void;\n}\n\nconst ReadOnlyWithButton = (props: IFieldProps<IReadOnlyWithButtonProps>) => {\n const { fieldName, value, config } = props;\n return (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }} className={config?.containerClassName}>\n <ReadOnlyText fieldName={fieldName} value={`${value}`} />\n {config?.buttonText && (\n <Button variant=\"outlined\" size=\"small\" onClick={config.onButtonClick}>\n {config.buttonText}\n </Button>\n )}\n </div>\n );\n};\n\nexport default ReadOnlyWithButton;\n","import { FormConstants } from \"@form-eng/core\";\nimport { Skeleton } from \"@mui/material\";\nimport React from \"react\";\n\ninterface IFormLoadingProps {\n loadingShimmerCount?: number;\n loadingFieldShimmerHeight?: number;\n inPanel?: boolean;\n hideTitleShimmer?: boolean;\n}\n\nexport const FormLoading = (props: IFormLoadingProps) => {\n const { loadingShimmerCount, loadingFieldShimmerHeight, inPanel, hideTitleShimmer } = props;\n return (\n <div className={`fe-loading ${inPanel ? \"in-panel\" : \"\"}`}>\n {[...Array(loadingShimmerCount || FormConstants.loadingShimmerCount)].map((_, i) => (\n <div key={`fe-loading-${i}`} className=\"form-field-loading\" style={{ marginBottom: \"16px\" }}>\n {!hideTitleShimmer && <Skeleton variant=\"text\" width=\"33%\" />}\n <Skeleton\n variant=\"rectangular\"\n height={loadingFieldShimmerHeight || FormConstants.loadingFieldShimmerHeight}\n />\n </div>\n ))}\n </div>\n );\n};\n\nexport default FormLoading;\n","import { ComponentTypes, Dictionary } from \"@form-eng/core\";\nimport Textbox from \"./fields/Textbox\";\nimport Number from \"./fields/Number\";\nimport Toggle from \"./fields/Toggle\";\nimport Dropdown from \"./fields/Dropdown\";\nimport MultiSelect from \"./fields/MultiSelect\";\nimport DateControl from \"./fields/DateControl\";\nimport Slider from \"./fields/Slider\";\nimport DynamicFragment from \"./fields/DynamicFragment\";\nimport SimpleDropdown from \"./fields/SimpleDropdown\";\nimport MultiSelectSearch from \"./fields/MultiSelectSearch\";\nimport PopOutEditor from \"./fields/PopOutEditor\";\nimport DocumentLinks from \"./fields/DocumentLinks\";\nimport StatusDropdown from \"./fields/StatusDropdown\";\nimport ReadOnly from \"./fields/readonly/ReadOnly\";\nimport ReadOnlyArray from \"./fields/readonly/ReadOnlyArray\";\nimport ReadOnlyDateTime from \"./fields/readonly/ReadOnlyDateTime\";\nimport ReadOnlyCumulativeNumber from \"./fields/readonly/ReadOnlyCumulativeNumber\";\nimport ReadOnlyRichText from \"./fields/readonly/ReadOnlyRichText\";\nimport ReadOnlyWithButton from \"./fields/readonly/ReadOnlyWithButton\";\nimport React from \"react\";\n\n/** Creates the default Material UI field registry for use with InjectedFieldProvider */\nexport function createMuiFieldRegistry(): Dictionary<React.JSX.Element> {\n return {\n [ComponentTypes.Textbox]: React.createElement(Textbox),\n [ComponentTypes.Number]: React.createElement(Number),\n [ComponentTypes.Toggle]: React.createElement(Toggle),\n [ComponentTypes.Dropdown]: React.createElement(Dropdown),\n [ComponentTypes.MultiSelect]: React.createElement(MultiSelect),\n [ComponentTypes.DateControl]: React.createElement(DateControl),\n [ComponentTypes.Slider]: React.createElement(Slider),\n [ComponentTypes.Fragment]: React.createElement(DynamicFragment),\n [ComponentTypes.SimpleDropdown]: React.createElement(SimpleDropdown),\n [ComponentTypes.MultiSelectSearch]: React.createElement(MultiSelectSearch),\n [ComponentTypes.Textarea]: React.createElement(PopOutEditor),\n [ComponentTypes.DocumentLinks]: React.createElement(DocumentLinks),\n [ComponentTypes.StatusDropdown]: React.createElement(StatusDropdown),\n [ComponentTypes.ReadOnly]: React.createElement(ReadOnly),\n [ComponentTypes.ReadOnlyArray]: React.createElement(ReadOnlyArray),\n [ComponentTypes.ReadOnlyDateTime]: React.createElement(ReadOnlyDateTime),\n [ComponentTypes.ReadOnlyCumulativeNumber]: React.createElement(ReadOnlyCumulativeNumber),\n [ComponentTypes.ReadOnlyRichText]: React.createElement(ReadOnlyRichText),\n [ComponentTypes.ReadOnlyWithButton]: React.createElement(ReadOnlyWithButton),\n };\n}\n"],"mappings":"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","names":["jsx","TextField","jsx","TextField","jsx","jsx","FormControl","Select","MenuItem","Fragment","jsx","FormControl","Select","MenuItem","TextField","Fragment","jsx","jsxs","TextField","jsx","jsx","FormControl","Select","MenuItem","jsx","jsxs","FormControl","Select","MenuItem","TextField","Chip","Box","Fragment","jsx","Box","Chip","TextField","FormStrings","TextField","IconButton","FormStrings","Fragment","jsx","jsxs","Fragment","jsx","jsxs","TextField","FormStrings","IconButton","FormStrings","Button","IconButton","TextField","Dialog","DialogTitle","DialogContent","DialogActions","Typography","React","useFormContext","jsx","jsxs","FormStrings","React","Typography","IconButton","TextField","useFormContext","Button","Dialog","DialogTitle","DialogContent","DialogActions","FormControl","Select","MenuItem","jsx","jsxs","FormControl","Select","MenuItem","jsx","Fragment","jsx","Typography","Fragment","jsx","Typography","React","useFormContext","Fragment","jsx","useFormContext","React","jsx","Button","jsx","jsxs","Button","FormConstants","jsx","jsxs","React"]}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@form-eng/mui",
3
+ "version": "1.0.0",
4
+ "description": "Material UI (MUI) field components for @form-eng/core",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/bghcore/form-engine.git",
8
+ "directory": "packages/mui"
9
+ },
10
+ "homepage": "https://github.com/bghcore/form-engine#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/bghcore/form-engine/issues"
13
+ },
14
+ "keywords": [
15
+ "react",
16
+ "forms",
17
+ "mui",
18
+ "material-ui",
19
+ "material-design",
20
+ "dynamic-forms",
21
+ "react-hook-form",
22
+ "form-builder",
23
+ "field-components",
24
+ "mui-forms",
25
+ "business-forms"
26
+ ],
27
+ "main": "dist/index.js",
28
+ "module": "dist/index.mjs",
29
+ "types": "dist/index.d.ts",
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "import": "./dist/index.mjs",
34
+ "require": "./dist/index.js"
35
+ }
36
+ },
37
+ "files": [
38
+ "dist",
39
+ "README.md"
40
+ ],
41
+ "license": "MIT",
42
+ "sideEffects": false,
43
+ "scripts": {
44
+ "build": "tsup",
45
+ "clean": "rimraf dist"
46
+ },
47
+ "peerDependencies": {
48
+ "react": "^18.0.0 || ^19.0.0",
49
+ "react-dom": "^18.0.0 || ^19.0.0",
50
+ "react-hook-form": "^7.0.0",
51
+ "@mui/material": "^5.0.0 || ^6.0.0",
52
+ "@form-eng/core": "^1.0.0"
53
+ },
54
+ "devDependencies": {
55
+ "react": "^19.2.4",
56
+ "react-dom": "^19.2.4",
57
+ "react-hook-form": "^7.71.2",
58
+ "@mui/material": "^6.4.11",
59
+ "@emotion/react": "^11.14.0",
60
+ "@emotion/styled": "^11.14.0",
61
+ "@form-eng/core": "*",
62
+ "tsup": "^8.5.1",
63
+ "typescript": "^5.9.3",
64
+ "@types/react": "^19.2.14",
65
+ "@types/react-dom": "^19.2.3"
66
+ }
67
+ }