@vinaverse/react-native 0.1.0-alpha.4 → 0.1.0-alpha.6

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 (48) hide show
  1. package/README.md +122 -0
  2. package/dist/ask.cjs +58 -0
  3. package/dist/ask.cjs.map +1 -0
  4. package/dist/ask.d.cts +25 -0
  5. package/dist/ask.d.ts +25 -0
  6. package/dist/ask.js +5 -0
  7. package/dist/ask.js.map +1 -0
  8. package/dist/chat.cjs +266 -0
  9. package/dist/chat.cjs.map +1 -0
  10. package/dist/chat.d.cts +449 -0
  11. package/dist/chat.d.ts +449 -0
  12. package/dist/chat.js +5 -0
  13. package/dist/chat.js.map +1 -0
  14. package/dist/chunk-643GOUTG.cjs +75 -0
  15. package/dist/chunk-643GOUTG.cjs.map +1 -0
  16. package/dist/chunk-H2Y2YW2Q.cjs +2651 -0
  17. package/dist/chunk-H2Y2YW2Q.cjs.map +1 -0
  18. package/dist/chunk-NJWRZ55G.js +254 -0
  19. package/dist/chunk-NJWRZ55G.js.map +1 -0
  20. package/dist/chunk-OGPMGGYS.cjs +261 -0
  21. package/dist/chunk-OGPMGGYS.cjs.map +1 -0
  22. package/dist/chunk-OWUKWVEZ.cjs +53 -0
  23. package/dist/chunk-OWUKWVEZ.cjs.map +1 -0
  24. package/dist/chunk-PRXHS57U.js +40 -0
  25. package/dist/chunk-PRXHS57U.js.map +1 -0
  26. package/dist/chunk-PYPO6F7L.cjs +44 -0
  27. package/dist/chunk-PYPO6F7L.cjs.map +1 -0
  28. package/dist/chunk-SF6LJTVJ.js +2567 -0
  29. package/dist/chunk-SF6LJTVJ.js.map +1 -0
  30. package/dist/chunk-WKRCCPSN.js +48 -0
  31. package/dist/chunk-WKRCCPSN.js.map +1 -0
  32. package/dist/chunk-Y7P7DDHD.js +73 -0
  33. package/dist/chunk-Y7P7DDHD.js.map +1 -0
  34. package/dist/index.cjs +290 -2299
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +11 -360
  37. package/dist/index.d.ts +11 -360
  38. package/dist/index.js +5 -2254
  39. package/dist/index.js.map +1 -1
  40. package/dist/launcher.cjs +79 -0
  41. package/dist/launcher.cjs.map +1 -0
  42. package/dist/launcher.d.cts +121 -0
  43. package/dist/launcher.d.ts +121 -0
  44. package/dist/launcher.js +6 -0
  45. package/dist/launcher.js.map +1 -0
  46. package/dist/theme-BhiEGv64.d.cts +35 -0
  47. package/dist/theme-BhiEGv64.d.ts +35 -0
  48. package/package.json +114 -9
package/README.md CHANGED
@@ -33,6 +33,74 @@ export function AgentScreen() {
33
33
  }
