@k3-tech/react-kit 0.0.55 → 0.0.57
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/index.js +68 -31
- package/dist/kit/builder/form/components/FormBuilder.d.ts +1 -1
- package/dist/kit/builder/form/components/FormBuilder.d.ts.map +1 -1
- package/dist/kit/builder/form/components/sectionNodes.d.ts.map +1 -1
- package/dist/kit/builder/form/hooks/useFormBuilder.d.ts +1 -0
- package/dist/kit/builder/form/hooks/useFormBuilder.d.ts.map +1 -1
- package/dist/kit/builder/form/types.d.ts +4 -7
- package/dist/kit/builder/form/types.d.ts.map +1 -1
- package/dist/kit/builder/section/SectionBuilder.d.ts.map +1 -1
- package/dist/kit/builder/section/types.d.ts +3 -0
- package/dist/kit/builder/section/types.d.ts.map +1 -1
- package/dist/kit/components/fileuploader/FileUploader.d.ts.map +1 -1
- package/dist/kit/layouts/admin/components/AdminLayout.d.ts.map +1 -1
- package/dist/kit/themes/clean-slate.css +4 -0
- package/dist/kit/themes/default.css +4 -0
- package/dist/kit/themes/minimal-modern.css +4 -0
- package/dist/kit/themes/spotify.css +4 -0
- package/package.json +1 -1
- package/src/kit/builder/form/components/sectionNodes.tsx +3 -0
- package/src/kit/builder/form/types.ts +11 -7
- package/src/kit/builder/section/SectionBuilder.tsx +18 -10
- package/src/kit/builder/section/types.ts +3 -0
package/dist/index.js
CHANGED
|
@@ -12102,7 +12102,7 @@ function SectionNodeRenderer({
|
|
|
12102
12102
|
node,
|
|
12103
12103
|
renderLeaf
|
|
12104
12104
|
}) {
|
|
12105
|
-
var _a2;
|
|
12105
|
+
var _a2, _b, _c;
|
|
12106
12106
|
if (node.hidden) return null;
|
|
12107
12107
|
const layout = node.layout ?? "grid";
|
|
12108
12108
|
const containerClass = layout === "grid" ? gridClasses(node.grid) : layout === "flex" ? flexClasses(node.flex) : "";
|
|
@@ -12117,26 +12117,38 @@ function SectionNodeRenderer({
|
|
|
12117
12117
|
className: node.className,
|
|
12118
12118
|
headerClassName: node.headerClassName,
|
|
12119
12119
|
contentClassName: node.contentClassName,
|
|
12120
|
-
children: /* @__PURE__ */ jsxs(
|
|
12121
|
-
|
|
12122
|
-
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12127
|
-
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
|
|
12138
|
-
|
|
12139
|
-
|
|
12120
|
+
children: /* @__PURE__ */ jsxs(
|
|
12121
|
+
Tabs,
|
|
12122
|
+
{
|
|
12123
|
+
defaultValue: defaultTabId,
|
|
12124
|
+
className: cn$1("space-y-2"),
|
|
12125
|
+
value: (_b = node.tabsState) == null ? void 0 : _b[0],
|
|
12126
|
+
onValueChange: (_c = node.tabsState) == null ? void 0 : _c[1],
|
|
12127
|
+
children: [
|
|
12128
|
+
/* @__PURE__ */ jsx(TabsList, { className: cn$1(node.tabsListClassName), children: node.tabs.filter((tab) => !tab.hidden).map((tab) => {
|
|
12129
|
+
return /* @__PURE__ */ jsx(
|
|
12130
|
+
TabsTrigger,
|
|
12131
|
+
{
|
|
12132
|
+
value: tab.id,
|
|
12133
|
+
disabled: !!tab.disable,
|
|
12134
|
+
className: cn$1(tab.className),
|
|
12135
|
+
children: tab.label
|
|
12136
|
+
},
|
|
12137
|
+
tab.id
|
|
12138
|
+
);
|
|
12139
|
+
}) }),
|
|
12140
|
+
node.tabs.map((tab) => /* @__PURE__ */ jsx(
|
|
12141
|
+
TabsContent,
|
|
12142
|
+
{
|
|
12143
|
+
value: tab.id,
|
|
12144
|
+
className: cn$1(node.tabsContentClassName, tab.contentClassName),
|
|
12145
|
+
children: /* @__PURE__ */ jsx(SectionNodeRenderer, { node: tab.node, renderLeaf })
|
|
12146
|
+
},
|
|
12147
|
+
tab.id
|
|
12148
|
+
))
|
|
12149
|
+
]
|
|
12150
|
+
}
|
|
12151
|
+
)
|
|
12140
12152
|
}
|
|
12141
12153
|
);
|
|
12142
12154
|
}
|
|
@@ -32868,7 +32880,9 @@ function FileUploader({
|
|
|
32868
32880
|
const preparedFile = isBlobLike(transformed) ? await normalizeTransformedFile(preparedSource, transformed) : transformed ?? preparedSource;
|
|
32869
32881
|
setFilesAndEmit((prev) => {
|
|
32870
32882
|
var _a2;
|
|
32871
|
-
const index2 = prev.findIndex(
|
|
32883
|
+
const index2 = prev.findIndex(
|
|
32884
|
+
(file) => getUploadToken(file) === token
|
|
32885
|
+
);
|
|
32872
32886
|
if (index2 < 0) return prev;
|
|
32873
32887
|
const n2 = [...prev];
|
|
32874
32888
|
n2[index2] = {
|
|
@@ -32885,7 +32899,9 @@ function FileUploader({
|
|
|
32885
32899
|
});
|
|
32886
32900
|
const result = await uploader(preparedFile, (pct) => {
|
|
32887
32901
|
setFilesAndEmit((prev) => {
|
|
32888
|
-
const index2 = prev.findIndex(
|
|
32902
|
+
const index2 = prev.findIndex(
|
|
32903
|
+
(file) => getUploadToken(file) === token
|
|
32904
|
+
);
|
|
32889
32905
|
if (index2 < 0) return prev;
|
|
32890
32906
|
const n2 = [...prev];
|
|
32891
32907
|
n2[index2] = {
|
|
@@ -32897,7 +32913,9 @@ function FileUploader({
|
|
|
32897
32913
|
});
|
|
32898
32914
|
});
|
|
32899
32915
|
setFilesAndEmit((prev) => {
|
|
32900
|
-
const index2 = prev.findIndex(
|
|
32916
|
+
const index2 = prev.findIndex(
|
|
32917
|
+
(file) => getUploadToken(file) === token
|
|
32918
|
+
);
|
|
32901
32919
|
if (index2 < 0) return prev;
|
|
32902
32920
|
const n2 = [...prev];
|
|
32903
32921
|
n2[index2] = {
|
|
@@ -32914,7 +32932,9 @@ function FileUploader({
|
|
|
32914
32932
|
if (uploaded) onUploadSuccess == null ? void 0 : onUploadSuccess(uploaded);
|
|
32915
32933
|
} catch (err) {
|
|
32916
32934
|
setFilesAndEmit((prev) => {
|
|
32917
|
-
const index2 = prev.findIndex(
|
|
32935
|
+
const index2 = prev.findIndex(
|
|
32936
|
+
(file) => getUploadToken(file) === token
|
|
32937
|
+
);
|
|
32918
32938
|
if (index2 < 0) return prev;
|
|
32919
32939
|
const n2 = [...prev];
|
|
32920
32940
|
const msg = err && typeof err === "object" && "message" in err ? String(err.message) : "Upload failed";
|
|
@@ -32990,7 +33010,10 @@ function FileUploader({
|
|
|
32990
33010
|
return next;
|
|
32991
33011
|
});
|
|
32992
33012
|
if (uploader) {
|
|
32993
|
-
const capacity = typeof maxFiles === "number" ? Math.max(
|
|
33013
|
+
const capacity = typeof maxFiles === "number" ? Math.max(
|
|
33014
|
+
0,
|
|
33015
|
+
maxFiles - (((_a2 = isControlled ? value : files) == null ? void 0 : _a2.length) ?? 0)
|
|
33016
|
+
) : acceptedFiles.length;
|
|
32994
33017
|
uploadQueue.slice(0, capacity).forEach(({ file, token }) => {
|
|
32995
33018
|
void startUpload(token, file);
|
|
32996
33019
|
});
|
|
@@ -33149,6 +33172,7 @@ function FileUploader({
|
|
|
33149
33172
|
}
|
|
33150
33173
|
},
|
|
33151
33174
|
"aria-label": "Download",
|
|
33175
|
+
type: "button",
|
|
33152
33176
|
children: /* @__PURE__ */ jsx(Download, { className: "h-4 w-4" })
|
|
33153
33177
|
}
|
|
33154
33178
|
) }),
|
|
@@ -33162,6 +33186,7 @@ function FileUploader({
|
|
|
33162
33186
|
variant: "ghost",
|
|
33163
33187
|
onClick: () => onRemove2(idx),
|
|
33164
33188
|
"aria-label": "Remove",
|
|
33189
|
+
type: "button",
|
|
33165
33190
|
children: /* @__PURE__ */ jsx(Trash2, { className: "h-4 w-4" })
|
|
33166
33191
|
}
|
|
33167
33192
|
) }),
|
|
@@ -34067,6 +34092,7 @@ function buildSectionNodes(options) {
|
|
|
34067
34092
|
baseNode.defaultTabId = section.defaultTabId ?? ((_a2 = section.tabs[0]) == null ? void 0 : _a2.id);
|
|
34068
34093
|
baseNode.tabsListClassName = section.tabsListClassName;
|
|
34069
34094
|
baseNode.tabsContentClassName = section.tabsContentClassName;
|
|
34095
|
+
baseNode.tabsState = section.tabsState;
|
|
34070
34096
|
baseNode.tabs = section.tabs.map((tab, _tabIdx) => {
|
|
34071
34097
|
const nestedNodes = tab.sections.map(
|
|
34072
34098
|
(subSection, subIdx) => buildSectionNode(subSection, subIdx)
|
|
@@ -34083,6 +34109,8 @@ function buildSectionNodes(options) {
|
|
|
34083
34109
|
label: tab.label,
|
|
34084
34110
|
className: tab.className,
|
|
34085
34111
|
contentClassName: tab.contentClassName,
|
|
34112
|
+
hidden: tab.hidden,
|
|
34113
|
+
disable: tab.disable,
|
|
34086
34114
|
node: containerNode
|
|
34087
34115
|
};
|
|
34088
34116
|
});
|
|
@@ -37715,7 +37743,7 @@ function superRefine(fn) {
|
|
|
37715
37743
|
return _superRefine(fn);
|
|
37716
37744
|
}
|
|
37717
37745
|
function useFormBuilder(options) {
|
|
37718
|
-
const { sections, defaultValues, schema: providedSchema } = options;
|
|
37746
|
+
const { sections, defaultValues, schema: providedSchema, extendValidation } = options;
|
|
37719
37747
|
const generatedSchema = useMemo(() => {
|
|
37720
37748
|
if (providedSchema) return providedSchema;
|
|
37721
37749
|
const generateFieldSchema = (field) => {
|
|
@@ -37961,8 +37989,11 @@ function useFormBuilder(options) {
|
|
|
37961
37989
|
}
|
|
37962
37990
|
};
|
|
37963
37991
|
forEachField(sections);
|
|
37992
|
+
if (typeof extendValidation === "function") {
|
|
37993
|
+
return extendValidation(object(schemaObject));
|
|
37994
|
+
}
|
|
37964
37995
|
return object(schemaObject);
|
|
37965
|
-
}, [sections, providedSchema]);
|
|
37996
|
+
}, [sections, providedSchema, extendValidation]);
|
|
37966
37997
|
const generatedDefaultValues = useMemo(() => {
|
|
37967
37998
|
const values = {
|
|
37968
37999
|
...defaultValues ?? {}
|
|
@@ -38074,12 +38105,14 @@ function FormBuilder({
|
|
|
38074
38105
|
showActions = true,
|
|
38075
38106
|
customActions,
|
|
38076
38107
|
showActionsSeparator = true,
|
|
38077
|
-
form
|
|
38108
|
+
form,
|
|
38109
|
+
extendValidation
|
|
38078
38110
|
}) {
|
|
38079
38111
|
const { form: generatedForm } = useFormBuilder({
|
|
38080
38112
|
sections,
|
|
38081
38113
|
schema,
|
|
38082
|
-
defaultValues: defaultValues ?? void 0
|
|
38114
|
+
defaultValues: defaultValues ?? void 0,
|
|
38115
|
+
extendValidation
|
|
38083
38116
|
});
|
|
38084
38117
|
const activeForm = form ?? generatedForm;
|
|
38085
38118
|
const { control, handleSubmit, reset: reset2, setValue, getValues } = activeForm;
|
|
@@ -48727,7 +48760,11 @@ function AdminLayoutContent({
|
|
|
48727
48760
|
] })
|
|
48728
48761
|
}
|
|
48729
48762
|
),
|
|
48730
|
-
hasChildren && isOpen &&
|
|
48763
|
+
hasChildren && isOpen && // Submenu must be wrapped in a list element so the SidebarMenuItem
|
|
48764
|
+
// (rendered as <li>) children don't end up as direct descendants of
|
|
48765
|
+
// a <div> inside another <li> — that's invalid HTML and triggers a
|
|
48766
|
+
// React hydration warning.
|
|
48767
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-1 flex flex-col list-none p-0 m-0", children: (item.children ?? []).map(
|
|
48731
48768
|
(child) => renderItem(child, Math.min(level + 1, 3))
|
|
48732
48769
|
) })
|
|
48733
48770
|
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { FieldValues } from 'react-hook-form';
|
|
2
2
|
import { FormBuilderProps } from '../types';
|
|
3
|
-
export declare function FormBuilder<TFieldValues extends FieldValues = FieldValues>({ sections, schema, defaultValues, onSubmit, onCancel, onReset, onFieldChange, submitLabel, cancelLabel, resetLabel, isSubmitting, className, formClassName, actionsClassName, showActions, customActions, showActionsSeparator, form, }: FormBuilderProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function FormBuilder<TFieldValues extends FieldValues = FieldValues>({ sections, schema, defaultValues, onSubmit, onCancel, onReset, onFieldChange, submitLabel, cancelLabel, resetLabel, isSubmitting, className, formClassName, actionsClassName, showActions, customActions, showActionsSeparator, form, extendValidation, }: FormBuilderProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
//# sourceMappingURL=FormBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/form/components/FormBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,WAAW,EAAa,MAAM,iBAAiB,CAAC;AASxE,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,WAAW,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,EAAE,EAC1E,QAAQ,EACR,MAAM,EACN,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,EACb,WAAsB,EACtB,WAAsB,EACtB,UAAoB,EACpB,YAAoB,EACpB,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,WAAkB,EAClB,aAAa,EACb,oBAA2B,EAC3B,IAAI,
|
|
1
|
+
{"version":3,"file":"FormBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/form/components/FormBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,WAAW,EAAa,MAAM,iBAAiB,CAAC;AASxE,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,WAAW,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,EAAE,EAC1E,QAAQ,EACR,MAAM,EACN,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,EACb,WAAsB,EACtB,WAAsB,EACtB,UAAoB,EACpB,YAAoB,EACpB,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,WAAkB,EAClB,aAAa,EACb,oBAA2B,EAC3B,IAAI,EACJ,gBAAgB,GACjB,EAAE,gBAAgB,CAAC,YAAY,CAAC,2CAmQhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sectionNodes.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/form/components/sectionNodes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,OAAO,EACP,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAGlB,UAAU,wBAAwB,CAAC,YAAY,SAAS,WAAW;IACjE,QAAQ,EAAE,KAAK,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,uBAAuB,EAAE,CACvB,KAAK,EAAE,sBAAsB,CAAC,YAAY,CAAC,KACxC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1F,iBAAiB,EAAE,CACjB,KAAK,EAAE,sBAAsB,CAAC,YAAY,CAAC,EAC3C,KAAK,EAAE,OAAO,EACd,GAAG,MAAM,EAAE,OAAO,EAAE,KACjB,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,EACjC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,YAAY,KACpB,IAAI,CAAC;IACV,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CAC3C;AAED,wBAAgB,iBAAiB,CAAC,YAAY,SAAS,WAAW,EAChE,OAAO,EAAE,wBAAwB,CAAC,YAAY,CAAC,GAC9C,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"sectionNodes.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/form/components/sectionNodes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,OAAO,EACP,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAGlB,UAAU,wBAAwB,CAAC,YAAY,SAAS,WAAW;IACjE,QAAQ,EAAE,KAAK,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,uBAAuB,EAAE,CACvB,KAAK,EAAE,sBAAsB,CAAC,YAAY,CAAC,KACxC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1F,iBAAiB,EAAE,CACjB,KAAK,EAAE,sBAAsB,CAAC,YAAY,CAAC,EAC3C,KAAK,EAAE,OAAO,EACd,GAAG,MAAM,EAAE,OAAO,EAAE,KACjB,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,EACjC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,YAAY,KACpB,IAAI,CAAC;IACV,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CAC3C;AAED,wBAAgB,iBAAiB,CAAC,YAAY,SAAS,WAAW,EAChE,OAAO,EAAE,wBAAwB,CAAC,YAAY,CAAC,GAC9C,WAAW,EAAE,CAgHf"}
|
|
@@ -5,6 +5,7 @@ export interface UseFormBuilderOptions<TFieldValues extends FieldValues = FieldV
|
|
|
5
5
|
sections: FormBuilderSectionConfig<TFieldValues>[];
|
|
6
6
|
defaultValues?: Partial<TFieldValues>;
|
|
7
7
|
schema?: z.ZodType<TFieldValues>;
|
|
8
|
+
extendValidation?: (originalSchema: z.ZodType<TFieldValues>) => z.ZodType<TFieldValues>;
|
|
8
9
|
}
|
|
9
10
|
export interface UseFormBuilderReturn<TFieldValues extends FieldValues = FieldValues> {
|
|
10
11
|
form: UseFormReturn<TFieldValues>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/form/hooks/useFormBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,qBAAqB,CACpC,YAAY,SAAS,WAAW,GAAG,WAAW;IAE9C,QAAQ,EAAE,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useFormBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/kit/builder/form/hooks/useFormBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,qBAAqB,CACpC,YAAY,SAAS,WAAW,GAAG,WAAW;IAE9C,QAAQ,EAAE,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjC,gBAAgB,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;CACxF;AAED,MAAM,WAAW,oBAAoB,CACnC,YAAY,SAAS,WAAW,GAAG,WAAW;IAE9C,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAClC,QAAQ,EAAE,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC3E,OAAO,EAAE,qBAAqB,CAAC,YAAY,CAAC,GAC3C,oBAAoB,CAAC,YAAY,CAAC,CA2apC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
1
|
import { Accept } from 'react-dropzone';
|
|
3
2
|
import { Control, DeepPartial, DefaultValues, FieldValues, Path, UseFormGetValues, UseFormReturn, UseFormSetValue } from 'react-hook-form';
|
|
4
3
|
import { z } from 'zod';
|
|
5
4
|
import { AutocompleteFetcher, AutocompleteOption } from '../../components/autocomplete/types';
|
|
6
5
|
import { FileRecord, FileTransformResult, FileUploaderLayout } from '../../components/fileuploader/types';
|
|
7
|
-
import { SectionFlexOptions, SectionGridOptions, SectionLayout } from '../section/types';
|
|
6
|
+
import { SectionFlexOptions, SectionGridOptions, SectionLayout, SectionTab } from '../section/types';
|
|
8
7
|
export type FieldType = 'text' | 'email' | 'password' | 'number' | 'textarea' | 'select' | 'autocomplete' | 'checkbox' | 'switch' | 'radio' | 'date' | 'date_picker' | 'date_range' | 'month' | 'month_range' | 'time' | 'time_range' | 'date_time' | 'date_time_range' | 'file' | 'hidden' | 'object' | 'array' | 'custom_field';
|
|
9
8
|
export interface Dependency<TFieldValues extends FieldValues> {
|
|
10
9
|
field: Path<TFieldValues>;
|
|
@@ -163,16 +162,13 @@ export interface FormBuilderSectionConfig<TFieldValues extends FieldValues = Fie
|
|
|
163
162
|
grid?: SectionGridOptions;
|
|
164
163
|
flex?: SectionFlexOptions;
|
|
165
164
|
hidden?: boolean;
|
|
166
|
-
tabs?: Array<{
|
|
167
|
-
id: string;
|
|
168
|
-
label: ReactNode;
|
|
165
|
+
tabs?: Array<Pick<SectionTab, "id" | "label" | "className" | "contentClassName" | "hidden" | "disable"> & {
|
|
169
166
|
sections: Array<FormBuilderSectionConfig<TFieldValues>>;
|
|
170
|
-
className?: string;
|
|
171
|
-
contentClassName?: string;
|
|
172
167
|
}>;
|
|
173
168
|
defaultTabId?: string;
|
|
174
169
|
tabsListClassName?: string;
|
|
175
170
|
tabsContentClassName?: string;
|
|
171
|
+
tabsState?: [string, React.Dispatch<React.SetStateAction<string>>];
|
|
176
172
|
}
|
|
177
173
|
export interface FormBuilderProps<TFieldValues extends FieldValues = FieldValues> {
|
|
178
174
|
form?: UseFormReturn<TFieldValues>;
|
|
@@ -193,6 +189,7 @@ export interface FormBuilderProps<TFieldValues extends FieldValues = FieldValues
|
|
|
193
189
|
showActions?: boolean;
|
|
194
190
|
customActions?: React.ReactNode;
|
|
195
191
|
showActionsSeparator?: boolean;
|
|
192
|
+
extendValidation?: (originalSchema: z.ZodType<TFieldValues>) => z.ZodType<TFieldValues>;
|
|
196
193
|
}
|
|
197
194
|
export type { SectionNode } from '../section/types';
|
|
198
195
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/form/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/form/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/section/SectionBuilder.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"SectionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/section/SectionBuilder.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,SAAS,CAAC;AAwa7E,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,QAAQ,EACR,SAAS,EACT,UAAU,GACX,EAAE,mBAAmB,2CAYrB"}
|
|
@@ -50,6 +50,8 @@ export interface SectionTab {
|
|
|
50
50
|
label: React.ReactNode;
|
|
51
51
|
className?: string;
|
|
52
52
|
contentClassName?: string;
|
|
53
|
+
hidden?: boolean;
|
|
54
|
+
disable?: boolean;
|
|
53
55
|
node: SectionNode;
|
|
54
56
|
}
|
|
55
57
|
export interface SectionNode extends SectionBase {
|
|
@@ -61,6 +63,7 @@ export interface SectionNode extends SectionBase {
|
|
|
61
63
|
defaultTabId?: string;
|
|
62
64
|
tabsListClassName?: string;
|
|
63
65
|
tabsContentClassName?: string;
|
|
66
|
+
tabsState?: [string, React.Dispatch<React.SetStateAction<string>>];
|
|
64
67
|
}
|
|
65
68
|
export interface SectionBuilderProps {
|
|
66
69
|
sections: SectionNode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/section/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;CAClD;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;IAE5C,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/section/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploader.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/fileuploader/FileUploader.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FileUploader.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/fileuploader/FileUploader.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAmK7D,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,eAAe,EACf,aAAa,EACb,QAAQ,EACR,SAAgB,EAChB,OAAO,EACP,UAAU,EACV,QAAe,EACf,QAAQ,EACR,MAAM,EACN,MAAe,EACf,QAAQ,EACR,uBAA+B,EAC/B,+BAAuC,EACvC,YAAmB,EACnB,gBAAwB,EACxB,WAA4D,EAC5D,SAAS,GACV,EAAE,iBAAiB,2CAmpBnB;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../../../src/kit/layouts/admin/components/AdminLayout.tsx"],"names":[],"mappings":"AA+BA,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhE,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../../../src/kit/layouts/admin/components/AdminLayout.tsx"],"names":[],"mappings":"AA+BA,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhE,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AAwNF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,GACT,EAAE,gBAAgB,2CAmBlB"}
|
package/package.json
CHANGED
|
@@ -113,6 +113,7 @@ export function buildSectionNodes<TFieldValues extends FieldValues>(
|
|
|
113
113
|
baseNode.defaultTabId = section.defaultTabId ?? section.tabs[0]?.id;
|
|
114
114
|
baseNode.tabsListClassName = section.tabsListClassName;
|
|
115
115
|
baseNode.tabsContentClassName = section.tabsContentClassName;
|
|
116
|
+
baseNode.tabsState = section.tabsState;
|
|
116
117
|
baseNode.tabs = section.tabs.map((tab, _tabIdx) => {
|
|
117
118
|
const nestedNodes = tab.sections.map((subSection, subIdx) =>
|
|
118
119
|
buildSectionNode(subSection, subIdx),
|
|
@@ -129,6 +130,8 @@ export function buildSectionNodes<TFieldValues extends FieldValues>(
|
|
|
129
130
|
label: tab.label,
|
|
130
131
|
className: tab.className,
|
|
131
132
|
contentClassName: tab.contentClassName,
|
|
133
|
+
hidden: tab.hidden,
|
|
134
|
+
disable: tab.disable,
|
|
132
135
|
node: containerNode,
|
|
133
136
|
};
|
|
134
137
|
});
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
1
|
import type { Accept } from 'react-dropzone';
|
|
3
2
|
import type {
|
|
4
3
|
Control,
|
|
@@ -24,6 +23,7 @@ import type {
|
|
|
24
23
|
SectionFlexOptions,
|
|
25
24
|
SectionGridOptions,
|
|
26
25
|
SectionLayout,
|
|
26
|
+
SectionTab,
|
|
27
27
|
} from '../section/types';
|
|
28
28
|
|
|
29
29
|
export type FieldType =
|
|
@@ -216,16 +216,20 @@ export interface FormBuilderSectionConfig<
|
|
|
216
216
|
grid?: SectionGridOptions;
|
|
217
217
|
flex?: SectionFlexOptions;
|
|
218
218
|
hidden?: boolean;
|
|
219
|
-
tabs?: Array<
|
|
220
|
-
id
|
|
221
|
-
label
|
|
219
|
+
tabs?: Array<Pick<SectionTab,
|
|
220
|
+
| "id"
|
|
221
|
+
| "label"
|
|
222
|
+
| "className"
|
|
223
|
+
| "contentClassName"
|
|
224
|
+
| "hidden"
|
|
225
|
+
| "disable"
|
|
226
|
+
> & {
|
|
222
227
|
sections: Array<FormBuilderSectionConfig<TFieldValues>>;
|
|
223
|
-
|
|
224
|
-
contentClassName?: string;
|
|
225
|
-
}>;
|
|
228
|
+
}>
|
|
226
229
|
defaultTabId?: string;
|
|
227
230
|
tabsListClassName?: string;
|
|
228
231
|
tabsContentClassName?: string;
|
|
232
|
+
tabsState?: [string, React.Dispatch<React.SetStateAction<string>>];
|
|
229
233
|
}
|
|
230
234
|
|
|
231
235
|
export interface FormBuilderProps<
|
|
@@ -355,17 +355,25 @@ function SectionNodeRenderer({
|
|
|
355
355
|
headerClassName={node.headerClassName}
|
|
356
356
|
contentClassName={node.contentClassName}
|
|
357
357
|
>
|
|
358
|
-
<Tabs
|
|
358
|
+
<Tabs
|
|
359
|
+
defaultValue={defaultTabId}
|
|
360
|
+
className={cn('space-y-2')}
|
|
361
|
+
value={node.tabsState?.[0]}
|
|
362
|
+
onValueChange={node.tabsState?.[1]}
|
|
363
|
+
>
|
|
359
364
|
<TabsList className={cn(node.tabsListClassName)}>
|
|
360
|
-
{node.tabs.map((tab) =>
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
365
|
+
{node.tabs.filter(tab => !tab.hidden).map((tab) => {
|
|
366
|
+
return (
|
|
367
|
+
<TabsTrigger
|
|
368
|
+
key={tab.id}
|
|
369
|
+
value={tab.id}
|
|
370
|
+
disabled={!!tab.disable}
|
|
371
|
+
className={cn(tab.className)}
|
|
372
|
+
>
|
|
373
|
+
{tab.label}
|
|
374
|
+
</TabsTrigger>
|
|
375
|
+
)
|
|
376
|
+
})}
|
|
369
377
|
</TabsList>
|
|
370
378
|
{node.tabs.map((tab) => (
|
|
371
379
|
<TabsContent
|
|
@@ -58,6 +58,8 @@ export interface SectionTab {
|
|
|
58
58
|
label: React.ReactNode;
|
|
59
59
|
className?: string;
|
|
60
60
|
contentClassName?: string;
|
|
61
|
+
hidden?: boolean;
|
|
62
|
+
disable?: boolean;
|
|
61
63
|
node: SectionNode; // Content of this tab as a nested section node
|
|
62
64
|
}
|
|
63
65
|
|
|
@@ -71,6 +73,7 @@ export interface SectionNode extends SectionBase {
|
|
|
71
73
|
defaultTabId?: string;
|
|
72
74
|
tabsListClassName?: string;
|
|
73
75
|
tabsContentClassName?: string;
|
|
76
|
+
tabsState?: [string, React.Dispatch<React.SetStateAction<string>>]
|
|
74
77
|
}
|
|
75
78
|
|
|
76
79
|
export interface SectionBuilderProps {
|