@rjsf/chakra-ui 5.11.2 → 5.12.1

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