34
34
  ```
35
35
 
36
+ ## Hosting the agent (the runtime)
37
+
38
+ An app that hosts the agent writes its backend once (`createAgentRuntime`, `@vinaverse/client/agent`) and draws the
39
+ parts; which conversation, keeping it across screens, waiting the backend out, a conversation that ended, the backend
40
+ out of reach, status, name, ratings and sign-out are the runtime's.
41
+
42
+ ```tsx
43
+ import { createAgentRuntime } from '@vinaverse/client/agent';
44
+ import { AgentChat, CardCarousel } from '@vinaverse/react-native/chat';
45
+ import { AgentLauncher, AgentRuntimeProvider } from '@vinaverse/react-native/launcher';
46
+ import { AskAboutRow } from '@vinaverse/react-native/ask';
47
+
48
+ const agent = createAgentRuntime({ backend: { openSession, refreshSecret, status }, conversation: { locale } });
49
+ const components = { CardGroup: CardCarousel, Image: ExpoImage }; // module level: stable
50
+ const imagePolicy = { hosts: ['images.example.com'], aspectRatio: 1.6, Placeholder: BrandTile }; // stable too
51
+
52
+ <AgentRuntimeProvider runtime={agent}>
53
+ <Tabs />
54
+ <AgentLauncher subject={user?.id ?? null} mode={side} Mark={YourMark}
55
+ route={currentTab} routes={['home', 'explore']} hidden={sheetOpen} // never with the keyboard up
56
+ storage={preferences} onOpen={({ route, mode }) => openChat(route, mode)}
57
+ style={{ position: 'absolute', right: 16, bottom: tabBarHeight + 16 }} />
58
+ </AgentRuntimeProvider>
59
+
60
+ // The chat screen
61
+ <AgentChat
62
+ agentKey={{ subject: user?.id ?? null, mode: side, scope: businessId }}
63
+ place={{ screen: 'professional', entity: { type: 'professional', id } }}
64
+ askAbout={`Tell me about ${name}`} // offered when the session was told another place
65
+ starters={startersFor(screen)} // when the session brings no welcome
66
+ components={components}
67
+ onOpenTarget={(t) => router.push(routeFor(t))} // a card about a professional, a space, a booking
68
+ onOpenLink={openLink}
69
+ onContact={() => router.push('/contact')} // a person, when the agent fails or is unavailable
70
+ onOpenPrivacy={() => router.push('/privacy')}
71
+ prefetchImage={(url) => Image.prefetch(url)}
72
+ imagePolicy={imagePolicy}
73
+ />
74
+
75
+ // On the app's own page about a professional
76
+ <AskAboutRow title={`Ask ${agentName} about ${name}`} onPress={() => openChat('professional', side)} />
77
+ ```
78
+
79
+ - **Parts:** `AgentChat` draws the conversation, a conversation that ended (`components.Ended`, start over), the backend
80
+ out of reach (`components.Unreachable`, try again), no agent at all (`components.UnavailableScreen`, the whole
81
+ screen: off, or the session refused, with a person through `onContact`), and under the composer thumbs on the newest
82
+ whole reply and the privacy link (`components.Footer`, `null` to hide); each slot gets the kit's part as `Default`,
83
+ to wrap it. `opener` is a first question as a chip the person taps (a flow that asks for itself), until they say
84
+ anything; nothing is ever sent in their name. `AgentLauncher` is a round button with
85
+ a greeting bubble once per person and mode (`storage`: your preferences store; `greeting`: words or words by mode,
86
+ read through `announce`; `storageKey` maps the record to one your app already keeps, so nobody is greeted twice),
87
+ your `Mark` inside, floating where `placement` says (`edge`, `bottom` above your tab bar, `inset`; `style` after it),
88
+ with `appearance` (a `ring`, the `shadow`, the bubble's `tail`), shown on your `routes` only, never with the keyboard
89
+ up (`hideWithKeyboard`), stepping aside when you say (`hidden`), and only when the status offers it; its button,
90
+ bubble and entrance are slots (`LauncherButton`, `LauncherGreeting`, `LauncherEntrance`: a short fade and scale,
91
+ none with reduced motion). `AskAboutRow` is "ask the agent about this" on
92
+ your own pages, shown when the agent is available, decided once per visit.
93
+ - **Policies and adapters:** `imagePolicy` (photo hosts, frame, the stand-in for a missing photo) applies to every card
94
+ and every fetch ahead; `announce` reads finished replies and the greeting your way; `onChip` hears a tapped chip.
95
+ Card renderers get the card read once (`read`).
96
+ - **Hooks** for your own parts: `useAgentConversation`, `useAgentStatus`, `useAgentFeatures`, `useAgentProfile`,
97
+ `useAgentName`, `useAgentLauncher`, `useAgentRuntime`.
98
+ - **Events** for analytics through `onEvent`: sessions, ratings, chips, targets and links opened, the launcher shown,
99
+ opened, greeted and its greeting closed.
100
+ - **StrictMode, in development only:** React mounts, unmounts and mounts again, so a conversation still opening is let
101
+ go with the first unmount and the second mount asks your backend for another session: two `openSession` calls per
102
+ opening in development, one in a release build. The first request's answer is dropped, never shown.
103
+
36
104
  ## Install
37
105
 
38
106
  ```sh
