@chris-bellman/rjsf-mantine-5-theme
Version:
Mantine 5 theme, fields and widgets for react-jsonschema-form. Based on @aokiapp/rjsf-mantine-theme
83 lines (80 loc) • 2.19 kB
JavaScript
import { jsx, jsxs } from 'react/jsx-runtime';
import { getUiOptions, getTemplate } from '@rjsf/utils';
import { Box, Group, Stack } from '@mantine/core';
function ArrayFieldTemplate(props) {
const {
canAdd,
className,
disabled,
idSchema,
uiSchema,
items,
onAddClick,
readonly,
registry,
required,
schema,
title
} = props;
const uiOptions = getUiOptions(uiSchema);
const ArrayFieldDescriptionTemplate = getTemplate(
"ArrayFieldDescriptionTemplate",
registry,
uiOptions
);
const ArrayFieldItemTemplate = getTemplate(
"ArrayFieldItemTemplate",
registry,
uiOptions
);
const ArrayFieldTitleTemplate = getTemplate(
"ArrayFieldTitleTemplate",
registry,
uiOptions
);
const {
ButtonTemplates: { AddButton }
} = registry.templates;
const _title = uiOptions.title || title;
return /* @__PURE__ */ jsx(
Box,
{
id: idSchema.$id,
style: {
width: "100%"
},
className: `armt-template-arrayfield ${className}`,
children: /* @__PURE__ */ jsxs(Group, { spacing: "lg", children: [
/* @__PURE__ */ jsxs("div", { children: [
title && /* @__PURE__ */ jsx(
ArrayFieldTitleTemplate,
{
idSchema,
title: _title,
required,
schema,
uiSchema,
registry
}
),
/* @__PURE__ */ jsx(
ArrayFieldDescriptionTemplate,
{
idSchema,
description: uiOptions.description || schema.description,
schema,
uiSchema,
registry
}
)
] }),
/* @__PURE__ */ jsxs(Stack, { spacing: "xs", w: "100%", children: [
items && items.map(({ key, ...itemProps }) => /* @__PURE__ */ jsx(ArrayFieldItemTemplate, { ...itemProps }, key)),
canAdd && /* @__PURE__ */ jsx(AddButton, { onClick: onAddClick, disabled: disabled || readonly, uiSchema, registry })
] })
] })
}
);
}
export { ArrayFieldTemplate as default };
//# sourceMappingURL=ArrayFieldTemplate.mjs.map