@rjsf/shadcn 6.0.2 → 6.1.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/dist/amethyst-haze.css +1 -1
- package/dist/caffeine.css +1 -1
- package/dist/claude.css +1 -1
- package/dist/clean-slate.css +1 -1
- package/dist/default.css +1 -1
- package/dist/index.cjs +52 -32
- package/dist/index.cjs.map +3 -3
- package/dist/neo-brutalism.css +1 -1
- package/dist/pastel-dreams.css +1 -1
- package/dist/rjsf-shadcn.esm.js +50 -30
- package/dist/rjsf-shadcn.esm.js.map +2 -2
- package/dist/rjsf-shadcn.umd.js +49 -30
- package/dist/soft-pop.css +1 -1
- package/dist/twitter.css +1 -1
- package/dist/vercel.css +1 -1
- package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js +3 -2
- package/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js.map +1 -1
- package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js +1 -1
- package/lib/ArrayFieldTemplate/ArrayFieldTemplate.js.map +1 -1
- package/lib/FieldHelpTemplate/FieldHelpTemplate.js +3 -3
- package/lib/FieldHelpTemplate/FieldHelpTemplate.js.map +1 -1
- package/lib/FieldTemplate/FieldTemplate.js +1 -1
- package/lib/FieldTemplate/FieldTemplate.js.map +1 -1
- package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js +1 -1
- package/lib/ObjectFieldTemplate/ObjectFieldTemplate.js.map +1 -1
- package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.d.ts +1 -1
- package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js +4 -2
- package/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +6 -2
- package/src/ArrayFieldTemplate/ArrayFieldTemplate.tsx +1 -1
- package/src/FieldHelpTemplate/FieldHelpTemplate.tsx +8 -5
- package/src/FieldTemplate/FieldTemplate.tsx +2 -0
- package/src/ObjectFieldTemplate/ObjectFieldTemplate.tsx +10 -8
- package/src/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +30 -18
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rjsf/shadcn",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -45,11 +45,12 @@
|
|
|
45
45
|
"scripts": {
|
|
46
46
|
"build:css": "tsx build-css.ts",
|
|
47
47
|
"compileReplacer": "tsc -p tsconfig.replacer.json && move-file lodashReplacer.js lodashReplacer.cjs",
|
|
48
|
+
"copy-resources": "cp dist/*.css resources",
|
|
48
49
|
"build:ts": "npm run compileReplacer && rimraf ./lib && tsc -b tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
49
50
|
"build:cjs": "esbuild ./src/index.ts --bundle --outfile=dist/index.cjs --sourcemap --packages=external --format=cjs",
|
|
50
51
|
"build:esm": "esbuild ./src/index.ts --bundle --outfile=dist/rjsf-shadcn.esm.js --sourcemap --packages=external --format=esm",
|
|
51
52
|
"build:umd": "rollup dist/rjsf-shadcn.esm.js --format=umd --file=dist/rjsf-shadcn.umd.js --name=@rjsf/rjsf-shadcn",
|
|
52
|
-
"build": "npm run build:ts && npm run build:cjs && npm run build:esm && npm run build:umd && npm run build:css",
|
|
53
|
+
"build": "npm run build:ts && npm run build:cjs && npm run build:esm && npm run build:umd && npm run build:css && npm run copy-resources",
|
|
53
54
|
"cs-check": "prettier -l \"{src,test}/**/*.ts?(x)\"",
|
|
54
55
|
"cs-format": "prettier \"{src,test}/**/*.ts?(x)\" --write",
|
|
55
56
|
"lint": "eslint src test",
|
|
@@ -16,20 +16,24 @@ export default function ArrayFieldItemTemplate<
|
|
|
16
16
|
S extends StrictRJSFSchema = RJSFSchema,
|
|
17
17
|
F extends FormContextType = any,
|
|
18
18
|
>(props: ArrayFieldItemTemplateProps<T, S, F>) {
|
|
19
|
-
const { children, buttonsProps, hasToolbar, uiSchema, registry } = props;
|
|
19
|
+
const { children, buttonsProps, displayLabel, hasDescription, hasToolbar, uiSchema, registry } = props;
|
|
20
20
|
const uiOptions = getUiOptions<T, S, F>(uiSchema);
|
|
21
21
|
const ArrayFieldItemButtonsTemplate = getTemplate<'ArrayFieldItemButtonsTemplate', T, S, F>(
|
|
22
22
|
'ArrayFieldItemButtonsTemplate',
|
|
23
23
|
registry,
|
|
24
24
|
uiOptions,
|
|
25
25
|
);
|
|
26
|
+
const margin = hasDescription ? -6 : 22;
|
|
26
27
|
return (
|
|
27
28
|
<div>
|
|
28
29
|
<div className='mb-2 flex flex-row flex-wrap items-center'>
|
|
29
30
|
<div className='grow shrink'>{children}</div>
|
|
30
31
|
<div className='flex items-end justify-end p-0.5'>
|
|
31
32
|
{hasToolbar && (
|
|
32
|
-
<div
|
|
33
|
+
<div
|
|
34
|
+
className='flex gap-2'
|
|
35
|
+
style={{ marginLeft: '5px', marginTop: displayLabel ? `${margin}px` : undefined }}
|
|
36
|
+
>
|
|
33
37
|
<ArrayFieldItemButtonsTemplate {...buttonsProps} />
|
|
34
38
|
</div>
|
|
35
39
|
)}
|
|
@@ -71,7 +71,7 @@ export default function ArrayFieldTemplate<
|
|
|
71
71
|
{!showOptionalDataControlInTitle ? optionalDataControl : undefined}
|
|
72
72
|
{items}
|
|
73
73
|
{canAdd && (
|
|
74
|
-
<div className='mt-2 flex'>
|
|
74
|
+
<div className='mt-2 flex justify-end'>
|
|
75
75
|
<AddButton
|
|
76
76
|
id={buttonId(fieldPathId, 'add')}
|
|
77
77
|
className='rjsf-array-item-add'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FieldHelpProps, FormContextType, RJSFSchema, StrictRJSFSchema, helpId } from '@rjsf/utils';
|
|
2
|
-
|
|
2
|
+
import { RichHelp } from '@rjsf/core';
|
|
3
3
|
import { cn } from '../lib/utils';
|
|
4
4
|
|
|
5
5
|
/** The `FieldHelpTemplate` component renders any help desired for a field
|
|
@@ -11,14 +11,17 @@ export default function FieldHelpTemplate<
|
|
|
11
11
|
S extends StrictRJSFSchema = RJSFSchema,
|
|
12
12
|
F extends FormContextType = any,
|
|
13
13
|
>(props: FieldHelpProps<T, S, F>) {
|
|
14
|
-
const { fieldPathId, help, hasErrors } = props;
|
|
14
|
+
const { fieldPathId, help, uiSchema, registry, hasErrors } = props;
|
|
15
15
|
if (!help) {
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
return (
|
|
20
|
-
<span
|
|
21
|
-
{
|
|
20
|
+
<span
|
|
21
|
+
className={cn('text-xs font-medium text-muted-foreground', { 'text-destructive': hasErrors })}
|
|
22
|
+
id={helpId(fieldPathId)}
|
|
23
|
+
>
|
|
24
|
+
<RichHelp help={help} registry={registry} uiSchema={uiSchema} />
|
|
22
25
|
</span>
|
|
23
26
|
);
|
|
24
27
|
}
|
|
@@ -58,9 +58,11 @@ export default function FieldTemplate<
|
|
|
58
58
|
disabled={disabled}
|
|
59
59
|
id={id}
|
|
60
60
|
label={label}
|
|
61
|
+
displayLabel={displayLabel}
|
|
61
62
|
onKeyRename={onKeyRename}
|
|
62
63
|
onKeyRenameBlur={onKeyRenameBlur}
|
|
63
64
|
onRemoveProperty={onRemoveProperty}
|
|
65
|
+
rawDescription={rawDescription}
|
|
64
66
|
readonly={readonly}
|
|
65
67
|
required={required}
|
|
66
68
|
schema={schema}
|
|
@@ -78,14 +78,16 @@ export default function ObjectFieldTemplate<
|
|
|
78
78
|
</div>
|
|
79
79
|
))}
|
|
80
80
|
{canExpand(schema, uiSchema, formData) ? (
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
81
|
+
<div className='mt-2 flex justify-end'>
|
|
82
|
+
<AddButton
|
|
83
|
+
id={buttonId(fieldPathId, 'add')}
|
|
84
|
+
onClick={onAddProperty}
|
|
85
|
+
disabled={disabled || readonly}
|
|
86
|
+
className='rjsf-object-property-expand'
|
|
87
|
+
uiSchema={uiSchema}
|
|
88
|
+
registry={registry}
|
|
89
|
+
/>
|
|
90
|
+
</div>
|
|
89
91
|
) : null}
|
|
90
92
|
</div>
|
|
91
93
|
</>
|
|
@@ -27,8 +27,10 @@ export default function WrapIfAdditionalTemplate<
|
|
|
27
27
|
disabled,
|
|
28
28
|
id,
|
|
29
29
|
label,
|
|
30
|
+
displayLabel,
|
|
30
31
|
onRemoveProperty,
|
|
31
32
|
onKeyRenameBlur,
|
|
33
|
+
rawDescription,
|
|
32
34
|
readonly,
|
|
33
35
|
required,
|
|
34
36
|
schema,
|
|
@@ -49,16 +51,20 @@ export default function WrapIfAdditionalTemplate<
|
|
|
49
51
|
);
|
|
50
52
|
}
|
|
51
53
|
|
|
54
|
+
const marginDesc = rawDescription ? -28 : 0;
|
|
55
|
+
const margin = displayLabel ? 22 + marginDesc : 0;
|
|
52
56
|
const keyId = `${id}-key`;
|
|
53
57
|
|
|
54
58
|
return (
|
|
55
59
|
<>
|
|
56
|
-
<div className={`
|
|
57
|
-
<div className='
|
|
58
|
-
<div className='flex-
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
|
|
60
|
+
<div className={`grid grid-cols-12 col-span-12 items-center gap-2 ${classNames}`} style={style}>
|
|
61
|
+
<div className='grid gap-2 col-span-5'>
|
|
62
|
+
<div className='flex flex-col gap-2'>
|
|
63
|
+
{displayLabel && (
|
|
64
|
+
<label htmlFor={keyId} className='text-sm font-medium text-muted-foreground leading-none'>
|
|
65
|
+
{keyLabel}
|
|
66
|
+
</label>
|
|
67
|
+
)}
|
|
62
68
|
<div className='pl-0.5'>
|
|
63
69
|
<Input
|
|
64
70
|
required={required}
|
|
@@ -68,22 +74,28 @@ export default function WrapIfAdditionalTemplate<
|
|
|
68
74
|
name={keyId}
|
|
69
75
|
onBlur={!readonly ? onKeyRenameBlur : undefined}
|
|
70
76
|
type='text'
|
|
71
|
-
className='
|
|
77
|
+
className='w-full border shadow-sm'
|
|
72
78
|
/>
|
|
73
79
|
</div>
|
|
80
|
+
{!!rawDescription && (
|
|
81
|
+
<span className='text-xs font-medium text-muted-foreground'>
|
|
82
|
+
<div className='text-sm text-muted-foreground'> </div>
|
|
83
|
+
</span>
|
|
84
|
+
)}
|
|
74
85
|
</div>
|
|
75
|
-
<div className='flex-grow pr-0.5'>{children}</div>
|
|
76
86
|
</div>
|
|
77
|
-
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
<div className='grid gap-2 col-span-6 pr-0.5'>{children}</div>
|
|
88
|
+
<div className='grid gap-2 col-span-1' style={{ marginTop: `${margin}px` }}>
|
|
89
|
+
<RemoveButton
|
|
90
|
+
id={buttonId(id, 'remove')}
|
|
91
|
+
iconType='block'
|
|
92
|
+
className='rjsf-object-property-remove w-full'
|
|
93
|
+
disabled={disabled || readonly}
|
|
94
|
+
onClick={onRemoveProperty}
|
|
95
|
+
uiSchema={uiSchema}
|
|
96
|
+
registry={registry}
|
|
97
|
+
/>
|
|
98
|
+
</div>
|
|
87
99
|
</div>
|
|
88
100
|
<Separator dir='horizontal' className='mt-2' />
|
|
89
101
|
</>
|