@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
@@ -1,18 +1,21 @@
|
|
1
1
|
import type { HTMLAttributes, ReactNode } from "react";
|
2
|
-
import type { ChatMessageProps } from "
|
2
|
+
import type { ChatMessageProps } from "../../Chat/ChatMessage";
|
3
3
|
export declare type ChatMessageLoaderProps = Omit<HTMLAttributes<HTMLElement>, "children"> & Pick<ChatMessageProps, "rtl"> & {
|
4
4
|
/**
|
5
5
|
* Message to display in the loader.
|
6
6
|
* If not provided, no message will be shown.
|
7
|
-
* @default undefined
|
8
7
|
*/
|
9
8
|
message?: ReactNode;
|
10
9
|
};
|
10
|
+
/**
|
11
|
+
* The `ChatMessageLoader` component provides a message to display when a response is being generated.
|
12
|
+
*
|
13
|
+
* See the [ChatMessageLoader documentation page](https://satellite.algolia.com/8261d6576/p/06f740-chat-message-loader) for more information.
|
14
|
+
*/
|
11
15
|
export declare const ChatMessageLoader: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLElement>, "children"> & Pick<ChatMessageProps<Record<string, any>>, "rtl"> & {
|
12
16
|
/**
|
13
17
|
* Message to display in the loader.
|
14
18
|
* If not provided, no message will be shown.
|
15
|
-
* @default undefined
|
16
19
|
*/
|
17
20
|
message?: ReactNode;
|
18
21
|
} & import("react").RefAttributes<HTMLElement>>;
|
@@ -7,10 +7,15 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
7
7
|
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) { _defineProperty(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; }
|
8
8
|
import { forwardRef } from "react";
|
9
9
|
import { chatMessageLoaderStyles } from "./ChatMessageLoader.styles";
|
10
|
-
import { ShimmerText } from "
|
11
|
-
import { ProgressSpinner, Skeleton } from "
|
12
|
-
import stl from "
|
10
|
+
import { ShimmerText } from "./../../Helpers/ShimmerText/ShimmerText";
|
11
|
+
import { ProgressSpinner, Skeleton } from "./../../Indicators";
|
12
|
+
import stl from "./../../styles/helpers/satellitePrefixer";
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
14
|
+
/**
|
15
|
+
* The `ChatMessageLoader` component provides a message to display when a response is being generated.
|
16
|
+
*
|
17
|
+
* See the [ChatMessageLoader documentation page](https://satellite.algolia.com/8261d6576/p/06f740-chat-message-loader) for more information.
|
18
|
+
*/
|
14
19
|
export var ChatMessageLoader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
15
20
|
var message = _ref.message,
|
16
21
|
rtl = _ref.rtl,
|
@@ -36,7 +41,7 @@ export var ChatMessageLoader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
36
41
|
className: styles.content(),
|
37
42
|
children: /*#__PURE__*/_jsxs("div", {
|
38
43
|
className: styles.message(),
|
39
|
-
children: [/*#__PURE__*/_jsx(ShimmerText, {
|
44
|
+
children: [!!message && /*#__PURE__*/_jsx(ShimmerText, {
|
40
45
|
children: message
|
41
46
|
}), /*#__PURE__*/_jsxs("div", {
|
42
47
|
className: styles.skeletonWrapper(),
|
@@ -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>>>;
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
2
2
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
3
3
|
import { chatMessageStyles } from "./../ChatMessage/ChatMessage.styles";
|
4
|
-
import stl from "
|
5
|
-
import { tv } from "
|
4
|
+
import stl from "./../../styles/helpers/satellitePrefixer";
|
5
|
+
import { tv } from "./../../styles/helpers/tv";
|
6
6
|
export var chatMessageLoaderStyles = tv({
|
7
7
|
extend: chatMessageStyles,
|
8
8
|
slots: {
|
9
9
|
content: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["w-full"]))),
|
10
|
-
message: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["flex flex-col gap-2
|
10
|
+
message: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["flex flex-col gap-2"]))),
|
11
11
|
skeletonWrapper: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["flex flex-col gap-1"]))),
|
12
12
|
skeleton: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["h-4"])))
|
13
13
|
}
|
@@ -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 {};
|
@@ -2,25 +2,29 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
5
|
-
var _excluded = ["messages", "userMessageProps", "assistantMessageProps", "loaderProps", "errorProps", "renderMessage", "renderLoader", "renderError", "status", "onReload", "hideScrollToBottom", "className", "scrollClassName", "contentClassName", "locale"];
|
5
|
+
var _excluded = ["messages", "userMessageProps", "assistantMessageProps", "loaderProps", "errorProps", "renderMessage", "renderLoader", "renderError", "status", "onReload", "hideScrollToBottom", "className", "scrollClassName", "contentClassName", "locale", "rtl"];
|
6
6
|
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; }
|
7
7
|
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) { _defineProperty(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; }
|
8
|
-
import {
|
9
|
-
import { useEffect } from "react";
|
10
|
-
import { useRef, useState } from "react";
|
11
|
-
import { forwardRef } from "react";
|
8
|
+
import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
12
9
|
import { useStickToBottom } from "use-stick-to-bottom";
|
13
10
|
import { chatMessagesStyles } from "./ChatMessages.styles";
|
14
11
|
import { useLastMessageHeight } from "./useLastMessageHeight";
|
15
|
-
import { IconButton } from "
|
12
|
+
import { IconButton } from "./../../Actions";
|
16
13
|
import { ChatMessage } from "./../ChatMessage";
|
17
14
|
import { ChatMessageError } from "./../ChatMessageError";
|
18
15
|
import { ChatMessageLoader } from "./../ChatMessageLoader";
|
19
|
-
import {
|
16
|
+
import { ChevronDownIcon } from "./../../Icons";
|
17
|
+
import { useLocale } from "./../../Satellite";
|
20
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
21
19
|
var DEFAULT_CHAT_MESSAGE_LOCALE = {
|
22
20
|
scrollToBottomText: "Scroll to bottom"
|
23
21
|
};
|
22
|
+
function resolveProps(propsOrFn, message) {
|
23
|
+
if (typeof propsOrFn === "function") {
|
24
|
+
return propsOrFn(message);
|
25
|
+
}
|
26
|
+
return propsOrFn;
|
27
|
+
}
|
24
28
|
var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
25
29
|
var messages = _ref.messages,
|
26
30
|
userMessageProps = _ref.userMessageProps,
|
@@ -38,19 +42,22 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
38
42
|
scrollClassName = _ref.scrollClassName,
|
39
43
|
contentClassName = _ref.contentClassName,
|
40
44
|
propsLocale = _ref.locale,
|
45
|
+
_ref$rtl = _ref.rtl,
|
46
|
+
rtl = _ref$rtl === void 0 ? false : _ref$rtl,
|
41
47
|
props = _objectWithoutProperties(_ref, _excluded);
|
42
48
|
var contextLocale = useLocale("chatMessage");
|
43
49
|
var locale = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_CHAT_MESSAGE_LOCALE), contextLocale), propsLocale);
|
44
50
|
var _useStickToBottom = useStickToBottom({
|
45
|
-
|
46
|
-
initial: "
|
51
|
+
// @ts-expect-error - Types are wrong in use-stick-to-bottom
|
52
|
+
initial: "instant",
|
53
|
+
resize: "smooth"
|
47
54
|
}),
|
48
55
|
scrollRef = _useStickToBottom.scrollRef,
|
49
56
|
contentRef = _useStickToBottom.contentRef,
|
50
57
|
isAtBottom = _useStickToBottom.isAtBottom,
|
51
58
|
scrollToBottom = _useStickToBottom.scrollToBottom;
|
52
59
|
var styles = chatMessagesStyles();
|
53
|
-
var
|
60
|
+
var lastUserMessageRef = useRef(null);
|
54
61
|
var _useState = useState(false),
|
55
62
|
_useState2 = _slicedToArray(_useState, 2),
|
56
63
|
lastMessageSubmitted = _useState2[0],
|
@@ -58,19 +65,43 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
58
65
|
var lastUserMessage = _toConsumableArray(messages).reverse().find(function (m) {
|
59
66
|
return m.role === "user";
|
60
67
|
});
|
61
|
-
var
|
62
|
-
var
|
68
|
+
var lastMessageHeight = useLastMessageHeight(scrollRef, lastUserMessageRef, messages, lastMessageSubmitted, 24);
|
69
|
+
var lastMessageId = useMemo(function () {
|
70
|
+
var _messages;
|
71
|
+
return (_messages = messages[messages.length - 1]) === null || _messages === void 0 ? void 0 : _messages.id;
|
72
|
+
}, [messages]);
|
73
|
+
var getMessageProps = useCallback(function (message) {
|
74
|
+
var propsResult;
|
75
|
+
if (message.role === "assistant") {
|
76
|
+
propsResult = resolveProps(assistantMessageProps, message);
|
77
|
+
|
78
|
+
// If the last assistant message is streaming, we don't want to render actions or footer
|
79
|
+
if ((status === "streaming" || message.content.length === 0) && lastMessageId === message.id) {
|
80
|
+
propsResult = _objectSpread(_objectSpread({}, propsResult), {}, {
|
81
|
+
renderFooter: undefined,
|
82
|
+
renderActions: undefined,
|
83
|
+
actions: undefined
|
84
|
+
});
|
85
|
+
}
|
86
|
+
} else {
|
87
|
+
propsResult = resolveProps(userMessageProps, message);
|
88
|
+
}
|
89
|
+
return propsResult;
|
90
|
+
}, [assistantMessageProps, userMessageProps, status, lastMessageId]);
|
63
91
|
useEffect(function () {
|
64
|
-
if (status
|
65
|
-
|
92
|
+
if (status === "submitted" && lastUserMessage) {
|
93
|
+
setLastMessageSubmitted(true);
|
94
|
+
void scrollToBottom();
|
66
95
|
}
|
67
|
-
|
68
|
-
}, [status,
|
96
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
97
|
+
}, [status, lastUserMessage]);
|
69
98
|
return /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread({}, props), {}, {
|
70
99
|
ref: forwardedRef,
|
71
100
|
className: styles.base({
|
72
101
|
className: className
|
73
102
|
}),
|
103
|
+
role: "log",
|
104
|
+
"aria-live": "polite",
|
74
105
|
children: [/*#__PURE__*/_jsx("div", {
|
75
106
|
ref: scrollRef,
|
76
107
|
className: styles.scroll({
|
@@ -86,16 +117,17 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
86
117
|
},
|
87
118
|
children: [messages.map(function (message) {
|
88
119
|
var isAssistant = message.role === "assistant";
|
120
|
+
var isLastUserMessage = (lastUserMessage === null || lastUserMessage === void 0 ? void 0 : lastUserMessage.id) === message.id;
|
121
|
+
var side = isAssistant ? "left" : "right";
|
89
122
|
return /*#__PURE__*/_jsx(ChatMessage, _objectSpread(_objectSpread({
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
content: renderMessage ? renderMessage(message) : message.content
|
96
|
-
}, isAssistant ? assistantMessageProps : userMessageProps), {}, {
|
97
|
-
"data-role": message.role,
|
123
|
+
rtl: rtl,
|
124
|
+
ref: isLastUserMessage ? lastUserMessageRef : undefined,
|
125
|
+
side: side,
|
126
|
+
variant: isAssistant ? "subtle" : "neutral"
|
127
|
+
}, getMessageProps(message)), {}, {
|
128
|
+
content: renderMessage ? renderMessage(message) : message.content,
|
98
129
|
actionsExtraData: message,
|
130
|
+
"data-role": message.role,
|
99
131
|
"data-key": message.id
|
100
132
|
}), message.id);
|
101
133
|
}), status === "submitted" && (renderLoader !== null && renderLoader !== void 0 ? renderLoader : /*#__PURE__*/_jsx(ChatMessageLoader, _objectSpread({}, loaderProps))), status === "error" && (renderError !== null && renderError !== void 0 ? renderError : /*#__PURE__*/_jsx(ChatMessageError, _objectSpread(_objectSpread({}, errorProps), {}, {
|
@@ -112,8 +144,15 @@ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
|
|
112
144
|
className: styles.scrollToBottom({
|
113
145
|
isAtBottom: isAtBottom
|
114
146
|
}),
|
115
|
-
tooltipHideDelay: 0
|
147
|
+
tooltipHideDelay: 0,
|
148
|
+
tabIndex: isAtBottom ? -1 : 0
|
116
149
|
})]
|
117
150
|
}));
|
118
151
|
};
|
152
|
+
|
153
|
+
/**
|
154
|
+
* The `ChatMessages` component provides a list of messages to display in the chat.
|
155
|
+
*
|
156
|
+
* See the [ChatMessages documentation page](https://satellite.algolia.com/8261d6576/p/06f740-chat-messages) for more information.
|
157
|
+
*/
|
119
158
|
export var ChatMessages = /*#__PURE__*/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>>;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
2
2
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
3
|
-
import stl from "
|
4
|
-
import { tv } from "
|
3
|
+
import stl from "./../../styles/helpers/satellitePrefixer";
|
4
|
+
import { tv } from "./../../styles/helpers/tv";
|
5
5
|
export var chatMessagesStyles = tv({
|
6
6
|
slots: {
|
7
7
|
base: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["relative flex flex-col overflow-hidden h-full"]))),
|
@@ -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;
|