@react-typed-forms/schemas-html 2.2.0 → 2.2.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.
package/lib/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/components/DefaultDisplay.tsx","../src/components/ControlInput.tsx","../src/components/SelectDataRenderer.tsx","../src/components/CheckRenderer.tsx","../src/components/DefaultLayout.tsx","../src/components/DefaultDisplayOnly.tsx","../src/components/DefaultAccordion.tsx","../src/components/TabsRenderer.tsx","../src/components/DefaultGroupRenderer.tsx","../src/components/DefaultVisibility.tsx","../src/components/JsonataRenderer.tsx","../src/components/NullToggle.tsx","../src/components/DefaultArrayRenderer.tsx","../src/components/AutocompleteRenderer.tsx","../src/components/ValueForFieldRenderer.tsx","../src/adornments/optionalAdornment.tsx","../src/components/MultilineTextfield.tsx","../src/createDefaultRenderers.tsx","../src/tailwind.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport {\n coerceToString,\n CustomDisplay,\n DisplayDataType,\n DisplayRendererProps,\n DisplayRendererRegistration,\n getOverrideClass,\n HtmlDisplay,\n IconDisplay,\n rendererClass,\n TextDisplay,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\n\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? coerceToString(display.value) : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display\n ? coerceToString(display.value)\n : (data as HtmlDisplay).html,\n }}\n />\n );\n case DisplayDataType.Custom:\n return (\n <div>\n <b>({(data as CustomDisplay).customId})</b>\n </div>\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n","import React from \"react\";\nimport {\n Control,\n formControlProps,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {FieldType} from \"@react-typed-forms/schemas\";\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n const textValue = useControl(() => toText(value));\n useControlEffect(\n () => control.value,\n (v) => (textValue.value = toText(v)),\n );\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={textValue.value}\n onChange={(e) => {\n textValue.value = e.target.value;\n const converted = convert[1](e.target.value);\n if (converted !== undefined) control.value = converted;\n }}\n {...props}\n />\n );\n\n function toText(value: any) {\n return value == null ? \"\" : convert[2](value);\n }\n}\n\ntype InputConversion = [\n string,\n (s: string) => any,\n (a: any) => string | number,\n];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\n \"text\",\n (a) => (a === \"true\" ? true : a === \"false\" ? false : undefined),\n (a) => a?.toString() ?? \"\",\n ];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.DateTime:\n return [\"datetime-local\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Date:\n return [\"date\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Time:\n return [\n \"time\",\n (a) => {\n const l = a.length;\n if (l === 5) return a + \":00\";\n if (l === 8) return a;\n return undefined;\n },\n (a) => (a ? a.substring(0, 5) : \"\"),\n ];\n case FieldType.Double:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseFloat(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React, { useMemo, useState } from \"react\";\nimport {\n createDataRenderer,\n FieldOption,\n FieldType,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n readonly={props.readonly}\n options={props.options ?? []}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\nexport interface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: FieldOption[];\n emptyText?: string;\n requiredText?: string;\n readonly: boolean;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n readonly,\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n const optionGroups = useMemo(\n () => new Set(options.filter((x) => x.group).map((x) => x.group!)),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled || readonly}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {[...optionGroups.keys()].map((x) => (\n <optgroup key={x} label={x}>\n {options.filter((o) => o.group === x).map(renderOption)}\n </optgroup>\n ))}\n {options.filter((x) => !x.group).map(renderOption)}\n </select>\n );\n\n function renderOption(x: FieldOption, i: number) {\n return (\n <option key={i} value={convert(x.value)} disabled={!!x.disabled}>\n {x.name}\n </option>\n );\n }\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n","import {\n Control,\n Fcheckbox,\n RenderArrayElements,\n useComputed,\n} from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n CheckEntryClasses,\n createDataRenderer,\n DataRenderType,\n FieldOption,\n fieldOptionAdornment,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\nimport clsx from \"clsx\";\n\nexport interface CheckRendererOptions {\n className?: string;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n entryWrapperClass?: string;\n selectedClass?: string;\n notSelectedClass?: string;\n}\nexport function createRadioRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n classes={options}\n controlClasses={p.renderOptions as CheckEntryClasses}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => control.value == o.value}\n setChecked={(c, o) => (c.value = o.value)}\n control={p.control}\n type=\"radio\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n renderType: DataRenderType.Radio,\n },\n );\n}\n\nexport function createCheckListRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n classes={options}\n controlClasses={p.renderOptions as CheckEntryClasses}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => {\n const v = control.value;\n return Array.isArray(v) ? v.includes(o.value) : false;\n }}\n setChecked={(c, o, checked) => {\n c.setValue((x) => setIncluded(x ?? [], o.value, checked));\n }}\n control={p.control}\n type=\"checkbox\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n collection: true,\n renderType: DataRenderType.CheckList,\n },\n );\n}\n\nexport interface CheckButtonsProps {\n id?: string;\n className?: string;\n options?: FieldOption[] | null;\n control: Control<any>;\n classes: CheckRendererOptions;\n controlClasses?: CheckEntryClasses;\n readonly?: boolean;\n type: \"checkbox\" | \"radio\";\n isChecked: (c: Control<any>, o: FieldOption) => boolean;\n setChecked: (c: Control<any>, o: FieldOption, checked: boolean) => void;\n entryAdornment?: (c: FieldOption, i: number, selected: boolean) => ReactNode;\n}\n\nexport function CheckButtons({\n control,\n options,\n readonly,\n className,\n id,\n type,\n isChecked,\n setChecked,\n entryAdornment,\n classes,\n controlClasses = {},\n}: CheckButtonsProps) {\n const { disabled } = control;\n const name = \"r\" + control.uniqueId;\n return (\n <div className={className} id={id}>\n <RenderArrayElements array={options?.filter((x) => x.value != null)}>\n {(o, i) => {\n const checked = useComputed(() => isChecked(control, o)).value;\n const selOrUnsel = checked\n ? rendererClass(\n controlClasses?.selectedClass,\n classes.selectedClass,\n )\n : rendererClass(\n controlClasses?.notSelectedClass,\n classes.notSelectedClass,\n );\n return (\n <div\n className={clsx(\n rendererClass(\n controlClasses?.entryWrapperClass,\n classes.entryWrapperClass,\n ),\n selOrUnsel,\n )}\n onClick={() => !readonly && setChecked(control, o, !checked)}\n >\n <div className={classes.entryClass}>\n <input\n id={name + \"_\" + i}\n className={classes.checkClass}\n type={type}\n name={name}\n readOnly={readonly}\n disabled={disabled}\n checked={checked}\n onChange={(x) => {\n !readonly && setChecked(control, o, x.target.checked);\n }}\n />\n <label className={classes.labelClass} htmlFor={name + \"_\" + i}>\n {o.name}\n </label>\n </div>\n {entryAdornment?.(o, i, checked)}\n </div>\n );\n }}\n </RenderArrayElements>\n </div>\n );\n}\n\nexport function setIncluded<A>(array: A[], elem: A, included: boolean): A[] {\n const already = array.includes(elem);\n if (included === already) {\n return array;\n }\n if (included) {\n return [...array, elem];\n }\n return array.filter((e) => e !== elem);\n}\n\nexport function createCheckboxRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (props, renderer) => (p) => ({\n ...p,\n label: undefined,\n children: (\n <div className={rendererClass(props.className, options.entryClass)}>\n <Fcheckbox\n id={props.id}\n control={props.control.as()}\n style={props.style}\n className={options.checkClass}\n />\n {p.label && renderer.renderLabel(p.label, undefined, undefined)}\n </div>\n ),\n }),\n { renderType: DataRenderType.Checkbox },\n );\n}\n","import React, { ReactNode } from \"react\";\nimport {\n createLayoutRenderer,\n RenderedLayout,\n rendererClass,\n renderLayoutParts,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n renderError?: (errorText: string | null | undefined) => ReactNode;\n}\n\nexport function createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(props, renderers);\n return {\n children: layout.wrapLayout(\n <DefaultLayout layout={layout} {...options} />,\n ),\n className: rendererClass(layout.className, options.className),\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\nexport function DefaultLayout({\n errorClass,\n renderError = (e) => e && <div className={errorClass}>{e}</div>,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {renderError(errorText)}\n {controlEnd}\n </>\n );\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n rendererClass,\n SchemaField,\n SchemaInterface,\n} from \"@react-typed-forms/schemas\";\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={className}>\n {text}\n </div>\n );\n}\n","import React, { CSSProperties, Fragment, ReactElement } from \"react\";\nimport { Control, useControl } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\nimport { DefaultAccordionRendererOptions } from \"../createDefaultRenderers\";\nimport {\n AccordionAdornment,\n ControlDataContext,\n FormRenderer,\n} from \"@react-typed-forms/schemas\";\n\nexport function DefaultAccordion({\n children,\n accordion,\n contentStyle,\n contentClassName,\n designMode,\n iconOpenClass,\n iconClosedClass,\n className,\n renderTitle = (t) => t,\n renderToggler,\n renderers,\n titleClass,\n useCss,\n dataContext,\n}: {\n children: ReactElement;\n accordion: Partial<AccordionAdornment>;\n contentStyle?: CSSProperties;\n contentClassName?: string;\n designMode?: boolean;\n renderers: FormRenderer;\n dataContext: ControlDataContext;\n} & DefaultAccordionRendererOptions) {\n const dataControl = (dataContext.dataNode ?? dataContext.parentNode).control;\n const open = useControl(!!accordion.defaultExpanded);\n if (dataControl && !dataControl.meta.accordionState) {\n dataControl.meta.accordionState = open;\n }\n const isOpen = open.value;\n const fullContentStyle =\n isOpen || designMode ? contentStyle : { ...contentStyle, display: \"none\" };\n const title = renderers.renderLabelText(renderTitle(accordion.title, open));\n const toggler = renderToggler ? (\n renderToggler(open, title)\n ) : (\n <button className={className} onClick={() => open.setValue((x) => !x)}>\n <label className={titleClass}>{title}</label>\n <i className={clsx(isOpen ? iconOpenClass : iconClosedClass)} />\n </button>\n );\n\n return (\n <>\n {toggler}\n {(useCss || isOpen || designMode) && (\n <div style={fullContentStyle} className={contentClassName}>\n {children}\n </div>\n )}\n </>\n );\n}\n\nexport function getAccordionState(\n c: Control<unknown>,\n): Control<boolean> | undefined {\n return c.meta.accordionState;\n}\n","import {\n controlTitle,\n createGroupRenderer,\n FormNode,\n GroupRendererProps,\n GroupRenderType,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\nimport React from \"react\";\nimport { useControl } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\n\nexport interface TabsRendererOptions {\n className?: string;\n tabListClass?: string;\n tabClass?: string;\n labelClass?: string;\n activeClass?: string;\n inactiveClass?: string;\n contentClass?: string;\n}\n\nexport function createTabsRenderer(options: TabsRendererOptions = {}) {\n return createGroupRenderer(\n (p, renderer) => <TabsGroupRenderer {...p} options={options} />,\n {\n renderType: GroupRenderType.Tabs,\n },\n );\n}\n\nexport function TabsGroupRenderer({\n formNode,\n className,\n options,\n renderChild,\n designMode,\n}: GroupRendererProps & { options: TabsRendererOptions }) {\n const tabIndex = useControl(0);\n const {\n tabClass,\n labelClass,\n tabListClass,\n inactiveClass,\n activeClass,\n contentClass,\n } = options;\n const currentTab = tabIndex.value;\n return designMode ? (\n <>{formNode.getChildNodes().map((x, i) => renderTabs([x], i))}</>\n ) : (\n renderTabs(formNode.getChildNodes(), 0)\n );\n\n function renderTabs(tabs: FormNode[], key: number) {\n return (\n <div key={key} className={rendererClass(className, options.className)}>\n <ul className={rendererClass(null, tabListClass)}>\n {tabs.map((x, i) => (\n <li\n key={i}\n className={rendererClass(null, tabClass)}\n onClick={() => (tabIndex.value = i)}\n >\n <span\n className={rendererClass(\n null,\n clsx(\n labelClass,\n i == currentTab ? activeClass : inactiveClass,\n ),\n )}\n >\n {x.definition.title ? x.definition.title : \"<untitled>\"}\n </span>\n </li>\n ))}\n </ul>\n <div className={rendererClass(null, contentClass)}>\n {renderChild(currentTab, tabs[currentTab])}\n </div>\n </div>\n );\n }\n}\n","import {\n ControlLayoutProps,\n FlexRenderer,\n FormRenderer,\n GridRenderer,\n GroupRendererProps,\n GroupRendererRegistration,\n isFlexRenderer,\n isGridRenderer,\n isSelectChildRenderer,\n isTabsRenderer,\n rendererClass,\n SelectChildRenderer,\n} from \"@react-typed-forms/schemas\";\nimport clsx from \"clsx\";\nimport React, { CSSProperties, useCallback } from \"react\";\nimport { useTrackedComponent } from \"@react-typed-forms/core\";\nimport { createTabsRenderer, TabsRendererOptions } from \"./TabsRenderer\";\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\nexport interface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n tabs?: TabsRendererOptions;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const tabsRenderer = createTabsRenderer(options?.tabs);\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps, renderers: FormRenderer) {\n const { renderChild, renderOptions, formNode } = props;\n if (isTabsRenderer(renderOptions))\n return tabsRenderer.render(props, renderers);\n if (isSelectChildRenderer(renderOptions) && !props.designMode) {\n return (\n <SelectChildGroupRenderer {...props} renderOptions={renderOptions} />\n );\n }\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n return (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {formNode.getChildNodes().map((c, i) => renderChild(i, c))}\n </div>\n );\n }\n\n return { type: \"group\", render };\n}\n\ntype SelectChildProps = Pick<\n GroupRendererProps,\n \"useEvalExpression\" | \"dataContext\" | \"formNode\" | \"renderChild\"\n> & {\n renderOptions: SelectChildRenderer;\n};\nfunction SelectChildGroupRenderer(props: SelectChildProps) {\n const { useEvalExpression, renderOptions } = props;\n const dynHook = useEvalExpression(renderOptions?.childIndexExpression, (x) =>\n x == \"string\" ? parseInt(x) : x,\n );\n const Render = useTrackedComponent(\n (p: SelectChildProps) => {\n const ctrl = dynHook.runHook(p.dataContext, dynHook.state);\n const childIndex = ctrl?.value;\n const childDefinitions = p.formNode.getChildNodes();\n return (\n <div>\n {typeof childIndex === \"number\" &&\n childIndex < childDefinitions.length &&\n childIndex >= 0 &&\n p.renderChild(childIndex, childDefinitions[childIndex])}\n </div>\n );\n },\n [dynHook.deps],\n );\n return <Render {...props} />;\n}\n","import React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport {\n createVisibilityRenderer,\n VisibilityRendererProps,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n","import { Control, useComputed } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n coerceToString,\n ControlDataContext,\n createDataRenderer,\n DataRenderType,\n getJsonPath,\n getRootDataNode,\n JsonataRenderOptions,\n rendererClass,\n SchemaDataNode,\n useJsonataExpression,\n} from \"@react-typed-forms/schemas\";\n\nexport function createJsonataRenderer(className?: string) {\n return createDataRenderer(\n (p) => (\n <JsonataRenderer\n renderOptions={p.renderOptions as JsonataRenderOptions}\n className={rendererClass(p.className, className)}\n dataNode={p.dataNode}\n dataContext={p.dataContext}\n control={p.control}\n readonly={p.readonly}\n />\n ),\n { renderType: DataRenderType.Jsonata },\n );\n}\n\nexport function JsonataRenderer({\n control,\n renderOptions,\n readonly,\n className,\n dataContext,\n dataNode,\n}: {\n control: Control<any>;\n renderOptions: JsonataRenderOptions;\n className?: string;\n dataContext: ControlDataContext;\n dataNode: SchemaDataNode;\n readonly: boolean;\n}) {\n const sdn = dataNode.elementIndex != null ? dataNode : dataContext.parentNode;\n const bindings = useComputed(() => ({\n value: control.value,\n readonly,\n disabled: control.disabled,\n formData: dataContext.formData,\n dataPath: getJsonPath(dataNode),\n }));\n const rendered = useJsonataExpression(\n renderOptions.expression,\n getRootDataNode(sdn).control!,\n getJsonPath(sdn),\n bindings,\n coerceToString,\n );\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: rendered.value }}\n />\n );\n}\n","import {\n createDataRenderer,\n DataRenderType,\n FieldType,\n getLastDefinedValue,\n getNullToggler,\n} from \"@react-typed-forms/schemas\";\n\nexport function createNullToggleRenderer() {\n return createDataRenderer(\n ({ control, field, renderOptions, ...props }, renderers) => {\n const lastDefined = getLastDefinedValue(control);\n if (lastDefined.current.value == null)\n lastDefined.value = props.definition.defaultValue;\n const nullControl = getNullToggler(control);\n nullControl.disabled = props.readonly;\n return (layout) => {\n return renderers.renderData({\n ...props,\n control: nullControl,\n field: { ...field, type: FieldType.Bool },\n renderOptions: { type: DataRenderType.Checkbox },\n })(layout);\n };\n },\n );\n}\n","import clsx from \"clsx\";\nimport React, { Fragment, ReactNode } from \"react\";\nimport { RenderElements, useTrackedComponent } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n applyArrayLengthRestrictions,\n ArrayActionOptions,\n ArrayRendererProps,\n ArrayRendererRegistration,\n ArrayRenderOptions,\n ControlDataContext,\n ControlDefinition,\n ControlDefinitionType,\n createArrayActions,\n createDataRenderer,\n DataControlDefinition,\n DataRendererProps,\n DataRendererRegistration,\n DataRenderType,\n EvalExpressionHook,\n FormNode,\n FormRenderer,\n getLengthRestrictions,\n GroupedControlsDefinition,\n GroupRenderType,\n isArrayRenderer,\n isCompoundField,\n lookupDataNode,\n makeHookDepString,\n mergeObjects,\n nodeForControl,\n SchemaDataNode,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultArrayDataRenderer(\n defaultActions?: ArrayActionOptions,\n): DataRendererRegistration {\n return createDataRenderer(\n (props, renderers) => {\n return (\n <DataArrayRenderer\n dataProps={props}\n renderers={renderers}\n defaultActions={defaultActions}\n />\n );\n },\n { renderType: DataRenderType.Array, collection: true },\n );\n}\n\nexport function DataArrayRenderer({\n dataProps,\n renderers,\n defaultActions,\n}: {\n renderers: FormRenderer;\n dataProps: DataRendererProps;\n defaultActions?: ArrayActionOptions;\n}) {\n const {\n renderOptions,\n control,\n field,\n readonly,\n designMode,\n required,\n renderChild,\n definition,\n className,\n style,\n useChildVisibility,\n dataContext,\n formNode,\n } = dataProps;\n const { addText, noAdd, noRemove, noReorder, removeText } = mergeObjects(\n isArrayRenderer(renderOptions) ? renderOptions : ({} as ArrayRenderOptions),\n defaultActions as ArrayRenderOptions,\n );\n const childOptions = isArrayRenderer(renderOptions)\n ? renderOptions.childOptions\n : undefined;\n\n const renderAsElement = !isCompoundField(field);\n const childDefinition: FormNode = nodeForControl(\n !renderAsElement\n ? ({\n type: ControlDefinitionType.Group,\n children: definition.children,\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n } as GroupedControlsDefinition)\n : ({\n type: ControlDefinitionType.Data,\n field: definition.field,\n children: definition.children,\n renderOptions: childOptions ?? { type: DataRenderType.Standard },\n hideTitle: true,\n } as DataControlDefinition),\n formNode.tree,\n );\n\n const visibilities = (definition.children ?? []).map(\n (x) => [useChildVisibility(x, undefined, true), x] as const,\n );\n const deps = makeHookDepString(visibilities, (x) => x[0].deps);\n const Entry = useTrackedComponent(RenderEntry, [deps]);\n\n const arrayProps = {\n ...createArrayActions(control.as(), field, {\n addText,\n removeText,\n noAdd,\n noRemove,\n readonly,\n disabled: control.disabled,\n designMode,\n }),\n required,\n renderElement: (i, wrap) => (\n <Entry\n index={i}\n renderChildElement={renderChildElement}\n dataContext={dataContext}\n visibilities={visibilities}\n wrap={wrap}\n />\n ),\n className: className ? className : undefined,\n style,\n ...getLengthRestrictions(definition),\n } satisfies ArrayRendererProps;\n\n return renderers.renderArray(arrayProps);\n\n function renderChildElement(i: number, elementNode: SchemaDataNode) {\n return renderChild(\n control.elements?.[i].uniqueId ?? i,\n childDefinition,\n renderAsElement\n ? {\n elementIndex: i,\n }\n : { parentDataNode: elementNode },\n );\n }\n}\n\nfunction RenderEntry({\n index: i,\n renderChildElement,\n visibilities,\n wrap,\n dataContext,\n}: {\n index: number;\n renderChildElement: (i: number, element: SchemaDataNode) => ReactNode;\n visibilities: (readonly [EvalExpressionHook<boolean>, ControlDefinition])[];\n dataContext: ControlDataContext;\n wrap: (n: ReactNode) => ReactNode;\n}) {\n const elementNode = dataContext.dataNode!.getChildElement(i);\n const childVis = visibilities.map(\n ([hook, def]) =>\n hook.runHook(\n {\n ...dataContext,\n parentNode: elementNode,\n dataNode: lookupDataNode(def, elementNode),\n },\n hook.state,\n ).value,\n );\n const anyVisible = childVis.length == 0 || childVis.some((x) => x === true);\n if (!anyVisible) return undefined;\n return wrap(renderChildElement(i, elementNode));\n}\n\nexport interface DefaultArrayRendererOptions extends ArrayActionOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n return {\n render: (props, { renderAction }) => (\n <DefaultArrayRenderer\n {...props}\n {...options}\n renderAction={renderAction}\n />\n ),\n type: \"array\",\n };\n}\n\nexport interface DefaultArrayRendererProps\n extends DefaultArrayRendererOptions,\n ArrayRendererProps {\n renderAction: (props: ActionRendererProps) => ReactNode;\n}\n\nexport function DefaultArrayRenderer(props: DefaultArrayRendererProps) {\n const {\n renderElement,\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n arrayControl,\n renderAction,\n style,\n } = props;\n const { addAction, removeAction } = applyArrayLengthRestrictions(props);\n return (\n <div style={style}>\n <div className={clsx(className, removeAction && removableClass)}>\n <RenderElements control={arrayControl}>\n {(_, x) =>\n renderElement(x, (children) =>\n removeAction ? (\n <>\n <div className={clsx(childClass, removableChildClass)}>\n {children}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </>\n ) : (\n <div className={childClass}>{children}</div>\n ),\n )\n }\n </RenderElements>\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n}\n","import React from \"react\";\nimport {\n Control,\n controlValues,\n removeElement,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AutocompleteClasses,\n createDataRenderer,\n DataRenderType,\n FieldOption,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\nimport { useAutocomplete, UseAutocompleteProps } from \"@mui/base\";\nimport clsx from \"clsx\";\n\nexport interface AutocompleteRendererOptions {\n className?: string;\n listContainerClass?: string;\n listEntryClass?: string;\n chipContainerClass?: string;\n chipCloseButtonClass?: string;\n}\n\nexport interface AutocompleteProps<A, Multiple extends boolean>\n extends UseAutocompleteProps<A, Multiple, false, true> {\n control: Control<any>;\n className?: string;\n classes: AutocompleteRendererOptions;\n controlClasses?: AutocompleteClasses;\n}\n\nconst inputClass =\n \"leading-[1.5] text-surface-900 bg-[inherit] border-0 rounded-[inherit] px-3 py-2 outline-0 grow shrink-0 basis-auto focus:outline-0 focus:ring-0 focus:shadow-none\";\n\nexport function createAutocompleteRenderer(\n options: AutocompleteRendererOptions = {},\n) {\n return createDataRenderer(\n (p) => {\n return p.field.collection ? (\n <MultipleAutocomplete\n options={p.options ?? []}\n control={p.control}\n className={rendererClass(p.className, options.className)}\n classes={options}\n controlClasses={p.renderOptions as AutocompleteClasses}\n readOnly={p.readonly}\n id={p.id}\n />\n ) : (\n <SingleAutocomplete\n options={p.options ?? []}\n control={p.control}\n className={rendererClass(p.className, options.className)}\n classes={options}\n controlClasses={p.renderOptions as AutocompleteClasses}\n readOnly={p.readonly}\n id={p.id}\n />\n );\n },\n {\n renderType: DataRenderType.Autocomplete,\n },\n );\n}\n\nfunction SingleAutocomplete({\n ...props\n}: AutocompleteProps<FieldOption | string, false>) {\n const { id, control, className, readOnly, classes, controlClasses } = props;\n const { disabled } = control;\n\n const inputControl = useControl<string>(\"\");\n const selectedOptionControl = useControl<string | FieldOption | null>(null);\n\n const listContainerClass = rendererClass(\n controlClasses?.listContainerClass,\n classes.listContainerClass,\n );\n\n const listEntryClass = rendererClass(\n controlClasses?.listEntryClass,\n classes.listEntryClass,\n );\n\n useControlEffect(\n controlValues(inputControl, selectedOptionControl),\n ([text, selected]) => {\n control.value = selected\n ? typeof selected === \"string\"\n ? selected\n : selected.value\n : text;\n },\n );\n\n const {\n getRootProps,\n getInputProps,\n getListboxProps,\n getOptionProps,\n groupedOptions,\n popupOpen,\n focused,\n getPopupIndicatorProps,\n } = useAutocomplete({\n freeSolo: true,\n multiple: false,\n value: selectedOptionControl.value,\n inputValue: inputControl.value,\n getOptionLabel: (v) => (typeof v === \"string\" ? v : v.name),\n filterOptions: (o, s) =>\n o.filter((o) => {\n const label = typeof o === \"string\" ? o : o.name;\n return label.toLowerCase().includes(s.inputValue.toLowerCase());\n }),\n onInputChange: (_, v, reason) => {\n inputControl.value = v;\n if (reason === \"input\") selectedOptionControl.value = null;\n },\n onChange: (_, v, reason) => {\n if (reason === \"selectOption\") {\n selectedOptionControl.value = v;\n }\n },\n ...props,\n });\n\n return (\n <div id={id} className={\"relative\"} {...getRootProps()}>\n <div\n className={clsx(\n className,\n focused\n ? \"border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200\"\n : \"shadow-[0_2px_2px_transparent] shadow-surface-50\",\n )}\n >\n <input\n type={\"text\"}\n {...getInputProps()}\n placeholder={controlClasses?.placeholder ?? \"\"}\n className={inputClass}\n />\n\n <button\n {...getPopupIndicatorProps()}\n disabled={disabled || readOnly}\n className={\n \"outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]\"\n }\n >\n <li\n className={clsx(\n \"fa-solid fa-angle-down\",\n \"text-primary-500\",\n popupOpen && \"rotate-180\",\n )}\n />\n </button>\n </div>\n {groupedOptions.length > 0 && popupOpen && (\n <ul {...getListboxProps()} className={listContainerClass}>\n {(groupedOptions as FieldOption[]).map((option, index) => {\n const optionProps = getOptionProps({ option, index });\n return (\n <li\n {...optionProps}\n key={optionProps.key}\n className={listEntryClass}\n >\n {option.name}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n}\n\nfunction MultipleAutocomplete({\n ...props\n}: AutocompleteProps<FieldOption, true>) {\n const { id, control, className, readOnly, classes, controlClasses } = props;\n const { disabled } = control;\n\n const inputControl = useControl<string>(\"\");\n const selectedOptionsControl = useControl<(string | FieldOption)[] | null>(\n null,\n );\n\n const listContainerClass = rendererClass(\n controlClasses?.listContainerClass,\n classes.listContainerClass,\n );\n const listEntryClass = rendererClass(\n controlClasses?.listEntryClass,\n classes.listEntryClass,\n );\n\n const chipContainerClass = rendererClass(\n controlClasses?.chipContainerClass,\n classes.chipContainerClass,\n );\n\n const chipCloseButtonClass = rendererClass(\n controlClasses?.chipCloseButtonClass,\n classes.chipCloseButtonClass,\n );\n\n useControlEffect(\n controlValues(inputControl, selectedOptionsControl),\n ([text, selected]) => {\n const selectedValues =\n selected?.map((v) => {\n return typeof v === \"string\" ? v : v.value;\n }) ?? [];\n control.value = text ? selectedValues.concat(text) : selectedValues;\n },\n );\n\n const {\n getRootProps,\n getInputProps,\n getListboxProps,\n getOptionProps,\n groupedOptions,\n popupOpen,\n focused,\n getPopupIndicatorProps,\n } = useAutocomplete({\n value: selectedOptionsControl.value ?? [],\n inputValue: inputControl.value,\n freeSolo: true,\n multiple: true,\n getOptionLabel: (v) => (typeof v === \"string\" ? v : v.name),\n filterOptions: (o, s) =>\n o.filter((o) => {\n const label = typeof o === \"string\" ? o : o.name;\n return label.toLowerCase().includes(s.inputValue.toLowerCase());\n }),\n onInputChange: (_, v) => {\n inputControl.value = v;\n },\n onChange: (_, v, reason) => {\n if (reason === \"selectOption\" || reason === \"removeOption\") {\n selectedOptionsControl.value = v;\n }\n },\n ...props,\n });\n\n return (\n <div id={id} className={\"relative\"} {...getRootProps()}>\n <div\n className={clsx(\n className,\n focused\n ? \"border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200\"\n : \"shadow-[0_2px_2px_transparent] shadow-surface-50\",\n )}\n >\n <div className={\"flex flex-1 flex-row flex-wrap\"}>\n {selectedOptionsControl.value?.map((v) => (\n <Chip\n key={typeof v === \"string\" ? v : v.name}\n text={typeof v === \"string\" ? v : v.name}\n chipContainerClass={chipContainerClass}\n chipCloseButtonClass={chipCloseButtonClass}\n onDeleteClick={() => {\n const c = selectedOptionsControl.elements.find(\n (x) => x.value == v,\n );\n if (c) removeElement(selectedOptionsControl, c);\n }}\n />\n ))}\n <input\n type={\"text\"}\n {...getInputProps()}\n placeholder={controlClasses?.placeholder ?? \"\"}\n className={clsx(inputClass)}\n />\n </div>\n\n <button\n {...getPopupIndicatorProps()}\n disabled={disabled || readOnly}\n className={\n \"outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]\"\n }\n >\n <i\n className={clsx(\n \"fa-solid fa-angle-down\",\n \"text-primary-500\",\n popupOpen && \"rotate-180\",\n )}\n />\n </button>\n </div>\n {groupedOptions.length > 0 && popupOpen && (\n <ul {...getListboxProps()} className={listContainerClass}>\n {(groupedOptions as FieldOption[]).map((option, index) => {\n const optionProps = getOptionProps({ option, index });\n return (\n <li\n {...optionProps}\n key={optionProps.key}\n className={listEntryClass}\n >\n {option.name}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n}\n\nfunction Chip({\n text,\n chipContainerClass,\n chipCloseButtonClass,\n onDeleteClick,\n}: {\n text: string;\n chipContainerClass?: string;\n chipCloseButtonClass?: string;\n onDeleteClick?: () => void;\n}) {\n return (\n <div className={chipContainerClass}>\n {text}\n <i\n className={chipCloseButtonClass}\n onClick={() => {\n onDeleteClick?.();\n }}\n />\n </div>\n );\n}\n","import { Control, setFields, useControl } from \"@react-typed-forms/core\";\nimport {\n addMissingControlsForSchema,\n buildSchema,\n ControlDefinitionExtension,\n createDataRenderer,\n FormRenderer,\n groupedControl,\n makeSchemaDataNode,\n RenderOptions,\n rootSchemaNode,\n schemaDataForFieldRef,\n schemaForFieldRef,\n SchemaNode,\n stringField,\n useControlRendererComponent,\n} from \"@react-typed-forms/schemas\";\nimport React, { useMemo } from \"react\";\n\nexport interface ValueForFieldRenderOptions extends RenderOptions {\n type: \"ValueForField\";\n fieldRef?: string | null;\n}\n\nconst RenderType = \"ValueForField\";\n\nexport const ValueForFieldExtension: ControlDefinitionExtension = {\n RenderOptions: {\n value: RenderType,\n name: \"Value For Field\",\n fields: buildSchema<Omit<ValueForFieldRenderOptions, \"type\">>({\n fieldRef: stringField(\"Field Reference\"),\n }),\n },\n};\n\nexport interface ValueForFieldOptions {\n schema: SchemaNode;\n}\n\nexport function createValueForFieldRenderer(options: ValueForFieldOptions) {\n return createDataRenderer(\n (o, renderer) => {\n const { fieldRef } = o.renderOptions as ValueForFieldRenderOptions;\n const actualFieldRef = fieldRef\n ? (schemaDataForFieldRef(fieldRef, o.dataContext.parentNode)?.control\n ?.value as string)\n : undefined;\n const node = actualFieldRef\n ? schemaForFieldRef(actualFieldRef, options.schema)\n : undefined;\n return node ? (\n <ValueForField renderer={renderer} schema={node} control={o.control} />\n ) : (\n <>{actualFieldRef ? \"No schema node for \" + actualFieldRef : \"\"}</>\n );\n },\n {\n renderType: RenderType,\n },\n );\n}\n\nfunction ValueForField({\n schema,\n renderer,\n control,\n}: {\n schema: SchemaNode;\n renderer: FormRenderer;\n control: Control<any>;\n}) {\n const value = useControl({ default: undefined }, undefined, (e) =>\n setFields(e, { default: control }),\n );\n const [controls, rootSchema] = useMemo(() => {\n const rootSchema = rootSchemaNode([\n {\n ...schema.field,\n field: \"default\",\n required: false,\n notNullable: false,\n onlyForTypes: null,\n defaultValue: undefined,\n },\n ]);\n return [addMissingControlsForSchema(rootSchema, []), rootSchema];\n }, [schema]);\n const Render = useControlRendererComponent(\n groupedControl(controls),\n renderer,\n { disabled: control.disabled },\n makeSchemaDataNode(rootSchema, value),\n );\n return <Render />;\n}\n","import {\n AdornmentPlacement,\n AdornmentRendererRegistration,\n appendMarkupAt,\n ControlAdornmentType,\n ControlDataContext,\n createAdornmentRenderer,\n getAllValues,\n getIsEditing,\n getNullToggler,\n OptionalAdornment,\n wrapMarkup,\n} from \"@react-typed-forms/schemas\";\nimport { Control, Fcheckbox, newControl } from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\n\nexport interface OptionalRenderProps {\n allValues: Control<unknown[]>;\n editing: Control<boolean | undefined>;\n children: ReactNode;\n adornment: OptionalAdornment;\n nullToggler: Control<boolean>;\n dataContext: ControlDataContext;\n options: DefaultOptionalAdornmentOptions;\n}\nexport interface DefaultOptionalAdornmentOptions {\n className?: string;\n checkClass?: string;\n childWrapperClass?: string;\n multiValuesClass?: string;\n multiValuesText?: string;\n nullWrapperClass?: string;\n setNullText?: string;\n defaultPlacement?: AdornmentPlacement;\n hideEdit?: boolean;\n customRender?: (props: OptionalRenderProps) => ReactNode;\n}\nexport function createOptionalAdornment(\n options: DefaultOptionalAdornmentOptions = {},\n): AdornmentRendererRegistration {\n return createAdornmentRenderer(\n (props, renderers) => {\n const { dataContext } = props;\n const dataControl =\n dataContext.dataNode?.control ?? newControl(undefined);\n const adornment = props.adornment as OptionalAdornment;\n const editing = getIsEditing(dataControl);\n const isEditing = editing.value;\n const nullToggler = getNullToggler(dataControl);\n if (isEditing === undefined && adornment.editSelectable)\n editing.value = false;\n dataControl.disabled =\n !isEditing || !!(adornment.allowNull && !nullToggler.value);\n return {\n apply: (rl) => {\n if (props.formOptions.readonly) return rl;\n if (!options.hideEdit && adornment.editSelectable)\n appendMarkupAt(\n adornment.placement ??\n options.defaultPlacement ??\n AdornmentPlacement.LabelStart,\n <Fcheckbox control={editing} className={options.checkClass} />,\n )(rl);\n wrapMarkup(\"children\", (children) =>\n options.customRender ? (\n options.customRender({\n allValues: getAllValues(dataControl),\n editing,\n children,\n adornment,\n nullToggler,\n dataContext,\n options,\n })\n ) : (\n <OptionalEditRenderer\n children={children}\n options={options}\n editing={editing.as()}\n adornment={adornment}\n dataControl={dataControl}\n />\n ),\n )(rl);\n },\n priority: 0,\n adornment,\n };\n },\n { adornmentType: ControlAdornmentType.Optional },\n );\n}\n\nexport function OptionalEditRenderer({\n children,\n options,\n adornment,\n editing,\n dataControl,\n}: {\n options: DefaultOptionalAdornmentOptions;\n children: ReactNode;\n adornment: OptionalAdornment;\n editing: Control<boolean | undefined>;\n dataControl: Control<any>;\n}) {\n const nullToggler = getNullToggler(dataControl);\n const allValues = getAllValues(dataControl);\n const multipleValues = allValues.value.length > 1;\n const nullEdit = adornment.allowNull ? (\n <div className={options.nullWrapperClass}>\n <input\n type=\"checkbox\"\n className={options.checkClass}\n checked={!nullToggler.value}\n onChange={(e) => (nullToggler.value = !e.target.checked)}\n />\n <span>{options.setNullText ?? \"Set to null\"}</span>\n </div>\n ) : undefined;\n return (\n <div className={options.className}>\n {multipleValues && editing.value === false ? (\n <div className={options.multiValuesClass}>\n {options.multiValuesText ?? \"Differing values\"}\n </div>\n ) : (\n <div className={options.childWrapperClass}>\n {nullEdit}\n {children}\n </div>\n )}\n </div>\n );\n}\n","import React, { useRef } from \"react\";\nimport { useControlEffect } from \"@react-typed-forms/core\";\nimport {\n createDataRenderer,\n DataRendererProps,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport function createMultilineFieldRenderer(className?: string) {\n return createDataRenderer((p) => (\n <MultilineTextfield\n {...p}\n className={rendererClass(p.className, className)}\n />\n ));\n}\n\nexport function MultilineTextfield({ control, className }: DataRendererProps) {\n const codeRef = useRef<HTMLElement | null>(null);\n useControlEffect(\n () => control.value,\n (v) => {\n const c = codeRef.current;\n if (c && c.textContent !== v) {\n c.textContent = v;\n }\n },\n true,\n );\n return (\n <code\n contentEditable={!control.disabled}\n className={className}\n onInput={(t) => (control.value = t.currentTarget.textContent)}\n ref={codeRef}\n />\n );\n}\n","import {\n createDefaultDisplayRenderer,\n DefaultDisplayRendererOptions,\n} from \"./components/DefaultDisplay\";\nimport {\n createDefaultLayoutRenderer,\n DefaultLayoutRendererOptions,\n} from \"./components/DefaultLayout\";\nimport { createDefaultVisibilityRenderer } from \"./components/DefaultVisibility\";\nimport React, { Fragment, ReactElement, ReactNode, useCallback } from \"react\";\nimport clsx from \"clsx\";\nimport {\n createSelectRenderer,\n SelectRendererOptions,\n} from \"./components/SelectDataRenderer\";\nimport { DefaultDisplayOnly } from \"./components/DefaultDisplayOnly\";\nimport { Control, useControlEffect } from \"@react-typed-forms/core\";\nimport { ControlInput, createInputConversion } from \"./components/ControlInput\";\nimport {\n createDefaultArrayDataRenderer,\n createDefaultArrayRenderer,\n DefaultArrayRendererOptions,\n} from \"./components/DefaultArrayRenderer\";\nimport {\n CheckRendererOptions,\n createCheckboxRenderer,\n createCheckListRenderer,\n createRadioRenderer,\n} from \"./components/CheckRenderer\";\nimport { DefaultAccordion } from \"./components/DefaultAccordion\";\nimport { createNullToggleRenderer } from \"./components/NullToggle\";\nimport { createMultilineFieldRenderer } from \"./components/MultilineTextfield\";\nimport { createJsonataRenderer } from \"./components/JsonataRenderer\";\nimport {\n ActionRendererProps,\n ActionRendererRegistration,\n AdornmentPlacement,\n AdornmentRendererRegistration,\n appendMarkupAt,\n ArrayActionOptions,\n ControlDataContext,\n createActionRenderer,\n createDataRenderer,\n DataRendererRegistration,\n DataRenderType,\n DefaultRenderers,\n FieldOption,\n FieldType,\n hasOptions,\n isAccordionAdornment,\n isDataGroupRenderer,\n isDisplayOnlyRenderer,\n isIconAdornment,\n isOptionalAdornment,\n isSetFieldAdornment,\n isTextfieldRenderer,\n LabelRendererRegistration,\n LabelType,\n rendererClass,\n schemaDataForFieldRef,\n SetFieldAdornment,\n useDynamicHooks,\n wrapLayout,\n} from \"@react-typed-forms/schemas\";\nimport {\n createDefaultGroupRenderer,\n DefaultGroupRendererOptions,\n} from \"./components/DefaultGroupRenderer\";\nimport {\n AutocompleteRendererOptions,\n createAutocompleteRenderer,\n} from \"./components/AutocompleteRenderer\";\nimport {\n createOptionalAdornment,\n DefaultOptionalAdornmentOptions,\n} from \"./adornments/optionalAdornment\";\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\nexport interface DefaultActionRendererOptions {\n className?: string;\n renderContent?: (\n actionText: string,\n actionId: string,\n actionData: any,\n ) => ReactNode;\n}\n\nexport function createButtonActionRenderer(\n actionId: string | string[] | undefined,\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n return createActionRenderer(\n actionId,\n ({\n onClick,\n actionText,\n className,\n style,\n actionId,\n actionData,\n disabled,\n }: ActionRendererProps) => {\n return (\n <button\n className={rendererClass(className, options.className)}\n disabled={disabled}\n style={style}\n onClick={onClick}\n >\n {options.renderContent?.(actionText, actionId, actionData) ??\n actionText}\n </button>\n );\n },\n );\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\n\nexport interface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n checkboxOptions?: CheckRendererOptions;\n checkOptions?: CheckRendererOptions;\n radioOptions?: CheckRendererOptions;\n checkListOptions?: CheckRendererOptions;\n autocompleteOptions?: AutocompleteRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n multilineClass?: string;\n jsonataClass?: string;\n arrayOptions?: ArrayActionOptions;\n defaultEmptyText?: string;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const jsonataRenderer = createJsonataRenderer(options.jsonataClass);\n const nullToggler = createNullToggleRenderer();\n const multilineRenderer = createMultilineFieldRenderer(\n options.multilineClass,\n );\n const checkboxRenderer = createCheckboxRenderer(\n options.checkOptions ?? options.checkboxOptions,\n );\n const selectRenderer = createSelectRenderer(options.selectOptions);\n const radioRenderer = createRadioRenderer(\n options.radioOptions ?? options.checkOptions,\n );\n const checkListRenderer = createCheckListRenderer(\n options.checkListOptions ?? options.checkOptions,\n );\n const {\n inputClass,\n booleanOptions,\n optionRenderer,\n displayOnlyClass,\n defaultEmptyText,\n } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n const arrayRenderer = createDefaultArrayDataRenderer(options.arrayOptions);\n\n const autocompleteRenderer = createAutocompleteRenderer(\n options.autocompleteOptions,\n );\n\n return createDataRenderer((props, renderers) => {\n const { field } = props;\n const fieldType = field.type;\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (\n field.collection &&\n props.elementIndex == null &&\n (renderType == DataRenderType.Standard ||\n renderType == DataRenderType.Array)\n ) {\n return arrayRenderer.render(props, renderers);\n }\n if (fieldType === FieldType.Compound) {\n const groupOptions = (isDataGroupRenderer(renderOptions)\n ? renderOptions.groupOptions\n : undefined) ?? { type: \"Standard\", hideTitle: true };\n return renderers.renderGroup({ ...props, renderOptions: groupOptions });\n }\n if (props.displayOnly || isDisplayOnlyRenderer(renderOptions))\n return (p) => {\n return {\n ...p,\n className: \"@ \" + rendererClass(p.className, displayOnlyClass),\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={\n isDisplayOnlyRenderer(renderOptions) && renderOptions.emptyText\n ? renderOptions.emptyText\n : defaultEmptyText\n }\n />\n ),\n };\n };\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.NullToggle:\n return nullToggler.render(props, renderers);\n case DataRenderType.CheckList:\n return checkListRenderer.render(props, renderers);\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n case DataRenderType.Radio:\n return radioRenderer.render(props, renderers);\n case DataRenderType.Checkbox:\n return checkboxRenderer.render(props, renderers);\n case DataRenderType.Jsonata:\n return jsonataRenderer.render(props, renderers);\n case DataRenderType.Autocomplete:\n return autocompleteRenderer.render(props, renderers);\n }\n if (fieldType == FieldType.Any) {\n return (\n <>\n Can't render field: {field.displayName ?? field.field} ({renderType})\n </>\n );\n }\n if (isTextfieldRenderer(renderOptions) && renderOptions.multiline)\n return multilineRenderer.render(props, renderers);\n const placeholder = isTextfieldRenderer(renderOptions)\n ? renderOptions.placeholder\n : undefined;\n\n return (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n placeholder={placeholder ?? undefined}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport interface DefaultAccordionRendererOptions {\n className?: string;\n titleClass?: string;\n togglerClass?: string;\n iconOpenClass?: string;\n iconClosedClass?: string;\n renderTitle?: (\n title: string | undefined,\n current: Control<boolean>,\n ) => ReactNode;\n renderToggler?: (current: Control<boolean>, title: ReactNode) => ReactNode;\n useCss?: boolean;\n}\n\nexport interface DefaultAdornmentRendererOptions {\n accordion?: DefaultAccordionRendererOptions;\n optional?: DefaultOptionalAdornmentOptions;\n}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n const optional = createOptionalAdornment(options.optional);\n return {\n type: \"adornment\",\n render: (props, renderers) => {\n if (isOptionalAdornment(props.adornment)) {\n return optional.render(props, renderers);\n }\n const { adornment, designMode, dataContext, useExpr } = props;\n return {\n apply: (rl) => {\n if (isSetFieldAdornment(adornment) && useExpr) {\n const hook = useExpr(adornment.expression, (x) => x);\n const dynamicHooks = useDynamicHooks({ value: hook });\n const SetFieldWrapper = useCallback(setFieldWrapper, [\n dynamicHooks,\n ]);\n return wrapLayout((x) => (\n <SetFieldWrapper\n children={x}\n parentContext={dataContext}\n adornment={adornment}\n />\n ))(rl);\n\n function setFieldWrapper({\n children,\n adornment,\n parentContext,\n }: {\n children: ReactNode;\n adornment: SetFieldAdornment;\n parentContext: ControlDataContext;\n }) {\n const { value } = dynamicHooks(parentContext);\n const fieldNode = schemaDataForFieldRef(\n adornment.field,\n parentContext.parentNode,\n );\n const otherField = fieldNode.control;\n const always = !adornment.defaultOnly;\n useControlEffect(\n () => [value?.value, otherField?.value == null],\n ([v]) => {\n otherField?.setValue((x) => (always || x == null ? v : x));\n },\n true,\n );\n return children;\n }\n }\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n if (isAccordionAdornment(adornment)) {\n return wrapLayout((x) => (\n <DefaultAccordion\n renderers={renderers}\n children={x}\n accordion={adornment}\n contentStyle={rl.style}\n contentClassName={rl.className}\n designMode={designMode}\n dataContext={dataContext}\n {...options.accordion}\n />\n ))(rl);\n }\n },\n priority: 0,\n adornment,\n };\n },\n };\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n labelContainer?: (children: ReactElement) => ReactElement;\n}\n\nexport function createDefaultLabelRenderer(\n options?: DefaultLabelRendererOptions,\n): LabelRendererRegistration {\n const {\n className,\n groupLabelClass,\n controlLabelClass,\n requiredElement,\n labelContainer,\n } = {\n requiredElement: <span> *</span>,\n labelContainer: (c: ReactElement) => c,\n ...options,\n };\n return {\n render: (props, labelStart, labelEnd, renderers) => {\n if (props.type == LabelType.Text) return props.label;\n return labelContainer(\n <>\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {labelStart}\n {renderers.renderLabelText(props.label)}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>,\n );\n },\n type: \"label\",\n };\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createButtonActionRenderer(undefined, options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nexport function createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n","import React from \"react\";\n\nimport { DefaultRendererOptions } from \"./createDefaultRenderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n tabs: {\n className: \"\",\n tabListClass:\n \"flex flex-wrap text-sm font-medium text-center text-gray-500 border-b border-gray-200 dark:border-gray-700 dark:text-gray-400\",\n tabClass: \"me-2\",\n labelClass:\n \"inline-flex items-center justify-center p-4 border-b-2 group\",\n inactiveClass:\n \"border-transparent rounded-t-lg hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300 cursor-pointer\",\n activeClass:\n \"text-blue-600 border-blue-600 rounded-t-lg active dark:text-blue-500 dark:border-blue-500\",\n contentClass: \"my-2\",\n },\n },\n action: {\n className: \"bg-primary-500 rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n checkOptions: {\n className: \"flex items-center gap-4\",\n entryClass: \"flex gap-1 items-center\",\n },\n selectOptions: { emptyText: \"<select>\" },\n multilineClass: \"border p-2 outline-0 whitespace-pre-wrap\",\n autocompleteOptions: {\n className:\n \"w-full flex gap-[5px] pr-[5px] overflow-hidden rounded-lg bg-white border border-solid border-gray-200 hover:border-primary-400 focus-visible:outline-0 shadow-[0_2px_4px_rgb(0_0_0_/_0.05)] min-h-[48px] py-1\",\n listContainerClass:\n \"absolute w-full text-sm box-border p-1.5 my-3 mx-0 min-w-[120px] rounded-xl overflow-auto outline-0 max-h-[300px] z-[1] bg-white border border-solid border-surface-200 text-surface-900 shadow-[0_4px_30px_transparent] shadow-surface-200\",\n listEntryClass:\n \"list-none p-2 rounded-lg cursor-default last-of-type:border-b-0 hover:cursor-pointer hover:bg-primary-100 aria-selected:bg-primary-200 aria-selected:text-primary-900 focused:bg-surface-100 focus-visible:bg-surface-100 focused:text-surface-900 focus-visible:text-surface-900 focus-visible:shadow-[0_0_0_3px_transparent] focus-visible:shadow-primary-200 focused:aria-selected:bg-primary-200 focus-visible:aria-selected:bg-primary-200 focused:aria-selected:text-primary-900 focus-visible:aria-selected:text-primary-900\",\n chipContainerClass:\n \"flex flex-row items-center px-3 py-1 rounded-full bg-surface-100 m-1 gap-2 truncate\",\n chipCloseButtonClass:\n \"fa-solid fa-xmark p-1 bg-surface-300 rounded-full min-w-[24px] flex justify-center text-surface-50 hover:bg-surface-400 hover:text-surface-100 hover:cursor-pointer\",\n },\n },\n adornment: {\n accordion: {\n className: \"flex items-center gap-2 my-2\",\n titleClass: \"cursor-pointer\",\n iconOpenClass: \"fa fa-chevron-up\",\n iconClosedClass: \"fa fa-chevron-down\",\n },\n optional: {\n checkClass: \"m-2\",\n className: \"flex items-center gap-2 w-full\",\n multiValuesClass: \"italic\",\n childWrapperClass: \"grow\",\n },\n },\n} satisfies DefaultRendererOptions;\n"],"names":["_excluded","createDefaultDisplayRenderer","options","render","props","React","createElement","DefaultDisplay","_extends","type","_ref","_effect","_useComponentTracking","data","display","className","style","_objectWithoutPropertiesLoose","DisplayDataType","Icon","clsx","getOverrideClass","value","iconClass","Text","rendererClass","textClassName","coerceToString","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","Custom","customId","_excluded2","ControlInput","toText","convert","control","_formControlProps","formControlProps","inputProps","textValue","useControl","useControlEffect","v","onChange","e","target","converted","undefined","createInputConversion","ft","FieldType","String","a","Bool","_a$toString","toString","Int","parseInt","DateTime","Date","Time","l","length","substring","Double","parseFloat","createSelectRenderer","createDataRenderer","asArray","_props$options","SelectDataRenderer","state","id","readonly","required","emptyText","requiredText","createSelectConversion","field","renderOption","x","i","key","disabled","name","_ref$emptyText","_ref$requiredText","showEmpty","useState","optionStringMap","useMemo","Object","fromEntries","map","optionGroups","Set","filter","group","concat","keys","label","o","createRadioRenderer","p","CheckButtons","classes","controlClasses","renderOptions","isChecked","setChecked","c","entryAdornment","fieldOptionAdornment","renderType","DataRenderType","Radio","createCheckListRenderer","Array","isArray","includes","checked","setValue","setIncluded","collection","CheckList","useComponentTracking","_ref$controlClasses","uniqueId","RenderArrayElements","array","useComputed","selOrUnsel","selectedClass","notSelectedClass","entryWrapperClass","onClick","entryClass","checkClass","readOnly","labelClass","htmlFor","elem","included","createCheckboxRenderer","renderer","children","Fcheckbox","as","renderLabel","Checkbox","createDefaultLayoutRenderer","createLayoutRenderer","renderers","layout","renderLayoutParts","wrapLayout","DefaultLayout","divRef","errorControl","meta","scrollElement","errorClass","_ref$renderError","renderError","_ref$layout","controlEnd","Fragment","controlStart","touched","error","DefaultDisplayOnly","_ref2","schemaInterface","isEmptyValue","DefaultAccordion","_dataContext$dataNode","accordion","contentStyle","contentClassName","designMode","iconOpenClass","iconClosedClass","_ref$renderTitle","renderTitle","t","renderToggler","titleClass","useCss","dataContext","dataControl","dataNode","parentNode","open","defaultExpanded","accordionState","isOpen","fullContentStyle","title","renderLabelText","toggler","TabsGroupRenderer","renderTabs","tabs","tabListClass","tabClass","tabIndex","currentTab","activeClass","inactiveClass","definition","contentClass","renderChild","formNode","getChildNodes","createDefaultGroupRenderer","tabsRenderer","createGroupRenderer","GroupRenderType","Tabs","createTabsRenderer","_ref$gridStyles","gridStyles","_ref2$columns","columns","gridClassName","gridTemplateColumns","defaultGridColumns","_ref$defaultGridColum","standardClassName","flexClassName","defaultFlexGap","isTabsRenderer","isSelectChildRenderer","SelectChildGroupRenderer","_ref3","isGridRenderer","isFlexRenderer","gap","flexDirection","direction","flexStyles","dynHook","useEvalExpression","childIndexExpression","Render","useTrackedComponent","ctrl","runHook","childIndex","childDefinitions","deps","createDefaultVisibilityRenderer","createVisibilityRenderer","DefaultVisibility","visibility","useEffect","ex","visible","showing","ref","createJsonataRenderer","JsonataRenderer","Jsonata","sdn","elementIndex","bindings","formData","dataPath","getJsonPath","rendered","useJsonataExpression","expression","getRootDataNode","createNullToggleRenderer","lastDefined","getLastDefinedValue","current","defaultValue","nullControl","getNullToggler","renderData","createDefaultArrayDataRenderer","defaultActions","DataArrayRenderer","dataProps","_definition$children","useChildVisibility","_mergeObjects","mergeObjects","isArrayRenderer","addText","noAdd","noRemove","removeText","childOptions","renderAsElement","isCompoundField","childDefinition","nodeForControl","ControlDefinitionType","Data","Standard","hideTitle","Group","groupOptions","tree","visibilities","makeHookDepString","Entry","RenderEntry","arrayProps","createArrayActions","renderElement","wrap","index","renderChildElement","getLengthRestrictions","renderArray","elementNode","_control$elements$i$u","_control$elements","elements","parentDataNode","getChildElement","childVis","hook","def","lookupDataNode","some","createDefaultArrayRenderer","_ref4","DefaultArrayRenderer","renderAction","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","arrayControl","_applyArrayLengthRest","applyArrayLengthRestrictions","addAction","removeAction","RenderElements","_","inputClass","createAutocompleteRenderer","_p$options","_p$options2","MultipleAutocomplete","SingleAutocomplete","Autocomplete","_controlClasses$place","_objectDestructuringEmpty","inputControl","selectedOptionControl","listContainerClass","listEntryClass","controlValues","selected","_useAutocomplete","useAutocomplete","freeSolo","multiple","inputValue","getOptionLabel","filterOptions","s","toLowerCase","onInputChange","reason","getInputProps","getListboxProps","getOptionProps","groupedOptions","popupOpen","focused","getPopupIndicatorProps","getRootProps","placeholder","option","optionProps","_effect2","_selectedOptionsContr","_selectedOptionsContr2","_controlClasses$place2","selectedOptionsControl","chipContainerClass","chipCloseButtonClass","_selected$map","selectedValues","_useAutocomplete2","Chip","onDeleteClick","find","removeElement","_ref5","_effect3","RenderType","ValueForFieldExtension","RenderOptions","fields","buildSchema","fieldRef","stringField","ValueForField","schema","default","setFields","_useMemo","rootSchema","rootSchemaNode","notNullable","onlyForTypes","addMissingControlsForSchema","useControlRendererComponent","groupedControl","makeSchemaDataNode","createOptionalAdornment","createAdornmentRenderer","_dataContext$dataNode2","newControl","adornment","editing","getIsEditing","isEditing","nullToggler","editSelectable","allowNull","apply","rl","_adornment$placement","formOptions","hideEdit","appendMarkupAt","placement","defaultPlacement","AdornmentPlacement","LabelStart","wrapMarkup","customRender","allValues","getAllValues","OptionalEditRenderer","priority","adornmentType","ControlAdornmentType","Optional","_options$setNullText","_options$multiValuesT","multipleValues","nullEdit","nullWrapperClass","setNullText","multiValuesClass","multiValuesText","childWrapperClass","MultilineTextfield","codeRef","useRef","textContent","contentEditable","onInput","currentTarget","createButtonActionRenderer","actionId","createActionRenderer","_options$renderConten","actionText","actionData","renderContent","DefaultBoolOptions","createDefaultDataRenderer","_options$checkOptions","_options$radioOptions","_options$checkListOpt","jsonataRenderer","jsonataClass","multilineRenderer","multilineClass","checkboxRenderer","checkOptions","checkboxOptions","selectRenderer","selectOptions","radioRenderer","radioOptions","checkListRenderer","checkListOptions","_optionRenderer$boole","optionRenderer","booleanOptions","displayOnlyClass","defaultEmptyText","arrayRenderer","arrayOptions","autocompleteRenderer","autocompleteOptions","_field$displayName","fieldType","Compound","isDataGroupRenderer","renderGroup","displayOnly","isDisplayOnlyRenderer","hasOptions","NullToggle","Dropdown","Any","displayName","isTextfieldRenderer","multiline","createDefaultAdornmentRenderer","optional","isOptionalAdornment","useExpr","isSetFieldAdornment","dynamicHooks","useDynamicHooks","SetFieldWrapper","useCallback","parentContext","otherField","schemaDataForFieldRef","always","defaultOnly","isIconAdornment","ControlStart","isAccordionAdornment","createDefaultLabelRenderer","_requiredElement$labe","requiredElement","labelContainer","groupLabelClass","controlLabelClass","labelStart","labelEnd","LabelType","forId","Control","createDefaultRenderers","action","renderLayout","defaultTailwindTheme","_schemaDataForFieldRe","actualFieldRef","node","schemaForFieldRef"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/DefaultDisplay.tsx","../src/components/ControlInput.tsx","../src/components/SelectDataRenderer.tsx","../src/components/CheckRenderer.tsx","../src/components/DefaultLayout.tsx","../src/components/DefaultDisplayOnly.tsx","../src/components/DefaultAccordion.tsx","../src/components/TabsRenderer.tsx","../src/components/DefaultGroupRenderer.tsx","../src/components/DefaultVisibility.tsx","../src/components/JsonataRenderer.tsx","../src/components/NullToggle.tsx","../src/components/DefaultArrayRenderer.tsx","../src/components/AutocompleteRenderer.tsx","../src/components/ValueForFieldRenderer.tsx","../src/adornments/optionalAdornment.tsx","../src/components/MultilineTextfield.tsx","../src/createDefaultRenderers.tsx","../src/tailwind.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport {\n coerceToString,\n CustomDisplay,\n DisplayDataType,\n DisplayRendererProps,\n DisplayRendererRegistration,\n getOverrideClass,\n HtmlDisplay,\n IconDisplay,\n rendererClass,\n TextDisplay,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\n\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? coerceToString(display.value) : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display\n ? coerceToString(display.value)\n : (data as HtmlDisplay).html,\n }}\n />\n );\n case DisplayDataType.Custom:\n return (\n <div>\n <b>({(data as CustomDisplay).customId})</b>\n </div>\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n","import React from \"react\";\nimport {\n Control,\n formControlProps,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {FieldType} from \"@react-typed-forms/schemas\";\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n const textValue = useControl(() => toText(value));\n useControlEffect(\n () => control.value,\n (v) => (textValue.value = toText(v)),\n );\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={textValue.value}\n onChange={(e) => {\n textValue.value = e.target.value;\n const converted = convert[1](e.target.value);\n if (converted !== undefined) control.value = converted;\n }}\n {...props}\n />\n );\n\n function toText(value: any) {\n return value == null ? \"\" : convert[2](value);\n }\n}\n\ntype InputConversion = [\n string,\n (s: string) => any,\n (a: any) => string | number,\n];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\n \"text\",\n (a) => (a === \"true\" ? true : a === \"false\" ? false : undefined),\n (a) => a?.toString() ?? \"\",\n ];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.DateTime:\n return [\"datetime-local\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Date:\n return [\"date\", (a) => (!a ? null : a), (a) => a];\n case FieldType.Time:\n return [\n \"time\",\n (a) => {\n const l = a.length;\n if (l === 5) return a + \":00\";\n if (l === 8) return a;\n return undefined;\n },\n (a) => (a ? a.substring(0, 5) : \"\"),\n ];\n case FieldType.Double:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseFloat(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React, { useMemo, useState } from \"react\";\nimport {\n createDataRenderer,\n FieldOption,\n FieldType,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n readonly={props.readonly}\n options={props.options ?? []}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\nexport interface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: FieldOption[];\n emptyText?: string;\n requiredText?: string;\n readonly: boolean;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n readonly,\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n const optionGroups = useMemo(\n () => new Set(options.filter((x) => x.group).map((x) => x.group!)),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled || readonly}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {[...optionGroups.keys()].map((x) => (\n <optgroup key={x} label={x}>\n {options.filter((o) => o.group === x).map(renderOption)}\n </optgroup>\n ))}\n {options.filter((x) => !x.group).map(renderOption)}\n </select>\n );\n\n function renderOption(x: FieldOption, i: number) {\n return (\n <option key={i} value={convert(x.value)} disabled={!!x.disabled}>\n {x.name}\n </option>\n );\n }\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n","import {\n Control,\n Fcheckbox,\n RenderArrayElements,\n useComputed,\n} from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\nimport {\n CheckEntryClasses,\n createDataRenderer,\n DataRenderType,\n FieldOption,\n fieldOptionAdornment,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\nimport clsx from \"clsx\";\n\nexport interface CheckRendererOptions {\n className?: string;\n entryClass?: string;\n checkClass?: string;\n labelClass?: string;\n entryWrapperClass?: string;\n selectedClass?: string;\n notSelectedClass?: string;\n}\nexport function createRadioRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n classes={options}\n controlClasses={p.renderOptions as CheckEntryClasses}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => control.value == o.value}\n setChecked={(c, o) => (c.value = o.value)}\n control={p.control}\n type=\"radio\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n renderType: DataRenderType.Radio,\n },\n );\n}\n\nexport function createCheckListRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (p) => (\n <CheckButtons\n classes={options}\n controlClasses={p.renderOptions as CheckEntryClasses}\n {...p}\n className={rendererClass(p.className, options.className)}\n isChecked={(control, o) => {\n const v = control.value;\n return Array.isArray(v) ? v.includes(o.value) : false;\n }}\n setChecked={(c, o, checked) => {\n c.setValue((x) => setIncluded(x ?? [], o.value, checked));\n }}\n control={p.control}\n type=\"checkbox\"\n entryAdornment={fieldOptionAdornment(p)}\n />\n ),\n {\n collection: true,\n renderType: DataRenderType.CheckList,\n },\n );\n}\n\nexport interface CheckButtonsProps {\n id?: string;\n className?: string;\n options?: FieldOption[] | null;\n control: Control<any>;\n classes: CheckRendererOptions;\n controlClasses?: CheckEntryClasses;\n readonly?: boolean;\n type: \"checkbox\" | \"radio\";\n isChecked: (c: Control<any>, o: FieldOption) => boolean;\n setChecked: (c: Control<any>, o: FieldOption, checked: boolean) => void;\n entryAdornment?: (c: FieldOption, i: number, selected: boolean) => ReactNode;\n}\n\nexport function CheckButtons({\n control,\n options,\n readonly,\n className,\n id,\n type,\n isChecked,\n setChecked,\n entryAdornment,\n classes,\n controlClasses = {},\n}: CheckButtonsProps) {\n const { disabled } = control;\n const name = \"r\" + control.uniqueId;\n return (\n <div className={className} id={id}>\n <RenderArrayElements array={options?.filter((x) => x.value != null)}>\n {(o, i) => {\n const checked = useComputed(() => isChecked(control, o)).value;\n const selOrUnsel = checked\n ? rendererClass(\n controlClasses?.selectedClass,\n classes.selectedClass,\n )\n : rendererClass(\n controlClasses?.notSelectedClass,\n classes.notSelectedClass,\n );\n return (\n <div\n className={clsx(\n rendererClass(\n controlClasses?.entryWrapperClass,\n classes.entryWrapperClass,\n ),\n selOrUnsel,\n )}\n onClick={() => !readonly && setChecked(control, o, !checked)}\n >\n <div className={classes.entryClass}>\n <input\n id={name + \"_\" + i}\n className={classes.checkClass}\n type={type}\n name={name}\n readOnly={readonly}\n disabled={disabled}\n checked={checked}\n onChange={(x) => {\n !readonly && setChecked(control, o, x.target.checked);\n }}\n />\n <label className={classes.labelClass} htmlFor={name + \"_\" + i}>\n {o.name}\n </label>\n </div>\n {entryAdornment?.(o, i, checked)}\n </div>\n );\n }}\n </RenderArrayElements>\n </div>\n );\n}\n\nexport function setIncluded<A>(array: A[], elem: A, included: boolean): A[] {\n const already = array.includes(elem);\n if (included === already) {\n return array;\n }\n if (included) {\n return [...array, elem];\n }\n return array.filter((e) => e !== elem);\n}\n\nexport function createCheckboxRenderer(options: CheckRendererOptions = {}) {\n return createDataRenderer(\n (props, renderer) => (p) => ({\n ...p,\n label: undefined,\n children: (\n <div className={rendererClass(props.className, options.entryClass)}>\n <Fcheckbox\n id={props.id}\n control={props.control.as()}\n style={props.style}\n className={options.checkClass}\n />\n {p.label && renderer.renderLabel(p.label, undefined, undefined)}\n </div>\n ),\n }),\n { renderType: DataRenderType.Checkbox },\n );\n}\n","import React, { ReactNode } from \"react\";\nimport {\n createLayoutRenderer,\n RenderedLayout,\n rendererClass,\n renderLayoutParts,\n} from \"@react-typed-forms/schemas\";\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n renderError?: (errorText: string | null | undefined) => ReactNode;\n}\n\nexport function createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(props, renderers);\n return {\n children: layout.wrapLayout(\n <DefaultLayout layout={layout} {...options} />,\n ),\n className: rendererClass(layout.className, options.className),\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\nexport function DefaultLayout({\n errorClass,\n renderError = (e) => e && <div className={errorClass}>{e}</div>,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {renderError(errorText)}\n {controlEnd}\n </>\n );\n}\n","import { Control } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n rendererClass,\n SchemaField,\n SchemaInterface,\n} from \"@react-typed-forms/schemas\";\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={className}>\n {text}\n </div>\n );\n}\n","import React, { CSSProperties, Fragment, ReactElement } from \"react\";\nimport { Control, useControl } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\nimport { DefaultAccordionRendererOptions } from \"../createDefaultRenderers\";\nimport {\n AccordionAdornment,\n ControlDataContext,\n FormRenderer,\n} from \"@react-typed-forms/schemas\";\n\nexport function DefaultAccordion({\n children,\n accordion,\n contentStyle,\n contentClassName,\n designMode,\n iconOpenClass,\n iconClosedClass,\n className,\n renderTitle = (t) => t,\n renderToggler,\n renderers,\n titleClass,\n useCss,\n dataContext,\n}: {\n children: ReactElement;\n accordion: Partial<AccordionAdornment>;\n contentStyle?: CSSProperties;\n contentClassName?: string;\n designMode?: boolean;\n renderers: FormRenderer;\n dataContext: ControlDataContext;\n} & DefaultAccordionRendererOptions) {\n const dataControl = (dataContext.dataNode ?? dataContext.parentNode).control;\n const open = useControl(!!accordion.defaultExpanded);\n if (dataControl && !dataControl.meta.accordionState) {\n dataControl.meta.accordionState = open;\n }\n const isOpen = open.value;\n const fullContentStyle =\n isOpen || designMode ? contentStyle : { ...contentStyle, display: \"none\" };\n const title = renderers.renderLabelText(renderTitle(accordion.title, open));\n const toggler = renderToggler ? (\n renderToggler(open, title)\n ) : (\n <button className={className} onClick={() => open.setValue((x) => !x)}>\n <label className={titleClass}>{title}</label>\n <i className={clsx(isOpen ? iconOpenClass : iconClosedClass)} />\n </button>\n );\n\n return (\n <>\n {toggler}\n {(useCss || isOpen || designMode) && (\n <div style={fullContentStyle} className={contentClassName}>\n {children}\n </div>\n )}\n </>\n );\n}\n\nexport function getAccordionState(\n c: Control<unknown>,\n): Control<boolean> | undefined {\n return c.meta.accordionState;\n}\n","import {\n controlTitle,\n createGroupRenderer,\n FormNode,\n GroupRendererProps,\n GroupRenderType,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\nimport React from \"react\";\nimport { useControl } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\n\nexport interface TabsRendererOptions {\n className?: string;\n tabListClass?: string;\n tabClass?: string;\n labelClass?: string;\n activeClass?: string;\n inactiveClass?: string;\n contentClass?: string;\n}\n\nexport function createTabsRenderer(options: TabsRendererOptions = {}) {\n return createGroupRenderer(\n (p, renderer) => <TabsGroupRenderer {...p} options={options} />,\n {\n renderType: GroupRenderType.Tabs,\n },\n );\n}\n\nexport function TabsGroupRenderer({\n formNode,\n className,\n options,\n renderChild,\n designMode,\n}: GroupRendererProps & { options: TabsRendererOptions }) {\n const tabIndex = useControl(0);\n const {\n tabClass,\n labelClass,\n tabListClass,\n inactiveClass,\n activeClass,\n contentClass,\n } = options;\n const currentTab = tabIndex.value;\n return designMode ? (\n <>{formNode.getChildNodes().map((x, i) => renderTabs([x], i))}</>\n ) : (\n renderTabs(formNode.getChildNodes(), 0)\n );\n\n function renderTabs(tabs: FormNode[], key: number) {\n return (\n <div key={key} className={rendererClass(className, options.className)}>\n <ul className={rendererClass(null, tabListClass)}>\n {tabs.map((x, i) => (\n <li\n key={i}\n className={rendererClass(null, tabClass)}\n onClick={() => (tabIndex.value = i)}\n >\n <span\n className={rendererClass(\n null,\n clsx(\n labelClass,\n i == currentTab ? activeClass : inactiveClass,\n ),\n )}\n >\n {x.definition.title ? x.definition.title : \"<untitled>\"}\n </span>\n </li>\n ))}\n </ul>\n <div className={rendererClass(null, contentClass)}>\n {renderChild(currentTab, tabs[currentTab])}\n </div>\n </div>\n );\n }\n}\n","import {\n ControlLayoutProps,\n FlexRenderer,\n FormRenderer,\n GridRenderer,\n GroupRendererProps,\n GroupRendererRegistration,\n isFlexRenderer,\n isGridRenderer,\n isSelectChildRenderer,\n isTabsRenderer,\n rendererClass,\n SelectChildRenderer,\n} from \"@react-typed-forms/schemas\";\nimport clsx from \"clsx\";\nimport React, { CSSProperties, useCallback } from \"react\";\nimport { useTrackedComponent } from \"@react-typed-forms/core\";\nimport { createTabsRenderer, TabsRendererOptions } from \"./TabsRenderer\";\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\nexport interface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n tabs?: TabsRendererOptions;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const tabsRenderer = createTabsRenderer(options?.tabs);\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps, renderers: FormRenderer) {\n const { renderChild, renderOptions, formNode } = props;\n if (isTabsRenderer(renderOptions))\n return tabsRenderer.render(props, renderers);\n if (isSelectChildRenderer(renderOptions) && !props.designMode) {\n return (\n <SelectChildGroupRenderer {...props} renderOptions={renderOptions} />\n );\n }\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n return (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {formNode.getChildNodes().map((c, i) => renderChild(i, c))}\n </div>\n );\n }\n\n return { type: \"group\", render };\n}\n\ntype SelectChildProps = Pick<\n GroupRendererProps,\n \"useEvalExpression\" | \"dataContext\" | \"formNode\" | \"renderChild\"\n> & {\n renderOptions: SelectChildRenderer;\n};\nfunction SelectChildGroupRenderer(props: SelectChildProps) {\n const { useEvalExpression, renderOptions } = props;\n const dynHook = useEvalExpression(renderOptions?.childIndexExpression, (x) =>\n x == \"string\" ? parseInt(x) : x,\n );\n const Render = useTrackedComponent(\n (p: SelectChildProps) => {\n const ctrl = dynHook.runHook(p.dataContext, dynHook.state);\n const childIndex = ctrl?.value;\n const childDefinitions = p.formNode.getChildNodes();\n return (\n <div>\n {typeof childIndex === \"number\" &&\n childIndex < childDefinitions.length &&\n childIndex >= 0 &&\n p.renderChild(childIndex, childDefinitions[childIndex])}\n </div>\n );\n },\n [dynHook.deps],\n );\n return <Render {...props} />;\n}\n","import React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport {\n createVisibilityRenderer,\n VisibilityRendererProps,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n","import { Control, useComputed } from \"@react-typed-forms/core\";\nimport React from \"react\";\nimport {\n coerceToString,\n ControlDataContext,\n createDataRenderer,\n DataRenderType,\n getJsonPath,\n getRootDataNode,\n JsonataRenderOptions,\n rendererClass,\n SchemaDataNode,\n useJsonataExpression,\n} from \"@react-typed-forms/schemas\";\n\nexport function createJsonataRenderer(className?: string) {\n return createDataRenderer(\n (p) => (\n <JsonataRenderer\n renderOptions={p.renderOptions as JsonataRenderOptions}\n className={rendererClass(p.className, className)}\n dataNode={p.dataNode}\n dataContext={p.dataContext}\n control={p.control}\n readonly={p.readonly}\n />\n ),\n { renderType: DataRenderType.Jsonata },\n );\n}\n\nexport function JsonataRenderer({\n control,\n renderOptions,\n readonly,\n className,\n dataContext,\n dataNode,\n}: {\n control: Control<any>;\n renderOptions: JsonataRenderOptions;\n className?: string;\n dataContext: ControlDataContext;\n dataNode: SchemaDataNode;\n readonly: boolean;\n}) {\n const sdn = dataNode.elementIndex != null ? dataNode : dataContext.parentNode;\n const bindings = useComputed(() => ({\n value: control.value,\n readonly,\n disabled: control.disabled,\n formData: dataContext.formData,\n dataPath: getJsonPath(dataNode),\n }));\n const rendered = useJsonataExpression(\n renderOptions.expression,\n getRootDataNode(sdn).control!,\n getJsonPath(sdn),\n bindings,\n coerceToString,\n );\n return (\n <div\n className={className}\n dangerouslySetInnerHTML={{ __html: rendered.value }}\n />\n );\n}\n","import {\n createDataRenderer,\n DataRenderType,\n FieldType,\n getLastDefinedValue,\n getNullToggler,\n} from \"@react-typed-forms/schemas\";\n\nexport function createNullToggleRenderer() {\n return createDataRenderer(\n ({ control, field, renderOptions, ...props }, renderers) => {\n const lastDefined = getLastDefinedValue(control);\n if (lastDefined.current.value == null)\n lastDefined.value = props.definition.defaultValue;\n const nullControl = getNullToggler(control);\n nullControl.disabled = props.readonly;\n return (layout) => {\n return renderers.renderData({\n ...props,\n control: nullControl,\n field: { ...field, type: FieldType.Bool },\n renderOptions: { type: DataRenderType.Checkbox },\n })(layout);\n };\n },\n );\n}\n","import clsx from \"clsx\";\nimport React, { Fragment, ReactNode } from \"react\";\nimport { RenderElements, useTrackedComponent } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n applyArrayLengthRestrictions,\n ArrayActionOptions,\n ArrayRendererProps,\n ArrayRendererRegistration,\n ArrayRenderOptions,\n ControlDataContext,\n ControlDefinition,\n ControlDefinitionType,\n createArrayActions,\n createDataRenderer,\n DataControlDefinition,\n DataRendererProps,\n DataRendererRegistration,\n DataRenderType,\n EvalExpressionHook,\n FormNode,\n FormRenderer,\n getLengthRestrictions,\n GroupedControlsDefinition,\n GroupRenderType,\n isArrayRenderer,\n isCompoundField,\n lookupDataNode,\n makeHookDepString,\n mergeObjects,\n nodeForControl,\n SchemaDataNode,\n} from \"@react-typed-forms/schemas\";\n\nexport function createDefaultArrayDataRenderer(\n defaultActions?: ArrayActionOptions,\n): DataRendererRegistration {\n return createDataRenderer(\n (props, renderers) => {\n return (\n <DataArrayRenderer\n dataProps={props}\n renderers={renderers}\n defaultActions={defaultActions}\n />\n );\n },\n { renderType: DataRenderType.Array, collection: true },\n );\n}\n\nexport function DataArrayRenderer({\n dataProps,\n renderers,\n defaultActions,\n}: {\n renderers: FormRenderer;\n dataProps: DataRendererProps;\n defaultActions?: ArrayActionOptions;\n}) {\n const {\n renderOptions,\n control,\n field,\n readonly,\n designMode,\n required,\n renderChild,\n definition,\n className,\n style,\n useChildVisibility,\n dataContext,\n formNode,\n } = dataProps;\n const { addText, noAdd, noRemove, noReorder, removeText } = mergeObjects(\n isArrayRenderer(renderOptions) ? renderOptions : ({} as ArrayRenderOptions),\n defaultActions as ArrayRenderOptions,\n );\n const childOptions = isArrayRenderer(renderOptions)\n ? renderOptions.childOptions\n : undefined;\n\n const renderAsElement = !isCompoundField(field);\n const childDefinition: FormNode = nodeForControl(\n !renderAsElement\n ? ({\n type: ControlDefinitionType.Group,\n children: definition.children,\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n } as GroupedControlsDefinition)\n : ({\n type: ControlDefinitionType.Data,\n field: definition.field,\n children: definition.children,\n renderOptions: childOptions ?? { type: DataRenderType.Standard },\n hideTitle: true,\n } as DataControlDefinition),\n formNode.tree,\n );\n\n const visibilities = (definition.children ?? []).map(\n (x) => [useChildVisibility(x, undefined, true), x] as const,\n );\n const deps = makeHookDepString(visibilities, (x) => x[0].deps);\n const Entry = useTrackedComponent(RenderEntry, [deps]);\n\n const arrayProps = {\n ...createArrayActions(control.as(), field, {\n addText,\n removeText,\n noAdd,\n noRemove,\n readonly,\n disabled: control.disabled,\n designMode,\n }),\n required,\n renderElement: (i, wrap) => (\n <Entry\n index={i}\n renderChildElement={renderChildElement}\n dataContext={dataContext}\n visibilities={visibilities}\n wrap={wrap}\n />\n ),\n className: className ? className : undefined,\n style,\n ...getLengthRestrictions(definition),\n } satisfies ArrayRendererProps;\n\n return renderers.renderArray(arrayProps);\n\n function renderChildElement(i: number, elementNode: SchemaDataNode) {\n return renderChild(\n control.elements?.[i].uniqueId ?? i,\n childDefinition,\n renderAsElement\n ? {\n elementIndex: i,\n }\n : { parentDataNode: elementNode },\n );\n }\n}\n\nfunction RenderEntry({\n index: i,\n renderChildElement,\n visibilities,\n wrap,\n dataContext,\n}: {\n index: number;\n renderChildElement: (i: number, element: SchemaDataNode) => ReactNode;\n visibilities: (readonly [EvalExpressionHook<boolean>, ControlDefinition])[];\n dataContext: ControlDataContext;\n wrap: (n: ReactNode) => ReactNode;\n}) {\n const elementNode = dataContext.dataNode!.getChildElement(i);\n const childVis = visibilities.map(\n ([hook, def]) =>\n hook.runHook(\n {\n ...dataContext,\n parentNode: elementNode,\n dataNode: lookupDataNode(def, elementNode),\n },\n hook.state,\n ).value,\n );\n const anyVisible = childVis.length == 0 || childVis.some((x) => x === true);\n if (!anyVisible) return undefined;\n return wrap(renderChildElement(i, elementNode));\n}\n\nexport interface DefaultArrayRendererOptions extends ArrayActionOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n return {\n render: (props, { renderAction }) => (\n <DefaultArrayRenderer\n {...props}\n {...options}\n renderAction={renderAction}\n />\n ),\n type: \"array\",\n };\n}\n\nexport interface DefaultArrayRendererProps\n extends DefaultArrayRendererOptions,\n ArrayRendererProps {\n renderAction: (props: ActionRendererProps) => ReactNode;\n}\n\nexport function DefaultArrayRenderer(props: DefaultArrayRendererProps) {\n const {\n renderElement,\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n arrayControl,\n renderAction,\n style,\n } = props;\n const { addAction, removeAction } = applyArrayLengthRestrictions(props);\n return (\n <div style={style}>\n <div className={clsx(className, removeAction && removableClass)}>\n <RenderElements control={arrayControl}>\n {(_, x) =>\n renderElement(x, (children) =>\n removeAction ? (\n <>\n <div className={clsx(childClass, removableChildClass)}>\n {children}\n </div>\n <div className={removeActionClass}>\n {renderAction(removeAction(x))}\n </div>\n </>\n ) : (\n <div className={childClass}>{children}</div>\n ),\n )\n }\n </RenderElements>\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n}\n","import React from \"react\";\nimport {\n Control,\n controlValues,\n removeElement,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AutocompleteClasses,\n createDataRenderer,\n DataRenderType,\n FieldOption,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\nimport { useAutocomplete, UseAutocompleteProps } from \"@mui/base\";\nimport clsx from \"clsx\";\n\nexport interface AutocompleteRendererOptions {\n className?: string;\n listContainerClass?: string;\n listEntryClass?: string;\n chipContainerClass?: string;\n chipCloseButtonClass?: string;\n}\n\nexport interface AutocompleteProps<A, Multiple extends boolean>\n extends UseAutocompleteProps<A, Multiple, false, true> {\n control: Control<any>;\n className?: string;\n classes: AutocompleteRendererOptions;\n controlClasses?: AutocompleteClasses;\n}\n\nconst inputClass =\n \"leading-[1.5] text-surface-900 bg-[inherit] border-0 rounded-[inherit] px-3 py-2 outline-0 grow shrink-0 basis-auto focus:outline-0 focus:ring-0 focus:shadow-none\";\n\nexport function createAutocompleteRenderer(\n options: AutocompleteRendererOptions = {},\n) {\n return createDataRenderer(\n (p) => {\n return p.field.collection ? (\n <MultipleAutocomplete\n options={p.options ?? []}\n control={p.control}\n className={rendererClass(p.className, options.className)}\n classes={options}\n controlClasses={p.renderOptions as AutocompleteClasses}\n readOnly={p.readonly}\n id={p.id}\n />\n ) : (\n <SingleAutocomplete\n options={p.options ?? []}\n control={p.control}\n className={rendererClass(p.className, options.className)}\n classes={options}\n controlClasses={p.renderOptions as AutocompleteClasses}\n readOnly={p.readonly}\n id={p.id}\n />\n );\n },\n {\n renderType: DataRenderType.Autocomplete,\n },\n );\n}\n\nfunction SingleAutocomplete({\n ...props\n}: AutocompleteProps<FieldOption | string, false>) {\n const { id, control, className, readOnly, classes, controlClasses } = props;\n const { disabled } = control;\n\n const inputControl = useControl<string>(\"\");\n const selectedOptionControl = useControl<string | FieldOption | null>(null);\n\n const listContainerClass = rendererClass(\n controlClasses?.listContainerClass,\n classes.listContainerClass,\n );\n\n const listEntryClass = rendererClass(\n controlClasses?.listEntryClass,\n classes.listEntryClass,\n );\n\n useControlEffect(\n controlValues(inputControl, selectedOptionControl),\n ([text, selected]) => {\n control.value = selected\n ? typeof selected === \"string\"\n ? selected\n : selected.value\n : text;\n },\n );\n\n const {\n getRootProps,\n getInputProps,\n getListboxProps,\n getOptionProps,\n groupedOptions,\n popupOpen,\n focused,\n getPopupIndicatorProps,\n } = useAutocomplete({\n freeSolo: true,\n multiple: false,\n value: selectedOptionControl.value,\n inputValue: inputControl.value,\n getOptionLabel: (v) => (typeof v === \"string\" ? v : v.name),\n filterOptions: (o, s) =>\n o.filter((o) => {\n const label = typeof o === \"string\" ? o : o.name;\n return label.toLowerCase().includes(s.inputValue.toLowerCase());\n }),\n onInputChange: (_, v, reason) => {\n inputControl.value = v;\n if (reason === \"input\") selectedOptionControl.value = null;\n },\n onChange: (_, v, reason) => {\n if (reason === \"selectOption\") {\n selectedOptionControl.value = v;\n }\n },\n ...props,\n });\n\n return (\n <div id={id} className={\"relative\"} {...getRootProps()}>\n <div\n className={clsx(\n className,\n focused\n ? \"border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200\"\n : \"shadow-[0_2px_2px_transparent] shadow-surface-50\",\n )}\n >\n <input\n type={\"text\"}\n {...getInputProps()}\n placeholder={controlClasses?.placeholder ?? \"\"}\n className={inputClass}\n />\n\n <button\n {...getPopupIndicatorProps()}\n disabled={disabled || readOnly}\n className={\n \"outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]\"\n }\n >\n <li\n className={clsx(\n \"fa-solid fa-angle-down\",\n \"text-primary-500\",\n popupOpen && \"rotate-180\",\n )}\n />\n </button>\n </div>\n {groupedOptions.length > 0 && popupOpen && (\n <ul {...getListboxProps()} className={listContainerClass}>\n {(groupedOptions as FieldOption[]).map((option, index) => {\n const optionProps = getOptionProps({ option, index });\n return (\n <li\n {...optionProps}\n key={optionProps.key}\n className={listEntryClass}\n >\n {option.name}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n}\n\nfunction MultipleAutocomplete({\n ...props\n}: AutocompleteProps<FieldOption, true>) {\n const { id, control, className, readOnly, classes, controlClasses } = props;\n const { disabled } = control;\n\n const inputControl = useControl<string>(\"\");\n const selectedOptionsControl = useControl<(string | FieldOption)[] | null>(\n null,\n );\n\n const listContainerClass = rendererClass(\n controlClasses?.listContainerClass,\n classes.listContainerClass,\n );\n const listEntryClass = rendererClass(\n controlClasses?.listEntryClass,\n classes.listEntryClass,\n );\n\n const chipContainerClass = rendererClass(\n controlClasses?.chipContainerClass,\n classes.chipContainerClass,\n );\n\n const chipCloseButtonClass = rendererClass(\n controlClasses?.chipCloseButtonClass,\n classes.chipCloseButtonClass,\n );\n\n useControlEffect(\n controlValues(inputControl, selectedOptionsControl),\n ([text, selected]) => {\n const selectedValues =\n selected?.map((v) => {\n return typeof v === \"string\" ? v : v.value;\n }) ?? [];\n control.value = text ? selectedValues.concat(text) : selectedValues;\n },\n );\n\n const {\n getRootProps,\n getInputProps,\n getListboxProps,\n getOptionProps,\n groupedOptions,\n popupOpen,\n focused,\n getPopupIndicatorProps,\n } = useAutocomplete({\n value: selectedOptionsControl.value ?? [],\n inputValue: inputControl.value,\n freeSolo: true,\n multiple: true,\n getOptionLabel: (v) => (typeof v === \"string\" ? v : v.name),\n filterOptions: (o, s) =>\n o.filter((o) => {\n const label = typeof o === \"string\" ? o : o.name;\n return label.toLowerCase().includes(s.inputValue.toLowerCase());\n }),\n onInputChange: (_, v) => {\n inputControl.value = v;\n },\n onChange: (_, v, reason) => {\n if (reason === \"selectOption\" || reason === \"removeOption\") {\n selectedOptionsControl.value = v;\n }\n },\n ...props,\n });\n\n return (\n <div id={id} className={\"relative\"} {...getRootProps()}>\n <div\n className={clsx(\n className,\n focused\n ? \"border-primary-400 shadow-[0_0_0_3px_transparent] shadow-primary-200\"\n : \"shadow-[0_2px_2px_transparent] shadow-surface-50\",\n )}\n >\n <div className={\"flex flex-1 flex-row flex-wrap\"}>\n {selectedOptionsControl.value?.map((v) => (\n <Chip\n key={typeof v === \"string\" ? v : v.name}\n text={typeof v === \"string\" ? v : v.name}\n chipContainerClass={chipContainerClass}\n chipCloseButtonClass={chipCloseButtonClass}\n onDeleteClick={() => {\n const c = selectedOptionsControl.elements.find(\n (x) => x.value == v,\n );\n if (c) removeElement(selectedOptionsControl, c);\n }}\n />\n ))}\n <input\n type={\"text\"}\n {...getInputProps()}\n placeholder={controlClasses?.placeholder ?? \"\"}\n className={clsx(inputClass)}\n />\n </div>\n\n <button\n {...getPopupIndicatorProps()}\n disabled={disabled || readOnly}\n className={\n \"outline-0 shadow-none border-0 py-0 px-0.5 bg-transparent pr-[10px]\"\n }\n >\n <i\n className={clsx(\n \"fa-solid fa-angle-down\",\n \"text-primary-500\",\n popupOpen && \"rotate-180\",\n )}\n />\n </button>\n </div>\n {groupedOptions.length > 0 && popupOpen && (\n <ul {...getListboxProps()} className={listContainerClass}>\n {(groupedOptions as FieldOption[]).map((option, index) => {\n const optionProps = getOptionProps({ option, index });\n return (\n <li\n {...optionProps}\n key={optionProps.key}\n className={listEntryClass}\n >\n {option.name}\n </li>\n );\n })}\n </ul>\n )}\n </div>\n );\n}\n\nfunction Chip({\n text,\n chipContainerClass,\n chipCloseButtonClass,\n onDeleteClick,\n}: {\n text: string;\n chipContainerClass?: string;\n chipCloseButtonClass?: string;\n onDeleteClick?: () => void;\n}) {\n return (\n <div className={chipContainerClass}>\n {text}\n <i\n className={chipCloseButtonClass}\n onClick={() => {\n onDeleteClick?.();\n }}\n />\n </div>\n );\n}\n","import { Control, setFields, useControl } from \"@react-typed-forms/core\";\nimport {\n addMissingControlsForSchema,\n buildSchema,\n ControlDefinitionExtension,\n createDataRenderer,\n FormRenderer,\n groupedControl,\n makeSchemaDataNode,\n RenderOptions,\n rootSchemaNode,\n schemaDataForFieldRef,\n schemaForFieldRef,\n SchemaNode,\n stringField,\n useControlRendererComponent,\n} from \"@react-typed-forms/schemas\";\nimport React, { useMemo } from \"react\";\n\nexport interface ValueForFieldRenderOptions extends RenderOptions {\n type: \"ValueForField\";\n fieldRef?: string | null;\n}\n\nconst RenderType = \"ValueForField\";\n\nexport const ValueForFieldExtension: ControlDefinitionExtension = {\n RenderOptions: {\n value: RenderType,\n name: \"Value For Field\",\n fields: buildSchema<Omit<ValueForFieldRenderOptions, \"type\">>({\n fieldRef: stringField(\"Field Reference\"),\n }),\n },\n};\n\nexport interface ValueForFieldOptions {\n schema: SchemaNode;\n}\n\nexport function createValueForFieldRenderer(options: ValueForFieldOptions) {\n return createDataRenderer(\n (o, renderer) => {\n const { fieldRef } = o.renderOptions as ValueForFieldRenderOptions;\n const actualFieldRef = fieldRef\n ? (schemaDataForFieldRef(fieldRef, o.dataContext.parentNode)?.control\n ?.value as string)\n : undefined;\n const node = actualFieldRef\n ? schemaForFieldRef(actualFieldRef, options.schema)\n : undefined;\n return node ? (\n <ValueForField renderer={renderer} schema={node} control={o.control} />\n ) : (\n <>{actualFieldRef ? \"No schema node for \" + actualFieldRef : \"\"}</>\n );\n },\n {\n renderType: RenderType,\n },\n );\n}\n\nfunction ValueForField({\n schema,\n renderer,\n control,\n}: {\n schema: SchemaNode;\n renderer: FormRenderer;\n control: Control<any>;\n}) {\n const value = useControl({ default: undefined }, undefined, (e) =>\n setFields(e, { default: control }),\n );\n const [controls, rootSchema] = useMemo(() => {\n const rootSchema = rootSchemaNode([\n {\n ...schema.field,\n field: \"default\",\n required: false,\n notNullable: false,\n onlyForTypes: null,\n defaultValue: undefined,\n },\n ]);\n return [addMissingControlsForSchema(rootSchema, []), rootSchema];\n }, [schema]);\n const Render = useControlRendererComponent(\n groupedControl(controls),\n renderer,\n { disabled: control.disabled },\n makeSchemaDataNode(rootSchema, value),\n );\n return <Render />;\n}\n","import {\n AdornmentPlacement,\n AdornmentRendererRegistration,\n appendMarkupAt,\n ControlAdornmentType,\n ControlDataContext,\n createAdornmentRenderer,\n getAllValues,\n getIsEditing,\n getNullToggler,\n OptionalAdornment,\n wrapMarkup,\n} from \"@react-typed-forms/schemas\";\nimport { Control, Fcheckbox, newControl } from \"@react-typed-forms/core\";\nimport React, { ReactNode } from \"react\";\n\nexport interface OptionalRenderProps {\n allValues: Control<unknown[]>;\n editing: Control<boolean | undefined>;\n children: ReactNode;\n adornment: OptionalAdornment;\n nullToggler: Control<boolean>;\n dataContext: ControlDataContext;\n options: DefaultOptionalAdornmentOptions;\n}\nexport interface DefaultOptionalAdornmentOptions {\n className?: string;\n checkClass?: string;\n childWrapperClass?: string;\n multiValuesClass?: string;\n multiValuesText?: string;\n nullWrapperClass?: string;\n setNullText?: string;\n defaultPlacement?: AdornmentPlacement;\n hideEdit?: boolean;\n customRender?: (props: OptionalRenderProps) => ReactNode;\n}\nexport function createOptionalAdornment(\n options: DefaultOptionalAdornmentOptions = {},\n): AdornmentRendererRegistration {\n return createAdornmentRenderer(\n (props, renderers) => {\n const { dataContext } = props;\n const dataControl =\n dataContext.dataNode?.control ?? newControl(undefined);\n const adornment = props.adornment as OptionalAdornment;\n const editing = getIsEditing(dataControl);\n const isEditing = editing.value;\n const nullToggler = getNullToggler(dataControl);\n if (isEditing === undefined && adornment.editSelectable)\n editing.value = false;\n dataControl.disabled =\n !isEditing || !!(adornment.allowNull && !nullToggler.value);\n return {\n apply: (rl) => {\n if (props.formOptions.readonly) return rl;\n if (!options.hideEdit && adornment.editSelectable)\n appendMarkupAt(\n adornment.placement ??\n options.defaultPlacement ??\n AdornmentPlacement.LabelStart,\n <Fcheckbox control={editing} className={options.checkClass} />,\n )(rl);\n wrapMarkup(\"children\", (children) =>\n options.customRender ? (\n options.customRender({\n allValues: getAllValues(dataControl),\n editing,\n children,\n adornment,\n nullToggler,\n dataContext,\n options,\n })\n ) : (\n <OptionalEditRenderer\n children={children}\n options={options}\n editing={editing.as()}\n adornment={adornment}\n dataControl={dataControl}\n />\n ),\n )(rl);\n },\n priority: 0,\n adornment,\n };\n },\n { adornmentType: ControlAdornmentType.Optional },\n );\n}\n\nexport function OptionalEditRenderer({\n children,\n options,\n adornment,\n editing,\n dataControl,\n}: {\n options: DefaultOptionalAdornmentOptions;\n children: ReactNode;\n adornment: OptionalAdornment;\n editing: Control<boolean | undefined>;\n dataControl: Control<any>;\n}) {\n const nullToggler = getNullToggler(dataControl);\n const allValues = getAllValues(dataControl);\n const multipleValues = allValues.value.length > 1;\n const nullEdit = adornment.allowNull ? (\n <div className={options.nullWrapperClass}>\n <Fcheckbox\n control={nullToggler}\n className={options.checkClass}\n notValue\n />\n <span>{options.setNullText ?? \"Null\"}</span>\n </div>\n ) : undefined;\n return (\n <div className={options.className}>\n {multipleValues && editing.value === false ? (\n <div className={options.multiValuesClass}>\n {options.multiValuesText ?? \"Differing values\"}\n </div>\n ) : (\n <div className={options.childWrapperClass}>\n {nullEdit}\n {children}\n </div>\n )}\n </div>\n );\n}\n","import React, { useRef } from \"react\";\nimport { useControlEffect } from \"@react-typed-forms/core\";\nimport {\n createDataRenderer,\n DataRendererProps,\n rendererClass,\n} from \"@react-typed-forms/schemas\";\n\nexport function createMultilineFieldRenderer(className?: string) {\n return createDataRenderer((p) => (\n <MultilineTextfield\n {...p}\n className={rendererClass(p.className, className)}\n />\n ));\n}\n\nexport function MultilineTextfield({ control, className }: DataRendererProps) {\n const codeRef = useRef<HTMLElement | null>(null);\n useControlEffect(\n () => control.value,\n (v) => {\n const c = codeRef.current;\n if (c && c.textContent !== v) {\n c.textContent = v;\n }\n },\n true,\n );\n return (\n <code\n contentEditable={!control.disabled}\n className={className}\n onInput={(t) => (control.value = t.currentTarget.textContent)}\n ref={codeRef}\n />\n );\n}\n","import {\n createDefaultDisplayRenderer,\n DefaultDisplayRendererOptions,\n} from \"./components/DefaultDisplay\";\nimport {\n createDefaultLayoutRenderer,\n DefaultLayoutRendererOptions,\n} from \"./components/DefaultLayout\";\nimport { createDefaultVisibilityRenderer } from \"./components/DefaultVisibility\";\nimport React, { Fragment, ReactElement, ReactNode, useCallback } from \"react\";\nimport clsx from \"clsx\";\nimport {\n createSelectRenderer,\n SelectRendererOptions,\n} from \"./components/SelectDataRenderer\";\nimport { DefaultDisplayOnly } from \"./components/DefaultDisplayOnly\";\nimport { Control, useControlEffect } from \"@react-typed-forms/core\";\nimport { ControlInput, createInputConversion } from \"./components/ControlInput\";\nimport {\n createDefaultArrayDataRenderer,\n createDefaultArrayRenderer,\n DefaultArrayRendererOptions,\n} from \"./components/DefaultArrayRenderer\";\nimport {\n CheckRendererOptions,\n createCheckboxRenderer,\n createCheckListRenderer,\n createRadioRenderer,\n} from \"./components/CheckRenderer\";\nimport { DefaultAccordion } from \"./components/DefaultAccordion\";\nimport { createNullToggleRenderer } from \"./components/NullToggle\";\nimport { createMultilineFieldRenderer } from \"./components/MultilineTextfield\";\nimport { createJsonataRenderer } from \"./components/JsonataRenderer\";\nimport {\n ActionRendererProps,\n ActionRendererRegistration,\n AdornmentPlacement,\n AdornmentRendererRegistration,\n appendMarkupAt,\n ArrayActionOptions,\n ControlDataContext,\n createActionRenderer,\n createDataRenderer,\n DataRendererRegistration,\n DataRenderType,\n DefaultRenderers,\n FieldOption,\n FieldType,\n hasOptions,\n isAccordionAdornment,\n isDataGroupRenderer,\n isDisplayOnlyRenderer,\n isIconAdornment,\n isOptionalAdornment,\n isSetFieldAdornment,\n isTextfieldRenderer,\n LabelRendererRegistration,\n LabelType,\n rendererClass,\n schemaDataForFieldRef,\n SetFieldAdornment,\n useDynamicHooks,\n wrapLayout,\n} from \"@react-typed-forms/schemas\";\nimport {\n createDefaultGroupRenderer,\n DefaultGroupRendererOptions,\n} from \"./components/DefaultGroupRenderer\";\nimport {\n AutocompleteRendererOptions,\n createAutocompleteRenderer,\n} from \"./components/AutocompleteRenderer\";\nimport {\n createOptionalAdornment,\n DefaultOptionalAdornmentOptions,\n} from \"./adornments/optionalAdornment\";\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\nexport interface DefaultActionRendererOptions {\n className?: string;\n renderContent?: (\n actionText: string,\n actionId: string,\n actionData: any,\n ) => ReactNode;\n}\n\nexport function createButtonActionRenderer(\n actionId: string | string[] | undefined,\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n return createActionRenderer(\n actionId,\n ({\n onClick,\n actionText,\n className,\n style,\n actionId,\n actionData,\n disabled,\n }: ActionRendererProps) => {\n return (\n <button\n className={rendererClass(className, options.className)}\n disabled={disabled}\n style={style}\n onClick={onClick}\n >\n {options.renderContent?.(actionText, actionId, actionData) ??\n actionText}\n </button>\n );\n },\n );\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\n\nexport interface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n checkboxOptions?: CheckRendererOptions;\n checkOptions?: CheckRendererOptions;\n radioOptions?: CheckRendererOptions;\n checkListOptions?: CheckRendererOptions;\n autocompleteOptions?: AutocompleteRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n multilineClass?: string;\n jsonataClass?: string;\n arrayOptions?: ArrayActionOptions;\n defaultEmptyText?: string;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const jsonataRenderer = createJsonataRenderer(options.jsonataClass);\n const nullToggler = createNullToggleRenderer();\n const multilineRenderer = createMultilineFieldRenderer(\n options.multilineClass,\n );\n const checkboxRenderer = createCheckboxRenderer(\n options.checkOptions ?? options.checkboxOptions,\n );\n const selectRenderer = createSelectRenderer(options.selectOptions);\n const radioRenderer = createRadioRenderer(\n options.radioOptions ?? options.checkOptions,\n );\n const checkListRenderer = createCheckListRenderer(\n options.checkListOptions ?? options.checkOptions,\n );\n const {\n inputClass,\n booleanOptions,\n optionRenderer,\n displayOnlyClass,\n defaultEmptyText,\n } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n const arrayRenderer = createDefaultArrayDataRenderer(options.arrayOptions);\n\n const autocompleteRenderer = createAutocompleteRenderer(\n options.autocompleteOptions,\n );\n\n return createDataRenderer((props, renderers) => {\n const { field } = props;\n const fieldType = field.type;\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (\n field.collection &&\n props.elementIndex == null &&\n (renderType == DataRenderType.Standard ||\n renderType == DataRenderType.Array)\n ) {\n return arrayRenderer.render(props, renderers);\n }\n if (fieldType === FieldType.Compound) {\n const groupOptions = (isDataGroupRenderer(renderOptions)\n ? renderOptions.groupOptions\n : undefined) ?? { type: \"Standard\", hideTitle: true };\n return renderers.renderGroup({ ...props, renderOptions: groupOptions });\n }\n if (props.displayOnly || isDisplayOnlyRenderer(renderOptions))\n return (p) => {\n return {\n ...p,\n className: \"@ \" + rendererClass(p.className, displayOnlyClass),\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={\n isDisplayOnlyRenderer(renderOptions) && renderOptions.emptyText\n ? renderOptions.emptyText\n : defaultEmptyText\n }\n />\n ),\n };\n };\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.NullToggle:\n return nullToggler.render(props, renderers);\n case DataRenderType.CheckList:\n return checkListRenderer.render(props, renderers);\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n case DataRenderType.Radio:\n return radioRenderer.render(props, renderers);\n case DataRenderType.Checkbox:\n return checkboxRenderer.render(props, renderers);\n case DataRenderType.Jsonata:\n return jsonataRenderer.render(props, renderers);\n case DataRenderType.Autocomplete:\n return autocompleteRenderer.render(props, renderers);\n }\n if (fieldType == FieldType.Any) {\n return (\n <>\n Can't render field: {field.displayName ?? field.field} ({renderType})\n </>\n );\n }\n if (isTextfieldRenderer(renderOptions) && renderOptions.multiline)\n return multilineRenderer.render(props, renderers);\n const placeholder = isTextfieldRenderer(renderOptions)\n ? renderOptions.placeholder\n : undefined;\n\n return (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n placeholder={placeholder ?? undefined}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport interface DefaultAccordionRendererOptions {\n className?: string;\n titleClass?: string;\n togglerClass?: string;\n iconOpenClass?: string;\n iconClosedClass?: string;\n renderTitle?: (\n title: string | undefined,\n current: Control<boolean>,\n ) => ReactNode;\n renderToggler?: (current: Control<boolean>, title: ReactNode) => ReactNode;\n useCss?: boolean;\n}\n\nexport interface DefaultAdornmentRendererOptions {\n accordion?: DefaultAccordionRendererOptions;\n optional?: DefaultOptionalAdornmentOptions;\n}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n const optional = createOptionalAdornment(options.optional);\n return {\n type: \"adornment\",\n render: (props, renderers) => {\n if (isOptionalAdornment(props.adornment)) {\n return optional.render(props, renderers);\n }\n const { adornment, designMode, dataContext, useExpr } = props;\n return {\n apply: (rl) => {\n if (isSetFieldAdornment(adornment) && useExpr) {\n const hook = useExpr(adornment.expression, (x) => x);\n const dynamicHooks = useDynamicHooks({ value: hook });\n const SetFieldWrapper = useCallback(setFieldWrapper, [\n dynamicHooks,\n ]);\n return wrapLayout((x) => (\n <SetFieldWrapper\n children={x}\n parentContext={dataContext}\n adornment={adornment}\n />\n ))(rl);\n\n function setFieldWrapper({\n children,\n adornment,\n parentContext,\n }: {\n children: ReactNode;\n adornment: SetFieldAdornment;\n parentContext: ControlDataContext;\n }) {\n const { value } = dynamicHooks(parentContext);\n const fieldNode = schemaDataForFieldRef(\n adornment.field,\n parentContext.parentNode,\n );\n const otherField = fieldNode.control;\n const always = !adornment.defaultOnly;\n useControlEffect(\n () => [value?.value, otherField?.value == null],\n ([v]) => {\n otherField?.setValue((x) => (always || x == null ? v : x));\n },\n true,\n );\n return children;\n }\n }\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n if (isAccordionAdornment(adornment)) {\n return wrapLayout((x) => (\n <DefaultAccordion\n renderers={renderers}\n children={x}\n accordion={adornment}\n contentStyle={rl.style}\n contentClassName={rl.className}\n designMode={designMode}\n dataContext={dataContext}\n {...options.accordion}\n />\n ))(rl);\n }\n },\n priority: 0,\n adornment,\n };\n },\n };\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n labelContainer?: (children: ReactElement) => ReactElement;\n}\n\nexport function createDefaultLabelRenderer(\n options?: DefaultLabelRendererOptions,\n): LabelRendererRegistration {\n const {\n className,\n groupLabelClass,\n controlLabelClass,\n requiredElement,\n labelContainer,\n } = {\n requiredElement: <span> *</span>,\n labelContainer: (c: ReactElement) => c,\n ...options,\n };\n return {\n render: (props, labelStart, labelEnd, renderers) => {\n if (props.type == LabelType.Text) return props.label;\n return labelContainer(\n <>\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {labelStart}\n {renderers.renderLabelText(props.label)}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>,\n );\n },\n type: \"label\",\n };\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createButtonActionRenderer(undefined, options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nexport function createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n","import React from \"react\";\n\nimport { DefaultRendererOptions } from \"./createDefaultRenderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n tabs: {\n className: \"\",\n tabListClass:\n \"flex flex-wrap text-sm font-medium text-center text-gray-500 border-b border-gray-200 dark:border-gray-700 dark:text-gray-400\",\n tabClass: \"me-2\",\n labelClass:\n \"inline-flex items-center justify-center p-4 border-b-2 group\",\n inactiveClass:\n \"border-transparent rounded-t-lg hover:text-gray-600 hover:border-gray-300 dark:hover:text-gray-300 cursor-pointer\",\n activeClass:\n \"text-blue-600 border-blue-600 rounded-t-lg active dark:text-blue-500 dark:border-blue-500\",\n contentClass: \"my-2\",\n },\n },\n action: {\n className: \"bg-primary-500 rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n checkOptions: {\n className: \"flex items-center gap-4\",\n entryClass: \"flex gap-1 items-center\",\n },\n selectOptions: { emptyText: \"<select>\" },\n multilineClass: \"border p-2 outline-0 whitespace-pre-wrap\",\n autocompleteOptions: {\n className:\n \"w-full flex gap-[5px] pr-[5px] overflow-hidden rounded-lg bg-white border border-solid border-gray-200 hover:border-primary-400 focus-visible:outline-0 shadow-[0_2px_4px_rgb(0_0_0_/_0.05)] min-h-[48px] py-1\",\n listContainerClass:\n \"absolute w-full text-sm box-border p-1.5 my-3 mx-0 min-w-[120px] rounded-xl overflow-auto outline-0 max-h-[300px] z-[1] bg-white border border-solid border-surface-200 text-surface-900 shadow-[0_4px_30px_transparent] shadow-surface-200\",\n listEntryClass:\n \"list-none p-2 rounded-lg cursor-default last-of-type:border-b-0 hover:cursor-pointer hover:bg-primary-100 aria-selected:bg-primary-200 aria-selected:text-primary-900 focused:bg-surface-100 focus-visible:bg-surface-100 focused:text-surface-900 focus-visible:text-surface-900 focus-visible:shadow-[0_0_0_3px_transparent] focus-visible:shadow-primary-200 focused:aria-selected:bg-primary-200 focus-visible:aria-selected:bg-primary-200 focused:aria-selected:text-primary-900 focus-visible:aria-selected:text-primary-900\",\n chipContainerClass:\n \"flex flex-row items-center px-3 py-1 rounded-full bg-surface-100 m-1 gap-2 truncate\",\n chipCloseButtonClass:\n \"fa-solid fa-xmark p-1 bg-surface-300 rounded-full min-w-[24px] flex justify-center text-surface-50 hover:bg-surface-400 hover:text-surface-100 hover:cursor-pointer\",\n },\n },\n adornment: {\n accordion: {\n className: \"flex items-center gap-2 my-2\",\n titleClass: \"cursor-pointer\",\n iconOpenClass: \"fa fa-chevron-up\",\n iconClosedClass: \"fa fa-chevron-down\",\n },\n optional: {\n checkClass: \"m-2\",\n className: \"flex items-center gap-2 w-full\",\n multiValuesClass: \"italic\",\n childWrapperClass: \"grow\",\n },\n },\n} satisfies DefaultRendererOptions;\n"],"names":["_excluded","createDefaultDisplayRenderer","options","render","props","React","createElement","DefaultDisplay","_extends","type","_ref","_effect","_useComponentTracking","data","display","className","style","_objectWithoutPropertiesLoose","DisplayDataType","Icon","clsx","getOverrideClass","value","iconClass","Text","rendererClass","textClassName","coerceToString","text","Html","htmlClassName","dangerouslySetInnerHTML","__html","html","Custom","customId","_excluded2","ControlInput","toText","convert","control","_formControlProps","formControlProps","inputProps","textValue","useControl","useControlEffect","v","onChange","e","target","converted","undefined","createInputConversion","ft","FieldType","String","a","Bool","_a$toString","toString","Int","parseInt","DateTime","Date","Time","l","length","substring","Double","parseFloat","createSelectRenderer","createDataRenderer","asArray","_props$options","SelectDataRenderer","state","id","readonly","required","emptyText","requiredText","createSelectConversion","field","renderOption","x","i","key","disabled","name","_ref$emptyText","_ref$requiredText","showEmpty","useState","optionStringMap","useMemo","Object","fromEntries","map","optionGroups","Set","filter","group","concat","keys","label","o","createRadioRenderer","p","CheckButtons","classes","controlClasses","renderOptions","isChecked","setChecked","c","entryAdornment","fieldOptionAdornment","renderType","DataRenderType","Radio","createCheckListRenderer","Array","isArray","includes","checked","setValue","setIncluded","collection","CheckList","useComponentTracking","_ref$controlClasses","uniqueId","RenderArrayElements","array","useComputed","selOrUnsel","selectedClass","notSelectedClass","entryWrapperClass","onClick","entryClass","checkClass","readOnly","labelClass","htmlFor","elem","included","createCheckboxRenderer","renderer","children","Fcheckbox","as","renderLabel","Checkbox","createDefaultLayoutRenderer","createLayoutRenderer","renderers","layout","renderLayoutParts","wrapLayout","DefaultLayout","divRef","errorControl","meta","scrollElement","errorClass","_ref$renderError","renderError","_ref$layout","controlEnd","Fragment","controlStart","touched","error","DefaultDisplayOnly","_ref2","schemaInterface","isEmptyValue","DefaultAccordion","_dataContext$dataNode","accordion","contentStyle","contentClassName","designMode","iconOpenClass","iconClosedClass","_ref$renderTitle","renderTitle","t","renderToggler","titleClass","useCss","dataContext","dataControl","dataNode","parentNode","open","defaultExpanded","accordionState","isOpen","fullContentStyle","title","renderLabelText","toggler","TabsGroupRenderer","renderTabs","tabs","tabListClass","tabClass","tabIndex","currentTab","activeClass","inactiveClass","definition","contentClass","renderChild","formNode","getChildNodes","createDefaultGroupRenderer","tabsRenderer","createGroupRenderer","GroupRenderType","Tabs","createTabsRenderer","_ref$gridStyles","gridStyles","_ref2$columns","columns","gridClassName","gridTemplateColumns","defaultGridColumns","_ref$defaultGridColum","standardClassName","flexClassName","defaultFlexGap","isTabsRenderer","isSelectChildRenderer","SelectChildGroupRenderer","_ref3","isGridRenderer","isFlexRenderer","gap","flexDirection","direction","flexStyles","dynHook","useEvalExpression","childIndexExpression","Render","useTrackedComponent","ctrl","runHook","childIndex","childDefinitions","deps","createDefaultVisibilityRenderer","createVisibilityRenderer","DefaultVisibility","visibility","useEffect","ex","visible","showing","ref","createJsonataRenderer","JsonataRenderer","Jsonata","sdn","elementIndex","bindings","formData","dataPath","getJsonPath","rendered","useJsonataExpression","expression","getRootDataNode","createNullToggleRenderer","lastDefined","getLastDefinedValue","current","defaultValue","nullControl","getNullToggler","renderData","createDefaultArrayDataRenderer","defaultActions","DataArrayRenderer","dataProps","_definition$children","useChildVisibility","_mergeObjects","mergeObjects","isArrayRenderer","addText","noAdd","noRemove","removeText","childOptions","renderAsElement","isCompoundField","childDefinition","nodeForControl","ControlDefinitionType","Data","Standard","hideTitle","Group","groupOptions","tree","visibilities","makeHookDepString","Entry","RenderEntry","arrayProps","createArrayActions","renderElement","wrap","index","renderChildElement","getLengthRestrictions","renderArray","elementNode","_control$elements$i$u","_control$elements","elements","parentDataNode","getChildElement","childVis","hook","def","lookupDataNode","some","createDefaultArrayRenderer","_ref4","DefaultArrayRenderer","renderAction","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","arrayControl","_applyArrayLengthRest","applyArrayLengthRestrictions","addAction","removeAction","RenderElements","_","inputClass","createAutocompleteRenderer","_p$options","_p$options2","MultipleAutocomplete","SingleAutocomplete","Autocomplete","_controlClasses$place","_objectDestructuringEmpty","inputControl","selectedOptionControl","listContainerClass","listEntryClass","controlValues","selected","_useAutocomplete","useAutocomplete","freeSolo","multiple","inputValue","getOptionLabel","filterOptions","s","toLowerCase","onInputChange","reason","getInputProps","getListboxProps","getOptionProps","groupedOptions","popupOpen","focused","getPopupIndicatorProps","getRootProps","placeholder","option","optionProps","_effect2","_selectedOptionsContr","_selectedOptionsContr2","_controlClasses$place2","selectedOptionsControl","chipContainerClass","chipCloseButtonClass","_selected$map","selectedValues","_useAutocomplete2","Chip","onDeleteClick","find","removeElement","_ref5","_effect3","RenderType","ValueForFieldExtension","RenderOptions","fields","buildSchema","fieldRef","stringField","ValueForField","schema","default","setFields","_useMemo","rootSchema","rootSchemaNode","notNullable","onlyForTypes","addMissingControlsForSchema","useControlRendererComponent","groupedControl","makeSchemaDataNode","createOptionalAdornment","createAdornmentRenderer","_dataContext$dataNode2","newControl","adornment","editing","getIsEditing","isEditing","nullToggler","editSelectable","allowNull","apply","rl","_adornment$placement","formOptions","hideEdit","appendMarkupAt","placement","defaultPlacement","AdornmentPlacement","LabelStart","wrapMarkup","customRender","allValues","getAllValues","OptionalEditRenderer","priority","adornmentType","ControlAdornmentType","Optional","_options$setNullText","_options$multiValuesT","multipleValues","nullEdit","nullWrapperClass","notValue","setNullText","multiValuesClass","multiValuesText","childWrapperClass","MultilineTextfield","codeRef","useRef","textContent","contentEditable","onInput","currentTarget","createButtonActionRenderer","actionId","createActionRenderer","_options$renderConten","actionText","actionData","renderContent","DefaultBoolOptions","createDefaultDataRenderer","_options$checkOptions","_options$radioOptions","_options$checkListOpt","jsonataRenderer","jsonataClass","multilineRenderer","multilineClass","checkboxRenderer","checkOptions","checkboxOptions","selectRenderer","selectOptions","radioRenderer","radioOptions","checkListRenderer","checkListOptions","_optionRenderer$boole","optionRenderer","booleanOptions","displayOnlyClass","defaultEmptyText","arrayRenderer","arrayOptions","autocompleteRenderer","autocompleteOptions","_field$displayName","fieldType","Compound","isDataGroupRenderer","renderGroup","displayOnly","isDisplayOnlyRenderer","hasOptions","NullToggle","Dropdown","Any","displayName","isTextfieldRenderer","multiline","createDefaultAdornmentRenderer","optional","isOptionalAdornment","useExpr","isSetFieldAdornment","dynamicHooks","useDynamicHooks","SetFieldWrapper","useCallback","parentContext","otherField","schemaDataForFieldRef","always","defaultOnly","isIconAdornment","ControlStart","isAccordionAdornment","createDefaultLabelRenderer","_requiredElement$labe","requiredElement","labelContainer","groupLabelClass","controlLabelClass","labelStart","labelEnd","LabelType","forId","Control","createDefaultRenderers","action","renderLayout","defaultTailwindTheme","_schemaDataForFieldRe","actualFieldRef","node","schemaForFieldRef"],"mappings":"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"}