@vinaverse/react-native 0.1.0-alpha.3 → 0.1.0-alpha.4
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 +32 -2
- package/dist/index.cjs +342 -81
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +110 -64
- package/dist/index.d.ts +110 -64
- package/dist/index.js +336 -83
- package/dist/index.js.map +1 -1
- package/package.json +37 -5
package/dist/index.d.cts
CHANGED
|
@@ -1,70 +1,10 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ComponentType, ReactElement, ReactNode, RefObject } from 'react';
|
|
3
|
+
import { CardItem, MessageItem, Welcome as Welcome$1, TimelineItem, HeldCard, Question, SystemItem, ProposalOutcome, ConversationStore } from '@vinaverse/client/conversation';
|
|
4
4
|
import { CopyOverrides } from '@vinaverse/react';
|
|
5
5
|
import { ImageProps, StyleProp, ViewStyle } from 'react-native';
|
|
6
6
|
import { ColorScheme, Colors, font, space, radius, motion, size } from '@vinaverse/tokens';
|
|
7
7
|
|
|
8
|
-
declare function CardFrame(props: {
|
|
9
|
-
readonly label: string;
|
|
10
|
-
readonly restored?: boolean;
|
|
11
|
-
readonly children?: ReactNode;
|
|
12
|
-
readonly testID?: string;
|
|
13
|
-
}): react.JSX.Element;
|
|
14
|
-
|
|
15
|
-
interface CardProps {
|
|
16
|
-
readonly card: HeldCard;
|
|
17
|
-
/** A proposal being decided: draw its buttons busy. */
|
|
18
|
-
readonly busy: boolean;
|
|
19
|
-
/** Restored after a restart: draw it as it was, taking no answer or action. */
|
|
20
|
-
readonly restored: boolean;
|
|
21
|
-
/** The kit's own renderer for this kind, to wrap rather than rewrite. */
|
|
22
|
-
readonly Default: ComponentType<Omit<CardProps, 'Default'>>;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** The kit's own renderer for a kind. */
|
|
26
|
-
declare function defaultCard(kind: string): ComponentType<Omit<CardProps, 'Default'>>;
|
|
27
|
-
declare const CardView: react.NamedExoticComponent<{
|
|
28
|
-
readonly item: CardItem;
|
|
29
|
-
}>;
|
|
30
|
-
|
|
31
|
-
declare function InfoCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
32
|
-
|
|
33
|
-
declare function NextStepCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
34
|
-
|
|
35
|
-
/** A field's value as text, by its type (`text`, `list`, `time_range`, `address`, `money_cents`). */
|
|
36
|
-
declare function fieldText(type: string, value: unknown, locale: string | undefined, timeZone: string | undefined): string;
|
|
37
|
-
declare function ProposalCard(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
38
|
-
|
|
39
|
-
declare function QuestionCard(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
40
|
-
/** A recorded answer, in words. */
|
|
41
|
-
declare function answerText(question: Question, locale: string | undefined, otherLabel: string): string | null;
|
|
42
|
-
|
|
43
|
-
declare function TimeSlotsCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
44
|
-
|
|
45
|
-
declare const ActivityLine: react.NamedExoticComponent<object>;
|
|
46
|
-
|
|
47
|
-
declare const Avatar: react.NamedExoticComponent<{
|
|
48
|
-
readonly name: string;
|
|
49
|
-
readonly uri: string | null;
|
|
50
|
-
readonly person?: boolean;
|
|
51
|
-
}>;
|
|
52
|
-
|
|
53
|
-
interface ButtonProps {
|
|
54
|
-
readonly label: string;
|
|
55
|
-
readonly onPress: () => void;
|
|
56
|
-
readonly variant?: 'primary' | 'secondary' | 'text';
|
|
57
|
-
readonly disabled?: boolean;
|
|
58
|
-
readonly busy?: boolean;
|
|
59
|
-
/** A role other than a button: `radio` and `checkbox` for choices. */
|
|
60
|
-
readonly role?: 'button' | 'radio' | 'checkbox' | 'link';
|
|
61
|
-
readonly selected?: boolean;
|
|
62
|
-
readonly hint?: string;
|
|
63
|
-
readonly children?: ReactNode;
|
|
64
|
-
readonly testID?: string;
|
|
65
|
-
}
|
|
66
|
-
declare const Button: react.NamedExoticComponent<ButtonProps>;
|
|
67
|
-
|
|
68
8
|
interface HeaderProps {
|
|
69
9
|
readonly name: string;
|
|
70
10
|
readonly avatarUrl: string | null;
|
|
@@ -87,6 +27,14 @@ interface ComposerProps {
|
|
|
87
27
|
}
|
|
88
28
|
interface EmptyStateProps {
|
|
89
29
|
readonly agentName: string;
|
|
30
|
+
/** The tenant's greeting and chips for the session's mode (`Session.welcome`), or null. */
|
|
31
|
+
readonly welcome: Welcome$1 | null;
|
|
32
|
+
/** Sends a chip's `message` as the person's own text. */
|
|
33
|
+
readonly onChip: (message: string) => void;
|
|
34
|
+
}
|
|
35
|
+
/** `components.CardGroup`: the cards one turn drew together with `group.layout: carousel`, in order. */
|
|
36
|
+
interface CardGroupProps {
|
|
37
|
+
readonly items: readonly CardItem[];
|
|
90
38
|
}
|
|
91
39
|
/** The props the kit gives its list: FlashList's, so FlashList or LegendList take them as they are. */
|
|
92
40
|
interface ListProps {
|
|
@@ -132,6 +80,78 @@ interface FailureAction {
|
|
|
132
80
|
readonly onPress: (state: FailureState) => void;
|
|
133
81
|
}
|
|
134
82
|
|
|
83
|
+
declare function CardCarousel(props: CardGroupProps): react.JSX.Element;
|
|
84
|
+
|
|
85
|
+
declare function CardFrame(props: {
|
|
86
|
+
readonly label: string;
|
|
87
|
+
readonly restored?: boolean;
|
|
88
|
+
readonly children?: ReactNode;
|
|
89
|
+
readonly testID?: string;
|
|
90
|
+
}): react.JSX.Element;
|
|
91
|
+
/** A rating in millionths as the locale writes it, one decimal: 4.8, or 4,8 in Spanish and Portuguese. */
|
|
92
|
+
declare function ratingText(valuePpm: number, locale: string | undefined): string;
|
|
93
|
+
|
|
94
|
+
interface CardProps {
|
|
95
|
+
readonly card: HeldCard;
|
|
96
|
+
/** A proposal being decided: draw its buttons busy. */
|
|
97
|
+
readonly busy: boolean;
|
|
98
|
+
/** Restored after a restart: draw it as it was, taking no answer or action. */
|
|
99
|
+
readonly restored: boolean;
|
|
100
|
+
/** The kit's own renderer for this kind, to wrap rather than rewrite. */
|
|
101
|
+
readonly Default: ComponentType<Omit<CardProps, 'Default'>>;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** The kit's own renderer for a kind. */
|
|
105
|
+
declare function defaultCard(kind: string): ComponentType<Omit<CardProps, 'Default'>>;
|
|
106
|
+
declare const CardView: react.NamedExoticComponent<{
|
|
107
|
+
readonly item: CardItem;
|
|
108
|
+
}>;
|
|
109
|
+
|
|
110
|
+
declare function InfoCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
111
|
+
/** A card's actions: a link that passes the deep-link rule opens the tenant's page, any other goes to the session. */
|
|
112
|
+
declare function CardActions(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
113
|
+
|
|
114
|
+
declare function LinksCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
115
|
+
|
|
116
|
+
declare function ListingCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
117
|
+
/** The first letters of the first two words: "Bell's Barber Lounge" is "BB". */
|
|
118
|
+
declare function monogram(title: string): string;
|
|
119
|
+
|
|
120
|
+
declare function NextStepCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
121
|
+
|
|
122
|
+
/** A field's value as text, by its type (`text`, `list`, `time_range`, `address`, `money_cents`). */
|
|
123
|
+
declare function fieldText(type: string, value: unknown, locale: string | undefined, timeZone: string | undefined): string;
|
|
124
|
+
declare function ProposalCard(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
125
|
+
|
|
126
|
+
declare function QuestionCard(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
127
|
+
/** A recorded answer, in words. */
|
|
128
|
+
declare function answerText(question: Question, locale: string | undefined, otherLabel: string): string | null;
|
|
129
|
+
|
|
130
|
+
declare function TimeSlotsCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
131
|
+
|
|
132
|
+
declare const ActivityLine: react.NamedExoticComponent<object>;
|
|
133
|
+
|
|
134
|
+
declare const Avatar: react.NamedExoticComponent<{
|
|
135
|
+
readonly name: string;
|
|
136
|
+
readonly uri: string | null;
|
|
137
|
+
readonly person?: boolean;
|
|
138
|
+
}>;
|
|
139
|
+
|
|
140
|
+
interface ButtonProps {
|
|
141
|
+
readonly label: string;
|
|
142
|
+
readonly onPress: () => void;
|
|
143
|
+
readonly variant?: 'primary' | 'secondary' | 'text';
|
|
144
|
+
readonly disabled?: boolean;
|
|
145
|
+
readonly busy?: boolean;
|
|
146
|
+
/** A role other than a button: `radio` and `checkbox` for choices. */
|
|
147
|
+
readonly role?: 'button' | 'radio' | 'checkbox' | 'link';
|
|
148
|
+
readonly selected?: boolean;
|
|
149
|
+
readonly hint?: string;
|
|
150
|
+
readonly children?: ReactNode;
|
|
151
|
+
readonly testID?: string;
|
|
152
|
+
}
|
|
153
|
+
declare const Button: react.NamedExoticComponent<ButtonProps>;
|
|
154
|
+
|
|
135
155
|
declare function DefaultHeader(props: Omit<HeaderProps, 'Default'>): react.JSX.Element;
|
|
136
156
|
declare const ChatHeader: react.NamedExoticComponent<object>;
|
|
137
157
|
|
|
@@ -163,9 +183,22 @@ declare const StreamingBubble: react.NamedExoticComponent<{
|
|
|
163
183
|
|
|
164
184
|
/** Rows of one kind recycle together. */
|
|
165
185
|
declare function itemType(item: TimelineItem): string;
|
|
186
|
+
/**
|
|
187
|
+
* Runs of two or more consecutive cards with one carousel group (`group.layout: carousel`, the same `group.id`): by
|
|
188
|
+
* the first card's key, and the keys of the cards the run draws after it. A run equal to the previous one is the
|
|
189
|
+
* same array, so its row does not render again.
|
|
190
|
+
*/
|
|
191
|
+
declare function carousels(items: readonly TimelineItem[], previous: ReadonlyMap<string, readonly CardItem[]>): {
|
|
192
|
+
runs: Map<string, readonly CardItem[]>;
|
|
193
|
+
inside: Set<string>;
|
|
194
|
+
};
|
|
166
195
|
declare const Row: react.NamedExoticComponent<{
|
|
167
196
|
readonly item: TimelineItem;
|
|
168
197
|
readonly showAuthor: boolean;
|
|
198
|
+
/** The carousel this card starts (`components.CardGroup`). */
|
|
199
|
+
readonly run?: readonly CardItem[] | undefined;
|
|
200
|
+
/** A card a carousel earlier in the list draws. */
|
|
201
|
+
readonly inside?: boolean;
|
|
169
202
|
}>;
|
|
170
203
|
declare const MessageList: react.NamedExoticComponent<object>;
|
|
171
204
|
|
|
@@ -191,7 +224,10 @@ interface ChatHandlers {
|
|
|
191
224
|
* happened (`confirmed`, `declined`, `failed`, or `expired` when it had expired). The kit reports it to the session.
|
|
192
225
|
*/
|
|
193
226
|
readonly onProposal?: (card: HeldCard, decision: ProposalDecision) => Promise<ProposalOutcome>;
|
|
194
|
-
/**
|
|
227
|
+
/**
|
|
228
|
+
* Open a card's link in your app: a deep link that already passed the deep-link rule (route by the page it names),
|
|
229
|
+
* or a `links` card's https page (your in-app browser; without this handler the system opens it).
|
|
230
|
+
*/
|
|
195
231
|
readonly onOpenLink?: (link: string, card: HeldCard) => void;
|
|
196
232
|
/** A card action without a link (`show_times`, …): sent to the session; this tells your app too. */
|
|
197
233
|
readonly onCardAction?: (card: HeldCard, action: string) => void;
|
|
@@ -220,6 +256,11 @@ interface ChatSlots {
|
|
|
220
256
|
readonly Error?: ComponentType<FailureProps>;
|
|
221
257
|
/** No session to talk to: replaces the "Couldn't connect." banner. */
|
|
222
258
|
readonly Unavailable?: ComponentType<FailureProps>;
|
|
259
|
+
/**
|
|
260
|
+
* Draws a turn's cards that ask for a carousel (`group.layout: carousel`) in one row: the kit's `CardCarousel`, or
|
|
261
|
+
* yours. Without it they draw one under another. Opt-in, so an app that never draws a carousel does not ship one.
|
|
262
|
+
*/
|
|
263
|
+
readonly CardGroup?: ComponentType<CardGroupProps>;
|
|
223
264
|
/** Card renderers by kind (`professional`, `proposal`, …). */
|
|
224
265
|
readonly cards?: Readonly<Partial<Record<string, ComponentType<CardProps>>>>;
|
|
225
266
|
}
|
|
@@ -300,6 +341,11 @@ declare function VinaverseChatProvider(props: Omit<VinaverseChatProps, 'hideHead
|
|
|
300
341
|
}): ReactNode;
|
|
301
342
|
declare function VinaverseChat(props: VinaverseChatProps): ReactNode;
|
|
302
343
|
|
|
344
|
+
declare const Welcome: react.NamedExoticComponent<{
|
|
345
|
+
readonly welcome: Welcome$1;
|
|
346
|
+
readonly onChip: (message: string) => void;
|
|
347
|
+
}>;
|
|
348
|
+
|
|
303
349
|
/** The part of the conversation store the adapter drives. */
|
|
304
350
|
interface LifecycleTarget {
|
|
305
351
|
setForeground(foreground: boolean): void;
|
|
@@ -311,4 +357,4 @@ declare function useReducedMotion(): boolean;
|
|
|
311
357
|
/** Reads a line to a screen reader, without moving focus. */
|
|
312
358
|
declare function announce(text: string): void;
|
|
313
359
|
|
|
314
|
-
export { ActivityLine, Avatar, Button, type ButtonProps, CardFrame, type CardProps, CardView, type ChatHandlers, ChatHeader, ChatSkeleton, type ChatSlots, type ColorSchemeSetting, Composer, type ComposerProps, DefaultBubble, DefaultComposer, DefaultHeader, DefaultTurnFailed, DefaultUnavailable, DisclosureBar, type EmptyStateProps, type FailureAction, FailureActionButton, type FailureProps, type FailureState, type HeaderProps, InfoCard, type LifecycleTarget, type ListProps, MessageBubble, type MessageBubbleProps, MessageList, NextStepCard, ProposalCard, type ProposalDecision, QuestionCard, Row, StatusBanner, StreamingBubble, SystemRow, type Theme, type ThemeOverrides, ThemeProvider, TimeSlotsCard, VinaverseChat, type VinaverseChatProps, VinaverseChatProvider, announce, answerText, createTheme, defaultCard, fieldText, itemType, themeProblems, useChat, useNativeLifecycle, useReducedMotion, useTheme };
|
|
360
|
+
export { ActivityLine, Avatar, Button, type ButtonProps, CardActions, CardCarousel, CardFrame, type CardGroupProps, type CardProps, CardView, type ChatHandlers, ChatHeader, ChatSkeleton, type ChatSlots, type ColorSchemeSetting, Composer, type ComposerProps, DefaultBubble, DefaultComposer, DefaultHeader, DefaultTurnFailed, DefaultUnavailable, DisclosureBar, type EmptyStateProps, type FailureAction, FailureActionButton, type FailureProps, type FailureState, type HeaderProps, InfoCard, type LifecycleTarget, LinksCard, type ListProps, ListingCard, MessageBubble, type MessageBubbleProps, MessageList, NextStepCard, ProposalCard, type ProposalDecision, QuestionCard, Row, StatusBanner, StreamingBubble, SystemRow, type Theme, type ThemeOverrides, ThemeProvider, TimeSlotsCard, VinaverseChat, type VinaverseChatProps, VinaverseChatProvider, Welcome, announce, answerText, carousels, createTheme, defaultCard, fieldText, itemType, monogram, ratingText, themeProblems, useChat, useNativeLifecycle, useReducedMotion, useTheme };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,70 +1,10 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ComponentType, ReactElement, ReactNode, RefObject } from 'react';
|
|
3
|
+
import { CardItem, MessageItem, Welcome as Welcome$1, TimelineItem, HeldCard, Question, SystemItem, ProposalOutcome, ConversationStore } from '@vinaverse/client/conversation';
|
|
4
4
|
import { CopyOverrides } from '@vinaverse/react';
|
|
5
5
|
import { ImageProps, StyleProp, ViewStyle } from 'react-native';
|
|
6
6
|
import { ColorScheme, Colors, font, space, radius, motion, size } from '@vinaverse/tokens';
|
|
7
7
|
|
|
8
|
-
declare function CardFrame(props: {
|
|
9
|
-
readonly label: string;
|
|
10
|
-
readonly restored?: boolean;
|
|
11
|
-
readonly children?: ReactNode;
|
|
12
|
-
readonly testID?: string;
|
|
13
|
-
}): react.JSX.Element;
|
|
14
|
-
|
|
15
|
-
interface CardProps {
|
|
16
|
-
readonly card: HeldCard;
|
|
17
|
-
/** A proposal being decided: draw its buttons busy. */
|
|
18
|
-
readonly busy: boolean;
|
|
19
|
-
/** Restored after a restart: draw it as it was, taking no answer or action. */
|
|
20
|
-
readonly restored: boolean;
|
|
21
|
-
/** The kit's own renderer for this kind, to wrap rather than rewrite. */
|
|
22
|
-
readonly Default: ComponentType<Omit<CardProps, 'Default'>>;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** The kit's own renderer for a kind. */
|
|
26
|
-
declare function defaultCard(kind: string): ComponentType<Omit<CardProps, 'Default'>>;
|
|
27
|
-
declare const CardView: react.NamedExoticComponent<{
|
|
28
|
-
readonly item: CardItem;
|
|
29
|
-
}>;
|
|
30
|
-
|
|
31
|
-
declare function InfoCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
32
|
-
|
|
33
|
-
declare function NextStepCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
34
|
-
|
|
35
|
-
/** A field's value as text, by its type (`text`, `list`, `time_range`, `address`, `money_cents`). */
|
|
36
|
-
declare function fieldText(type: string, value: unknown, locale: string | undefined, timeZone: string | undefined): string;
|
|
37
|
-
declare function ProposalCard(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
38
|
-
|
|
39
|
-
declare function QuestionCard(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
40
|
-
/** A recorded answer, in words. */
|
|
41
|
-
declare function answerText(question: Question, locale: string | undefined, otherLabel: string): string | null;
|
|
42
|
-
|
|
43
|
-
declare function TimeSlotsCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
44
|
-
|
|
45
|
-
declare const ActivityLine: react.NamedExoticComponent<object>;
|
|
46
|
-
|
|
47
|
-
declare const Avatar: react.NamedExoticComponent<{
|
|
48
|
-
readonly name: string;
|
|
49
|
-
readonly uri: string | null;
|
|
50
|
-
readonly person?: boolean;
|
|
51
|
-
}>;
|
|
52
|
-
|
|
53
|
-
interface ButtonProps {
|
|
54
|
-
readonly label: string;
|
|
55
|
-
readonly onPress: () => void;
|
|
56
|
-
readonly variant?: 'primary' | 'secondary' | 'text';
|
|
57
|
-
readonly disabled?: boolean;
|
|
58
|
-
readonly busy?: boolean;
|
|
59
|
-
/** A role other than a button: `radio` and `checkbox` for choices. */
|
|
60
|
-
readonly role?: 'button' | 'radio' | 'checkbox' | 'link';
|
|
61
|
-
readonly selected?: boolean;
|
|
62
|
-
readonly hint?: string;
|
|
63
|
-
readonly children?: ReactNode;
|
|
64
|
-
readonly testID?: string;
|
|
65
|
-
}
|
|
66
|
-
declare const Button: react.NamedExoticComponent<ButtonProps>;
|
|
67
|
-
|
|
68
8
|
interface HeaderProps {
|
|
69
9
|
readonly name: string;
|
|
70
10
|
readonly avatarUrl: string | null;
|
|
@@ -87,6 +27,14 @@ interface ComposerProps {
|
|
|
87
27
|
}
|
|
88
28
|
interface EmptyStateProps {
|
|
89
29
|
readonly agentName: string;
|
|
30
|
+
/** The tenant's greeting and chips for the session's mode (`Session.welcome`), or null. */
|
|
31
|
+
readonly welcome: Welcome$1 | null;
|
|
32
|
+
/** Sends a chip's `message` as the person's own text. */
|
|
33
|
+
readonly onChip: (message: string) => void;
|
|
34
|
+
}
|
|
35
|
+
/** `components.CardGroup`: the cards one turn drew together with `group.layout: carousel`, in order. */
|
|
36
|
+
interface CardGroupProps {
|
|
37
|
+
readonly items: readonly CardItem[];
|
|
90
38
|
}
|
|
91
39
|
/** The props the kit gives its list: FlashList's, so FlashList or LegendList take them as they are. */
|
|
92
40
|
interface ListProps {
|
|
@@ -132,6 +80,78 @@ interface FailureAction {
|
|
|
132
80
|
readonly onPress: (state: FailureState) => void;
|
|
133
81
|
}
|
|
134
82
|
|
|
83
|
+
declare function CardCarousel(props: CardGroupProps): react.JSX.Element;
|
|
84
|
+
|
|
85
|
+
declare function CardFrame(props: {
|
|
86
|
+
readonly label: string;
|
|
87
|
+
readonly restored?: boolean;
|
|
88
|
+
readonly children?: ReactNode;
|
|
89
|
+
readonly testID?: string;
|
|
90
|
+
}): react.JSX.Element;
|
|
91
|
+
/** A rating in millionths as the locale writes it, one decimal: 4.8, or 4,8 in Spanish and Portuguese. */
|
|
92
|
+
declare function ratingText(valuePpm: number, locale: string | undefined): string;
|
|
93
|
+
|
|
94
|
+
interface CardProps {
|
|
95
|
+
readonly card: HeldCard;
|
|
96
|
+
/** A proposal being decided: draw its buttons busy. */
|
|
97
|
+
readonly busy: boolean;
|
|
98
|
+
/** Restored after a restart: draw it as it was, taking no answer or action. */
|
|
99
|
+
readonly restored: boolean;
|
|
100
|
+
/** The kit's own renderer for this kind, to wrap rather than rewrite. */
|
|
101
|
+
readonly Default: ComponentType<Omit<CardProps, 'Default'>>;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** The kit's own renderer for a kind. */
|
|
105
|
+
declare function defaultCard(kind: string): ComponentType<Omit<CardProps, 'Default'>>;
|
|
106
|
+
declare const CardView: react.NamedExoticComponent<{
|
|
107
|
+
readonly item: CardItem;
|
|
108
|
+
}>;
|
|
109
|
+
|
|
110
|
+
declare function InfoCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
111
|
+
/** A card's actions: a link that passes the deep-link rule opens the tenant's page, any other goes to the session. */
|
|
112
|
+
declare function CardActions(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
113
|
+
|
|
114
|
+
declare function LinksCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
115
|
+
|
|
116
|
+
declare function ListingCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
117
|
+
/** The first letters of the first two words: "Bell's Barber Lounge" is "BB". */
|
|
118
|
+
declare function monogram(title: string): string;
|
|
119
|
+
|
|
120
|
+
declare function NextStepCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
121
|
+
|
|
122
|
+
/** A field's value as text, by its type (`text`, `list`, `time_range`, `address`, `money_cents`). */
|
|
123
|
+
declare function fieldText(type: string, value: unknown, locale: string | undefined, timeZone: string | undefined): string;
|
|
124
|
+
declare function ProposalCard(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
125
|
+
|
|
126
|
+
declare function QuestionCard(props: Omit<CardProps, 'Default'>): react.JSX.Element | null;
|
|
127
|
+
/** A recorded answer, in words. */
|
|
128
|
+
declare function answerText(question: Question, locale: string | undefined, otherLabel: string): string | null;
|
|
129
|
+
|
|
130
|
+
declare function TimeSlotsCard(props: Omit<CardProps, 'Default'>): react.JSX.Element;
|
|
131
|
+
|
|
132
|
+
declare const ActivityLine: react.NamedExoticComponent<object>;
|
|
133
|
+
|
|
134
|
+
declare const Avatar: react.NamedExoticComponent<{
|
|
135
|
+
readonly name: string;
|
|
136
|
+
readonly uri: string | null;
|
|
137
|
+
readonly person?: boolean;
|
|
138
|
+
}>;
|
|
139
|
+
|
|
140
|
+
interface ButtonProps {
|
|
141
|
+
readonly label: string;
|
|
142
|
+
readonly onPress: () => void;
|
|
143
|
+
readonly variant?: 'primary' | 'secondary' | 'text';
|
|
144
|
+
readonly disabled?: boolean;
|
|
145
|
+
readonly busy?: boolean;
|
|
146
|
+
/** A role other than a button: `radio` and `checkbox` for choices. */
|
|
147
|
+
readonly role?: 'button' | 'radio' | 'checkbox' | 'link';
|
|
148
|
+
readonly selected?: boolean;
|
|
149
|
+
readonly hint?: string;
|
|
150
|
+
readonly children?: ReactNode;
|
|
151
|
+
readonly testID?: string;
|
|
152
|
+
}
|
|
153
|
+
declare const Button: react.NamedExoticComponent<ButtonProps>;
|
|
154
|
+
|
|
135
155
|
declare function DefaultHeader(props: Omit<HeaderProps, 'Default'>): react.JSX.Element;
|
|
136
156
|
declare const ChatHeader: react.NamedExoticComponent<object>;
|
|
137
157
|
|
|
@@ -163,9 +183,22 @@ declare const StreamingBubble: react.NamedExoticComponent<{
|
|
|
163
183
|
|
|
164
184
|
/** Rows of one kind recycle together. */
|
|
165
185
|
declare function itemType(item: TimelineItem): string;
|
|
186
|
+
/**
|
|
187
|
+
* Runs of two or more consecutive cards with one carousel group (`group.layout: carousel`, the same `group.id`): by
|
|
188
|
+
* the first card's key, and the keys of the cards the run draws after it. A run equal to the previous one is the
|
|
189
|
+
* same array, so its row does not render again.
|
|
190
|
+
*/
|
|
191
|
+
declare function carousels(items: readonly TimelineItem[], previous: ReadonlyMap<string, readonly CardItem[]>): {
|
|
192
|
+
runs: Map<string, readonly CardItem[]>;
|
|
193
|
+
inside: Set<string>;
|
|
194
|
+
};
|
|
166
195
|
declare const Row: react.NamedExoticComponent<{
|
|
167
196
|
readonly item: TimelineItem;
|
|
168
197
|
readonly showAuthor: boolean;
|
|
198
|
+
/** The carousel this card starts (`components.CardGroup`). */
|
|
199
|
+
readonly run?: readonly CardItem[] | undefined;
|
|
200
|
+
/** A card a carousel earlier in the list draws. */
|
|
201
|
+
readonly inside?: boolean;
|
|
169
202
|
}>;
|
|
170
203
|
declare const MessageList: react.NamedExoticComponent<object>;
|
|
171
204
|
|
|
@@ -191,7 +224,10 @@ interface ChatHandlers {
|
|
|
191
224
|
* happened (`confirmed`, `declined`, `failed`, or `expired` when it had expired). The kit reports it to the session.
|
|
192
225
|
*/
|
|
193
226
|
readonly onProposal?: (card: HeldCard, decision: ProposalDecision) => Promise<ProposalOutcome>;
|
|
194
|
-
/**
|
|
227
|
+
/**
|
|
228
|
+
* Open a card's link in your app: a deep link that already passed the deep-link rule (route by the page it names),
|
|
229
|
+
* or a `links` card's https page (your in-app browser; without this handler the system opens it).
|
|
230
|
+
*/
|
|
195
231
|
readonly onOpenLink?: (link: string, card: HeldCard) => void;
|
|
196
232
|
/** A card action without a link (`show_times`, …): sent to the session; this tells your app too. */
|
|
197
233
|
readonly onCardAction?: (card: HeldCard, action: string) => void;
|
|
@@ -220,6 +256,11 @@ interface ChatSlots {
|
|
|
220
256
|
readonly Error?: ComponentType<FailureProps>;
|
|
221
257
|
/** No session to talk to: replaces the "Couldn't connect." banner. */
|
|
222
258
|
readonly Unavailable?: ComponentType<FailureProps>;
|
|
259
|
+
/**
|
|
260
|
+
* Draws a turn's cards that ask for a carousel (`group.layout: carousel`) in one row: the kit's `CardCarousel`, or
|
|
261
|
+
* yours. Without it they draw one under another. Opt-in, so an app that never draws a carousel does not ship one.
|
|
262
|
+
*/
|
|
263
|
+
readonly CardGroup?: ComponentType<CardGroupProps>;
|
|
223
264
|
/** Card renderers by kind (`professional`, `proposal`, …). */
|
|
224
265
|
readonly cards?: Readonly<Partial<Record<string, ComponentType<CardProps>>>>;
|
|
225
266
|
}
|
|
@@ -300,6 +341,11 @@ declare function VinaverseChatProvider(props: Omit<VinaverseChatProps, 'hideHead
|
|
|
300
341
|
}): ReactNode;
|
|
301
342
|
declare function VinaverseChat(props: VinaverseChatProps): ReactNode;
|
|
302
343
|
|
|
344
|
+
declare const Welcome: react.NamedExoticComponent<{
|
|
345
|
+
readonly welcome: Welcome$1;
|
|
346
|
+
readonly onChip: (message: string) => void;
|
|
347
|
+
}>;
|
|
348
|
+
|
|
303
349
|
/** The part of the conversation store the adapter drives. */
|
|
304
350
|
interface LifecycleTarget {
|
|
305
351
|
setForeground(foreground: boolean): void;
|
|
@@ -311,4 +357,4 @@ declare function useReducedMotion(): boolean;
|
|
|
311
357
|
/** Reads a line to a screen reader, without moving focus. */
|
|
312
358
|
declare function announce(text: string): void;
|
|
313
359
|
|
|
314
|
-
export { ActivityLine, Avatar, Button, type ButtonProps, CardFrame, type CardProps, CardView, type ChatHandlers, ChatHeader, ChatSkeleton, type ChatSlots, type ColorSchemeSetting, Composer, type ComposerProps, DefaultBubble, DefaultComposer, DefaultHeader, DefaultTurnFailed, DefaultUnavailable, DisclosureBar, type EmptyStateProps, type FailureAction, FailureActionButton, type FailureProps, type FailureState, type HeaderProps, InfoCard, type LifecycleTarget, type ListProps, MessageBubble, type MessageBubbleProps, MessageList, NextStepCard, ProposalCard, type ProposalDecision, QuestionCard, Row, StatusBanner, StreamingBubble, SystemRow, type Theme, type ThemeOverrides, ThemeProvider, TimeSlotsCard, VinaverseChat, type VinaverseChatProps, VinaverseChatProvider, announce, answerText, createTheme, defaultCard, fieldText, itemType, themeProblems, useChat, useNativeLifecycle, useReducedMotion, useTheme };
|
|
360
|
+
export { ActivityLine, Avatar, Button, type ButtonProps, CardActions, CardCarousel, CardFrame, type CardGroupProps, type CardProps, CardView, type ChatHandlers, ChatHeader, ChatSkeleton, type ChatSlots, type ColorSchemeSetting, Composer, type ComposerProps, DefaultBubble, DefaultComposer, DefaultHeader, DefaultTurnFailed, DefaultUnavailable, DisclosureBar, type EmptyStateProps, type FailureAction, FailureActionButton, type FailureProps, type FailureState, type HeaderProps, InfoCard, type LifecycleTarget, LinksCard, type ListProps, ListingCard, MessageBubble, type MessageBubbleProps, MessageList, NextStepCard, ProposalCard, type ProposalDecision, QuestionCard, Row, StatusBanner, StreamingBubble, SystemRow, type Theme, type ThemeOverrides, ThemeProvider, TimeSlotsCard, VinaverseChat, type VinaverseChatProps, VinaverseChatProvider, Welcome, announce, answerText, carousels, createTheme, defaultCard, fieldText, itemType, monogram, ratingText, themeProblems, useChat, useNativeLifecycle, useReducedMotion, useTheme };
|