@react-typed-forms/schemas-html 2.4.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import React, { createElement, useState, useMemo, Fragment, useEffect, useRef } from 'react';
2
1
  import clsx from 'clsx';
3
- import { DisplayDataType, rendererClass, coerceToString, getOverrideClass, FieldType, createDataRenderer, fieldOptionAdornment, DataRenderType, createLayoutRenderer, renderLayoutParts, createGroupRenderer, GroupRenderType, isTabsRenderer, isSelectChildRenderer, isGridRenderer, isFlexRenderer, createVisibilityRenderer, getJsonPath, useJsonataExpression, getRootDataNode, getLastDefinedValue, getNullToggler, mergeObjects, isArrayRenderer, isCompoundField, nodeForControl, ControlDefinitionType, makeHookDepString, createArrayActions, getLengthRestrictions, lookupDataNode, applyArrayLengthRestrictions, buildSchema, stringField, schemaDataForFieldRef, schemaForFieldRef, rootSchemaNode, addMissingControlsForSchema, useControlRendererComponent, groupedControl, makeSchemaDataNode, createAdornmentRenderer, getIsEditing, appendMarkupAt, AdornmentPlacement, wrapMarkup, getAllValues, ControlAdornmentType, getExternalEditData, visitFormDataInContext, validationVisitor, createActionRenderer, isDataGroupRenderer, isDisplayOnlyRenderer, hasOptions, isTextfieldRenderer, isOptionalAdornment, isSetFieldAdornment, useDynamicHooks, wrapLayout, isIconAdornment, isAccordionAdornment, LabelType } from '@react-typed-forms/schemas';
2
+ import { DisplayDataType, rendererClass, coerceToString, getOverrideClass, FieldType, createDataRenderer, fieldOptionAdornment, DataRenderType, createLayoutRenderer, renderLayoutParts, createGroupRenderer, GroupRenderType, isTabsRenderer, isSelectChildRenderer, isGridRenderer, isFlexRenderer, createVisibilityRenderer, getJsonPath, useJsonataExpression, getRootDataNode, getLastDefinedValue, getNullToggler, mergeObjects, isArrayRenderer, isCompoundField, ControlDefinitionType, makeHookDepString, createArrayActions, getLengthRestrictions, lookupDataNode, applyArrayLengthRestrictions, buildSchema, stringField, schemaDataForFieldRef, schemaForFieldRef, rootSchemaNode, addMissingControlsForSchema, useControlRendererComponent, groupedControl, makeSchemaDataNode, createAdornmentRenderer, getIsEditing, appendMarkupAt, AdornmentPlacement, wrapMarkup, getAllValues, ControlAdornmentType, getExternalEditData, visitFormDataInContext, validationVisitor, createActionRenderer, isDataGroupRenderer, isDisplayOnlyRenderer, hasOptions, isTextfieldRenderer, isOptionalAdornment, isSetFieldAdornment, useDynamicHooks, wrapLayout, isIconAdornment, isAccordionAdornment, LabelType } from '@react-typed-forms/schemas';
3
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import { useComponentTracking, formControlProps, useControl, useControlEffect, RenderArrayElements, useComputed, useTrackedComponent, RenderElements, controlValues, removeElement, setFields, newControl, Fcheckbox as Fcheckbox$1 } from '@react-typed-forms/core';
5
- import { jsx } from 'react/jsx-runtime';
5
+ import { useState, useMemo, useEffect, createElement, useRef } from 'react';
6
6
  import { useAutocomplete } from '@mui/base';
7
7
  import { Modal, Dialog } from '@astroapps/aria-base';
8
8
  import { useOverlayTriggerState } from '@react-stately/overlays';
