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.
Files changed (71) hide show
  1. package/dist/chat-widget.js +1 -1
  2. package/lib/commonjs/api.js +51 -12
  3. package/lib/commonjs/api.js.map +1 -1
  4. package/lib/commonjs/components/BetaNotice.js +13 -12
  5. package/lib/commonjs/components/BetaNotice.js.map +1 -1
  6. package/lib/commonjs/components/ChatInput.js +59 -49
  7. package/lib/commonjs/components/ChatInput.js.map +1 -1
  8. package/lib/commonjs/components/ChatWidget.js +74 -61
  9. package/lib/commonjs/components/ChatWidget.js.map +1 -1
  10. package/lib/commonjs/components/MessageBubble.js +67 -52
  11. package/lib/commonjs/components/MessageBubble.js.map +1 -1
  12. package/lib/commonjs/components/MessageMetaRow.js +50 -31
  13. package/lib/commonjs/components/MessageMetaRow.js.map +1 -1
  14. package/lib/commonjs/components/ProductsListView.js +232 -153
  15. package/lib/commonjs/components/ProductsListView.js.map +1 -1
  16. package/lib/commonjs/components/SuggestionsRow.js +27 -24
  17. package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
  18. package/lib/commonjs/components/utils.js +15 -4
  19. package/lib/commonjs/components/utils.js.map +1 -1
  20. package/lib/commonjs/contexts/ThemeProvider.js +80 -0
  21. package/lib/commonjs/contexts/ThemeProvider.js.map +1 -0
  22. package/lib/commonjs/contexts/utils.js +142 -0
  23. package/lib/commonjs/contexts/utils.js.map +1 -0
  24. package/lib/module/api.js +51 -12
  25. package/lib/module/api.js.map +1 -1
  26. package/lib/module/components/BetaNotice.js +14 -13
  27. package/lib/module/components/BetaNotice.js.map +1 -1
  28. package/lib/module/components/ChatInput.js +61 -50
  29. package/lib/module/components/ChatInput.js.map +1 -1
  30. package/lib/module/components/ChatWidget.js +78 -63
  31. package/lib/module/components/ChatWidget.js.map +1 -1
  32. package/lib/module/components/MessageBubble.js +69 -52
  33. package/lib/module/components/MessageBubble.js.map +1 -1
  34. package/lib/module/components/MessageMetaRow.js +52 -32
  35. package/lib/module/components/MessageMetaRow.js.map +1 -1
  36. package/lib/module/components/ProductsListView.js +234 -154
  37. package/lib/module/components/ProductsListView.js.map +1 -1
  38. package/lib/module/components/SuggestionsRow.js +29 -25
  39. package/lib/module/components/SuggestionsRow.js.map +1 -1
  40. package/lib/module/components/utils.js +17 -3
  41. package/lib/module/components/utils.js.map +1 -1
  42. package/lib/module/contexts/ThemeProvider.js +75 -0
  43. package/lib/module/contexts/ThemeProvider.js.map +1 -0
  44. package/lib/module/contexts/utils.js +136 -0
  45. package/lib/module/contexts/utils.js.map +1 -0
  46. package/lib/typescript/api.d.ts.map +1 -1
  47. package/lib/typescript/components/BetaNotice.d.ts.map +1 -1
  48. package/lib/typescript/components/ChatInput.d.ts.map +1 -1
  49. package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
  50. package/lib/typescript/components/MessageBubble.d.ts +1 -1
  51. package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
  52. package/lib/typescript/components/MessageMetaRow.d.ts.map +1 -1
  53. package/lib/typescript/components/ProductsListView.d.ts.map +1 -1
  54. package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
  55. package/lib/typescript/components/utils.d.ts.map +1 -1
  56. package/lib/typescript/contexts/ThemeProvider.d.ts +7 -0
  57. package/lib/typescript/contexts/ThemeProvider.d.ts.map +1 -0
  58. package/lib/typescript/contexts/utils.d.ts +136 -0
  59. package/lib/typescript/contexts/utils.d.ts.map +1 -0
  60. package/package.json +6 -2
  61. package/src/api.ts +58 -21
  62. package/src/components/BetaNotice.tsx +15 -13
  63. package/src/components/ChatInput.tsx +63 -62
  64. package/src/components/ChatWidget.tsx +238 -206
  65. package/src/components/MessageBubble.tsx +113 -74
  66. package/src/components/MessageMetaRow.tsx +80 -50
  67. package/src/components/ProductsListView.tsx +243 -184
  68. package/src/components/SuggestionsRow.tsx +40 -25
  69. package/src/components/utils.ts +24 -8
  70. package/src/contexts/ThemeProvider.tsx +87 -0
  71. 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
+ };