@rjsf/core 6.0.0-alpha.0 → 6.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/dist/core.umd.js +1680 -809
  2. package/dist/index.esm.js +2166 -1198
  3. package/dist/index.esm.js.map +4 -4
  4. package/dist/index.js +2221 -1299
  5. package/dist/index.js.map +4 -4
  6. package/lib/components/Form.d.ts +22 -9
  7. package/lib/components/Form.d.ts.map +1 -0
  8. package/lib/components/Form.js +368 -312
  9. package/lib/components/RichDescription.d.ts +20 -0
  10. package/lib/components/RichDescription.d.ts.map +1 -0
  11. package/lib/components/RichDescription.js +17 -0
  12. package/lib/components/fields/ArrayField.d.ts +20 -9
  13. package/lib/components/fields/ArrayField.d.ts.map +1 -0
  14. package/lib/components/fields/ArrayField.js +212 -206
  15. package/lib/components/fields/BooleanField.d.ts +1 -0
  16. package/lib/components/fields/BooleanField.d.ts.map +1 -0
  17. package/lib/components/fields/BooleanField.js +6 -14
  18. package/lib/components/fields/LayoutGridField.d.ts +480 -0
  19. package/lib/components/fields/LayoutGridField.d.ts.map +1 -0
  20. package/lib/components/fields/LayoutGridField.js +711 -0
  21. package/lib/components/fields/LayoutHeaderField.d.ts +12 -0
  22. package/lib/components/fields/LayoutHeaderField.d.ts.map +1 -0
  23. package/lib/components/fields/LayoutHeaderField.js +23 -0
  24. package/lib/components/fields/LayoutMultiSchemaField.d.ts +28 -0
  25. package/lib/components/fields/LayoutMultiSchemaField.d.ts.map +1 -0
  26. package/lib/components/fields/LayoutMultiSchemaField.js +114 -0
  27. package/lib/components/fields/MultiSchemaField.d.ts +1 -0
  28. package/lib/components/fields/MultiSchemaField.d.ts.map +1 -0
  29. package/lib/components/fields/MultiSchemaField.js +31 -31
  30. package/lib/components/fields/NullField.d.ts +1 -0
  31. package/lib/components/fields/NullField.d.ts.map +1 -0
  32. package/lib/components/fields/NullField.js +0 -1
  33. package/lib/components/fields/NumberField.d.ts +1 -0
  34. package/lib/components/fields/NumberField.d.ts.map +1 -0
  35. package/lib/components/fields/NumberField.js +2 -3
  36. package/lib/components/fields/ObjectField.d.ts +1 -0
  37. package/lib/components/fields/ObjectField.d.ts.map +1 -0
  38. package/lib/components/fields/ObjectField.js +146 -141
  39. package/lib/components/fields/SchemaField.d.ts +1 -0
  40. package/lib/components/fields/SchemaField.d.ts.map +1 -0
  41. package/lib/components/fields/SchemaField.js +10 -20
  42. package/lib/components/fields/StringField.d.ts +1 -0
  43. package/lib/components/fields/StringField.d.ts.map +1 -0
  44. package/lib/components/fields/StringField.js +1 -3
  45. package/lib/components/fields/index.d.ts +1 -0
  46. package/lib/components/fields/index.d.ts.map +1 -0
  47. package/lib/components/fields/index.js +14 -9
  48. package/lib/components/templates/ArrayFieldDescriptionTemplate.d.ts +1 -0
  49. package/lib/components/templates/ArrayFieldDescriptionTemplate.d.ts.map +1 -0
  50. package/lib/components/templates/ArrayFieldDescriptionTemplate.js +0 -1
  51. package/lib/components/templates/ArrayFieldItemButtonsTemplate.d.ts +8 -0
  52. package/lib/components/templates/ArrayFieldItemButtonsTemplate.d.ts.map +1 -0
  53. package/lib/components/templates/ArrayFieldItemButtonsTemplate.js +17 -0
  54. package/lib/components/templates/ArrayFieldItemTemplate.d.ts +4 -3
  55. package/lib/components/templates/ArrayFieldItemTemplate.d.ts.map +1 -0
  56. package/lib/components/templates/ArrayFieldItemTemplate.js +7 -6
  57. package/lib/components/templates/ArrayFieldTemplate.d.ts +2 -1
  58. package/lib/components/templates/ArrayFieldTemplate.d.ts.map +1 -0
  59. package/lib/components/templates/ArrayFieldTemplate.js +3 -4
  60. package/lib/components/templates/ArrayFieldTitleTemplate.d.ts +1 -0
  61. package/lib/components/templates/ArrayFieldTitleTemplate.d.ts.map +1 -0
  62. package/lib/components/templates/ArrayFieldTitleTemplate.js +0 -1
  63. package/lib/components/templates/BaseInputTemplate.d.ts +1 -0
  64. package/lib/components/templates/BaseInputTemplate.d.ts.map +1 -0
  65. package/lib/components/templates/BaseInputTemplate.js +0 -1
  66. package/lib/components/templates/ButtonTemplates/AddButton.d.ts +1 -0
  67. package/lib/components/templates/ButtonTemplates/AddButton.d.ts.map +1 -0
  68. package/lib/components/templates/ButtonTemplates/AddButton.js +1 -2
  69. package/lib/components/templates/ButtonTemplates/IconButton.d.ts +1 -0
  70. package/lib/components/templates/ButtonTemplates/IconButton.d.ts.map +1 -0
  71. package/lib/components/templates/ButtonTemplates/IconButton.js +4 -5
  72. package/lib/components/templates/ButtonTemplates/SubmitButton.d.ts +1 -0
  73. package/lib/components/templates/ButtonTemplates/SubmitButton.d.ts.map +1 -0
  74. package/lib/components/templates/ButtonTemplates/SubmitButton.js +0 -1
  75. package/lib/components/templates/ButtonTemplates/index.d.ts +1 -0
  76. package/lib/components/templates/ButtonTemplates/index.d.ts.map +1 -0
  77. package/lib/components/templates/ButtonTemplates/index.js +3 -4
  78. package/lib/components/templates/DescriptionField.d.ts +1 -0
  79. package/lib/components/templates/DescriptionField.d.ts.map +1 -0
  80. package/lib/components/templates/DescriptionField.js +3 -8
  81. package/lib/components/templates/ErrorList.d.ts +1 -0
  82. package/lib/components/templates/ErrorList.d.ts.map +1 -0
  83. package/lib/components/templates/ErrorList.js +0 -1
  84. package/lib/components/templates/FieldErrorTemplate.d.ts +1 -0
  85. package/lib/components/templates/FieldErrorTemplate.d.ts.map +1 -0
  86. package/lib/components/templates/FieldErrorTemplate.js +0 -1
  87. package/lib/components/templates/FieldHelpTemplate.d.ts +1 -0
  88. package/lib/components/templates/FieldHelpTemplate.d.ts.map +1 -0
  89. package/lib/components/templates/FieldHelpTemplate.js +0 -1
  90. package/lib/components/templates/FieldTemplate/FieldTemplate.d.ts +1 -0
  91. package/lib/components/templates/FieldTemplate/FieldTemplate.d.ts.map +1 -0
  92. package/lib/components/templates/FieldTemplate/FieldTemplate.js +1 -2
  93. package/lib/components/templates/FieldTemplate/Label.d.ts +1 -0
  94. package/lib/components/templates/FieldTemplate/Label.d.ts.map +1 -0
  95. package/lib/components/templates/FieldTemplate/Label.js +0 -1
  96. package/lib/components/templates/FieldTemplate/index.d.ts +2 -1
  97. package/lib/components/templates/FieldTemplate/index.d.ts.map +1 -0
  98. package/lib/components/templates/FieldTemplate/index.js +1 -2
  99. package/lib/components/templates/GridTemplate.d.ts +8 -0
  100. package/lib/components/templates/GridTemplate.d.ts.map +1 -0
  101. package/lib/components/templates/GridTemplate.js +10 -0
  102. package/lib/components/templates/ObjectFieldTemplate.d.ts +1 -0
  103. package/lib/components/templates/ObjectFieldTemplate.d.ts.map +1 -0
  104. package/lib/components/templates/ObjectFieldTemplate.js +2 -3
  105. package/lib/components/templates/TitleField.d.ts +1 -0
  106. package/lib/components/templates/TitleField.d.ts.map +1 -0
  107. package/lib/components/templates/TitleField.js +0 -1
  108. package/lib/components/templates/UnsupportedField.d.ts +1 -0
  109. package/lib/components/templates/UnsupportedField.d.ts.map +1 -0
  110. package/lib/components/templates/UnsupportedField.js +0 -1
  111. package/lib/components/templates/WrapIfAdditionalTemplate.d.ts +1 -0
  112. package/lib/components/templates/WrapIfAdditionalTemplate.d.ts.map +1 -0
  113. package/lib/components/templates/WrapIfAdditionalTemplate.js +10 -6
  114. package/lib/components/templates/index.d.ts +1 -0
  115. package/lib/components/templates/index.d.ts.map +1 -0
  116. package/lib/components/templates/index.js +19 -16
  117. package/lib/components/widgets/AltDateTimeWidget.d.ts +1 -0
  118. package/lib/components/widgets/AltDateTimeWidget.d.ts.map +1 -0
  119. package/lib/components/widgets/AltDateTimeWidget.js +0 -1
  120. package/lib/components/widgets/AltDateWidget.d.ts +1 -0
  121. package/lib/components/widgets/AltDateWidget.d.ts.map +1 -0
  122. package/lib/components/widgets/AltDateWidget.js +0 -1
  123. package/lib/components/widgets/CheckboxWidget.d.ts +1 -0
  124. package/lib/components/widgets/CheckboxWidget.d.ts.map +1 -0
  125. package/lib/components/widgets/CheckboxWidget.js +2 -4
  126. package/lib/components/widgets/CheckboxesWidget.d.ts +1 -0
  127. package/lib/components/widgets/CheckboxesWidget.d.ts.map +1 -0
  128. package/lib/components/widgets/CheckboxesWidget.js +0 -1
  129. package/lib/components/widgets/ColorWidget.d.ts +1 -0
  130. package/lib/components/widgets/ColorWidget.d.ts.map +1 -0
  131. package/lib/components/widgets/ColorWidget.js +0 -1
  132. package/lib/components/widgets/DateTimeWidget.d.ts +1 -0
  133. package/lib/components/widgets/DateTimeWidget.d.ts.map +1 -0
  134. package/lib/components/widgets/DateTimeWidget.js +0 -1
  135. package/lib/components/widgets/DateWidget.d.ts +1 -0
  136. package/lib/components/widgets/DateWidget.d.ts.map +1 -0
  137. package/lib/components/widgets/DateWidget.js +0 -1
  138. package/lib/components/widgets/EmailWidget.d.ts +1 -0
  139. package/lib/components/widgets/EmailWidget.d.ts.map +1 -0
  140. package/lib/components/widgets/EmailWidget.js +0 -1
  141. package/lib/components/widgets/FileWidget.d.ts +1 -0
  142. package/lib/components/widgets/FileWidget.d.ts.map +1 -0
  143. package/lib/components/widgets/FileWidget.js +3 -5
  144. package/lib/components/widgets/HiddenWidget.d.ts +1 -0
  145. package/lib/components/widgets/HiddenWidget.d.ts.map +1 -0
  146. package/lib/components/widgets/HiddenWidget.js +0 -1
  147. package/lib/components/widgets/PasswordWidget.d.ts +1 -0
  148. package/lib/components/widgets/PasswordWidget.d.ts.map +1 -0
  149. package/lib/components/widgets/PasswordWidget.js +0 -1
  150. package/lib/components/widgets/RadioWidget.d.ts +1 -0
  151. package/lib/components/widgets/RadioWidget.d.ts.map +1 -0
  152. package/lib/components/widgets/RadioWidget.js +3 -4
  153. package/lib/components/widgets/RangeWidget.d.ts +1 -0
  154. package/lib/components/widgets/RangeWidget.d.ts.map +1 -0
  155. package/lib/components/widgets/RangeWidget.js +0 -1
  156. package/lib/components/widgets/RatingWidget.d.ts +15 -0
  157. package/lib/components/widgets/RatingWidget.d.ts.map +1 -0
  158. package/lib/components/widgets/RatingWidget.js +63 -0
  159. package/lib/components/widgets/SelectWidget.d.ts +1 -0
  160. package/lib/components/widgets/SelectWidget.d.ts.map +1 -0
  161. package/lib/components/widgets/SelectWidget.js +4 -5
  162. package/lib/components/widgets/TextWidget.d.ts +1 -0
  163. package/lib/components/widgets/TextWidget.d.ts.map +1 -0
  164. package/lib/components/widgets/TextWidget.js +0 -1
  165. package/lib/components/widgets/TextareaWidget.d.ts +1 -0
  166. package/lib/components/widgets/TextareaWidget.d.ts.map +1 -0
  167. package/lib/components/widgets/TextareaWidget.js +0 -1
  168. package/lib/components/widgets/TimeWidget.d.ts +1 -0
  169. package/lib/components/widgets/TimeWidget.d.ts.map +1 -0
  170. package/lib/components/widgets/TimeWidget.js +0 -1
  171. package/lib/components/widgets/URLWidget.d.ts +1 -0
  172. package/lib/components/widgets/URLWidget.d.ts.map +1 -0
  173. package/lib/components/widgets/URLWidget.js +0 -1
  174. package/lib/components/widgets/UpDownWidget.d.ts +1 -0
  175. package/lib/components/widgets/UpDownWidget.d.ts.map +1 -0
  176. package/lib/components/widgets/UpDownWidget.js +0 -1
  177. package/lib/components/widgets/index.d.ts +1 -0
  178. package/lib/components/widgets/index.d.ts.map +1 -0
  179. package/lib/components/widgets/index.js +21 -20
  180. package/lib/getDefaultRegistry.d.ts +1 -0
  181. package/lib/getDefaultRegistry.d.ts.map +1 -0
  182. package/lib/getDefaultRegistry.js +3 -4
  183. package/lib/index.d.ts +7 -5
  184. package/lib/index.d.ts.map +1 -0
  185. package/lib/index.js +5 -5
  186. package/lib/tsconfig.tsbuildinfo +1 -1
  187. package/lib/withTheme.d.ts +2 -1
  188. package/lib/withTheme.d.ts.map +1 -0
  189. package/lib/withTheme.js +7 -8
  190. package/package.json +46 -37
  191. package/src/components/Form.tsx +127 -41
  192. package/src/components/RichDescription.tsx +50 -0
  193. package/src/components/fields/ArrayField.tsx +34 -24
  194. package/src/components/fields/BooleanField.tsx +6 -14
  195. package/src/components/fields/LayoutGridField.tsx +967 -0
  196. package/src/components/fields/LayoutHeaderField.tsx +49 -0
  197. package/src/components/fields/LayoutMultiSchemaField.tsx +228 -0
  198. package/src/components/fields/MultiSchemaField.tsx +9 -4
  199. package/src/components/fields/NullField.tsx +1 -1
  200. package/src/components/fields/NumberField.tsx +5 -5
  201. package/src/components/fields/ObjectField.tsx +32 -24
  202. package/src/components/fields/SchemaField.tsx +17 -30
  203. package/src/components/fields/StringField.tsx +2 -2
  204. package/src/components/fields/index.ts +7 -1
  205. package/src/components/templates/ArrayFieldDescriptionTemplate.tsx +2 -2
  206. package/src/components/templates/ArrayFieldItemButtonsTemplate.tsx +85 -0
  207. package/src/components/templates/ArrayFieldItemTemplate.tsx +18 -57
  208. package/src/components/templates/ArrayFieldTemplate.tsx +10 -8
  209. package/src/components/templates/ArrayFieldTitleTemplate.tsx +2 -2
  210. package/src/components/templates/BaseInputTemplate.tsx +4 -4
  211. package/src/components/templates/ButtonTemplates/IconButton.tsx +9 -36
  212. package/src/components/templates/ButtonTemplates/SubmitButton.tsx +1 -1
  213. package/src/components/templates/ButtonTemplates/index.ts +1 -1
  214. package/src/components/templates/DescriptionField.tsx +9 -15
  215. package/src/components/templates/FieldErrorTemplate.tsx +1 -1
  216. package/src/components/templates/FieldHelpTemplate.tsx +1 -1
  217. package/src/components/templates/FieldTemplate/FieldTemplate.tsx +2 -2
  218. package/src/components/templates/GridTemplate.tsx +15 -0
  219. package/src/components/templates/ObjectFieldTemplate.tsx +5 -3
  220. package/src/components/templates/TitleField.tsx +1 -1
  221. package/src/components/templates/UnsupportedField.tsx +1 -1
  222. package/src/components/templates/WrapIfAdditionalTemplate.tsx +14 -4
  223. package/src/components/templates/index.ts +4 -0
  224. package/src/components/widgets/AltDateWidget.tsx +9 -6
  225. package/src/components/widgets/CheckboxWidget.tsx +5 -5
  226. package/src/components/widgets/CheckboxesWidget.tsx +2 -2
  227. package/src/components/widgets/ColorWidget.tsx +1 -1
  228. package/src/components/widgets/DateTimeWidget.tsx +1 -1
  229. package/src/components/widgets/DateWidget.tsx +1 -1
  230. package/src/components/widgets/EmailWidget.tsx +1 -1
  231. package/src/components/widgets/FileWidget.tsx +5 -5
  232. package/src/components/widgets/PasswordWidget.tsx +1 -1
  233. package/src/components/widgets/RadioWidget.tsx +3 -3
  234. package/src/components/widgets/RangeWidget.tsx +1 -1
  235. package/src/components/widgets/RatingWidget.tsx +129 -0
  236. package/src/components/widgets/SelectWidget.tsx +4 -3
  237. package/src/components/widgets/TextWidget.tsx +1 -1
  238. package/src/components/widgets/TextareaWidget.tsx +3 -3
  239. package/src/components/widgets/TimeWidget.tsx +1 -1
  240. package/src/components/widgets/URLWidget.tsx +1 -1
  241. package/src/components/widgets/UpDownWidget.tsx +1 -1
  242. package/src/components/widgets/index.ts +3 -1
  243. package/src/getDefaultRegistry.ts +1 -1
  244. package/src/index.ts +3 -2
  245. package/src/tsconfig.json +14 -6
  246. package/src/withTheme.tsx +4 -3
  247. package/LICENSE.md +0 -201
  248. package/lib/components/Form.js.map +0 -1
  249. package/lib/components/fields/ArrayField.js.map +0 -1
  250. package/lib/components/fields/BooleanField.js.map +0 -1
  251. package/lib/components/fields/MultiSchemaField.js.map +0 -1
  252. package/lib/components/fields/NullField.js.map +0 -1
  253. package/lib/components/fields/NumberField.js.map +0 -1
  254. package/lib/components/fields/ObjectField.js.map +0 -1
  255. package/lib/components/fields/SchemaField.js.map +0 -1
  256. package/lib/components/fields/StringField.js.map +0 -1
  257. package/lib/components/fields/index.js.map +0 -1
  258. package/lib/components/templates/ArrayFieldDescriptionTemplate.js.map +0 -1
  259. package/lib/components/templates/ArrayFieldItemTemplate.js.map +0 -1
  260. package/lib/components/templates/ArrayFieldTemplate.js.map +0 -1
  261. package/lib/components/templates/ArrayFieldTitleTemplate.js.map +0 -1
  262. package/lib/components/templates/BaseInputTemplate.js.map +0 -1
  263. package/lib/components/templates/ButtonTemplates/AddButton.js.map +0 -1
  264. package/lib/components/templates/ButtonTemplates/IconButton.js.map +0 -1
  265. package/lib/components/templates/ButtonTemplates/SubmitButton.js.map +0 -1
  266. package/lib/components/templates/ButtonTemplates/index.js.map +0 -1
  267. package/lib/components/templates/DescriptionField.js.map +0 -1
  268. package/lib/components/templates/ErrorList.js.map +0 -1
  269. package/lib/components/templates/FieldErrorTemplate.js.map +0 -1
  270. package/lib/components/templates/FieldHelpTemplate.js.map +0 -1
  271. package/lib/components/templates/FieldTemplate/FieldTemplate.js.map +0 -1
  272. package/lib/components/templates/FieldTemplate/Label.js.map +0 -1
  273. package/lib/components/templates/FieldTemplate/index.js.map +0 -1
  274. package/lib/components/templates/ObjectFieldTemplate.js.map +0 -1
  275. package/lib/components/templates/TitleField.js.map +0 -1
  276. package/lib/components/templates/UnsupportedField.js.map +0 -1
  277. package/lib/components/templates/WrapIfAdditionalTemplate.js.map +0 -1
  278. package/lib/components/templates/index.js.map +0 -1
  279. package/lib/components/widgets/AltDateTimeWidget.js.map +0 -1
  280. package/lib/components/widgets/AltDateWidget.js.map +0 -1
  281. package/lib/components/widgets/CheckboxWidget.js.map +0 -1
  282. package/lib/components/widgets/CheckboxesWidget.js.map +0 -1
  283. package/lib/components/widgets/ColorWidget.js.map +0 -1
  284. package/lib/components/widgets/DateTimeWidget.js.map +0 -1
  285. package/lib/components/widgets/DateWidget.js.map +0 -1
  286. package/lib/components/widgets/EmailWidget.js.map +0 -1
  287. package/lib/components/widgets/FileWidget.js.map +0 -1
  288. package/lib/components/widgets/HiddenWidget.js.map +0 -1
  289. package/lib/components/widgets/PasswordWidget.js.map +0 -1
  290. package/lib/components/widgets/RadioWidget.js.map +0 -1
  291. package/lib/components/widgets/RangeWidget.js.map +0 -1
  292. package/lib/components/widgets/SelectWidget.js.map +0 -1
  293. package/lib/components/widgets/TextWidget.js.map +0 -1
  294. package/lib/components/widgets/TextareaWidget.js.map +0 -1
  295. package/lib/components/widgets/TimeWidget.js.map +0 -1
  296. package/lib/components/widgets/URLWidget.js.map +0 -1
  297. package/lib/components/widgets/UpDownWidget.js.map +0 -1
  298. package/lib/components/widgets/index.js.map +0 -1
  299. package/lib/getDefaultRegistry.js.map +0 -1
  300. package/lib/index.js.map +0 -1
  301. package/lib/withTheme.js.map +0 -1