@@ -32,7 +32,7 @@ function _objectWithoutPropertiesLoose(r, e) {
32
32
  const _excluded$4 = ["data", "display", "className", "style", "renderer"];
33
33
  function createDefaultDisplayRenderer(options = {}) {
34
34
  return {
35
- render: (props, renderer) => createElement(DefaultDisplay, _extends({}, options, props, {
35
+ render: (props, renderer) => /*#__PURE__*/jsx(DefaultDisplay, _extends({}, options, props, {
36
36
  renderer: renderer
37
37
  })),
38
38
  type: "display"
@@ -49,20 +49,29 @@ function DefaultDisplay(_ref) {
49
49
  renderer
50
50
  } = _ref,
51
51
  options = _objectWithoutPropertiesLoose(_ref, _excluded$4);
52
- const h = renderer.h;
52
+ const {
53
+ I,
54
+ Div,
55
+ Span,
56
+ B,
57
+ H1
58
+ } = renderer.html;
53
59
  switch (data.type) {
54
60
  case DisplayDataType.Icon:
55
- return h("i", {
61
+ return /*#__PURE__*/jsx(I, {
56
62
  style: style,
57
63
  className: clsx(getOverrideClass(className), display ? display.value : data.iconClass)
58
64
  });
59
65
  case DisplayDataType.Text:
60
- return h("div", {
66
+ return /*#__PURE__*/jsx(Div, {
61
67
  style: style,
62
- className: rendererClass(className, options.textClassName)
63
- }, display ? coerceToString(display.value) : data.text);
68
+ className: rendererClass(className, options.textClassName),
69
+ children: /*#__PURE__*/jsx(Span, {
70
+ children: display ? coerceToString(display.value) : data.text
71
+ })
72
+ });
64
73
  case DisplayDataType.Html:
65
- return h("div", {
74
+ return /*#__PURE__*/jsx(Div, {
66
75
  style: style,
67
76
  className: rendererClass(className, options.htmlClassName),
68
77
  dangerouslySetInnerHTML: {
@@ -70,9 +79,15 @@ function DefaultDisplay(_ref) {
70
79
  }
71
80
  });
72
81
  case DisplayDataType.Custom:
73
- return h("div", null, h("b", null, "(", data.customId, ")"));
82
+ return /*#__PURE__*/jsx(Div, {
83
+ children: /*#__PURE__*/jsxs(B, {
84
+ children: ["(", data.customId, ")"]
85
+ })
86
+ });
74
87
  default:
75
- return h("h1", null, "Unknown display type: ", data.type);
88
+ return /*#__PURE__*/jsxs(H1, {
89
+ children: ["Unknown display type: ", data.type]
90
+ });
76
91
  }
77
92
  } finally {
78
93
  _effect();
@@ -97,9 +112,10 @@ function ControlInput(_ref) {
97
112
  inputProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded2$1);
98
113
  const textValue = useControl(() => toText(value));
99
114
  useControlEffect(() => control.value, v => textValue.value = toText(v));
100
- // noinspection JSUnusedLocalSymbols
101
- const h = renderer.h;
102
- return h("input", _extends({}, inputProps, {
115
+ const {
116
+ Input
117
+ } = renderer.html;
118
+ return /*#__PURE__*/jsx(Input, _extends({}, inputProps, {
103
119
  type: convert[0],
104
120
  value: textValue.value,
105
121
  onChange: e => {
@@ -148,7 +164,7 @@ const _excluded$2 = ["state", "options", "className", "convert", "required", "em
148
164
  function createSelectRenderer(options = {}) {
149
165
  return createDataRenderer((props, asArray) => {
150
166
  var _props$options;
151
- return createElement(SelectDataRenderer, {
167
+ return /*#__PURE__*/jsx(SelectDataRenderer, {
152
168
  className: rendererClass(props.className, options.className),
153
169
  state: props.control,
154
170
  id: props.id,
@@ -184,23 +200,25 @@ function SelectDataRenderer(_ref) {
184
200
  const [showEmpty] = useState(!required || value == null);
185
201
  const optionStringMap = useMemo(() => Object.fromEntries(options.map(x => [convert(x.value), x.value])), [options]);
186
202
  const optionGroups = useMemo(() => new Set(options.filter(x => x.group).map(x => x.group)), [options]);
187
- return createElement("select", _extends({}, props, {
203
+ return /*#__PURE__*/jsxs("select", _extends({}, props, {
188
204
  className: className,
189
205
  onChange: v => state.value = optionStringMap[v.target.value],
190
206
  value: convert(value),
191
- disabled: disabled || readonly
192
- }), showEmpty && createElement("option", {
193
- value: ""
194
- }, required ? requiredText : emptyText), [...optionGroups.keys()].map(x => createElement("optgroup", {
195
- key: x,
196
- label: x
197
- }, options.filter(o => o.group === x).map(renderOption))), options.filter(x => !x.group).map(renderOption));
207
+ disabled: disabled || readonly,
208
+ children: [showEmpty && /*#__PURE__*/jsx("option", {
209
+ value: "",
210
+ children: required ? requiredText : emptyText
211
+ }), [...optionGroups.keys()].map(x => /*#__PURE__*/jsx("optgroup", {
212
+ label: x,
213
+ children: options.filter(o => o.group === x).map(renderOption)
214
+ }, x)), options.filter(x => !x.group).map(renderOption)]
215
+ }));
198
216
  function renderOption(x, i) {
199
- return createElement("option", {
200
- key: i,
217
+ return /*#__PURE__*/jsx("option", {
201
218
  value: convert(x.value),
202
- disabled: !!x.disabled
203
- }, x.name);
219
+ disabled: !!x.disabled,
220
+ children: x.name
221
+ }, i);
204
222
  }
205
223
  } finally {
206
224
  _effect();
@@ -223,7 +241,7 @@ function createSelectConversion(ft) {
223
241
  const _excluded$1 = ["control", "type", "notValue", "renderer"],
224
242
  _excluded2 = ["value", "onChange", "errorText"];
225
243
  function createRadioRenderer(options = {}) {
226
- return createDataRenderer((p, renderer) => createElement(CheckButtons, _extends({
244
+ return createDataRenderer((p, renderer) => /*#__PURE__*/jsx(CheckButtons, _extends({
227
245
  classes: options,
228
246
  controlClasses: p.renderOptions
229
247
  }, p, {
@@ -239,7 +257,7 @@ function createRadioRenderer(options = {}) {
239
257
  });
240
258
  }
241
259
  function createCheckListRenderer(options = {}) {
242
- return createDataRenderer((p, renderer) => createElement(CheckButtons, _extends({
260
+ return createDataRenderer((p, renderer) => /*#__PURE__*/jsx(CheckButtons, _extends({
243
261
  classes: options,
244
262
  controlClasses: p.renderOptions
245
263
  }, p, {
@@ -276,40 +294,50 @@ function CheckButtons({
276
294
  }) {
277
295
  var _effect = useComponentTracking();
278
296
  try {
279
- const h = renderer.h;
297
+ const {
298
+ Button,
299
+ Input,
300
+ Label,
301
+ Div
302
+ } = renderer.html;
280
303
  const {
281
304
  disabled
282
305
  } = control;
283
306
  const name = "r" + control.uniqueId;
284
- return h("div", {
307
+ return /*#__PURE__*/jsx(Div, {
285
308
  className: className,
286
- id: id
287
- }, h(RenderArrayElements, {
288
- array: options == null ? void 0 : options.filter(x => x.value != null)
289
- }, (o, i) => {
290
- const checked = useComputed(() => isChecked(control, o)).value;
291
- const selOrUnsel = checked ? rendererClass(controlClasses == null ? void 0 : controlClasses.selectedClass, classes.selectedClass) : rendererClass(controlClasses == null ? void 0 : controlClasses.notSelectedClass, classes.notSelectedClass);
292
- return h("div", {
293
- className: clsx(rendererClass(controlClasses == null ? void 0 : controlClasses.entryWrapperClass, classes.entryWrapperClass), selOrUnsel),
294
- onClick: () => !readonly && setChecked(control, o, !checked)
295
- }, h("div", {
296
- className: classes.entryClass
297
- }, h("input", {
298
- id: name + "_" + i,
299
- className: classes.checkClass,
300
- type: type,
301
- name: name,
302
- readOnly: readonly,
303
- disabled: disabled,
304
- checked: checked,
305
- onChange: x => {
306
- !readonly && setChecked(control, o, x.target.checked);
309
+ id: id,
310
+ children: /*#__PURE__*/jsx(RenderArrayElements, {
311
+ array: options == null ? void 0 : options.filter(x => x.value != null),
312
+ children: (o, i) => {
313
+ const checked = useComputed(() => isChecked(control, o)).value;
314
+ const selOrUnsel = checked ? rendererClass(controlClasses == null ? void 0 : controlClasses.selectedClass, classes.selectedClass) : rendererClass(controlClasses == null ? void 0 : controlClasses.notSelectedClass, classes.notSelectedClass);
315
+ return /*#__PURE__*/jsxs(Button, {
316
+ className: clsx(rendererClass(controlClasses == null ? void 0 : controlClasses.entryWrapperClass, classes.entryWrapperClass), selOrUnsel),
317
+ onClick: () => !readonly && setChecked(control, o, !checked),
318
+ children: [/*#__PURE__*/jsxs(Div, {
319
+ className: classes.entryClass,
320
+ children: [/*#__PURE__*/jsx(Input, {
321
+ id: name + "_" + i,
322
+ className: classes.checkClass,
323
+ type: type,
324
+ name: name,
325
+ readOnly: readonly,
326
+ disabled: disabled,
327
+ checked: checked,
328
+ onChange: x => {
329
+ !readonly && setChecked(control, o, x.target.checked);
330
+ }
331
+ }), /*#__PURE__*/jsx(Label, {
332
+ className: classes.labelClass,
333
+ htmlFor: name + "_" + i,
334
+ children: o.name
335
+ })]
336
+ }), entryAdornment == null ? void 0 : entryAdornment(o, i, checked)]
337
+ });
307
338
  }
308
- }), h("label", {
309
- className: classes.labelClass,
310
- htmlFor: name + "_" + i
311
- }, o.name)), entryAdornment == null ? void 0 : entryAdornment(o, i, checked));
312
- }));
339
+ })
340
+ });
313
341
  } finally {
314
342
  _effect();
315
343
  }
@@ -327,7 +355,7 @@ function setIncluded(array, elem, included) {
327
355
  function createCheckboxRenderer(options = {}) {
328
356
  return createDataRenderer((props, renderer) => p => _extends({}, p, {
329
357
  label: undefined,
330
- children: createElement(CheckBox, {
358
+ children: /*#__PURE__*/jsx(CheckBox, {
331
359
  p: p,
332
360
  renderer: renderer,
333
361
  options: options,
@@ -345,16 +373,19 @@ function CheckBox({
345
373
  }) {
346
374
  var _effect2 = useComponentTracking();
347
375
  try {
348
- const h = renderer.h;
349
- return h("div", {
350
- className: rendererClass(props.className, options.entryClass)
351
- }, h(Fcheckbox, {
352
- id: props.id,
353
- control: props.control.as(),
354
- style: props.style,
355
- className: options.checkClass,
356
- renderer: renderer
357
- }), p.label && renderer.renderLabel(p.label, undefined, undefined));
376
+ const {
377
+ Div
378
+ } = renderer.html;
379
+ return /*#__PURE__*/jsxs(Div, {
380
+ className: rendererClass(props.className, options.entryClass),
381
+ children: [/*#__PURE__*/jsx(Fcheckbox, {
382
+ id: props.id,
383
+ control: props.control.as(),
384
+ style: props.style,
385
+ className: options.checkClass,
386
+ renderer: renderer
387
+ }), p.label && renderer.renderLabel(p.label, undefined, undefined)]
388
+ });
358
389
  } finally {
359
390
  _effect2();
360
391
  }
@@ -369,24 +400,21 @@ function Fcheckbox(_ref) {
369
400
  renderer
370
401
  } = _ref,
371
402
  others = _objectWithoutPropertiesLoose(_ref, _excluded$1);
372
- const h = renderer.h;
373
- // Update the HTML5 custom validity whenever the error message is changed/cleared
374
- // useControlEffect(
375
- // () => control.error,
376
- // (s) => (control.element as HTMLInputElement)?.setCustomValidity(s ?? ""),
377
- // );
403
+ const {
404
+ Input
405
+ } = renderer.html;
378
406
  const _formControlProps = formControlProps(control),
379
407
  {
380
408
  value
381
409
  } = _formControlProps,
382
410
  theseProps = _objectWithoutPropertiesLoose(_formControlProps, _excluded2);
383
- return h("input", _extends({}, theseProps, {
411
+ return /*#__PURE__*/jsx(Input, _extends({}, theseProps, {
384
412
  checked: !!value !== notValue,
385
- ref: r => {
386
- control.element = r;
387
- // if (r) r.setCustomValidity(control.current.error ?? "");
413
+ ref: r => control.element = r,
414
+ onChange: e => {
415
+ control.touched = true;
416
+ control.value = e.target.checked !== notValue;
388
417
  },
389
- onChange: e => control.value = e.target.checked !== notValue,
390
418
  type: type
391
419
  }, others));
392
420
  } finally {
@@ -398,7 +426,7 @@ function createDefaultLayoutRenderer(options = {}) {
398
426
  return createLayoutRenderer((props, renderers) => {
399
427
  const layout = renderLayoutParts(props, renderers);
400
428
  return {
401
- children: layout.wrapLayout(createElement(DefaultLayout, _extends({
429
+ children: layout.wrapLayout(/*#__PURE__*/jsx(DefaultLayout, _extends({
402
430
  layout: layout
403
431
  }, options, {
404
432
  renderer: renderers
@@ -412,12 +440,18 @@ function createDefaultLayoutRenderer(options = {}) {
412
440
  function DefaultLayout({
413
441
  errorClass,
414
442
  renderer: {
415
- h,
443
+ html: {
444
+ Div,
445
+ Span
446
+ },
416
447
  renderText
417
448
  },
418
- renderError = e => e && h("div", null, h("span", {
419
- className: errorClass
420
- }, renderText(e))),
449
+ renderError = e => e && /*#__PURE__*/jsx(Div, {
450
+ children: /*#__PURE__*/jsx(Span, {
451
+ className: errorClass,
452
+ children: renderText(e)
453
+ })
454
+ }),
421
455
  layout: {
422
456
  controlEnd,
423
457
  controlStart,
@@ -430,7 +464,9 @@ function DefaultLayout({
430
464
  try {
431
465
  const ec = errorControl;
432
466
  const errorText = ec && ec.touched ? ec.error : undefined;
433
- return h(Fragment, null, label, controlStart, children, renderError(errorText), controlEnd);
467
+ return /*#__PURE__*/jsxs(Fragment, {
468
+ children: [label, controlStart, children, renderError(errorText), controlEnd]
469
+ });
434
470
  } finally {
435
471
  _effect();
436
472
  }
@@ -450,12 +486,17 @@ function DefaultDisplayOnly({
450
486
  var _ref;
451
487
  const v = control.value;
452
488
  const text = (_ref = schemaInterface.isEmptyValue(field, v) ? emptyText : schemaInterface.textValue(field, v)) != null ? _ref : "";
453
- // noinspection JSUnusedLocalSymbols
454
- const h = renderer.h;
455
- return h("div", {
489
+ const {
490
+ Div,
491
+ Span
492
+ } = renderer.html;
493
+ return /*#__PURE__*/jsx(Div, {
456
494
  style: style,
457
- className: className
458
- }, text);
495
+ className: className,
496
+ children: /*#__PURE__*/jsx(Span, {
497
+ children: text
498
+ })
499
+ });
459
500
  } finally {
460
501
  _effect();
461
502
  }
@@ -467,7 +508,9 @@ function DefaultAccordion({
467
508
  contentStyle,
468
509
  contentClassName,
469
510
  designMode,
511
+ iconOpenName,
470
512
  iconOpenClass,
513
+ iconClosedName,
471
514
  iconClosedClass,
472
515
  className,
473
516
  renderTitle = t => t,
@@ -480,6 +523,12 @@ function DefaultAccordion({
480
523
  var _effect = useComponentTracking();
481
524
  try {
482
525
  var _dataContext$dataNode;
526
+ const {
527
+ Button,
528
+ I,
529
+ Div,
530
+ Label
531
+ } = renderers.html;
483
532
  const dataControl = ((_dataContext$dataNode = dataContext.dataNode) != null ? _dataContext$dataNode : dataContext.parentNode).control;
484
533
  const open = useControl(!!accordion.defaultExpanded);
485
534
  if (dataControl && !dataControl.meta.accordionState) {
@@ -490,18 +539,24 @@ function DefaultAccordion({
490
539
  display: "none"
491
540
  });
492
541
  const title = renderers.renderLabelText(renderTitle(accordion.title, open));
493
- const toggler = renderToggler ? renderToggler(open, title) : createElement("button", {
542
+ const toggler = renderToggler ? renderToggler(open, title) : /*#__PURE__*/jsxs(Button, {
494
543
  className: className,
495
- onClick: () => open.setValue(x => !x)
496
- }, createElement("label", {
497
- className: titleClass
498
- }, title), createElement("i", {
499
- className: clsx(isOpen ? iconOpenClass : iconClosedClass)
500
- }));
501
- return createElement(Fragment, null, toggler, (useCss || isOpen || designMode) && createElement("div", {
502
- style: fullContentStyle,
503
- className: contentClassName
504
- }, children));
544
+ onClick: () => open.setValue(x => !x),
545
+ children: [/*#__PURE__*/jsx(Label, {
546
+ className: titleClass,
547
+ children: title
548
+ }), /*#__PURE__*/jsx(I, {
549
+ title: isOpen ? iconOpenName : iconClosedName,
550
+ className: clsx(isOpen ? iconOpenClass : iconClosedClass)
551
+ })]
552
+ });
553
+ return /*#__PURE__*/jsxs(Fragment, {
554
+ children: [toggler, (useCss || isOpen || designMode) && /*#__PURE__*/jsx(Div, {
555
+ style: fullContentStyle,
556
+ className: contentClassName,
557
+ children: children
558
+ })]
559
+ });
505
560
  } finally {
506
561
  _effect();
507
562
  }
@@ -511,7 +566,7 @@ function getAccordionState(c) {
511
566
  }
512
567
 
513
568
  function createTabsRenderer(options = {}) {
514
- return createGroupRenderer((p, renderer) => createElement(TabsGroupRenderer, _extends({}, p, {
569
+ return createGroupRenderer((p, renderer) => /*#__PURE__*/jsx(TabsGroupRenderer, _extends({}, p, {
515
570
  tabOptions: p.renderOptions,
516
571
  options: options
517
572
  })), {
@@ -538,22 +593,27 @@ function TabsGroupRenderer({
538
593
  contentClass
539
594
  } = options;
540
595
  const currentTab = tabIndex.value;
541
- return designMode ? createElement(Fragment, null, formNode.getChildNodes().map((x, i) => renderTabs([x], i))) : renderTabs(formNode.getChildNodes(), 0);
596
+ return designMode ? /*#__PURE__*/jsx(Fragment, {
597
+ children: formNode.getChildNodes().map((x, i) => renderTabs([x], i))
598
+ }) : renderTabs(formNode.getChildNodes(), 0);
542
599
  function renderTabs(tabs, key) {
543
- return createElement("div", {
544
- key: key,
545
- className: rendererClass(className, options.className)
546
- }, createElement("ul", {
547
- className: rendererClass(null, tabListClass)
548
- }, tabs.map((x, i) => createElement("li", {
549
- key: i,
550
- className: rendererClass(null, tabClass),
551
- onClick: () => tabIndex.value = i
552
- }, createElement("span", {
553
- className: rendererClass(null, clsx(labelClass, i == currentTab ? activeClass : inactiveClass))
554
- }, x.definition.title ? x.definition.title : "<untitled>")))), createElement("div", {
555
- className: rendererClass(tabOptions.contentClass, contentClass)
556
- }, renderChild(currentTab, tabs[currentTab])));
600
+ return /*#__PURE__*/jsxs("div", {
601
+ className: rendererClass(className, options.className),
602
+ children: [/*#__PURE__*/jsx("ul", {
603
+ className: rendererClass(null, tabListClass),
604
+ children: tabs.map((x, i) => /*#__PURE__*/jsx("li", {
605
+ className: rendererClass(null, tabClass),
606
+ onClick: () => tabIndex.value = i,
607
+ children: /*#__PURE__*/jsx("span", {
608
+ className: rendererClass(null, clsx(labelClass, i == currentTab ? activeClass : inactiveClass)),
609
+ children: x.definition.title ? x.definition.title : "<untitled>"
610
+ })
611
+ }, i))
612
+ }), /*#__PURE__*/jsx("div", {
613
+ className: rendererClass(tabOptions.contentClass, contentClass),
614
+ children: renderChild(currentTab, tabs[currentTab])
615
+ })]
616
+ }, key);
557
617
  }
558
618
  } finally {
559
619
  _effect();
@@ -600,7 +660,7 @@ function createDefaultGroupRenderer(options) {
600
660
  } = props;
601
661
  if (isTabsRenderer(renderOptions)) return tabsRenderer.render(props, renderer);
602
662
  if (isSelectChildRenderer(renderOptions) && !props.designMode) {
603
- return h(SelectChildGroupRenderer, _extends({}, props, {
663
+ return /*#__PURE__*/jsx(SelectChildGroupRenderer, _extends({}, props, {
604
664
  renderOptions: renderOptions
605
665
  }));
606
666
  }
@@ -610,12 +670,14 @@ function createDefaultGroupRenderer(options) {
610
670
  } = isGridRenderer(renderOptions) ? gridStyles(renderOptions) : isFlexRenderer(renderOptions) ? flexStyles(renderOptions) : {
611
671
  className: standardClassName
612
672
  };
613
- // noinspection JSUnusedLocalSymbols
614
- const h = renderer.h;
615
- return h("div", {
673
+ const {
674
+ Div
675
+ } = renderer.html;
676
+ return /*#__PURE__*/jsx(Div, {
616
677
  className: rendererClass(props.className, clsx(className, gcn)),
617
- style: style
618
- }, formNode.getChildNodes().map((c, i) => renderChild(i, c)));
678
+ style: style,
679
+ children: formNode.getChildNodes().map((c, i) => renderChild(i, c))
680
+ });
619
681
  }
620
682
  return {
621
683
  type: "group",
@@ -634,17 +696,18 @@ function SelectChildGroupRenderer(props) {
634
696
  const ctrl = dynHook.runHook(p.dataContext, dynHook.state);
635
697
  const childIndex = ctrl == null ? void 0 : ctrl.value;
636
698
  const childDefinitions = p.formNode.getChildNodes();
637
- return createElement("div", null, typeof childIndex === "number" && childIndex < childDefinitions.length && childIndex >= 0 && p.renderChild(childIndex, childDefinitions[childIndex]));
699
+ return /*#__PURE__*/jsx("div", {
700
+ children: typeof childIndex === "number" && childIndex < childDefinitions.length && childIndex >= 0 && p.renderChild(childIndex, childDefinitions[childIndex])
701
+ });
638
702
  }, [dynHook.deps]);
639
- return createElement(Render, props);
703
+ return /*#__PURE__*/jsx(Render, _extends({}, props));
640
704
  } finally {
641
705
  _effect();
642
706
  }
643
707
  }
644
708
 
645
709
  function createDefaultVisibilityRenderer() {
646
- const h = jsx;
647
- return createVisibilityRenderer((props, renderer) => h(DefaultVisibility, _extends({}, props, {
710
+ return createVisibilityRenderer((props, renderer) => /*#__PURE__*/jsx(DefaultVisibility, _extends({}, props, {
648
711
  renderer: renderer
649
712
  })));
650
713
  }
@@ -667,20 +730,22 @@ function DefaultVisibility({
667
730
  }));
668
731
  }
669
732
  }, [v == null ? void 0 : v.visible]);
670
- const h = renderer.h;
671
- return v != null && v.visible ? h("div", {
733
+ const {
734
+ Div
735
+ } = renderer.html;
736
+ return v != null && v.visible ? /*#__PURE__*/jsx(Div, {
672
737
  className: className,
673
738
  style: style,
674
739
  ref: divRef,
675
740
  children: children
676
- }) : h(Fragment, null);
741
+ }) : /*#__PURE__*/jsx(Fragment, {});
677
742
  } finally {
678
743
  _effect();
679
744
  }
680
745
  }
681
746
 
682
747
  function createJsonataRenderer(className) {
683
- return createDataRenderer(p => createElement(JsonataRenderer, {
748
+ return createDataRenderer(p => /*#__PURE__*/jsx(JsonataRenderer, {
684
749
  renderOptions: p.renderOptions,
685
750
  className: rendererClass(p.className, className),
686
751
  dataNode: p.dataNode,
@@ -710,7 +775,7 @@ function JsonataRenderer({
710
775
  dataPath: getJsonPath(dataNode)
711
776
  }));
712
777
  const rendered = useJsonataExpression(renderOptions.expression, getRootDataNode(sdn).control, getJsonPath(sdn), bindings, coerceToString);
713
- return createElement("div", {
778
+ return /*#__PURE__*/jsx("div", {
714
779
  className: className,
715
780
  dangerouslySetInnerHTML: {
716
781
  __html: rendered.value
@@ -749,7 +814,7 @@ function createNullToggleRenderer() {
749
814
 
750
815
  function createDefaultArrayDataRenderer(defaultActions) {
751
816
  return createDataRenderer((props, renderers) => {
752
- return createElement(DataArrayRenderer, {
817
+ return /*#__PURE__*/jsx(DataArrayRenderer, {
753
818
  dataProps: props,
754
819
  renderers: renderers,
755
820
  defaultActions: defaultActions
@@ -790,9 +855,8 @@ function DataArrayRenderer({
790
855
  } = mergeObjects(isArrayRenderer(renderOptions) ? renderOptions : {}, defaultActions);
791
856
  const childOptions = isArrayRenderer(renderOptions) ? renderOptions.childOptions : undefined;
792
857
  const renderAsElement = !isCompoundField(field);
793
- const childDefinition = nodeForControl(!renderAsElement ? {
858
+ const childDefinition = formNode.tree.createTempNode(formNode.id + "child", !renderAsElement ? {
794
859
  type: ControlDefinitionType.Group,
795
- children: definition.children,
796
860
  groupOptions: {
797
861
  type: GroupRenderType.Standard,
798
862
  hideTitle: true
@@ -800,12 +864,11 @@ function DataArrayRenderer({
800
864
  } : {
801
865
  type: ControlDefinitionType.Data,
802
866
  field: definition.field,
803
- children: definition.children,
804
867
  renderOptions: childOptions != null ? childOptions : {
805
868
  type: DataRenderType.Standard
806
869
  },
807
870
  hideTitle: true
808
- }, formNode.tree);
871
+ }, formNode.getChildNodes());
809
872
  const visibilities = ((_definition$children = definition.children) != null ? _definition$children : []).map(x => [useChildVisibility(x, undefined, true), x]);
810
873
  const deps = makeHookDepString(visibilities, x => x[0].deps);
811
874
  const Entry = useTrackedComponent(RenderEntry, [deps]);
@@ -820,7 +883,7 @@ function DataArrayRenderer({
820
883
  editExternal
821
884
  }), {
822
885
  required,
823
- renderElement: (i, wrap) => createElement(Entry, {
886
+ renderElement: (i, wrap) => /*#__PURE__*/jsx(Entry, {
824
887
  index: i,
825
888
  renderChildElement: renderChildElement,
826
889
  dataContext: dataContext,
@@ -859,9 +922,11 @@ function RenderEntry({
859
922
  function createDefaultArrayRenderer(options) {
860
923
  return {
861
924
  render: (props, {
862
- renderAction
863
- }) => createElement(DefaultArrayRenderer, _extends({}, props, options, {
864
- renderAction: renderAction
925
+ renderAction,
926
+ html
927
+ }) => /*#__PURE__*/jsx(DefaultArrayRenderer, _extends({}, props, options, {
928
+ renderAction: renderAction,
929
+ html: html
865
930
  })),
866
931
  type: "array"
867
932
  };
@@ -880,27 +945,39 @@ function DefaultArrayRenderer(props) {
880
945
  arrayControl,
881
946
  renderAction,
882
947
  style,
883
- editAction
948
+ editAction,
949
+ html: {
950
+ Div
951
+ }
884
952
  } = props;
885
953
  const {
886
954
  addAction,
887
955
  removeAction
888
956
  } = applyArrayLengthRestrictions(props);
889
- return createElement("div", {
890
- style: style
891
- }, createElement("div", {
892
- className: clsx(className, removeAction && removableClass)
893
- }, createElement(RenderElements, {
894
- control: arrayControl
895
- }, (_, x) => renderElement(x, children => removeAction || editAction ? createElement(Fragment, null, createElement("div", {
896
- className: clsx(childClass, removableChildClass)
897
- }, children), createElement("div", {
898
- className: removeActionClass
899
- }, editAction && renderAction(editAction(x)), removeAction && renderAction(removeAction(x)))) : createElement("div", {
900
- className: childClass
901
- }, children)))), addAction && createElement("div", {
902
- className: addActionClass
903
- }, renderAction(addAction)));
957
+ return /*#__PURE__*/jsxs(Div, {
958
+ style: style,
959
+ children: [/*#__PURE__*/jsx(Div, {
960
+ className: clsx(className, removeAction && removableClass),
961
+ children: /*#__PURE__*/jsx(RenderElements, {
962
+ control: arrayControl,
963
+ children: (_, x) => renderElement(x, children => removeAction || editAction ? /*#__PURE__*/jsxs(Fragment, {
964
+ children: [/*#__PURE__*/jsx(Div, {
965
+ className: clsx(childClass, removableChildClass),
966
+ children: children
967
+ }), /*#__PURE__*/jsxs(Div, {
968
+ className: removeActionClass,
969
+ children: [editAction && renderAction(editAction(x)), removeAction && renderAction(removeAction(x))]
970
+ })]
971
+ }) : /*#__PURE__*/jsx(Div, {
972
+ className: childClass,
973
+ children: children
974
+ }))
975
+ })
976
+ }), addAction && /*#__PURE__*/jsx(Div, {
977
+ className: addActionClass,
978
+ children: renderAction(addAction)
979
+ })]
980
+ });
904
981
  } finally {
905
982
  _effect();
906
983
  }
@@ -910,7 +987,7 @@ const inputClass = "leading-[1.5] text-surface-900 bg-[inherit] border-0 rounded
910
987
  function createAutocompleteRenderer(options = {}) {
911
988
  return createDataRenderer(p => {
912
989
  var _p$options, _p$options2;
913
- return p.field.collection ? createElement(MultipleAutocomplete, {
990
+ return p.field.collection ? /*#__PURE__*/jsx(MultipleAutocomplete, {
914
991
  options: (_p$options = p.options) != null ? _p$options : [],
915
992
  control: p.control,
916
993
  className: rendererClass(p.className, options.className),
@@ -918,7 +995,7 @@ function createAutocompleteRenderer(options = {}) {
918
995
  controlClasses: p.renderOptions,
919
996
  readOnly: p.readonly,
920
997
  id: p.id
921
- }) : createElement(SingleAutocomplete, {
998
+ }) : /*#__PURE__*/jsx(SingleAutocomplete, {
922
999
  options: (_p$options2 = p.options) != null ? _p$options2 : [],
923
1000
  control: p.control,
924
1001
  className: rendererClass(p.className, options.className),
@@ -983,33 +1060,38 @@ function SingleAutocomplete(_ref) {
983
1060
  }
984
1061
  }
985
1062
  }, props));
986
- return createElement("div", _extends({
1063
+ return /*#__PURE__*/jsxs("div", _extends({
987
1064
  id: id,
988
1065
  className: "relative"
989
- }, getRootProps()), createElement("div", {
990
- className: clsx(className, focused ? "border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200" : "shadow-[0_2px_2px_transparent] shadow-surface-50")
991
- }, createElement("input", _extends({
992
- type: "text"
993
- }, getInputProps(), {
994
- placeholder: (_controlClasses$place = controlClasses == null ? void 0 : controlClasses.placeholder) != null ? _controlClasses$place : "",
995
- className: inputClass
996
- })), createElement("button", _extends({}, getPopupIndicatorProps(), {
997
- disabled: disabled || readOnly,
998
- className: "outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]"
999
- }), createElement("li", {
1000
- className: clsx("fa-solid fa-angle-down", "text-primary-500", popupOpen && "rotate-180")
1001
- }))), groupedOptions.length > 0 && popupOpen && createElement("ul", _extends({}, getListboxProps(), {
1002
- className: listContainerClass
1003
- }), groupedOptions.map((option, index) => {
1004
- const optionProps = getOptionProps({
1005
- option,
1006
- index
1007
- });
1008
- return createElement("li", _extends({}, optionProps, {
1009
- key: optionProps.key,
1010
- className: listEntryClass
1011
- }), option.name);
1012
- })));
1066
+ }, getRootProps(), {
1067
+ children: [/*#__PURE__*/jsxs("div", {
1068
+ className: clsx(className, focused ? "border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200" : "shadow-[0_2px_2px_transparent] shadow-surface-50"),
1069
+ children: [/*#__PURE__*/jsx("input", _extends({
1070
+ type: "text"
1071
+ }, getInputProps(), {
1072
+ placeholder: (_controlClasses$place = controlClasses == null ? void 0 : controlClasses.placeholder) != null ? _controlClasses$place : "",
1073
+ className: inputClass
1074
+ })), /*#__PURE__*/jsx("button", _extends({}, getPopupIndicatorProps(), {
1075
+ disabled: disabled || readOnly,
1076
+ className: "outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]",
1077
+ children: /*#__PURE__*/jsx("li", {
1078
+ className: clsx("fa-solid fa-angle-down", "text-primary-500", popupOpen && "rotate-180")
1079
+ })
1080
+ }))]
1081
+ }), groupedOptions.length > 0 && popupOpen && /*#__PURE__*/jsx("ul", _extends({}, getListboxProps(), {
1082
+ className: listContainerClass,
1083
+ children: groupedOptions.map((option, index) => {
1084
+ const optionProps = getOptionProps({
1085
+ option,
1086
+ index
1087
+ });
1088
+ return /*#__PURE__*/createElement("li", _extends({}, optionProps, {
1089
+ key: optionProps.key,
1090
+ className: listEntryClass
1091
+ }), option.name);
1092
+ })
1093
+ }))]
1094
+ }));
1013
1095
  } finally {
1014
1096
  _effect();
1015
1097
  }
@@ -1071,44 +1153,49 @@ function MultipleAutocomplete(_ref2) {
1071
1153
  }
1072
1154
  }
1073
1155
  }, props));
1074
- return createElement("div", _extends({
1156
+ return /*#__PURE__*/jsxs("div", _extends({
1075
1157
  id: id,
1076
1158
  className: "relative"
1077
- }, getRootProps()), createElement("div", {
1078
- className: clsx(className, focused ? "border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200" : "shadow-[0_2px_2px_transparent] shadow-surface-50")
1079
- }, createElement("div", {
1080
- className: "flex flex-1 flex-row flex-wrap"
1081
- }, (_selectedOptionsContr2 = selectedOptionsControl.value) == null ? void 0 : _selectedOptionsContr2.map(v => createElement(Chip, {
1082
- key: typeof v === "string" ? v : v.name,
1083
- text: typeof v === "string" ? v : v.name,
1084
- chipContainerClass: chipContainerClass,
1085
- chipCloseButtonClass: chipCloseButtonClass,
1086
- onDeleteClick: () => {
1087
- const c = selectedOptionsControl.elements.find(x => x.value == v);
1088
- if (c) removeElement(selectedOptionsControl, c);
1089
- }
1090
- })), createElement("input", _extends({
1091
- type: "text"
1092
- }, getInputProps(), {
1093
- placeholder: (_controlClasses$place2 = controlClasses == null ? void 0 : controlClasses.placeholder) != null ? _controlClasses$place2 : "",
1094
- className: clsx(inputClass)
1095
- }))), createElement("button", _extends({}, getPopupIndicatorProps(), {
1096
- disabled: disabled || readOnly,
1097
- className: "outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]"
1098
- }), createElement("i", {
1099
- className: clsx("fa-solid fa-angle-down", "text-primary-500", popupOpen && "rotate-180")
1100
- }))), groupedOptions.length > 0 && popupOpen && createElement("ul", _extends({}, getListboxProps(), {
1101
- className: listContainerClass
1102
- }), groupedOptions.map((option, index) => {
1103
- const optionProps = getOptionProps({
1104
- option,
1105
- index
1106
- });
1107
- return createElement("li", _extends({}, optionProps, {
1108
- key: optionProps.key,
1109
- className: listEntryClass
1110
- }), option.name);
1111
- })));
1159
+ }, getRootProps(), {
1160
+ children: [/*#__PURE__*/jsxs("div", {
1161
+ className: clsx(className, focused ? "border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200" : "shadow-[0_2px_2px_transparent] shadow-surface-50"),
1162
+ children: [/*#__PURE__*/jsxs("div", {
1163
+ className: "flex flex-1 flex-row flex-wrap",
1164
+ children: [(_selectedOptionsContr2 = selectedOptionsControl.value) == null ? void 0 : _selectedOptionsContr2.map(v => /*#__PURE__*/jsx(Chip, {
1165
+ text: typeof v === "string" ? v : v.name,
1166
+ chipContainerClass: chipContainerClass,
1167
+ chipCloseButtonClass: chipCloseButtonClass,
1168
+ onDeleteClick: () => {
1169
+ const c = selectedOptionsControl.elements.find(x => x.value == v);
1170
+ if (c) removeElement(selectedOptionsControl, c);
1171
+ }
1172
+ }, typeof v === "string" ? v : v.name)), /*#__PURE__*/jsx("input", _extends({
1173
+ type: "text"
1174
+ }, getInputProps(), {
1175
+ placeholder: (_controlClasses$place2 = controlClasses == null ? void 0 : controlClasses.placeholder) != null ? _controlClasses$place2 : "",
1176
+ className: clsx(inputClass)
1177
+ }))]
1178
+ }), /*#__PURE__*/jsx("button", _extends({}, getPopupIndicatorProps(), {
1179
+ disabled: disabled || readOnly,
1180
+ className: "outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]",
1181
+ children: /*#__PURE__*/jsx("i", {
1182
+ className: clsx("fa-solid fa-angle-down", "text-primary-500", popupOpen && "rotate-180")
1183
+ })
1184
+ }))]
1185
+ }), groupedOptions.length > 0 && popupOpen && /*#__PURE__*/jsx("ul", _extends({}, getListboxProps(), {
1186
+ className: listContainerClass,
1187
+ children: groupedOptions.map((option, index) => {
1188
+ const optionProps = getOptionProps({
1189
+ option,
1190
+ index
1191
+ });
1192
+ return /*#__PURE__*/createElement("li", _extends({}, optionProps, {
1193
+ key: optionProps.key,
1194
+ className: listEntryClass
1195
+ }), option.name);
1196
+ })
1197
+ }))]
1198
+ }));
1112
1199
  } finally {
1113
1200
  _effect2();
1114
1201
  }
@@ -1121,14 +1208,15 @@ function Chip({
1121
1208
  }) {
1122
1209
  var _effect3 = useComponentTracking();
1123
1210
  try {
1124
- return createElement("div", {
1125
- className: chipContainerClass
1126
- }, text, createElement("i", {
1127
- className: chipCloseButtonClass,
1128
- onClick: () => {
1129
- onDeleteClick == null || onDeleteClick();
1130
- }
1131
- }));
1211
+ return /*#__PURE__*/jsxs("div", {
1212
+ className: chipContainerClass,
1213
+ children: [text, /*#__PURE__*/jsx("i", {
1214
+ className: chipCloseButtonClass,
1215
+ onClick: () => {
1216
+ onDeleteClick == null || onDeleteClick();
1217
+ }
1218
+ })]
1219
+ });
1132
1220
  } finally {
1133
1221
  _effect3();
1134
1222
  }
@@ -1152,11 +1240,13 @@ function createValueForFieldRenderer(options) {
1152
1240
  } = o.renderOptions;
1153
1241
  const actualFieldRef = fieldRef ? (_schemaDataForFieldRe = schemaDataForFieldRef(fieldRef, o.dataContext.parentNode)) == null || (_schemaDataForFieldRe = _schemaDataForFieldRe.control) == null ? void 0 : _schemaDataForFieldRe.value : undefined;
1154
1242
  const node = actualFieldRef ? schemaForFieldRef(actualFieldRef, options.schema) : undefined;
1155
- return node ? createElement(ValueForField, {
1243
+ return node ? /*#__PURE__*/jsx(ValueForField, {
1156
1244
  renderer: renderer,
1157
1245
  schema: node,
1158
1246
  control: o.control
1159
- }) : createElement(Fragment, null, actualFieldRef ? "No schema node for " + actualFieldRef : "");
1247
+ }) : /*#__PURE__*/jsx(Fragment, {
1248
+ children: actualFieldRef ? "No schema node for " + actualFieldRef : ""
1249
+ });
1160
1250
  }, {
1161
1251
  renderType: RenderType
1162
1252
  });
@@ -1186,7 +1276,7 @@ function ValueForField({
1186
1276
  const Render = useControlRendererComponent(groupedControl(controls), renderer, {
1187
1277
  disabled: control.disabled
1188
1278
  }, makeSchemaDataNode(rootSchema, value));
1189
- return createElement(Render, null);
1279
+ return /*#__PURE__*/jsx(Render, {});
1190
1280
  } finally {
1191
1281
  _effect();
1192
1282
  }
@@ -1209,7 +1299,7 @@ function createOptionalAdornment(options = {}) {
1209
1299
  apply: rl => {
1210
1300
  var _ref, _adornment$placement;
1211
1301
  if (props.formOptions.readonly) return rl;
1212
- if (!options.hideEdit && adornment.editSelectable) appendMarkupAt((_ref = (_adornment$placement = adornment.placement) != null ? _adornment$placement : options.defaultPlacement) != null ? _ref : AdornmentPlacement.LabelStart, createElement(Fcheckbox$1, {
1302
+ if (!options.hideEdit && adornment.editSelectable) appendMarkupAt((_ref = (_adornment$placement = adornment.placement) != null ? _adornment$placement : options.defaultPlacement) != null ? _ref : AdornmentPlacement.LabelStart, /*#__PURE__*/jsx(Fcheckbox$1, {
1213
1303
  control: editing,
1214
1304
  className: options.checkClass
1215
1305
  }))(rl);
@@ -1221,7 +1311,7 @@ function createOptionalAdornment(options = {}) {
1221
1311
  nullToggler,
1222
1312
  dataContext,
1223
1313
  options
1224
- }) : createElement(OptionalEditRenderer, {
1314
+ }) : /*#__PURE__*/jsx(OptionalEditRenderer, {
1225
1315
  children: children,
1226
1316
  options: options,
1227
1317
  editing: editing.as(),
@@ -1249,27 +1339,33 @@ function OptionalEditRenderer({
1249
1339
  const nullToggler = getNullToggler(dataControl);
1250
1340
  const allValues = getAllValues(dataControl);
1251
1341
  const multipleValues = allValues.value.length > 1;
1252
- const nullEdit = adornment.allowNull ? createElement("div", {
1253
- className: options.nullWrapperClass
1254
- }, createElement(Fcheckbox$1, {
1255
- control: nullToggler,
1256
- className: options.checkClass,
1257
- notValue: true
1258
- }), createElement("span", null, (_options$setNullText = options.setNullText) != null ? _options$setNullText : "Null")) : undefined;
1259
- return createElement("div", {
1260
- className: options.className
1261
- }, multipleValues && editing.value === false ? createElement("div", {
1262
- className: options.multiValuesClass
1263
- }, (_options$multiValuesT = options.multiValuesText) != null ? _options$multiValuesT : "Differing values") : createElement("div", {
1264
- className: options.childWrapperClass
1265
- }, nullEdit, children));
1342
+ const nullEdit = adornment.allowNull ? /*#__PURE__*/jsxs("div", {
1343
+ className: options.nullWrapperClass,
1344
+ children: [/*#__PURE__*/jsx(Fcheckbox$1, {
1345
+ control: nullToggler,
1346
+ className: options.checkClass,
1347
+ notValue: true
1348
+ }), /*#__PURE__*/jsx("span", {
1349
+ children: (_options$setNullText = options.setNullText) != null ? _options$setNullText : "Null"
1350
+ })]
1351
+ }) : undefined;
1352
+ return /*#__PURE__*/jsx("div", {
1353
+ className: options.className,
1354
+ children: multipleValues && editing.value === false ? /*#__PURE__*/jsx("div", {
1355
+ className: options.multiValuesClass,
1356
+ children: (_options$multiValuesT = options.multiValuesText) != null ? _options$multiValuesT : "Differing values"
1357
+ }) : /*#__PURE__*/jsxs("div", {
1358
+ className: options.childWrapperClass,
1359
+ children: [nullEdit, children]
1360
+ })
1361
+ });
1266
1362
  } finally {
1267
1363
  _effect();
1268
1364
  }
1269
1365
  }
1270
1366
 
1271
1367
  function createMultilineFieldRenderer(className) {
1272
- return createDataRenderer(p => createElement(MultilineTextfield, _extends({}, p, {
1368
+ return createDataRenderer(p => /*#__PURE__*/jsx(MultilineTextfield, _extends({}, p, {
1273
1369
  className: rendererClass(p.className, className)
1274
1370
  })));
1275
1371
  }
@@ -1286,7 +1382,7 @@ function MultilineTextfield({
1286
1382
  c.textContent = v;
1287
1383
  }
1288
1384
  }, true);
1289
- return createElement("code", {
1385
+ return /*#__PURE__*/jsx("code", {
1290
1386
  contentEditable: !control.disabled,
1291
1387
  className: className,
1292
1388
  onInput: t => control.value = t.currentTarget.textContent,
@@ -1298,7 +1394,7 @@ function MultilineTextfield({
1298
1394
  }
1299
1395
 
1300
1396
  function createArrayElementRenderer(options = {}) {
1301
- return createDataRenderer((props, formRenderer) => createElement(ArrayElementRenderer, {
1397
+ return createDataRenderer((props, formRenderer) => /*#__PURE__*/jsx(ArrayElementRenderer, {
1302
1398
  dataProps: props,
1303
1399
  options: options,
1304
1400
  formRenderer: formRenderer,
@@ -1330,30 +1426,33 @@ function ArrayElementRenderer({
1330
1426
  });
1331
1427
  if (designMode || extData.value !== undefined) {
1332
1428
  const parentDataNode = makeSchemaDataNode(dataProps.dataNode.schema, extData.fields.data);
1333
- const elementGroup = nodeForControl({
1429
+ const elementGroup = formNode.tree.createTempNode(formNode.id + "group", {
1334
1430
  type: ControlDefinitionType.Group,
1335
- children: formNode.definition.children,
1336
1431
  groupOptions: {
1337
1432
  type: GroupRenderType.Standard,
1338
1433
  hideTitle: true
1339
1434
  }
1340
- }, formNode.tree);
1341
- const editContent = createElement("div", {
1342
- className: rendererClass(dataProps.className, options.className)
1343
- }, renderChild("", elementGroup, {
1344
- parentDataNode,
1345
- elementIndex: 0
1346
- }), createElement("div", {
1347
- className: options.actionsClass
1348
- }, createElement(RenderElements, {
1349
- control: extData.fields.actions
1350
- }, c => formRenderer.renderAction(applyValidation(c.value)))));
1435
+ }, formNode.getChildNodes());
1436
+ const editContent = /*#__PURE__*/jsxs("div", {
1437
+ className: rendererClass(dataProps.className, options.className),
1438
+ children: [renderChild("", elementGroup, {
1439
+ parentDataNode,
1440
+ elementIndex: 0
1441
+ }), /*#__PURE__*/jsx("div", {
1442
+ className: options.actionsClass,
1443
+ children: /*#__PURE__*/jsx(RenderElements, {
1444
+ control: extData.fields.actions,
1445
+ children: c => formRenderer.renderAction(applyValidation(c.value))
1446
+ })
1447
+ })]
1448
+ });
1351
1449
  if (renderOptions.showInline || designMode) return editContent;
1352
- return createElement(Modal, {
1353
- state: overlayState
1354
- }, createElement(Dialog, {
1355
- children: editContent
1356
- }));
1450
+ return /*#__PURE__*/jsx(Modal, {
1451
+ state: overlayState,
1452
+ children: /*#__PURE__*/jsx(Dialog, {
1453
+ children: editContent
1454
+ })
1455
+ });
1357
1456
  function runValidation(onClick) {
1358
1457
  let hasErrors = false;
1359
1458
  visitFormDataInContext(parentDataNode, elementGroup, validationVisitor(() => {
@@ -1369,7 +1468,7 @@ function ArrayElementRenderer({
1369
1468
  onClick: () => runValidation(action.onClick)
1370
1469
  });
1371
1470
  }
1372
- } else return createElement(Fragment, null);
1471
+ } else return /*#__PURE__*/jsx(Fragment, {});
1373
1472
  } finally {
1374
1473
  _effect();
1375
1474
  }
@@ -1386,13 +1485,17 @@ function createButtonActionRenderer(actionId, options = {}) {
1386
1485
  disabled
1387
1486
  }, renderer) => {
1388
1487
  var _options$renderConten;
1389
- const h = renderer.h;
1390
- return h("button", {
1391
- className: rendererClass(className, options.className),
1488
+ const {
1489
+ Button
1490
+ } = renderer.html;
1491
+ const classNames = rendererClass(className, options.className);
1492
+ return /*#__PURE__*/jsx(Button, {
1493
+ className: classNames,
1392
1494
  disabled: disabled,
1393
1495
  style: style,
1394
- onClick: onClick
1395
- }, (_options$renderConten = options.renderContent == null ? void 0 : options.renderContent(actionText, actionId, actionData)) != null ? _options$renderConten : renderer.renderText(actionText));
1496
+ onClick: onClick,
1497
+ children: (_options$renderConten = options.renderContent == null ? void 0 : options.renderContent(actionText, actionId, actionData)) != null ? _options$renderConten : renderer.renderText(actionText, classNames)
1498
+ });
1396
1499
  });
1397
1500
  }
1398
1501
  const DefaultBoolOptions = [{
@@ -1404,7 +1507,6 @@ const DefaultBoolOptions = [{
1404
1507
  }];
1405
1508
  function createDefaultDataRenderer(options = {}) {
1406
1509
  var _options$checkOptions, _options$radioOptions, _options$checkListOpt;
1407
- const h = React.createElement;
1408
1510
  const jsonataRenderer = createJsonataRenderer(options.jsonataClass);
1409
1511
  const nullToggler = createNullToggleRenderer();
1410
1512
  const multilineRenderer = createMultilineFieldRenderer(options.multilineClass);
@@ -1449,7 +1551,7 @@ function createDefaultDataRenderer(options = {}) {
1449
1551
  if (props.displayOnly || isDisplayOnlyRenderer(renderOptions)) return p => {
1450
1552
  return _extends({}, p, {
1451
1553
  className: "@ " + rendererClass(p.className, displayOnlyClass),
1452
- children: h(DefaultDisplayOnly, {
1554
+ children: /*#__PURE__*/jsx(DefaultDisplayOnly, {
1453
1555
  field: props.field,
1454
1556
  schemaInterface: props.dataContext.schemaInterface,
1455
1557
  control: props.control,
@@ -1487,11 +1589,13 @@ function createDefaultDataRenderer(options = {}) {
1487
1589
  }
1488
1590
  if (fieldType == FieldType.Any) {
1489
1591
  var _field$displayName;
1490
- return h(Fragment, null, "Can't render field: ", (_field$displayName = field.displayName) != null ? _field$displayName : field.field, " (", renderType, ")");
1592
+ return /*#__PURE__*/jsxs(Fragment, {
1593
+ children: ["Can't render field: ", (_field$displayName = field.displayName) != null ? _field$displayName : field.field, " (", renderType, ")"]
1594
+ });
1491
1595
  }
1492
1596
  if (isTextfieldRenderer(renderOptions) && renderOptions.multiline) return multilineRenderer.render(props, renderers);
1493
1597
  const placeholder = isTextfieldRenderer(renderOptions) ? renderOptions.placeholder : undefined;
1494
- return h(ControlInput, {
1598
+ return /*#__PURE__*/jsx(ControlInput, {
1495
1599
  className: rendererClass(props.className, inputClass),
1496
1600
  style: props.style,
1497
1601
  id: props.id,
@@ -1525,7 +1629,7 @@ function createDefaultAdornmentRenderer(options = {}) {
1525
1629
  value: hook
1526
1630
  });
1527
1631
  const SetFieldWrapper = useTrackedComponent(setFieldWrapper, [dynamicHooks]);
1528
- return wrapLayout(x => createElement(SetFieldWrapper, {
1632
+ return wrapLayout(x => /*#__PURE__*/jsx(SetFieldWrapper, {
1529
1633
  children: x,
1530
1634
  parentContext: dataContext,
1531
1635
  adornment: adornment
@@ -1549,12 +1653,12 @@ function createDefaultAdornmentRenderer(options = {}) {
1549
1653
  }
1550
1654
  if (isIconAdornment(adornment)) {
1551
1655
  var _adornment$placement;
1552
- return appendMarkupAt((_adornment$placement = adornment.placement) != null ? _adornment$placement : AdornmentPlacement.ControlStart, createElement("i", {
1656
+ return appendMarkupAt((_adornment$placement = adornment.placement) != null ? _adornment$placement : AdornmentPlacement.ControlStart, /*#__PURE__*/jsx("i", {
1553
1657
  className: adornment.iconClass
1554
1658
  }))(rl);
1555
1659
  }
1556
1660
  if (isAccordionAdornment(adornment)) {
1557
- return wrapLayout(x => createElement(DefaultAccordion, _extends({
1661
+ return wrapLayout(x => /*#__PURE__*/jsx(DefaultAccordion, _extends({
1558
1662
  renderers: renderers,
1559
1663
  children: x,
1560
1664
  accordion: adornment,
@@ -1583,19 +1687,38 @@ function createDefaultLabelRenderer(options) {
1583
1687
  return {
1584
1688
  render: (props, labelStart, labelEnd, renderers) => {
1585
1689
  var _options$requiredElem;
1586
- const h = renderers.h;
1587
- const requiredElement = (_options$requiredElem = options == null ? void 0 : options.requiredElement) != null ? _options$requiredElem : h => h("span", null, " *");
1690
+ const {
1691
+ Label
1692
+ } = renderers.html;
1693
+ const requiredElement = (_options$requiredElem = options == null ? void 0 : options.requiredElement) != null ? _options$requiredElem : ({
1694
+ Span
1695
+ }) => /*#__PURE__*/jsx(Span, {
1696
+ children: " *"
1697
+ });
1588
1698
  if (props.type == LabelType.Text) return renderers.renderText(props.label);
1589
- return labelContainer(h(Fragment, null, h("label", {
1590
- htmlFor: props.forId,
1591
- className: rendererClass(props.className, clsx(className, props.type === LabelType.Group && groupLabelClass, props.type === LabelType.Control && controlLabelClass))
1592
- }, labelStart, renderers.renderLabelText(props.label), props.required && requiredElement(h)), labelEnd));
1699
+ return labelContainer(/*#__PURE__*/jsxs(Fragment, {
1700
+ children: [/*#__PURE__*/jsxs(Label, {
1701
+ htmlFor: props.forId,
1702
+ className: rendererClass(props.className, clsx(className, props.type === LabelType.Group && groupLabelClass, props.type === LabelType.Control && controlLabelClass)),
1703
+ children: [labelStart, renderers.renderLabelText(props.label), props.required && requiredElement(renderers.html)]
1704
+ }), labelEnd]
1705
+ }));
1593
1706
  },
1594
1707
  type: "label"
1595
1708
  };
1596
1709
  }
1710
+ const StandardHtmlComponents = {
1711
+ Button: "button",
1712
+ Label: "label",
1713
+ I: "i",
1714
+ Span: "span",
1715
+ Div: "div",
1716
+ H1: "h1",
1717
+ B: "b",
1718
+ Input: "input"
1719
+ };
1597
1720
  function createDefaultRenderers(options = {}) {
1598
- var _options$renderText, _options$h;
1721
+ var _options$extraRendere, _options$renderText, _options$html;
1599
1722
  return {
1600
1723
  data: createDefaultDataRenderer(options.data),
1601
1724
  display: createDefaultDisplayRenderer(options.display),
@@ -1606,8 +1729,9 @@ function createDefaultRenderers(options = {}) {
1606
1729
  adornment: createDefaultAdornmentRenderer(options.adornment),
1607
1730
  renderLayout: createDefaultLayoutRenderer(options.layout),
1608
1731
  visibility: createDefaultVisibilityRenderer(),
1732
+ extraRenderers: (_options$extraRendere = options.extraRenderers == null ? void 0 : options.extraRenderers(options)) != null ? _options$extraRendere : [],
1609
1733
  renderText: (_options$renderText = options.renderText) != null ? _options$renderText : x => x,
1610
- h: (_options$h = options.h) != null ? _options$h : createElement
1734
+ html: (_options$html = options.html) != null ? _options$html : StandardHtmlComponents
1611
1735
  };
1612
1736
  }
1613
1737
  function createClassStyledRenderers() {
@@ -1637,9 +1761,12 @@ function createClassStyledRenderers() {
1637
1761
  const defaultTailwindTheme = {
1638
1762
  label: {
1639
1763
  groupLabelClass: "font-bold",
1640
- requiredElement: h => h("span", {
1641
- className: "text-red-500"
1642
- }, " *")
1764
+ requiredElement: ({
1765
+ Span
1766
+ }) => /*#__PURE__*/jsx(Span, {
1767
+ className: "text-red-500",
1768
+ children: " *"
1769
+ })
1643
1770
  },
1644
1771
  array: {
1645
1772
  removableClass: "grid grid-cols-[1fr_auto] items-center gap-x-2",
@@ -1669,6 +1796,7 @@ const defaultTailwindTheme = {
1669
1796
  errorClass: "text-sm text-red-500"
1670
1797
  },
1671
1798
  data: {
1799
+ inputClass: "form-control",
1672
1800
  displayOnlyClass: "flex flex-row items-center gap-2",
1673
1801
  checkOptions: {
1674
1802
  className: "flex items-center gap-4",
@@ -1705,5 +1833,5 @@ const defaultTailwindTheme = {
1705
1833
  }
1706
1834
  };
1707
1835
 
1708
- export { CheckButtons, ControlInput, DataArrayRenderer, DefaultAccordion, DefaultArrayRenderer, DefaultBoolOptions, DefaultDisplay, DefaultDisplayOnly, DefaultLayout, DefaultVisibility, Fcheckbox, JsonataRenderer, OptionalEditRenderer, SelectDataRenderer, ValueForFieldExtension, createAutocompleteRenderer, createButtonActionRenderer, createCheckListRenderer, createCheckboxRenderer, createClassStyledRenderers, createDefaultAdornmentRenderer, createDefaultArrayDataRenderer, createDefaultArrayRenderer, createDefaultDataRenderer, createDefaultDisplayRenderer, createDefaultGroupRenderer, createDefaultLabelRenderer, createDefaultLayoutRenderer, createDefaultRenderers, createDefaultVisibilityRenderer, createInputConversion, createJsonataRenderer, createNullToggleRenderer, createOptionalAdornment, createRadioRenderer, createSelectConversion, createSelectRenderer, createValueForFieldRenderer, defaultTailwindTheme, getAccordionState, setIncluded };
1836
+ export { CheckButtons, ControlInput, DataArrayRenderer, DefaultAccordion, DefaultArrayRenderer, DefaultBoolOptions, DefaultDisplay, DefaultDisplayOnly, DefaultLayout, DefaultVisibility, Fcheckbox, JsonataRenderer, OptionalEditRenderer, SelectDataRenderer, StandardHtmlComponents, ValueForFieldExtension, createAutocompleteRenderer, createButtonActionRenderer, createCheckListRenderer, createCheckboxRenderer, createClassStyledRenderers, createDefaultAdornmentRenderer, createDefaultArrayDataRenderer, createDefaultArrayRenderer, createDefaultDataRenderer, createDefaultDisplayRenderer, createDefaultGroupRenderer, createDefaultLabelRenderer, createDefaultLayoutRenderer, createDefaultRenderers, createDefaultVisibilityRenderer, createInputConversion, createJsonataRenderer, createNullToggleRenderer, createOptionalAdornment, createRadioRenderer, createSelectConversion, createSelectRenderer, createValueForFieldRenderer, defaultTailwindTheme, getAccordionState, setIncluded };
1709
1837
  //# sourceMappingURL=index.js.map