@asgard-js/react 0.0.23 → 0.0.26

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
@@ -48,13 +48,9 @@ const App = () => {
48
48
  title="Asgard AI Chatbot"
49
49
  config={{
50
50
  apiKey: 'your-api-key',
51
- endpoint:
52
- 'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}/message/sse',
53
51
  botProviderEndpoint:
54
52
  'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}',
55
- onExecutionError: (error) => {
56
- console.error('Execution error:', error);
57
- },
53
+ debugMode: true, // Enable to see deprecation warnings
58
54
  transformSsePayload: (payload) => {
59
55
  return payload;
60
56
  },
@@ -92,22 +88,57 @@ const App = () => {
92
88
  export default App;
93
89
  ```
94
90
 
91
+ ## Migration from `endpoint` to `botProviderEndpoint`
92
+
93
+ **Important**: The `endpoint` configuration option is deprecated. Use `botProviderEndpoint` instead for simplified configuration.
94
+
95
+ ### Before (Deprecated)
96
+ ```javascript
97
+ config: {
98
+ apiKey: 'your-api-key',
99
+ endpoint: 'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}/message/sse',
100
+ botProviderEndpoint: 'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}',
101
+ }
102
+ ```
103
+
104
+ ### After (Recommended)
105
+ ```javascript
106
+ config: {
107
+ apiKey: 'your-api-key',
108
+ botProviderEndpoint: 'https://api.asgard-ai.com/ns/{namespace}/bot-provider/{botProviderId}',
109
+ // SSE endpoint is automatically derived as: botProviderEndpoint + '/message/sse'
110
+ }
111
+ ```
112
+
113
+ **Benefits:**
114
+ - Simplified configuration with single endpoint
115
+ - Reduced chance of configuration errors
116
+ - Automatic endpoint derivation
117
+
118
+ **Backward Compatibility:** Existing code using `endpoint` will continue to work but may show deprecation warnings when `debugMode` is enabled.
119
+
95
120
  ### Chatbot Component Props
96
121
 
97
122
  - **title**: `string` - The title of the chatbot.
98
123
  - **config**: `ClientConfig` - Configuration object for the Asgard service client, including:
99
124
  - `apiKey`: `string` (required) - API key for authentication
100
- - `endpoint`: `string` (required) - API endpoint URL
101
- - `botProviderEndpoint?`: `string` - Bot provider endpoint URL
102
- - `onExecutionError?`: `(error: ErrorEventData) => void` - Error handler for execution errors
125
+ - `botProviderEndpoint`: `string` (required) - Bot provider endpoint URL (SSE endpoint will be auto-derived)
126
+ - `endpoint?`: `string` (deprecated) - Legacy API endpoint URL. Use `botProviderEndpoint` instead.
103
127
  - `transformSsePayload?`: `(payload: FetchSsePayload) => FetchSsePayload` - SSE payload transformer
128
+ - `debugMode?`: `boolean` - Enable debug mode, defaults to `false`
129
+ - `onRunInit?`: `InitEventHandler` - Handler for run initialization events
130
+ - `onMessage?`: `MessageEventHandler` - Handler for message events
131
+ - `onToolCall?`: `ToolCallEventHandler` - Handler for tool call events
132
+ - `onProcess?`: `ProcessEventHandler` - Handler for process events
133
+ - `onRunDone?`: `DoneEventHandler` - Handler for run completion events
134
+ - `onRunError?`: `ErrorEventHandler` - Error handler for execution errors
135
+ - **customActions?**: `ReactNode[]` - Custom actions to display on the chatbot header
104
136
  - **enableLoadConfigFromService?**: `boolean` - Enable loading configuration from service
105
137
  - **maintainConnectionWhenClosed?**: `boolean` - Maintain connection when chat is closed, defaults to `false`
106
138
  - **loadingComponent?**: `ReactNode` - Custom loading component
107
139
  - **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`.
108
140
  - **customChannelId**: `string` - Custom channel identifier for the chat session
109
141
  - **initMessages**: `ConversationMessage[]` - Initial messages to display in the chat
110
- - **debugMode**: `boolean` - Enable debug mode, defaults to `false`
111
142
  - **fullScreen**: `boolean` - Display chatbot in full screen mode, defaults to `false`
112
143
  - **avatar**: `string` - URL for the chatbot's avatar image
113
144
  - **botTypingPlaceholder**: `string` - Text to display while the bot is typing
@@ -142,12 +173,22 @@ export interface AsgardThemeContextValue {
142
173
  | 'borderRadius'
143
174
  > & {
144
175
  contentMaxWidth?: CSSProperties['maxWidth'];
176
+ backgroundColor?: CSSProperties['backgroundColor'];
177
+ borderColor?: CSSProperties['borderColor'];
178
+ inactiveColor?: CSSProperties['color'];
179
+ primaryComponent?: {
180
+ mainColor?: CSSProperties['color'];
181
+ secondaryColor?: CSSProperties['color'];
182
+ };
145
183
  style?: CSSProperties;
146
184
  header?: Partial<{
147
185
  style: CSSProperties;
148
186
  title: {
149
187
  style: CSSProperties;
150
188
  };
189
+ actionButton?: {
190
+ style: CSSProperties;
191
+ };
151
192
  }>;
152
193
  body?: Partial<{
153
194
  style: CSSProperties;
@@ -156,6 +197,7 @@ export interface AsgardThemeContextValue {
156
197
  style: CSSProperties;
157
198
  textArea: {
158
199
  style: CSSProperties;
200
+ '::placeholder': CSSProperties;
159
201
  };
160
202
  submitButton: {
161
203
  style: CSSProperties;
@@ -178,12 +220,28 @@ export interface AsgardThemeContextValue {
178
220
  style: CSSProperties;
179
221
  };
180
222
  }>;
223
+ time?: Partial<{
224
+ style: CSSProperties;
225
+ }>;
181
226
  TextMessageTemplate: Partial<{ style: CSSProperties }>;
182
227
  HintMessageTemplate: Partial<{ style: CSSProperties }>;
183
228
  ImageMessageTemplate: Partial<{ style: CSSProperties }>;
184
229
  ChartMessageTemplate: Partial<{ style: CSSProperties }>;
185
- ButtonMessageTemplate: Partial<{ style: CSSProperties }>;
186
- CarouselMessageTemplate: Partial<{ style: CSSProperties }>;
230
+ ButtonMessageTemplate: Partial<{
231
+ style: CSSProperties;
232
+ button?: {
233
+ style: CSSProperties;
234
+ };
235
+ }>;
236
+ CarouselMessageTemplate: Partial<{
237
+ style: CSSProperties;
238
+ card: {
239
+ style: CSSProperties;
240
+ button?: {
241
+ style: CSSProperties;
242
+ };
243
+ };
244
+ }>;
187
245
 
188
246
  // Didn't implement yet
189
247
  VideoMessageTemplate: Partial<{ style: CSSProperties }>;
@@ -212,6 +270,9 @@ const defaultTheme = {
212
270
  title: {
213
271
  style: {},
214
272
  },
273
+ actionButton: {
274
+ style: {},
275
+ },
215
276
  },
216
277
  body: {
217
278
  style: {},
@@ -220,6 +281,9 @@ const defaultTheme = {
220
281
  style: {},
221
282
  textArea: {
222
283
  style: {},
284
+ '::placeholder': {
285
+ color: 'var(--asg-color-text-placeholder)',
286
+ },
223
287
  },
224
288
  submitButton: {
225
289
  style: {},
@@ -244,6 +308,9 @@ const defaultTheme = {
244
308
  style: {},
245
309
  },
246
310
  },
311
+ time: {
312
+ style: {},
313
+ },
247
314
  TextMessageTemplate: {
248
315
  style: {},
249
316
  },
@@ -267,9 +334,22 @@ const defaultTheme = {
267
334
  },
268
335
  ButtonMessageTemplate: {
269
336
  style: {},
337
+ button: {
338
+ style: {
339
+ border: '1px solid var(--asg-color-border)',
340
+ },
341
+ },
270
342
  },
271
343
  CarouselMessageTemplate: {
272
344
  style: {},
345
+ card: {
346
+ style: {},
347
+ button: {
348
+ style: {
349
+ border: '1px solid var(--asg-color-border)',
350
+ },
351
+ },
352
+ },
273
353
  },
274
354
  },
275
355
  };
@@ -306,6 +386,79 @@ const App = () => {
306
386
 
307
387
  Note: When `fullScreen` prop is set to `true`, the chatbot's width and height will be set to `100vw` and `100vh` respectively, and `borderRadius` will be set to zero, regardless of theme settings.
308
388
 
389
+ ## Testing
390
+
391
+ The React package includes comprehensive tests using Vitest and React Testing Library.
392
+
393
+ ### Running Tests
394
+
395
+ ```sh
396
+ # Run tests once
397
+ npm test
398
+ # or
399
+ yarn test:react
400
+
401
+ # Run tests in watch mode
402
+ npm run test:watch
403
+ # or
404
+ yarn test:react:watch
405
+
406
+ # Run tests with UI
407
+ npm run test:ui
408
+ # or
409
+ yarn test:react:ui
410
+
411
+ # Run tests with coverage
412
+ npm run test:coverage
413
+ # or
414
+ yarn test:react:coverage
415
+ ```
416
+
417
+ ### Test Structure
418
+
419
+ Tests are located alongside source files with `.spec.tsx` extensions:
420
+ - `src/components/chatbot/chatbot.spec.tsx` - React component tests
421
+ - Test environment: jsdom with React Testing Library
422
+ - Setup file: `src/test-setup.ts` (includes jest-dom)
423
+ - Coverage reports available in `test-output/vitest/coverage/`
424
+
425
+ ### Writing Tests
426
+
427
+ The package uses Vitest for testing with the following setup:
428
+ - TypeScript support
429
+ - jsdom environment for DOM APIs
430
+ - React Testing Library for component testing
431
+ - jest-dom matchers for enhanced assertions
432
+ - ESLint integration
433
+ - Coverage reporting with v8 provider
434
+
435
+ Example test structure:
436
+ ```javascript
437
+ import { describe, it, expect } from 'vitest';
438
+ import { render } from '@testing-library/react';
439
+ import '@testing-library/jest-dom';
440
+ import { Chatbot } from './chatbot';
441
+
442
+ describe('Chatbot Component', () => {
443
+ it('should render without crashing', () => {
444
+ const config = {
445
+ botProviderEndpoint: 'https://api.example.com/bot-provider/bp-123',
446
+ apiKey: 'test-key',
447
+ };
448
+
449
+ const { container } = render(
450
+ <Chatbot
451
+ title="Test Chatbot"
452
+ config={config}
453
+ customChannelId="test-channel"
454
+ />
455
+ );
456
+
457
+ expect(container).toBeInTheDocument();
458
+ });
459
+ });
460
+ ```
461
+
309
462
  ## Development
310
463
 
311
464
  To develop the React package locally, follow these steps:
@@ -339,6 +492,14 @@ yarn watch:react
339
492
  yarn serve:react-demo
340
493
  ```
341
494
 
495
+ Setup your npm release token:
496
+
497
+ ```sh
498
+ cd ~/
499
+ touch .npmrc
500
+ echo "//registry.npmjs.org/:_authToken={{YOUR_TOKEN}}" >> .npmrc
501
+ ```
502
+
342
503
  For working with both core and React packages:
343
504
 
344
505
  ```sh
@@ -347,6 +508,7 @@ yarn lint:packages
347
508
 
348
509
  # Build core package (required for React package)
349
510
  yarn build:core
511
+ yarn build:react
350
512
 
351
513
  # Release packages
352
514
  yarn release:core # Release core package
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-footer.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/chatbot-footer/chatbot-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAKV,MAAM,OAAO,CAAC;AAQf,wBAAgB,aAAa,IAAI,SAAS,CAgHzC"}
1
+ {"version":3,"file":"chatbot-footer.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/chatbot-footer/chatbot-footer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAMV,MAAM,OAAO,CAAC;AAQf,wBAAgB,aAAa,IAAI,SAAS,CA0HzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-header.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/chatbot-header/chatbot-header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAwB,MAAM,OAAO,CAAC;AAS3E,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAqElE"}
1
+ {"version":3,"file":"chatbot-header.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/chatbot-header/chatbot-header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAwB,MAAM,OAAO,CAAC;AAS3E,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAwElE"}
@@ -1 +1 @@
1
- {"version":3,"file":"button-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/button-template/button-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOlC,UAAU,mBAAmB;IAC3B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,CAyBpE"}
1
+ {"version":3,"file":"button-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/button-template/button-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOlC,UAAU,mBAAmB;IAC3B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,CAgCpE"}
@@ -1,8 +1,14 @@
1
1
  import { ButtonMessageTemplate, CarouselMessageTemplate } from '@asgard-js/core';
2
- import { ReactNode } from 'react';
2
+ import { ReactNode, CSSProperties } from 'react';
3
3
 
4
4
  interface CardProps {
5
5
  template: ButtonMessageTemplate | CarouselMessageTemplate['columns'][number];
6
+ customStyle?: {
7
+ style?: CSSProperties;
8
+ button?: {
9
+ style?: CSSProperties;
10
+ };
11
+ };
6
12
  }
7
13
  export declare function Card(props: CardProps): ReactNode;
8
14
  export {};
@@ -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;AAKzB,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,CAoFhD"}
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/button-template/card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAGT,aAAa,EACd,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,SAAS;IACjB,QAAQ,EAAE,qBAAqB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,MAAM,CAAC,EAAE;YACP,KAAK,CAAC,EAAE,aAAa,CAAC;SACvB,CAAC;KACH,CAAC;CACH;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CA2FhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"carousel-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/carousel-template/carousel-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,OAAO,EAEL,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,qBAAqB;IAC7B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,CA0BxE"}
1
+ {"version":3,"file":"carousel-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/carousel-template/carousel-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,OAAO,EAEL,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,qBAAqB;IAC7B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,CA8BxE"}
@@ -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;AASzD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAmDlE"}
1
+ {"version":3,"file":"chart-template.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/chart-template/chart-template.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoC,MAAM,OAAO,CAAC;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AASzD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CA2DlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/time/time.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAUhD"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../../src/components/templates/time/time.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAM3C,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAsBhD"}
@@ -6,11 +6,32 @@ type AsyncInitializers = {
6
6
  };
7
7
  export interface Annotations {
8
8
  embedConfig: {
9
+ avatar?: string;
10
+ botTypingPlaceholder?: string;
11
+ debugMode?: boolean;
12
+ fullScreen?: boolean;
13
+ inputPlaceholder?: string;
9
14
  theme: {
10
- chatbot: Record<string, unknown>;
11
- botMessage: Record<string, unknown>;
12
- userMessage: Record<string, unknown>;
15
+ chatbot: {
16
+ backgroundColor?: string;
17
+ borderColor?: string;
18
+ inactiveColor?: string;
19
+ primaryComponent?: {
20
+ mainColor?: string;
21
+ secondaryColor?: string;
22
+ };
23
+ };
24
+ botMessage: {
25
+ backgroundColor?: string;
26
+ carouselButtonBackgroundColor?: string;
27
+ color?: string;
28
+ };
29
+ userMessage: {
30
+ backgroundColor?: string;
31
+ color?: string;
32
+ };
13
33
  };
34
+ title?: string;
14
35
  };
15
36
  }
16
37
  export interface AsgardAppInitializationContextValue {
@@ -1 +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,EAKZ,iBAAiB,EACjB,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/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,CAAC,EAAE,iBAAiB,CAAC;IACtC,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"}
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,EAKZ,iBAAiB,EACjB,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/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,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,eAAe,CAAC,EAAE,MAAM,CAAC;gBACzB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,aAAa,CAAC,EAAE,MAAM,CAAC;gBACvB,gBAAgB,CAAC,EAAE;oBACjB,SAAS,CAAC,EAAE,MAAM,CAAC;oBACnB,cAAc,CAAC,EAAE,MAAM,CAAC;iBACzB,CAAC;aACH,CAAC;YACF,UAAU,EAAE;gBACV,eAAe,CAAC,EAAE,MAAM,CAAC;gBACzB,6BAA6B,CAAC,EAAE,MAAM,CAAC;gBACvC,KAAK,CAAC,EAAE,MAAM,CAAC;aAChB,CAAC;YACF,WAAW,EAAE;gBACX,eAAe,CAAC,EAAE,MAAM,CAAC;gBACzB,KAAK,CAAC,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,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,CAAC,EAAE,iBAAiB,CAAC;IACtC,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"}
@@ -3,12 +3,22 @@ import { CSSProperties, PropsWithChildren, ReactNode } from 'react';
3
3
  export interface AsgardThemeContextValue {
4
4
  chatbot: Pick<CSSProperties, 'width' | 'height' | 'maxWidth' | 'minWidth' | 'maxHeight' | 'minHeight' | 'backgroundColor' | 'borderColor' | 'borderRadius'> & {
5
5
  contentMaxWidth?: CSSProperties['maxWidth'];
6
+ backgroundColor?: CSSProperties['backgroundColor'];
7
+ borderColor?: CSSProperties['borderColor'];
8
+ inactiveColor?: CSSProperties['color'];
9
+ primaryComponent?: {
10
+ mainColor?: CSSProperties['color'];
11
+ secondaryColor?: CSSProperties['color'];
12
+ };
6
13
  style?: CSSProperties;
7
14
  header?: Partial<{
8
15
  style: CSSProperties;
9
16
  title: {
10
17
  style: CSSProperties;
11
18
  };
19
+ actionButton?: {
20
+ style: CSSProperties;
21
+ };
12
22
  }>;
13
23
  body?: Partial<{
14
24
  style: CSSProperties;
@@ -17,6 +27,7 @@ export interface AsgardThemeContextValue {
17
27
  style: CSSProperties;
18
28
  textArea: {
19
29
  style: CSSProperties;
30
+ '::placeholder': CSSProperties;
20
31
  };
21
32
  submitButton: {
22
33
  style: CSSProperties;
@@ -39,6 +50,9 @@ export interface AsgardThemeContextValue {
39
50
  style: CSSProperties;
40
51
  };
41
52
  }>;
53
+ time?: Partial<{
54
+ style: CSSProperties;
55
+ }>;
42
56
  /**
43
57
  * TBD: Fill the necessary properties based on the requirements.
44
58
  */
@@ -86,12 +100,21 @@ export interface AsgardThemeContextValue {
86
100
  */
87
101
  ButtonMessageTemplate: Partial<{
88
102
  style: CSSProperties;
103
+ button?: {
104
+ style: CSSProperties;
105
+ };
89
106
  }>;
90
107
  /**
91
108
  * TBD: Fill the necessary properties based on the requirements.
92
109
  */
93
110
  CarouselMessageTemplate: Partial<{
94
111
  style: CSSProperties;
112
+ card: {
113
+ style: CSSProperties;
114
+ button?: {
115
+ style: CSSProperties;
116
+ };
117
+ };
95
118
  }>;
96
119
  }>;
97
120
  }
@@ -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,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;QAC5C,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,MAAM,CAAC,EAAE,OAAO,CAAC;YACf,KAAK,EAAE,aAAa,CAAC;YACrB,KAAK,EAAE;gBACL,KAAK,EAAE,aAAa,CAAC;aACtB,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,OAAO,CAAC;YACb,KAAK,EAAE,aAAa,CAAC;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;YACf,KAAK,EAAE,aAAa,CAAC;YACrB,QAAQ,EAAE;gBACR,KAAK,EAAE,aAAa,CAAC;aACtB,CAAC;YACF,YAAY,EAAE;gBACZ,KAAK,EAAE,aAAa,CAAC;aACtB,CAAC;YACF,iBAAiB,EAAE;gBACjB,KAAK,EAAE,aAAa,CAAC;aACtB,CAAC;SACH,CAAC,CAAC;KACJ,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;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;QACjB;;;WAGG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;YACrB,KAAK,EAAE,aAAa,CAAC;YACrB,MAAM,EAAE;gBACN,KAAK,EAAE,aAAa,CAAC;aACtB,CAAC;SACH,CAAC,CAAC;QACH;;WAEG;QACH,mBAAmB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;QACvD;;WAEG;QACH,mBAAmB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;QACvD;;WAEG;QACH,oBAAoB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;QACxD;;WAEG;QACH,oBAAoB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;QACxD;;WAEG;QACH,oBAAoB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;QACxD;;WAEG;QACH,uBAAuB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;QAC3D;;WAEG;QACH,oBAAoB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;QACxD;;WAEG;QACH,qBAAqB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;QACzD;;WAEG;QACH,uBAAuB,EAAE,OAAO,CAAC;YAAE,KAAK,EAAE,aAAa,CAAA;SAAE,CAAC,CAAC;KAC5D,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,8BAA8B,EAAE,uBA0E5C,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
+ {"version":3,"file":"asgard-theme-context.d.ts","sourceRoot":"","sources":["../../src/context/asgard-theme-context.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-asgard-service-client.d.ts","sourceRoot":"","sources":["../../src/hooks/use-asgard-service-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAa,MAAM,iBAAiB,CAAC;AAG/E,UAAU,2BAA2B;IACnC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,mBAAmB,GAAG,IAAI,CAmD5B"}
1
+ {"version":3,"file":"use-asgard-service-client.d.ts","sourceRoot":"","sources":["../../src/hooks/use-asgard-service-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAa,MAAM,iBAAiB,CAAC;AAG/E,UAAU,2BAA2B;IACnC,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,mBAAmB,GAAG,IAAI,CA0D5B"}