@fragments-sdk/ui 0.9.4 → 0.9.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.
- package/dist/assets/ui.css +443 -247
- package/dist/blocks/components/index.d.ts +0 -2
- package/dist/blocks/components/index.d.ts.map +1 -1
- package/dist/codeblock.cjs +187 -184
- package/dist/codeblock.cjs.map +1 -1
- package/dist/codeblock.js +183 -180
- package/dist/codeblock.js.map +1 -1
- package/dist/components/Box/Box.module.scss.cjs +73 -0
- package/dist/components/Box/Box.module.scss.cjs.map +1 -1
- package/dist/components/Box/Box.module.scss.js +73 -0
- package/dist/components/Box/Box.module.scss.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +6 -0
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +6 -0
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.js.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +20 -23
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +20 -23
- package/dist/components/CodeBlock/CodeBlock.module.scss.js.map +1 -1
- package/dist/components/CodeBlock/index.d.ts +11 -7
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +15 -15
- package/dist/components/Combobox/Combobox.module.scss.js +15 -15
- package/dist/components/DataTable/DataTable.module.scss.cjs +84 -0
- package/dist/components/DataTable/DataTable.module.scss.cjs.map +1 -0
- package/dist/components/DataTable/DataTable.module.scss.js +84 -0
- package/dist/components/DataTable/DataTable.module.scss.js.map +1 -0
- package/dist/components/DataTable/index.cjs +383 -0
- package/dist/components/DataTable/index.cjs.map +1 -0
- package/dist/components/DataTable/index.d.ts +78 -0
- package/dist/components/DataTable/index.d.ts.map +1 -0
- package/dist/components/DataTable/index.js +366 -0
- package/dist/components/DataTable/index.js.map +1 -0
- package/dist/components/Drawer/Drawer.module.scss.cjs +9 -0
- package/dist/components/Drawer/Drawer.module.scss.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.module.scss.js +9 -0
- package/dist/components/Drawer/Drawer.module.scss.js.map +1 -1
- package/dist/components/Image/Image.module.scss.cjs +12 -0
- package/dist/components/Image/Image.module.scss.cjs.map +1 -1
- package/dist/components/Image/Image.module.scss.js +12 -0
- package/dist/components/Image/Image.module.scss.js.map +1 -1
- package/dist/components/Link/Link.module.scss.cjs +3 -0
- package/dist/components/Link/Link.module.scss.cjs.map +1 -1
- package/dist/components/Link/Link.module.scss.js +3 -0
- package/dist/components/Link/Link.module.scss.js.map +1 -1
- package/dist/components/List/List.module.scss.cjs +5 -0
- package/dist/components/List/List.module.scss.cjs.map +1 -1
- package/dist/components/List/List.module.scss.js +5 -0
- package/dist/components/List/List.module.scss.js.map +1 -1
- package/dist/components/Loading/Loading.module.scss.cjs +5 -0
- package/dist/components/Loading/Loading.module.scss.cjs.map +1 -1
- package/dist/components/Loading/Loading.module.scss.js +5 -0
- package/dist/components/Loading/Loading.module.scss.js.map +1 -1
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Message/Message.module.scss.cjs +22 -16
- package/dist/components/Message/Message.module.scss.cjs.map +1 -1
- package/dist/components/Message/Message.module.scss.js +22 -16
- package/dist/components/Message/Message.module.scss.js.map +1 -1
- package/dist/components/Message/index.cjs +5 -3
- package/dist/components/Message/index.cjs.map +1 -1
- package/dist/components/Message/index.d.ts +5 -1
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +5 -3
- package/dist/components/Message/index.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +14 -0
- package/dist/components/Skeleton/Skeleton.module.scss.cjs.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.scss.js +14 -0
- package/dist/components/Skeleton/Skeleton.module.scss.js.map +1 -1
- package/dist/components/Stack/Stack.module.scss.cjs +14 -0
- package/dist/components/Stack/Stack.module.scss.cjs.map +1 -1
- package/dist/components/Stack/Stack.module.scss.js +14 -0
- package/dist/components/Stack/Stack.module.scss.js.map +1 -1
- package/dist/components/Table/Table.module.scss.cjs +21 -36
- package/dist/components/Table/Table.module.scss.cjs.map +1 -1
- package/dist/components/Table/Table.module.scss.js +21 -36
- package/dist/components/Table/Table.module.scss.js.map +1 -1
- package/dist/components/Table/index.d.ts +35 -55
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/Text/Text.module.scss.cjs +14 -0
- package/dist/components/Text/Text.module.scss.cjs.map +1 -1
- package/dist/components/Text/Text.module.scss.js +14 -0
- package/dist/components/Text/Text.module.scss.js.map +1 -1
- package/dist/components/Textarea/Textarea.module.scss.cjs +4 -0
- package/dist/components/Textarea/Textarea.module.scss.cjs.map +1 -1
- package/dist/components/Textarea/Textarea.module.scss.js +4 -0
- package/dist/components/Textarea/Textarea.module.scss.js.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +5 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +5 -0
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js.map +1 -1
- package/dist/index.cjs +119 -117
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/table.cjs +44 -262
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +47 -248
- package/dist/table.js.map +1 -1
- package/fragments.json +1 -1
- package/package.json +110 -118
- package/src/blocks/components/index.ts +0 -3
- package/src/components/CodeBlock/CodeBlock.module.scss +16 -34
- package/src/components/CodeBlock/index.tsx +351 -345
- package/src/components/Combobox/Combobox.module.scss +13 -9
- package/src/components/ConversationList/ConversationList.fragment.tsx +96 -129
- package/src/components/DataTable/DataTable.fragment.tsx +754 -0
- package/src/components/DataTable/DataTable.module.scss +300 -0
- package/src/components/DataTable/DataTable.test.tsx +224 -0
- package/src/components/DataTable/index.tsx +533 -0
- package/src/components/Message/Message.fragment.tsx +34 -0
- package/src/components/Message/Message.module.scss +11 -0
- package/src/components/Message/index.tsx +12 -3
- package/src/components/Table/Table.fragment.tsx +190 -175
- package/src/components/Table/Table.module.scss +15 -88
- package/src/components/Table/Table.test.tsx +184 -94
- package/src/components/Table/index.tsx +105 -374
- package/src/index.ts +15 -4
- package/src/tokens/_computed.scss +7 -6
- package/src/tokens/_density.scss +87 -47
- package/src/tokens/_variables.scss +46 -31
- package/dist/blocks/components/DataTable.d.ts +0 -19
- package/dist/blocks/components/DataTable.d.ts.map +0 -1
- package/src/blocks/components/DataTable.tsx +0 -124
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
1
|
+
@use "../../tokens/variables" as *;
|
|
2
|
+
@use "../../tokens/mixins" as *;
|
|
3
3
|
|
|
4
4
|
// Multi-select container — stacks input and chips vertically
|
|
5
5
|
.multiContainer {
|
|
@@ -129,6 +129,7 @@
|
|
|
129
129
|
cursor: pointer;
|
|
130
130
|
border-radius: 0 var(--fui-radius-md, $fui-radius-md) var(--fui-radius-md, $fui-radius-md) 0;
|
|
131
131
|
transition: color var(--fui-transition-fast, $fui-transition-fast);
|
|
132
|
+
margin-inline-end: 0.5rem;
|
|
132
133
|
|
|
133
134
|
&:hover {
|
|
134
135
|
color: var(--fui-text-primary, $fui-text-primary);
|
|
@@ -162,16 +163,16 @@
|
|
|
162
163
|
|
|
163
164
|
// Item height derived from text-base font + vertical padding
|
|
164
165
|
--_item-h: calc(
|
|
165
|
-
var(--fui-font-size-sm, #{$fui-font-size-sm}) *
|
|
166
|
-
|
|
166
|
+
var(--fui-font-size-sm, #{$fui-font-size-sm}) *
|
|
167
|
+
var(--fui-line-height-normal, #{$fui-line-height-normal}) +
|
|
168
|
+
var(--fui-space-2, #{$fui-space-2}) * 2
|
|
167
169
|
);
|
|
168
170
|
|
|
169
171
|
min-width: var(--anchor-width);
|
|
170
172
|
// Show N items + half-peek scroll hint (default 4.5 items)
|
|
171
173
|
// !important needed to override Base UI's inline max-height: 100%
|
|
172
174
|
max-height: calc(
|
|
173
|
-
var(--_item-h) * var(--fui-select-max-items, 4.5) +
|
|
174
|
-
var(--fui-space-1, #{$fui-space-1}) * 2
|
|
175
|
+
var(--_item-h) * var(--fui-select-max-items, 4.5) + var(--fui-space-1, #{$fui-space-1}) * 2
|
|
175
176
|
) !important;
|
|
176
177
|
overflow-y: auto !important;
|
|
177
178
|
padding: var(--fui-padding-item-xs, $fui-padding-item-xs);
|
|
@@ -206,7 +207,8 @@
|
|
|
206
207
|
align-items: center;
|
|
207
208
|
gap: var(--fui-space-2, $fui-space-2);
|
|
208
209
|
width: 100%;
|
|
209
|
-
padding: var(--fui-padding-item-xs, $fui-padding-item-xs)
|
|
210
|
+
padding: var(--fui-padding-item-xs, $fui-padding-item-xs)
|
|
211
|
+
var(--fui-padding-item-md, $fui-padding-item-md);
|
|
210
212
|
border-radius: var(--fui-radius-sm, $fui-radius-sm);
|
|
211
213
|
cursor: pointer;
|
|
212
214
|
outline: none;
|
|
@@ -252,7 +254,8 @@
|
|
|
252
254
|
display: flex;
|
|
253
255
|
align-items: center;
|
|
254
256
|
justify-content: center;
|
|
255
|
-
padding: var(--fui-padding-item-lg, $fui-padding-item-lg)
|
|
257
|
+
padding: var(--fui-padding-item-lg, $fui-padding-item-lg)
|
|
258
|
+
var(--fui-padding-item-md, $fui-padding-item-md);
|
|
256
259
|
color: var(--fui-text-tertiary, $fui-text-tertiary);
|
|
257
260
|
font-size: var(--fui-font-size-sm, $fui-font-size-sm);
|
|
258
261
|
}
|
|
@@ -268,7 +271,8 @@
|
|
|
268
271
|
|
|
269
272
|
// Group label
|
|
270
273
|
.groupLabel {
|
|
271
|
-
padding: var(--fui-padding-item-xs, $fui-padding-item-xs)
|
|
274
|
+
padding: var(--fui-padding-item-xs, $fui-padding-item-xs)
|
|
275
|
+
var(--fui-padding-item-md, $fui-padding-item-md);
|
|
272
276
|
font-size: var(--fui-font-size-xs, $fui-font-size-xs);
|
|
273
277
|
font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
|
|
274
278
|
color: var(--fui-text-tertiary, $fui-text-tertiary);
|
|
@@ -1,201 +1,168 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { defineFragment } from
|
|
3
|
-
import { ConversationList } from
|
|
4
|
-
import { Message } from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { defineFragment } from "@fragments-sdk/cli/core";
|
|
3
|
+
import { ConversationList } from ".";
|
|
4
|
+
import { Message } from "../Message";
|
|
5
5
|
|
|
6
6
|
export default defineFragment({
|
|
7
7
|
component: ConversationList,
|
|
8
8
|
|
|
9
9
|
meta: {
|
|
10
|
-
name:
|
|
11
|
-
description:
|
|
12
|
-
category:
|
|
13
|
-
status:
|
|
14
|
-
tags: [
|
|
10
|
+
name: "ConversationList",
|
|
11
|
+
description: "Scrollable message container with auto-scroll and history loading",
|
|
12
|
+
category: "ai",
|
|
13
|
+
status: "stable",
|
|
14
|
+
tags: ["conversation", "chat", "messages", "scroll", "ai", "list"],
|
|
15
15
|
},
|
|
16
16
|
|
|
17
17
|
usage: {
|
|
18
18
|
when: [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
"Building a chat interface with multiple messages",
|
|
20
|
+
"Need auto-scroll behavior when new messages arrive",
|
|
21
|
+
"Require infinite scroll for loading message history",
|
|
22
|
+
"Want date separators between message groups",
|
|
23
23
|
],
|
|
24
24
|
whenNot: [
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
"Simple list of items without chat context (use List)",
|
|
26
|
+
"Single message display (use Message directly)",
|
|
27
|
+
"Non-scrolling message layout",
|
|
28
28
|
],
|
|
29
29
|
guidelines: [
|
|
30
30
|
'Use autoScroll="smart" for best UX (only auto-scrolls when near bottom)',
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
"Implement onScrollTop for loading older messages",
|
|
32
|
+
"Provide an emptyState for new conversations",
|
|
33
|
+
"Use DateSeparator between messages from different days",
|
|
34
34
|
],
|
|
35
35
|
accessibility: [
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
"Uses proper ARIA roles for separators",
|
|
37
|
+
"Typing indicator has aria-label",
|
|
38
|
+
"Smooth scroll respects reduced motion preferences",
|
|
39
|
+
"Keyboard navigation works within scrollable container",
|
|
40
40
|
],
|
|
41
41
|
},
|
|
42
42
|
|
|
43
43
|
props: {
|
|
44
44
|
children: {
|
|
45
|
-
type:
|
|
46
|
-
description:
|
|
45
|
+
type: "node",
|
|
46
|
+
description: "Message components",
|
|
47
47
|
required: true,
|
|
48
48
|
},
|
|
49
49
|
autoScroll: {
|
|
50
|
-
type:
|
|
50
|
+
type: "union",
|
|
51
51
|
default: '"smart"',
|
|
52
|
-
description:
|
|
52
|
+
description:
|
|
53
|
+
'Auto-scroll behavior: true (always), false (never), or "smart" (only when near bottom)',
|
|
53
54
|
},
|
|
54
55
|
onScrollTop: {
|
|
55
|
-
type:
|
|
56
|
-
description:
|
|
56
|
+
type: "function",
|
|
57
|
+
description: "Callback when user scrolls to top (for loading history)",
|
|
57
58
|
},
|
|
58
59
|
loadingHistory: {
|
|
59
|
-
type:
|
|
60
|
-
default:
|
|
61
|
-
description:
|
|
60
|
+
type: "boolean",
|
|
61
|
+
default: "false",
|
|
62
|
+
description: "Show loading spinner at top when loading history",
|
|
62
63
|
},
|
|
63
64
|
emptyState: {
|
|
64
|
-
type:
|
|
65
|
-
description:
|
|
65
|
+
type: "node",
|
|
66
|
+
description: "Content to show when conversation is empty",
|
|
66
67
|
},
|
|
67
68
|
scrollTopThreshold: {
|
|
68
|
-
type:
|
|
69
|
-
default:
|
|
70
|
-
description:
|
|
69
|
+
type: "number",
|
|
70
|
+
default: "50",
|
|
71
|
+
description: "Pixels from top to trigger onScrollTop",
|
|
71
72
|
},
|
|
72
73
|
scrollBottomThreshold: {
|
|
73
|
-
type:
|
|
74
|
-
default:
|
|
75
|
-
description:
|
|
74
|
+
type: "number",
|
|
75
|
+
default: "100",
|
|
76
|
+
description: "Pixels from bottom for smart auto-scroll",
|
|
76
77
|
},
|
|
77
78
|
},
|
|
78
79
|
|
|
79
80
|
relations: [
|
|
80
81
|
{
|
|
81
|
-
component:
|
|
82
|
-
relationship:
|
|
83
|
-
note:
|
|
82
|
+
component: "Message",
|
|
83
|
+
relationship: "child",
|
|
84
|
+
note: "ConversationList contains Message components",
|
|
84
85
|
},
|
|
85
86
|
{
|
|
86
|
-
component:
|
|
87
|
-
relationship:
|
|
88
|
-
note:
|
|
87
|
+
component: "ThinkingIndicator",
|
|
88
|
+
relationship: "child",
|
|
89
|
+
note: "Show ThinkingIndicator at bottom while awaiting response",
|
|
89
90
|
},
|
|
90
91
|
{
|
|
91
|
-
component:
|
|
92
|
-
relationship:
|
|
93
|
-
note:
|
|
92
|
+
component: "Prompt",
|
|
93
|
+
relationship: "sibling",
|
|
94
|
+
note: "Typically paired with Prompt for input",
|
|
94
95
|
},
|
|
95
96
|
],
|
|
96
97
|
|
|
97
98
|
contract: {
|
|
98
99
|
propsSummary: [
|
|
99
|
-
|
|
100
|
+
"children: ReactNode - Message components",
|
|
100
101
|
'autoScroll: boolean | "smart" - scroll behavior (default: "smart")',
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
],
|
|
105
|
-
scenarioTags: [
|
|
106
|
-
'ui.chat',
|
|
107
|
-
'ui.conversation',
|
|
108
|
-
'ai.assistant',
|
|
109
|
-
'layout.scroll',
|
|
110
|
-
],
|
|
111
|
-
a11yRules: [
|
|
112
|
-
'A11Y_ARIA_ROLES',
|
|
113
|
-
'A11Y_MOTION_PREFERENCE',
|
|
102
|
+
"onScrollTop: () => void - callback for loading history",
|
|
103
|
+
"loadingHistory: boolean - show history loading spinner",
|
|
104
|
+
"emptyState: ReactNode - empty conversation content",
|
|
114
105
|
],
|
|
106
|
+
scenarioTags: ["ui.chat", "ui.conversation", "ai.assistant", "layout.scroll"],
|
|
107
|
+
a11yRules: ["A11Y_ARIA_ROLES", "A11Y_MOTION_PREFERENCE"],
|
|
115
108
|
bans: [],
|
|
116
109
|
},
|
|
117
110
|
|
|
118
111
|
variants: [
|
|
119
112
|
{
|
|
120
|
-
name:
|
|
121
|
-
description:
|
|
122
|
-
render: () => (
|
|
123
|
-
<div style={{ height: '300px', border: '1px solid #e4e4e7', borderRadius: '8px' }}>
|
|
124
|
-
<ConversationList>
|
|
125
|
-
<Message role="user">
|
|
126
|
-
<Message.Content>Hello!</Message.Content>
|
|
127
|
-
</Message>
|
|
128
|
-
<Message role="assistant">
|
|
129
|
-
<Message.Content>Hi there! How can I help you today?</Message.Content>
|
|
130
|
-
</Message>
|
|
131
|
-
<Message role="user">
|
|
132
|
-
<Message.Content>Can you explain React hooks?</Message.Content>
|
|
133
|
-
</Message>
|
|
134
|
-
</ConversationList>
|
|
135
|
-
</div>
|
|
136
|
-
),
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
name: 'With Date Separators',
|
|
140
|
-
description: 'Messages grouped by date',
|
|
113
|
+
name: "Basic",
|
|
114
|
+
description: "Simple conversation with messages",
|
|
141
115
|
render: () => (
|
|
142
|
-
<
|
|
143
|
-
<
|
|
144
|
-
<
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
</div>
|
|
116
|
+
<ConversationList>
|
|
117
|
+
<Message role="user">
|
|
118
|
+
<Message.Content>Hello!</Message.Content>
|
|
119
|
+
</Message>
|
|
120
|
+
<Message role="assistant">
|
|
121
|
+
<Message.Content>Hi there! How can I help you today?</Message.Content>
|
|
122
|
+
</Message>
|
|
123
|
+
<Message role="user">
|
|
124
|
+
<Message.Content>Can you explain React hooks?</Message.Content>
|
|
125
|
+
</Message>
|
|
126
|
+
</ConversationList>
|
|
154
127
|
),
|
|
155
128
|
},
|
|
156
129
|
{
|
|
157
|
-
name:
|
|
158
|
-
description:
|
|
130
|
+
name: "With Date Separators",
|
|
131
|
+
description: "Messages grouped by date",
|
|
159
132
|
render: () => (
|
|
160
|
-
<
|
|
161
|
-
<ConversationList
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
133
|
+
<ConversationList>
|
|
134
|
+
<ConversationList.DateSeparator date={new Date(Date.now() - 86400000)} />
|
|
135
|
+
<Message role="user">
|
|
136
|
+
<Message.Content>A message from yesterday</Message.Content>
|
|
137
|
+
</Message>
|
|
138
|
+
<ConversationList.DateSeparator date={new Date()} />
|
|
139
|
+
<Message role="assistant">
|
|
140
|
+
<Message.Content>And a message from today!</Message.Content>
|
|
141
|
+
</Message>
|
|
142
|
+
</ConversationList>
|
|
168
143
|
),
|
|
169
144
|
},
|
|
170
145
|
{
|
|
171
|
-
name:
|
|
172
|
-
description:
|
|
146
|
+
name: "With Typing Indicator",
|
|
147
|
+
description: "Shows assistant is typing",
|
|
173
148
|
render: () => (
|
|
174
|
-
<
|
|
175
|
-
<
|
|
176
|
-
<Message
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
</div>
|
|
149
|
+
<ConversationList>
|
|
150
|
+
<Message role="user">
|
|
151
|
+
<Message.Content>What is TypeScript?</Message.Content>
|
|
152
|
+
</Message>
|
|
153
|
+
<ConversationList.TypingIndicator name="Assistant" />
|
|
154
|
+
</ConversationList>
|
|
181
155
|
),
|
|
182
156
|
},
|
|
183
157
|
{
|
|
184
|
-
name:
|
|
185
|
-
description:
|
|
158
|
+
name: "Loading History",
|
|
159
|
+
description: "Loading older messages",
|
|
186
160
|
render: () => (
|
|
187
|
-
<
|
|
188
|
-
<
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
<p style={{ fontSize: '12px' }}>Start a conversation!</p>
|
|
193
|
-
</div>
|
|
194
|
-
}
|
|
195
|
-
>
|
|
196
|
-
{/* No messages */}
|
|
197
|
-
</ConversationList>
|
|
198
|
-
</div>
|
|
161
|
+
<ConversationList loadingHistory>
|
|
162
|
+
<Message role="user">
|
|
163
|
+
<Message.Content>This is the latest message</Message.Content>
|
|
164
|
+
</Message>
|
|
165
|
+
</ConversationList>
|
|
199
166
|
),
|
|
200
167
|
},
|
|
201
168
|
],
|