vdb-ai-chat 1.0.6 → 1.0.8
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/dist/chat-widget.js +1 -1
- package/lib/commonjs/api.js +51 -12
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/components/BetaNotice.js +13 -12
- package/lib/commonjs/components/BetaNotice.js.map +1 -1
- package/lib/commonjs/components/ChatInput.js +59 -49
- package/lib/commonjs/components/ChatInput.js.map +1 -1
- package/lib/commonjs/components/ChatWidget.js +74 -61
- package/lib/commonjs/components/ChatWidget.js.map +1 -1
- package/lib/commonjs/components/MessageBubble.js +67 -52
- package/lib/commonjs/components/MessageBubble.js.map +1 -1
- package/lib/commonjs/components/MessageMetaRow.js +50 -31
- package/lib/commonjs/components/MessageMetaRow.js.map +1 -1
- package/lib/commonjs/components/ProductsListView.js +232 -153
- package/lib/commonjs/components/ProductsListView.js.map +1 -1
- package/lib/commonjs/components/SuggestionsRow.js +27 -24
- package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
- package/lib/commonjs/components/utils.js +15 -4
- package/lib/commonjs/components/utils.js.map +1 -1
- package/lib/commonjs/contexts/ThemeProvider.js +80 -0
- package/lib/commonjs/contexts/ThemeProvider.js.map +1 -0
- package/lib/commonjs/contexts/utils.js +142 -0
- package/lib/commonjs/contexts/utils.js.map +1 -0
- package/lib/module/api.js +51 -12
- package/lib/module/api.js.map +1 -1
- package/lib/module/components/BetaNotice.js +14 -13
- package/lib/module/components/BetaNotice.js.map +1 -1
- package/lib/module/components/ChatInput.js +61 -50
- package/lib/module/components/ChatInput.js.map +1 -1
- package/lib/module/components/ChatWidget.js +78 -63
- package/lib/module/components/ChatWidget.js.map +1 -1
- package/lib/module/components/MessageBubble.js +69 -52
- package/lib/module/components/MessageBubble.js.map +1 -1
- package/lib/module/components/MessageMetaRow.js +52 -32
- package/lib/module/components/MessageMetaRow.js.map +1 -1
- package/lib/module/components/ProductsListView.js +234 -154
- package/lib/module/components/ProductsListView.js.map +1 -1
- package/lib/module/components/SuggestionsRow.js +29 -25
- package/lib/module/components/SuggestionsRow.js.map +1 -1
- package/lib/module/components/utils.js +17 -3
- package/lib/module/components/utils.js.map +1 -1
- package/lib/module/contexts/ThemeProvider.js +75 -0
- package/lib/module/contexts/ThemeProvider.js.map +1 -0
- package/lib/module/contexts/utils.js +136 -0
- package/lib/module/contexts/utils.js.map +1 -0
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/components/BetaNotice.d.ts.map +1 -1
- package/lib/typescript/components/ChatInput.d.ts.map +1 -1
- package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble.d.ts +1 -1
- package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
- package/lib/typescript/components/MessageMetaRow.d.ts.map +1 -1
- package/lib/typescript/components/ProductsListView.d.ts.map +1 -1
- package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
- package/lib/typescript/components/utils.d.ts.map +1 -1
- package/lib/typescript/contexts/ThemeProvider.d.ts +7 -0
- package/lib/typescript/contexts/ThemeProvider.d.ts.map +1 -0
- package/lib/typescript/contexts/utils.d.ts +136 -0
- package/lib/typescript/contexts/utils.d.ts.map +1 -0
- package/package.json +6 -2
- package/src/api.ts +58 -21
- package/src/components/BetaNotice.tsx +15 -13
- package/src/components/ChatInput.tsx +63 -62
- package/src/components/ChatWidget.tsx +238 -206
- package/src/components/MessageBubble.tsx +113 -74
- package/src/components/MessageMetaRow.tsx +80 -50
- package/src/components/ProductsListView.tsx +243 -184
- package/src/components/SuggestionsRow.tsx +40 -25
- package/src/components/utils.ts +24 -8
- package/src/contexts/ThemeProvider.tsx +87 -0
- package/src/contexts/utils.ts +135 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Platform } from "react-native";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import {
|
|
4
|
+
DefaultTheme,
|
|
5
|
+
ThemeProvider as OriginalThemeProvider,
|
|
6
|
+
} from "styled-components/native";
|
|
7
|
+
import { useMediaQuery } from "react-responsive";
|
|
8
|
+
import { DEFAULT_THEME } from "./utils";
|
|
9
|
+
import { DEVICE_SIZE, isIpad } from "../components/utils";
|
|
10
|
+
import { useMemo, useState, useEffect } from "react";
|
|
11
|
+
import { Storage } from "../storage";
|
|
12
|
+
|
|
13
|
+
// Conditionally import expo-device only on native platforms
|
|
14
|
+
let Device: { osName?: string } | null = null;
|
|
15
|
+
if (Platform.OS !== "web") {
|
|
16
|
+
try {
|
|
17
|
+
Device = require("expo-device");
|
|
18
|
+
} catch {
|
|
19
|
+
// expo-device not installed
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface Props {
|
|
24
|
+
children?: React.ReactElement;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const ThemeProvider = ({ children }: Props) => {
|
|
28
|
+
const [theme, setTheme] = useState<Record<string, any>>(DEFAULT_THEME);
|
|
29
|
+
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
const loadTheme = async () => {
|
|
32
|
+
try {
|
|
33
|
+
const rootState = JSON.parse(
|
|
34
|
+
(await Storage.getItem("persist:root")) || "{}"
|
|
35
|
+
);
|
|
36
|
+
const userTheme = rootState.theme ? JSON.parse(rootState.theme) : null;
|
|
37
|
+
if (userTheme) {
|
|
38
|
+
setTheme(userTheme);
|
|
39
|
+
}
|
|
40
|
+
} catch {
|
|
41
|
+
// Keep default theme on error
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
loadTheme();
|
|
45
|
+
}, []);
|
|
46
|
+
|
|
47
|
+
if (Platform.OS === "web") {
|
|
48
|
+
const mediaQuery = window.matchMedia("print");
|
|
49
|
+
if (mediaQuery.matches) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const mobileQuery = useMediaQuery({ maxWidth: 767 });
|
|
55
|
+
const tabletQuery = useMediaQuery({ minWidth: 767, maxWidth: 1279 });
|
|
56
|
+
const desktopQuery = useMediaQuery({ minWidth: 1279 });
|
|
57
|
+
|
|
58
|
+
const { width } = DEVICE_SIZE;
|
|
59
|
+
const isMobile = mobileQuery || width <= 767;
|
|
60
|
+
const isTablet =
|
|
61
|
+
tabletQuery ||
|
|
62
|
+
(width > 767 && width <= 1279) ||
|
|
63
|
+
(Device?.osName === "iPadOS") ||
|
|
64
|
+
isIpad();
|
|
65
|
+
const isDesktop =
|
|
66
|
+
(desktopQuery || width > 1279) &&
|
|
67
|
+
!(Device?.osName === "iPadOS" || isIpad());
|
|
68
|
+
const isLargeScreen = isDesktop && !isTablet && !isMobile;
|
|
69
|
+
|
|
70
|
+
const media = {
|
|
71
|
+
isMobile,
|
|
72
|
+
isTablet,
|
|
73
|
+
isDesktop,
|
|
74
|
+
isLargeScreen,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const mediaTheme = useMemo(
|
|
78
|
+
() => ({ ...theme, ...media } as DefaultTheme),
|
|
79
|
+
[theme, isMobile, isTablet, isDesktop, isLargeScreen]
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<OriginalThemeProvider theme={mediaTheme}>{children}</OriginalThemeProvider>
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export default ThemeProvider;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
export const DEFAULT_THEME = {
|
|
2
|
+
transparent: "transparent",
|
|
3
|
+
"main-01": "#292735",
|
|
4
|
+
"main-02": "#37363F",
|
|
5
|
+
"main-03": "#E3E3E9",
|
|
6
|
+
"main-04": "#3378F6",
|
|
7
|
+
"main-05": "#ffffff",
|
|
8
|
+
"main-06": "#292735",
|
|
9
|
+
"diam-01": "#804195",
|
|
10
|
+
"diam-02": "#713782",
|
|
11
|
+
"diam-03": "#EEE1F3",
|
|
12
|
+
"diam-04": "#9138AE",
|
|
13
|
+
"diam-05": "#ffffff",
|
|
14
|
+
"diam-06": "#9138AE",
|
|
15
|
+
"core-01": "#ffffff",
|
|
16
|
+
"core-02": "#EDEDF2",
|
|
17
|
+
"core-03": "#D5D5DC",
|
|
18
|
+
"core-04": "#ACACB3",
|
|
19
|
+
"core-05": "#020001",
|
|
20
|
+
"core-06": "#4F4E57",
|
|
21
|
+
"extra-01": "#A1A0AB",
|
|
22
|
+
"extra-02": "#292735",
|
|
23
|
+
"extra-03": "#E4E4EC",
|
|
24
|
+
"extra-04": "#DADAE0",
|
|
25
|
+
"extra-05": "#ffffff",
|
|
26
|
+
"extra-06": "#4F4E57",
|
|
27
|
+
"gem-01": "#3B72CC",
|
|
28
|
+
"gem-02": "#3C62A0",
|
|
29
|
+
"gem-03": "#DCE6F6",
|
|
30
|
+
"gem-04": "#3E76D2",
|
|
31
|
+
"gem-05": "#ffffff",
|
|
32
|
+
"gem-06": "#3E76D2",
|
|
33
|
+
"jewelry-01": "#58B8A5",
|
|
34
|
+
"jewelry-02": "#4CA191",
|
|
35
|
+
"jewelry-03": "#D6F1ED",
|
|
36
|
+
"jewelry-04": "#27AC92",
|
|
37
|
+
"jewelry-05": "#ffffff",
|
|
38
|
+
"jewelry-06": "#27AC92",
|
|
39
|
+
"lab-01": "#E97F5B",
|
|
40
|
+
"lab-02": "#DA704B",
|
|
41
|
+
"lab-03": "#F9E2D9",
|
|
42
|
+
"lab-04": "#E87B56",
|
|
43
|
+
"lab-05": "#ffffff",
|
|
44
|
+
"lab-06": "#E87B56",
|
|
45
|
+
"over-01": "#000000b3",
|
|
46
|
+
"over-02": "rgba(55,54,64,0.3)",
|
|
47
|
+
"over-03": "rgba(255,255,255,0.7)",
|
|
48
|
+
"over-04": "#ffffff",
|
|
49
|
+
"cont-00": "#ffffff",
|
|
50
|
+
"success-02": "#DBFFE4",
|
|
51
|
+
"success-01": "#00B140",
|
|
52
|
+
"error-02": "#FFE2E0",
|
|
53
|
+
"error-01": "#D0021B",
|
|
54
|
+
"warn-02": "#FFF8DB",
|
|
55
|
+
"warn-01": "#FFA500",
|
|
56
|
+
"primary-bg-static": "#292735",
|
|
57
|
+
"primary-bg-hover": "#37363F",
|
|
58
|
+
"primary-bg-disabled": "#D5D5DC",
|
|
59
|
+
"primary-cont": "#ffffff",
|
|
60
|
+
"primary-cont-disabled": "#ACACB3",
|
|
61
|
+
"secondary-bor-disabled": "#D5D5DC",
|
|
62
|
+
"secondary-cont-disabled": "#ACACB3",
|
|
63
|
+
"secondary-bg-hover": "#E3E3E9",
|
|
64
|
+
"secondary-bor-hover": "#37363F",
|
|
65
|
+
"secondary-bor-static": "#292735",
|
|
66
|
+
"secondary-cont": "#292735",
|
|
67
|
+
"tertiary-bg-static": "#E3E3E9",
|
|
68
|
+
"tertiary-bg-disabled": "#D5D5DC",
|
|
69
|
+
"tertiary-cont": "#292735",
|
|
70
|
+
"tertiary-cont-disabled": "#ACACB3",
|
|
71
|
+
"link-static": "#3378F6",
|
|
72
|
+
"link-hover": "#292735",
|
|
73
|
+
"option-bg-static": "#E4E4EC",
|
|
74
|
+
"option-bg-hover": "#DADAE0",
|
|
75
|
+
"option-bg-active": "#A1A0AB",
|
|
76
|
+
"option-cont": "#4F4E57",
|
|
77
|
+
"option-cont-active": "#ffffff",
|
|
78
|
+
"knob-bg-hover": "#E4E4EC",
|
|
79
|
+
"knob-bg-active": "#292735",
|
|
80
|
+
"knob-cont": "#ffffff",
|
|
81
|
+
"knob-bor": "#292735",
|
|
82
|
+
"toggle-bg-static": "#DADAE0",
|
|
83
|
+
"toggle-bg-on": "#292735",
|
|
84
|
+
"toggle-cont": "#ffffff",
|
|
85
|
+
"option-bg-disabled": "#D5D5DC",
|
|
86
|
+
"option-cont-disabled": "#ACACB3",
|
|
87
|
+
"knob-bg-disabled-off": "#EDEDF2",
|
|
88
|
+
"knob-bg-disabled-on": "#D5D5DC",
|
|
89
|
+
"knob-cont-disabled-on": "#ffffff",
|
|
90
|
+
"toggle-bg-disabled": "#D5D5DC",
|
|
91
|
+
"toggle-cont-disabled": "#EDEDF2",
|
|
92
|
+
"header-cont": "#ffffff",
|
|
93
|
+
"header-btn-cont": "#ffffff",
|
|
94
|
+
"header-bg-static": "#37363F",
|
|
95
|
+
"header-btn-bg-hover": "#37363F",
|
|
96
|
+
"header-btn-bg-active": "#E3E3E9",
|
|
97
|
+
"header-btn-bg-static": "#292735",
|
|
98
|
+
"header-btn-bor-hover": "#292735",
|
|
99
|
+
"header-btn-cont-active": "#292735",
|
|
100
|
+
"knob-bg-static": "#ffffff",
|
|
101
|
+
Shadows: {
|
|
102
|
+
Huge: {
|
|
103
|
+
x: "2",
|
|
104
|
+
y: "16",
|
|
105
|
+
blur: "32",
|
|
106
|
+
type: "dropShadow",
|
|
107
|
+
color: "#37364066",
|
|
108
|
+
spread: "-8",
|
|
109
|
+
},
|
|
110
|
+
Gentle: {
|
|
111
|
+
x: "1",
|
|
112
|
+
y: "2",
|
|
113
|
+
blur: "4",
|
|
114
|
+
type: "dropShadow",
|
|
115
|
+
color: "#37364014",
|
|
116
|
+
spread: "-2",
|
|
117
|
+
},
|
|
118
|
+
Normal: {
|
|
119
|
+
x: "2",
|
|
120
|
+
y: "8",
|
|
121
|
+
blur: "24",
|
|
122
|
+
type: "dropShadow",
|
|
123
|
+
color: "#37364042",
|
|
124
|
+
spread: "-6",
|
|
125
|
+
},
|
|
126
|
+
"Bottom-scroll": {
|
|
127
|
+
x: "0",
|
|
128
|
+
y: "-8",
|
|
129
|
+
blur: "24",
|
|
130
|
+
type: "dropShadow",
|
|
131
|
+
color: "#37364029",
|
|
132
|
+
spread: "-8",
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
};
|