@asgard-js/react 0.0.18 → 0.0.20

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 CHANGED
@@ -24,7 +24,8 @@ const App = () => {
24
24
  title="Asgard AI Chatbot"
25
25
  config={{
26
26
  apiKey: 'your-api-key',
27
- endpoint: 'https://api.asgard-ai.com',
27
+ endpoint: 'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}/message/sse',
28
+ botProviderEndpoint: 'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}',
28
29
  onExecutionError: (error) => {
29
30
  console.error('Execution error:', error);
30
31
  },
@@ -32,6 +33,7 @@ const App = () => {
32
33
  return payload;
33
34
  }
34
35
  }}
36
+ enableLoadConfigFromService={true}
35
37
  customChannelId="your-channel-id"
36
38
  initMessages={[]}
37
39
  debugMode={false}
@@ -57,8 +59,12 @@ export default App;
57
59
  - **config**: `ClientConfig` - Configuration object for the Asgard service client, including:
58
60
  - `apiKey`: `string` (required) - API key for authentication
59
61
  - `endpoint`: `string` (required) - API endpoint URL
62
+ - `botProviderEndpoint?`: `string` - Bot provider endpoint URL
60
63
  - `onExecutionError?`: `(error: ErrorEventData) => void` - Error handler for execution errors
61
64
  - `transformSsePayload?`: `(payload: FetchSsePayload) => FetchSsePayload` - SSE payload transformer
65
+ - **enableLoadConfigFromService?**: `boolean` - Enable loading configuration from service
66
+ - **loadingComponent?**: `ReactNode` - Custom loading component
67
+ - **asyncInitializers?**: `Record<string, () => Promise<unknown>>` - Asynchronous initializers for app initialization before rendering any component. Good for loading data or other async operations as the initial state. It only works when `enableLoadConfigFromService` is set to `true`.
62
68
  - **customChannelId**: `string` - Custom channel identifier for the chat session
63
69
  - **initMessages**: `ConversationMessage[]` - Initial messages to display in the chat
64
70
  - **debugMode**: `boolean` - Enable debug mode, defaults to `false`
@@ -70,6 +76,12 @@ export default App;
70
76
  - **onClose**: `() => void` - Callback function when chat is closed
71
77
 
72
78
  ### Theme Configuration
79
+ The theme configuration can be obtained from the bot provider metadata of `annotations` field and `theme` props.
80
+
81
+ The priority of themes is as follows (high to low):
82
+ 1. Theme from props
83
+ 2. Theme from annotations from bot provider metadata
84
+ 3. Default theme
73
85
 
74
86
  ```typescript
75
87
  interface AsgardThemeContextValue {
@@ -13,8 +13,11 @@ interface ChatbotProps extends AsgardTemplateContextValue {
13
13
  fullScreen?: boolean;
14
14
  avatar?: string;
15
15
  botTypingPlaceholder?: string;
16
+ enableLoadConfigFromService?: boolean;
17
+ asyncInitializers?: Record<string, () => Promise<unknown>>;
16
18
  onReset?: () => void;
17
19
  onClose?: () => void;
20
+ loadingComponent?: ReactNode;
18
21
  }
19
22
  export declare function Chatbot(props: ChatbotProps): ReactNode;
20
23
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../../src/components/chatbot/chatbot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAEL,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAGL,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAMrB,UAAU,YAAa,SAAQ,0BAA0B;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CA4CtD"}
1
+ {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../../src/components/chatbot/chatbot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAEL,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAGL,0BAA0B,EAE3B,MAAM,aAAa,CAAC;AAMrB,UAAU,YAAa,SAAQ,0BAA0B;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAwDtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/button-template/card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAwB,MAAM,OAAO,CAAC;AAE3E,OAAO,EAEL,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,UAAU,SAAS;IACjB,QAAQ,EAAE,qBAAqB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;CAC9E;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAsEhD"}
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/button-template/card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAwB,MAAM,OAAO,CAAC;AAE3E,OAAO,EAEL,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAIzB,UAAU,SAAS;IACjB,QAAQ,EAAE,qBAAqB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;CAC9E;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CA2EhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"chart-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/chart-template/chart-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAIrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAQzD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CA2ClE"}
1
+ {"version":3,"file":"chart-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/chart-template/chart-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAIrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAQzD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CA4ClE"}
@@ -0,0 +1,33 @@
1
+ import { ClientConfig } from '@asgard-js/core';
2
+ import { default as React, PropsWithChildren, ReactNode } from 'react';
3
+
4
+ type AsyncInitializers = {
5
+ [key: string]: () => Promise<unknown>;
6
+ };
7
+ export interface Annotations {
8
+ embedConfig: {
9
+ theme: {
10
+ chatbot: Record<string, unknown>;
11
+ botMessage: Record<string, unknown>;
12
+ userMessage: Record<string, unknown>;
13
+ };
14
+ };
15
+ }
16
+ export interface AsgardAppInitializationContextValue {
17
+ data: {
18
+ annotations?: Annotations;
19
+ };
20
+ loading: boolean;
21
+ error: Error | null;
22
+ }
23
+ export declare const AsgardAppInitializationContext: React.Context<AsgardAppInitializationContextValue>;
24
+ export interface AsgardAppInitializationContextProviderProps {
25
+ enabled: boolean;
26
+ config: ClientConfig;
27
+ asyncInitializers: AsyncInitializers;
28
+ loadingComponent?: React.ReactNode;
29
+ }
30
+ export declare const AsgardAppInitializationContextProvider: (props: PropsWithChildren<AsgardAppInitializationContextProviderProps>) => ReactNode;
31
+ export declare const useAsgardAppInitializationContext: () => AsgardAppInitializationContextValue;
32
+ export {};
33
+ //# sourceMappingURL=asgard-app-initialization-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asgard-app-initialization-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-app-initialization-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAMZ,iBAAiB,EACjB,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,KAAK,iBAAiB,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE;QACX,KAAK,EAAE;YACL,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACtC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,8BAA8B,oDAKvC,CAAC;AAEL,MAAM,WAAW,2CAA2C;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAED,eAAO,MAAM,sCAAsC,UAC1C,iBAAiB,CAAC,2CAA2C,CAAC,KACpE,SA4EF,CAAC;AAEF,eAAO,MAAM,iCAAiC,QACxC,mCACwC,CAAC"}
@@ -4,11 +4,13 @@ import { PropsWithChildren, ReactNode } from 'react';
4
4
  export interface AsgardTemplateContextValue {
5
5
  onErrorClick?: (message: ConversationErrorMessage) => void;
6
6
  errorMessageRenderer?: (message: ConversationErrorMessage) => ReactNode;
7
+ onTemplateBtnClick?: (payload: any) => void;
7
8
  }
8
9
  export declare const AsgardTemplateContext: import('react').Context<AsgardTemplateContextValue>;
9
10
  interface AsgardTemplateContextProviderProps extends PropsWithChildren {
10
11
  onErrorClick?: (message: ConversationErrorMessage) => void;
11
12
  errorMessageRenderer?: (message: ConversationErrorMessage) => ReactNode;
13
+ onTemplateBtnClick?: (payload: any) => void;
12
14
  }
13
15
  export declare function AsgardTemplateContextProvider(props: AsgardTemplateContextProviderProps): ReactNode;
14
16
  export declare function useAsgardTemplateContext(): AsgardTemplateContextValue;
@@ -1 +1 @@
1
- {"version":3,"file":"asgard-template-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-template-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,SAAS,EAGV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC3D,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,SAAS,CAAC;CACzE;AAED,eAAO,MAAM,qBAAqB,qDAGhC,CAAC;AAEH,UAAU,kCAAmC,SAAQ,iBAAiB;IACpE,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC3D,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,SAAS,CAAC;CACzE;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,GACxC,SAAS,CAaX;AAED,wBAAgB,wBAAwB,IAAI,0BAA0B,CAErE"}
1
+ {"version":3,"file":"asgard-template-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-template-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,SAAS,EAGV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC3D,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,SAAS,CAAC;IACxE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,qBAAqB,qDAIhC,CAAC;AAEH,UAAU,kCAAmC,SAAQ,iBAAiB;IACpE,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC3D,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,SAAS,CAAC;IACxE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,GACxC,SAAS,CAcX;AAED,wBAAgB,wBAAwB,IAAI,0BAA0B,CAErE"}
@@ -1 +1 @@
1
- {"version":3,"file":"asgard-theme-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-theme-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,iBAAiB,EACjB,SAAS,EAGV,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,IAAI,CACX,aAAa,EACX,OAAO,GACP,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,aAAa,GACb,cAAc,CACjB,GAAG;QACF,eAAe,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;KAC7C,CAAC;IACF,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,iBAAiB,CAAC,CAAC;IAC7D,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,iBAAiB,CAAC,CAAC;CAC/D;AAED,eAAO,MAAM,8BAA8B,EAAE,uBAiB5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,kDAE9B,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,iBAAiB,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC1C,CAAC,GACD,SAAS,CAaX;AAED,wBAAgB,qBAAqB,IAAI,uBAAuB,CAE/D"}
1
+ {"version":3,"file":"asgard-theme-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-theme-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,iBAAiB,EACjB,SAAS,EAIV,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,IAAI,CACX,aAAa,EACX,OAAO,GACP,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,aAAa,GACb,cAAc,CACjB,GAAG;QACF,eAAe,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;KAC7C,CAAC;IACF,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,iBAAiB,CAAC,CAAC;IAC7D,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,iBAAiB,CAAC,CAAC;CAC/D;AAED,eAAO,MAAM,8BAA8B,EAAE,uBAiB5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,kDAE9B,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,iBAAiB,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC1C,CAAC,GACD,SAAS,CAiCX;AAED,wBAAgB,qBAAqB,IAAI,uBAAuB,CAE/D"}
@@ -1,4 +1,5 @@
1
1
  export * from './asgard-service-context';
2
2
  export * from './asgard-template-context';
3
3
  export * from './asgard-theme-context';
4
+ export * from './asgard-app-initialization-context';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC"}