@rjsf/fluentui-rc 5.14.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 (210) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +127 -0
  3. package/dist/core.umd.js +940 -0
  4. package/dist/index.esm.js +1091 -0
  5. package/dist/index.esm.js.map +7 -0
  6. package/dist/index.js +1063 -0
  7. package/dist/index.js.map +7 -0
  8. package/lib/AddButton/AddButton.d.ts +3 -0
  9. package/lib/AddButton/AddButton.js +11 -0
  10. package/lib/AddButton/AddButton.js.map +1 -0
  11. package/lib/AddButton/index.d.ts +2 -0
  12. package/lib/AddButton/index.js +3 -0
  13. package/lib/AddButton/index.js.map +1 -0
  14. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +7 -0
  15. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js +12 -0
  16. package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js.map +1 -0
  17. package/lib/ArrayFieldItemTemplate/index.d.ts +2 -0
  18. package/lib/ArrayFieldItemTemplate/index.js +3 -0
  19. package/lib/ArrayFieldItemTemplate/index.js.map +1 -0
  20. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +7 -0
  21. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js +28 -0
  22. package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js.map +1 -0
  23. package/lib/ArrayFieldTemplate/index.d.ts +2 -0
  24. package/lib/ArrayFieldTemplate/index.js +3 -0
  25. package/lib/ArrayFieldTemplate/index.js.map +1 -0
  26. package/lib/BaseInputTemplate/BaseInputTemplate.d.ts +9 -0
  27. package/lib/BaseInputTemplate/BaseInputTemplate.js +38 -0
  28. package/lib/BaseInputTemplate/BaseInputTemplate.js.map +1 -0
  29. package/lib/BaseInputTemplate/index.d.ts +2 -0
  30. package/lib/BaseInputTemplate/index.js +3 -0
  31. package/lib/BaseInputTemplate/index.js.map +1 -0
  32. package/lib/CheckboxWidget/CheckboxWidget.d.ts +8 -0
  33. package/lib/CheckboxWidget/CheckboxWidget.js +23 -0
  34. package/lib/CheckboxWidget/CheckboxWidget.js.map +1 -0
  35. package/lib/CheckboxWidget/index.d.ts +2 -0
  36. package/lib/CheckboxWidget/index.js +3 -0
  37. package/lib/CheckboxWidget/index.js.map +1 -0
  38. package/lib/CheckboxesWidget/CheckboxesWidget.d.ts +8 -0
  39. package/lib/CheckboxesWidget/CheckboxesWidget.js +30 -0
  40. package/lib/CheckboxesWidget/CheckboxesWidget.js.map +1 -0
  41. package/lib/CheckboxesWidget/index.d.ts +2 -0
  42. package/lib/CheckboxesWidget/index.js +3 -0
  43. package/lib/CheckboxesWidget/index.js.map +1 -0
  44. package/lib/DescriptionField/DescriptionField.d.ts +7 -0
  45. package/lib/DescriptionField/DescriptionField.js +21 -0
  46. package/lib/DescriptionField/DescriptionField.js.map +1 -0
  47. package/lib/DescriptionField/index.d.ts +2 -0
  48. package/lib/DescriptionField/index.js +3 -0
  49. package/lib/DescriptionField/index.js.map +1 -0
  50. package/lib/ErrorList/ErrorList.d.ts +7 -0
  51. package/lib/ErrorList/ErrorList.js +26 -0
  52. package/lib/ErrorList/ErrorList.js.map +1 -0
  53. package/lib/ErrorList/index.d.ts +2 -0
  54. package/lib/ErrorList/index.js +3 -0
  55. package/lib/ErrorList/index.js.map +1 -0
  56. package/lib/FieldErrorTemplate/FieldErrorTemplate.d.ts +7 -0
  57. package/lib/FieldErrorTemplate/FieldErrorTemplate.js +28 -0
  58. package/lib/FieldErrorTemplate/FieldErrorTemplate.js.map +1 -0
  59. package/lib/FieldErrorTemplate/index.d.ts +2 -0
  60. package/lib/FieldErrorTemplate/index.js +3 -0
  61. package/lib/FieldErrorTemplate/index.js.map +1 -0
  62. package/lib/FieldHelpTemplate/FieldHelpTemplate.d.ts +7 -0
  63. package/lib/FieldHelpTemplate/FieldHelpTemplate.js +16 -0
  64. package/lib/FieldHelpTemplate/FieldHelpTemplate.js.map +1 -0
  65. package/lib/FieldHelpTemplate/index.d.ts +2 -0
  66. package/lib/FieldHelpTemplate/index.js +3 -0
  67. package/lib/FieldHelpTemplate/index.js.map +1 -0
  68. package/lib/FieldTemplate/FieldTemplate.d.ts +8 -0
  69. package/lib/FieldTemplate/FieldTemplate.js +18 -0
  70. package/lib/FieldTemplate/FieldTemplate.js.map +1 -0
  71. package/lib/FieldTemplate/index.d.ts +2 -0
  72. package/lib/FieldTemplate/index.js +3 -0
  73. package/lib/FieldTemplate/index.js.map +1 -0
  74. package/lib/FluentForm/FluentForm.d.ts +6 -0
  75. package/lib/FluentForm/FluentForm.js +7 -0
  76. package/lib/FluentForm/FluentForm.js.map +1 -0
  77. package/lib/FluentForm/index.d.ts +2 -0
  78. package/lib/FluentForm/index.js +3 -0
  79. package/lib/FluentForm/index.js.map +1 -0
  80. package/lib/FluentUIRCFrameProvider.d.ts +2 -0
  81. package/lib/FluentUIRCFrameProvider.js +12 -0
  82. package/lib/FluentUIRCFrameProvider.js.map +1 -0
  83. package/lib/IconButton/IconButton.d.ts +7 -0
  84. package/lib/IconButton/IconButton.js +26 -0
  85. package/lib/IconButton/IconButton.js.map +1 -0
  86. package/lib/IconButton/index.d.ts +2 -0
  87. package/lib/IconButton/index.js +3 -0
  88. package/lib/IconButton/index.js.map +1 -0
  89. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +9 -0
  90. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js +22 -0
  91. package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js.map +1 -0
  92. package/lib/ObjectFieldTemplate/index.d.ts +2 -0
  93. package/lib/ObjectFieldTemplate/index.js +3 -0
  94. package/lib/ObjectFieldTemplate/index.js.map +1 -0
  95. package/lib/RadioWidget/RadioWidget.d.ts +8 -0
  96. package/lib/RadioWidget/RadioWidget.js +22 -0
  97. package/lib/RadioWidget/RadioWidget.js.map +1 -0
  98. package/lib/RadioWidget/index.d.ts +2 -0
  99. package/lib/RadioWidget/index.js +3 -0
  100. package/lib/RadioWidget/index.js.map +1 -0
  101. package/lib/RangeWidget/RangeWidget.d.ts +8 -0
  102. package/lib/RangeWidget/RangeWidget.js +20 -0
  103. package/lib/RangeWidget/RangeWidget.js.map +1 -0
  104. package/lib/RangeWidget/index.d.ts +2 -0
  105. package/lib/RangeWidget/index.js +3 -0
  106. package/lib/RangeWidget/index.js.map +1 -0
  107. package/lib/SelectWidget/SelectWidget.d.ts +9 -0
  108. package/lib/SelectWidget/SelectWidget.js +41 -0
  109. package/lib/SelectWidget/SelectWidget.js.map +1 -0
  110. package/lib/SelectWidget/index.d.ts +2 -0
  111. package/lib/SelectWidget/index.js +3 -0
  112. package/lib/SelectWidget/index.js.map +1 -0
  113. package/lib/SubmitButton/SubmitButton.d.ts +3 -0
  114. package/lib/SubmitButton/SubmitButton.js +17 -0
  115. package/lib/SubmitButton/SubmitButton.js.map +1 -0
  116. package/lib/SubmitButton/index.d.ts +2 -0
  117. package/lib/SubmitButton/index.js +3 -0
  118. package/lib/SubmitButton/index.js.map +1 -0
  119. package/lib/Templates/Templates.d.ts +4 -0
  120. package/lib/Templates/Templates.js +39 -0
  121. package/lib/Templates/Templates.js.map +1 -0
  122. package/lib/Templates/index.d.ts +2 -0
  123. package/lib/Templates/index.js +3 -0
  124. package/lib/Templates/index.js.map +1 -0
  125. package/lib/TextareaWidget/TextareaWidget.d.ts +7 -0
  126. package/lib/TextareaWidget/TextareaWidget.js +27 -0
  127. package/lib/TextareaWidget/TextareaWidget.js.map +1 -0
  128. package/lib/TextareaWidget/index.d.ts +2 -0
  129. package/lib/TextareaWidget/index.js +3 -0
  130. package/lib/TextareaWidget/index.js.map +1 -0
  131. package/lib/Theme/Theme.d.ts +5 -0
  132. package/lib/Theme/Theme.js +10 -0
  133. package/lib/Theme/Theme.js.map +1 -0
  134. package/lib/Theme/index.d.ts +2 -0
  135. package/lib/Theme/index.js +3 -0
  136. package/lib/Theme/index.js.map +1 -0
  137. package/lib/TitleField/TitleField.d.ts +7 -0
  138. package/lib/TitleField/TitleField.js +17 -0
  139. package/lib/TitleField/TitleField.js.map +1 -0
  140. package/lib/TitleField/index.d.ts +2 -0
  141. package/lib/TitleField/index.js +3 -0
  142. package/lib/TitleField/index.js.map +1 -0
  143. package/lib/Widgets/Widgets.d.ts +4 -0
  144. package/lib/Widgets/Widgets.js +18 -0
  145. package/lib/Widgets/Widgets.js.map +1 -0
  146. package/lib/Widgets/index.d.ts +2 -0
  147. package/lib/Widgets/index.js +3 -0
  148. package/lib/Widgets/index.js.map +1 -0
  149. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.d.ts +8 -0
  150. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js +40 -0
  151. package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js.map +1 -0
  152. package/lib/WrapIfAdditionalTemplate/index.d.ts +2 -0
  153. package/lib/WrapIfAdditionalTemplate/index.js +3 -0
  154. package/lib/WrapIfAdditionalTemplate/index.js.map +1 -0
  155. package/lib/index.d.ts +7 -0
  156. package/lib/index.js +8 -0
  157. package/lib/index.js.map +1 -0
  158. package/lib/tsconfig.tsbuildinfo +1 -0
  159. package/package.json +98 -0
  160. package/src/AddButton/AddButton.tsx +12 -0
  161. package/src/AddButton/index.ts +2 -0
  162. package/src/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +72 -0
  163. package/src/ArrayFieldItemTemplate/index.ts +2 -0
  164. package/src/ArrayFieldTemplate/ArrayFieldTemplate.tsx +87 -0
  165. package/src/ArrayFieldTemplate/index.ts +2 -0
  166. package/src/BaseInputTemplate/BaseInputTemplate.tsx +99 -0
  167. package/src/BaseInputTemplate/index.ts +2 -0
  168. package/src/CheckboxWidget/CheckboxWidget.tsx +81 -0
  169. package/src/CheckboxWidget/index.ts +2 -0
  170. package/src/CheckboxesWidget/CheckboxesWidget.tsx +91 -0
  171. package/src/CheckboxesWidget/index.ts +2 -0
  172. package/src/DescriptionField/DescriptionField.tsx +31 -0
  173. package/src/DescriptionField/index.ts +2 -0
  174. package/src/ErrorList/ErrorList.tsx +40 -0
  175. package/src/ErrorList/index.ts +2 -0
  176. package/src/FieldErrorTemplate/FieldErrorTemplate.tsx +44 -0
  177. package/src/FieldErrorTemplate/index.ts +2 -0
  178. package/src/FieldHelpTemplate/FieldHelpTemplate.tsx +19 -0
  179. package/src/FieldHelpTemplate/index.ts +2 -0
  180. package/src/FieldTemplate/FieldTemplate.tsx +80 -0
  181. package/src/FieldTemplate/index.ts +2 -0
  182. package/src/FluentForm/FluentForm.ts +15 -0
  183. package/src/FluentForm/index.ts +2 -0
  184. package/src/FluentUIRCFrameProvider.tsx +21 -0
  185. package/src/IconButton/IconButton.tsx +73 -0
  186. package/src/IconButton/index.ts +2 -0
  187. package/src/ObjectFieldTemplate/ObjectFieldTemplate.tsx +97 -0
  188. package/src/ObjectFieldTemplate/index.ts +2 -0
  189. package/src/RadioWidget/RadioWidget.tsx +77 -0
  190. package/src/RadioWidget/index.ts +2 -0
  191. package/src/RangeWidget/RangeWidget.tsx +49 -0
  192. package/src/RangeWidget/index.ts +2 -0
  193. package/src/SelectWidget/SelectWidget.tsx +98 -0
  194. package/src/SelectWidget/index.ts +2 -0
  195. package/src/SubmitButton/SubmitButton.tsx +27 -0
  196. package/src/SubmitButton/index.ts +2 -0
  197. package/src/Templates/Templates.ts +45 -0
  198. package/src/Templates/index.ts +2 -0
  199. package/src/TextareaWidget/TextareaWidget.tsx +81 -0
  200. package/src/TextareaWidget/index.ts +2 -0
  201. package/src/Theme/Theme.ts +18 -0
  202. package/src/Theme/index.ts +2 -0
  203. package/src/TitleField/TitleField.tsx +28 -0
  204. package/src/TitleField/index.ts +2 -0
  205. package/src/Widgets/Widgets.ts +24 -0
  206. package/src/Widgets/index.ts +2 -0
  207. package/src/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +100 -0
  208. package/src/WrapIfAdditionalTemplate/index.ts +2 -0
  209. package/src/index.ts +9 -0
  210. package/src/tsconfig.json +24 -0
