@rjsf/chakra-ui 5.11.2 → 5.12.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.
Files changed (251) hide show
  1. package/dist/chakra-ui.esm.js +845 -946
  2. package/dist/chakra-ui.esm.js.map +7 -1
  3. package/dist/chakra-ui.umd.js +1339 -0
  4. package/dist/index.js +1500 -5
  5. package/dist/index.js.map +7 -0
  6. package/lib/AddButton/AddButton.d.ts +3 -0
  7. package/lib/AddButton/AddButton.js +11 -0
  8. package/lib/AddButton/AddButton.js.map +1 -0
  9. package/lib/AddButton/index.d.ts +2 -0
  10. package/lib/AddButton/index.js +3 -0
  11. package/lib/AddButton/index.js.map +1 -0
  12. package/lib/AltDateTimeWidget/AltDateTimeWidget.d.ts +15 -0
  13. package/lib/AltDateTimeWidget/AltDateTimeWidget.js +9 -0
  14. package/lib/AltDateTimeWidget/AltDateTimeWidget.js.map +1 -0
  15. package/lib/AltDateTimeWidget/index.d.ts +2 -0
  16. package/lib/AltDateTimeWidget/index.js +3 -0
  17. package/lib/AltDateTimeWidget/index.js.map +1 -0
  18. package/lib/AltDateWidget/AltDateWidget.d.ts +15 -0
  19. package/lib/AltDateWidget/AltDateWidget.js +80 -0
  20. package/lib/AltDateWidget/AltDateWidget.js.map +1 -0
  21. package/lib/AltDateWidget/index.d.ts +2 -0
  22. package/lib/AltDateWidget/index.js +3 -0
  23. package/lib/AltDateWidget/index.js.map +1 -0
  24. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +3 -0
  25. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js +13 -0
  26. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js.map +1 -0
  27. package/lib/ArrayFieldItemTemplate/index.d.ts +2 -0
  28. package/lib/ArrayFieldItemTemplate/index.js +3 -0
  29. package/lib/ArrayFieldItemTemplate/index.js.map +1 -0
  30. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +3 -0
  31. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js +19 -0
  32. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js.map +1 -0
  33. package/lib/ArrayFieldTemplate/index.d.ts +2 -0
  34. package/lib/ArrayFieldTemplate/index.js +3 -0
  35. package/lib/ArrayFieldTemplate/index.js.map +1 -0
  36. package/lib/BaseInputTemplate/BaseInputTemplate.d.ts +3 -0
  37. package/lib/BaseInputTemplate/BaseInputTemplate.js +18 -0
  38. package/lib/BaseInputTemplate/BaseInputTemplate.js.map +1 -0
  39. package/lib/BaseInputTemplate/index.d.ts +2 -0
  40. package/lib/BaseInputTemplate/index.js +3 -0
  41. package/lib/BaseInputTemplate/index.js.map +1 -0
  42. package/lib/ChakraFrameProvider.d.ts +2 -0
  43. package/lib/ChakraFrameProvider.js +28 -0
  44. package/lib/ChakraFrameProvider.js.map +1 -0
  45. package/lib/CheckboxWidget/CheckboxWidget.d.ts +3 -0
  46. package/lib/CheckboxWidget/CheckboxWidget.js +19 -0
  47. package/lib/CheckboxWidget/CheckboxWidget.js.map +1 -0
  48. package/lib/CheckboxWidget/index.d.ts +2 -0
  49. package/lib/CheckboxWidget/index.js +3 -0
  50. package/lib/CheckboxWidget/index.js.map +1 -0
  51. package/lib/CheckboxesWidget/CheckboxesWidget.d.ts +3 -0
  52. package/lib/CheckboxesWidget/CheckboxesWidget.js +21 -0
  53. package/lib/CheckboxesWidget/CheckboxesWidget.js.map +1 -0
  54. package/lib/CheckboxesWidget/index.d.ts +2 -0
  55. package/lib/CheckboxesWidget/index.js +3 -0
  56. package/lib/CheckboxesWidget/index.js.map +1 -0
  57. package/lib/CssReset.d.ts +24 -0
  58. package/lib/CssReset.js +266 -0
  59. package/lib/CssReset.js.map +1 -0
  60. package/lib/DescriptionField/DescriptionField.d.ts +3 -0
  61. package/lib/DescriptionField/DescriptionField.js +12 -0
  62. package/lib/DescriptionField/DescriptionField.js.map +1 -0
  63. package/lib/DescriptionField/index.d.ts +2 -0
  64. package/lib/DescriptionField/index.js +3 -0
  65. package/lib/DescriptionField/index.js.map +1 -0
  66. package/lib/ErrorList/ErrorList.d.ts +3 -0
  67. package/lib/ErrorList/ErrorList.js +9 -0
  68. package/lib/ErrorList/ErrorList.js.map +1 -0
  69. package/lib/ErrorList/index.d.ts +2 -0
  70. package/lib/ErrorList/index.js +3 -0
  71. package/lib/ErrorList/index.js.map +1 -0
  72. package/lib/FieldErrorTemplate/FieldErrorTemplate.d.ts +7 -0
  73. package/lib/FieldErrorTemplate/FieldErrorTemplate.js +18 -0
  74. package/lib/FieldErrorTemplate/FieldErrorTemplate.js.map +1 -0
  75. package/lib/FieldErrorTemplate/index.d.ts +2 -0
  76. package/lib/FieldErrorTemplate/index.js +3 -0
  77. package/lib/FieldErrorTemplate/index.js.map +1 -0
  78. package/lib/FieldHelpTemplate/FieldHelpTemplate.d.ts +7 -0
  79. package/lib/FieldHelpTemplate/FieldHelpTemplate.js +16 -0
  80. package/lib/FieldHelpTemplate/FieldHelpTemplate.js.map +1 -0
  81. package/lib/FieldHelpTemplate/index.d.ts +2 -0
  82. package/lib/FieldHelpTemplate/index.js +3 -0
  83. package/lib/FieldHelpTemplate/index.js.map +1 -0
  84. package/lib/FieldTemplate/FieldTemplate.d.ts +3 -0
  85. package/lib/FieldTemplate/FieldTemplate.js +13 -0
  86. package/lib/FieldTemplate/FieldTemplate.js.map +1 -0
  87. package/lib/FieldTemplate/index.d.ts +2 -0
  88. package/lib/FieldTemplate/index.js +3 -0
  89. package/lib/FieldTemplate/index.js.map +1 -0
  90. package/lib/Form/Form.d.ts +6 -0
  91. package/lib/Form/Form.js +7 -0
  92. package/lib/Form/Form.js.map +1 -0
  93. package/lib/Form/index.d.ts +2 -0
  94. package/lib/Form/index.js +3 -0
  95. package/lib/Form/index.js.map +1 -0
  96. package/lib/IconButton/ChakraIconButton.d.ts +8 -0
  97. package/lib/IconButton/ChakraIconButton.js +11 -0
  98. package/lib/IconButton/ChakraIconButton.js.map +1 -0
  99. package/lib/IconButton/IconButton.d.ts +6 -0
  100. package/lib/IconButton/IconButton.js +21 -0
  101. package/lib/IconButton/IconButton.js.map +1 -0
  102. package/lib/IconButton/index.d.ts +2 -0
  103. package/lib/IconButton/index.js +3 -0
  104. package/lib/IconButton/index.js.map +1 -0
  105. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +3 -0
  106. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js +13 -0
  107. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js.map +1 -0
  108. package/lib/ObjectFieldTemplate/index.d.ts +2 -0
  109. package/lib/ObjectFieldTemplate/index.js +3 -0
  110. package/lib/ObjectFieldTemplate/index.js.map +1 -0
  111. package/lib/RadioWidget/RadioWidget.d.ts +3 -0
  112. package/lib/RadioWidget/RadioWidget.js +20 -0
  113. package/lib/RadioWidget/RadioWidget.js.map +1 -0
  114. package/lib/RadioWidget/index.d.ts +2 -0
  115. package/lib/RadioWidget/index.js +3 -0
  116. package/lib/RadioWidget/index.js.map +1 -0
  117. package/lib/RangeWidget/RangeWidget.d.ts +3 -0
  118. package/lib/RangeWidget/RangeWidget.js +13 -0
  119. package/lib/RangeWidget/RangeWidget.js.map +1 -0
  120. package/lib/RangeWidget/index.d.ts +2 -0
  121. package/lib/RangeWidget/index.js +3 -0
  122. package/lib/RangeWidget/index.js.map +1 -0
  123. package/lib/SelectWidget/SelectWidget.d.ts +3 -0
  124. package/lib/SelectWidget/SelectWidget.js +47 -0
  125. package/lib/SelectWidget/SelectWidget.js.map +1 -0
  126. package/lib/SelectWidget/index.d.ts +2 -0
  127. package/lib/SelectWidget/index.js +3 -0
  128. package/lib/SelectWidget/index.js.map +1 -0
  129. package/lib/SubmitButton/SubmitButton.d.ts +3 -0
  130. package/lib/SubmitButton/SubmitButton.js +11 -0
  131. package/lib/SubmitButton/SubmitButton.js.map +1 -0
  132. package/lib/SubmitButton/index.d.ts +2 -0
  133. package/lib/SubmitButton/index.js +3 -0
  134. package/lib/SubmitButton/index.js.map +1 -0
  135. package/lib/Templates/Templates.d.ts +4 -0
  136. package/lib/Templates/Templates.js +39 -0
  137. package/lib/Templates/Templates.js.map +1 -0
  138. package/lib/Templates/index.d.ts +2 -0
  139. package/lib/Templates/index.js +3 -0
  140. package/lib/Templates/index.js.map +1 -0
  141. package/lib/TextareaWidget/TextareaWidget.d.ts +3 -0
  142. package/lib/TextareaWidget/TextareaWidget.js +12 -0
  143. package/lib/TextareaWidget/TextareaWidget.js.map +1 -0
  144. package/lib/TextareaWidget/index.d.ts +2 -0
  145. package/lib/TextareaWidget/index.js +3 -0
  146. package/lib/TextareaWidget/index.js.map +1 -0
  147. package/lib/Theme/Theme.d.ts +5 -0
  148. package/lib/Theme/Theme.js +10 -0
  149. package/lib/Theme/Theme.js.map +1 -0
  150. package/lib/Theme/index.d.ts +2 -0
  151. package/lib/Theme/index.js +3 -0
  152. package/lib/Theme/index.js.map +1 -0
  153. package/lib/TitleField/TitleField.d.ts +3 -0
  154. package/lib/TitleField/TitleField.js +6 -0
  155. package/lib/TitleField/TitleField.js.map +1 -0
  156. package/lib/TitleField/index.d.ts +2 -0
  157. package/lib/TitleField/index.js +3 -0
  158. package/lib/TitleField/index.js.map +1 -0
  159. package/lib/UpDownWidget/UpDownWidget.d.ts +3 -0
  160. package/lib/UpDownWidget/UpDownWidget.js +13 -0
  161. package/lib/UpDownWidget/UpDownWidget.js.map +1 -0
  162. package/lib/UpDownWidget/index.d.ts +2 -0
  163. package/lib/UpDownWidget/index.js +3 -0
  164. package/lib/UpDownWidget/index.js.map +1 -0
  165. package/lib/Widgets/Widgets.d.ts +4 -0
  166. package/lib/Widgets/Widgets.js +24 -0
  167. package/lib/Widgets/Widgets.js.map +1 -0
  168. package/lib/Widgets/index.d.ts +2 -0
  169. package/lib/Widgets/index.js +3 -0
  170. package/lib/Widgets/index.js.map +1 -0
  171. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.d.ts +3 -0
  172. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js +17 -0
  173. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js.map +1 -0
  174. package/lib/WrapIfAdditionalTemplate/index.d.ts +2 -0
  175. package/lib/WrapIfAdditionalTemplate/index.js +3 -0
  176. package/lib/WrapIfAdditionalTemplate/index.js.map +1 -0
  177. package/lib/index.d.ts +8 -0
  178. package/lib/index.js +8 -0
  179. package/lib/index.js.map +1 -0
  180. package/lib/utils.d.ts +13 -0
  181. package/lib/utils.js +18 -0
  182. package/lib/utils.js.map +1 -0
  183. package/package.json +22 -14
  184. package/src/AddButton/AddButton.tsx +16 -0
  185. package/src/AddButton/index.ts +2 -0
  186. package/src/AltDateTimeWidget/AltDateTimeWidget.tsx +16 -0
  187. package/src/AltDateTimeWidget/index.ts +2 -0
  188. package/src/AltDateWidget/AltDateWidget.tsx +165 -0
  189. package/src/AltDateWidget/index.ts +2 -0
  190. package/src/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +78 -0
  191. package/src/ArrayFieldItemTemplate/index.ts +2 -0
  192. package/src/ArrayFieldTemplate/ArrayFieldTemplate.tsx +79 -0
  193. package/src/ArrayFieldTemplate/index.ts +2 -0
  194. package/src/BaseInputTemplate/BaseInputTemplate.tsx +87 -0
  195. package/src/BaseInputTemplate/index.ts +2 -0
  196. package/src/ChakraFrameProvider.tsx +40 -0
  197. package/src/CheckboxWidget/CheckboxWidget.tsx +77 -0
  198. package/src/CheckboxWidget/index.ts +2 -0
  199. package/src/CheckboxesWidget/CheckboxesWidget.tsx +93 -0
  200. package/src/CheckboxesWidget/index.ts +2 -0
  201. package/src/CssReset.tsx +270 -0
  202. package/src/DescriptionField/DescriptionField.tsx +22 -0
  203. package/src/DescriptionField/index.ts +2 -0
  204. package/src/ErrorList/ErrorList.tsx +23 -0
  205. package/src/ErrorList/index.ts +2 -0
  206. package/src/FieldErrorTemplate/FieldErrorTemplate.tsx +30 -0
  207. package/src/FieldErrorTemplate/index.ts +2 -0
  208. package/src/FieldHelpTemplate/FieldHelpTemplate.tsx +19 -0
  209. package/src/FieldHelpTemplate/index.ts +2 -0
  210. package/src/FieldTemplate/FieldTemplate.tsx +72 -0
  211. package/src/FieldTemplate/index.ts +2 -0
  212. package/src/Form/Form.tsx +14 -0
  213. package/src/Form/index.ts +2 -0
  214. package/src/IconButton/ChakraIconButton.tsx +15 -0
  215. package/src/IconButton/IconButton.tsx +60 -0
  216. package/src/IconButton/index.ts +2 -0
  217. package/src/ObjectFieldTemplate/ObjectFieldTemplate.tsx +88 -0
  218. package/src/ObjectFieldTemplate/index.ts +2 -0
  219. package/src/RadioWidget/RadioWidget.tsx +78 -0
  220. package/src/RadioWidget/index.ts +2 -0
  221. package/src/RangeWidget/RangeWidget.tsx +56 -0
  222. package/src/RangeWidget/index.ts +2 -0
  223. package/src/SelectWidget/SelectWidget.tsx +121 -0
  224. package/src/SelectWidget/index.ts +2 -0
  225. package/src/SubmitButton/SubmitButton.tsx +21 -0
  226. package/src/SubmitButton/index.ts +2 -0
  227. package/src/Templates/Templates.ts +45 -0
  228. package/src/Templates/index.ts +2 -0
  229. package/src/TextareaWidget/TextareaWidget.tsx +64 -0
  230. package/src/TextareaWidget/index.ts +2 -0
  231. package/src/Theme/Theme.tsx +18 -0
  232. package/src/Theme/index.ts +2 -0
  233. package/src/TitleField/TitleField.tsx +14 -0
  234. package/src/TitleField/index.ts +2 -0
  235. package/src/UpDownWidget/UpDownWidget.tsx +58 -0
  236. package/src/UpDownWidget/index.ts +2 -0
  237. package/src/Widgets/Widgets.ts +30 -0
  238. package/src/Widgets/index.ts +2 -0
  239. package/src/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +76 -0
  240. package/src/WrapIfAdditionalTemplate/index.ts +2 -0
  241. package/src/index.ts +11 -0
  242. package/src/utils.ts +31 -0
  243. package/dist/chakra-ui.cjs.development.js +0 -1657
  244. package/dist/chakra-ui.cjs.development.js.map +0 -1
  245. package/dist/chakra-ui.cjs.production.min.js +0 -2
  246. package/dist/chakra-ui.cjs.production.min.js.map +0 -1
  247. package/dist/chakra-ui.umd.development.js +0 -1652
  248. package/dist/chakra-ui.umd.development.js.map +0 -1
  249. package/dist/chakra-ui.umd.production.min.js +0 -2
  250. package/dist/chakra-ui.umd.production.min.js.map +0 -1
  251. package/dist/index.d.ts +0 -28
