@algolia/satellite 2.3.0-rc.1 → 2.3.0-rc.11
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/cjs/Actions/Button/PolymorphicButton.js +5 -5
- package/dist/cjs/Actions/Button/PolymorphicIconButton.js +2 -2
- package/dist/cjs/Actions/Button/styles.d.ts +1 -0
- package/dist/cjs/Actions/Button/styles.js +15 -10
- package/dist/cjs/Actions/ButtonLink/ButtonLink.d.ts +2 -0
- package/dist/cjs/Actions/ButtonLink/ButtonLink.js +4 -2
- package/dist/cjs/Actions/SegmentedControl/SegmentedControl.js +3 -2
- package/dist/cjs/Actions/SegmentedControl/SegmentedControlOption.js +6 -3
- package/dist/cjs/Actions/ToggleButton/ToggleButtonBase.js +3 -3
- package/dist/cjs/Actions/ToggleGroup/ToggleGroup.d.ts +13 -14
- package/dist/cjs/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +23 -0
- package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.js +9 -2
- package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.styles.d.ts +20 -1
- package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.styles.js +3 -3
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/ChatMessage.d.ts +80 -3
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/ChatMessage.js +14 -5
- package/dist/{esm/Layout/Chat/ChatMessageError/ChatMessageError.styles.d.ts → cjs/Chat/ChatMessage/ChatMessage.styles.d.ts} +34 -40
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/ChatMessage.styles.js +20 -14
- package/dist/{esm/Layout → cjs}/Chat/ChatMessageError/ChatMessageError.d.ts +7 -2
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessageError/ChatMessageError.js +9 -4
- package/dist/cjs/Chat/ChatMessageError/ChatMessageError.styles.d.ts +253 -0
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessageError/ChatMessageError.styles.js +2 -2
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.d.ts +6 -3
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.js +9 -4
- package/dist/{esm/Layout → cjs}/Chat/ChatMessageLoader/ChatMessageLoader.styles.d.ts +89 -9
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.styles.js +3 -3
- package/dist/cjs/Chat/ChatMessages/ChatMessages.d.ts +141 -0
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/ChatMessages.js +64 -23
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/ChatMessages.styles.d.ts +27 -1
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/ChatMessages.styles.js +2 -2
- package/dist/cjs/Chat/ChatMessages/useLastMessageHeight.d.ts +14 -0
- package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/useLastMessageHeight.js +21 -14
- package/dist/{esm/Layout → cjs}/Chat/ChatPrompt/ChatPrompt.d.ts +34 -12
- package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/ChatPrompt.js +46 -19
- package/dist/cjs/Chat/ChatPrompt/ChatPrompt.styles.d.ts +63 -0
- package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/ChatPrompt.styles.js +11 -4
- package/dist/cjs/Chat/ChatPrompt/useFocusTyping.d.ts +30 -0
- package/dist/cjs/Chat/ChatPrompt/useFocusTyping.js +65 -0
- package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/useTypewriter.d.ts +9 -0
- package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/useTypewriter.js +9 -0
- package/dist/cjs/Fields/Checkbox/Checkbox.d.ts +2 -2
- package/dist/cjs/Fields/Checkbox/Checkbox.js +2 -2
- package/dist/cjs/Fields/Dropzone/Dropzone.js +1 -1
- package/dist/cjs/Fields/Form/stories/Complex.js +123 -50
- package/dist/cjs/Fields/Input/Input.js +10 -13
- package/dist/cjs/Fields/RadioGroup/RadioButton.js +9 -2
- package/dist/cjs/Fields/RadioGroup/RadioButton.tailwind.js +1 -1
- package/dist/cjs/Fields/RadioGroup/RadioGroupContext.d.ts +2 -0
- package/dist/cjs/Fields/RadioGroup/RadioGroupItem.js +1 -1
- package/dist/cjs/Fields/Select/Select.tailwind.js +4 -3
- package/dist/cjs/Fields/SelectableCard/SelectableCard.d.ts +35 -0
- package/dist/cjs/Fields/SelectableCard/SelectableCard.js +105 -0
- package/dist/cjs/Fields/SelectableCard/SelectableCardContext.d.ts +13 -0
- package/dist/cjs/Fields/SelectableCard/SelectableCardContext.js +15 -0
- package/dist/cjs/Fields/SelectableCard/SelectableCardGroup.d.ts +13 -0
- package/dist/cjs/Fields/SelectableCard/SelectableCardGroup.js +55 -0
- package/dist/cjs/Fields/SelectableCard/index.d.ts +2 -0
- package/dist/cjs/Fields/SelectableCard/index.js +27 -0
- package/dist/cjs/Fields/Switch/Switch.js +1 -1
- package/dist/cjs/Fields/TextAreaAutoSize/TextAreaAutoSize.d.ts +12 -4
- package/dist/cjs/Fields/TextAreaAutoSize/TextAreaAutoSize.styles.d.ts +13 -1
- package/dist/cjs/Fields/index.d.ts +1 -0
- package/dist/cjs/Fields/index.js +11 -0
- package/dist/cjs/Helpers/MarkdownContent/MarkdownContent.d.ts +15 -0
- package/dist/cjs/Helpers/MarkdownContent/MarkdownContent.js +29 -0
- package/dist/cjs/Helpers/MarkdownContent/MarkdownContent.tailwind.d.ts +5 -0
- package/dist/cjs/Helpers/MarkdownContent/MarkdownContent.tailwind.js +138 -0
- package/dist/cjs/Helpers/MarkdownContent/index.d.ts +1 -0
- package/dist/cjs/Helpers/MarkdownContent/index.js +16 -0
- package/dist/cjs/Helpers/ShimmerText/ShimmerText.tailwind.js +1 -1
- package/dist/cjs/Helpers/index.d.ts +1 -0
- package/dist/cjs/Helpers/index.js +11 -0
- package/dist/cjs/Helpers/utilities/focusable.tailwind.js +1 -1
- package/dist/cjs/Layout/index.d.ts +0 -1
- package/dist/cjs/Layout/index.js +0 -11
- package/dist/cjs/Navigation/Link/Link.d.ts +10 -0
- package/dist/cjs/Navigation/Link/Link.js +4 -2
- package/dist/cjs/Satellite/locale.d.ts +3 -3
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +12 -0
- package/dist/cjs/styles/helpers/tv.d.ts +5 -1
- package/dist/cjs/styles/tailwind.config.js +1 -1
- package/dist/cjs/utils/isCssPropertySupported.d.ts +1 -1
- package/dist/esm/Actions/Button/PolymorphicButton.js +6 -6
- package/dist/esm/Actions/Button/PolymorphicIconButton.js +2 -2
- package/dist/esm/Actions/Button/styles.d.ts +1 -0
- package/dist/esm/Actions/Button/styles.js +14 -9
- package/dist/esm/Actions/ButtonLink/ButtonLink.d.ts +2 -0
- package/dist/esm/Actions/ButtonLink/ButtonLink.js +4 -2
- package/dist/esm/Actions/SegmentedControl/SegmentedControl.js +3 -2
- package/dist/esm/Actions/SegmentedControl/SegmentedControlOption.js +6 -3
- package/dist/esm/Actions/ToggleButton/ToggleButtonBase.js +4 -4
- package/dist/esm/Actions/ToggleGroup/ToggleGroup.d.ts +13 -14
- package/dist/esm/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +23 -0
- package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.js +9 -2
- package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.styles.d.ts +20 -1
- package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.styles.js +3 -3
- package/dist/esm/{Layout/Chat → Chat}/ChatMessage/ChatMessage.d.ts +80 -3
- package/dist/esm/{Layout/Chat → Chat}/ChatMessage/ChatMessage.js +14 -5
- package/dist/{cjs/Layout/Chat/ChatMessageError/ChatMessageError.styles.d.ts → esm/Chat/ChatMessage/ChatMessage.styles.d.ts} +34 -40
- package/dist/esm/{Layout/Chat → Chat}/ChatMessage/ChatMessage.styles.js +20 -14
- package/dist/{cjs/Layout → esm}/Chat/ChatMessageError/ChatMessageError.d.ts +7 -2
- package/dist/esm/{Layout/Chat → Chat}/ChatMessageError/ChatMessageError.js +8 -3
- package/dist/esm/Chat/ChatMessageError/ChatMessageError.styles.d.ts +253 -0
- package/dist/esm/{Layout/Chat → Chat}/ChatMessageError/ChatMessageError.styles.js +2 -2
- package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.d.ts +6 -3
- package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.js +9 -4
- package/dist/{cjs/Layout → esm}/Chat/ChatMessageLoader/ChatMessageLoader.styles.d.ts +89 -9
- package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.styles.js +3 -3
- package/dist/esm/Chat/ChatMessages/ChatMessages.d.ts +141 -0
- package/dist/esm/{Layout/Chat → Chat}/ChatMessages/ChatMessages.js +64 -25
- package/dist/esm/{Layout/Chat → Chat}/ChatMessages/ChatMessages.styles.d.ts +27 -1
- package/dist/esm/{Layout/Chat → Chat}/ChatMessages/ChatMessages.styles.js +2 -2
- package/dist/esm/Chat/ChatMessages/useLastMessageHeight.d.ts +14 -0
- package/dist/esm/{Layout/Chat → Chat}/ChatMessages/useLastMessageHeight.js +22 -15
- package/dist/{cjs/Layout → esm}/Chat/ChatPrompt/ChatPrompt.d.ts +34 -12
- package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/ChatPrompt.js +47 -19
- package/dist/esm/Chat/ChatPrompt/ChatPrompt.styles.d.ts +63 -0
- package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/ChatPrompt.styles.js +11 -4
- package/dist/esm/Chat/ChatPrompt/useFocusTyping.d.ts +30 -0
- package/dist/esm/Chat/ChatPrompt/useFocusTyping.js +59 -0
- package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/useTypewriter.d.ts +9 -0
- package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/useTypewriter.js +9 -0
- package/dist/esm/Fields/Checkbox/Checkbox.d.ts +2 -2
- package/dist/esm/Fields/Checkbox/Checkbox.js +2 -2
- package/dist/esm/Fields/Dropzone/Dropzone.js +1 -1
- package/dist/esm/Fields/Form/stories/Complex.js +123 -50
- package/dist/esm/Fields/Input/Input.js +10 -13
- package/dist/esm/Fields/RadioGroup/RadioButton.js +10 -3
- package/dist/esm/Fields/RadioGroup/RadioButton.tailwind.js +1 -1
- package/dist/esm/Fields/RadioGroup/RadioGroupContext.d.ts +2 -0
- package/dist/esm/Fields/RadioGroup/RadioGroupItem.js +1 -1
- package/dist/esm/Fields/Select/Select.tailwind.js +4 -3
- package/dist/esm/Fields/SelectableCard/SelectableCard.d.ts +35 -0
- package/dist/esm/Fields/SelectableCard/SelectableCard.js +100 -0
- package/dist/esm/Fields/SelectableCard/SelectableCardContext.d.ts +13 -0
- package/dist/esm/Fields/SelectableCard/SelectableCardContext.js +9 -0
- package/dist/esm/Fields/SelectableCard/SelectableCardGroup.d.ts +13 -0
- package/dist/esm/Fields/SelectableCard/SelectableCardGroup.js +48 -0
- package/dist/esm/Fields/SelectableCard/index.d.ts +2 -0
- package/dist/esm/Fields/SelectableCard/index.js +2 -0
- package/dist/esm/Fields/Switch/Switch.js +1 -1
- package/dist/esm/Fields/TextAreaAutoSize/TextAreaAutoSize.d.ts +12 -4
- package/dist/esm/Fields/TextAreaAutoSize/TextAreaAutoSize.styles.d.ts +13 -1
- package/dist/esm/Fields/index.d.ts +1 -0
- package/dist/esm/Fields/index.js +1 -0
- package/dist/esm/Helpers/MarkdownContent/MarkdownContent.d.ts +15 -0
- package/dist/esm/Helpers/MarkdownContent/MarkdownContent.js +22 -0
- package/dist/esm/Helpers/MarkdownContent/MarkdownContent.tailwind.d.ts +5 -0
- package/dist/esm/Helpers/MarkdownContent/MarkdownContent.tailwind.js +138 -0
- package/dist/esm/Helpers/MarkdownContent/index.d.ts +1 -0
- package/dist/esm/Helpers/MarkdownContent/index.js +1 -0
- package/dist/esm/Helpers/ShimmerText/ShimmerText.tailwind.js +1 -1
- package/dist/esm/Helpers/index.d.ts +1 -0
- package/dist/esm/Helpers/index.js +2 -1
- package/dist/esm/Helpers/utilities/focusable.tailwind.js +1 -1
- package/dist/esm/Layout/index.d.ts +0 -1
- package/dist/esm/Layout/index.js +0 -1
- package/dist/esm/Navigation/Link/Link.d.ts +10 -0
- package/dist/esm/Navigation/Link/Link.js +4 -2
- package/dist/esm/Satellite/locale.d.ts +3 -3
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/styles/helpers/tv.d.ts +5 -1
- package/dist/esm/styles/tailwind.config.js +1 -1
- package/dist/esm/utils/isCssPropertySupported.d.ts +1 -1
- package/dist/satellite.min.css +1 -1
- package/package.json +5 -4
- package/dist/cjs/Layout/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +0 -8
- package/dist/cjs/Layout/Chat/ChatMessage/ChatMessage.styles.d.ts +0 -100
- package/dist/cjs/Layout/Chat/ChatMessages/ChatMessages.d.ts +0 -42
- package/dist/cjs/Layout/Chat/ChatMessages/useLastMessageHeight.d.ts +0 -10
- package/dist/cjs/Layout/Chat/ChatPrompt/ChatPrompt.styles.d.ts +0 -61
- package/dist/esm/Layout/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +0 -8
- package/dist/esm/Layout/Chat/ChatMessage/ChatMessage.styles.d.ts +0 -100
- package/dist/esm/Layout/Chat/ChatMessages/ChatMessages.d.ts +0 -42
- package/dist/esm/Layout/Chat/ChatMessages/useLastMessageHeight.d.ts +0 -10
- package/dist/esm/Layout/Chat/ChatPrompt/ChatPrompt.styles.d.ts +0 -61
- /package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/index.d.ts +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/index.js +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/index.d.ts +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/index.js +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatMessageError/index.d.ts +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatMessageError/index.js +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/index.d.ts +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/index.js +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/index.d.ts +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/index.js +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/index.d.ts +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/index.js +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/index.d.ts +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/index.js +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/types.d.ts +0 -0
- /package/dist/cjs/{Layout/Chat → Chat}/types.js +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/index.d.ts +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/index.js +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatMessage/index.d.ts +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatMessage/index.js +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatMessageError/index.d.ts +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatMessageError/index.js +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/index.d.ts +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/index.js +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatMessages/index.d.ts +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatMessages/index.js +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/index.d.ts +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/index.js +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/index.d.ts +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/index.js +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/types.d.ts +0 -0
- /package/dist/esm/{Layout/Chat → Chat}/types.js +0 -0
@@ -2,62 +2,62 @@ export declare const chatMessageLoaderStyles: import("tailwind-variants").TVRetu
|
|
2
2
|
[key: string]: {
|
3
3
|
[key: string]: import("tailwind-merge").ClassNameValue | {
|
4
4
|
content?: import("tailwind-merge").ClassNameValue;
|
5
|
+
skeleton?: import("tailwind-merge").ClassNameValue;
|
5
6
|
message?: import("tailwind-merge").ClassNameValue;
|
6
7
|
skeletonWrapper?: import("tailwind-merge").ClassNameValue;
|
7
|
-
skeleton?: import("tailwind-merge").ClassNameValue;
|
8
8
|
};
|
9
9
|
};
|
10
10
|
} | {
|
11
11
|
variant: {
|
12
12
|
neutral: import("tailwind-merge").ClassNameValue | {
|
13
13
|
content?: import("tailwind-merge").ClassNameValue;
|
14
|
+
skeleton?: import("tailwind-merge").ClassNameValue;
|
14
15
|
message?: import("tailwind-merge").ClassNameValue;
|
15
16
|
skeletonWrapper?: import("tailwind-merge").ClassNameValue;
|
16
|
-
skeleton?: import("tailwind-merge").ClassNameValue;
|
17
17
|
};
|
18
18
|
subtle: import("tailwind-merge").ClassNameValue | {
|
19
19
|
content?: import("tailwind-merge").ClassNameValue;
|
20
|
+
skeleton?: import("tailwind-merge").ClassNameValue;
|
20
21
|
message?: import("tailwind-merge").ClassNameValue;
|
21
22
|
skeletonWrapper?: import("tailwind-merge").ClassNameValue;
|
22
|
-
skeleton?: import("tailwind-merge").ClassNameValue;
|
23
23
|
};
|
24
24
|
};
|
25
25
|
side: {
|
26
26
|
left: import("tailwind-merge").ClassNameValue | {
|
27
27
|
content?: import("tailwind-merge").ClassNameValue;
|
28
|
+
skeleton?: import("tailwind-merge").ClassNameValue;
|
28
29
|
message?: import("tailwind-merge").ClassNameValue;
|
29
30
|
skeletonWrapper?: import("tailwind-merge").ClassNameValue;
|
30
|
-
skeleton?: import("tailwind-merge").ClassNameValue;
|
31
31
|
};
|
32
32
|
right: import("tailwind-merge").ClassNameValue | {
|
33
33
|
content?: import("tailwind-merge").ClassNameValue;
|
34
|
+
skeleton?: import("tailwind-merge").ClassNameValue;
|
34
35
|
message?: import("tailwind-merge").ClassNameValue;
|
35
36
|
skeletonWrapper?: import("tailwind-merge").ClassNameValue;
|
36
|
-
skeleton?: import("tailwind-merge").ClassNameValue;
|
37
37
|
};
|
38
38
|
};
|
39
39
|
leading: {
|
40
40
|
true: import("tailwind-merge").ClassNameValue | {
|
41
41
|
content?: import("tailwind-merge").ClassNameValue;
|
42
|
+
skeleton?: import("tailwind-merge").ClassNameValue;
|
42
43
|
message?: import("tailwind-merge").ClassNameValue;
|
43
44
|
skeletonWrapper?: import("tailwind-merge").ClassNameValue;
|
44
|
-
skeleton?: import("tailwind-merge").ClassNameValue;
|
45
45
|
};
|
46
46
|
};
|
47
47
|
actions: {
|
48
48
|
true: import("tailwind-merge").ClassNameValue | {
|
49
49
|
content?: import("tailwind-merge").ClassNameValue;
|
50
|
+
skeleton?: import("tailwind-merge").ClassNameValue;
|
50
51
|
message?: import("tailwind-merge").ClassNameValue;
|
51
52
|
skeletonWrapper?: import("tailwind-merge").ClassNameValue;
|
52
|
-
skeleton?: import("tailwind-merge").ClassNameValue;
|
53
53
|
};
|
54
54
|
};
|
55
55
|
autoHideActions: {
|
56
56
|
true: import("tailwind-merge").ClassNameValue | {
|
57
57
|
content?: import("tailwind-merge").ClassNameValue;
|
58
|
+
skeleton?: import("tailwind-merge").ClassNameValue;
|
58
59
|
message?: import("tailwind-merge").ClassNameValue;
|
59
60
|
skeletonWrapper?: import("tailwind-merge").ClassNameValue;
|
60
|
-
skeleton?: import("tailwind-merge").ClassNameValue;
|
61
61
|
};
|
62
62
|
};
|
63
63
|
}, {
|
@@ -66,6 +66,18 @@ export declare const chatMessageLoaderStyles: import("tailwind-variants").TVRetu
|
|
66
66
|
skeletonWrapper: string;
|
67
67
|
skeleton: string;
|
68
68
|
}, undefined, {
|
69
|
+
responsiveVariants?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | {
|
70
|
+
variant?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
71
|
+
leading?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
72
|
+
side?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
73
|
+
actions?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
74
|
+
autoHideActions?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
75
|
+
} | undefined;
|
76
|
+
} & import("tailwind-variants/dist/config").TWMConfig & {
|
77
|
+
twMergeConfig: {
|
78
|
+
prefix: string;
|
79
|
+
};
|
80
|
+
}, {
|
69
81
|
variant: {
|
70
82
|
neutral: {
|
71
83
|
message: string;
|
@@ -98,6 +110,7 @@ export declare const chatMessageLoaderStyles: import("tailwind-variants").TVRetu
|
|
98
110
|
content: string;
|
99
111
|
message: string;
|
100
112
|
actions: string;
|
113
|
+
footer: string;
|
101
114
|
}, import("tailwind-variants").TVReturnType<{
|
102
115
|
variant: {
|
103
116
|
neutral: {
|
@@ -131,7 +144,20 @@ export declare const chatMessageLoaderStyles: import("tailwind-variants").TVRetu
|
|
131
144
|
content: string;
|
132
145
|
message: string;
|
133
146
|
actions: string;
|
147
|
+
footer: string;
|
134
148
|
}, undefined, {
|
149
|
+
responsiveVariants?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | {
|
150
|
+
variant?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
151
|
+
leading?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
152
|
+
side?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
153
|
+
actions?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
154
|
+
autoHideActions?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
155
|
+
} | undefined;
|
156
|
+
} & import("tailwind-variants/dist/config").TWMConfig & {
|
157
|
+
twMergeConfig: {
|
158
|
+
prefix: string;
|
159
|
+
};
|
160
|
+
}, {
|
135
161
|
variant: {
|
136
162
|
neutral: {
|
137
163
|
message: string;
|
@@ -164,6 +190,7 @@ export declare const chatMessageLoaderStyles: import("tailwind-variants").TVRetu
|
|
164
190
|
content: string;
|
165
191
|
message: string;
|
166
192
|
actions: string;
|
193
|
+
footer: string;
|
167
194
|
}, import("tailwind-variants").TVReturnType<{
|
168
195
|
variant: {
|
169
196
|
neutral: {
|
@@ -197,4 +224,57 @@ export declare const chatMessageLoaderStyles: import("tailwind-variants").TVRetu
|
|
197
224
|
content: string;
|
198
225
|
message: string;
|
199
226
|
actions: string;
|
200
|
-
|
227
|
+
footer: string;
|
228
|
+
}, undefined, import("tailwind-variants/dist/config").TVConfig<{
|
229
|
+
variant: {
|
230
|
+
neutral: {
|
231
|
+
message: string;
|
232
|
+
};
|
233
|
+
subtle: {
|
234
|
+
message: string;
|
235
|
+
};
|
236
|
+
};
|
237
|
+
side: {
|
238
|
+
left: {
|
239
|
+
container: string;
|
240
|
+
};
|
241
|
+
right: {
|
242
|
+
container: string;
|
243
|
+
};
|
244
|
+
};
|
245
|
+
leading: {
|
246
|
+
true: string;
|
247
|
+
};
|
248
|
+
actions: {
|
249
|
+
true: string;
|
250
|
+
};
|
251
|
+
autoHideActions: {
|
252
|
+
true: string;
|
253
|
+
};
|
254
|
+
}, {
|
255
|
+
variant: {
|
256
|
+
neutral: {
|
257
|
+
message: string;
|
258
|
+
};
|
259
|
+
subtle: {
|
260
|
+
message: string;
|
261
|
+
};
|
262
|
+
};
|
263
|
+
side: {
|
264
|
+
left: {
|
265
|
+
container: string;
|
266
|
+
};
|
267
|
+
right: {
|
268
|
+
container: string;
|
269
|
+
};
|
270
|
+
};
|
271
|
+
leading: {
|
272
|
+
true: string;
|
273
|
+
};
|
274
|
+
actions: {
|
275
|
+
true: string;
|
276
|
+
};
|
277
|
+
autoHideActions: {
|
278
|
+
true: string;
|
279
|
+
};
|
280
|
+
}>, unknown, unknown, undefined>>>;
|
@@ -7,14 +7,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.chatMessageLoaderStyles = void 0;
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
9
9
|
var _ChatMessage = require("./../ChatMessage/ChatMessage.styles");
|
10
|
-
var _satellitePrefixer = _interopRequireDefault(require("
|
11
|
-
var _tv = require("
|
10
|
+
var _satellitePrefixer = _interopRequireDefault(require("./../../styles/helpers/satellitePrefixer"));
|
11
|
+
var _tv = require("./../../styles/helpers/tv");
|
12
12
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
13
13
|
var chatMessageLoaderStyles = exports.chatMessageLoaderStyles = (0, _tv.tv)({
|
14
14
|
extend: _ChatMessage.chatMessageStyles,
|
15
15
|
slots: {
|
16
16
|
content: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["w-full"]))),
|
17
|
-
message: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-2
|
17
|
+
message: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-2"]))),
|
18
18
|
skeletonWrapper: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-1"]))),
|
19
19
|
skeleton: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["h-4"])))
|
20
20
|
}
|
@@ -0,0 +1,141 @@
|
|
1
|
+
import type { HTMLAttributes, ReactElement, ReactNode, Ref } from "react";
|
2
|
+
import type { ChatMessageProps } from "../../Chat/ChatMessage";
|
3
|
+
import type { ChatMessageErrorProps } from "../../Chat/ChatMessageError";
|
4
|
+
import type { ChatMessageLoaderProps } from "../../Chat/ChatMessageLoader";
|
5
|
+
import type { ChatMessageBase, ChatStatus } from "../../Chat/types";
|
6
|
+
export declare type ChatMessageLocale = {
|
7
|
+
scrollToBottomText?: string;
|
8
|
+
};
|
9
|
+
declare type ChatMessageWithoutContent<Message extends ChatMessageBase> = Omit<ChatMessageProps<Message>, "content">;
|
10
|
+
export declare type ChatMessagesProps<Message extends ChatMessageBase = ChatMessageBase> = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
11
|
+
/**
|
12
|
+
* The messages to display in the chat.
|
13
|
+
*/
|
14
|
+
messages: Message[];
|
15
|
+
/**
|
16
|
+
* The props for the user message.
|
17
|
+
*/
|
18
|
+
userMessageProps?: ChatMessageWithoutContent<Message> | ((message: Message) => ChatMessageWithoutContent<Message>);
|
19
|
+
/**
|
20
|
+
* The props for the assistant message.
|
21
|
+
*/
|
22
|
+
assistantMessageProps?: ChatMessageWithoutContent<Message> | ((message: Message) => ChatMessageWithoutContent<Message>);
|
23
|
+
/**
|
24
|
+
* The props for the loader message.
|
25
|
+
*/
|
26
|
+
loaderProps?: ChatMessageLoaderProps;
|
27
|
+
/**
|
28
|
+
* The props for the error message.
|
29
|
+
*/
|
30
|
+
errorProps?: Omit<ChatMessageErrorProps, "onReload">;
|
31
|
+
/**
|
32
|
+
* The function to render the message.
|
33
|
+
*/
|
34
|
+
renderMessage?: (message: Message) => ReactNode;
|
35
|
+
/**
|
36
|
+
* The function to render the loader message.
|
37
|
+
*/
|
38
|
+
renderLoader?: ReactNode;
|
39
|
+
/**
|
40
|
+
* The function to render the error message.
|
41
|
+
*/
|
42
|
+
renderError?: ReactNode;
|
43
|
+
/**
|
44
|
+
* The status of the chat.
|
45
|
+
*/
|
46
|
+
status?: ChatStatus;
|
47
|
+
/**
|
48
|
+
* The function to reload the chat.
|
49
|
+
*/
|
50
|
+
onReload?: () => void;
|
51
|
+
/**
|
52
|
+
* Whether to hide the scroll to bottom button.
|
53
|
+
*/
|
54
|
+
hideScrollToBottom?: boolean;
|
55
|
+
/**
|
56
|
+
* The class name for the scroll container.
|
57
|
+
*/
|
58
|
+
scrollClassName?: string;
|
59
|
+
/**
|
60
|
+
* The class name for the content container.
|
61
|
+
*/
|
62
|
+
contentClassName?: string;
|
63
|
+
/**
|
64
|
+
* The locale for the chat messages.
|
65
|
+
*/
|
66
|
+
locale?: ChatMessageLocale;
|
67
|
+
/**
|
68
|
+
* Whether to enable right-to-left text direction.
|
69
|
+
*/
|
70
|
+
rtl?: boolean;
|
71
|
+
};
|
72
|
+
/**
|
73
|
+
* The `ChatMessages` component provides a list of messages to display in the chat.
|
74
|
+
*
|
75
|
+
* See the [ChatMessages documentation page](https://satellite.algolia.com/8261d6576/p/06f740-chat-messages) for more information.
|
76
|
+
*/
|
77
|
+
export declare const ChatMessages: <Message extends ChatMessageBase = ChatMessageBase>(props: Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
78
|
+
/**
|
79
|
+
* The messages to display in the chat.
|
80
|
+
*/
|
81
|
+
messages: Message[];
|
82
|
+
/**
|
83
|
+
* The props for the user message.
|
84
|
+
*/
|
85
|
+
userMessageProps?: ChatMessageWithoutContent<Message> | ((message: Message) => ChatMessageWithoutContent<Message>) | undefined;
|
86
|
+
/**
|
87
|
+
* The props for the assistant message.
|
88
|
+
*/
|
89
|
+
assistantMessageProps?: ChatMessageWithoutContent<Message> | ((message: Message) => ChatMessageWithoutContent<Message>) | undefined;
|
90
|
+
/**
|
91
|
+
* The props for the loader message.
|
92
|
+
*/
|
93
|
+
loaderProps?: ChatMessageLoaderProps | undefined;
|
94
|
+
/**
|
95
|
+
* The props for the error message.
|
96
|
+
*/
|
97
|
+
errorProps?: Omit<ChatMessageErrorProps, "onReload"> | undefined;
|
98
|
+
/**
|
99
|
+
* The function to render the message.
|
100
|
+
*/
|
101
|
+
renderMessage?: ((message: Message) => ReactNode) | undefined;
|
102
|
+
/**
|
103
|
+
* The function to render the loader message.
|
104
|
+
*/
|
105
|
+
renderLoader?: ReactNode;
|
106
|
+
/**
|
107
|
+
* The function to render the error message.
|
108
|
+
*/
|
109
|
+
renderError?: ReactNode;
|
110
|
+
/**
|
111
|
+
* The status of the chat.
|
112
|
+
*/
|
113
|
+
status?: ChatStatus | undefined;
|
114
|
+
/**
|
115
|
+
* The function to reload the chat.
|
116
|
+
*/
|
117
|
+
onReload?: (() => void) | undefined;
|
118
|
+
/**
|
119
|
+
* Whether to hide the scroll to bottom button.
|
120
|
+
*/
|
121
|
+
hideScrollToBottom?: boolean | undefined;
|
122
|
+
/**
|
123
|
+
* The class name for the scroll container.
|
124
|
+
*/
|
125
|
+
scrollClassName?: string | undefined;
|
126
|
+
/**
|
127
|
+
* The class name for the content container.
|
128
|
+
*/
|
129
|
+
contentClassName?: string | undefined;
|
130
|
+
/**
|
131
|
+
* The locale for the chat messages.
|
132
|
+
*/
|
133
|
+
locale?: ChatMessageLocale | undefined;
|
134
|
+
/**
|
135
|
+
* Whether to enable right-to-left text direction.
|
136
|
+
*/
|
137
|
+
rtl?: boolean | undefined;
|
138
|
+
} & {
|
139
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
140
|
+
}) => ReactElement | null;
|
141
|
+
export {};
|
@@ -9,23 +9,29 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
11
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
12
|
-
var _lucideReact = require("lucide-react");
|
13
12
|
var _react = require("react");
|
14
13
|
var _useStickToBottom2 = require("use-stick-to-bottom");
|
15
14
|
var _ChatMessages = require("./ChatMessages.styles");
|
16
15
|
var _useLastMessageHeight = require("./useLastMessageHeight");
|
17
|
-
var _Actions = require("
|
16
|
+
var _Actions = require("./../../Actions");
|
18
17
|
var _ChatMessage = require("./../ChatMessage");
|
19
18
|
var _ChatMessageError = require("./../ChatMessageError");
|
20
19
|
var _ChatMessageLoader = require("./../ChatMessageLoader");
|
21
|
-
var
|
20
|
+
var _Icons = require("./../../Icons");
|
21
|
+
var _Satellite = require("./../../Satellite");
|
22
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
23
|
-
var _excluded = ["messages", "userMessageProps", "assistantMessageProps", "loaderProps", "errorProps", "renderMessage", "renderLoader", "renderError", "status", "onReload", "hideScrollToBottom", "className", "scrollClassName", "contentClassName", "locale"];
|
23
|
+
var _excluded = ["messages", "userMessageProps", "assistantMessageProps", "loaderProps", "errorProps", "renderMessage", "renderLoader", "renderError", "status", "onReload", "hideScrollToBottom", "className", "scrollClassName", "contentClassName", "locale", "rtl"];
|
24
24
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
25
25
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
26
26
|
var DEFAULT_CHAT_MESSAGE_LOCALE = {
|
27
27
|
scrollToBottomText: "Scroll to bottom"
|
28
28
|
};
|
29
|
+
function resolveProps(propsOrFn, message) {
|
30
|
+
if (typeof propsOrFn === "function") {
|
31
|
+
return propsOrFn(message);
|
32
|
+
}
|
33
|
+
return propsOrFn;
|
34
|
+
}
|
29
35
|
var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
30
36
|
var messages = _ref.messages,
|
31
37
|
userMessageProps = _ref.userMessageProps,
|
@@ -43,19 +49,22 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
43
49
|
scrollClassName = _ref.scrollClassName,
|
44
50
|
contentClassName = _ref.contentClassName,
|
45
51
|
propsLocale = _ref.locale,
|
52
|
+
_ref$rtl = _ref.rtl,
|
53
|
+
rtl = _ref$rtl === void 0 ? false : _ref$rtl,
|
46
54
|
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
47
55
|
var contextLocale = (0, _Satellite.useLocale)("chatMessage");
|
48
56
|
var locale = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_CHAT_MESSAGE_LOCALE), contextLocale), propsLocale);
|
49
57
|
var _useStickToBottom = (0, _useStickToBottom2.useStickToBottom)({
|
50
|
-
|
51
|
-
initial: "
|
58
|
+
// @ts-expect-error - Types are wrong in use-stick-to-bottom
|
59
|
+
initial: "instant",
|
60
|
+
resize: "smooth"
|
52
61
|
}),
|
53
62
|
scrollRef = _useStickToBottom.scrollRef,
|
54
63
|
contentRef = _useStickToBottom.contentRef,
|
55
64
|
isAtBottom = _useStickToBottom.isAtBottom,
|
56
65
|
scrollToBottom = _useStickToBottom.scrollToBottom;
|
57
66
|
var styles = (0, _ChatMessages.chatMessagesStyles)();
|
58
|
-
var
|
67
|
+
var lastUserMessageRef = (0, _react.useRef)(null);
|
59
68
|
var _useState = (0, _react.useState)(false),
|
60
69
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
61
70
|
lastMessageSubmitted = _useState2[0],
|
@@ -63,19 +72,43 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
63
72
|
var lastUserMessage = (0, _toConsumableArray2["default"])(messages).reverse().find(function (m) {
|
64
73
|
return m.role === "user";
|
65
74
|
});
|
66
|
-
var
|
67
|
-
var
|
75
|
+
var lastMessageHeight = (0, _useLastMessageHeight.useLastMessageHeight)(scrollRef, lastUserMessageRef, messages, lastMessageSubmitted, 24);
|
76
|
+
var lastMessageId = (0, _react.useMemo)(function () {
|
77
|
+
var _messages;
|
78
|
+
return (_messages = messages[messages.length - 1]) === null || _messages === void 0 ? void 0 : _messages.id;
|
79
|
+
}, [messages]);
|
80
|
+
var getMessageProps = (0, _react.useCallback)(function (message) {
|
81
|
+
var propsResult;
|
82
|
+
if (message.role === "assistant") {
|
83
|
+
propsResult = resolveProps(assistantMessageProps, message);
|
84
|
+
|
85
|
+
// If the last assistant message is streaming, we don't want to render actions or footer
|
86
|
+
if ((status === "streaming" || message.content.length === 0) && lastMessageId === message.id) {
|
87
|
+
propsResult = _objectSpread(_objectSpread({}, propsResult), {}, {
|
88
|
+
renderFooter: undefined,
|
89
|
+
renderActions: undefined,
|
90
|
+
actions: undefined
|
91
|
+
});
|
92
|
+
}
|
93
|
+
} else {
|
94
|
+
propsResult = resolveProps(userMessageProps, message);
|
95
|
+
}
|
96
|
+
return propsResult;
|
97
|
+
}, [assistantMessageProps, userMessageProps, status, lastMessageId]);
|
68
98
|
(0, _react.useEffect)(function () {
|
69
|
-
if (status
|
70
|
-
|
99
|
+
if (status === "submitted" && lastUserMessage) {
|
100
|
+
setLastMessageSubmitted(true);
|
101
|
+
void scrollToBottom();
|
71
102
|
}
|
72
|
-
|
73
|
-
}, [status,
|
103
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
104
|
+
}, [status, lastUserMessage]);
|
74
105
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({}, props), {}, {
|
75
106
|
ref: forwardedRef,
|
76
107
|
className: styles.base({
|
77
108
|
className: className
|
78
109
|
}),
|
110
|
+
role: "log",
|
111
|
+
"aria-live": "polite",
|
79
112
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
80
113
|
ref: scrollRef,
|
81
114
|
className: styles.scroll({
|
@@ -91,16 +124,17 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
91
124
|
},
|
92
125
|
children: [messages.map(function (message) {
|
93
126
|
var isAssistant = message.role === "assistant";
|
127
|
+
var isLastUserMessage = (lastUserMessage === null || lastUserMessage === void 0 ? void 0 : lastUserMessage.id) === message.id;
|
128
|
+
var side = isAssistant ? "left" : "right";
|
94
129
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChatMessage.ChatMessage, _objectSpread(_objectSpread({
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
content: renderMessage ? renderMessage(message) : message.content
|
101
|
-
}, isAssistant ? assistantMessageProps : userMessageProps), {}, {
|
102
|
-
"data-role": message.role,
|
130
|
+
rtl: rtl,
|
131
|
+
ref: isLastUserMessage ? lastUserMessageRef : undefined,
|
132
|
+
side: side,
|
133
|
+
variant: isAssistant ? "subtle" : "neutral"
|
134
|
+
}, getMessageProps(message)), {}, {
|
135
|
+
content: renderMessage ? renderMessage(message) : message.content,
|
103
136
|
actionsExtraData: message,
|
137
|
+
"data-role": message.role,
|
104
138
|
"data-key": message.id
|
105
139
|
}), message.id);
|
106
140
|
}), status === "submitted" && (renderLoader !== null && renderLoader !== void 0 ? renderLoader : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChatMessageLoader.ChatMessageLoader, _objectSpread({}, loaderProps))), status === "error" && (renderError !== null && renderError !== void 0 ? renderError : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChatMessageError.ChatMessageError, _objectSpread(_objectSpread({}, errorProps), {}, {
|
@@ -108,7 +142,7 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
108
142
|
})))]
|
109
143
|
})
|
110
144
|
}), !hideScrollToBottom && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.IconButton, {
|
111
|
-
icon:
|
145
|
+
icon: _Icons.ChevronDownIcon,
|
112
146
|
title: locale.scrollToBottomText,
|
113
147
|
size: "small",
|
114
148
|
onClick: function onClick() {
|
@@ -117,8 +151,15 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
117
151
|
className: styles.scrollToBottom({
|
118
152
|
isAtBottom: isAtBottom
|
119
153
|
}),
|
120
|
-
tooltipHideDelay: 0
|
154
|
+
tooltipHideDelay: 0,
|
155
|
+
tabIndex: isAtBottom ? -1 : 0
|
121
156
|
})]
|
122
157
|
}));
|
123
158
|
};
|
159
|
+
|
160
|
+
/**
|
161
|
+
* The `ChatMessages` component provides a list of messages to display in the chat.
|
162
|
+
*
|
163
|
+
* See the [ChatMessages documentation page](https://satellite.algolia.com/8261d6576/p/06f740-chat-messages) for more information.
|
164
|
+
*/
|
124
165
|
var ChatMessages = exports.ChatMessages = /*#__PURE__*/(0, _react.forwardRef)(ChatMessagesBase);
|
@@ -13,6 +13,14 @@ export declare const chatMessagesStyles: import("tailwind-variants").TVReturnTyp
|
|
13
13
|
content: string;
|
14
14
|
scrollToBottom: string;
|
15
15
|
}, undefined, {
|
16
|
+
responsiveVariants?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | {
|
17
|
+
isAtBottom?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
18
|
+
} | undefined;
|
19
|
+
} & import("tailwind-variants/dist/config").TWMConfig & {
|
20
|
+
twMergeConfig: {
|
21
|
+
prefix: string;
|
22
|
+
};
|
23
|
+
}, {
|
16
24
|
isAtBottom: {
|
17
25
|
true: {
|
18
26
|
scrollToBottom: string;
|
@@ -40,4 +48,22 @@ export declare const chatMessagesStyles: import("tailwind-variants").TVReturnTyp
|
|
40
48
|
scroll: string;
|
41
49
|
content: string;
|
42
50
|
scrollToBottom: string;
|
43
|
-
}, undefined,
|
51
|
+
}, undefined, import("tailwind-variants/dist/config").TVConfig<{
|
52
|
+
isAtBottom: {
|
53
|
+
true: {
|
54
|
+
scrollToBottom: string;
|
55
|
+
};
|
56
|
+
false: {
|
57
|
+
scrollToBottom: string;
|
58
|
+
};
|
59
|
+
};
|
60
|
+
}, {
|
61
|
+
isAtBottom: {
|
62
|
+
true: {
|
63
|
+
scrollToBottom: string;
|
64
|
+
};
|
65
|
+
false: {
|
66
|
+
scrollToBottom: string;
|
67
|
+
};
|
68
|
+
};
|
69
|
+
}>, unknown, unknown, undefined>>;
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.chatMessagesStyles = void 0;
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
9
|
-
var _satellitePrefixer = _interopRequireDefault(require("
|
10
|
-
var _tv = require("
|
9
|
+
var _satellitePrefixer = _interopRequireDefault(require("./../../styles/helpers/satellitePrefixer"));
|
10
|
+
var _tv = require("./../../styles/helpers/tv");
|
11
11
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
12
12
|
var chatMessagesStyles = exports.chatMessagesStyles = (0, _tv.tv)({
|
13
13
|
slots: {
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import type { RefObject } from "react";
|
2
|
+
import type { ChatMessageBase } from "../../Chat/types";
|
3
|
+
/**
|
4
|
+
* React hook to compute the “fill” height below the last user message,
|
5
|
+
* based on the scroll container’s height, the last user‐message element’s height,
|
6
|
+
* and any CSS gap/padding offsets.
|
7
|
+
*
|
8
|
+
* @param scrollRef - The ref to the scroll container.
|
9
|
+
* @param lastUserMessageRef - The ref to the last user message.
|
10
|
+
* @param messages - The messages to display in the chat.
|
11
|
+
* @param lastMessageSubmitted - Whether the last message has been submitted.
|
12
|
+
* @param spacingOffset - The spacing offset.
|
13
|
+
*/
|
14
|
+
export declare function useLastMessageHeight(scrollRef: RefObject<HTMLElement>, lastUserMessageRef: RefObject<HTMLDivElement | null>, messages: ChatMessageBase[], lastMessageSubmitted: boolean, spacingOffset?: number): number;
|
@@ -11,30 +11,37 @@ var _react = require("react");
|
|
11
11
|
* React hook to compute the “fill” height below the last user message,
|
12
12
|
* based on the scroll container’s height, the last user‐message element’s height,
|
13
13
|
* and any CSS gap/padding offsets.
|
14
|
+
*
|
15
|
+
* @param scrollRef - The ref to the scroll container.
|
16
|
+
* @param lastUserMessageRef - The ref to the last user message.
|
17
|
+
* @param messages - The messages to display in the chat.
|
18
|
+
* @param lastMessageSubmitted - Whether the last message has been submitted.
|
19
|
+
* @param spacingOffset - The spacing offset.
|
14
20
|
*/
|
15
|
-
function useLastMessageHeight(scrollRef,
|
21
|
+
function useLastMessageHeight(scrollRef, lastUserMessageRef, messages, lastMessageSubmitted) {
|
16
22
|
var spacingOffset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
|
17
23
|
var _useState = (0, _react.useState)(0),
|
18
24
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
19
25
|
lastMessageHeight = _useState2[0],
|
20
26
|
setLastMessageHeight = _useState2[1];
|
21
|
-
var
|
22
|
-
|
23
|
-
if (
|
24
|
-
|
25
|
-
// Measure parent/container height
|
26
|
-
var parentHeight = scrollEl.clientHeight;
|
27
|
+
var offsetsRef = (0, _react.useRef)(0);
|
28
|
+
function getStaticOffsets() {
|
29
|
+
if (offsetsRef.current || !scrollRef.current) return offsetsRef.current;
|
27
30
|
|
28
31
|
// Compute any CSS gap/rowGap/padding offsets by reading computed style
|
29
|
-
var computed = window.getComputedStyle(
|
32
|
+
var computed = window.getComputedStyle(scrollRef.current);
|
30
33
|
var rowGapValue = parseFloat(computed.rowGap) || parseFloat(computed.gap) || 0;
|
31
34
|
var paddingTop = parseFloat(computed.paddingTop) || 0;
|
32
35
|
var paddingBottom = parseFloat(computed.paddingBottom) || 0;
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
offsetsRef.current = spacingOffset + rowGapValue + paddingTop + paddingBottom;
|
37
|
+
return offsetsRef.current;
|
38
|
+
}
|
39
|
+
var updateLastMessageHeight = function updateLastMessageHeight() {
|
40
|
+
var scrollEl = scrollRef.current;
|
41
|
+
var lastUserMessageEl = lastUserMessageRef.current;
|
42
|
+
if (!scrollEl || messages.length === 0 || !lastMessageSubmitted || !lastUserMessageEl) return;
|
43
|
+
var height = Math.max(scrollEl.clientHeight - lastUserMessageEl.offsetHeight - getStaticOffsets(), 0);
|
44
|
+
setLastMessageHeight(height);
|
38
45
|
};
|
39
46
|
|
40
47
|
// Recompute whenever messages change and a new user message has just been submitted
|
@@ -42,6 +49,6 @@ function useLastMessageHeight(scrollRef, messages, lastUserMessageEl, lastMessag
|
|
42
49
|
if (!lastMessageSubmitted) return;
|
43
50
|
updateLastMessageHeight();
|
44
51
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
45
|
-
}, [messages, lastMessageSubmitted]);
|
52
|
+
}, [messages.length, lastMessageSubmitted]);
|
46
53
|
return lastMessageHeight;
|
47
54
|
}
|