@@ -0,0 +1,940 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@rjsf/core'), require('@fluentui/react-migration-v0-v9'), require('react/jsx-runtime'), require('@rjsf/utils'), require('@fluentui/react-components'), require('@fluentui/react-icons'), require('react')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@rjsf/core', '@fluentui/react-migration-v0-v9', 'react/jsx-runtime', '@rjsf/utils', '@fluentui/react-components', '@fluentui/react-icons', 'react'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.JSONSchemaForm = {}, global.core, global.reactMigrationV0V9, global.jsxRuntime, global.utils, global.reactComponents, global.reactIcons, global.react));
5
+ })(this, (function (exports, core, reactMigrationV0V9, jsxRuntime, utils, reactComponents, reactIcons, react) { 'use strict';
6
+
7
+ // src/FluentForm/FluentForm.ts
8
+ function ArrayFieldItemTemplate(props) {
9
+ const {
10
+ children,
11
+ disabled,
12
+ hasToolbar,
13
+ hasCopy,
14
+ hasMoveDown,
15
+ hasMoveUp,
16
+ hasRemove,
17
+ index,
18
+ onCopyIndexClick,
19
+ onDropIndexClick,
20
+ onReorderClick,
21
+ readonly,
22
+ uiSchema,
23
+ registry
24
+ } = props;
25
+ const { CopyButton: CopyButton2, MoveDownButton: MoveDownButton2, MoveUpButton: MoveUpButton2, RemoveButton: RemoveButton2 } = registry.templates.ButtonTemplates;
26
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactMigrationV0V9.Flex, { vAlign: "end", children: [
27
+ /* @__PURE__ */ jsxRuntime.jsx(reactMigrationV0V9.Flex, { children }),
28
+ hasToolbar && /* @__PURE__ */ jsxRuntime.jsxs(reactMigrationV0V9.Flex, { style: { marginLeft: "8px" }, children: [
29
+ (hasMoveUp || hasMoveDown) && /* @__PURE__ */ jsxRuntime.jsx(
30
+ MoveUpButton2,
31
+ {
32
+ disabled: disabled || readonly || !hasMoveUp,
33
+ onClick: onReorderClick(index, index - 1),
34
+ uiSchema,
35
+ registry
36
+ }
37
+ ),
38
+ (hasMoveUp || hasMoveDown) && /* @__PURE__ */ jsxRuntime.jsx(
39
+ MoveDownButton2,
40
+ {
41
+ disabled: disabled || readonly || !hasMoveDown,
42
+ onClick: onReorderClick(index, index + 1),
43
+ uiSchema,
44
+ registry
45
+ }
46
+ ),
47
+ hasCopy && /* @__PURE__ */ jsxRuntime.jsx(
48
+ CopyButton2,
49
+ {
50
+ disabled: disabled || readonly,
51
+ onClick: onCopyIndexClick(index),
52
+ uiSchema,
53
+ registry
54
+ }
55
+ ),
56
+ hasRemove && /* @__PURE__ */ jsxRuntime.jsx(
57
+ RemoveButton2,
58
+ {
59
+ disabled: disabled || readonly,
60
+ onClick: onDropIndexClick(index),
61
+ uiSchema,
62
+ registry
63
+ }
64
+ )
65
+ ] })
66
+ ] });
67
+ }
68
+ function AddButton({
69
+ uiSchema,
70
+ registry,
71
+ ...props
72
+ }) {
73
+ const { translateString } = registry;
74
+ return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Button, { ...props, icon: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.AddRegular, {}), title: translateString(utils.TranslatableString.AddItemButton) });
75
+ }
76
+ var useStyles = reactComponents.makeStyles({
77
+ arrayItemList: {
78
+ ...reactComponents.shorthands.gap("12px")
79
+ }
80
+ });
81
+ function ArrayFieldTemplate(props) {
82
+ const { canAdd, disabled, idSchema, uiSchema, items, onAddClick, readonly, registry, required, schema, title } = props;
83
+ const classes = useStyles();
84
+ const uiOptions = utils.getUiOptions(uiSchema);
85
+ const ArrayFieldDescriptionTemplate = utils.getTemplate(
86
+ "ArrayFieldDescriptionTemplate",
87
+ registry,
88
+ uiOptions
89
+ );
90
+ const ArrayFieldItemTemplate2 = utils.getTemplate(
91
+ "ArrayFieldItemTemplate",
92
+ registry,
93
+ uiOptions
94
+ );
95
+ const ArrayFieldTitleTemplate = utils.getTemplate(
96
+ "ArrayFieldTitleTemplate",
97
+ registry,
98
+ uiOptions
99
+ );
100
+ const {
101
+ ButtonTemplates: { AddButton: AddButton2 }
102
+ } = registry.templates;
103
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
104
+ /* @__PURE__ */ jsxRuntime.jsx(
105
+ ArrayFieldTitleTemplate,
106
+ {
107
+ idSchema,
108
+ title: uiOptions.title || title,
109
+ schema,
110
+ uiSchema,
111
+ required,
112
+ registry
113
+ }
114
+ ),
115
+ /* @__PURE__ */ jsxRuntime.jsx(
116
+ ArrayFieldDescriptionTemplate,
117
+ {
118
+ idSchema,
119
+ description: uiOptions.description || schema.description,
120
+ schema,
121
+ uiSchema,
122
+ registry
123
+ }
124
+ ),
125
+ /* @__PURE__ */ jsxRuntime.jsxs(reactMigrationV0V9.Flex, { column: true, className: classes.arrayItemList, children: [
126
+ items && items.map(({ key, ...itemProps }) => /* @__PURE__ */ jsxRuntime.jsx(ArrayFieldItemTemplate2, { ...itemProps }, key)),
127
+ canAdd && /* @__PURE__ */ jsxRuntime.jsx(reactMigrationV0V9.Flex, { hAlign: "end", children: /* @__PURE__ */ jsxRuntime.jsx(
128
+ AddButton2,
129
+ {
130
+ className: "array-item-add",
131
+ onClick: onAddClick,
132
+ disabled: disabled || readonly,
133
+ uiSchema,
134
+ registry
135
+ }
136
+ ) })
137
+ ] }, `array-item-list-${idSchema.$id}`)
138
+ ] });
139
+ }
140
+ var useStyles2 = reactComponents.makeStyles({
141
+ input: {
142
+ width: "100%"
143
+ },
144
+ label: {
145
+ paddingTop: "2px",
146
+ paddingBottom: "2px",
147
+ marginBottom: "2px"
148
+ }
149
+ });
150
+ function BaseInputTemplate(props) {
151
+ const {
152
+ id,
153
+ placeholder,
154
+ required,
155
+ readonly,
156
+ disabled,
157
+ type,
158
+ value,
159
+ label,
160
+ hideLabel,
161
+ onChange,
162
+ onChangeOverride,
163
+ onBlur,
164
+ onFocus,
165
+ autofocus,
166
+ options,
167
+ schema
168
+ } = props;
169
+ const classes = useStyles2();
170
+ const inputProps = utils.getInputProps(schema, type, options);
171
+ const _onChange = ({ target: { value: value2 } }) => onChange(value2 === "" ? options.emptyValue : value2);
172
+ const _onBlur = ({ target: { value: value2 } }) => onBlur(id, value2);
173
+ const _onFocus = ({ target: { value: value2 } }) => onFocus(id, value2);
174
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
175
+ utils.labelValue(
176
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Label, { htmlFor: id, required, disabled, className: classes.label, children: label }),
177
+ hideLabel
178
+ ),
179
+ /* @__PURE__ */ jsxRuntime.jsx(
180
+ reactComponents.Input,
181
+ {
182
+ id,
183
+ name: id,
184
+ placeholder,
185
+ autoFocus: autofocus,
186
+ required,
187
+ disabled: disabled || readonly,
188
+ ...inputProps,
189
+ input: {
190
+ className: classes.input,
191
+ // Due to Fluent UI this does not work correctly
192
+ list: schema.examples ? utils.examplesId(id) : void 0
193
+ },
194
+ value: value || value === 0 ? value : "",
195
+ onChange: onChangeOverride || _onChange,
196
+ onFocus: _onFocus,
197
+ onBlur: _onBlur,
198
+ "aria-describedby": utils.ariaDescribedByIds(id, !!schema.examples)
199
+ }
200
+ ),
201
+ Array.isArray(schema.examples) && /* @__PURE__ */ jsxRuntime.jsx("datalist", { id: utils.examplesId(id), children: schema.examples.concat(schema.default && !schema.examples.includes(schema.default) ? [schema.default] : []).map((example) => {
202
+ return /* @__PURE__ */ jsxRuntime.jsx("option", { value: example }, example);
203
+ }) })
204
+ ] });
205
+ }
206
+ var useStyles3 = reactComponents.makeStyles({
207
+ label: {
208
+ marginTop: reactComponents.tokens.spacingVerticalS,
209
+ marginBottom: reactComponents.tokens.spacingVerticalM
210
+ }
211
+ });
212
+ function DescriptionField(props) {
213
+ const { id, description } = props;
214
+ const classes = useStyles3();
215
+ if (description) {
216
+ return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Text, { block: true, id, className: classes.label, children: description });
217
+ }
218
+ return null;
219
+ }
220
+ var useStyles4 = reactComponents.makeStyles({
221
+ errorCard: {
222
+ backgroundColor: reactComponents.tokens.colorStatusDangerBackground1,
223
+ marginBottom: reactComponents.tokens.spacingVerticalL,
224
+ "&::after": {
225
+ ...reactComponents.shorthands.borderColor(reactComponents.tokens.colorStatusDangerBorder1)
226
+ }
227
+ },
228
+ errorTitle: {
229
+ marginTop: 0,
230
+ marginBottom: 0
231
+ }
232
+ });
233
+ function ErrorList({
234
+ errors,
235
+ registry
236
+ }) {
237
+ const { translateString } = registry;
238
+ const classes = useStyles4();
239
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { appearance: "outline", className: classes.errorCard, children: [
240
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Text, { as: "h6", size: 400, className: classes.errorTitle, children: translateString(utils.TranslatableString.ErrorsLabel) }),
241
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { children: errors.map((error, i) => {
242
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { children: error.stack }, i);
243
+ }) })
244
+ ] });
245
+ }
246
+ function FluentIconButton(props) {
247
+ const { color, uiSchema, registry, ...otherProps } = props;
248
+ return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Button, { ...otherProps, color: "secondary" });
249
+ }
250
+ function CopyButton(props) {
251
+ const {
252
+ registry: { translateString }
253
+ } = props;
254
+ return /* @__PURE__ */ jsxRuntime.jsx(
255
+ FluentIconButton,
256
+ {
257
+ title: translateString(utils.TranslatableString.CopyButton),
258
+ ...props,
259
+ icon: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.CopyRegular, {})
260
+ }
261
+ );
262
+ }
263
+ function MoveDownButton(props) {
264
+ const {
265
+ registry: { translateString }
266
+ } = props;
267
+ return /* @__PURE__ */ jsxRuntime.jsx(
268
+ FluentIconButton,
269
+ {
270
+ title: translateString(utils.TranslatableString.MoveDownButton),
271
+ ...props,
272
+ icon: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.ArrowSortDownRegular, {})
273
+ }
274
+ );
275
+ }
276
+ function MoveUpButton(props) {
277
+ const {
278
+ registry: { translateString }
279
+ } = props;
280
+ return /* @__PURE__ */ jsxRuntime.jsx(
281
+ FluentIconButton,
282
+ {
283
+ title: translateString(utils.TranslatableString.MoveUpButton),
284
+ ...props,
285
+ icon: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.ArrowSortUpRegular, {})
286
+ }
287
+ );
288
+ }
289
+ function RemoveButton(props) {
290
+ const {
291
+ registry: { translateString }
292
+ } = props;
293
+ return /* @__PURE__ */ jsxRuntime.jsx(
294
+ FluentIconButton,
295
+ {
296
+ title: translateString(utils.TranslatableString.RemoveButton),
297
+ ...props,
298
+ icon: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.SubtractRegular, {})
299
+ }
300
+ );
301
+ }
302
+ var useStyles5 = reactComponents.makeStyles({
303
+ list: { marginTop: 0, marginBottom: 0, paddingLeft: 0, listStyleType: "none" },
304
+ listItem: {
305
+ paddingLeft: reactComponents.tokens.spacingHorizontalL,
306
+ paddingTop: reactComponents.tokens.spacingVerticalXS,
307
+ paddingBottom: reactComponents.tokens.spacingVerticalXS
308
+ },
309
+ errorLabel: { color: reactComponents.tokens.colorPaletteRedForeground1 }
310
+ });
311
+ function FieldErrorTemplate(props) {
312
+ const { errors = [], idSchema } = props;
313
+ const classes = useStyles5();
314
+ if (errors.length === 0) {
315
+ return null;
316
+ }
317
+ const id = utils.errorId(idSchema);
318
+ return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: classes.list, children: errors.map((error, i) => {
319
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { className: classes.listItem, children: /* @__PURE__ */ jsxRuntime.jsx("small", { className: classes.errorLabel, id, children: error }) }, i);
320
+ }) });
321
+ }
322
+ function FieldHelpTemplate(props) {
323
+ const { idSchema, help } = props;
324
+ if (!help) {
325
+ return null;
326
+ }
327
+ const id = utils.helpId(idSchema);
328
+ return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { id, children: help });
329
+ }
330
+ function FieldTemplate(props) {
331
+ const {
332
+ id,
333
+ children,
334
+ classNames,
335
+ style,
336
+ disabled,
337
+ displayLabel,
338
+ hidden,
339
+ label,
340
+ onDropPropertyClick,
341
+ onKeyChange,
342
+ readonly,
343
+ required,
344
+ rawErrors = [],
345
+ errors,
346
+ help,
347
+ description,
348
+ rawDescription,
349
+ schema,
350
+ uiSchema,
351
+ registry
352
+ } = props;
353
+ const uiOptions = utils.getUiOptions(uiSchema);
354
+ const WrapIfAdditionalTemplate2 = utils.getTemplate(
355
+ "WrapIfAdditionalTemplate",
356
+ registry,
357
+ uiOptions
358
+ );
359
+ if (hidden) {
360
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "none" }, children });
361
+ }
362
+ return /* @__PURE__ */ jsxRuntime.jsx(
363
+ WrapIfAdditionalTemplate2,
364
+ {
365
+ classNames,
366
+ style,
367
+ disabled,
368
+ id,
369
+ label,
370
+ onDropPropertyClick,
371
+ onKeyChange,
372
+ readonly,
373
+ required,
374
+ schema,
375
+ uiSchema,
376
+ registry,
377
+ children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Field, { validationState: rawErrors.length ? "error" : void 0, required, children: [
378
+ children,
379
+ displayLabel && rawDescription ? /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Text, { as: "p", block: true, style: { marginTop: 0, marginBottom: 0 }, children: description }) : null,
380
+ errors,
381
+ help
382
+ ] })
383
+ }
384
+ );
385
+ }
386
+ function ObjectFieldTemplate(props) {
387
+ const {
388
+ description,
389
+ title,
390
+ properties,
391
+ required,
392
+ disabled,
393
+ readonly,
394
+ uiSchema,
395
+ idSchema,
396
+ schema,
397
+ formData,
398
+ onAddClick,
399
+ registry
400
+ } = props;
401
+ const uiOptions = utils.getUiOptions(uiSchema);
402
+ const TitleFieldTemplate = utils.getTemplate("TitleFieldTemplate", registry, uiOptions);
403
+ const DescriptionFieldTemplate = utils.getTemplate(
404
+ "DescriptionFieldTemplate",
405
+ registry,
406
+ uiOptions
407
+ );
408
+ const {
409
+ ButtonTemplates: { AddButton: AddButton2 }
410
+ } = registry.templates;
411
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
412
+ title && /* @__PURE__ */ jsxRuntime.jsx(
413
+ TitleFieldTemplate,
414
+ {
415
+ id: utils.titleId(idSchema),
416
+ title,
417
+ required,
418
+ schema,
419
+ uiSchema,
420
+ registry
421
+ }
422
+ ),
423
+ description && /* @__PURE__ */ jsxRuntime.jsx(
424
+ DescriptionFieldTemplate,
425
+ {
426
+ id: utils.descriptionId(idSchema),
427
+ description,
428
+ schema,
429
+ uiSchema,
430
+ registry
431
+ }
432
+ ),
433
+ /* @__PURE__ */ jsxRuntime.jsxs(reactMigrationV0V9.Flex, { fill: true, column: true, gap: "gap.medium", children: [
434
+ properties.map(
435
+ (element, index) => (
436
+ // Remove the <Grid> if the inner element is hidden as the <Grid>
437
+ // itself would otherwise still take up space.
438
+ element.hidden ? element.content : /* @__PURE__ */ jsxRuntime.jsx(reactMigrationV0V9.Flex, { column: true, fill: true, style: { marginBottom: "10px" }, children: element.content }, index)
439
+ )
440
+ ),
441
+ utils.canExpand(schema, uiSchema, formData) && /* @__PURE__ */ jsxRuntime.jsx(reactMigrationV0V9.Flex, { hAlign: "end", children: /* @__PURE__ */ jsxRuntime.jsx(
442
+ AddButton2,
443
+ {
444
+ className: "object-property-expand",
445
+ onClick: onAddClick(schema),
446
+ disabled: disabled || readonly,
447
+ uiSchema,
448
+ registry
449
+ }
450
+ ) })
451
+ ] })
452
+ ] });
453
+ }
454
+ var useStyles6 = reactComponents.makeStyles({
455
+ buttonRow: {
456
+ marginTop: reactComponents.tokens.spacingVerticalL
457
+ }
458
+ });
459
+ function SubmitButton({ uiSchema }) {
460
+ const classes = useStyles6();
461
+ const { submitText, norender, props: submitButtonProps } = utils.getSubmitButtonOptions(uiSchema);
462
+ if (norender) {
463
+ return null;
464
+ }
465
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.buttonRow, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Button, { appearance: "primary", type: "submit", ...submitButtonProps, children: submitText }) });
466
+ }
467
+ var useStyles7 = reactComponents.makeStyles({
468
+ root: {
469
+ marginTop: "8px",
470
+ marginBottom: "8px"
471
+ }
472
+ });
473
+ function TitleField({
474
+ id,
475
+ title
476
+ }) {
477
+ const classes = useStyles7();
478
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { id, className: classes.root, children: [
479
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Text, { as: "h5", size: 600, children: title }),
480
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {})
481
+ ] });
482
+ }
483
+ var useStyles8 = reactComponents.makeStyles({
484
+ input: {
485
+ width: "100%"
486
+ },
487
+ label: {
488
+ marginBottom: "4px"
489
+ }
490
+ });
491
+ function WrapIfAdditionalTemplate(props) {
492
+ const {
493
+ children,
494
+ classNames,
495
+ style,
496
+ disabled,
497
+ id,
498
+ label,
499
+ onDropPropertyClick,
500
+ onKeyChange,
501
+ readonly,
502
+ required,
503
+ schema,
504
+ uiSchema,
505
+ registry
506
+ } = props;
507
+ const { templates, translateString } = registry;
508
+ const classes = useStyles8();
509
+ const { RemoveButton: RemoveButton2 } = templates.ButtonTemplates;
510
+ const keyLabel = translateString(utils.TranslatableString.KeyLabel, [label]);
511
+ const additional = utils.ADDITIONAL_PROPERTY_FLAG in schema;
512
+ const btnStyle = {
513
+ flex: 1,
514
+ paddingLeft: 6,
515
+ paddingRight: 6,
516
+ fontWeight: "bold"
517
+ };
518
+ if (!additional) {
519
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classNames, style, children });
520
+ }
521
+ const handleBlur = ({ target }) => onKeyChange(target.value);
522
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactMigrationV0V9.Flex, { gap: "gap.medium", vAlign: "center", className: classNames, style, children: [
523
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Field, { label: keyLabel, required, children: /* @__PURE__ */ jsxRuntime.jsx(
524
+ reactComponents.Input,
525
+ {
526
+ required,
527
+ defaultValue: label,
528
+ disabled: disabled || readonly,
529
+ id: `${id}-key`,
530
+ name: `${id}-key`,
531
+ onBlur: !readonly ? handleBlur : void 0,
532
+ type: "text",
533
+ input: {
534
+ className: classes.input
535
+ }
536
+ }
537
+ ) }) }),
538
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children }),
539
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
540
+ RemoveButton2,
541
+ {
542
+ iconType: "default",
543
+ style: btnStyle,
544
+ disabled: disabled || readonly,
545
+ onClick: onDropPropertyClick(label),
546
+ uiSchema,
547
+ registry
548
+ }
549
+ ) })
550
+ ] }, `${id}-key`);
551
+ }
552
+
553
+ // src/Templates/Templates.ts
554
+ function generateTemplates() {
555
+ return {
556
+ ArrayFieldItemTemplate,
557
+ ArrayFieldTemplate,
558
+ BaseInputTemplate,
559
+ ButtonTemplates: {
560
+ CopyButton,
561
+ AddButton,
562
+ MoveDownButton,
563
+ MoveUpButton,
564
+ RemoveButton,
565
+ SubmitButton
566
+ },
567
+ DescriptionFieldTemplate: DescriptionField,
568
+ ErrorListTemplate: ErrorList,
569
+ FieldErrorTemplate,
570
+ FieldHelpTemplate,
571
+ FieldTemplate,
572
+ ObjectFieldTemplate,
573
+ TitleFieldTemplate: TitleField,
574
+ WrapIfAdditionalTemplate
575
+ };
576
+ }
577
+ var Templates_default = generateTemplates();
578
+ function CheckboxWidget(props) {
579
+ const {
580
+ schema,
581
+ id,
582
+ value,
583
+ disabled,
584
+ readonly,
585
+ label = "",
586
+ hideLabel,
587
+ autofocus,
588
+ onChange,
589
+ onBlur,
590
+ onFocus,
591
+ registry,
592
+ options,
593
+ uiSchema
594
+ } = props;
595
+ const DescriptionFieldTemplate = utils.getTemplate(
596
+ "DescriptionFieldTemplate",
597
+ registry,
598
+ options
599
+ );
600
+ const required = utils.schemaRequiresTrueValue(schema);
601
+ const _onChange = ({ target: { checked } }) => onChange(checked);
602
+ const _onBlur = ({ target: { value: value2 } }) => onBlur(id, value2);
603
+ const _onFocus = ({ target: { value: value2 } }) => onFocus(id, value2);
604
+ const description = options.description ?? schema.description;
605
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
606
+ !hideLabel && !!description && /* @__PURE__ */ jsxRuntime.jsx(
607
+ DescriptionFieldTemplate,
608
+ {
609
+ id: utils.descriptionId(id),
610
+ description,
611
+ schema,
612
+ uiSchema,
613
+ registry
614
+ }
615
+ ),
616
+ /* @__PURE__ */ jsxRuntime.jsx(
617
+ reactComponents.Checkbox,
618
+ {
619
+ id,
620
+ name: id,
621
+ label,
622
+ checked: typeof value === "undefined" ? false : Boolean(value),
623
+ required,
624
+ disabled: disabled || readonly,
625
+ autoFocus: autofocus,
626
+ onChange: _onChange,
627
+ onBlur: _onBlur,
628
+ onFocus: _onFocus,
629
+ "aria-describedby": utils.ariaDescribedByIds(id)
630
+ }
631
+ )
632
+ ] });
633
+ }
634
+ function CheckboxesWidget({
635
+ label,
636
+ hideLabel,
637
+ id,
638
+ disabled,
639
+ options,
640
+ value,
641
+ autofocus,
642
+ readonly,
643
+ required,
644
+ onChange,
645
+ onBlur,
646
+ onFocus
647
+ }) {
648
+ const { enumOptions, enumDisabled, inline, emptyValue } = options;
649
+ const checkboxesValues = Array.isArray(value) ? value : [value];
650
+ const _onChange = (index) => ({ target: { checked } }) => {
651
+ if (checked) {
652
+ onChange(utils.enumOptionsSelectValue(index, checkboxesValues, enumOptions));
653
+ } else {
654
+ onChange(utils.enumOptionsDeselectValue(index, checkboxesValues, enumOptions));
655
+ }
656
+ };
657
+ const _onBlur = ({ target: { value: value2 } }) => onBlur(id, utils.enumOptionsValueForIndex(value2, enumOptions, emptyValue));
658
+ const _onFocus = ({ target: { value: value2 } }) => onFocus(id, utils.enumOptionsValueForIndex(value2, enumOptions, emptyValue));
659
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
660
+ utils.labelValue(
661
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Label, { required, htmlFor: id, children: label || void 0 }),
662
+ hideLabel
663
+ ),
664
+ /* @__PURE__ */ jsxRuntime.jsx(reactMigrationV0V9.Flex, { column: !inline, children: Array.isArray(enumOptions) && enumOptions.map((option, index) => {
665
+ const checked = utils.enumOptionsIsSelected(option.value, checkboxesValues);
666
+ const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
667
+ return /* @__PURE__ */ jsxRuntime.jsx(
668
+ reactComponents.Checkbox,
669
+ {
670
+ id: utils.optionId(id, index),
671
+ name: id,
672
+ label: option.label,
673
+ checked,
674
+ disabled: disabled || itemDisabled || readonly,
675
+ autoFocus: autofocus && index === 0,
676
+ onChange: _onChange(index),
677
+ onBlur: _onBlur,
678
+ onFocus: _onFocus,
679
+ "aria-describedby": utils.ariaDescribedByIds(id)
680
+ },
681
+ index
682
+ );
683
+ }) })
684
+ ] });
685
+ }
686
+ function RadioWidget({
687
+ id,
688
+ options,
689
+ value,
690
+ required,
691
+ disabled,
692
+ readonly,
693
+ label,
694
+ hideLabel,
695
+ onChange,
696
+ onBlur,
697
+ onFocus
698
+ }) {
699
+ const { enumOptions, enumDisabled, emptyValue } = options;
700
+ const _onChange = (_, data) => onChange(utils.enumOptionsValueForIndex(data.value, enumOptions, emptyValue));
701
+ const _onBlur = ({ target: { value: value2 } }) => onBlur(id, utils.enumOptionsValueForIndex(value2, enumOptions, emptyValue));
702
+ const _onFocus = ({ target: { value: value2 } }) => onFocus(id, utils.enumOptionsValueForIndex(value2, enumOptions, emptyValue));
703
+ const selectedIndex = utils.enumOptionsIndexForValue(value, enumOptions) ?? void 0;
704
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
705
+ utils.labelValue(
706
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Label, { required, htmlFor: id, children: label || void 0 }),
707
+ hideLabel
708
+ ),
709
+ /* @__PURE__ */ jsxRuntime.jsx(
710
+ reactComponents.RadioGroup,
711
+ {
712
+ id,
713
+ name: id,
714
+ value: selectedIndex,
715
+ onChange: _onChange,
716
+ onBlur: _onBlur,
717
+ onFocus: _onFocus,
718
+ "aria-describedby": utils.ariaDescribedByIds(id),
719
+ children: Array.isArray(enumOptions) && enumOptions.map((option, index) => {
720
+ const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
721
+ return /* @__PURE__ */ jsxRuntime.jsx(
722
+ reactComponents.Radio,
723
+ {
724
+ id: utils.optionId(id, index),
725
+ label: option.label,
726
+ value: String(index),
727
+ disabled: disabled || itemDisabled || readonly
728
+ },
729
+ index
730
+ );
731
+ })
732
+ }
733
+ )
734
+ ] });
735
+ }
736
+ function RangeWidget(props) {
737
+ const { value, readonly, disabled, onBlur, onFocus, options, schema, onChange, required, label, hideLabel, id } = props;
738
+ const sliderProps = { value, label, id, name: id, ...utils.rangeSpec(schema) };
739
+ const _onChange = (_, data) => {
740
+ onChange(data.value ?? options.emptyValue);
741
+ };
742
+ const _onBlur = ({ target: { value: value2 } }) => onBlur(id, value2);
743
+ const _onFocus = ({ target: { value: value2 } }) => onFocus(id, value2);
744
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
745
+ utils.labelValue(
746
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Label, { required, htmlFor: id, children: label || void 0 }),
747
+ hideLabel
748
+ ),
749
+ /* @__PURE__ */ jsxRuntime.jsx(
750
+ reactComponents.Slider,
751
+ {
752
+ disabled: disabled || readonly,
753
+ onChange: _onChange,
754
+ onBlur: _onBlur,
755
+ onFocus: _onFocus,
756
+ ...sliderProps,
757
+ "aria-describedby": utils.ariaDescribedByIds(id)
758
+ }
759
+ )
760
+ ] });
761
+ }
762
+ function getValue(data, multiple) {
763
+ if (multiple) {
764
+ return data.selectedOptions;
765
+ }
766
+ return data.selectedOptions[0];
767
+ }
768
+ function SelectWidget({
769
+ id,
770
+ options,
771
+ label,
772
+ hideLabel,
773
+ value,
774
+ required,
775
+ disabled,
776
+ readonly,
777
+ multiple = false,
778
+ autofocus = false,
779
+ rawErrors = [],
780
+ onChange,
781
+ onBlur,
782
+ onFocus
783
+ }) {
784
+ const { enumOptions, enumDisabled, emptyValue: optEmptyVal } = options;
785
+ const selectedIndexes = utils.enumOptionsIndexForValue(value, enumOptions, multiple);
786
+ let selectedIndexesAsArray = [];
787
+ if (typeof selectedIndexes === "string") {
788
+ selectedIndexesAsArray = [selectedIndexes];
789
+ } else if (Array.isArray(selectedIndexes)) {
790
+ selectedIndexesAsArray = selectedIndexes.map((index) => String(index));
791
+ }
792
+ const dropdownValue = selectedIndexesAsArray.map((index) => enumOptions ? enumOptions[Number(index)].label : void 0).join(", ");
793
+ const _onBlur = () => onBlur(id, selectedIndexes);
794
+ const _onFocus = () => onFocus(id, selectedIndexes);
795
+ const _onChange = (_, data) => {
796
+ const newValue = getValue(data, multiple);
797
+ return onChange(utils.enumOptionsValueForIndex(newValue, enumOptions, optEmptyVal));
798
+ };
799
+ return /* @__PURE__ */ jsxRuntime.jsx(
800
+ reactComponents.Field,
801
+ {
802
+ label: utils.labelValue(label, hideLabel),
803
+ validationState: rawErrors.length ? "error" : void 0,
804
+ required,
805
+ children: /* @__PURE__ */ jsxRuntime.jsx(
806
+ reactComponents.Dropdown,
807
+ {
808
+ id,
809
+ name: id,
810
+ multiselect: multiple,
811
+ className: "form-control",
812
+ value: dropdownValue,
813
+ disabled: disabled || readonly,
814
+ autoFocus: autofocus,
815
+ onBlur: _onBlur,
816
+ onFocus: _onFocus,
817
+ onOptionSelect: _onChange,
818
+ selectedOptions: selectedIndexesAsArray,
819
+ "aria-describedby": utils.ariaDescribedByIds(id),
820
+ children: Array.isArray(enumOptions) && enumOptions.map(({ value: value2, label: label2 }, i) => {
821
+ const disabled2 = enumDisabled && enumDisabled.indexOf(value2) !== -1;
822
+ return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Option, { value: String(i), disabled: disabled2, children: label2 }, i);
823
+ })
824
+ }
825
+ )
826
+ }
827
+ );
828
+ }
829
+ var SelectWidget_default = SelectWidget;
830
+ var useStyles9 = reactComponents.makeStyles({
831
+ label: {
832
+ paddingTop: "2px",
833
+ paddingBottom: "2px",
834
+ marginBottom: "2px"
835
+ }
836
+ });
837
+ function TextareaWidget(props) {
838
+ const {
839
+ id,
840
+ placeholder,
841
+ required,
842
+ readonly,
843
+ disabled,
844
+ value,
845
+ label,
846
+ hideLabel,
847
+ onChange,
848
+ onChangeOverride,
849
+ onBlur,
850
+ onFocus,
851
+ autofocus,
852
+ options,
853
+ schema
854
+ } = props;
855
+ const classes = useStyles9();
856
+ const _onChange = ({ target: { value: value2 } }) => onChange(value2 === "" ? options.emptyValue : value2);
857
+ const _onBlur = ({ target: { value: value2 } }) => onBlur(id, value2);
858
+ const _onFocus = ({ target: { value: value2 } }) => onFocus(id, value2);
859
+ let rows = 5;
860
+ if (typeof options.rows === "string" || typeof options.rows === "number") {
861
+ rows = options.rows;
862
+ }
863
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
864
+ utils.labelValue(
865
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Label, { htmlFor: id, required, disabled, className: classes.label, children: label }),
866
+ hideLabel
867
+ ),
868
+ /* @__PURE__ */ jsxRuntime.jsx(
869
+ reactComponents.Textarea,
870
+ {
871
+ id,
872
+ name: id,
873
+ placeholder,
874
+ autoFocus: autofocus,
875
+ required,
876
+ disabled: disabled || readonly,
877
+ value: value || value === 0 ? value : "",
878
+ onChange: onChangeOverride || _onChange,
879
+ onFocus: _onFocus,
880
+ onBlur: _onBlur,
881
+ "aria-describedby": utils.ariaDescribedByIds(id, !!schema.examples),
882
+ rows
883
+ }
884
+ )
885
+ ] });
886
+ }
887
+
888
+ // src/Widgets/Widgets.ts
889
+ function generateWidgets() {
890
+ return {
891
+ CheckboxWidget,
892
+ CheckboxesWidget,
893
+ RadioWidget,
894
+ RangeWidget,
895
+ SelectWidget: SelectWidget_default,
896
+ TextareaWidget
897
+ };
898
+ }
899
+ var Widgets_default = generateWidgets();
900
+
901
+ // src/Theme/Theme.ts
902
+ function generateTheme() {
903
+ return {
904
+ templates: generateTemplates(),
905
+ widgets: generateWidgets()
906
+ };
907
+ }
908
+ var Theme_default = generateTheme();
909
+
910
+ // src/FluentForm/FluentForm.ts
911
+ function generateForm() {
912
+ return core.withTheme(generateTheme());
913
+ }
914
+ var FluentForm_default = generateForm();
915
+ var FluentWrapper = (props) => {
916
+ const { children, targetDocument } = props;
917
+ const renderer = react.useMemo(() => reactComponents.createDOMRenderer(targetDocument), [targetDocument]);
918
+ return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.RendererProvider, { renderer, targetDocument, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.FluentProvider, { targetDocument, theme: reactComponents.teamsLightTheme, children }) });
919
+ };
920
+ var __createFluentUIRCFrameProvider = (props) => ({ document }) => {
921
+ return /* @__PURE__ */ jsxRuntime.jsx(FluentWrapper, { targetDocument: document, children: props.children });
922
+ };
923
+
924
+ // src/index.ts
925
+ var src_default = FluentForm_default;
926
+
927
+ exports.Form = FluentForm_default;
928
+ exports.Templates = Templates_default;
929
+ exports.Theme = Theme_default;
930
+ exports.Widgets = Widgets_default;
931
+ exports.__createFluentUIRCFrameProvider = __createFluentUIRCFrameProvider;
932
+ exports.default = src_default;
933
+ exports.generateForm = generateForm;
934
+ exports.generateTemplates = generateTemplates;
935
+ exports.generateTheme = generateTheme;
936
+ exports.generateWidgets = generateWidgets;
937
+
938
+ Object.defineProperty(exports, '__esModule', { value: true });
939
+
940
+ }));