@@ -1,1657 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var core = require('@rjsf/core');
6
- var jsxRuntime = require('react/jsx-runtime');
7
- var utils = require('@rjsf/utils');
8
- var react = require('@chakra-ui/react');
9
- var icons = require('@chakra-ui/icons');
10
- var react$1 = require('react');
11
- var chakraReactSelect = require('chakra-react-select');
12
- var react$2 = require('@emotion/react');
13
- var createCache = require('@emotion/cache');
14
- var weakMemoize = require('@emotion/weak-memoize');
15
-
16
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
-
18
- var createCache__default = /*#__PURE__*/_interopDefaultLegacy(createCache);
19
- var weakMemoize__default = /*#__PURE__*/_interopDefaultLegacy(weakMemoize);
20
-
21
- function AddButton({
22
- uiSchema,
23
- registry,
24
- ...props
25
- }) {
26
- const {
27
- translateString
28
- } = registry;
29
- return jsxRuntime.jsx(react.Button, {
30
- leftIcon: jsxRuntime.jsx(icons.AddIcon, {}),
31
- ...props,
32
- children: translateString(utils.TranslatableString.AddItemButton)
33
- });
34
- }
35
-
36
- function ArrayFieldItemTemplate(props) {
37
- const {
38
- children,
39
- disabled,
40
- hasToolbar,
41
- hasCopy,
42
- hasMoveDown,
43
- hasMoveUp,
44
- hasRemove,
45
- index,
46
- onCopyIndexClick,
47
- onDropIndexClick,
48
- onReorderClick,
49
- readonly,
50
- uiSchema,
51
- registry
52
- } = props;
53
- const {
54
- CopyButton,
55
- MoveDownButton,
56
- MoveUpButton,
57
- RemoveButton
58
- } = registry.templates.ButtonTemplates;
59
- const onCopyClick = react$1.useMemo(() => onCopyIndexClick(index), [index, onCopyIndexClick]);
60
- const onRemoveClick = react$1.useMemo(() => onDropIndexClick(index), [index, onDropIndexClick]);
61
- const onArrowUpClick = react$1.useMemo(() => onReorderClick(index, index - 1), [index, onReorderClick]);
62
- const onArrowDownClick = react$1.useMemo(() => onReorderClick(index, index + 1), [index, onReorderClick]);
63
- return jsxRuntime.jsxs(react.HStack, {
64
- alignItems: 'flex-end',
65
- py: 1,
66
- children: [jsxRuntime.jsx(react.Box, {
67
- w: '100%',
68
- children: children
69
- }), hasToolbar && jsxRuntime.jsx(react.Box, {
70
- children: jsxRuntime.jsxs(react.ButtonGroup, {
71
- isAttached: true,
72
- mb: 1,
73
- children: [(hasMoveUp || hasMoveDown) && jsxRuntime.jsx(MoveUpButton, {
74
- disabled: disabled || readonly || !hasMoveUp,
75
- onClick: onArrowUpClick,
76
- uiSchema: uiSchema,
77
- registry: registry
78
- }), (hasMoveUp || hasMoveDown) && jsxRuntime.jsx(MoveDownButton, {
79
- disabled: disabled || readonly || !hasMoveDown,
80
- onClick: onArrowDownClick,
81
- uiSchema: uiSchema,
82
- registry: registry
83
- }), hasCopy && jsxRuntime.jsx(CopyButton, {
84
- disabled: disabled || readonly,
85
- onClick: onCopyClick,
86
- uiSchema: uiSchema,
87
- registry: registry
88
- }), hasRemove && jsxRuntime.jsx(RemoveButton, {
89
- disabled: disabled || readonly,
90
- onClick: onRemoveClick,
91
- uiSchema: uiSchema,
92
- registry: registry
93
- })]
94
- })
95
- })]
96
- });
97
- }
98
-
99
- function ArrayFieldTemplate(props) {
100
- const {
101
- canAdd,
102
- disabled,
103
- idSchema,
104
- uiSchema,
105
- items,
106
- onAddClick,
107
- readonly,
108
- registry,
109
- required,
110
- schema,
111
- title
112
- } = props;
113
- const uiOptions = utils.getUiOptions(uiSchema);
114
- const ArrayFieldDescriptionTemplate = utils.getTemplate('ArrayFieldDescriptionTemplate', registry, uiOptions);
115
- const ArrayFieldItemTemplate = utils.getTemplate('ArrayFieldItemTemplate', registry, uiOptions);
116
- const ArrayFieldTitleTemplate = utils.getTemplate('ArrayFieldTitleTemplate', registry, uiOptions);
117
- // Button templates are not overridden in the uiSchema
118
- const {
119
- ButtonTemplates: {
120
- AddButton
121
- }
122
- } = registry.templates;
123
- return jsxRuntime.jsxs(react.Box, {
124
- children: [jsxRuntime.jsx(ArrayFieldTitleTemplate, {
125
- idSchema: idSchema,
126
- title: uiOptions.title || title,
127
- schema: schema,
128
- uiSchema: uiSchema,
129
- required: required,
130
- registry: registry
131
- }), jsxRuntime.jsx(ArrayFieldDescriptionTemplate, {
132
- idSchema: idSchema,
133
- description: uiOptions.description || schema.description,
134
- schema: schema,
135
- uiSchema: uiSchema,
136
- registry: registry
137
- }), jsxRuntime.jsxs(react.Grid, {
138
- children: [jsxRuntime.jsx(react.GridItem, {
139
- children: items.length > 0 && items.map(({
140
- key,
141
- ...itemProps
142
- }) => jsxRuntime.jsx(ArrayFieldItemTemplate, {
143
- ...itemProps
144
- }, key))
145
- }), canAdd && jsxRuntime.jsx(react.GridItem, {
146
- justifySelf: 'flex-end',
147
- children: jsxRuntime.jsx(react.Box, {
148
- mt: 2,
149
- children: jsxRuntime.jsx(AddButton, {
150
- className: 'array-item-add',
151
- onClick: onAddClick,
152
- disabled: disabled || readonly,
153
- uiSchema: uiSchema,
154
- registry: registry
155
- })
156
- })
157
- })]
158
- }, `array-item-list-${idSchema.$id}`)]
159
- });
160
- }
161
-
162
- function getChakra({
163
- uiSchema = {}
164
- }) {
165
- const chakraProps = uiSchema['ui:options'] && uiSchema['ui:options'].chakra || {};
166
- Object.keys(chakraProps).forEach(key => {
167
- /**
168
- * Leveraging `shouldForwardProp` to remove props
169
- *
170
- * This is a utility function that's used in `@chakra-ui/react`'s factory function.
171
- * Normally, it prevents ChakraProps from being passed to the DOM.
172
- * In this case we just want to delete the unknown props. So we flip the boolean.
173
- */
174
- if (react.shouldForwardProp(key)) {
175
- delete chakraProps[key];
176
- }
177
- });
178
- return chakraProps;
179
- }
180
-
181
- function BaseInputTemplate(props) {
182
- const {
183
- id,
184
- type,
185
- value,
186
- label,
187
- hideLabel,
188
- schema,
189
- uiSchema,
190
- onChange,
191
- onChangeOverride,
192
- onBlur,
193
- onFocus,
194
- options,
195
- required,
196
- readonly,
197
- rawErrors,
198
- autofocus,
199
- placeholder,
200
- disabled
201
- } = props;
202
- const inputProps = utils.getInputProps(schema, type, options);
203
- const chakraProps = getChakra({
204
- uiSchema
205
- });
206
- const _onChange = ({
207
- target: {
208
- value
209
- }
210
- }) => onChange(value === '' ? options.emptyValue : value);
211
- const _onBlur = ({
212
- target: {
213
- value
214
- }
215
- }) => onBlur(id, value);
216
- const _onFocus = ({
217
- target: {
218
- value
219
- }
220
- }) => onFocus(id, value);
221
- return jsxRuntime.jsxs(react.FormControl, {
222
- mb: 1,
223
- ...chakraProps,
224
- isDisabled: disabled || readonly,
225
- isRequired: required,
226
- isReadOnly: readonly,
227
- isInvalid: rawErrors && rawErrors.length > 0,
228
- children: [utils.labelValue(jsxRuntime.jsx(react.FormLabel, {
229
- htmlFor: id,
230
- id: `${id}-label`,
231
- children: label
232
- }), hideLabel || !label), jsxRuntime.jsx(react.Input, {
233
- id: id,
234
- name: id,
235
- value: value || value === 0 ? value : '',
236
- onChange: onChangeOverride || _onChange,
237
- onBlur: _onBlur,
238
- onFocus: _onFocus,
239
- autoFocus: autofocus,
240
- placeholder: placeholder,
241
- ...inputProps,
242
- list: schema.examples ? utils.examplesId(id) : undefined,
243
- "aria-describedby": utils.ariaDescribedByIds(id, !!schema.examples)
244
- }), Array.isArray(schema.examples) ? jsxRuntime.jsx("datalist", {
245
- id: utils.examplesId(id),
246
- children: schema.examples.concat(schema.default && !schema.examples.includes(schema.default) ? [schema.default] : []).map(example => {
247
- return jsxRuntime.jsx("option", {
248
- value: example
249
- }, example);
250
- })
251
- }) : null]
252
- });
253
- }
254
-
255
- function DescriptionField({
256
- description,
257
- id
258
- }) {
259
- if (!description) {
260
- return null;
261
- }
262
- if (typeof description === 'string') {
263
- return jsxRuntime.jsx(react.Text, {
264
- id: id,
265
- mt: 2,
266
- mb: 4,
267
- children: description
268
- });
269
- }
270
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
271
- children: description
272
- });
273
- }
274
-
275
- function ErrorList({
276
- errors,
277
- registry
278
- }) {
279
- const {
280
- translateString
281
- } = registry;
282
- return jsxRuntime.jsxs(react.Alert, {
283
- flexDirection: 'column',
284
- alignItems: 'flex-start',
285
- gap: 3,
286
- status: 'error',
287
- children: [jsxRuntime.jsx(react.AlertTitle, {
288
- children: translateString(utils.TranslatableString.ErrorsLabel)
289
- }), jsxRuntime.jsx(react.List, {
290
- children: errors.map((error, i) => jsxRuntime.jsxs(react.ListItem, {
291
- children: [jsxRuntime.jsx(react.ListIcon, {
292
- as: icons.WarningIcon,
293
- color: 'red.500'
294
- }), error.stack]
295
- }, i))
296
- })]
297
- });
298
- }
299
-
300
- function ChakraIconButton(props) {
301
- const {
302
- icon,
303
- iconType,
304
- uiSchema,
305
- registry,
306
- ...otherProps
307
- } = props;
308
- return jsxRuntime.jsx(react.IconButton, {
309
- "aria-label": props.title,
310
- ...otherProps,
311
- icon: icon
312
- });
313
- }
314
- ChakraIconButton.displayName = 'ChakraIconButton';
315
- var ChakraIconButton$1 = /*#__PURE__*/react$1.memo(ChakraIconButton);
316
-
317
- function CopyButton(props) {
318
- const {
319
- registry: {
320
- translateString
321
- }
322
- } = props;
323
- return jsxRuntime.jsx(ChakraIconButton$1, {
324
- title: translateString(utils.TranslatableString.CopyButton),
325
- ...props,
326
- icon: jsxRuntime.jsx(icons.CopyIcon, {})
327
- });
328
- }
329
- function MoveDownButton(props) {
330
- const {
331
- registry: {
332
- translateString
333
- }
334
- } = props;
335
- return jsxRuntime.jsx(ChakraIconButton$1, {
336
- title: translateString(utils.TranslatableString.MoveDownButton),
337
- ...props,
338
- icon: jsxRuntime.jsx(icons.ArrowDownIcon, {})
339
- });
340
- }
341
- function MoveUpButton(props) {
342
- const {
343
- registry: {
344
- translateString
345
- }
346
- } = props;
347
- return jsxRuntime.jsx(ChakraIconButton$1, {
348
- title: translateString(utils.TranslatableString.MoveUpButton),
349
- ...props,
350
- icon: jsxRuntime.jsx(icons.ArrowUpIcon, {})
351
- });
352
- }
353
- function RemoveButton(props) {
354
- const {
355
- registry: {
356
- translateString
357
- }
358
- } = props;
359
- return jsxRuntime.jsx(ChakraIconButton$1, {
360
- title: translateString(utils.TranslatableString.RemoveButton),
361
- ...props,
362
- icon: jsxRuntime.jsx(icons.DeleteIcon, {})
363
- });
364
- }
365
-
366
- /** The `FieldErrorTemplate` component renders the errors local to the particular field
367
- *
368
- * @param props - The `FieldErrorProps` for the errors being rendered
369
- */
370
- function FieldErrorTemplate(props) {
371
- const {
372
- errors = [],
373
- idSchema
374
- } = props;
375
- if (errors.length === 0) {
376
- return null;
377
- }
378
- const id = utils.errorId(idSchema);
379
- return jsxRuntime.jsx(react.List, {
380
- children: errors.map((error, i) => {
381
- return jsxRuntime.jsx(react.ListItem, {
382
- children: jsxRuntime.jsx(react.FormErrorMessage, {
383
- id: id,
384
- children: error
385
- })
386
- }, i);
387
- })
388
- });
389
- }
390
-
391
- /** The `FieldHelpTemplate` component renders any help desired for a field
392
- *
393
- * @param props - The `FieldHelpProps` to be rendered
394
- */
395
- function FieldHelpTemplate(props) {
396
- const {
397
- idSchema,
398
- help
399
- } = props;
400
- if (!help) {
401
- return null;
402
- }
403
- const id = utils.helpId(idSchema);
404
- return jsxRuntime.jsx(react.FormHelperText, {
405
- id: id,
406
- children: help
407
- });
408
- }
409
-
410
- function FieldTemplate(props) {
411
- const {
412
- id,
413
- children,
414
- classNames,
415
- style,
416
- disabled,
417
- displayLabel,
418
- hidden,
419
- label,
420
- onDropPropertyClick,
421
- onKeyChange,
422
- readonly,
423
- registry,
424
- required,
425
- rawErrors = [],
426
- errors,
427
- help,
428
- description,
429
- rawDescription,
430
- schema,
431
- uiSchema
432
- } = props;
433
- const uiOptions = utils.getUiOptions(uiSchema);
434
- const WrapIfAdditionalTemplate = utils.getTemplate('WrapIfAdditionalTemplate', registry, uiOptions);
435
- if (hidden) {
436
- return jsxRuntime.jsx("div", {
437
- style: {
438
- display: 'none'
439
- },
440
- children: children
441
- });
442
- }
443
- return jsxRuntime.jsx(WrapIfAdditionalTemplate, {
444
- classNames: classNames,
445
- style: style,
446
- disabled: disabled,
447
- id: id,
448
- label: label,
449
- onDropPropertyClick: onDropPropertyClick,
450
- onKeyChange: onKeyChange,
451
- readonly: readonly,
452
- required: required,
453
- schema: schema,
454
- uiSchema: uiSchema,
455
- registry: registry,
456
- children: jsxRuntime.jsxs(react.FormControl, {
457
- isRequired: required,
458
- isInvalid: rawErrors && rawErrors.length > 0,
459
- children: [children, displayLabel && rawDescription ? jsxRuntime.jsx(react.Text, {
460
- mt: 2,
461
- children: description
462
- }) : null, errors, help]
463
- })
464
- });
465
- }
466
-
467
- function ObjectFieldTemplate(props) {
468
- const {
469
- description,
470
- title,
471
- properties,
472
- required,
473
- disabled,
474
- readonly,
475
- uiSchema,
476
- idSchema,
477
- schema,
478
- formData,
479
- onAddClick,
480
- registry
481
- } = props;
482
- const uiOptions = utils.getUiOptions(uiSchema);
483
- const TitleFieldTemplate = utils.getTemplate('TitleFieldTemplate', registry, uiOptions);
484
- const DescriptionFieldTemplate = utils.getTemplate('DescriptionFieldTemplate', registry, uiOptions);
485
- // Button templates are not overridden in the uiSchema
486
- const {
487
- ButtonTemplates: {
488
- AddButton
489
- }
490
- } = registry.templates;
491
- return jsxRuntime.jsxs(jsxRuntime.Fragment, {
492
- children: [title && jsxRuntime.jsx(TitleFieldTemplate, {
493
- id: utils.titleId(idSchema),
494
- title: title,
495
- required: required,
496
- schema: schema,
497
- uiSchema: uiSchema,
498
- registry: registry
499
- }), description && jsxRuntime.jsx(DescriptionFieldTemplate, {
500
- id: utils.descriptionId(idSchema),
501
- description: description,
502
- schema: schema,
503
- uiSchema: uiSchema,
504
- registry: registry
505
- }), jsxRuntime.jsxs(react.Grid, {
506
- gap: description ? 2 : 6,
507
- mb: 4,
508
- children: [properties.map((element, index) => element.hidden ? element.content : jsxRuntime.jsx(react.GridItem, {
509
- children: element.content
510
- }, `${idSchema.$id}-${element.name}-${index}`)), utils.canExpand(schema, uiSchema, formData) && jsxRuntime.jsx(react.GridItem, {
511
- justifySelf: 'flex-end',
512
- children: jsxRuntime.jsx(AddButton, {
513
- className: 'object-property-expand',
514
- onClick: onAddClick(schema),
515
- disabled: disabled || readonly,
516
- uiSchema: uiSchema,
517
- registry: registry
518
- })
519
- })]
520
- })]
521
- });
522
- }
523
-
524
- function SubmitButton({
525
- uiSchema
526
- }) {
527
- const {
528
- submitText,
529
- norender,
530
- props: submitButtonProps
531
- } = utils.getSubmitButtonOptions(uiSchema);
532
- if (norender) {
533
- return null;
534
- }
535
- return jsxRuntime.jsx(react.Box, {
536
- marginTop: 3,
537
- children: jsxRuntime.jsx(react.Button, {
538
- type: 'submit',
539
- variant: 'solid',
540
- ...submitButtonProps,
541
- children: submitText
542
- })
543
- });
544
- }
545
-
546
- function TitleField({
547
- id,
548
- title
549
- }) {
550
- return jsxRuntime.jsxs(react.Box, {
551
- id: id,
552
- mt: 1,
553
- mb: 4,
554
- children: [jsxRuntime.jsx(react.Heading, {
555
- as: 'h5',
556
- children: title
557
- }), jsxRuntime.jsx(react.Divider, {})]
558
- });
559
- }
560
-
561
- function WrapIfAdditionalTemplate(props) {
562
- const {
563
- children,
564
- classNames,
565
- style,
566
- disabled,
567
- id,
568
- label,
569
- onDropPropertyClick,
570
- onKeyChange,
571
- readonly,
572
- registry,
573
- required,
574
- schema,
575
- uiSchema
576
- } = props;
577
- const {
578
- templates,
579
- translateString
580
- } = registry;
581
- // Button templates are not overridden in the uiSchema
582
- const {
583
- RemoveButton
584
- } = templates.ButtonTemplates;
585
- const keyLabel = translateString(utils.TranslatableString.KeyLabel, [label]);
586
- const additional = (utils.ADDITIONAL_PROPERTY_FLAG in schema);
587
- if (!additional) {
588
- return jsxRuntime.jsx("div", {
589
- className: classNames,
590
- style: style,
591
- children: children
592
- });
593
- }
594
- const handleBlur = ({
595
- target
596
- }) => onKeyChange(target.value);
597
- return jsxRuntime.jsxs(react.Grid, {
598
- className: classNames,
599
- style: style,
600
- alignItems: 'center',
601
- gap: 2,
602
- children: [jsxRuntime.jsx(react.GridItem, {
603
- children: jsxRuntime.jsxs(react.FormControl, {
604
- isRequired: required,
605
- children: [jsxRuntime.jsx(react.FormLabel, {
606
- htmlFor: `${id}-key`,
607
- id: `${id}-key-label`,
608
- children: keyLabel
609
- }), jsxRuntime.jsx(react.Input, {
610
- defaultValue: label,
611
- disabled: disabled || readonly,
612
- id: `${id}-key`,
613
- name: `${id}-key`,
614
- onBlur: !readonly ? handleBlur : undefined,
615
- type: 'text',
616
- mb: 1
617
- })]
618
- })
619
- }), jsxRuntime.jsx(react.GridItem, {
620
- children: children
621
- }), jsxRuntime.jsx(react.GridItem, {
622
- children: jsxRuntime.jsx(RemoveButton, {
623
- disabled: disabled || readonly,
624
- onClick: onDropPropertyClick(label),
625
- uiSchema: uiSchema,
626
- registry: registry
627
- })
628
- })]
629
- }, `${id}-key`);
630
- }
631
-
632
- function generateTemplates() {
633
- return {
634
- ArrayFieldItemTemplate,
635
- ArrayFieldTemplate,
636
- BaseInputTemplate,
637
- ButtonTemplates: {
638
- CopyButton,
639
- AddButton,
640
- MoveDownButton,
641
- MoveUpButton,
642
- RemoveButton,
643
- SubmitButton
644
- },
645
- DescriptionFieldTemplate: DescriptionField,
646
- ErrorListTemplate: ErrorList,
647
- FieldErrorTemplate,
648
- FieldHelpTemplate,
649
- FieldTemplate,
650
- ObjectFieldTemplate,
651
- TitleFieldTemplate: TitleField,
652
- WrapIfAdditionalTemplate
653
- };
654
- }
655
- var Templates = /*#__PURE__*/generateTemplates();
656
-
657
- const rangeOptions = (start, stop) => {
658
- const options = [];
659
- for (let i = start; i <= stop; i++) {
660
- options.push({
661
- value: i,
662
- label: utils.pad(i, 2)
663
- });
664
- }
665
- return options;
666
- };
667
- function DateElement(props) {
668
- const {
669
- SelectWidget
670
- } = props.registry.widgets;
671
- const value = props.value ? props.value : undefined;
672
- return jsxRuntime.jsx(SelectWidget, {
673
- ...props,
674
- label: '',
675
- className: 'form-control',
676
- onChange: elemValue => props.select(props.type, elemValue),
677
- options: {
678
- enumOptions: rangeOptions(props.range[0], props.range[1])
679
- },
680
- placeholder: props.type,
681
- schema: {
682
- type: 'integer'
683
- },
684
- value: value,
685
- "aria-describedby": utils.ariaDescribedByIds(props.name)
686
- });
687
- }
688
- const readyForChange = state => {
689
- return Object.keys(state).every(key => typeof state[key] !== 'undefined' && state[key] !== -1);
690
- };
691
- function AltDateWidget(props) {
692
- const {
693
- autofocus,
694
- disabled,
695
- id,
696
- onBlur,
697
- onChange,
698
- onFocus,
699
- options,
700
- readonly,
701
- registry,
702
- showTime,
703
- value
704
- } = props;
705
- const {
706
- translateString
707
- } = registry;
708
- const [state, setState] = react$1.useState(utils.parseDateString(value, showTime));
709
- react$1.useEffect(() => {
710
- setState(utils.parseDateString(value, showTime));
711
- }, [showTime, value]);
712
- const handleChange = (property, nextValue) => {
713
- const nextState = {
714
- ...state,
715
- [property]: typeof nextValue === 'undefined' ? -1 : nextValue
716
- };
717
- if (readyForChange(nextState)) {
718
- onChange(utils.toDateString(nextState, showTime));
719
- } else {
720
- setState(nextState);
721
- }
722
- };
723
- const handleNow = event => {
724
- event.preventDefault();
725
- if (disabled || readonly) {
726
- return;
727
- }
728
- const nextState = utils.parseDateString(new Date().toJSON(), showTime);
729
- onChange(utils.toDateString(nextState, showTime));
730
- };
731
- const handleClear = event => {
732
- event.preventDefault();
733
- if (disabled || readonly) {
734
- return;
735
- }
736
- onChange(undefined);
737
- };
738
- const dateElementProps = () => {
739
- const {
740
- year,
741
- month,
742
- day,
743
- hour,
744
- minute,
745
- second
746
- } = state;
747
- const data = [{
748
- type: 'year',
749
- range: options.yearsRange,
750
- value: year
751
- }, {
752
- type: 'month',
753
- range: [1, 12],
754
- value: month
755
- }, {
756
- type: 'day',
757
- range: [1, 31],
758
- value: day
759
- }];
760
- if (showTime) {
761
- data.push({
762
- type: 'hour',
763
- range: [0, 23],
764
- value: hour
765
- }, {
766
- type: 'minute',
767
- range: [0, 59],
768
- value: minute
769
- }, {
770
- type: 'second',
771
- range: [0, 59],
772
- value: second
773
- });
774
- }
775
- return data;
776
- };
777
- return jsxRuntime.jsxs(react.Box, {
778
- children: [jsxRuntime.jsx(react.Box, {
779
- display: 'flex',
780
- flexWrap: 'wrap',
781
- alignItems: 'center',
782
- children: dateElementProps().map((elemProps, i) => {
783
- const elemId = id + '_' + elemProps.type;
784
- return jsxRuntime.jsx(react.Box, {
785
- mr: '2',
786
- mb: '2',
787
- children: jsxRuntime.jsx(DateElement, {
788
- ...props,
789
- ...elemProps,
790
- autofocus: autofocus && i === 0,
791
- disabled: disabled,
792
- id: elemId,
793
- name: id,
794
- onBlur: onBlur,
795
- onFocus: onFocus,
796
- readonly: readonly,
797
- registry: registry,
798
- select: handleChange,
799
- value: elemProps.value < 0 ? '' : elemProps.value
800
- })
801
- }, elemId);
802
- })
803
- }), jsxRuntime.jsxs(react.Box, {
804
- display: 'flex',
805
- children: [!options.hideNowButton && jsxRuntime.jsx(react.Button, {
806
- onClick: e => handleNow(e),
807
- mr: '2',
808
- children: translateString(utils.TranslatableString.NowLabel)
809
- }), !options.hideClearButton && jsxRuntime.jsx(react.Button, {
810
- onClick: e => handleClear(e),
811
- children: translateString(utils.TranslatableString.ClearLabel)
812
- })]
813
- })]
814
- });
815
- }
816
- AltDateWidget.defaultProps = {
817
- autofocus: false,
818
- disabled: false,
819
- readonly: false,
820
- showTime: false,
821
- options: {
822
- yearsRange: [1900, /*#__PURE__*/new Date().getFullYear() + 2]
823
- }
824
- };
825
-
826
- function AltDateTimeWidget(props) {
827
- const {
828
- AltDateWidget
829
- } = props.registry.widgets;
830
- return jsxRuntime.jsx(AltDateWidget, {
831
- ...props,
832
- showTime: true
833
- });
834
- }
835
- AltDateTimeWidget.defaultProps = {
836
- ...AltDateWidget.defaultProps,
837
- showTime: true
838
- };
839
-
840
- function CheckboxWidget(props) {
841
- const {
842
- id,
843
- value,
844
- disabled,
845
- readonly,
846
- onChange,
847
- onBlur,
848
- onFocus,
849
- label,
850
- hideLabel,
851
- registry,
852
- options,
853
- uiSchema,
854
- schema
855
- } = props;
856
- const chakraProps = getChakra({
857
- uiSchema
858
- });
859
- // Because an unchecked checkbox will cause html5 validation to fail, only add
860
- // the "required" attribute if the field value must be "true", due to the
861
- // "const" or "enum" keywords
862
- const required = utils.schemaRequiresTrueValue(schema);
863
- const DescriptionFieldTemplate = utils.getTemplate('DescriptionFieldTemplate', registry, options);
864
- const description = options.description || schema.description;
865
- const _onChange = ({
866
- target: {
867
- checked
868
- }
869
- }) => onChange(checked);
870
- const _onBlur = ({
871
- target: {
872
- value
873
- }
874
- }) => onBlur(id, value);
875
- const _onFocus = ({
876
- target: {
877
- value
878
- }
879
- }) => onFocus(id, value);
880
- return jsxRuntime.jsxs(react.FormControl, {
881
- mb: 1,
882
- ...chakraProps,
883
- isRequired: required,
884
- children: [!hideLabel && !!description && jsxRuntime.jsx(DescriptionFieldTemplate, {
885
- id: utils.descriptionId(id),
886
- description: description,
887
- schema: schema,
888
- uiSchema: uiSchema,
889
- registry: registry
890
- }), jsxRuntime.jsx(react.Checkbox, {
891
- id: id,
892
- name: id,
893
- isChecked: typeof value === 'undefined' ? false : value,
894
- isDisabled: disabled || readonly,
895
- onChange: _onChange,
896
- onBlur: _onBlur,
897
- onFocus: _onFocus,
898
- "aria-describedby": utils.ariaDescribedByIds(id),
899
- children: utils.labelValue(jsxRuntime.jsx(react.Text, {
900
- children: label
901
- }), hideLabel || !label)
902
- })]
903
- });
904
- }
905
-
906
- function CheckboxesWidget(props) {
907
- const {
908
- id,
909
- disabled,
910
- options,
911
- value,
912
- readonly,
913
- onChange,
914
- onBlur,
915
- onFocus,
916
- required,
917
- label,
918
- hideLabel,
919
- uiSchema,
920
- rawErrors = []
921
- } = props;
922
- const {
923
- enumOptions,
924
- enumDisabled,
925
- emptyValue
926
- } = options;
927
- const chakraProps = getChakra({
928
- uiSchema
929
- });
930
- const checkboxesValues = Array.isArray(value) ? value : [value];
931
- const _onBlur = ({
932
- target: {
933
- value
934
- }
935
- }) => onBlur(id, utils.enumOptionsValueForIndex(value, enumOptions, emptyValue));
936
- const _onFocus = ({
937
- target: {
938
- value
939
- }
940
- }) => onFocus(id, utils.enumOptionsValueForIndex(value, enumOptions, emptyValue));
941
- const row = options ? options.inline : false;
942
- const selectedIndexes = utils.enumOptionsIndexForValue(value, enumOptions, true);
943
- return jsxRuntime.jsxs(react.FormControl, {
944
- mb: 1,
945
- ...chakraProps,
946
- isDisabled: disabled || readonly,
947
- isRequired: required,
948
- isReadOnly: readonly,
949
- isInvalid: rawErrors && rawErrors.length > 0,
950
- children: [utils.labelValue(jsxRuntime.jsx(react.FormLabel, {
951
- htmlFor: id,
952
- id: `${id}-label`,
953
- children: label
954
- }), hideLabel || !label), jsxRuntime.jsx(react.CheckboxGroup, {
955
- onChange: option => onChange(utils.enumOptionsValueForIndex(option, enumOptions, emptyValue)),
956
- defaultValue: selectedIndexes,
957
- "aria-describedby": utils.ariaDescribedByIds(id),
958
- children: jsxRuntime.jsx(react.Stack, {
959
- direction: row ? 'row' : 'column',
960
- children: Array.isArray(enumOptions) && enumOptions.map((option, index) => {
961
- const checked = utils.enumOptionsIsSelected(option.value, checkboxesValues);
962
- const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
963
- return jsxRuntime.jsx(react.Checkbox, {
964
- id: utils.optionId(id, index),
965
- name: id,
966
- value: String(index),
967
- isChecked: checked,
968
- isDisabled: disabled || itemDisabled || readonly,
969
- onBlur: _onBlur,
970
- onFocus: _onFocus,
971
- children: option.label && jsxRuntime.jsx(react.Text, {
972
- children: option.label
973
- })
974
- }, index);
975
- })
976
- })
977
- })]
978
- });
979
- }
980
-
981
- function RadioWidget({
982
- id,
983
- options,
984
- value,
985
- required,
986
- disabled,
987
- readonly,
988
- label,
989
- hideLabel,
990
- onChange,
991
- onBlur,
992
- onFocus,
993
- uiSchema
994
- }) {
995
- const {
996
- enumOptions,
997
- enumDisabled,
998
- emptyValue
999
- } = options;
1000
- const chakraProps = getChakra({
1001
- uiSchema
1002
- });
1003
- const _onChange = nextValue => onChange(utils.enumOptionsValueForIndex(nextValue, enumOptions, emptyValue));
1004
- const _onBlur = ({
1005
- target: {
1006
- value
1007
- }
1008
- }) => onBlur(id, utils.enumOptionsValueForIndex(value, enumOptions, emptyValue));
1009
- const _onFocus = ({
1010
- target: {
1011
- value
1012
- }
1013
- }) => onFocus(id, utils.enumOptionsValueForIndex(value, enumOptions, emptyValue));
1014
- const row = options ? options.inline : false;
1015
- const selectedIndex = utils.enumOptionsIndexForValue(value, enumOptions) ?? null;
1016
- return jsxRuntime.jsxs(react.FormControl, {
1017
- mb: 1,
1018
- ...chakraProps,
1019
- isDisabled: disabled || readonly,
1020
- isRequired: required,
1021
- isReadOnly: readonly,
1022
- children: [utils.labelValue(jsxRuntime.jsx(react.FormLabel, {
1023
- htmlFor: id,
1024
- id: `${id}-label`,
1025
- children: label
1026
- }), hideLabel || !label), jsxRuntime.jsx(react.RadioGroup, {
1027
- onChange: _onChange,
1028
- onBlur: _onBlur,
1029
- onFocus: _onFocus,
1030
- value: selectedIndex,
1031
- name: id,
1032
- "aria-describedby": utils.ariaDescribedByIds(id),
1033
- children: jsxRuntime.jsx(react.Stack, {
1034
- direction: row ? 'row' : 'column',
1035
- children: Array.isArray(enumOptions) && enumOptions.map((option, index) => {
1036
- const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
1037
- return jsxRuntime.jsx(react.Radio, {
1038
- value: String(index),
1039
- id: utils.optionId(id, index),
1040
- disabled: disabled || itemDisabled || readonly,
1041
- children: option.label
1042
- }, index);
1043
- })
1044
- })
1045
- })]
1046
- });
1047
- }
1048
-
1049
- function RangeWidget({
1050
- value,
1051
- readonly,
1052
- disabled,
1053
- onBlur,
1054
- onFocus,
1055
- options,
1056
- schema,
1057
- uiSchema,
1058
- onChange,
1059
- label,
1060
- hideLabel,
1061
- id
1062
- }) {
1063
- const chakraProps = getChakra({
1064
- uiSchema
1065
- });
1066
- const sliderWidgetProps = {
1067
- value,
1068
- label,
1069
- id,
1070
- ...utils.rangeSpec(schema)
1071
- };
1072
- const _onChange = value => onChange(value === undefined ? options.emptyValue : value);
1073
- const _onBlur = ({
1074
- target: {
1075
- value
1076
- }
1077
- }) => onBlur(id, value);
1078
- const _onFocus = ({
1079
- target: {
1080
- value
1081
- }
1082
- }) => onFocus(id, value);
1083
- return jsxRuntime.jsxs(react.FormControl, {
1084
- mb: 1,
1085
- ...chakraProps,
1086
- children: [utils.labelValue(jsxRuntime.jsx(react.FormLabel, {
1087
- htmlFor: id,
1088
- children: label
1089
- }), hideLabel || !label), jsxRuntime.jsxs(react.Slider, {
1090
- ...sliderWidgetProps,
1091
- id: id,
1092
- name: id,
1093
- isDisabled: disabled || readonly,
1094
- onChange: _onChange,
1095
- onBlur: _onBlur,
1096
- onFocus: _onFocus,
1097
- "aria-describedby": utils.ariaDescribedByIds(id),
1098
- children: [jsxRuntime.jsx(react.SliderTrack, {
1099
- children: jsxRuntime.jsx(react.SliderFilledTrack, {})
1100
- }), jsxRuntime.jsx(react.SliderThumb, {})]
1101
- })]
1102
- });
1103
- }
1104
-
1105
- function SelectWidget(props) {
1106
- const {
1107
- id,
1108
- options,
1109
- label,
1110
- hideLabel,
1111
- placeholder,
1112
- multiple,
1113
- required,
1114
- disabled,
1115
- readonly,
1116
- value,
1117
- autofocus,
1118
- onChange,
1119
- onBlur,
1120
- onFocus,
1121
- rawErrors = [],
1122
- uiSchema
1123
- } = props;
1124
- const {
1125
- enumOptions,
1126
- enumDisabled,
1127
- emptyValue
1128
- } = options;
1129
- const chakraProps = getChakra({
1130
- uiSchema
1131
- });
1132
- const _onMultiChange = e => {
1133
- return onChange(utils.enumOptionsValueForIndex(e.map(v => {
1134
- return v.value;
1135
- }), enumOptions, emptyValue));
1136
- };
1137
- const _onChange = e => {
1138
- return onChange(utils.enumOptionsValueForIndex(e.value, enumOptions, emptyValue));
1139
- };
1140
- const _onBlur = ({
1141
- target: {
1142
- value
1143
- }
1144
- }) => onBlur(id, utils.enumOptionsValueForIndex(value, enumOptions, emptyValue));
1145
- const _onFocus = ({
1146
- target: {
1147
- value
1148
- }
1149
- }) => onFocus(id, utils.enumOptionsValueForIndex(value, enumOptions, emptyValue));
1150
- const _valueLabelMap = {};
1151
- const displayEnumOptions = Array.isArray(enumOptions) ? enumOptions.map((option, index) => {
1152
- const {
1153
- value,
1154
- label
1155
- } = option;
1156
- _valueLabelMap[index] = label || String(value);
1157
- return {
1158
- label,
1159
- value: String(index),
1160
- isDisabled: Array.isArray(enumDisabled) && enumDisabled.indexOf(value) !== -1
1161
- };
1162
- }) : [];
1163
- const isMultiple = typeof multiple !== 'undefined' && Boolean(enumOptions);
1164
- const selectedIndex = utils.enumOptionsIndexForValue(value, enumOptions, isMultiple);
1165
- const formValue = isMultiple ? (selectedIndex || []).map(i => {
1166
- return {
1167
- label: _valueLabelMap[i],
1168
- value: i
1169
- };
1170
- }) : {
1171
- label: _valueLabelMap[selectedIndex] || '',
1172
- selectedIndex
1173
- };
1174
- return jsxRuntime.jsxs(react.FormControl, {
1175
- mb: 1,
1176
- ...chakraProps,
1177
- isDisabled: disabled || readonly,
1178
- isRequired: required,
1179
- isReadOnly: readonly,
1180
- isInvalid: rawErrors && rawErrors.length > 0,
1181
- children: [utils.labelValue(jsxRuntime.jsx(react.FormLabel, {
1182
- htmlFor: id,
1183
- id: `${id}-label`,
1184
- children: label
1185
- }), hideLabel || !label), jsxRuntime.jsx(chakraReactSelect.Select, {
1186
- inputId: id,
1187
- name: id,
1188
- isMulti: isMultiple,
1189
- options: displayEnumOptions,
1190
- placeholder: placeholder,
1191
- closeMenuOnSelect: !isMultiple,
1192
- onBlur: _onBlur,
1193
- onChange: isMultiple ? _onMultiChange : _onChange,
1194
- onFocus: _onFocus,
1195
- autoFocus: autofocus,
1196
- value: formValue,
1197
- "aria-describedby": utils.ariaDescribedByIds(id)
1198
- })]
1199
- });
1200
- }
1201
-
1202
- function TextareaWidget({
1203
- id,
1204
- placeholder,
1205
- value,
1206
- label,
1207
- hideLabel,
1208
- disabled,
1209
- autofocus,
1210
- readonly,
1211
- onBlur,
1212
- onFocus,
1213
- onChange,
1214
- options,
1215
- uiSchema,
1216
- required,
1217
- rawErrors
1218
- }) {
1219
- const chakraProps = getChakra({
1220
- uiSchema
1221
- });
1222
- const _onChange = ({
1223
- target: {
1224
- value
1225
- }
1226
- }) => onChange(value === '' ? options.emptyValue : value);
1227
- const _onBlur = ({
1228
- target: {
1229
- value
1230
- }
1231
- }) => onBlur(id, value);
1232
- const _onFocus = ({
1233
- target: {
1234
- value
1235
- }
1236
- }) => onFocus(id, value);
1237
- return jsxRuntime.jsxs(react.FormControl, {
1238
- mb: 1,
1239
- ...chakraProps,
1240
- isDisabled: disabled || readonly,
1241
- isRequired: required,
1242
- isReadOnly: readonly,
1243
- isInvalid: rawErrors && rawErrors.length > 0,
1244
- children: [utils.labelValue(jsxRuntime.jsx(react.FormLabel, {
1245
- htmlFor: id,
1246
- children: label
1247
- }), hideLabel || !label), jsxRuntime.jsx(react.Textarea, {
1248
- id: id,
1249
- name: id,
1250
- value: value ?? '',
1251
- placeholder: placeholder,
1252
- autoFocus: autofocus,
1253
- onChange: _onChange,
1254
- onBlur: _onBlur,
1255
- onFocus: _onFocus,
1256
- "aria-describedby": utils.ariaDescribedByIds(id)
1257
- })]
1258
- });
1259
- }
1260
-
1261
- function UpDownWidget(props) {
1262
- const {
1263
- id,
1264
- uiSchema,
1265
- readonly,
1266
- disabled,
1267
- label,
1268
- hideLabel,
1269
- value,
1270
- onChange,
1271
- onBlur,
1272
- onFocus,
1273
- rawErrors,
1274
- required
1275
- } = props;
1276
- const chakraProps = getChakra({
1277
- uiSchema
1278
- });
1279
- const _onChange = value => onChange(value);
1280
- const _onBlur = ({
1281
- target: {
1282
- value
1283
- }
1284
- }) => onBlur(id, value);
1285
- const _onFocus = ({
1286
- target: {
1287
- value
1288
- }
1289
- }) => onFocus(id, value);
1290
- return jsxRuntime.jsxs(react.FormControl, {
1291
- mb: 1,
1292
- ...chakraProps,
1293
- isDisabled: disabled || readonly,
1294
- isRequired: required,
1295
- isReadOnly: readonly,
1296
- isInvalid: rawErrors && rawErrors.length > 0,
1297
- children: [utils.labelValue(jsxRuntime.jsx(react.FormLabel, {
1298
- htmlFor: id,
1299
- children: label
1300
- }), hideLabel || !label), jsxRuntime.jsxs(react.NumberInput, {
1301
- value: value ?? '',
1302
- onChange: _onChange,
1303
- onBlur: _onBlur,
1304
- onFocus: _onFocus,
1305
- "aria-describedby": utils.ariaDescribedByIds(id),
1306
- children: [jsxRuntime.jsx(react.NumberInputField, {
1307
- id: id,
1308
- name: id
1309
- }), jsxRuntime.jsxs(react.NumberInputStepper, {
1310
- children: [jsxRuntime.jsx(react.NumberIncrementStepper, {}), jsxRuntime.jsx(react.NumberDecrementStepper, {})]
1311
- })]
1312
- })]
1313
- });
1314
- }
1315
-
1316
- function generateWidgets() {
1317
- return {
1318
- AltDateTimeWidget,
1319
- AltDateWidget,
1320
- CheckboxWidget,
1321
- CheckboxesWidget,
1322
- RadioWidget,
1323
- RangeWidget,
1324
- SelectWidget,
1325
- TextareaWidget,
1326
- UpDownWidget
1327
- };
1328
- }
1329
- var Widgets = /*#__PURE__*/generateWidgets();
1330
-
1331
- function generateTheme() {
1332
- return {
1333
- templates: generateTemplates(),
1334
- widgets: generateWidgets()
1335
- };
1336
- }
1337
- var Theme = /*#__PURE__*/generateTheme();
1338
-
1339
- function generateForm() {
1340
- return core.withTheme(generateTheme());
1341
- }
1342
- var Form = /*#__PURE__*/generateForm();
1343
-
1344
- /**
1345
- *
1346
- * The reason we need this is for ChakraProvider styling in Playground.
1347
- * The User Developer would be responsible for styling with ChakraProvider in their app.
1348
- *
1349
- * Exact duplicate of `@chakra-ui/react`'s `CSSReset` component. Except for the following:
1350
- *
1351
- ```css
1352
- input {
1353
- border-width: revert;
1354
- border-color: revert;
1355
- border-style: revert;
1356
- }
1357
- .array-item > hr {
1358
- margin-top: 16px;
1359
- margin-bottom: 16px;
1360
- }
1361
- ```
1362
-
1363
- It is located at the bottom of the styles string.
1364
- */
1365
- const CSSReset = () => jsxRuntime.jsx(react$2.Global, {
1366
- styles: `
1367
- html {
1368
- line-height: 1.5;
1369
- -webkit-text-size-adjust: 100%;
1370
- font-family: system-ui, sans-serif;
1371
- -webkit-font-smoothing: antialiased;
1372
- text-rendering: optimizeLegibility;
1373
- -moz-osx-font-smoothing: grayscale;
1374
- touch-action: manipulation;
1375
- }
1376
- body {
1377
- position: relative;
1378
- min-height: 100%;
1379
- font-feature-settings: 'kern';
1380
- }
1381
- *,
1382
- *::before,
1383
- *::after {
1384
- border-width: 0;
1385
- border-style: solid;
1386
- box-sizing: border-box;
1387
- }
1388
- main {
1389
- display: block;
1390
- }
1391
- hr {
1392
- border-top-width: 1px;
1393
- box-sizing: content-box;
1394
- height: 0;
1395
- overflow: visible;
1396
- }
1397
- pre,
1398
- code,
1399
- kbd,
1400
- samp {
1401
- font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1402
- font-size: 1em;
1403
- }
1404
- a {
1405
- background-color: transparent;
1406
- color: inherit;
1407
- text-decoration: inherit;
1408
- }
1409
- abbr[title] {
1410
- border-bottom: none;
1411
- text-decoration: underline;
1412
- -webkit-text-decoration: underline dotted;
1413
- text-decoration: underline dotted;
1414
- }
1415
- b,
1416
- strong {
1417
- font-weight: bold;
1418
- }
1419
- small {
1420
- font-size: 80%;
1421
- }
1422
- sub,
1423
- sup {
1424
- font-size: 75%;
1425
- line-height: 0;
1426
- position: relative;
1427
- vertical-align: baseline;
1428
- }
1429
- sub {
1430
- bottom: -0.25em;
1431
- }
1432
- sup {
1433
- top: -0.5em;
1434
- }
1435
- img {
1436
- border-style: none;
1437
- }
1438
- button,
1439
- input,
1440
- optgroup,
1441
- select,
1442
- textarea {
1443
- font-family: inherit;
1444
- font-size: 100%;
1445
- line-height: 1.15;
1446
- margin: 0;
1447
- }
1448
- button,
1449
- input {
1450
- overflow: visible;
1451
- }
1452
- button,
1453
- select {
1454
- text-transform: none;
1455
- }
1456
- button::-moz-focus-inner,
1457
- [type="button"]::-moz-focus-inner,
1458
- [type="reset"]::-moz-focus-inner,
1459
- [type="submit"]::-moz-focus-inner {
1460
- border-style: none;
1461
- padding: 0;
1462
- }
1463
- fieldset {
1464
- padding: 0.35em 0.75em 0.625em;
1465
- }
1466
- legend {
1467
- box-sizing: border-box;
1468
- color: inherit;
1469
- display: table;
1470
- max-width: 100%;
1471
- padding: 0;
1472
- white-space: normal;
1473
- }
1474
- progress {
1475
- vertical-align: baseline;
1476
- }
1477
- textarea {
1478
- overflow: auto;
1479
- }
1480
- [type="checkbox"],
1481
- [type="radio"] {
1482
- box-sizing: border-box;
1483
- padding: 0;
1484
- }
1485
- [type="number"]::-webkit-inner-spin-button,
1486
- [type="number"]::-webkit-outer-spin-button {
1487
- -webkit-appearance: none !important;
1488
- }
1489
- input[type="number"] {
1490
- -moz-appearance: textfield;
1491
- }
1492
- [type="search"] {
1493
- -webkit-appearance: textfield;
1494
- outline-offset: -2px;
1495
- }
1496
- [type="search"]::-webkit-search-decoration {
1497
- -webkit-appearance: none !important;
1498
- }
1499
- ::-webkit-file-upload-button {
1500
- -webkit-appearance: button;
1501
- font: inherit;
1502
- }
1503
- details {
1504
- display: block;
1505
- }
1506
- summary {
1507
- display: list-item;
1508
- }
1509
- template {
1510
- display: none;
1511
- }
1512
- [hidden] {
1513
- display: none !important;
1514
- }
1515
- body,
1516
- blockquote,
1517
- dl,
1518
- dd,
1519
- h1,
1520
- h2,
1521
- h3,
1522
- h4,
1523
- h5,
1524
- h6,
1525
- hr,
1526
- figure,
1527
- p,
1528
- pre {
1529
- margin: 0;
1530
- }
1531
- button {
1532
- background: transparent;
1533
- padding: 0;
1534
- }
1535
- fieldset {
1536
- margin: 0;
1537
- padding: 0;
1538
- }
1539
- ol,
1540
- ul {
1541
- margin: 0;
1542
- padding: 0;
1543
- }
1544
- textarea {
1545
- resize: vertical;
1546
- }
1547
- button,
1548
- [role="button"] {
1549
- cursor: pointer;
1550
- }
1551
- button::-moz-focus-inner {
1552
- border: 0 !important;
1553
- }
1554
- table {
1555
- border-collapse: collapse;
1556
- }
1557
- h1,
1558
- h2,
1559
- h3,
1560
- h4,
1561
- h5,
1562
- h6 {
1563
- font-size: inherit;
1564
- font-weight: inherit;
1565
- }
1566
- button,
1567
- input,
1568
- optgroup,
1569
- select,
1570
- textarea {
1571
- padding: 0;
1572
- line-height: inherit;
1573
- color: inherit;
1574
- }
1575
- img,
1576
- svg,
1577
- video,
1578
- canvas,
1579
- audio,
1580
- iframe,
1581
- embed,
1582
- object {
1583
- display: block;
1584
- }
1585
- img,
1586
- video {
1587
- max-width: 100%;
1588
- height: auto;
1589
- }
1590
- [data-js-focus-visible] :focus:not([data-focus-visible-added]) {
1591
- outline: none;
1592
- box-shadow: none;
1593
- }
1594
- select::-ms-expand {
1595
- display: none;
1596
- }
1597
- input {
1598
- border-width: revert;
1599
- border-color: revert;
1600
- border-style: revert;
1601
- }
1602
- .array-item > hr {
1603
- margin-top: 16px;
1604
- margin-bottom: 16px;
1605
- }
1606
- `
1607
- });
1608
-
1609
- /**
1610
- * __createChakraFrameProvider is used to ensure that <Global> emotion components
1611
- * can be rendered within an iframe without changing the styles of the parent page.
1612
- * Required for using Chakra UI in the playground.
1613
- *
1614
- * We have to define ChakraFrameProvider in this library, as opposed to the playground,
1615
- * in order to avoid conflicting versions of emotion, which breaks the styling.
1616
- *
1617
- * NOTE: This is an internal component only used by @rjsf/playground (no
1618
- * backwards compatibility guarantees!)
1619
- *
1620
- * From: https://codesandbox.io/s/p98y9o7jz0?file=/src/frame-provider.js:0-650
1621
- * Also see: https://github.com/emotion-js/emotion/issues/760#issuecomment-404353706
1622
- */
1623
- const memoizedCreateCacheWithContainer = /*#__PURE__*/weakMemoize__default["default"](container => {
1624
- const newCache = createCache__default["default"]({
1625
- container,
1626
- key: 'rjsf'
1627
- });
1628
- return newCache;
1629
- });
1630
- const __createChakraFrameProvider = props => ({
1631
- document
1632
- }) => {
1633
- return jsxRuntime.jsx("div", {
1634
- style: {
1635
- margin: 2
1636
- },
1637
- children: jsxRuntime.jsx(react$2.CacheProvider, {
1638
- value: memoizedCreateCacheWithContainer(document.head),
1639
- children: jsxRuntime.jsxs(react.ChakraProvider, {
1640
- resetCSS: false,
1641
- children: [jsxRuntime.jsx(CSSReset, {}), props.children]
1642
- })
1643
- })
1644
- });
1645
- };
1646
-
1647
- exports.Form = Form;
1648
- exports.Templates = Templates;
1649
- exports.Theme = Theme;
1650
- exports.Widgets = Widgets;
1651
- exports.__createChakraFrameProvider = __createChakraFrameProvider;
1652
- exports["default"] = Form;
1653
- exports.generateForm = generateForm;
1654
- exports.generateTemplates = generateTemplates;
1655
- exports.generateTheme = generateTheme;
1656
- exports.generateWidgets = generateWidgets;
1657
- //# sourceMappingURL=chakra-ui.cjs.development.js.map