@@ -0,0 +1,85 @@
1
+ import { useMemo } from 'react';
2
+ import {
3
+ ArrayFieldItemButtonsTemplateType,
4
+ buttonId,
5
+ FormContextType,
6
+ RJSFSchema,
7
+ StrictRJSFSchema,
8
+ } from '@rjsf/utils';
9
+
10
+ /** The `ArrayFieldTemplateItemButtons` component is the template used to render the buttons associate3d with items of
11
+ * an array.
12
+ *
13
+ * @param props - The `ArrayFieldItemButtonsTemplateType` props for the component
14
+ */
15
+ export default function ArrayFieldItemButtonsTemplate<
16
+ T = any,
17
+ S extends StrictRJSFSchema = RJSFSchema,
18
+ F extends FormContextType = any,
19
+ >(props: ArrayFieldItemButtonsTemplateType<T, S, F>) {
20
+ const {
21
+ disabled,
22
+ hasCopy,
23
+ hasMoveDown,
24
+ hasMoveUp,
25
+ hasRemove,
26
+ idSchema,
27
+ index,
28
+ onCopyIndexClick,
29
+ onDropIndexClick,
30
+ onReorderClick,
31
+ readonly,
32
+ registry,
33
+ uiSchema,
34
+ } = props;
35
+ const { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } = registry.templates.ButtonTemplates;
36
+ const onCopyClick = useMemo(() => onCopyIndexClick(index), [index, onCopyIndexClick]);
37
+ const onRemoveClick = useMemo(() => onDropIndexClick(index), [index, onDropIndexClick]);
38
+ const onArrowUpClick = useMemo(() => onReorderClick(index, index - 1), [index, onReorderClick]);
39
+ const onArrowDownClick = useMemo(() => onReorderClick(index, index + 1), [index, onReorderClick]);
40
+
41
+ return (
42
+ <>
43
+ {(hasMoveUp || hasMoveDown) && (
44
+ <MoveUpButton
45
+ id={buttonId<T>(idSchema, 'moveUp')}
46
+ className='rjsf-array-item-move-up'
47
+ disabled={disabled || readonly || !hasMoveUp}
48
+ onClick={onArrowUpClick}
49
+ uiSchema={uiSchema}
50
+ registry={registry}
51
+ />
52
+ )}
53
+ {(hasMoveUp || hasMoveDown) && (
54
+ <MoveDownButton
55
+ id={buttonId<T>(idSchema, 'moveDown')}
56
+ className='rjsf-array-item-move-down'
57
+ disabled={disabled || readonly || !hasMoveDown}
58
+ onClick={onArrowDownClick}
59
+ uiSchema={uiSchema}
60
+ registry={registry}
61
+ />
62
+ )}
63
+ {hasCopy && (
64
+ <CopyButton
65
+ id={buttonId<T>(idSchema, 'copy')}
66
+ className='rjsf-array-item-copy'
67
+ disabled={disabled || readonly}
68
+ onClick={onCopyClick}
69
+ uiSchema={uiSchema}
70
+ registry={registry}
71
+ />
72
+ )}
73
+ {hasRemove && (
74
+ <RemoveButton
75
+ id={buttonId<T>(idSchema, 'remove')}
76
+ className='rjsf-array-item-remove'
77
+ disabled={disabled || readonly}
78
+ onClick={onRemoveClick}
79
+ uiSchema={uiSchema}
80
+ registry={registry}
81
+ />
82
+ )}
83
+ </>
84
+ );
85
+ }
@@ -1,33 +1,29 @@
1
1
  import { CSSProperties } from 'react';