@@ -42,6 +110,60 @@ npm install @vinaverse/react-native@alpha @vinaverse/client@alpha @shopify/flash
42
110
  Alphas are published under the `alpha` tag. Keep every `@vinaverse/*` package on the same version, so your app and the
43
111
  kit share one copy of `@vinaverse/client`.
44
112
 
113
+ **Import by part.** The package has an entry per part: `@vinaverse/react-native/chat` (the conversation, `AgentChat`,
114
+ `VinaverseChat`, cards, theme), `/launcher` (`AgentLauncher` and its parts) and `/ask` (`AskAboutRow`). The launcher and
115
+ the ask row each re-export the runtime bindings (`AgentRuntimeProvider`, the hooks) and the theme. The entries share
116
+ their modules, so two of them still mean one theme and one chat context. `@vinaverse/react-native` itself still exports
117
+ everything.
118
+
119
+ What it buys, honestly. Metro without tree shaking (its default) puts every module an app imports statically, anywhere,
120
+ into the one bundle it writes for iOS or Android. Measured on the kit alone (minified, brotli, peers excluded):
121
+
122
+ | The app imports | Ships |
123
+ |---|---|
124
+ | `@vinaverse/react-native` | 14.9 kB |
125
+ | `/launcher` and `/ask`, no chat screen | 2.9 kB |
126
+ | `/launcher`, `/ask` and `/chat` (a chat screen anywhere) | 15.1 kB |
127
+
128
+ - **The bundle** shrinks only for an app that never imports `/chat`. An app with a chat screen ships the whole kit
129
+ whichever way it imports it; the separate entries add about 0.1 kB.
130
+ - **Start-up** is where an app with a chat screen gains: a screen that imports only `/launcher` runs the kit's 2.5 kB
131
+ of launcher code when it loads, not all 15 kB (with `@vinaverse/react-native`, using the launcher loads every part).
132
+ Inline requires (`inlineRequires`) defer a module until its first use, but they do not split the kit's own entry:
133
+ only the per-part imports do.
134
+ - **Both** need the chat screen loaded lazily (`React.lazy`, or Expo Router's async routes). On iOS and Android a
135
+ production Metro bundle is still one file, so lazy loading defers when the chat's code runs, never whether it ships;
136
+ on the web, async routes put it in a bundle of its own.
137
+
138
+ Loading the chat screen lazily. On the web, Expo Router's async routes (`"asyncRoutes"` in the `expo-router` plugin's
139
+ options in `app.json`, e.g. `{ "web": true, "default": "development" }`) put each route's code in a bundle of its own,
140
+ loaded the first time it is visited. That setting makes routes async on iOS and Android in development only, so a
141
+ production iOS or Android build gets no deferral from it: there, `React.lazy` is what defers the chat:
142
+
143
+ ```tsx
144
+ import { lazy, Suspense } from 'react';
145
+ import { AgentLauncher, AgentRuntimeProvider } from '@vinaverse/react-native/launcher'; // the tabs: 2.5 kB of the kit
146
+
147
+ // Only this file imports /chat, and only when the screen is first drawn.
148
+ const ChatScreen = lazy(() => import('./ChatScreen')); // ChatScreen.tsx: import { AgentChat } from '@vinaverse/react-native/chat'
149
+
150
+ export function Chat() {
151
+ return (
152
+ <Suspense fallback={null}>
153
+ <ChatScreen />
154
+ </Suspense>
155
+ );
156
+ }
157
+ ```
158
+
159
+ What is lost without it: a screen that imports `/chat` statically, or anything that does, loads and runs the whole chat
160
+ (about 13 kB of the kit, its cards and list) when that screen's module first runs; with inline requires, when it is
161
+ first used. Nothing breaks either way, and the bundle is the same on iOS and Android.
162
+
163
+ Metro resolves an ES `import` to the package's ES module build and a `require` to its CommonJS build: import the kit
164
+ with `import` statements throughout (never a `require` beside them), so every part comes from one build. With tree
165
+ shaking (Expo's production tree shaking, webpack, Rollup, esbuild) either way of importing costs the same.
166
+
45
167
  ## Peer dependencies
46
168
 
47
169
  | Package | Range | Why |
package/dist/ask.cjs ADDED
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var chunk643GOUTG_cjs = require('./chunk-643GOUTG.cjs');
4
+ var chunkOWUKWVEZ_cjs = require('./chunk-OWUKWVEZ.cjs');
5
+ var agent = require('@vinaverse/react/agent');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "AskAboutRow", {
10
+ enumerable: true,
11
+ get: function () { return chunk643GOUTG_cjs.AskAboutRow; }
12
+ });
13
+ Object.defineProperty(exports, "ThemeProvider", {
14
+ enumerable: true,
15
+ get: function () { return chunkOWUKWVEZ_cjs.ThemeProvider; }
16
+ });
17
+ Object.defineProperty(exports, "useTheme", {
18
+ enumerable: true,
19
+ get: function () { return chunkOWUKWVEZ_cjs.useTheme; }
20
+ });
21
+ Object.defineProperty(exports, "AgentRuntimeProvider", {
22
+ enumerable: true,
23
+ get: function () { return agent.AgentRuntimeProvider; }
24
+ });
25
+ Object.defineProperty(exports, "greetedKey", {
26
+ enumerable: true,
27
+ get: function () { return agent.greetedKey; }
28
+ });
29
+ Object.defineProperty(exports, "useAgentConversation", {
30
+ enumerable: true,
31
+ get: function () { return agent.useAgentConversation; }
32
+ });
33
+ Object.defineProperty(exports, "useAgentFeatures", {
34
+ enumerable: true,
35
+ get: function () { return agent.useAgentFeatures; }
36
+ });
37
+ Object.defineProperty(exports, "useAgentLauncher", {
38
+ enumerable: true,
39
+ get: function () { return agent.useAgentLauncher; }
40
+ });
41
+ Object.defineProperty(exports, "useAgentName", {
42
+ enumerable: true,
43
+ get: function () { return agent.useAgentName; }
44
+ });
45
+ Object.defineProperty(exports, "useAgentProfile", {
46
+ enumerable: true,
47
+ get: function () { return agent.useAgentProfile; }
48
+ });
49
+ Object.defineProperty(exports, "useAgentRuntime", {
50
+ enumerable: true,
51
+ get: function () { return agent.useAgentRuntime; }
52
+ });
53
+ Object.defineProperty(exports, "useAgentStatus", {
54
+ enumerable: true,
55
+ get: function () { return agent.useAgentStatus; }
56
+ });
57
+ //# sourceMappingURL=ask.cjs.map
58
+ //# sourceMappingURL=ask.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ask.cjs","sourcesContent":[]}
package/dist/ask.d.cts ADDED
@@ -0,0 +1,25 @@
1
+ export { AgentRuntimeProvider, GreetingStorage, UseAgentConversation, UseAgentLauncher, greetedKey, useAgentConversation, useAgentFeatures, useAgentLauncher, useAgentName, useAgentProfile, useAgentRuntime, useAgentStatus } from '@vinaverse/react/agent';
2
+ import { CopyOverrides } from '@vinaverse/react';
3
+ import { ComponentType, ReactNode } from 'react';
4
+ import { a as ThemeOverrides, C as ColorSchemeSetting } from './theme-BhiEGv64.cjs';
5
+ export { T as Theme, b as ThemeProvider, u as useTheme } from './theme-BhiEGv64.cjs';
6
+ import '@vinaverse/tokens';
7
+
8
+ interface AskAboutRowProps {
9
+ /** "Ask Example Agent about Riley Sample". */
10
+ readonly title: string;
11
+ readonly body?: string;
12
+ readonly onPress: () => void;
13
+ /** The app's brand mark at the row's start; default the agent name's first letter. */
14
+ readonly Mark?: ComponentType<{
15
+ readonly size: number;
16
+ readonly color: string;
17
+ }>;
18
+ readonly locale?: string;
19
+ readonly copy?: CopyOverrides;
20
+ readonly theme?: ThemeOverrides;
21
+ readonly colorScheme?: ColorSchemeSetting;
22
+ }
23
+ declare function AskAboutRow(props: AskAboutRowProps): ReactNode;
24
+
25
+ export { AskAboutRow, type AskAboutRowProps, ColorSchemeSetting, ThemeOverrides };
package/dist/ask.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ export { AgentRuntimeProvider, GreetingStorage, UseAgentConversation, UseAgentLauncher, greetedKey, useAgentConversation, useAgentFeatures, useAgentLauncher, useAgentName, useAgentProfile, useAgentRuntime, useAgentStatus } from '@vinaverse/react/agent';
2
+ import { CopyOverrides } from '@vinaverse/react';
3
+ import { ComponentType, ReactNode } from 'react';
4
+ import { a as ThemeOverrides, C as ColorSchemeSetting } from './theme-BhiEGv64.js';
5
+ export { T as Theme, b as ThemeProvider, u as useTheme } from './theme-BhiEGv64.js';
6
+ import '@vinaverse/tokens';
7
+
8
+ interface AskAboutRowProps {
9
+ /** "Ask Example Agent about Riley Sample". */
10
+ readonly title: string;
11
+ readonly body?: string;
12
+ readonly onPress: () => void;
13
+ /** The app's brand mark at the row's start; default the agent name's first letter. */
14
+ readonly Mark?: ComponentType<{
15
+ readonly size: number;
16
+ readonly color: string;
17
+ }>;
18
+ readonly locale?: string;
19
+ readonly copy?: CopyOverrides;
20
+ readonly theme?: ThemeOverrides;
21
+ readonly colorScheme?: ColorSchemeSetting;
22
+ }
23
+ declare function AskAboutRow(props: AskAboutRowProps): ReactNode;
24
+
25
+ export { AskAboutRow, type AskAboutRowProps, ColorSchemeSetting, ThemeOverrides };
package/dist/ask.js ADDED
@@ -0,0 +1,5 @@
1
+ export { AskAboutRow } from './chunk-Y7P7DDHD.js';
2
+ export { ThemeProvider, useTheme } from './chunk-WKRCCPSN.js';
3
+ export { AgentRuntimeProvider, greetedKey, useAgentConversation, useAgentFeatures, useAgentLauncher, useAgentName, useAgentProfile, useAgentRuntime, useAgentStatus } from '@vinaverse/react/agent';
4
+ //# sourceMappingURL=ask.js.map
5
+ //# sourceMappingURL=ask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ask.js","sourcesContent":[]}
package/dist/chat.cjs ADDED
@@ -0,0 +1,266 @@
1
+ 'use strict';
2
+
3
+ var chunkH2Y2YW2Q_cjs = require('./chunk-H2Y2YW2Q.cjs');
4
+ var chunkPYPO6F7L_cjs = require('./chunk-PYPO6F7L.cjs');
5
+ var chunkOWUKWVEZ_cjs = require('./chunk-OWUKWVEZ.cjs');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "ActivityLine", {
10
+ enumerable: true,
11
+ get: function () { return chunkH2Y2YW2Q_cjs.ActivityLine; }
12
+ });
13
+ Object.defineProperty(exports, "AgentChat", {
14
+ enumerable: true,
15
+ get: function () { return chunkH2Y2YW2Q_cjs.AgentChat; }
16
+ });
17
+ Object.defineProperty(exports, "AgentFooter", {
18
+ enumerable: true,
19
+ get: function () { return chunkH2Y2YW2Q_cjs.AgentFooter; }
20
+ });
21
+ Object.defineProperty(exports, "AgentRuntimeProvider", {
22
+ enumerable: true,
23
+ get: function () { return chunkH2Y2YW2Q_cjs.AgentRuntimeProvider; }
24
+ });
25
+ Object.defineProperty(exports, "Avatar", {
26
+ enumerable: true,
27
+ get: function () { return chunkH2Y2YW2Q_cjs.Avatar; }
28
+ });
29
+ Object.defineProperty(exports, "Button", {
30
+ enumerable: true,
31
+ get: function () { return chunkH2Y2YW2Q_cjs.Button; }
32
+ });
33
+ Object.defineProperty(exports, "CardActions", {
34
+ enumerable: true,
35
+ get: function () { return chunkH2Y2YW2Q_cjs.CardActions; }
36
+ });
37
+ Object.defineProperty(exports, "CardCarousel", {
38
+ enumerable: true,
39
+ get: function () { return chunkH2Y2YW2Q_cjs.CardCarousel; }
40
+ });
41
+ Object.defineProperty(exports, "CardFrame", {
42
+ enumerable: true,
43
+ get: function () { return chunkH2Y2YW2Q_cjs.CardFrame; }
44
+ });
45
+ Object.defineProperty(exports, "CardView", {
46
+ enumerable: true,
47
+ get: function () { return chunkH2Y2YW2Q_cjs.CardView; }
48
+ });
49
+ Object.defineProperty(exports, "ChatHeader", {
50
+ enumerable: true,
51
+ get: function () { return chunkH2Y2YW2Q_cjs.ChatHeader; }
52
+ });
53
+ Object.defineProperty(exports, "ChatSkeleton", {
54
+ enumerable: true,
55
+ get: function () { return chunkH2Y2YW2Q_cjs.ChatSkeleton; }
56
+ });
57
+ Object.defineProperty(exports, "Composer", {
58
+ enumerable: true,
59
+ get: function () { return chunkH2Y2YW2Q_cjs.Composer; }
60
+ });
61
+ Object.defineProperty(exports, "DefaultBubble", {
62
+ enumerable: true,
63
+ get: function () { return chunkH2Y2YW2Q_cjs.DefaultBubble; }
64
+ });
65
+ Object.defineProperty(exports, "DefaultComposer", {
66
+ enumerable: true,
67
+ get: function () { return chunkH2Y2YW2Q_cjs.DefaultComposer; }
68
+ });
69
+ Object.defineProperty(exports, "DefaultEnded", {
70
+ enumerable: true,
71
+ get: function () { return chunkH2Y2YW2Q_cjs.DefaultEnded; }
72
+ });
73
+ Object.defineProperty(exports, "DefaultHeader", {
74
+ enumerable: true,
75
+ get: function () { return chunkH2Y2YW2Q_cjs.DefaultHeader; }
76
+ });
77
+ Object.defineProperty(exports, "DefaultTurnFailed", {
78
+ enumerable: true,
79
+ get: function () { return chunkH2Y2YW2Q_cjs.DefaultTurnFailed; }
80
+ });
81
+ Object.defineProperty(exports, "DefaultUnavailable", {
82
+ enumerable: true,
83
+ get: function () { return chunkH2Y2YW2Q_cjs.DefaultUnavailable; }
84
+ });
85
+ Object.defineProperty(exports, "DefaultUnavailableScreen", {
86
+ enumerable: true,
87
+ get: function () { return chunkH2Y2YW2Q_cjs.DefaultUnavailableScreen; }
88
+ });
89
+ Object.defineProperty(exports, "DefaultUnreachable", {
90
+ enumerable: true,
91
+ get: function () { return chunkH2Y2YW2Q_cjs.DefaultUnreachable; }
92
+ });
93
+ Object.defineProperty(exports, "DisclosureBar", {
94
+ enumerable: true,
95
+ get: function () { return chunkH2Y2YW2Q_cjs.DisclosureBar; }
96
+ });
97
+ Object.defineProperty(exports, "FailureActionButton", {
98
+ enumerable: true,
99
+ get: function () { return chunkH2Y2YW2Q_cjs.FailureActionButton; }
100
+ });
101
+ Object.defineProperty(exports, "InfoCard", {
102
+ enumerable: true,
103
+ get: function () { return chunkH2Y2YW2Q_cjs.InfoCard; }
104
+ });
105
+ Object.defineProperty(exports, "LinksCard", {
106
+ enumerable: true,
107
+ get: function () { return chunkH2Y2YW2Q_cjs.LinksCard; }
108
+ });
109
+ Object.defineProperty(exports, "ListingCard", {
110
+ enumerable: true,
111
+ get: function () { return chunkH2Y2YW2Q_cjs.ListingCard; }
112
+ });
113
+ Object.defineProperty(exports, "MessageBubble", {
114
+ enumerable: true,
115
+ get: function () { return chunkH2Y2YW2Q_cjs.MessageBubble; }
116
+ });
117
+ Object.defineProperty(exports, "MessageList", {
118
+ enumerable: true,
119
+ get: function () { return chunkH2Y2YW2Q_cjs.MessageList; }
120
+ });
121
+ Object.defineProperty(exports, "NextStepCard", {
122
+ enumerable: true,
123
+ get: function () { return chunkH2Y2YW2Q_cjs.NextStepCard; }
124
+ });
125
+ Object.defineProperty(exports, "ProposalCard", {
126
+ enumerable: true,
127
+ get: function () { return chunkH2Y2YW2Q_cjs.ProposalCard; }
128
+ });
129
+ Object.defineProperty(exports, "QuestionCard", {
130
+ enumerable: true,
131
+ get: function () { return chunkH2Y2YW2Q_cjs.QuestionCard; }
132
+ });
133
+ Object.defineProperty(exports, "Row", {
134
+ enumerable: true,
135
+ get: function () { return chunkH2Y2YW2Q_cjs.Row; }
136
+ });
137
+ Object.defineProperty(exports, "StatusBanner", {
138
+ enumerable: true,
139
+ get: function () { return chunkH2Y2YW2Q_cjs.StatusBanner; }
140
+ });
141
+ Object.defineProperty(exports, "StreamingBubble", {
142
+ enumerable: true,
143
+ get: function () { return chunkH2Y2YW2Q_cjs.StreamingBubble; }
144
+ });
145
+ Object.defineProperty(exports, "SystemRow", {
146
+ enumerable: true,
147
+ get: function () { return chunkH2Y2YW2Q_cjs.SystemRow; }
148
+ });
149
+ Object.defineProperty(exports, "TimeSlotsCard", {
150
+ enumerable: true,
151
+ get: function () { return chunkH2Y2YW2Q_cjs.TimeSlotsCard; }
152
+ });
153
+ Object.defineProperty(exports, "VinaverseChat", {
154
+ enumerable: true,
155
+ get: function () { return chunkH2Y2YW2Q_cjs.VinaverseChat; }
156
+ });
157
+ Object.defineProperty(exports, "VinaverseChatProvider", {
158
+ enumerable: true,
159
+ get: function () { return chunkH2Y2YW2Q_cjs.VinaverseChatProvider; }
160
+ });
161
+ Object.defineProperty(exports, "Welcome", {
162
+ enumerable: true,
163
+ get: function () { return chunkH2Y2YW2Q_cjs.Welcome; }
164
+ });
165
+ Object.defineProperty(exports, "allowedImage", {
166
+ enumerable: true,
167
+ get: function () { return chunkH2Y2YW2Q_cjs.allowedImage; }
168
+ });
169
+ Object.defineProperty(exports, "answerText", {
170
+ enumerable: true,
171
+ get: function () { return chunkH2Y2YW2Q_cjs.answerText; }
172
+ });
173
+ Object.defineProperty(exports, "carousels", {
174
+ enumerable: true,
175
+ get: function () { return chunkH2Y2YW2Q_cjs.carousels; }
176
+ });
177
+ Object.defineProperty(exports, "defaultCard", {
178
+ enumerable: true,
179
+ get: function () { return chunkH2Y2YW2Q_cjs.defaultCard; }
180
+ });
181
+ Object.defineProperty(exports, "fieldText", {
182
+ enumerable: true,
183
+ get: function () { return chunkH2Y2YW2Q_cjs.fieldText; }
184
+ });
185
+ Object.defineProperty(exports, "greetedKey", {
186
+ enumerable: true,
187
+ get: function () { return chunkH2Y2YW2Q_cjs.greetedKey; }
188
+ });
189
+ Object.defineProperty(exports, "itemType", {
190
+ enumerable: true,
191
+ get: function () { return chunkH2Y2YW2Q_cjs.itemType; }
192
+ });
193
+ Object.defineProperty(exports, "monogram", {
194
+ enumerable: true,
195
+ get: function () { return chunkH2Y2YW2Q_cjs.monogram; }
196
+ });
197
+ Object.defineProperty(exports, "newestWholeReply", {
198
+ enumerable: true,
199
+ get: function () { return chunkH2Y2YW2Q_cjs.newestWholeReply; }
200
+ });
201
+ Object.defineProperty(exports, "ratingText", {
202
+ enumerable: true,
203
+ get: function () { return chunkH2Y2YW2Q_cjs.ratingText; }
204
+ });
205
+ Object.defineProperty(exports, "useAgentConversation", {
206
+ enumerable: true,
207
+ get: function () { return chunkH2Y2YW2Q_cjs.useAgentConversation; }
208
+ });
209
+ Object.defineProperty(exports, "useAgentFeatures", {
210
+ enumerable: true,
211
+ get: function () { return chunkH2Y2YW2Q_cjs.useAgentFeatures; }
212
+ });
213
+ Object.defineProperty(exports, "useAgentLauncher", {
214
+ enumerable: true,
215
+ get: function () { return chunkH2Y2YW2Q_cjs.useAgentLauncher; }
216
+ });
217
+ Object.defineProperty(exports, "useAgentName", {
218
+ enumerable: true,
219
+ get: function () { return chunkH2Y2YW2Q_cjs.useAgentName; }
220
+ });
221
+ Object.defineProperty(exports, "useAgentProfile", {
222
+ enumerable: true,
223
+ get: function () { return chunkH2Y2YW2Q_cjs.useAgentProfile; }
224
+ });
225
+ Object.defineProperty(exports, "useAgentRuntime", {
226
+ enumerable: true,
227
+ get: function () { return chunkH2Y2YW2Q_cjs.useAgentRuntime; }
228
+ });
229
+ Object.defineProperty(exports, "useAgentStatus", {
230
+ enumerable: true,
231
+ get: function () { return chunkH2Y2YW2Q_cjs.useAgentStatus; }
232
+ });
233
+ Object.defineProperty(exports, "useChat", {
234
+ enumerable: true,
235
+ get: function () { return chunkH2Y2YW2Q_cjs.useChat; }
236
+ });
237
+ Object.defineProperty(exports, "announce", {
238
+ enumerable: true,
239
+ get: function () { return chunkPYPO6F7L_cjs.announce; }
240
+ });
241
+ Object.defineProperty(exports, "useNativeLifecycle", {
242
+ enumerable: true,
243
+ get: function () { return chunkPYPO6F7L_cjs.useNativeLifecycle; }
244
+ });
245
+ Object.defineProperty(exports, "useReducedMotion", {
246
+ enumerable: true,
247
+ get: function () { return chunkPYPO6F7L_cjs.useReducedMotion; }
248
+ });
249
+ Object.defineProperty(exports, "ThemeProvider", {
250
+ enumerable: true,
251
+ get: function () { return chunkOWUKWVEZ_cjs.ThemeProvider; }
252
+ });
253
+ Object.defineProperty(exports, "createTheme", {
254
+ enumerable: true,
255
+ get: function () { return chunkOWUKWVEZ_cjs.createTheme; }
256
+ });
257
+ Object.defineProperty(exports, "themeProblems", {
258
+ enumerable: true,
259
+ get: function () { return chunkOWUKWVEZ_cjs.themeProblems; }
260
+ });
261
+ Object.defineProperty(exports, "useTheme", {
262
+ enumerable: true,
263
+ get: function () { return chunkOWUKWVEZ_cjs.useTheme; }
264
+ });
265
+ //# sourceMappingURL=chat.cjs.map
266
+ //# sourceMappingURL=chat.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chat.cjs"}