@enjoys/react-chatbot-plugin 1.1.0 → 1.3.0
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/README.md +64 -435
- package/dist/index.cjs +5 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +73 -0
- package/dist/index.mjs +5 -2684
- package/dist/index.mjs.map +1 -1
- package/package.json +33 -3
package/dist/index.d.ts
CHANGED
|
@@ -4446,6 +4446,8 @@ export declare interface ChatBotProps {
|
|
|
4446
4446
|
components?: Record<string, ComponentType<StepComponentProps>>;
|
|
4447
4447
|
/** Map of async action handlers (key = step.asyncAction.handler) */
|
|
4448
4448
|
actionHandlers?: Record<string, (data: Record<string, unknown>, ctx: ActionContext) => Promise<FlowActionResult>>;
|
|
4449
|
+
/** Override built-in form field renderers per field type. Each renderer receives strongly-typed props + the default element. */
|
|
4450
|
+
renderFormField?: FormFieldRenderMap;
|
|
4449
4451
|
}
|
|
4450
4452
|
|
|
4451
4453
|
export declare const ChatBubbleIcon: default_2.FC<IconProps>;
|
|
@@ -4604,6 +4606,15 @@ declare interface CheckboxFieldProps {
|
|
|
4604
4606
|
error?: string;
|
|
4605
4607
|
}
|
|
4606
4608
|
|
|
4609
|
+
/** Props passed to checkbox custom field renderers */
|
|
4610
|
+
export declare interface CheckboxFieldRenderProps {
|
|
4611
|
+
type: 'checkbox';
|
|
4612
|
+
field: FormFieldConfig;
|
|
4613
|
+
value: string[];
|
|
4614
|
+
onChange: (value: string[]) => void;
|
|
4615
|
+
error?: string;
|
|
4616
|
+
}
|
|
4617
|
+
|
|
4607
4618
|
export declare const CloseIcon: default_2.FC<IconProps>;
|
|
4608
4619
|
|
|
4609
4620
|
export declare const DynamicForm: default_2.FC<DynamicFormProps>;
|
|
@@ -4612,6 +4623,7 @@ declare interface DynamicFormProps {
|
|
|
4612
4623
|
config: FormConfig;
|
|
4613
4624
|
onSubmit: (data: Record<string, unknown>) => void;
|
|
4614
4625
|
primaryColor: string;
|
|
4626
|
+
renderFormField?: FormFieldRenderMap;
|
|
4615
4627
|
}
|
|
4616
4628
|
|
|
4617
4629
|
export declare const EmojiIcon: default_2.FC<IconProps>;
|
|
@@ -4624,6 +4636,16 @@ declare interface EmojiPickerProps {
|
|
|
4624
4636
|
primaryColor: string;
|
|
4625
4637
|
}
|
|
4626
4638
|
|
|
4639
|
+
/** Props passed to file custom field renderers */
|
|
4640
|
+
export declare interface FileFieldRenderProps {
|
|
4641
|
+
type: 'file';
|
|
4642
|
+
field: FormFieldConfig;
|
|
4643
|
+
value: FileList | null;
|
|
4644
|
+
onChange: (value: FileList | null) => void;
|
|
4645
|
+
error?: string;
|
|
4646
|
+
primaryColor: string;
|
|
4647
|
+
}
|
|
4648
|
+
|
|
4627
4649
|
export declare const FileIcon: default_2.FC<IconProps>;
|
|
4628
4650
|
|
|
4629
4651
|
export declare const FilePreviewList: default_2.FC<FilePreviewListProps>;
|
|
@@ -4791,6 +4813,27 @@ export declare interface FormFieldOption {
|
|
|
4791
4813
|
value: string;
|
|
4792
4814
|
}
|
|
4793
4815
|
|
|
4816
|
+
/** Map of field type → custom renderer. The renderer receives strongly-typed props + the default element. */
|
|
4817
|
+
export declare type FormFieldRenderMap = Partial<{
|
|
4818
|
+
text: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4819
|
+
email: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4820
|
+
password: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4821
|
+
number: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4822
|
+
tel: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4823
|
+
url: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4824
|
+
textarea: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4825
|
+
date: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4826
|
+
time: (props: TextFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4827
|
+
select: (props: SelectFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4828
|
+
multiselect: (props: SelectFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4829
|
+
radio: (props: RadioFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4830
|
+
checkbox: (props: CheckboxFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4831
|
+
file: (props: FileFieldRenderProps, defaultElement: React.ReactNode) => React.ReactNode;
|
|
4832
|
+
}>;
|
|
4833
|
+
|
|
4834
|
+
/** Union of all field render props — discriminated by `type` */
|
|
4835
|
+
export declare type FormFieldRenderProps = TextFieldRenderProps | SelectFieldRenderProps | RadioFieldRenderProps | CheckboxFieldRenderProps | FileFieldRenderProps;
|
|
4836
|
+
|
|
4794
4837
|
export declare type FormFieldType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'textarea' | 'select' | 'multiselect' | 'radio' | 'checkbox' | 'file' | 'date' | 'time' | 'hidden';
|
|
4795
4838
|
|
|
4796
4839
|
export declare interface FormFieldValidation {
|
|
@@ -4838,6 +4881,7 @@ declare interface LoginScreenProps {
|
|
|
4838
4881
|
config: FormConfig;
|
|
4839
4882
|
onLogin: (data: Record<string, unknown>) => void;
|
|
4840
4883
|
primaryColor: string;
|
|
4884
|
+
renderFormField?: FormFieldRenderMap;
|
|
4841
4885
|
}
|
|
4842
4886
|
|
|
4843
4887
|
export declare interface MessageAttachment {
|
|
@@ -4872,6 +4916,8 @@ declare interface MessageListProps {
|
|
|
4872
4916
|
collectedData?: Record<string, unknown>;
|
|
4873
4917
|
/** Current step ID */
|
|
4874
4918
|
currentStepId?: string | null;
|
|
4919
|
+
/** Custom form field renderers per field type */
|
|
4920
|
+
renderFormField?: FormFieldRenderMap;
|
|
4875
4921
|
}
|
|
4876
4922
|
|
|
4877
4923
|
export declare type MessageSender = 'bot' | 'user' | 'system';
|
|
@@ -4939,6 +4985,15 @@ declare interface RadioFieldProps {
|
|
|
4939
4985
|
error?: string;
|
|
4940
4986
|
}
|
|
4941
4987
|
|
|
4988
|
+
/** Props passed to radio custom field renderers */
|
|
4989
|
+
export declare interface RadioFieldRenderProps {
|
|
4990
|
+
type: 'radio';
|
|
4991
|
+
field: FormFieldConfig;
|
|
4992
|
+
value: string;
|
|
4993
|
+
onChange: (value: string) => void;
|
|
4994
|
+
error?: string;
|
|
4995
|
+
}
|
|
4996
|
+
|
|
4942
4997
|
export declare const RemoveIcon: default_2.FC<IconProps>;
|
|
4943
4998
|
|
|
4944
4999
|
export declare function resolveTheme(theme?: ChatTheme): Required<ChatTheme>;
|
|
@@ -4954,6 +5009,15 @@ declare interface SelectFieldProps {
|
|
|
4954
5009
|
error?: string;
|
|
4955
5010
|
}
|
|
4956
5011
|
|
|
5012
|
+
/** Props passed to select/multiselect custom field renderers */
|
|
5013
|
+
export declare interface SelectFieldRenderProps {
|
|
5014
|
+
type: 'select' | 'multiselect';
|
|
5015
|
+
field: FormFieldConfig;
|
|
5016
|
+
value: string | string[];
|
|
5017
|
+
onChange: (value: string | string[]) => void;
|
|
5018
|
+
error?: string;
|
|
5019
|
+
}
|
|
5020
|
+
|
|
4957
5021
|
export declare const SendIcon: default_2.FC<IconProps>;
|
|
4958
5022
|
|
|
4959
5023
|
/** Props passed to custom components rendered in flow steps */
|
|
@@ -4975,6 +5039,15 @@ declare interface TextFieldProps {
|
|
|
4975
5039
|
error?: string;
|
|
4976
5040
|
}
|
|
4977
5041
|
|
|
5042
|
+
/** Props passed to text-like custom field renderers */
|
|
5043
|
+
export declare interface TextFieldRenderProps {
|
|
5044
|
+
type: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'textarea' | 'date' | 'time';
|
|
5045
|
+
field: FormFieldConfig;
|
|
5046
|
+
value: string;
|
|
5047
|
+
onChange: (value: string) => void;
|
|
5048
|
+
error?: string;
|
|
5049
|
+
}
|
|
5050
|
+
|
|
4978
5051
|
export declare const TypingIndicator: default_2.FC<TypingIndicatorProps>;
|
|
4979
5052
|
|
|
4980
5053
|
declare interface TypingIndicatorProps {
|