2
- import { ArrayFieldTemplateItemType, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
2
+ import {
3
+ ArrayFieldItemTemplateType,
4
+ FormContextType,
5
+ getTemplate,
6
+ getUiOptions,
7
+ RJSFSchema,
8
+ StrictRJSFSchema,
9
+ } from '@rjsf/utils';
3
10
 
4
11
  /** The `ArrayFieldItemTemplate` component is the template used to render an items of an array.
5
12
  *
6
- * @param props - The `ArrayFieldTemplateItemType` props for the component
13
+ * @param props - The `ArrayFieldItemTemplateType` props for the component
7
14
  */
8
15
  export default function ArrayFieldItemTemplate<
9
16
  T = any,
10
17
  S extends StrictRJSFSchema = RJSFSchema,
11
- F extends FormContextType = any
12
- >(props: ArrayFieldTemplateItemType<T, S, F>) {
13
- const {
14
- children,
15
- className,
16
- disabled,
17
- hasToolbar,
18
- hasMoveDown,
19
- hasMoveUp,
20
- hasRemove,
21
- hasCopy,
22
- index,
23
- onCopyIndexClick,
24
- onDropIndexClick,
25
- onReorderClick,
26
- readonly,
18
+ F extends FormContextType = any,
19
+ >(props: ArrayFieldItemTemplateType<T, S, F>) {
20
+ const { children, className, buttonsProps, hasToolbar, registry, uiSchema } = props;
21
+ const uiOptions = getUiOptions<T, S, F>(uiSchema);
22
+ const ArrayFieldItemButtonsTemplate = getTemplate<'ArrayFieldItemButtonsTemplate', T, S, F>(
23
+ 'ArrayFieldItemButtonsTemplate',
27
24
  registry,
28
- uiSchema,
29
- } = props;
30
- const { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } = registry.templates.ButtonTemplates;
25
+ uiOptions,
26
+ );
31
27
  const btnStyle: CSSProperties = {
32
28
  flex: 1,
33
29
  paddingLeft: 6,
@@ -46,42 +42,7 @@ export default function ArrayFieldItemTemplate<
46
42
  justifyContent: 'space-around',
47
43
  }}
48
44
  >
49
- {(hasMoveUp || hasMoveDown) && (
50
- <MoveUpButton
51
- style={btnStyle}
52
- disabled={disabled || readonly || !hasMoveUp}
53
- onClick={onReorderClick(index, index - 1)}
54
- uiSchema={uiSchema}
55
- registry={registry}
56
- />
57
- )}
58
- {(hasMoveUp || hasMoveDown) && (
59
- <MoveDownButton
60
- style={btnStyle}
61
- disabled={disabled || readonly || !hasMoveDown}
62
- onClick={onReorderClick(index, index + 1)}
63
- uiSchema={uiSchema}
64
- registry={registry}
65
- />
66
- )}
67
- {hasCopy && (
68
- <CopyButton
69
- style={btnStyle}
70
- disabled={disabled || readonly}
71
- onClick={onCopyIndexClick(index)}
72
- uiSchema={uiSchema}
73
- registry={registry}
74
- />
75
- )}
76
- {hasRemove && (
77
- <RemoveButton
78
- style={btnStyle}
79
- disabled={disabled || readonly}
80
- onClick={onDropIndexClick(index)}
81
- uiSchema={uiSchema}
82
- registry={registry}
83
- />
84
- )}
45
+ <ArrayFieldItemButtonsTemplate {...buttonsProps} style={btnStyle} />
85
46
  </div>
86
47
  </div>
87
48
  )}
