@assistant-ui/react-hook-form 0.1.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.d.mts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
package/dist/index.d.mts
CHANGED
@@ -9,11 +9,11 @@ declare const formTools: {
|
|
9
9
|
name: z.ZodString;
|
10
10
|
value: z.ZodString;
|
11
11
|
}, "strip", z.ZodTypeAny, {
|
12
|
-
value: string;
|
13
12
|
name: string;
|
14
|
-
}, {
|
15
13
|
value: string;
|
14
|
+
}, {
|
16
15
|
name: string;
|
16
|
+
value: string;
|
17
17
|
}>;
|
18
18
|
};
|
19
19
|
submit_form: {
|
@@ -26,13 +26,13 @@ type UseAssistantFormProps<TFieldValues extends FieldValues, TContext> = UseForm
|
|
26
26
|
assistant?: {
|
27
27
|
tools?: {
|
28
28
|
set_form_field?: {
|
29
|
-
render?: ToolCallContentPartComponent<z.ZodType<typeof formTools.set_form_field>, unknown
|
30
|
-
};
|
29
|
+
render?: ToolCallContentPartComponent<z.ZodType<typeof formTools.set_form_field>, unknown> | undefined;
|
30
|
+
} | undefined;
|
31
31
|
submit_form?: {
|
32
|
-
render?: ToolCallContentPartComponent<z.ZodType<typeof formTools.submit_form>, unknown
|
33
|
-
};
|
34
|
-
};
|
35
|
-
};
|
32
|
+
render?: ToolCallContentPartComponent<z.ZodType<typeof formTools.submit_form>, unknown> | undefined;
|
33
|
+
} | undefined;
|
34
|
+
} | undefined;
|
35
|
+
} | undefined;
|
36
36
|
};
|
37
37
|
declare const useAssistantForm: <TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues extends FieldValues | undefined = undefined>(props?: UseAssistantFormProps<TFieldValues, TContext>) => UseFormReturn<TFieldValues, TContext, TTransformedValues>;
|
38
38
|
|
package/dist/index.d.ts
CHANGED
@@ -9,11 +9,11 @@ declare const formTools: {
|
|
9
9
|
name: z.ZodString;
|
10
10
|
value: z.ZodString;
|
11
11
|
}, "strip", z.ZodTypeAny, {
|
12
|
-
value: string;
|
13
12
|
name: string;
|
14
|
-
}, {
|
15
13
|
value: string;
|
14
|
+
}, {
|
16
15
|
name: string;
|
16
|
+
value: string;
|
17
17
|
}>;
|
18
18
|
};
|
19
19
|
submit_form: {
|
@@ -26,13 +26,13 @@ type UseAssistantFormProps<TFieldValues extends FieldValues, TContext> = UseForm
|
|
26
26
|
assistant?: {
|
27
27
|
tools?: {
|
28
28
|
set_form_field?: {
|
29
|
-
render?: ToolCallContentPartComponent<z.ZodType<typeof formTools.set_form_field>, unknown
|
30
|
-
};
|
29
|
+
render?: ToolCallContentPartComponent<z.ZodType<typeof formTools.set_form_field>, unknown> | undefined;
|
30
|
+
} | undefined;
|
31
31
|
submit_form?: {
|
32
|
-
render?: ToolCallContentPartComponent<z.ZodType<typeof formTools.submit_form>, unknown
|
33
|
-
};
|
34
|
-
};
|
35
|
-
};
|
32
|
+
render?: ToolCallContentPartComponent<z.ZodType<typeof formTools.submit_form>, unknown> | undefined;
|
33
|
+
} | undefined;
|
34
|
+
} | undefined;
|
35
|
+
} | undefined;
|
36
36
|
};
|
37
37
|
declare const useAssistantForm: <TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues extends FieldValues | undefined = undefined>(props?: UseAssistantFormProps<TFieldValues, TContext>) => UseFormReturn<TFieldValues, TContext, TTransformedValues>;
|
38
38
|
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/useAssistantForm.tsx","../src/formTools.tsx"],"sourcesContent":["export {\n useAssistantForm,\n type UseAssistantFormProps,\n} from \"./useAssistantForm\";\nexport { formTools } from \"./formTools\";\n","\"use client\";\n\nimport {\n type ModelConfig,\n type ToolCallContentPartComponent,\n useAssistantContext,\n useAssistantToolUI,\n} from \"@assistant-ui/react\";\nimport { useEffect } from \"react\";\nimport {\n type FieldValues,\n type UseFormProps,\n type UseFormReturn,\n useForm,\n} from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { formTools } from \"./formTools\";\n\nexport type UseAssistantFormProps<\n TFieldValues extends FieldValues,\n TContext,\n> = UseFormProps<TFieldValues, TContext> & {\n assistant
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/useAssistantForm.tsx","../src/formTools.tsx"],"sourcesContent":["export {\n useAssistantForm,\n type UseAssistantFormProps,\n} from \"./useAssistantForm\";\nexport { formTools } from \"./formTools\";\n","\"use client\";\n\nimport {\n type ModelConfig,\n type ToolCallContentPartComponent,\n useAssistantContext,\n useAssistantToolUI,\n} from \"@assistant-ui/react\";\nimport { useEffect } from \"react\";\nimport {\n type FieldValues,\n type UseFormProps,\n type UseFormReturn,\n useForm,\n} from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { formTools } from \"./formTools\";\n\nexport type UseAssistantFormProps<\n TFieldValues extends FieldValues,\n TContext,\n> = UseFormProps<TFieldValues, TContext> & {\n assistant?:\n | {\n tools?:\n | {\n set_form_field?:\n | {\n render?:\n | ToolCallContentPartComponent<\n z.ZodType<typeof formTools.set_form_field>,\n unknown\n >\n | undefined;\n }\n | undefined;\n submit_form?:\n | {\n render?:\n | ToolCallContentPartComponent<\n z.ZodType<typeof formTools.submit_form>,\n unknown\n >\n | undefined;\n }\n | undefined;\n }\n | undefined;\n }\n | undefined;\n};\n\nexport const useAssistantForm = <\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props?: UseAssistantFormProps<TFieldValues, TContext>,\n): UseFormReturn<TFieldValues, TContext, TTransformedValues> => {\n const form = useForm<TFieldValues, TContext, TTransformedValues>(props);\n const { control, getValues, setValue } = form;\n\n const { useModelConfig } = useAssistantContext();\n const registerModelConfigProvider = useModelConfig(\n (c) => c.registerModelConfigProvider,\n );\n\n useEffect(() => {\n const value: ModelConfig = {\n system: `Form State:\\n${JSON.stringify(getValues())}`,\n\n tools: {\n set_form_field: {\n ...formTools.set_form_field,\n execute: async (args) => {\n setValue(args.name, args.value);\n\n return { success: true };\n },\n },\n submit_form: {\n ...formTools.submit_form,\n execute: async () => {\n const { _names, _fields } = control;\n for (const name of _names.mount) {\n const field = _fields[name];\n if (field?._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (fieldReference instanceof HTMLElement) {\n const form = fieldReference.closest(\"form\");\n if (form) {\n form.requestSubmit();\n\n return { success: true };\n }\n }\n }\n }\n\n return {\n success: false,\n message:\n \"Unable retrieve the form element. This is a coding error.\",\n };\n },\n },\n },\n };\n return registerModelConfigProvider(() => value);\n }, [control, setValue, getValues, registerModelConfigProvider]);\n\n const renderFormFieldTool = props?.assistant?.tools?.set_form_field?.render;\n useAssistantToolUI(\n renderFormFieldTool\n ? {\n toolName: \"set_form_field\",\n render: renderFormFieldTool,\n }\n : null,\n );\n\n const renderSubmitFormTool = props?.assistant?.tools?.submit_form?.render;\n useAssistantToolUI(\n renderSubmitFormTool\n ? {\n toolName: \"submit_form\",\n render: renderSubmitFormTool,\n }\n : null,\n );\n\n return form;\n};\n","import { z } from \"zod\";\n\nexport const formTools = {\n set_form_field: {\n description:\n \"Sets a form field. Call this function as soon as the user provides the data for each field.\",\n parameters: z.object({\n name: z.string(),\n value: z.string(),\n }),\n },\n submit_form: {\n description: \"Submits the form. Confirm with user before submitting.\",\n parameters: z.object({}),\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,mBAKO;AACP,IAAAA,gBAA0B;AAC1B,6BAKO;;;ACdP,iBAAkB;AAEX,IAAM,YAAY;AAAA,EACvB,gBAAgB;AAAA,IACd,aACE;AAAA,IACF,YAAY,aAAE,OAAO;AAAA,MACnB,MAAM,aAAE,OAAO;AAAA,MACf,OAAO,aAAE,OAAO;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EACA,aAAa;AAAA,IACX,aAAa;AAAA,IACb,YAAY,aAAE,OAAO,CAAC,CAAC;AAAA,EACzB;AACF;;;ADqCO,IAAM,mBAAmB,CAK9B,UAC8D;AAC9D,QAAM,WAAO,gCAAoD,KAAK;AACtE,QAAM,EAAE,SAAS,WAAW,SAAS,IAAI;AAEzC,QAAM,EAAE,eAAe,QAAI,kCAAoB;AAC/C,QAAM,8BAA8B;AAAA,IAClC,CAAC,MAAM,EAAE;AAAA,EACX;AAEA,+BAAU,MAAM;AACd,UAAM,QAAqB;AAAA,MACzB,QAAQ;AAAA,EAAgB,KAAK,UAAU,UAAU,CAAC,CAAC;AAAA,MAEnD,OAAO;AAAA,QACL,gBAAgB;AAAA,UACd,GAAG,UAAU;AAAA,UACb,SAAS,OAAO,SAAS;AACvB,qBAAS,KAAK,MAAM,KAAK,KAAK;AAE9B,mBAAO,EAAE,SAAS,KAAK;AAAA,UACzB;AAAA,QACF;AAAA,QACA,aAAa;AAAA,UACX,GAAG,UAAU;AAAA,UACb,SAAS,YAAY;AACnB,kBAAM,EAAE,QAAQ,QAAQ,IAAI;AAC5B,uBAAW,QAAQ,OAAO,OAAO;AAC/B,oBAAM,QAAQ,QAAQ,IAAI;AAC1B,kBAAI,OAAO,IAAI;AACb,sBAAM,iBAAiB,MAAM,QAAQ,MAAM,GAAG,IAAI,IAC9C,MAAM,GAAG,KAAK,CAAC,IACf,MAAM,GAAG;AAEb,oBAAI,0BAA0B,aAAa;AACzC,wBAAMC,QAAO,eAAe,QAAQ,MAAM;AAC1C,sBAAIA,OAAM;AACR,oBAAAA,MAAK,cAAc;AAEnB,2BAAO,EAAE,SAAS,KAAK;AAAA,kBACzB;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAEA,mBAAO;AAAA,cACL,SAAS;AAAA,cACT,SACE;AAAA,YACJ;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,WAAO,4BAA4B,MAAM,KAAK;AAAA,EAChD,GAAG,CAAC,SAAS,UAAU,WAAW,2BAA2B,CAAC;AAE9D,QAAM,sBAAsB,OAAO,WAAW,OAAO,gBAAgB;AACrE;AAAA,IACE,sBACI;AAAA,MACE,UAAU;AAAA,MACV,QAAQ;AAAA,IACV,IACA;AAAA,EACN;AAEA,QAAM,uBAAuB,OAAO,WAAW,OAAO,aAAa;AACnE;AAAA,IACE,uBACI;AAAA,MACE,UAAU;AAAA,MACV,QAAQ;AAAA,IACV,IACA;AAAA,EACN;AAEA,SAAO;AACT;","names":["import_react","form"]}
|
package/dist/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/useAssistantForm.tsx","../src/formTools.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ModelConfig,\n type ToolCallContentPartComponent,\n useAssistantContext,\n useAssistantToolUI,\n} from \"@assistant-ui/react\";\nimport { useEffect } from \"react\";\nimport {\n type FieldValues,\n type UseFormProps,\n type UseFormReturn,\n useForm,\n} from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { formTools } from \"./formTools\";\n\nexport type UseAssistantFormProps<\n TFieldValues extends FieldValues,\n TContext,\n> = UseFormProps<TFieldValues, TContext> & {\n assistant
|
1
|
+
{"version":3,"sources":["../src/useAssistantForm.tsx","../src/formTools.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ModelConfig,\n type ToolCallContentPartComponent,\n useAssistantContext,\n useAssistantToolUI,\n} from \"@assistant-ui/react\";\nimport { useEffect } from \"react\";\nimport {\n type FieldValues,\n type UseFormProps,\n type UseFormReturn,\n useForm,\n} from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { formTools } from \"./formTools\";\n\nexport type UseAssistantFormProps<\n TFieldValues extends FieldValues,\n TContext,\n> = UseFormProps<TFieldValues, TContext> & {\n assistant?:\n | {\n tools?:\n | {\n set_form_field?:\n | {\n render?:\n | ToolCallContentPartComponent<\n z.ZodType<typeof formTools.set_form_field>,\n unknown\n >\n | undefined;\n }\n | undefined;\n submit_form?:\n | {\n render?:\n | ToolCallContentPartComponent<\n z.ZodType<typeof formTools.submit_form>,\n unknown\n >\n | undefined;\n }\n | undefined;\n }\n | undefined;\n }\n | undefined;\n};\n\nexport const useAssistantForm = <\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props?: UseAssistantFormProps<TFieldValues, TContext>,\n): UseFormReturn<TFieldValues, TContext, TTransformedValues> => {\n const form = useForm<TFieldValues, TContext, TTransformedValues>(props);\n const { control, getValues, setValue } = form;\n\n const { useModelConfig } = useAssistantContext();\n const registerModelConfigProvider = useModelConfig(\n (c) => c.registerModelConfigProvider,\n );\n\n useEffect(() => {\n const value: ModelConfig = {\n system: `Form State:\\n${JSON.stringify(getValues())}`,\n\n tools: {\n set_form_field: {\n ...formTools.set_form_field,\n execute: async (args) => {\n setValue(args.name, args.value);\n\n return { success: true };\n },\n },\n submit_form: {\n ...formTools.submit_form,\n execute: async () => {\n const { _names, _fields } = control;\n for (const name of _names.mount) {\n const field = _fields[name];\n if (field?._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (fieldReference instanceof HTMLElement) {\n const form = fieldReference.closest(\"form\");\n if (form) {\n form.requestSubmit();\n\n return { success: true };\n }\n }\n }\n }\n\n return {\n success: false,\n message:\n \"Unable retrieve the form element. This is a coding error.\",\n };\n },\n },\n },\n };\n return registerModelConfigProvider(() => value);\n }, [control, setValue, getValues, registerModelConfigProvider]);\n\n const renderFormFieldTool = props?.assistant?.tools?.set_form_field?.render;\n useAssistantToolUI(\n renderFormFieldTool\n ? {\n toolName: \"set_form_field\",\n render: renderFormFieldTool,\n }\n : null,\n );\n\n const renderSubmitFormTool = props?.assistant?.tools?.submit_form?.render;\n useAssistantToolUI(\n renderSubmitFormTool\n ? {\n toolName: \"submit_form\",\n render: renderSubmitFormTool,\n }\n : null,\n );\n\n return form;\n};\n","import { z } from \"zod\";\n\nexport const formTools = {\n set_form_field: {\n description:\n \"Sets a form field. Call this function as soon as the user provides the data for each field.\",\n parameters: z.object({\n name: z.string(),\n value: z.string(),\n }),\n },\n submit_form: {\n description: \"Submits the form. Confirm with user before submitting.\",\n parameters: z.object({}),\n },\n};\n"],"mappings":";AAEA;AAAA,EAGE;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAAiB;AAC1B;AAAA,EAIE;AAAA,OACK;;;ACdP,SAAS,SAAS;AAEX,IAAM,YAAY;AAAA,EACvB,gBAAgB;AAAA,IACd,aACE;AAAA,IACF,YAAY,EAAE,OAAO;AAAA,MACnB,MAAM,EAAE,OAAO;AAAA,MACf,OAAO,EAAE,OAAO;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EACA,aAAa;AAAA,IACX,aAAa;AAAA,IACb,YAAY,EAAE,OAAO,CAAC,CAAC;AAAA,EACzB;AACF;;;ADqCO,IAAM,mBAAmB,CAK9B,UAC8D;AAC9D,QAAM,OAAO,QAAoD,KAAK;AACtE,QAAM,EAAE,SAAS,WAAW,SAAS,IAAI;AAEzC,QAAM,EAAE,eAAe,IAAI,oBAAoB;AAC/C,QAAM,8BAA8B;AAAA,IAClC,CAAC,MAAM,EAAE;AAAA,EACX;AAEA,YAAU,MAAM;AACd,UAAM,QAAqB;AAAA,MACzB,QAAQ;AAAA,EAAgB,KAAK,UAAU,UAAU,CAAC,CAAC;AAAA,MAEnD,OAAO;AAAA,QACL,gBAAgB;AAAA,UACd,GAAG,UAAU;AAAA,UACb,SAAS,OAAO,SAAS;AACvB,qBAAS,KAAK,MAAM,KAAK,KAAK;AAE9B,mBAAO,EAAE,SAAS,KAAK;AAAA,UACzB;AAAA,QACF;AAAA,QACA,aAAa;AAAA,UACX,GAAG,UAAU;AAAA,UACb,SAAS,YAAY;AACnB,kBAAM,EAAE,QAAQ,QAAQ,IAAI;AAC5B,uBAAW,QAAQ,OAAO,OAAO;AAC/B,oBAAM,QAAQ,QAAQ,IAAI;AAC1B,kBAAI,OAAO,IAAI;AACb,sBAAM,iBAAiB,MAAM,QAAQ,MAAM,GAAG,IAAI,IAC9C,MAAM,GAAG,KAAK,CAAC,IACf,MAAM,GAAG;AAEb,oBAAI,0BAA0B,aAAa;AACzC,wBAAMA,QAAO,eAAe,QAAQ,MAAM;AAC1C,sBAAIA,OAAM;AACR,oBAAAA,MAAK,cAAc;AAEnB,2BAAO,EAAE,SAAS,KAAK;AAAA,kBACzB;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAEA,mBAAO;AAAA,cACL,SAAS;AAAA,cACT,SACE;AAAA,YACJ;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,WAAO,4BAA4B,MAAM,KAAK;AAAA,EAChD,GAAG,CAAC,SAAS,UAAU,WAAW,2BAA2B,CAAC;AAE9D,QAAM,sBAAsB,OAAO,WAAW,OAAO,gBAAgB;AACrE;AAAA,IACE,sBACI;AAAA,MACE,UAAU;AAAA,MACV,QAAQ;AAAA,IACV,IACA;AAAA,EACN;AAEA,QAAM,uBAAuB,OAAO,WAAW,OAAO,aAAa;AACnE;AAAA,IACE,uBACI;AAAA,MACE,UAAU;AAAA,MACV,QAAQ;AAAA,IACV,IACA;AAAA,EACN;AAEA,SAAO;AACT;","names":["form"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@assistant-ui/react-hook-form",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.3.0",
|
4
4
|
"license": "MIT",
|
5
5
|
"exports": {
|
6
6
|
".": {
|
@@ -27,10 +27,10 @@
|
|
27
27
|
"zod": "^3.23.8"
|
28
28
|
},
|
29
29
|
"peerDependencies": {
|
30
|
-
"@assistant-ui/react": "^0.
|
31
|
-
"react-hook-form": "^7.x.x",
|
30
|
+
"@assistant-ui/react": "^0.4.0",
|
32
31
|
"@types/react": "*",
|
33
|
-
"react": "^18"
|
32
|
+
"react": "^18",
|
33
|
+
"react-hook-form": "^7.x.x"
|
34
34
|
},
|
35
35
|
"peerDependenciesMeta": {
|
36
36
|
"@types/react": {
|
@@ -38,7 +38,7 @@
|
|
38
38
|
}
|
39
39
|
},
|
40
40
|
"devDependencies": {
|
41
|
-
"
|
41
|
+
"eslint-config-next": "14.2.5",
|
42
42
|
"tsup": "^8.1.0",
|
43
43
|
"@assistant-ui/tsconfig": "0.0.0"
|
44
44
|
},
|
@@ -55,6 +55,6 @@
|
|
55
55
|
"url": "https://github.com/Yonom/assistant-ui/issues"
|
56
56
|
},
|
57
57
|
"scripts": {
|
58
|
-
"build": "tsup src/index.ts --format cjs,esm --dts --sourcemap"
|
58
|
+
"build": "tsup src/index.ts --format cjs,esm --dts --sourcemap --clean"
|
59
59
|
}
|
60
60
|
}
|