@rjsf/daisyui 6.0.0-beta.10
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.
- package/README.md +242 -0
- package/dist/chakra-ui.esm.js +2192 -0
- package/dist/chakra-ui.esm.js.map +7 -0
- package/dist/chakra-ui.umd.js +2011 -0
- package/dist/index.js +2180 -0
- package/dist/index.js.map +7 -0
- package/lib/DaisyUIForm.d.ts +5 -0
- package/lib/DaisyUIForm.js +8 -0
- package/lib/DaisyUIForm.js.map +1 -0
- package/lib/DaisyUIFrameProvider.d.ts +35 -0
- package/lib/DaisyUIFrameProvider.js +93 -0
- package/lib/DaisyUIFrameProvider.js.map +1 -0
- package/lib/daisyForm/DaisyForm.d.ts +12 -0
- package/lib/daisyForm/DaisyForm.js +15 -0
- package/lib/daisyForm/DaisyForm.js.map +1 -0
- package/lib/daisyForm/index.d.ts +2 -0
- package/lib/daisyForm/index.js +3 -0
- package/lib/daisyForm/index.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.js +11 -0
- package/lib/index.js.map +1 -0
- package/lib/templates/ArrayFieldDescriptionTemplate/ArrayFieldDescriptionTemplate.d.ts +7 -0
- package/lib/templates/ArrayFieldDescriptionTemplate/ArrayFieldDescriptionTemplate.js +11 -0
- package/lib/templates/ArrayFieldDescriptionTemplate/ArrayFieldDescriptionTemplate.js.map +1 -0
- package/lib/templates/ArrayFieldDescriptionTemplate/index.d.ts +2 -0
- package/lib/templates/ArrayFieldDescriptionTemplate/index.js +3 -0
- package/lib/templates/ArrayFieldDescriptionTemplate/index.js.map +1 -0
- package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.d.ts +5 -0
- package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.js +20 -0
- package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.js.map +1 -0
- package/lib/templates/ArrayFieldItemButtonsTemplate/index.d.ts +2 -0
- package/lib/templates/ArrayFieldItemButtonsTemplate/index.js +3 -0
- package/lib/templates/ArrayFieldItemButtonsTemplate/index.js.map +1 -0
- package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +14 -0
- package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js +27 -0
- package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js.map +1 -0
- package/lib/templates/ArrayFieldItemTemplate/index.d.ts +2 -0
- package/lib/templates/ArrayFieldItemTemplate/index.js +3 -0
- package/lib/templates/ArrayFieldItemTemplate/index.js.map +1 -0
- package/lib/templates/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +15 -0
- package/lib/templates/ArrayFieldTemplate/ArrayFieldTemplate.js +37 -0
- package/lib/templates/ArrayFieldTemplate/ArrayFieldTemplate.js.map +1 -0
- package/lib/templates/ArrayFieldTemplate/index.d.ts +2 -0
- package/lib/templates/ArrayFieldTemplate/index.js +3 -0
- package/lib/templates/ArrayFieldTemplate/index.js.map +1 -0
- package/lib/templates/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.d.ts +7 -0
- package/lib/templates/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.js +11 -0
- package/lib/templates/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.js.map +1 -0
- package/lib/templates/ArrayFieldTitleTemplate/index.d.ts +2 -0
- package/lib/templates/ArrayFieldTitleTemplate/index.js +3 -0
- package/lib/templates/ArrayFieldTitleTemplate/index.js.map +1 -0
- package/lib/templates/BaseInputTemplate/BaseInputTemplate.d.ts +16 -0
- package/lib/templates/BaseInputTemplate/BaseInputTemplate.js +33 -0
- package/lib/templates/BaseInputTemplate/BaseInputTemplate.js.map +1 -0
- package/lib/templates/BaseInputTemplate/index.d.ts +2 -0
- package/lib/templates/BaseInputTemplate/index.js +3 -0
- package/lib/templates/BaseInputTemplate/index.js.map +1 -0
- package/lib/templates/ButtonTemplates/AddButton.d.ts +6 -0
- package/lib/templates/ButtonTemplates/AddButton.js +15 -0
- package/lib/templates/ButtonTemplates/AddButton.js.map +1 -0
- package/lib/templates/ButtonTemplates/DaisyUIButton.d.ts +18 -0
- package/lib/templates/ButtonTemplates/DaisyUIButton.js +15 -0
- package/lib/templates/ButtonTemplates/DaisyUIButton.js.map +1 -0
- package/lib/templates/ButtonTemplates/IconButton.d.ts +5 -0
- package/lib/templates/ButtonTemplates/IconButton.js +21 -0
- package/lib/templates/ButtonTemplates/IconButton.js.map +1 -0
- package/lib/templates/ButtonTemplates/SubmitButton.d.ts +4 -0
- package/lib/templates/ButtonTemplates/SubmitButton.js +12 -0
- package/lib/templates/ButtonTemplates/SubmitButton.js.map +1 -0
- package/lib/templates/ButtonTemplates/index.d.ts +15 -0
- package/lib/templates/ButtonTemplates/index.js +17 -0
- package/lib/templates/ButtonTemplates/index.js.map +1 -0
- package/lib/templates/DescriptionField/DescriptionField.d.ts +8 -0
- package/lib/templates/DescriptionField/DescriptionField.js +16 -0
- package/lib/templates/DescriptionField/DescriptionField.js.map +1 -0
- package/lib/templates/DescriptionField/index.d.ts +2 -0
- package/lib/templates/DescriptionField/index.js +3 -0
- package/lib/templates/DescriptionField/index.js.map +1 -0
- package/lib/templates/ErrorList/ErrorList.d.ts +7 -0
- package/lib/templates/ErrorList/ErrorList.js +11 -0
- package/lib/templates/ErrorList/ErrorList.js.map +1 -0
- package/lib/templates/ErrorList/index.d.ts +2 -0
- package/lib/templates/ErrorList/index.js +3 -0
- package/lib/templates/ErrorList/index.js.map +1 -0
- package/lib/templates/FieldErrorTemplate/FieldErrorTemplate.d.ts +10 -0
- package/lib/templates/FieldErrorTemplate/FieldErrorTemplate.js +15 -0
- package/lib/templates/FieldErrorTemplate/FieldErrorTemplate.js.map +1 -0
- package/lib/templates/FieldErrorTemplate/index.d.ts +2 -0
- package/lib/templates/FieldErrorTemplate/index.js +3 -0
- package/lib/templates/FieldErrorTemplate/index.js.map +1 -0
- package/lib/templates/FieldHelpTemplate/FieldHelpTemplate.d.ts +11 -0
- package/lib/templates/FieldHelpTemplate/FieldHelpTemplate.js +15 -0
- package/lib/templates/FieldHelpTemplate/FieldHelpTemplate.js.map +1 -0
- package/lib/templates/FieldHelpTemplate/index.d.ts +2 -0
- package/lib/templates/FieldHelpTemplate/index.js +3 -0
- package/lib/templates/FieldHelpTemplate/index.js.map +1 -0
- package/lib/templates/FieldTemplate/FieldTemplate.d.ts +15 -0
- package/lib/templates/FieldTemplate/FieldTemplate.js +23 -0
- package/lib/templates/FieldTemplate/FieldTemplate.js.map +1 -0
- package/lib/templates/FieldTemplate/index.d.ts +2 -0
- package/lib/templates/FieldTemplate/index.js +3 -0
- package/lib/templates/FieldTemplate/index.js.map +1 -0
- package/lib/templates/GridTemplate/GridTemplate.d.ts +7 -0
- package/lib/templates/GridTemplate/GridTemplate.js +16 -0
- package/lib/templates/GridTemplate/GridTemplate.js.map +1 -0
- package/lib/templates/GridTemplate/index.d.ts +2 -0
- package/lib/templates/GridTemplate/index.js +3 -0
- package/lib/templates/GridTemplate/index.js.map +1 -0
- package/lib/templates/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +13 -0
- package/lib/templates/ObjectFieldTemplate/ObjectFieldTemplate.js +25 -0
- package/lib/templates/ObjectFieldTemplate/ObjectFieldTemplate.js.map +1 -0
- package/lib/templates/ObjectFieldTemplate/index.d.ts +2 -0
- package/lib/templates/ObjectFieldTemplate/index.js +3 -0
- package/lib/templates/ObjectFieldTemplate/index.js.map +1 -0
- package/lib/templates/Templates.d.ts +19 -0
- package/lib/templates/Templates.js +56 -0
- package/lib/templates/Templates.js.map +1 -0
- package/lib/templates/TitleField/TitleField.d.ts +13 -0
- package/lib/templates/TitleField/TitleField.js +19 -0
- package/lib/templates/TitleField/TitleField.js.map +1 -0
- package/lib/templates/TitleField/index.d.ts +2 -0
- package/lib/templates/TitleField/index.js +3 -0
- package/lib/templates/TitleField/index.js.map +1 -0
- package/lib/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.d.ts +7 -0
- package/lib/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js +20 -0
- package/lib/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js.map +1 -0
- package/lib/templates/WrapIfAdditionalTemplate/index.d.ts +2 -0
- package/lib/templates/WrapIfAdditionalTemplate/index.js +3 -0
- package/lib/templates/WrapIfAdditionalTemplate/index.js.map +1 -0
- package/lib/templates/index.d.ts +19 -0
- package/lib/templates/index.js +20 -0
- package/lib/templates/index.js.map +1 -0
- package/lib/theme/Theme.d.ts +43 -0
- package/lib/theme/Theme.js +68 -0
- package/lib/theme/Theme.js.map +1 -0
- package/lib/theme/index.d.ts +2 -0
- package/lib/theme/index.js +3 -0
- package/lib/theme/index.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types/DaisyProps.d.ts +5 -0
- package/lib/types/DaisyProps.js +2 -0
- package/lib/types/DaisyProps.js.map +1 -0
- package/lib/utils.d.ts +13 -0
- package/lib/utils.js +5 -0
- package/lib/utils.js.map +1 -0
- package/lib/widgets/AltDateTimeWidget/AltDateTimeWidget.d.ts +6 -0
- package/lib/widgets/AltDateTimeWidget/AltDateTimeWidget.js +10 -0
- package/lib/widgets/AltDateTimeWidget/AltDateTimeWidget.js.map +1 -0
- package/lib/widgets/AltDateTimeWidget/index.d.ts +2 -0
- package/lib/widgets/AltDateTimeWidget/index.js +3 -0
- package/lib/widgets/AltDateTimeWidget/index.js.map +1 -0
- package/lib/widgets/AltDateWidget/AltDateWidget.d.ts +15 -0
- package/lib/widgets/AltDateWidget/AltDateWidget.js +138 -0
- package/lib/widgets/AltDateWidget/AltDateWidget.js.map +1 -0
- package/lib/widgets/AltDateWidget/index.d.ts +2 -0
- package/lib/widgets/AltDateWidget/index.js +3 -0
- package/lib/widgets/AltDateWidget/index.js.map +1 -0
- package/lib/widgets/CheckboxWidget/CheckboxWidget.d.ts +13 -0
- package/lib/widgets/CheckboxWidget/CheckboxWidget.js +43 -0
- package/lib/widgets/CheckboxWidget/CheckboxWidget.js.map +1 -0
- package/lib/widgets/CheckboxWidget/index.d.ts +2 -0
- package/lib/widgets/CheckboxWidget/index.js +3 -0
- package/lib/widgets/CheckboxWidget/index.js.map +1 -0
- package/lib/widgets/CheckboxesWidget/CheckboxesWidget.d.ts +16 -0
- package/lib/widgets/CheckboxesWidget/CheckboxesWidget.js +73 -0
- package/lib/widgets/CheckboxesWidget/CheckboxesWidget.js.map +1 -0
- package/lib/widgets/CheckboxesWidget/index.d.ts +2 -0
- package/lib/widgets/CheckboxesWidget/index.js +3 -0
- package/lib/widgets/CheckboxesWidget/index.js.map +1 -0
- package/lib/widgets/DateTimeWidget/DateTimeWidget.d.ts +14 -0
- package/lib/widgets/DateTimeWidget/DateTimeWidget.js +207 -0
- package/lib/widgets/DateTimeWidget/DateTimeWidget.js.map +1 -0
- package/lib/widgets/DateTimeWidget/index.d.ts +2 -0
- package/lib/widgets/DateTimeWidget/index.js +3 -0
- package/lib/widgets/DateTimeWidget/index.js.map +1 -0
- package/lib/widgets/DateWidget/DateWidget.d.ts +14 -0
- package/lib/widgets/DateWidget/DateWidget.js +274 -0
- package/lib/widgets/DateWidget/DateWidget.js.map +1 -0
- package/lib/widgets/DateWidget/index.d.ts +2 -0
- package/lib/widgets/DateWidget/index.js +3 -0
- package/lib/widgets/DateWidget/index.js.map +1 -0
- package/lib/widgets/FileWidget/FileWidget.d.ts +12 -0
- package/lib/widgets/FileWidget/FileWidget.js +57 -0
- package/lib/widgets/FileWidget/FileWidget.js.map +1 -0
- package/lib/widgets/FileWidget/index.d.ts +2 -0
- package/lib/widgets/FileWidget/index.js +3 -0
- package/lib/widgets/FileWidget/index.js.map +1 -0
- package/lib/widgets/RadioWidget/RadioWidget.d.ts +14 -0
- package/lib/widgets/RadioWidget/RadioWidget.js +67 -0
- package/lib/widgets/RadioWidget/RadioWidget.js.map +1 -0
- package/lib/widgets/RadioWidget/index.d.ts +2 -0
- package/lib/widgets/RadioWidget/index.js +3 -0
- package/lib/widgets/RadioWidget/index.js.map +1 -0
- package/lib/widgets/RangeWidget/RangeWidget.d.ts +13 -0
- package/lib/widgets/RangeWidget/RangeWidget.js +42 -0
- package/lib/widgets/RangeWidget/RangeWidget.js.map +1 -0
- package/lib/widgets/RangeWidget/index.d.ts +2 -0
- package/lib/widgets/RangeWidget/index.js +3 -0
- package/lib/widgets/RangeWidget/index.js.map +1 -0
- package/lib/widgets/RatingWidget/RatingWidget.d.ts +17 -0
- package/lib/widgets/RatingWidget/RatingWidget.js +64 -0
- package/lib/widgets/RatingWidget/RatingWidget.js.map +1 -0
- package/lib/widgets/RatingWidget/index.d.ts +2 -0
- package/lib/widgets/RatingWidget/index.js +3 -0
- package/lib/widgets/RatingWidget/index.js.map +1 -0
- package/lib/widgets/SelectWidget/SelectWidget.d.ts +14 -0
- package/lib/widgets/SelectWidget/SelectWidget.js +74 -0
- package/lib/widgets/SelectWidget/SelectWidget.js.map +1 -0
- package/lib/widgets/SelectWidget/index.d.ts +2 -0
- package/lib/widgets/SelectWidget/index.js +3 -0
- package/lib/widgets/SelectWidget/index.js.map +1 -0
- package/lib/widgets/TextareaWidget/TextareaWidget.d.ts +12 -0
- package/lib/widgets/TextareaWidget/TextareaWidget.js +44 -0
- package/lib/widgets/TextareaWidget/TextareaWidget.js.map +1 -0
- package/lib/widgets/TextareaWidget/index.d.ts +2 -0
- package/lib/widgets/TextareaWidget/index.js +3 -0
- package/lib/widgets/TextareaWidget/index.js.map +1 -0
- package/lib/widgets/TimeWidget/TimeWidget.d.ts +12 -0
- package/lib/widgets/TimeWidget/TimeWidget.js +42 -0
- package/lib/widgets/TimeWidget/TimeWidget.js.map +1 -0
- package/lib/widgets/TimeWidget/index.d.ts +2 -0
- package/lib/widgets/TimeWidget/index.js +3 -0
- package/lib/widgets/TimeWidget/index.js.map +1 -0
- package/lib/widgets/ToggleWidget/ToggleWidget.d.ts +13 -0
- package/lib/widgets/ToggleWidget/ToggleWidget.js +40 -0
- package/lib/widgets/ToggleWidget/ToggleWidget.js.map +1 -0
- package/lib/widgets/ToggleWidget/index.d.ts +2 -0
- package/lib/widgets/ToggleWidget/index.js +3 -0
- package/lib/widgets/ToggleWidget/index.js.map +1 -0
- package/lib/widgets/Widgets.d.ts +18 -0
- package/lib/widgets/Widgets.js +35 -0
- package/lib/widgets/Widgets.js.map +1 -0
- package/lib/widgets/index.d.ts +2 -0
- package/lib/widgets/index.js +3 -0
- package/lib/widgets/index.js.map +1 -0
- package/package.json +96 -0
- package/src/DaisyUIForm.tsx +9 -0
- package/src/DaisyUIFrameProvider.tsx +107 -0
- package/src/daisyForm/DaisyForm.tsx +20 -0
- package/src/daisyForm/index.ts +2 -0
- package/src/index.ts +13 -0
- package/src/styles.css +9 -0
- package/src/templates/ArrayFieldDescriptionTemplate/ArrayFieldDescriptionTemplate.tsx +19 -0
- package/src/templates/ArrayFieldDescriptionTemplate/index.ts +2 -0
- package/src/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.tsx +89 -0
- package/src/templates/ArrayFieldItemButtonsTemplate/index.ts +2 -0
- package/src/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +55 -0
- package/src/templates/ArrayFieldItemTemplate/index.ts +2 -0
- package/src/templates/ArrayFieldTemplate/ArrayFieldTemplate.tsx +120 -0
- package/src/templates/ArrayFieldTemplate/index.ts +2 -0
- package/src/templates/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.tsx +15 -0
- package/src/templates/ArrayFieldTitleTemplate/index.ts +2 -0
- package/src/templates/BaseInputTemplate/BaseInputTemplate.tsx +104 -0
- package/src/templates/BaseInputTemplate/index.ts +2 -0
- package/src/templates/ButtonTemplates/AddButton.tsx +38 -0
- package/src/templates/ButtonTemplates/DaisyUIButton.tsx +31 -0
- package/src/templates/ButtonTemplates/IconButton.tsx +62 -0
- package/src/templates/ButtonTemplates/SubmitButton.tsx +25 -0
- package/src/templates/ButtonTemplates/index.ts +19 -0
- package/src/templates/DescriptionField/DescriptionField.tsx +26 -0
- package/src/templates/DescriptionField/index.ts +2 -0
- package/src/templates/ErrorList/ErrorList.tsx +21 -0
- package/src/templates/ErrorList/index.ts +2 -0
- package/src/templates/FieldErrorTemplate/FieldErrorTemplate.tsx +22 -0
- package/src/templates/FieldErrorTemplate/index.ts +2 -0
- package/src/templates/FieldHelpTemplate/FieldHelpTemplate.tsx +23 -0
- package/src/templates/FieldHelpTemplate/index.ts +2 -0
- package/src/templates/FieldTemplate/FieldTemplate.tsx +66 -0
- package/src/templates/FieldTemplate/index.ts +2 -0
- package/src/templates/GridTemplate/GridTemplate.tsx +26 -0
- package/src/templates/GridTemplate/index.ts +2 -0
- package/src/templates/ObjectFieldTemplate/ObjectFieldTemplate.tsx +108 -0
- package/src/templates/ObjectFieldTemplate/index.ts +2 -0
- package/src/templates/Templates.tsx +63 -0
- package/src/templates/TitleField/TitleField.tsx +26 -0
- package/src/templates/TitleField/index.ts +2 -0
- package/src/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +74 -0
- package/src/templates/WrapIfAdditionalTemplate/index.ts +2 -0
- package/src/templates/index.ts +22 -0
- package/src/theme/Theme.tsx +93 -0
- package/src/theme/index.ts +2 -0
- package/src/tsconfig.json +26 -0
- package/src/types/DaisyProps.ts +5 -0
- package/src/types.d.ts +4 -0
- package/src/utils.ts +18 -0
- package/src/widgets/AltDateTimeWidget/AltDateTimeWidget.tsx +14 -0
- package/src/widgets/AltDateTimeWidget/index.ts +2 -0
- package/src/widgets/AltDateWidget/AltDateWidget.tsx +328 -0
- package/src/widgets/AltDateWidget/index.ts +2 -0
- package/src/widgets/CheckboxWidget/CheckboxWidget.tsx +108 -0
- package/src/widgets/CheckboxWidget/index.ts +2 -0
- package/src/widgets/CheckboxesWidget/CheckboxesWidget.tsx +124 -0
- package/src/widgets/CheckboxesWidget/index.ts +2 -0
- package/src/widgets/DateTimeWidget/DateTimeWidget.tsx +343 -0
- package/src/widgets/DateTimeWidget/index.ts +2 -0
- package/src/widgets/DateWidget/DateWidget.tsx +393 -0
- package/src/widgets/DateWidget/index.ts +2 -0
- package/src/widgets/FileWidget/FileWidget.tsx +86 -0
- package/src/widgets/FileWidget/index.ts +2 -0
- package/src/widgets/RadioWidget/RadioWidget.tsx +114 -0
- package/src/widgets/RadioWidget/index.ts +2 -0
- package/src/widgets/RangeWidget/RangeWidget.tsx +78 -0
- package/src/widgets/RangeWidget/index.ts +2 -0
- package/src/widgets/RatingWidget/RatingWidget.tsx +120 -0
- package/src/widgets/RatingWidget/index.ts +2 -0
- package/src/widgets/SelectWidget/SelectWidget.tsx +161 -0
- package/src/widgets/SelectWidget/index.ts +2 -0
- package/src/widgets/TextareaWidget/TextareaWidget.tsx +77 -0
- package/src/widgets/TextareaWidget/index.ts +2 -0
- package/src/widgets/TimeWidget/TimeWidget.tsx +72 -0
- package/src/widgets/TimeWidget/index.ts +2 -0
- package/src/widgets/ToggleWidget/ToggleWidget.tsx +70 -0
- package/src/widgets/ToggleWidget/index.ts +2 -0
- package/src/widgets/Widgets.tsx +58 -0
- package/src/widgets/index.ts +2 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';
|
|
2
|
+
import { faCopy, faArrowDown, faArrowUp, faTrash } from '@fortawesome/free-solid-svg-icons';
|
|
3
|
+
import type { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
4
|
+
|
|
5
|
+
import DaisyUIButton from './DaisyUIButton';
|
|
6
|
+
|
|
7
|
+
export function CopyButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
|
|
8
|
+
props: IconButtonProps<T, S, F>,
|
|
9
|
+
) {
|
|
10
|
+
const {
|
|
11
|
+
registry: { translateString },
|
|
12
|
+
} = props;
|
|
13
|
+
return (
|
|
14
|
+
<DaisyUIButton {...props} title={translateString(TranslatableString.CopyButton)} icon={faCopy as IconDefinition} />
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function MoveDownButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
|
|
19
|
+
props: IconButtonProps<T, S, F>,
|
|
20
|
+
) {
|
|
21
|
+
const {
|
|
22
|
+
registry: { translateString },
|
|
23
|
+
} = props;
|
|
24
|
+
return (
|
|
25
|
+
<DaisyUIButton
|
|
26
|
+
{...props}
|
|
27
|
+
title={translateString(TranslatableString.MoveDownButton)}
|
|
28
|
+
icon={faArrowDown as IconDefinition}
|
|
29
|
+
/>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function MoveUpButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
|
|
34
|
+
props: IconButtonProps<T, S, F>,
|
|
35
|
+
) {
|
|
36
|
+
const {
|
|
37
|
+
registry: { translateString },
|
|
38
|
+
} = props;
|
|
39
|
+
return (
|
|
40
|
+
<DaisyUIButton
|
|
41
|
+
{...props}
|
|
42
|
+
title={translateString(TranslatableString.MoveUpButton)}
|
|
43
|
+
icon={faArrowUp as IconDefinition}
|
|
44
|
+
/>
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function RemoveButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
|
|
49
|
+
props: IconButtonProps<T, S, F>,
|
|
50
|
+
) {
|
|
51
|
+
const {
|
|
52
|
+
registry: { translateString },
|
|
53
|
+
} = props;
|
|
54
|
+
return (
|
|
55
|
+
<DaisyUIButton
|
|
56
|
+
{...props}
|
|
57
|
+
title={translateString(TranslatableString.RemoveButton)}
|
|
58
|
+
iconType='danger'
|
|
59
|
+
icon={faTrash as IconDefinition}
|
|
60
|
+
/>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getSubmitButtonOptions, FormContextType, RJSFSchema, StrictRJSFSchema, SubmitButtonProps } from '@rjsf/utils';
|
|
2
|
+
|
|
3
|
+
/** The `SubmitButton` renders a button that represent the `Submit` action on a form
|
|
4
|
+
*/
|
|
5
|
+
export default function SubmitButton<
|
|
6
|
+
T = any,
|
|
7
|
+
S extends StrictRJSFSchema = RJSFSchema,
|
|
8
|
+
F extends FormContextType = any,
|
|
9
|
+
>({ uiSchema }: SubmitButtonProps<T, S, F>) {
|
|
10
|
+
const { submitText, norender, props: submitButtonProps = {} } = getSubmitButtonOptions<T, S, F>(uiSchema);
|
|
11
|
+
if (norender) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
return (
|
|
15
|
+
<div>
|
|
16
|
+
<button
|
|
17
|
+
type='submit'
|
|
18
|
+
{...submitButtonProps}
|
|
19
|
+
className={`btn btn-primary btn-primary-content ${submitButtonProps.className || ''}`}
|
|
20
|
+
>
|
|
21
|
+
{submitText}
|
|
22
|
+
</button>
|
|
23
|
+
</div>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import AddButton from './AddButton';
|
|
2
|
+
import SubmitButton from './SubmitButton';
|
|
3
|
+
import { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } from './IconButton';
|
|
4
|
+
|
|
5
|
+
export { AddButton };
|
|
6
|
+
export { CopyButton, MoveDownButton, MoveUpButton, RemoveButton };
|
|
7
|
+
export { SubmitButton };
|
|
8
|
+
|
|
9
|
+
// Create a default export with all button templates
|
|
10
|
+
const buttonTemplates = {
|
|
11
|
+
AddButton,
|
|
12
|
+
CopyButton,
|
|
13
|
+
MoveDownButton,
|
|
14
|
+
MoveUpButton,
|
|
15
|
+
RemoveButton,
|
|
16
|
+
SubmitButton,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export default buttonTemplates;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DescriptionFieldProps, StrictRJSFSchema, RJSFSchema, FormContextType } from '@rjsf/utils';
|
|
2
|
+
import { RichDescription } from '@rjsf/core';
|
|
3
|
+
|
|
4
|
+
/** The `DescriptionField` component renders descriptive text for a form field
|
|
5
|
+
* with DaisyUI styling. It displays the description in a subtle text color
|
|
6
|
+
* with proper spacing.
|
|
7
|
+
*
|
|
8
|
+
* @param props - The `DescriptionFieldProps` for the component
|
|
9
|
+
*/
|
|
10
|
+
export default function DescriptionField<
|
|
11
|
+
T = any,
|
|
12
|
+
S extends StrictRJSFSchema = RJSFSchema,
|
|
13
|
+
F extends FormContextType = any,
|
|
14
|
+
>(props: DescriptionFieldProps<T, S, F>) {
|
|
15
|
+
const { id, description, registry, uiSchema } = props;
|
|
16
|
+
if (!description) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return (
|
|
20
|
+
<div id={id} className='description-field my-4'>
|
|
21
|
+
<div className='text-sm text-base-content/80'>
|
|
22
|
+
<RichDescription description={description} registry={registry} uiSchema={uiSchema} />
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ErrorListProps, StrictRJSFSchema, RJSFSchema, FormContextType } from '@rjsf/utils';
|
|
2
|
+
|
|
3
|
+
/** The `ErrorList` component renders a list of form-level validation errors
|
|
4
|
+
* with DaisyUI styling. It displays errors as a bulleted list in red text.
|
|
5
|
+
*
|
|
6
|
+
* @param props - The `ErrorListProps` for the component
|
|
7
|
+
*/
|
|
8
|
+
export default function ErrorList<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
|
|
9
|
+
props: ErrorListProps<T, S, F>,
|
|
10
|
+
) {
|
|
11
|
+
const { errors } = props;
|
|
12
|
+
return (
|
|
13
|
+
<div className='error-list'>
|
|
14
|
+
<ul className='list-disc list-inside text-red-600'>
|
|
15
|
+
{errors.map((error, index) => (
|
|
16
|
+
<li key={index}>{error.stack}</li>
|
|
17
|
+
))}
|
|
18
|
+
</ul>
|
|
19
|
+
</div>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FieldErrorProps, StrictRJSFSchema, RJSFSchema, FormContextType } from '@rjsf/utils';
|
|
2
|
+
|
|
3
|
+
/** The `FieldErrorTemplate` component renders validation errors for a specific field
|
|
4
|
+
* with DaisyUI styling. It displays field-level errors as a bulleted list in red text.
|
|
5
|
+
*
|
|
6
|
+
* Unlike ErrorList which shows form-level errors, this component displays errors
|
|
7
|
+
* specific to a particular field in the form.
|
|
8
|
+
*
|
|
9
|
+
* @param props - The `FieldErrorProps` for the component
|
|
10
|
+
*/
|
|
11
|
+
export default function FieldErrorTemplate<
|
|
12
|
+
T = any,
|
|
13
|
+
S extends StrictRJSFSchema = RJSFSchema,
|
|
14
|
+
F extends FormContextType = any,
|
|
15
|
+
>(props: FieldErrorProps<T, S, F>) {
|
|
16
|
+
const { errors } = props;
|
|
17
|
+
return (
|
|
18
|
+
<div className='rjsf-field-error-template text-red-600'>
|
|
19
|
+
<ul className='list-disc list-inside'>{errors?.map((error, index) => <li key={index}>{error}</li>) ?? []}</ul>
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FieldHelpProps, StrictRJSFSchema, RJSFSchema, FormContextType } from '@rjsf/utils';
|
|
2
|
+
|
|
3
|
+
/** The `FieldHelpTemplate` component renders help text for a specific form field
|
|
4
|
+
* with DaisyUI styling. It displays the help text in a subtle gray color and smaller size
|
|
5
|
+
* to distinguish it from the main field content.
|
|
6
|
+
*
|
|
7
|
+
* Help text provides additional guidance to users about how to complete a field
|
|
8
|
+
* or explains the expected input format.
|
|
9
|
+
*
|
|
10
|
+
* @param props - The `FieldHelpProps` for the component
|
|
11
|
+
*/
|
|
12
|
+
export default function FieldHelpTemplate<
|
|
13
|
+
T = any,
|
|
14
|
+
S extends StrictRJSFSchema = RJSFSchema,
|
|
15
|
+
F extends FormContextType = any,
|
|
16
|
+
>(props: FieldHelpProps<T, S, F>) {
|
|
17
|
+
const { help } = props;
|
|
18
|
+
return (
|
|
19
|
+
<div className='rjsf-field-help-template text-gray-500 text-sm'>
|
|
20
|
+
<div>{help}</div>
|
|
21
|
+
</div>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { FieldTemplateProps, StrictRJSFSchema, RJSFSchema, FormContextType } from '@rjsf/utils';
|
|
2
|
+
|
|
3
|
+
/** The `FieldTemplate` component provides the main layout for each form field
|
|
4
|
+
* with DaisyUI styling. It handles:
|
|
5
|
+
*
|
|
6
|
+
* - Displaying field labels with required indicators
|
|
7
|
+
* - Special layout for checkbox fields (label positioned after the input)
|
|
8
|
+
* - Proper spacing between form fields
|
|
9
|
+
* - Rendering error messages and help text
|
|
10
|
+
* - Maintaining accessibility with proper label associations
|
|
11
|
+
*
|
|
12
|
+
* This template uses DaisyUI's label and form-control components for consistent styling.
|
|
13
|
+
*
|
|
14
|
+
* @param props - The `FieldTemplateProps` for the component
|
|
15
|
+
*/
|
|
16
|
+
export default function FieldTemplate<
|
|
17
|
+
T = any,
|
|
18
|
+
S extends StrictRJSFSchema = RJSFSchema,
|
|
19
|
+
F extends FormContextType = any,
|
|
20
|
+
>(props: FieldTemplateProps<T, S, F>) {
|
|
21
|
+
const {
|
|
22
|
+
id,
|
|
23
|
+
label,
|
|
24
|
+
children,
|
|
25
|
+
errors,
|
|
26
|
+
formContext,
|
|
27
|
+
formData,
|
|
28
|
+
help,
|
|
29
|
+
hideError,
|
|
30
|
+
displayLabel,
|
|
31
|
+
classNames,
|
|
32
|
+
// Destructure props we don't want to pass to div
|
|
33
|
+
onKeyChange,
|
|
34
|
+
onDropPropertyClick,
|
|
35
|
+
uiSchema,
|
|
36
|
+
schema,
|
|
37
|
+
readonly,
|
|
38
|
+
required,
|
|
39
|
+
rawErrors,
|
|
40
|
+
rawHelp,
|
|
41
|
+
rawDescription,
|
|
42
|
+
hidden,
|
|
43
|
+
onChange,
|
|
44
|
+
registry,
|
|
45
|
+
...divProps
|
|
46
|
+
} = props;
|
|
47
|
+
|
|
48
|
+
// Special handling for checkboxes - they should have the label after the input
|
|
49
|
+
const isCheckbox = schema.type === 'boolean';
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<div className={`field-template mb-3 ${classNames || ''}`} {...divProps}>
|
|
53
|
+
{displayLabel && !isCheckbox && (
|
|
54
|
+
<label htmlFor={id} className='label'>
|
|
55
|
+
<span className='label-text font-medium'>
|
|
56
|
+
{label}
|
|
57
|
+
{required && <span className='text-error ml-1'>*</span>}
|
|
58
|
+
</span>
|
|
59
|
+
</label>
|
|
60
|
+
)}
|
|
61
|
+
{children}
|
|
62
|
+
{errors}
|
|
63
|
+
{help}
|
|
64
|
+
</div>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { GridTemplateProps } from '@rjsf/utils';
|
|
2
|
+
|
|
3
|
+
/** Renders a `GridTemplate` for DaisyUI, which follows the same pattern as other RJSF themes.
|
|
4
|
+
* This uses DaisyUI's grid system with flexbox for responsive layouts.
|
|
5
|
+
*
|
|
6
|
+
* @param props - The GridTemplateProps, including children and column flag
|
|
7
|
+
*/
|
|
8
|
+
export default function GridTemplate(props: GridTemplateProps) {
|
|
9
|
+
const { children, column, ...rest } = props;
|
|
10
|
+
|
|
11
|
+
if (column) {
|
|
12
|
+
// For columns, use DaisyUI's flex classes
|
|
13
|
+
return (
|
|
14
|
+
<div className='flex-grow' {...rest}>
|
|
15
|
+
{children}
|
|
16
|
+
</div>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// For rows, use DaisyUI's flex container with wrap
|
|
21
|
+
return (
|
|
22
|
+
<div className='flex flex-wrap gap-4' {...rest}>
|
|
23
|
+
{children}
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import {
|
|
2
|
+
canExpand,
|
|
3
|
+
descriptionId,
|
|
4
|
+
FormContextType,
|
|
5
|
+
getTemplate,
|
|
6
|
+
getUiOptions,
|
|
7
|
+
ObjectFieldTemplateProps,
|
|
8
|
+
RJSFSchema,
|
|
9
|
+
StrictRJSFSchema,
|
|
10
|
+
titleId,
|
|
11
|
+
buttonId,
|
|
12
|
+
} from '@rjsf/utils';
|
|
13
|
+
|
|
14
|
+
/** The `ObjectFieldTemplate` component renders a layout for object fields in the form
|
|
15
|
+
* with DaisyUI styling. It handles:
|
|
16
|
+
*
|
|
17
|
+
* - Special styling for the root object with extra padding and shadows
|
|
18
|
+
* - Rendering of title and description using appropriate templates
|
|
19
|
+
* - Grid layout for object properties with consistent spacing
|
|
20
|
+
* - Conditionally rendering an add button for expandable objects
|
|
21
|
+
* - Support for hidden properties
|
|
22
|
+
*
|
|
23
|
+
* @param props - The `ObjectFieldTemplateProps` for the component
|
|
24
|
+
*/
|
|
25
|
+
export default function ObjectFieldTemplate<
|
|
26
|
+
T = any,
|
|
27
|
+
S extends StrictRJSFSchema = RJSFSchema,
|
|
28
|
+
F extends FormContextType = any,
|
|
29
|
+
>(props: ObjectFieldTemplateProps<T, S, F>) {
|
|
30
|
+
const {
|
|
31
|
+
description,
|
|
32
|
+
title,
|
|
33
|
+
properties,
|
|
34
|
+
required,
|
|
35
|
+
disabled,
|
|
36
|
+
readonly,
|
|
37
|
+
uiSchema,
|
|
38
|
+
idSchema,
|
|
39
|
+
schema,
|
|
40
|
+
formData,
|
|
41
|
+
onAddClick,
|
|
42
|
+
registry,
|
|
43
|
+
} = props;
|
|
44
|
+
const uiOptions = getUiOptions<T, S, F>(uiSchema);
|
|
45
|
+
const TitleFieldTemplate = getTemplate<'TitleFieldTemplate', T, S, F>('TitleFieldTemplate', registry, uiOptions);
|
|
46
|
+
const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(
|
|
47
|
+
'DescriptionFieldTemplate',
|
|
48
|
+
registry,
|
|
49
|
+
uiOptions,
|
|
50
|
+
);
|
|
51
|
+
// Button templates are not overridden in the uiSchema
|
|
52
|
+
const {
|
|
53
|
+
ButtonTemplates: { AddButton },
|
|
54
|
+
} = registry.templates;
|
|
55
|
+
|
|
56
|
+
// Check if this is the root object
|
|
57
|
+
const isRoot = idSchema.$id === 'root';
|
|
58
|
+
|
|
59
|
+
return (
|
|
60
|
+
<div className={`form-control ${isRoot ? 'bg-base-100 p-6 rounded-xl shadow-lg' : ''}`}>
|
|
61
|
+
{title && (
|
|
62
|
+
<TitleFieldTemplate
|
|
63
|
+
id={titleId<T>(idSchema)}
|
|
64
|
+
title={title}
|
|
65
|
+
required={required}
|
|
66
|
+
schema={schema}
|
|
67
|
+
uiSchema={uiSchema}
|
|
68
|
+
registry={registry}
|
|
69
|
+
/>
|
|
70
|
+
)}
|
|
71
|
+
{description && (
|
|
72
|
+
<DescriptionFieldTemplate
|
|
73
|
+
id={descriptionId<T>(idSchema)}
|
|
74
|
+
description={description}
|
|
75
|
+
schema={schema}
|
|
76
|
+
uiSchema={uiSchema}
|
|
77
|
+
registry={registry}
|
|
78
|
+
/>
|
|
79
|
+
)}
|
|
80
|
+
<div className={`grid grid-cols-1 gap-${description ? 3 : 4} ${isRoot ? '' : 'mb-4'}`}>
|
|
81
|
+
{properties.map((element, index) =>
|
|
82
|
+
element.hidden ? (
|
|
83
|
+
element.content
|
|
84
|
+
) : (
|
|
85
|
+
<div
|
|
86
|
+
key={`${idSchema.$id}-${element.name}-${index}`}
|
|
87
|
+
className={idSchema.$id === 'root' && element.name === 'tasks' ? 'mt-2' : ''}
|
|
88
|
+
>
|
|
89
|
+
{element.content}
|
|
90
|
+
</div>
|
|
91
|
+
),
|
|
92
|
+
)}
|
|
93
|
+
{canExpand<T, S, F>(schema, uiSchema, formData) && (
|
|
94
|
+
<div className='flex justify-end'>
|
|
95
|
+
<AddButton
|
|
96
|
+
id={buttonId<T>(idSchema, 'add')}
|
|
97
|
+
className='rjsf-object-property-expand btn btn-primary btn-sm'
|
|
98
|
+
onClick={onAddClick(schema)}
|
|
99
|
+
disabled={disabled || readonly}
|
|
100
|
+
uiSchema={uiSchema}
|
|
101
|
+
registry={registry}
|
|
102
|
+
/>
|
|
103
|
+
</div>
|
|
104
|
+
)}
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
);
|
|
108
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { FormContextType, RJSFSchema, StrictRJSFSchema, TemplatesType } from '@rjsf/utils';
|
|
2
|
+
|
|
3
|
+
import ArrayFieldItemButtonsTemplate from './ArrayFieldItemButtonsTemplate';
|
|
4
|
+
import ArrayFieldItemTemplate from './ArrayFieldItemTemplate';
|
|
5
|
+
import ArrayFieldTemplate from './ArrayFieldTemplate/ArrayFieldTemplate';
|
|
6
|
+
import BaseInputTemplate from './BaseInputTemplate/BaseInputTemplate';
|
|
7
|
+
import { AddButton, CopyButton, MoveDownButton, MoveUpButton, RemoveButton, SubmitButton } from './ButtonTemplates';
|
|
8
|
+
import DescriptionField from './DescriptionField';
|
|
9
|
+
import ErrorList from './ErrorList';
|
|
10
|
+
import FieldErrorTemplate from './FieldErrorTemplate';
|
|
11
|
+
import FieldHelpTemplate from './FieldHelpTemplate';
|
|
12
|
+
import FieldTemplate from './FieldTemplate';
|
|
13
|
+
import GridTemplate from './GridTemplate/GridTemplate';
|
|
14
|
+
import ObjectFieldTemplate from './ObjectFieldTemplate';
|
|
15
|
+
import TitleFieldTemplate from './TitleField/TitleField';
|
|
16
|
+
import WrapIfAdditionalTemplate from './WrapIfAdditionalTemplate';
|
|
17
|
+
|
|
18
|
+
/** Function that generates all the template components required for the DaisyUI theme.
|
|
19
|
+
*
|
|
20
|
+
* This provides a complete set of styled components that implement the DaisyUI design system
|
|
21
|
+
* for use with react-jsonschema-form.
|
|
22
|
+
*
|
|
23
|
+
* The templates include:
|
|
24
|
+
* - Array field templates (for rendering array items and controls)
|
|
25
|
+
* - Button templates (for add, submit, copy, move, remove actions)
|
|
26
|
+
* - Input templates (for rendering form controls)
|
|
27
|
+
* - Layout templates (for fields, objects, additional properties)
|
|
28
|
+
* - Helper templates (for titles, descriptions, errors, help text)
|
|
29
|
+
*
|
|
30
|
+
* @returns A partial `TemplatesType` object with all required template components
|
|
31
|
+
*/
|
|
32
|
+
export function generateTemplates<
|
|
33
|
+
T = any,
|
|
34
|
+
S extends StrictRJSFSchema = RJSFSchema,
|
|
35
|
+
F extends FormContextType = any,
|
|
36
|
+
>(): Partial<TemplatesType<T, S, F>> {
|
|
37
|
+
return {
|
|
38
|
+
ArrayFieldItemTemplate,
|
|
39
|
+
ArrayFieldTemplate,
|
|
40
|
+
ArrayFieldItemButtonsTemplate,
|
|
41
|
+
BaseInputTemplate,
|
|
42
|
+
ButtonTemplates: {
|
|
43
|
+
AddButton,
|
|
44
|
+
SubmitButton,
|
|
45
|
+
CopyButton,
|
|
46
|
+
MoveDownButton,
|
|
47
|
+
MoveUpButton,
|
|
48
|
+
RemoveButton,
|
|
49
|
+
},
|
|
50
|
+
DescriptionFieldTemplate: DescriptionField,
|
|
51
|
+
ErrorListTemplate: ErrorList,
|
|
52
|
+
FieldErrorTemplate,
|
|
53
|
+
FieldHelpTemplate,
|
|
54
|
+
FieldTemplate,
|
|
55
|
+
GridTemplate,
|
|
56
|
+
ObjectFieldTemplate,
|
|
57
|
+
TitleFieldTemplate,
|
|
58
|
+
WrapIfAdditionalTemplate,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Default export of all generated templates for the DaisyUI theme */
|
|
63
|
+
export default generateTemplates();
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TitleFieldProps, StrictRJSFSchema, RJSFSchema, FormContextType, getUiOptions } from '@rjsf/utils';
|
|
2
|
+
|
|
3
|
+
/** The `TitleField` component renders the title for a form section or field
|
|
4
|
+
* with DaisyUI styling. It displays:
|
|
5
|
+
*
|
|
6
|
+
* - Large heading with primary color
|
|
7
|
+
* - Divider element below the title for visual separation
|
|
8
|
+
* - Support for title override from UI options
|
|
9
|
+
*
|
|
10
|
+
* This component is typically used at the top of form sections to provide clear visual hierarchy.
|
|
11
|
+
*
|
|
12
|
+
* @param props - The `TitleFieldProps` for the component
|
|
13
|
+
*/
|
|
14
|
+
export default function TitleField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
|
|
15
|
+
props: TitleFieldProps<T, S, F>,
|
|
16
|
+
) {
|
|
17
|
+
const { id, title, uiSchema } = props;
|
|
18
|
+
const uiOptions = getUiOptions<T, S, F>(uiSchema);
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<div id={id} className='title-field mb-6'>
|
|
22
|
+
<h2 className='text-3xl font-bold text-primary mb-2'>{uiOptions.title || title}</h2>
|
|
23
|
+
<div className='divider divider-primary'></div>
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
WrapIfAdditionalTemplateProps,
|
|
4
|
+
StrictRJSFSchema,
|
|
5
|
+
RJSFSchema,
|
|
6
|
+
FormContextType,
|
|
7
|
+
TranslatableString,
|
|
8
|
+
buttonId,
|
|
9
|
+
} from '@rjsf/utils';
|
|
10
|
+
|
|
11
|
+
/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are
|
|
12
|
+
* part of an `additionalProperties` part of a schema.
|
|
13
|
+
*
|
|
14
|
+
* @param props - The `WrapIfAdditionalProps` for this component
|
|
15
|
+
*/
|
|
16
|
+
export default function WrapIfAdditionalTemplate<
|
|
17
|
+
T = any,
|
|
18
|
+
S extends StrictRJSFSchema = RJSFSchema,
|
|
19
|
+
F extends FormContextType = any,
|
|
20
|
+
>(props: WrapIfAdditionalTemplateProps<T, S, F>) {
|
|
21
|
+
const {
|
|
22
|
+
children,
|
|
23
|
+
classNames,
|
|
24
|
+
disabled,
|
|
25
|
+
id,
|
|
26
|
+
label,
|
|
27
|
+
readonly,
|
|
28
|
+
required,
|
|
29
|
+
schema,
|
|
30
|
+
onKeyChange,
|
|
31
|
+
onDropPropertyClick,
|
|
32
|
+
registry,
|
|
33
|
+
...rest
|
|
34
|
+
} = props;
|
|
35
|
+
|
|
36
|
+
const { translateString } = registry;
|
|
37
|
+
|
|
38
|
+
const handleBlur = useCallback(
|
|
39
|
+
(event: React.FocusEvent<HTMLInputElement>) => {
|
|
40
|
+
onKeyChange(event.target.value);
|
|
41
|
+
},
|
|
42
|
+
[onKeyChange],
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
const handleRemove = useCallback(() => {
|
|
46
|
+
onDropPropertyClick(label)();
|
|
47
|
+
}, [onDropPropertyClick, label]);
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<div className={`wrap-if-additional-template ${classNames}`} {...rest}>
|
|
51
|
+
<div className='flex items-center'>
|
|
52
|
+
<input
|
|
53
|
+
type='text'
|
|
54
|
+
className='input input-bordered'
|
|
55
|
+
id={`${id}-key`}
|
|
56
|
+
onBlur={handleBlur}
|
|
57
|
+
defaultValue={label}
|
|
58
|
+
disabled={disabled || readonly}
|
|
59
|
+
/>
|
|
60
|
+
{schema.additionalProperties && (
|
|
61
|
+
<button
|
|
62
|
+
id={buttonId<T>(id, 'remove')}
|
|
63
|
+
className='rjsf-array-item-remove btn btn-danger ml-2'
|
|
64
|
+
onClick={handleRemove}
|
|
65
|
+
disabled={disabled || readonly}
|
|
66
|
+
>
|
|
67
|
+
{translateString(TranslatableString.RemoveButton)}
|
|
68
|
+
</button>
|
|
69
|
+
)}
|
|
70
|
+
</div>
|
|
71
|
+
{children}
|
|
72
|
+
</div>
|
|
73
|
+
);
|
|
74
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './ArrayFieldDescriptionTemplate';
|
|
2
|
+
export { default as ArrayFieldItemTemplate } from './ArrayFieldItemTemplate';
|
|
3
|
+
export { default as ArrayFieldTemplate } from './ArrayFieldTemplate';
|
|
4
|
+
export * from './ArrayFieldTitleTemplate';
|
|
5
|
+
export { default as ArrayFieldItemButtonsTemplate } from './ArrayFieldItemButtonsTemplate';
|
|
6
|
+
export { default as BaseInputTemplate } from './BaseInputTemplate';
|
|
7
|
+
export * from './ButtonTemplates';
|
|
8
|
+
export { default as DescriptionField } from './DescriptionField';
|
|
9
|
+
export { default as ErrorList } from './ErrorList';
|
|
10
|
+
export { default as FieldErrorTemplate } from './FieldErrorTemplate';
|
|
11
|
+
export { default as FieldHelpTemplate } from './FieldHelpTemplate';
|
|
12
|
+
export { default as FieldTemplate } from './FieldTemplate';
|
|
13
|
+
export { default as GridTemplate } from './GridTemplate';
|
|
14
|
+
export { default as ObjectFieldTemplate } from './ObjectFieldTemplate';
|
|
15
|
+
export { default as TitleField } from './TitleField';
|
|
16
|
+
export { default as WrapIfAdditionalTemplate } from './WrapIfAdditionalTemplate';
|
|
17
|
+
|
|
18
|
+
export * from './Templates';
|
|
19
|
+
|
|
20
|
+
export { generateTemplates } from './Templates';
|
|
21
|
+
|
|
22
|
+
export { default as buttonTemplates } from './ButtonTemplates';
|