@@ -2,20 +2,21 @@ import {
2
2
  getTemplate,
3
3
  getUiOptions,
4
4
  ArrayFieldTemplateProps,
5
- ArrayFieldTemplateItemType,
5
+ ArrayFieldItemTemplateType,
6
6
  FormContextType,
7
7
  RJSFSchema,
8
8
  StrictRJSFSchema,
9
+ buttonId,
9
10
  } from '@rjsf/utils';
10
11
 
11
12
  /** The `ArrayFieldTemplate` component is the template used to render all items in an array.
12
13
  *
13
- * @param props - The `ArrayFieldTemplateItemType` props for the component
14
+ * @param props - The `ArrayFieldItemTemplateType` props for the component
14
15
  */
15
16
  export default function ArrayFieldTemplate<
16
17
  T = any,
17
18
  S extends StrictRJSFSchema = RJSFSchema,
18
- F extends FormContextType = any
19
+ F extends FormContextType = any,
19
20
  >(props: ArrayFieldTemplateProps<T, S, F>) {
20
21
  const {
21
22
  canAdd,
@@ -35,17 +36,17 @@ export default function ArrayFieldTemplate<
35
36
  const ArrayFieldDescriptionTemplate = getTemplate<'ArrayFieldDescriptionTemplate', T, S, F>(
36
37
  'ArrayFieldDescriptionTemplate',
37
38
  registry,
38
- uiOptions
39
+ uiOptions,
39
40
  );
40
41
  const ArrayFieldItemTemplate = getTemplate<'ArrayFieldItemTemplate', T, S, F>(
41
42
  'ArrayFieldItemTemplate',
42
43
  registry,
43
- uiOptions
44
+ uiOptions,
44
45
  );
45
46
  const ArrayFieldTitleTemplate = getTemplate<'ArrayFieldTitleTemplate', T, S, F>(
46
47
  'ArrayFieldTitleTemplate',
47
48
  registry,
48
- uiOptions
49
+ uiOptions,
49
50
  );
50
51
  // Button templates are not overridden in the uiSchema
51
52
  const {
@@ -70,13 +71,14 @@ export default function ArrayFieldTemplate<
70
71
  />
71
72
  <div className='row array-item-list'>
72
73
  {items &&
73
- items.map(({ key, ...itemProps }: ArrayFieldTemplateItemType<T, S, F>) => (
74
+ items.map(({ key, ...itemProps }: ArrayFieldItemTemplateType<T, S, F>) => (
74
75
  <ArrayFieldItemTemplate key={key} {...itemProps} />
75
76
  ))}
76
77
  </div>
77
78
  {canAdd && (
78
79
  <AddButton
79
- className='array-item-add'
80
+ id={buttonId<T>(idSchema, 'add')}
81
+ className='rjsf-array-item-add'
80
82
  onClick={onAddClick}
81
83
  disabled={disabled || readonly}
82
84
  uiSchema={uiSchema}
@@ -17,7 +17,7 @@ import {
17
17
  export default function ArrayFieldTitleTemplate<
18
18
  T = any,
19
19
  S extends StrictRJSFSchema = RJSFSchema,
20
- F extends FormContextType = any
20
+ F extends FormContextType = any,
21
21
  >(props: ArrayFieldTitleProps<T, S, F>) {
22
22
  const { idSchema, title, schema, uiSchema, required, registry } = props;
23
23
  const options = getUiOptions<T, S, F>(uiSchema, registry.globalUiOptions);
@@ -28,7 +28,7 @@ export default function ArrayFieldTitleTemplate<
28
28
  const TitleFieldTemplate: TemplatesType<T, S, F>['TitleFieldTemplate'] = getTemplate<'TitleFieldTemplate', T, S, F>(
29
29
  'TitleFieldTemplate',
30
30
  registry,
31
- options
31
+ options,
32
32
  );
33
33
  return (
34
34
  <TitleFieldTemplate
@@ -18,7 +18,7 @@ import {
18
18
  export default function BaseInputTemplate<
19
19
  T = any,
20
20
  S extends StrictRJSFSchema = RJSFSchema,
21
- F extends FormContextType = any
21
+ F extends FormContextType = any,
22
22
  >(props: BaseInputTemplateProps<T, S, F>) {
23
23
  const {
24
24
  id,
@@ -63,15 +63,15 @@ export default function BaseInputTemplate<
63
63
 
64
64
  const _onChange = useCallback(
65
65
  ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onChange(value === '' ? options.emptyValue : value),
66
- [onChange, options]
66
+ [onChange, options],
67
67
  );
68
68
  const _onBlur = useCallback(
69
69
  ({ target }: FocusEvent<HTMLInputElement>) => onBlur(id, target && target.value),
70
- [onBlur, id]
70
+ [onBlur, id],
71
71
  );
72
72
  const _onFocus = useCallback(
73
73
  ({ target }: FocusEvent<HTMLInputElement>) => onFocus(id, target && target.value),
74
- [onFocus, id]
74
+ [onFocus, id],
75
75
  );
76
76
 
77
77
  return (
@@ -1,7 +1,7 @@
1
1
  import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';
2
2
 
3
3
  export default function IconButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
4
- props: IconButtonProps<T, S, F>
4
+ props: IconButtonProps<T, S, F>,
5
5
  ) {
6
6
  const { iconType = 'default', icon, className, uiSchema, registry, ...otherProps } = props;
7
7
  return (
@@ -12,66 +12,39 @@ export default function IconButton<T = any, S extends StrictRJSFSchema = RJSFSch
12
12
  }
13
13
 
14
14
  export function CopyButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
15
- props: IconButtonProps<T, S, F>
15
+ props: IconButtonProps<T, S, F>,
16
16
  ) {
17
17
  const {
18
18
  registry: { translateString },
19
19
  } = props;
20
- return (
21
- <IconButton
22
- title={translateString(TranslatableString.CopyButton)}
23
- className='array-item-copy'
24
- {...props}
25
- icon='copy'
26
- />
27
- );
20
+ return <IconButton title={translateString(TranslatableString.CopyButton)} {...props} icon='copy' />;
28
21
  }
29
22
 
30
23
  export function MoveDownButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
31
- props: IconButtonProps<T, S, F>
24
+ props: IconButtonProps<T, S, F>,
32
25
  ) {
33
26
  const {
34
27
  registry: { translateString },
35
28
  } = props;
36
- return (
37
- <IconButton
38
- title={translateString(TranslatableString.MoveDownButton)}
39
- className='array-item-move-down'
40
- {...props}
41
- icon='arrow-down'
42
- />
43
- );
29
+ return <IconButton title={translateString(TranslatableString.MoveDownButton)} {...props} icon='arrow-down' />;
44
30
  }
45
31
 
46
32
  export function MoveUpButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
47
- props: IconButtonProps<T, S, F>
33
+ props: IconButtonProps<T, S, F>,
48
34
  ) {
49
35
  const {
50
36
  registry: { translateString },
51
37
  } = props;
52
- return (
53
- <IconButton
54
- title={translateString(TranslatableString.MoveUpButton)}
55
- className='array-item-move-up'
56
- {...props}
57
- icon='arrow-up'
58
- />
59
- );
38
+ return <IconButton title={translateString(TranslatableString.MoveUpButton)} {...props} icon='arrow-up' />;
60
39
  }
61
40
 
62
41
  export function RemoveButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
63
- props: IconButtonProps<T, S, F>
42
+ props: IconButtonProps<T, S, F>,
64
43
  ) {
65
44
  const {
66
45
  registry: { translateString },
67
46
  } = props;
68
47
  return (
69
- <IconButton
70
- title={translateString(TranslatableString.RemoveButton)}
71
- className='array-item-remove'
72
- {...props}
73
- iconType='danger'
74
- icon='remove'
75
- />
48
+ <IconButton title={translateString(TranslatableString.RemoveButton)} {...props} iconType='danger' icon='remove' />
76
49
  );
77
50
  }
@@ -5,7 +5,7 @@ import { getSubmitButtonOptions, FormContextType, RJSFSchema, StrictRJSFSchema,
5
5
  export default function SubmitButton<
6
6
  T = any,
7
7
  S extends StrictRJSFSchema = RJSFSchema,
8
- F extends FormContextType = any
8
+ F extends FormContextType = any,
9
9
  >({ uiSchema }: SubmitButtonProps<T, S, F>) {
10
10
  const { submitText, norender, props: submitButtonProps = {} } = getSubmitButtonOptions<T, S, F>(uiSchema);
11
11
  if (norender) {
@@ -7,7 +7,7 @@ import { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } from './IconBu
7
7
  function buttonTemplates<
8
8
  T = any,
9
9
  S extends StrictRJSFSchema = RJSFSchema,
10
- F extends FormContextType = any
10
+ F extends FormContextType = any,
11
11
  >(): TemplatesType<T, S, F>['ButtonTemplates'] {
12
12
  return {
13
13
  SubmitButton,
@@ -1,5 +1,7 @@
1
1
  import { DescriptionFieldProps, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
2
2
 
3
+ import RichDescription from '../RichDescription';
4
+
3
5
  /** The `DescriptionField` is the template to use to render the description of a field
4
6
  *
5
7
  * @param props - The `DescriptionFieldProps` for this component
@@ -7,23 +9,15 @@ import { DescriptionFieldProps, FormContextType, RJSFSchema, StrictRJSFSchema }
7
9
  export default function DescriptionField<
8
10
  T = any,
9
11
  S extends StrictRJSFSchema = RJSFSchema,
10
- F extends FormContextType = any
12
+ F extends FormContextType = any,
11
13
  >(props: DescriptionFieldProps<T, S, F>) {
12
- const { id, description } = props;
14
+ const { id, description, registry, uiSchema } = props;
13
15
  if (!description) {
14
16
  return null;
15
17
  }
16
- if (typeof description === 'string') {
17
- return (
18
- <p id={id} className='field-description'>
19
- {description}
20
- </p>
21
- );
22
- } else {
23
- return (
24
- <div id={id} className='field-description'>
25
- {description}
26
- </div>
27
- );
28
- }
18
+ return (
19
+ <div id={id} className='field-description'>
20
+ <RichDescription description={description} registry={registry} uiSchema={uiSchema} />
21
+ </div>
22
+ );
29
23
  }
@@ -7,7 +7,7 @@ import { errorId, FieldErrorProps, FormContextType, RJSFSchema, StrictRJSFSchema
7
7
  export default function FieldErrorTemplate<
8
8
  T = any,
9
9
  S extends StrictRJSFSchema = RJSFSchema,
10
- F extends FormContextType = any
10
+ F extends FormContextType = any,
11
11
  >(props: FieldErrorProps<T, S, F>) {
12
12
  const { errors = [], idSchema } = props;
13
13
  if (errors.length === 0) {
@@ -7,7 +7,7 @@ import { helpId, FieldHelpProps, FormContextType, RJSFSchema, StrictRJSFSchema }
7
7
  export default function FieldHelpTemplate<
8
8
  T = any,
9
9
  S extends StrictRJSFSchema = RJSFSchema,
10
- F extends FormContextType = any
10
+ F extends FormContextType = any,
11
11
  >(props: FieldHelpProps<T, S, F>) {
12
12
  const { idSchema, help } = props;
13
13
  if (!help) {
@@ -17,14 +17,14 @@ import Label from './Label';
17
17
  export default function FieldTemplate<
18
18
  T = any,
19
19
  S extends StrictRJSFSchema = RJSFSchema,
20
- F extends FormContextType = any
20
+ F extends FormContextType = any,
21
21
  >(props: FieldTemplateProps<T, S, F>) {
22
22
  const { id, label, children, errors, help, description, hidden, required, displayLabel, registry, uiSchema } = props;
23
23
  const uiOptions = getUiOptions(uiSchema);
24
24
  const WrapIfAdditionalTemplate = getTemplate<'WrapIfAdditionalTemplate', T, S, F>(
25
25
  'WrapIfAdditionalTemplate',
26
26
  registry,
27
- uiOptions
27
+ uiOptions,
28
28
  );
29
29
  if (hidden) {
30
30
  return <div className='hidden'>{children}</div>;
@@ -0,0 +1,15 @@
1
+ import { GridTemplateProps } from '@rjsf/utils';
2
+
3
+ /** Renders a `GridTemplate` for bootstrap 3, which is expecting the column information coming in via the `className`
4
+ * prop. Also spreads all the other props provided by the user directly on the div.
5
+ *
6
+ * @param props - The GridTemplateProps, including the expected className for the bootstrap 3 grid behavior
7
+ */
8
+ export default function GridTemplate(props: GridTemplateProps) {
9
+ const { children, column, className, ...rest } = props;
10
+ return (
11
+ <div className={className} {...rest}>
12
+ {children}
13
+ </div>
14
+ );
15
+ }
@@ -9,6 +9,7 @@ import {
9
9
  getTemplate,
10
10
  getUiOptions,
11
11
  titleId,
12
+ buttonId,
12
13
  } from '@rjsf/utils';
13
14
 
14
15
  /** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the
@@ -20,7 +21,7 @@ import {
20
21
  export default function ObjectFieldTemplate<
21
22
  T = any,
22
23
  S extends StrictRJSFSchema = RJSFSchema,
23
- F extends FormContextType = any
24
+ F extends FormContextType = any,
24
25
  >(props: ObjectFieldTemplateProps<T, S, F>) {
25
26
  const {
26
27
  description,
@@ -41,7 +42,7 @@ export default function ObjectFieldTemplate<
41
42
  const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(
42
43
  'DescriptionFieldTemplate',
43
44
  registry,
44
- options
45
+ options,
45
46
  );
46
47
  // Button templates are not overridden in the uiSchema
47
48
  const {
@@ -71,7 +72,8 @@ export default function ObjectFieldTemplate<
71
72
  {properties.map((prop: ObjectFieldTemplatePropertyType) => prop.content)}
72
73
  {canExpand<T, S, F>(schema, uiSchema, formData) && (
73
74
  <AddButton
74
- className='object-property-expand'
75
+ id={buttonId<T>(idSchema, 'add')}
76
+ className='rjsf-object-property-expand'
75
77
  onClick={onAddClick(schema)}
76
78
  disabled={disabled || readonly}
77
79
  uiSchema={uiSchema}
@@ -7,7 +7,7 @@ const REQUIRED_FIELD_SYMBOL = '*';
7
7
  * @param props - The `TitleFieldProps` for this component
8
8
  */
9
9
  export default function TitleField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
10
- props: TitleFieldProps<T, S, F>
10
+ props: TitleFieldProps<T, S, F>,
11
11
  ) {
12
12
  const { id, title, required } = props;
13
13
  return (
@@ -7,7 +7,7 @@ import Markdown from 'markdown-to-jsx';
7
7
  * @param props - The `FieldProps` for this template
8
8
  */
9
9
  function UnsupportedField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(
10
- props: UnsupportedFieldProps<T, S, F>
10
+ props: UnsupportedFieldProps<T, S, F>,
11
11
  ) {
12
12
  const { schema, idSchema, reason, registry } = props;
13
13
  const { translateString } = registry;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  ADDITIONAL_PROPERTY_FLAG,
3
+ buttonId,
3
4
  FormContextType,
4
5
  RJSFSchema,
5
6
  StrictRJSFSchema,
@@ -17,7 +18,7 @@ import Label from './FieldTemplate/Label';
17
18
  export default function WrapIfAdditionalTemplate<
18
19
  T = any,
19
20
  S extends StrictRJSFSchema = RJSFSchema,
20
- F extends FormContextType = any
21
+ F extends FormContextType = any,
21
22
  >(props: WrapIfAdditionalTemplateProps<T, S, F>) {
22
23
  const {
23
24
  id,
@@ -30,6 +31,8 @@ export default function WrapIfAdditionalTemplate<
30
31
  readonly,
31
32
  required,
32
33
  schema,
34
+ hideError,
35
+ rawErrors,
33
36
  children,
34
37
  uiSchema,
35
38
  registry,
@@ -40,16 +43,22 @@ export default function WrapIfAdditionalTemplate<
40
43
  const keyLabel = translateString(TranslatableString.KeyLabel, [label]);
41
44
  const additional = ADDITIONAL_PROPERTY_FLAG in schema;
42
45
 
46
+ const classNamesList = ['form-group', classNames];
47
+ if (!hideError && rawErrors && rawErrors.length > 0) {
48
+ classNamesList.push('has-error has-danger');
49
+ }
50
+ const uiClassNames = classNamesList.join(' ').trim();
51
+
43
52
  if (!additional) {
44
53
  return (
45
- <div className={classNames} style={style}>
54
+ <div className={uiClassNames} style={style}>
46
55
  {children}
47
56
  </div>
48
57
  );
49
58
  }
50
59
 
51
60
  return (
52
- <div className={classNames} style={style}>
61
+ <div className={uiClassNames} style={style}>
53
62
  <div className='row'>
54
63
  <div className='col-xs-5 form-additional'>
55
64
  <div className='form-group'>
@@ -66,7 +75,8 @@ export default function WrapIfAdditionalTemplate<
66
75
  <div className='form-additional form-group col-xs-5'>{children}</div>
67
76
  <div className='col-xs-2'>
68
77
  <RemoveButton
69
- className='array-item-remove btn-block'
78
+ id={buttonId<T>(id, 'remove')}
79
+ className='rjsf-object-property-remove btn-block'
70
80
  style={{ border: '0' }}
71
81
  disabled={disabled || readonly}
72
82
  onClick={onDropPropertyClick(label)}
@@ -2,6 +2,7 @@ import { FormContextType, RJSFSchema, StrictRJSFSchema, TemplatesType } from '@r
2
2
 
3
3
  import ArrayFieldDescriptionTemplate from './ArrayFieldDescriptionTemplate';
4
4
  import ArrayFieldItemTemplate from './ArrayFieldItemTemplate';
5
+ import ArrayFieldItemButtonsTemplate from './ArrayFieldItemButtonsTemplate';
5
6
  import ArrayFieldTemplate from './ArrayFieldTemplate';
6
7
  import ArrayFieldTitleTemplate from './ArrayFieldTitleTemplate';
7
8
  import BaseInputTemplate from './BaseInputTemplate';
@@ -11,6 +12,7 @@ import ErrorList from './ErrorList';
11
12
  import FieldTemplate from './FieldTemplate';
12
13
  import FieldErrorTemplate from './FieldErrorTemplate';
13
14
  import FieldHelpTemplate from './FieldHelpTemplate';
15
+ import GridTemplate from './GridTemplate';
14
16
  import ObjectFieldTemplate from './ObjectFieldTemplate';
15
17
  import TitleField from './TitleField';
16
18
  import UnsupportedField from './UnsupportedField';
@@ -24,6 +26,7 @@ function templates<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends F
24
26
  return {
25
27
  ArrayFieldDescriptionTemplate,
26
28
  ArrayFieldItemTemplate,
29
+ ArrayFieldItemButtonsTemplate,
27
30
  ArrayFieldTemplate,
28
31
  ArrayFieldTitleTemplate,
29
32
  ButtonTemplates: ButtonTemplates<T, S, F>(),
@@ -33,6 +36,7 @@ function templates<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends F
33
36
  FieldTemplate,
34
37
  FieldErrorTemplate,
35
38
  FieldHelpTemplate,
39
+ GridTemplate,
36
40
  ObjectFieldTemplate,
37
41
  TitleFieldTemplate: TitleField,
38
42
  UnsupportedFieldTemplate: UnsupportedField,