@volkansuner/aichat-react-native 0.1.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/LICENSE +22 -0
- package/README.md +528 -0
- package/dist/AIChatSDK.d.ts +75 -0
- package/dist/AIChatSDK.d.ts.map +1 -0
- package/dist/AIChatSDK.js +357 -0
- package/dist/AIChatSDK.js.map +1 -0
- package/dist/components/AIChatProvider.d.ts +25 -0
- package/dist/components/AIChatProvider.d.ts.map +1 -0
- package/dist/components/AIChatProvider.js +93 -0
- package/dist/components/AIChatProvider.js.map +1 -0
- package/dist/components/AIChatWidget.d.ts +62 -0
- package/dist/components/AIChatWidget.d.ts.map +1 -0
- package/dist/components/AIChatWidget.handlers.d.ts +15 -0
- package/dist/components/AIChatWidget.handlers.d.ts.map +1 -0
- package/dist/components/AIChatWidget.handlers.js +180 -0
- package/dist/components/AIChatWidget.handlers.js.map +1 -0
- package/dist/components/AIChatWidget.js +403 -0
- package/dist/components/AIChatWidget.js.map +1 -0
- package/dist/components/AIChatWidget.styles.d.ts +17 -0
- package/dist/components/AIChatWidget.styles.d.ts.map +1 -0
- package/dist/components/AIChatWidget.styles.js +68 -0
- package/dist/components/AIChatWidget.styles.js.map +1 -0
- package/dist/components/AIChatWidget.types.d.ts +250 -0
- package/dist/components/AIChatWidget.types.d.ts.map +1 -0
- package/dist/components/AIChatWidget.types.js +3 -0
- package/dist/components/AIChatWidget.types.js.map +1 -0
- package/dist/components/AIChatWidget.utils.d.ts +12 -0
- package/dist/components/AIChatWidget.utils.d.ts.map +1 -0
- package/dist/components/AIChatWidget.utils.js +109 -0
- package/dist/components/AIChatWidget.utils.js.map +1 -0
- package/dist/components/ConfigError.d.ts +33 -0
- package/dist/components/ConfigError.d.ts.map +1 -0
- package/dist/components/ConfigError.js +195 -0
- package/dist/components/ConfigError.js.map +1 -0
- package/dist/components/FloatingButton.d.ts +12 -0
- package/dist/components/FloatingButton.d.ts.map +1 -0
- package/dist/components/FloatingButton.js +163 -0
- package/dist/components/FloatingButton.js.map +1 -0
- package/dist/components/InputArea.d.ts +58 -0
- package/dist/components/InputArea.d.ts.map +1 -0
- package/dist/components/InputArea.js +135 -0
- package/dist/components/InputArea.js.map +1 -0
- package/dist/components/MarkdownText.d.ts +16 -0
- package/dist/components/MarkdownText.d.ts.map +1 -0
- package/dist/components/MarkdownText.js +263 -0
- package/dist/components/MarkdownText.js.map +1 -0
- package/dist/components/MessageBubble.d.ts +101 -0
- package/dist/components/MessageBubble.d.ts.map +1 -0
- package/dist/components/MessageBubble.js +377 -0
- package/dist/components/MessageBubble.js.map +1 -0
- package/dist/components/NavigationSuggestion.d.ts +13 -0
- package/dist/components/NavigationSuggestion.d.ts.map +1 -0
- package/dist/components/NavigationSuggestion.js +117 -0
- package/dist/components/NavigationSuggestion.js.map +1 -0
- package/dist/components/QuickReplies.d.ts +15 -0
- package/dist/components/QuickReplies.d.ts.map +1 -0
- package/dist/components/QuickReplies.js +49 -0
- package/dist/components/QuickReplies.js.map +1 -0
- package/dist/components/TemplateRenderer.d.ts +17 -0
- package/dist/components/TemplateRenderer.d.ts.map +1 -0
- package/dist/components/TemplateRenderer.js +397 -0
- package/dist/components/TemplateRenderer.js.map +1 -0
- package/dist/components/TypingIndicator.d.ts +29 -0
- package/dist/components/TypingIndicator.d.ts.map +1 -0
- package/dist/components/TypingIndicator.js +110 -0
- package/dist/components/TypingIndicator.js.map +1 -0
- package/dist/components/defaults/DefaultCard.d.ts +15 -0
- package/dist/components/defaults/DefaultCard.d.ts.map +1 -0
- package/dist/components/defaults/DefaultCard.js +157 -0
- package/dist/components/defaults/DefaultCard.js.map +1 -0
- package/dist/components/defaults/DefaultDetail.d.ts +15 -0
- package/dist/components/defaults/DefaultDetail.d.ts.map +1 -0
- package/dist/components/defaults/DefaultDetail.js +139 -0
- package/dist/components/defaults/DefaultDetail.js.map +1 -0
- package/dist/components/defaults/DefaultList.d.ts +13 -0
- package/dist/components/defaults/DefaultList.d.ts.map +1 -0
- package/dist/components/defaults/DefaultList.js +99 -0
- package/dist/components/defaults/DefaultList.js.map +1 -0
- package/dist/components/defaults/DefaultTable.d.ts +15 -0
- package/dist/components/defaults/DefaultTable.d.ts.map +1 -0
- package/dist/components/defaults/DefaultTable.js +205 -0
- package/dist/components/defaults/DefaultTable.js.map +1 -0
- package/dist/components/defaults/index.d.ts +15 -0
- package/dist/components/defaults/index.d.ts.map +1 -0
- package/dist/components/defaults/index.js +26 -0
- package/dist/components/defaults/index.js.map +1 -0
- package/dist/components/index.d.ts +17 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +33 -0
- package/dist/components/index.js.map +1 -0
- package/dist/constants.d.ts +41 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +52 -0
- package/dist/constants.js.map +1 -0
- package/dist/hooks/useAIChatConfig.d.ts +61 -0
- package/dist/hooks/useAIChatConfig.d.ts.map +1 -0
- package/dist/hooks/useAIChatConfig.js +95 -0
- package/dist/hooks/useAIChatConfig.js.map +1 -0
- package/dist/hooks/useChatMessages.d.ts +27 -0
- package/dist/hooks/useChatMessages.d.ts.map +1 -0
- package/dist/hooks/useChatMessages.js +255 -0
- package/dist/hooks/useChatMessages.js.map +1 -0
- package/dist/hooks/useContextManager.d.ts +13 -0
- package/dist/hooks/useContextManager.d.ts.map +1 -0
- package/dist/hooks/useContextManager.js +42 -0
- package/dist/hooks/useContextManager.js.map +1 -0
- package/dist/hooks/useSDK.d.ts +18 -0
- package/dist/hooks/useSDK.d.ts.map +1 -0
- package/dist/hooks/useSDK.js +64 -0
- package/dist/hooks/useSDK.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/TemplateRegistry.d.ts +48 -0
- package/dist/registry/TemplateRegistry.d.ts.map +1 -0
- package/dist/registry/TemplateRegistry.js +77 -0
- package/dist/registry/TemplateRegistry.js.map +1 -0
- package/dist/registry/index.d.ts +5 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +9 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/services/BackendService.d.ts +47 -0
- package/dist/services/BackendService.d.ts.map +1 -0
- package/dist/services/BackendService.js +362 -0
- package/dist/services/BackendService.js.map +1 -0
- package/dist/services/ConversationManager.d.ts +40 -0
- package/dist/services/ConversationManager.d.ts.map +1 -0
- package/dist/services/ConversationManager.js +95 -0
- package/dist/services/ConversationManager.js.map +1 -0
- package/dist/services/LocalAIClassifier.d.ts +32 -0
- package/dist/services/LocalAIClassifier.d.ts.map +1 -0
- package/dist/services/LocalAIClassifier.js +149 -0
- package/dist/services/LocalAIClassifier.js.map +1 -0
- package/dist/services/NavigationHandler.d.ts +30 -0
- package/dist/services/NavigationHandler.d.ts.map +1 -0
- package/dist/services/NavigationHandler.js +74 -0
- package/dist/services/NavigationHandler.js.map +1 -0
- package/dist/themes/dark.d.ts +6 -0
- package/dist/themes/dark.d.ts.map +1 -0
- package/dist/themes/dark.js +130 -0
- package/dist/themes/dark.js.map +1 -0
- package/dist/themes/index.d.ts +13 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +34 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/light.d.ts +6 -0
- package/dist/themes/light.d.ts.map +1 -0
- package/dist/themes/light.js +130 -0
- package/dist/themes/light.js.map +1 -0
- package/dist/themes/types.d.ts +143 -0
- package/dist/themes/types.d.ts.map +1 -0
- package/dist/themes/types.js +6 -0
- package/dist/themes/types.js.map +1 -0
- package/dist/types/api.d.ts +118 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +6 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/chat.d.ts +154 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +6 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/components.d.ts +69 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/components.js +17 -0
- package/dist/types/components.js.map +1 -0
- package/dist/types/config.d.ts +122 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +18 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/document.d.ts +108 -0
- package/dist/types/document.d.ts.map +1 -0
- package/dist/types/document.js +7 -0
- package/dist/types/document.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +31 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/local-ai.d.ts +48 -0
- package/dist/types/local-ai.d.ts.map +1 -0
- package/dist/types/local-ai.js +17 -0
- package/dist/types/local-ai.js.map +1 -0
- package/dist/types/navigation.d.ts +89 -0
- package/dist/types/navigation.d.ts.map +1 -0
- package/dist/types/navigation.js +6 -0
- package/dist/types/navigation.js.map +1 -0
- package/dist/types/sdk.d.ts +47 -0
- package/dist/types/sdk.d.ts.map +1 -0
- package/dist/types/sdk.js +6 -0
- package/dist/types/sdk.js.map +1 -0
- package/dist/types/template.d.ts +220 -0
- package/dist/types/template.d.ts.map +1 -0
- package/dist/types/template.js +8 -0
- package/dist/types/template.js.map +1 -0
- package/dist/utils/configLoader.d.ts +69 -0
- package/dist/utils/configLoader.d.ts.map +1 -0
- package/dist/utils/configLoader.js +278 -0
- package/dist/utils/configLoader.js.map +1 -0
- package/dist/utils/deepMerge.d.ts +47 -0
- package/dist/utils/deepMerge.d.ts.map +1 -0
- package/dist/utils/deepMerge.js +71 -0
- package/dist/utils/deepMerge.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getWidgetStyles = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Styles for AIChatWidget component
|
|
6
|
+
*/
|
|
7
|
+
const getWidgetStyles = (theme) => {
|
|
8
|
+
const containerStyle = {
|
|
9
|
+
flex: 1,
|
|
10
|
+
backgroundColor: theme.colors.background,
|
|
11
|
+
};
|
|
12
|
+
const headerStyle = {
|
|
13
|
+
paddingHorizontal: theme.spacing.md,
|
|
14
|
+
paddingVertical: theme.spacing.md,
|
|
15
|
+
backgroundColor: theme.colors.surface,
|
|
16
|
+
borderBottomWidth: 1,
|
|
17
|
+
borderBottomColor: theme.colors.border,
|
|
18
|
+
...theme.shadows.small,
|
|
19
|
+
};
|
|
20
|
+
const headerTextStyle = {
|
|
21
|
+
fontSize: theme.typography.fontSize.lg,
|
|
22
|
+
fontWeight: theme.typography.fontWeight.semibold,
|
|
23
|
+
color: theme.colors.text,
|
|
24
|
+
};
|
|
25
|
+
const messageListStyle = {
|
|
26
|
+
paddingHorizontal: theme.spacing.md,
|
|
27
|
+
paddingTop: theme.spacing.md,
|
|
28
|
+
paddingBottom: theme.spacing.md,
|
|
29
|
+
};
|
|
30
|
+
const emptyStateStyle = {
|
|
31
|
+
flex: 1,
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
justifyContent: 'center',
|
|
34
|
+
padding: theme.spacing.xl,
|
|
35
|
+
};
|
|
36
|
+
const emptyStateTextStyle = {
|
|
37
|
+
fontSize: theme.typography.fontSize.md,
|
|
38
|
+
color: theme.colors.textSecondary,
|
|
39
|
+
textAlign: 'center',
|
|
40
|
+
};
|
|
41
|
+
const errorStyle = {
|
|
42
|
+
backgroundColor: theme.colors.error,
|
|
43
|
+
padding: theme.spacing.sm,
|
|
44
|
+
margin: theme.spacing.md,
|
|
45
|
+
borderRadius: theme.borderRadius.md,
|
|
46
|
+
};
|
|
47
|
+
const errorTextStyle = {
|
|
48
|
+
color: theme.colors.textInverse,
|
|
49
|
+
fontSize: theme.typography.fontSize.sm,
|
|
50
|
+
textAlign: 'center',
|
|
51
|
+
};
|
|
52
|
+
const typingIndicatorContainer = {
|
|
53
|
+
paddingHorizontal: theme.spacing.md,
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
containerStyle,
|
|
57
|
+
headerStyle,
|
|
58
|
+
headerTextStyle,
|
|
59
|
+
messageListStyle,
|
|
60
|
+
emptyStateStyle,
|
|
61
|
+
emptyStateTextStyle,
|
|
62
|
+
errorStyle,
|
|
63
|
+
errorTextStyle,
|
|
64
|
+
typingIndicatorContainer,
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
exports.getWidgetStyles = getWidgetStyles;
|
|
68
|
+
//# sourceMappingURL=AIChatWidget.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatWidget.styles.js","sourceRoot":"","sources":["../../src/components/AIChatWidget.styles.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACI,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE;IAC9C,MAAM,cAAc,GAAc;QAChC,IAAI,EAAE,CAAC;QACP,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;KACzC,CAAC;IAEF,MAAM,WAAW,GAAc;QAC7B,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACnC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACjC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;QACrC,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;QACtC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK;KACvB,CAAC;IAEF,MAAM,eAAe,GAAc;QACjC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACtC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ;QAChD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;KACzB,CAAC;IAEF,MAAM,gBAAgB,GAAc;QAClC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACnC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QAC5B,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;KAChC,CAAC;IAEF,MAAM,eAAe,GAAc;QACjC,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;KAC1B,CAAC;IAEF,MAAM,mBAAmB,GAAc;QACrC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACtC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;QACjC,SAAS,EAAE,QAAQ;KACpB,CAAC;IAEF,MAAM,UAAU,GAAc;QAC5B,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;QACnC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE;KACpC,CAAC;IAEF,MAAM,cAAc,GAAc;QAChC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACtC,SAAS,EAAE,QAAQ;KACpB,CAAC;IAEF,MAAM,wBAAwB,GAAc;QAC1C,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;KACpC,CAAC;IAEF,OAAO;QACL,cAAc;QACd,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,mBAAmB;QACnB,UAAU;QACV,cAAc;QACd,wBAAwB;KACzB,CAAC;AACJ,CAAC,CAAC;AApEW,QAAA,eAAe,mBAoE1B"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { ViewStyle } from 'react-native';
|
|
2
|
+
import { Theme, ThemeOverride } from '../themes';
|
|
3
|
+
import { ComponentRegistry } from '../types/components';
|
|
4
|
+
/**
|
|
5
|
+
* Props for AIChatWidget Component
|
|
6
|
+
*
|
|
7
|
+
* 🚀 Zero-Config Support:
|
|
8
|
+
* All config props (apiKey, projectId, apiUrl) are OPTIONAL!
|
|
9
|
+
* SDK automatically loads from:
|
|
10
|
+
* 1. Props (highest priority)
|
|
11
|
+
* 2. Environment variables (AICHAT_API_KEY, AICHAT_PROJECT_ID, AICHAT_API_URL)
|
|
12
|
+
* 3. Config file (aichat.config.js in project root)
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // Zero-config usage (loads from aichat.config.js or env)
|
|
16
|
+
* <AIChatWidget />
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Explicit config
|
|
20
|
+
* <AIChatWidget
|
|
21
|
+
* apiKey="aichat_pk_xxx"
|
|
22
|
+
* projectId="68e4c834c62d2ff6533d6fb0"
|
|
23
|
+
* />
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* // Multi-key support (in aichat.config.js)
|
|
27
|
+
* module.exports = {
|
|
28
|
+
* keys: {
|
|
29
|
+
* ios: 'aichat_pk_ios_xxx',
|
|
30
|
+
* android: 'aichat_pk_android_xxx'
|
|
31
|
+
* },
|
|
32
|
+
* projectId: 'xxx'
|
|
33
|
+
* }
|
|
34
|
+
*/
|
|
35
|
+
export interface AIChatWidgetProps {
|
|
36
|
+
style?: ViewStyle;
|
|
37
|
+
/**
|
|
38
|
+
* API Key for the SDK (OPTIONAL)
|
|
39
|
+
*
|
|
40
|
+
* Use this for single-key setup (same key for all platforms).
|
|
41
|
+
* For platform-specific keys, use `keys` prop instead.
|
|
42
|
+
*
|
|
43
|
+
* Priority order:
|
|
44
|
+
* 1. This prop (highest)
|
|
45
|
+
* 2. AICHAT_API_KEY environment variable
|
|
46
|
+
* 3. aichat.config.js → apiKey or keys object
|
|
47
|
+
*
|
|
48
|
+
* @example "aichat_test_pk_1759823924751-zw3f0ofib"
|
|
49
|
+
*/
|
|
50
|
+
apiKey?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Platform-specific API Keys (OPTIONAL)
|
|
53
|
+
*
|
|
54
|
+
* Use this for multi-platform setup (different keys for iOS/Android/Web).
|
|
55
|
+
* SDK auto-selects the correct key based on Platform.OS.
|
|
56
|
+
*
|
|
57
|
+
* Priority order:
|
|
58
|
+
* 1. This prop (highest)
|
|
59
|
+
* 2. aichat.config.js → keys object
|
|
60
|
+
*
|
|
61
|
+
* @example { ios: 'aichat_pk_ios_xxx', android: 'aichat_pk_android_xxx' }
|
|
62
|
+
*/
|
|
63
|
+
keys?: {
|
|
64
|
+
[platform: string]: string;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Platform selection (OPTIONAL)
|
|
68
|
+
*
|
|
69
|
+
* Force a specific platform key selection from `keys` object.
|
|
70
|
+
* Defaults to 'auto' which uses Platform.OS.
|
|
71
|
+
*
|
|
72
|
+
* @example 'ios' | 'android' | 'web' | 'auto'
|
|
73
|
+
*/
|
|
74
|
+
platform?: 'ios' | 'android' | 'web' | 'auto' | string;
|
|
75
|
+
/**
|
|
76
|
+
* API URL (OPTIONAL)
|
|
77
|
+
*
|
|
78
|
+
* Priority order:
|
|
79
|
+
* 1. This prop (highest)
|
|
80
|
+
* 2. AICHAT_API_URL environment variable
|
|
81
|
+
* 3. aichat.config.js → apiUrl
|
|
82
|
+
* 4. Default: http://localhost:3001/api/v1
|
|
83
|
+
*
|
|
84
|
+
* @example "https://api.aichat.com/v1"
|
|
85
|
+
*/
|
|
86
|
+
apiUrl?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Project ID (OPTIONAL but RECOMMENDED)
|
|
89
|
+
*
|
|
90
|
+
* Priority order:
|
|
91
|
+
* 1. This prop (highest)
|
|
92
|
+
* 2. AICHAT_PROJECT_ID environment variable
|
|
93
|
+
* 3. aichat.config.js → projectId
|
|
94
|
+
*
|
|
95
|
+
* If provided, theme will be automatically fetched from API.
|
|
96
|
+
* Required for: Theme loading, Analytics, Project-specific settings
|
|
97
|
+
*
|
|
98
|
+
* @example "68e4c834c62d2ff6533d6fb0"
|
|
99
|
+
*/
|
|
100
|
+
projectId?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Widget display mode
|
|
103
|
+
*/
|
|
104
|
+
mode?: 'fullscreen' | 'inline' | 'floating';
|
|
105
|
+
/**
|
|
106
|
+
* Theme mode or custom theme object
|
|
107
|
+
*/
|
|
108
|
+
theme?: 'light' | 'dark' | Theme;
|
|
109
|
+
/**
|
|
110
|
+
* Theme overrides (partial theme)
|
|
111
|
+
* Allows overriding specific theme properties without replacing the entire theme
|
|
112
|
+
* @example { colors: { background: '#FF0000' } }
|
|
113
|
+
*/
|
|
114
|
+
themeOverride?: ThemeOverride;
|
|
115
|
+
/**
|
|
116
|
+
* Custom theme (overrides theme prop)
|
|
117
|
+
* @deprecated Use themeOverride instead for partial overrides
|
|
118
|
+
*/
|
|
119
|
+
customTheme?: Theme;
|
|
120
|
+
/**
|
|
121
|
+
* Enable local AI processing
|
|
122
|
+
*/
|
|
123
|
+
enableLocalAI?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* 🆕 Enable streaming responses (real-time typing effect)
|
|
126
|
+
*/
|
|
127
|
+
enableStreaming?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* 🆕 Context object for Tool Registry
|
|
130
|
+
* Provides runtime context to match and execute tools
|
|
131
|
+
* @example { selectedShoppingMallId: '123', userId: '456', isAuthenticated: true }
|
|
132
|
+
*/
|
|
133
|
+
context?: Record<string, any>;
|
|
134
|
+
/**
|
|
135
|
+
* 🆕 Context description for AI
|
|
136
|
+
* Helps AI understand what context keys mean
|
|
137
|
+
* @example "User is in Mall X, viewing Campaigns section"
|
|
138
|
+
*/
|
|
139
|
+
contextDescription?: string;
|
|
140
|
+
/**
|
|
141
|
+
* 🆕 Custom component registry for Tool Registry responses
|
|
142
|
+
* Register your own components to render tool responses
|
|
143
|
+
* @example { CampaignCard: MyCampaignCard, ProductCard: MyProductCard }
|
|
144
|
+
*/
|
|
145
|
+
components?: ComponentRegistry;
|
|
146
|
+
/**
|
|
147
|
+
* Show message metadata (handled by, confidence, tokens)
|
|
148
|
+
*/
|
|
149
|
+
showMetadata?: boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Show timestamps on messages
|
|
152
|
+
*/
|
|
153
|
+
showTimestamps?: boolean;
|
|
154
|
+
/**
|
|
155
|
+
* Input placeholder text
|
|
156
|
+
*/
|
|
157
|
+
placeholder?: string;
|
|
158
|
+
/**
|
|
159
|
+
* Header title
|
|
160
|
+
*/
|
|
161
|
+
title?: string;
|
|
162
|
+
/**
|
|
163
|
+
* Show header
|
|
164
|
+
*/
|
|
165
|
+
showHeader?: boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Maximum message length
|
|
168
|
+
*/
|
|
169
|
+
maxMessageLength?: number;
|
|
170
|
+
/**
|
|
171
|
+
* Callback when widget is ready
|
|
172
|
+
*/
|
|
173
|
+
onReady?: () => void;
|
|
174
|
+
/**
|
|
175
|
+
* Callback when message is sent
|
|
176
|
+
*/
|
|
177
|
+
onMessageSent?: (message: string) => void;
|
|
178
|
+
/**
|
|
179
|
+
* Callback when response is received
|
|
180
|
+
*/
|
|
181
|
+
onResponseReceived?: (response: any) => void;
|
|
182
|
+
/**
|
|
183
|
+
* Callback on error
|
|
184
|
+
*/
|
|
185
|
+
onError?: (error: Error) => void;
|
|
186
|
+
/**
|
|
187
|
+
* Callback when navigation is suggested (always triggered)
|
|
188
|
+
*/
|
|
189
|
+
onNavigationSuggest?: (suggestion: any) => void;
|
|
190
|
+
/**
|
|
191
|
+
* Callback when navigation button is pressed by user
|
|
192
|
+
*/
|
|
193
|
+
onNavigationAction?: (suggestion: any) => void;
|
|
194
|
+
/**
|
|
195
|
+
* Callback when API actions are suggested (informational)
|
|
196
|
+
*/
|
|
197
|
+
onApiActionsSuggested?: (suggestions: any[]) => void;
|
|
198
|
+
/**
|
|
199
|
+
* 🆕 Callback when Tool Registry suggests tools
|
|
200
|
+
* Called during streaming when backend identifies matching tools
|
|
201
|
+
* @param tools - Array of matched tool definitions with relevance scores and customData
|
|
202
|
+
* @param addResponse - Helper function to add tool response to chat
|
|
203
|
+
* @example
|
|
204
|
+
* onToolSuggested={async (tools, addResponse) => {
|
|
205
|
+
* const tool = tools[0];
|
|
206
|
+
* // tool.customData contains dashboard-configured custom data
|
|
207
|
+
* const response = await fetch(tool.customData.apiBaseUrl + tool.endpoint);
|
|
208
|
+
* addResponse(tool.key, await response.json(), tool);
|
|
209
|
+
* }}
|
|
210
|
+
*/
|
|
211
|
+
onToolSuggested?: (tools: any[], addResponse: (toolKey: string, data: any, tool: any) => void) => void | Promise<void>;
|
|
212
|
+
/**
|
|
213
|
+
* 🆕 Enhanced: Callback when API action button is pressed by user
|
|
214
|
+
* Developer executes the API call and returns result via callback
|
|
215
|
+
*
|
|
216
|
+
* @param action - API action details (method, endpoint, params)
|
|
217
|
+
* @param toolDefinition - Full tool definition from Tool Registry (if available)
|
|
218
|
+
* @param mappedParameters - Parameters mapped from context/AI/user input
|
|
219
|
+
* @param complete - Callback to return result with optional rendering hints
|
|
220
|
+
*/
|
|
221
|
+
onApiActionExecute?: (action: any, toolDefinition: any | null, mappedParameters: Record<string, any> | null, complete: (result: ApiActionResult) => void) => void;
|
|
222
|
+
/**
|
|
223
|
+
* @deprecated Use onApiActionsSuggested + onApiActionExecute instead
|
|
224
|
+
* Legacy callback for API actions
|
|
225
|
+
*/
|
|
226
|
+
onApiActionSuggest?: (suggestions: any[], executeAction: (actionId: string, result: any) => void) => void;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Result type for API action execution
|
|
230
|
+
*/
|
|
231
|
+
export interface ApiActionResult {
|
|
232
|
+
success: boolean;
|
|
233
|
+
data?: any;
|
|
234
|
+
error?: string;
|
|
235
|
+
renderAs?: 'list' | 'card' | 'detail' | 'table' | 'raw';
|
|
236
|
+
itemComponent?: string;
|
|
237
|
+
maxItems?: number;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Action button type
|
|
241
|
+
*/
|
|
242
|
+
export interface ActionButton {
|
|
243
|
+
id: string;
|
|
244
|
+
type: 'navigation' | 'api' | 'custom';
|
|
245
|
+
label: string;
|
|
246
|
+
icon?: string;
|
|
247
|
+
data: any;
|
|
248
|
+
style?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning';
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=AIChatWidget.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatWidget.types.d.ts","sourceRoot":"","sources":["../../src/components/AIChatWidget.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAC,SAAS,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAEtC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAEvD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;IAE5C;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAEjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IAE7C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAErD;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,GAAG,EAAE,EACZ,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,KACzD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,CACnB,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,GAAG,GAAG,IAAI,EAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,KACxC,IAAI,CAAC;IAEV;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CACnB,WAAW,EAAE,GAAG,EAAE,EAClB,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,KACnD,IAAI,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;CACpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatWidget.types.js","sourceRoot":"","sources":["../../src/components/AIChatWidget.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for AIChatWidget
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Generate user-friendly summary from API response
|
|
6
|
+
*/
|
|
7
|
+
export declare const generateApiSummary: (action: any, data: any) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Build action buttons from API response
|
|
10
|
+
*/
|
|
11
|
+
export declare const buildActionButtons: (response: any) => any[];
|
|
12
|
+
//# sourceMappingURL=AIChatWidget.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatWidget.utils.d.ts","sourceRoot":"","sources":["../../src/components/AIChatWidget.utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,GAAG,EAAE,MAAM,GAAG,KAAG,MAuE3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,GAAG,KAAG,GAAG,EA8BrD,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Utility functions for AIChatWidget
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.buildActionButtons = exports.generateApiSummary = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Generate user-friendly summary from API response
|
|
9
|
+
*/
|
|
10
|
+
const generateApiSummary = (action, data) => {
|
|
11
|
+
const endpoint = action.endpoint || '';
|
|
12
|
+
// Points endpoint
|
|
13
|
+
if (endpoint.includes('/points') || endpoint.includes('/puan')) {
|
|
14
|
+
const total = data.totalPoints || data.total || data.points || 0;
|
|
15
|
+
return `🎉 **Toplam Puanınız:** ${total.toLocaleString()}
|
|
16
|
+
|
|
17
|
+
${data.mainPoints ? `• Ana hesap: ${data.mainPoints.toLocaleString()}` : ''}
|
|
18
|
+
${data.bonusPoints ? `• Bonus: ${data.bonusPoints.toLocaleString()}` : ''}
|
|
19
|
+
${data.pendingPoints ? `• Bekleyen: ${data.pendingPoints.toLocaleString()}` : ''}
|
|
20
|
+
|
|
21
|
+
${data.lastEarned ? `Son kazanç: ${data.lastEarned.amount || 0} puan` : ''}`.trim();
|
|
22
|
+
}
|
|
23
|
+
// Campaigns endpoint
|
|
24
|
+
if (endpoint.includes('/campaign')) {
|
|
25
|
+
const campaigns = data.data || data.campaigns || (Array.isArray(data) ? data : []);
|
|
26
|
+
const total = data.total || campaigns.length || 0;
|
|
27
|
+
const preview = campaigns.slice(0, 3);
|
|
28
|
+
return `📋 **${total} kampanya bulundu**
|
|
29
|
+
|
|
30
|
+
${preview.map((c) => `• **${c.title || c.name}**${c.description ? `\n ${c.description.slice(0, 60)}...` : ''}`).join('\n\n')}
|
|
31
|
+
|
|
32
|
+
${total > 3 ? `\n...ve ${total - 3} kampanya daha` : ''}`.trim();
|
|
33
|
+
}
|
|
34
|
+
// Products endpoint
|
|
35
|
+
if (endpoint.includes('/product')) {
|
|
36
|
+
const products = data.data || data.products || (Array.isArray(data) ? data : []);
|
|
37
|
+
const total = data.total || products.length || 0;
|
|
38
|
+
const preview = products.slice(0, 3);
|
|
39
|
+
return `🛍️ **${total} ürün bulundu**
|
|
40
|
+
|
|
41
|
+
${preview.map((p) => `• **${p.name || p.title}**${p.price ? ` - ${p.price} TL` : ''}`).join('\n')}
|
|
42
|
+
|
|
43
|
+
${total > 3 ? `\n...ve ${total - 3} ürün daha` : ''}`.trim();
|
|
44
|
+
}
|
|
45
|
+
// User profile endpoint
|
|
46
|
+
if (endpoint.includes('/user') || endpoint.includes('/profile')) {
|
|
47
|
+
return `👤 **Profil Bilgileri**
|
|
48
|
+
|
|
49
|
+
${data.name ? `• İsim: ${data.name}` : ''}
|
|
50
|
+
${data.email ? `• E-posta: ${data.email}` : ''}
|
|
51
|
+
${data.phone ? `• Telefon: ${data.phone}` : ''}
|
|
52
|
+
${data.memberSince ? `• Üyelik: ${data.memberSince}` : ''}`.trim();
|
|
53
|
+
}
|
|
54
|
+
// Default: Format as readable JSON
|
|
55
|
+
try {
|
|
56
|
+
const formatted = JSON.stringify(data, null, 2);
|
|
57
|
+
if (formatted.length > 300) {
|
|
58
|
+
return `✅ **İşlem tamamlandı!**
|
|
59
|
+
|
|
60
|
+
\`\`\`json
|
|
61
|
+
${formatted.slice(0, 300)}...
|
|
62
|
+
\`\`\`
|
|
63
|
+
|
|
64
|
+
_Detayları görmek için aşağıdaki butonu kullanın._`;
|
|
65
|
+
}
|
|
66
|
+
return `✅ **İşlem tamamlandı!**
|
|
67
|
+
|
|
68
|
+
\`\`\`json
|
|
69
|
+
${formatted}
|
|
70
|
+
\`\`\``;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return '✅ İşlem başarıyla tamamlandı!';
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
exports.generateApiSummary = generateApiSummary;
|
|
77
|
+
/**
|
|
78
|
+
* Build action buttons from API response
|
|
79
|
+
*/
|
|
80
|
+
const buildActionButtons = (response) => {
|
|
81
|
+
const actionButtons = [];
|
|
82
|
+
// Add navigation button if available
|
|
83
|
+
if (response.navigationSuggestion) {
|
|
84
|
+
actionButtons.push({
|
|
85
|
+
id: `nav-${Date.now()}`,
|
|
86
|
+
type: 'navigation',
|
|
87
|
+
label: response.navigationSuggestion.message || `Go to ${response.navigationSuggestion.screenName}`,
|
|
88
|
+
icon: '🧭',
|
|
89
|
+
data: response.navigationSuggestion,
|
|
90
|
+
style: 'primary',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// Add API action buttons if available
|
|
94
|
+
if (response.apiSuggestions && response.apiSuggestions.length > 0) {
|
|
95
|
+
response.apiSuggestions.forEach((suggestion) => {
|
|
96
|
+
actionButtons.push({
|
|
97
|
+
id: suggestion.id,
|
|
98
|
+
type: 'api',
|
|
99
|
+
label: suggestion.description,
|
|
100
|
+
icon: suggestion.method === 'GET' ? '📥' : suggestion.method === 'POST' ? '📤' : '🔄',
|
|
101
|
+
data: suggestion,
|
|
102
|
+
style: suggestion.risk === 'low' ? 'success' : suggestion.risk === 'high' ? 'danger' : 'warning',
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return actionButtons;
|
|
107
|
+
};
|
|
108
|
+
exports.buildActionButtons = buildActionButtons;
|
|
109
|
+
//# sourceMappingURL=AIChatWidget.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIChatWidget.utils.js","sourceRoot":"","sources":["../../src/components/AIChatWidget.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ConfigResult } from '../types/config';
|
|
3
|
+
interface ConfigErrorProps {
|
|
4
|
+
/**
|
|
5
|
+
* Config result with missing fields info
|
|
6
|
+
*/
|
|
7
|
+
result: ConfigResult;
|
|
8
|
+
/**
|
|
9
|
+
* Custom error title
|
|
10
|
+
*/
|
|
11
|
+
title?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Custom error message
|
|
14
|
+
*/
|
|
15
|
+
message?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* ConfigError Component
|
|
19
|
+
*
|
|
20
|
+
* Displays a helpful error screen when AIChatSDK configuration is missing.
|
|
21
|
+
* Shows setup instructions with CLI command and documentation link.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* const configResult = useAIChatConfig({});
|
|
26
|
+
* if (!configResult.config) {
|
|
27
|
+
* return <ConfigError result={configResult} />;
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function ConfigError({ result, title, message }: ConfigErrorProps): React.JSX.Element;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=ConfigError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigError.d.ts","sourceRoot":"","sources":["../../src/components/ConfigError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,UAAU,gBAAgB;IACxB;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB,qBAiEvE"}
|