@algolia/satellite 2.2.2 → 2.3.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/cjs/Actions/Accordion/Accordion.d.ts +8 -0
  2. package/dist/cjs/Actions/Accordion/Accordion.js +5 -3
  3. package/dist/cjs/Fields/AutoComplete/AutoComplete.js +6 -1
  4. package/dist/cjs/Fields/TextArea/TextArea.d.ts +5 -1
  5. package/dist/cjs/Fields/TextArea/TextArea.js +3 -2
  6. package/dist/cjs/Fields/TextArea/TextArea.tailwind.js +1 -1
  7. package/dist/cjs/Fields/TextAreaAutoSize/TextAreaAutoSize.d.ts +18 -0
  8. package/dist/cjs/Fields/TextAreaAutoSize/TextAreaAutoSize.js +82 -0
  9. package/dist/cjs/Fields/TextAreaAutoSize/TextAreaAutoSize.styles.d.ts +25 -0
  10. package/dist/cjs/Fields/TextAreaAutoSize/TextAreaAutoSize.styles.js +16 -0
  11. package/dist/cjs/Fields/TextAreaAutoSize/index.d.ts +2 -0
  12. package/dist/cjs/Fields/TextAreaAutoSize/index.js +12 -0
  13. package/dist/cjs/Fields/index.d.ts +2 -1
  14. package/dist/cjs/Fields/index.js +15 -4
  15. package/dist/cjs/Helpers/ShimmerText/ShimmerText.d.ts +3 -0
  16. package/dist/cjs/Helpers/ShimmerText/ShimmerText.js +28 -0
  17. package/dist/cjs/Helpers/ShimmerText/ShimmerText.tailwind.d.ts +5 -0
  18. package/dist/cjs/Helpers/ShimmerText/ShimmerText.tailwind.js +37 -0
  19. package/dist/cjs/Helpers/ShimmerText/index.d.ts +2 -0
  20. package/dist/cjs/Helpers/ShimmerText/index.js +12 -0
  21. package/dist/cjs/Helpers/index.d.ts +1 -0
  22. package/dist/cjs/Helpers/index.js +11 -0
  23. package/dist/cjs/Helpers/utilities/utilities.tailwind.js +6 -1
  24. package/dist/cjs/Indicators/Skeleton/Skeleton.d.ts +2 -2
  25. package/dist/cjs/Layout/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +8 -0
  26. package/dist/cjs/Layout/Chat/ChatContextAccordion/ChatContextAccordion.js +44 -0
  27. package/dist/cjs/Layout/Chat/ChatContextAccordion/ChatContextAccordion.styles.d.ts +67 -0
  28. package/dist/cjs/Layout/Chat/ChatContextAccordion/ChatContextAccordion.styles.js +23 -0
  29. package/dist/cjs/Layout/Chat/ChatContextAccordion/index.d.ts +1 -0
  30. package/dist/cjs/Layout/Chat/ChatContextAccordion/index.js +16 -0
  31. package/dist/cjs/Layout/Chat/ChatMessage/ChatMessage.d.ts +40 -0
  32. package/dist/cjs/Layout/Chat/ChatMessage/ChatMessage.js +83 -0
  33. package/dist/cjs/Layout/Chat/ChatMessage/ChatMessage.styles.d.ts +100 -0
  34. package/dist/cjs/Layout/Chat/ChatMessage/ChatMessage.styles.js +71 -0
  35. package/dist/cjs/Layout/Chat/ChatMessage/index.d.ts +1 -0
  36. package/dist/cjs/Layout/Chat/ChatMessage/index.js +16 -0
  37. package/dist/cjs/Layout/Chat/ChatMessageError/ChatMessageError.d.ts +57 -0
  38. package/dist/cjs/Layout/Chat/ChatMessageError/ChatMessageError.js +68 -0
  39. package/dist/cjs/Layout/Chat/ChatMessageError/ChatMessageError.styles.d.ts +173 -0
  40. package/dist/cjs/Layout/Chat/ChatMessageError/ChatMessageError.styles.js +18 -0
  41. package/dist/cjs/Layout/Chat/ChatMessageError/index.d.ts +1 -0
  42. package/dist/cjs/Layout/Chat/ChatMessageError/index.js +16 -0
  43. package/dist/cjs/Layout/Chat/ChatMessageLoader/ChatMessageLoader.d.ts +18 -0
  44. package/dist/cjs/Layout/Chat/ChatMessageLoader/ChatMessageLoader.js +63 -0
  45. package/dist/cjs/Layout/Chat/ChatMessageLoader/ChatMessageLoader.styles.d.ts +200 -0
  46. package/dist/cjs/Layout/Chat/ChatMessageLoader/ChatMessageLoader.styles.js +21 -0
  47. package/dist/cjs/Layout/Chat/ChatMessageLoader/index.d.ts +1 -0
  48. package/dist/cjs/Layout/Chat/ChatMessageLoader/index.js +16 -0
  49. package/dist/cjs/Layout/Chat/ChatMessages/ChatMessages.d.ts +42 -0
  50. package/dist/cjs/Layout/Chat/ChatMessages/ChatMessages.js +124 -0
  51. package/dist/cjs/Layout/Chat/ChatMessages/ChatMessages.styles.d.ts +43 -0
  52. package/dist/cjs/Layout/Chat/ChatMessages/ChatMessages.styles.js +29 -0
  53. package/dist/cjs/Layout/Chat/ChatMessages/index.d.ts +1 -0
  54. package/dist/cjs/Layout/Chat/ChatMessages/index.js +16 -0
  55. package/dist/cjs/Layout/Chat/ChatMessages/useLastMessageHeight.d.ts +10 -0
  56. package/dist/cjs/Layout/Chat/ChatMessages/useLastMessageHeight.js +47 -0
  57. package/dist/cjs/Layout/Chat/ChatPrompt/ChatPrompt.d.ts +83 -0
  58. package/dist/cjs/Layout/Chat/ChatPrompt/ChatPrompt.js +136 -0
  59. package/dist/cjs/Layout/Chat/ChatPrompt/ChatPrompt.styles.d.ts +61 -0
  60. package/dist/cjs/Layout/Chat/ChatPrompt/ChatPrompt.styles.js +22 -0
  61. package/dist/cjs/Layout/Chat/ChatPrompt/index.d.ts +1 -0
  62. package/dist/cjs/Layout/Chat/ChatPrompt/index.js +16 -0
  63. package/dist/cjs/Layout/Chat/ChatPrompt/useTypewriter.d.ts +18 -0
  64. package/dist/cjs/Layout/Chat/ChatPrompt/useTypewriter.js +78 -0
  65. package/dist/cjs/Layout/Chat/index.d.ts +15 -0
  66. package/dist/cjs/Layout/Chat/index.js +47 -0
  67. package/dist/cjs/Layout/Chat/types.d.ts +7 -0
  68. package/dist/cjs/Layout/Chat/types.js +5 -0
  69. package/dist/cjs/Layout/index.d.ts +1 -0
  70. package/dist/cjs/Layout/index.js +11 -0
  71. package/dist/cjs/Overlay/Modal/Modal.js +1 -1
  72. package/dist/cjs/Satellite/locale.d.ts +7 -1
  73. package/dist/cjs/styles/helpers/tv.d.ts +1 -0
  74. package/dist/cjs/styles/helpers/tv.js +13 -0
  75. package/dist/cjs/styles/tailwind.config.js +1 -1
  76. package/dist/cjs/utils/getTextFromReactNode.d.ts +2 -1
  77. package/dist/cjs/utils/getTextFromReactNode.js +12 -7
  78. package/dist/cjs/utils/isCssPropertySupported.d.ts +1 -1
  79. package/dist/esm/Actions/Accordion/Accordion.d.ts +8 -0
  80. package/dist/esm/Actions/Accordion/Accordion.js +5 -3
  81. package/dist/esm/Fields/AutoComplete/AutoComplete.js +6 -1
  82. package/dist/esm/Fields/TextArea/TextArea.d.ts +5 -1
  83. package/dist/esm/Fields/TextArea/TextArea.js +3 -2
  84. package/dist/esm/Fields/TextArea/TextArea.tailwind.js +1 -1
  85. package/dist/esm/Fields/TextAreaAutoSize/TextAreaAutoSize.d.ts +18 -0
  86. package/dist/esm/Fields/TextAreaAutoSize/TextAreaAutoSize.js +75 -0
  87. package/dist/esm/Fields/TextAreaAutoSize/TextAreaAutoSize.styles.d.ts +25 -0
  88. package/dist/esm/Fields/TextAreaAutoSize/TextAreaAutoSize.styles.js +9 -0
  89. package/dist/esm/Fields/TextAreaAutoSize/index.d.ts +2 -0
  90. package/dist/esm/Fields/TextAreaAutoSize/index.js +1 -0
  91. package/dist/esm/Fields/index.d.ts +2 -1
  92. package/dist/esm/Fields/index.js +2 -1
  93. package/dist/esm/Helpers/ShimmerText/ShimmerText.d.ts +3 -0
  94. package/dist/esm/Helpers/ShimmerText/ShimmerText.js +21 -0
  95. package/dist/esm/Helpers/ShimmerText/ShimmerText.tailwind.d.ts +5 -0
  96. package/dist/esm/Helpers/ShimmerText/ShimmerText.tailwind.js +36 -0
  97. package/dist/esm/Helpers/ShimmerText/index.d.ts +2 -0
  98. package/dist/esm/Helpers/ShimmerText/index.js +1 -0
  99. package/dist/esm/Helpers/index.d.ts +1 -0
  100. package/dist/esm/Helpers/index.js +2 -1
  101. package/dist/esm/Helpers/utilities/utilities.tailwind.js +6 -1
  102. package/dist/esm/Indicators/Skeleton/Skeleton.d.ts +2 -2
  103. package/dist/esm/Layout/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +8 -0
  104. package/dist/esm/Layout/Chat/ChatContextAccordion/ChatContextAccordion.js +37 -0
  105. package/dist/esm/Layout/Chat/ChatContextAccordion/ChatContextAccordion.styles.d.ts +67 -0
  106. package/dist/esm/Layout/Chat/ChatContextAccordion/ChatContextAccordion.styles.js +16 -0
  107. package/dist/esm/Layout/Chat/ChatContextAccordion/index.d.ts +1 -0
  108. package/dist/esm/Layout/Chat/ChatContextAccordion/index.js +1 -0
  109. package/dist/esm/Layout/Chat/ChatMessage/ChatMessage.d.ts +40 -0
  110. package/dist/esm/Layout/Chat/ChatMessage/ChatMessage.js +77 -0
  111. package/dist/esm/Layout/Chat/ChatMessage/ChatMessage.styles.d.ts +100 -0
  112. package/dist/esm/Layout/Chat/ChatMessage/ChatMessage.styles.js +64 -0
  113. package/dist/esm/Layout/Chat/ChatMessage/index.d.ts +1 -0
  114. package/dist/esm/Layout/Chat/ChatMessage/index.js +1 -0
  115. package/dist/esm/Layout/Chat/ChatMessageError/ChatMessageError.d.ts +57 -0
  116. package/dist/esm/Layout/Chat/ChatMessageError/ChatMessageError.js +61 -0
  117. package/dist/esm/Layout/Chat/ChatMessageError/ChatMessageError.styles.d.ts +173 -0
  118. package/dist/esm/Layout/Chat/ChatMessageError/ChatMessageError.styles.js +11 -0
  119. package/dist/esm/Layout/Chat/ChatMessageError/index.d.ts +1 -0
  120. package/dist/esm/Layout/Chat/ChatMessageError/index.js +1 -0
  121. package/dist/esm/Layout/Chat/ChatMessageLoader/ChatMessageLoader.d.ts +18 -0
  122. package/dist/esm/Layout/Chat/ChatMessageLoader/ChatMessageLoader.js +56 -0
  123. package/dist/esm/Layout/Chat/ChatMessageLoader/ChatMessageLoader.styles.d.ts +200 -0
  124. package/dist/esm/Layout/Chat/ChatMessageLoader/ChatMessageLoader.styles.js +14 -0
  125. package/dist/esm/Layout/Chat/ChatMessageLoader/index.d.ts +1 -0
  126. package/dist/esm/Layout/Chat/ChatMessageLoader/index.js +1 -0
  127. package/dist/esm/Layout/Chat/ChatMessages/ChatMessages.d.ts +42 -0
  128. package/dist/esm/Layout/Chat/ChatMessages/ChatMessages.js +119 -0
  129. package/dist/esm/Layout/Chat/ChatMessages/ChatMessages.styles.d.ts +43 -0
  130. package/dist/esm/Layout/Chat/ChatMessages/ChatMessages.styles.js +22 -0
  131. package/dist/esm/Layout/Chat/ChatMessages/index.d.ts +1 -0
  132. package/dist/esm/Layout/Chat/ChatMessages/index.js +1 -0
  133. package/dist/esm/Layout/Chat/ChatMessages/useLastMessageHeight.d.ts +10 -0
  134. package/dist/esm/Layout/Chat/ChatMessages/useLastMessageHeight.js +41 -0
  135. package/dist/esm/Layout/Chat/ChatPrompt/ChatPrompt.d.ts +83 -0
  136. package/dist/esm/Layout/Chat/ChatPrompt/ChatPrompt.js +131 -0
  137. package/dist/esm/Layout/Chat/ChatPrompt/ChatPrompt.styles.d.ts +61 -0
  138. package/dist/esm/Layout/Chat/ChatPrompt/ChatPrompt.styles.js +15 -0
  139. package/dist/esm/Layout/Chat/ChatPrompt/index.d.ts +1 -0
  140. package/dist/esm/Layout/Chat/ChatPrompt/index.js +1 -0
  141. package/dist/esm/Layout/Chat/ChatPrompt/useTypewriter.d.ts +18 -0
  142. package/dist/esm/Layout/Chat/ChatPrompt/useTypewriter.js +71 -0
  143. package/dist/esm/Layout/Chat/index.d.ts +15 -0
  144. package/dist/esm/Layout/Chat/index.js +6 -0
  145. package/dist/esm/Layout/Chat/types.d.ts +7 -0
  146. package/dist/esm/Layout/Chat/types.js +1 -0
  147. package/dist/esm/Layout/index.d.ts +1 -0
  148. package/dist/esm/Layout/index.js +1 -0
  149. package/dist/esm/Overlay/Modal/Modal.js +1 -1
  150. package/dist/esm/Satellite/locale.d.ts +7 -1
  151. package/dist/esm/styles/helpers/tv.d.ts +1 -0
  152. package/dist/esm/styles/helpers/tv.js +7 -0
  153. package/dist/esm/styles/tailwind.config.js +1 -1
  154. package/dist/esm/utils/getTextFromReactNode.d.ts +2 -1
  155. package/dist/esm/utils/getTextFromReactNode.js +13 -8
  156. package/dist/esm/utils/isCssPropertySupported.d.ts +1 -1
  157. package/dist/satellite.min.css +1 -1
  158. package/package.json +12 -3
@@ -0,0 +1,18 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { ChatMessageProps } from "../../../Layout/Chat/ChatMessage";
3
+ export declare type ChatMessageLoaderProps = Omit<HTMLAttributes<HTMLElement>, "children"> & Pick<ChatMessageProps, "rtl"> & {
4
+ /**
5
+ * Message to display in the loader.
6
+ * If not provided, no message will be shown.
7
+ * @default undefined
8
+ */
9
+ message?: ReactNode;
10
+ };
11
+ export declare const ChatMessageLoader: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLElement>, "children"> & Pick<ChatMessageProps<Record<string, any>>, "rtl"> & {
12
+ /**
13
+ * Message to display in the loader.
14
+ * If not provided, no message will be shown.
15
+ * @default undefined
16
+ */
17
+ message?: ReactNode;
18
+ } & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ChatMessageLoader = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("react");
12
+ var _ChatMessageLoader = require("./ChatMessageLoader.styles");
13
+ var _ShimmerText = require("./../../../Helpers/ShimmerText/ShimmerText");
14
+ var _Indicators = require("./../../../Indicators");
15
+ var _satellitePrefixer = _interopRequireDefault(require("./../../../styles/helpers/satellitePrefixer"));
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ var _templateObject;
18
+ var _excluded = ["message", "rtl", "className"];
19
+ 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; }
20
+ 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; }
21
+ var ChatMessageLoader = exports.ChatMessageLoader = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
22
+ var message = _ref.message,
23
+ rtl = _ref.rtl,
24
+ className = _ref.className,
25
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
26
+ var styles = (0, _ChatMessageLoader.chatMessageLoaderStyles)({
27
+ side: "left",
28
+ variant: "subtle",
29
+ leading: true
30
+ });
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("article", _objectSpread(_objectSpread({}, props), {}, {
32
+ ref: ref,
33
+ className: styles.base({
34
+ className: className
35
+ }),
36
+ dir: rtl ? "rtl" : "ltr",
37
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
38
+ className: styles.container(),
39
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
40
+ className: styles.leading(),
41
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Indicators.ProgressSpinner, {})
42
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
43
+ className: styles.content(),
44
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
45
+ className: styles.message(),
46
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ShimmerText.ShimmerText, {
47
+ children: message
48
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
49
+ className: styles.skeletonWrapper(),
50
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Indicators.Skeleton, {
51
+ className: styles.skeleton()
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Indicators.Skeleton, {
53
+ className: styles.skeleton({
54
+ className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["w-2/5"])))
55
+ })
56
+ })]
57
+ })]
58
+ })
59
+ })]
60
+ })
61
+ }));
62
+ });
63
+ ChatMessageLoader.displayName = "ChatMessageLoader";
@@ -0,0 +1,200 @@
1
+ export declare const chatMessageLoaderStyles: import("tailwind-variants").TVReturnType<{
2
+ [key: string]: {
3
+ [key: string]: import("tailwind-merge").ClassNameValue | {
4
+ content?: import("tailwind-merge").ClassNameValue;
5
+ message?: import("tailwind-merge").ClassNameValue;
6
+ skeletonWrapper?: import("tailwind-merge").ClassNameValue;
7
+ skeleton?: import("tailwind-merge").ClassNameValue;
8
+ };
9
+ };
10
+ } | {
11
+ variant: {
12
+ neutral: import("tailwind-merge").ClassNameValue | {
13
+ content?: import("tailwind-merge").ClassNameValue;
14
+ message?: import("tailwind-merge").ClassNameValue;
15
+ skeletonWrapper?: import("tailwind-merge").ClassNameValue;
16
+ skeleton?: import("tailwind-merge").ClassNameValue;
17
+ };
18
+ subtle: import("tailwind-merge").ClassNameValue | {
19
+ content?: import("tailwind-merge").ClassNameValue;
20
+ message?: import("tailwind-merge").ClassNameValue;
21
+ skeletonWrapper?: import("tailwind-merge").ClassNameValue;
22
+ skeleton?: import("tailwind-merge").ClassNameValue;
23
+ };
24
+ };
25
+ side: {
26
+ left: import("tailwind-merge").ClassNameValue | {
27
+ content?: import("tailwind-merge").ClassNameValue;
28
+ message?: import("tailwind-merge").ClassNameValue;
29
+ skeletonWrapper?: import("tailwind-merge").ClassNameValue;
30
+ skeleton?: import("tailwind-merge").ClassNameValue;
31
+ };
32
+ right: import("tailwind-merge").ClassNameValue | {
33
+ content?: import("tailwind-merge").ClassNameValue;
34
+ message?: import("tailwind-merge").ClassNameValue;
35
+ skeletonWrapper?: import("tailwind-merge").ClassNameValue;
36
+ skeleton?: import("tailwind-merge").ClassNameValue;
37
+ };
38
+ };
39
+ leading: {
40
+ true: import("tailwind-merge").ClassNameValue | {
41
+ content?: import("tailwind-merge").ClassNameValue;
42
+ message?: import("tailwind-merge").ClassNameValue;
43
+ skeletonWrapper?: import("tailwind-merge").ClassNameValue;
44
+ skeleton?: import("tailwind-merge").ClassNameValue;
45
+ };
46
+ };
47
+ actions: {
48
+ true: import("tailwind-merge").ClassNameValue | {
49
+ content?: import("tailwind-merge").ClassNameValue;
50
+ message?: import("tailwind-merge").ClassNameValue;
51
+ skeletonWrapper?: import("tailwind-merge").ClassNameValue;
52
+ skeleton?: import("tailwind-merge").ClassNameValue;
53
+ };
54
+ };
55
+ autoHideActions: {
56
+ true: import("tailwind-merge").ClassNameValue | {
57
+ content?: import("tailwind-merge").ClassNameValue;
58
+ message?: import("tailwind-merge").ClassNameValue;
59
+ skeletonWrapper?: import("tailwind-merge").ClassNameValue;
60
+ skeleton?: import("tailwind-merge").ClassNameValue;
61
+ };
62
+ };
63
+ }, {
64
+ content: string;
65
+ message: string;
66
+ skeletonWrapper: string;
67
+ skeleton: string;
68
+ }, undefined, {
69
+ variant: {
70
+ neutral: {
71
+ message: string;
72
+ };
73
+ subtle: {
74
+ message: string;
75
+ };
76
+ };
77
+ side: {
78
+ left: {
79
+ container: string;
80
+ };
81
+ right: {
82
+ container: string;
83
+ };
84
+ };
85
+ leading: {
86
+ true: string;
87
+ };
88
+ actions: {
89
+ true: string;
90
+ };
91
+ autoHideActions: {
92
+ true: string;
93
+ };
94
+ }, {
95
+ base: string;
96
+ container: string;
97
+ leading: string;
98
+ content: string;
99
+ message: string;
100
+ actions: string;
101
+ }, import("tailwind-variants").TVReturnType<{
102
+ variant: {
103
+ neutral: {
104
+ message: string;
105
+ };
106
+ subtle: {
107
+ message: string;
108
+ };
109
+ };
110
+ side: {
111
+ left: {
112
+ container: string;
113
+ };
114
+ right: {
115
+ container: string;
116
+ };
117
+ };
118
+ leading: {
119
+ true: string;
120
+ };
121
+ actions: {
122
+ true: string;
123
+ };
124
+ autoHideActions: {
125
+ true: string;
126
+ };
127
+ }, {
128
+ base: string;
129
+ container: string;
130
+ leading: string;
131
+ content: string;
132
+ message: string;
133
+ actions: string;
134
+ }, undefined, {
135
+ variant: {
136
+ neutral: {
137
+ message: string;
138
+ };
139
+ subtle: {
140
+ message: string;
141
+ };
142
+ };
143
+ side: {
144
+ left: {
145
+ container: string;
146
+ };
147
+ right: {
148
+ container: string;
149
+ };
150
+ };
151
+ leading: {
152
+ true: string;
153
+ };
154
+ actions: {
155
+ true: string;
156
+ };
157
+ autoHideActions: {
158
+ true: string;
159
+ };
160
+ }, {
161
+ base: string;
162
+ container: string;
163
+ leading: string;
164
+ content: string;
165
+ message: string;
166
+ actions: string;
167
+ }, import("tailwind-variants").TVReturnType<{
168
+ variant: {
169
+ neutral: {
170
+ message: string;
171
+ };
172
+ subtle: {
173
+ message: string;
174
+ };
175
+ };
176
+ side: {
177
+ left: {
178
+ container: string;
179
+ };
180
+ right: {
181
+ container: string;
182
+ };
183
+ };
184
+ leading: {
185
+ true: string;
186
+ };
187
+ actions: {
188
+ true: string;
189
+ };
190
+ autoHideActions: {
191
+ true: string;
192
+ };
193
+ }, {
194
+ base: string;
195
+ container: string;
196
+ leading: string;
197
+ content: string;
198
+ message: string;
199
+ actions: string;
200
+ }, undefined, unknown, unknown, undefined>>>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.chatMessageLoaderStyles = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _ChatMessage = require("./../ChatMessage/ChatMessage.styles");
10
+ var _satellitePrefixer = _interopRequireDefault(require("./../../../styles/helpers/satellitePrefixer"));
11
+ var _tv = require("./../../../styles/helpers/tv");
12
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
13
+ var chatMessageLoaderStyles = exports.chatMessageLoaderStyles = (0, _tv.tv)({
14
+ extend: _ChatMessage.chatMessageStyles,
15
+ slots: {
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 typo-subdued"]))),
18
+ skeletonWrapper: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-1"]))),
19
+ skeleton: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["h-4"])))
20
+ }
21
+ });
@@ -0,0 +1 @@
1
+ export * from "./ChatMessageLoader";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _ChatMessageLoader = require("./ChatMessageLoader");
7
+ Object.keys(_ChatMessageLoader).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _ChatMessageLoader[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _ChatMessageLoader[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1,42 @@
1
+ import type { HTMLAttributes, ReactElement, ReactNode, Ref } from "react";
2
+ import type { ChatMessageProps } from "../../../Layout/Chat/ChatMessage";
3
+ import type { ChatMessageErrorProps } from "../../../Layout/Chat/ChatMessageError";
4
+ import type { ChatMessageLoaderProps } from "../../../Layout/Chat/ChatMessageLoader";
5
+ import type { ChatMessageBase, ChatStatus } from "../../../Layout/Chat/types";
6
+ export declare type ChatMessageLocale = {
7
+ scrollToBottomText?: string;
8
+ };
9
+ export declare type ChatMessagesProps<Message extends ChatMessageBase = ChatMessageBase> = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
10
+ messages: Message[];
11
+ userMessageProps?: Omit<ChatMessageProps<Message>, "content">;
12
+ assistantMessageProps?: Omit<ChatMessageProps<Message>, "content">;
13
+ loaderProps?: ChatMessageLoaderProps;
14
+ errorProps?: Omit<ChatMessageErrorProps, "onReload">;
15
+ renderMessage?: (message: Message) => ReactNode;
16
+ renderLoader?: ReactNode;
17
+ renderError?: ReactNode;
18
+ status?: ChatStatus;
19
+ onReload?: () => void;
20
+ hideScrollToBottom?: boolean;
21
+ scrollClassName?: string;
22
+ contentClassName?: string;
23
+ locale?: ChatMessageLocale;
24
+ };
25
+ export declare const ChatMessages: <Message extends ChatMessageBase = ChatMessageBase>(props: Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
26
+ messages: Message[];
27
+ userMessageProps?: Omit<ChatMessageProps<Message>, "content"> | undefined;
28
+ assistantMessageProps?: Omit<ChatMessageProps<Message>, "content"> | undefined;
29
+ loaderProps?: ChatMessageLoaderProps | undefined;
30
+ errorProps?: Omit<ChatMessageErrorProps, "onReload"> | undefined;
31
+ renderMessage?: ((message: Message) => ReactNode) | undefined;
32
+ renderLoader?: ReactNode;
33
+ renderError?: ReactNode;
34
+ status?: ChatStatus | undefined;
35
+ onReload?: (() => void) | undefined;
36
+ hideScrollToBottom?: boolean | undefined;
37
+ scrollClassName?: string | undefined;
38
+ contentClassName?: string | undefined;
39
+ locale?: ChatMessageLocale | undefined;
40
+ } & {
41
+ ref?: Ref<HTMLDivElement> | undefined;
42
+ }) => ReactElement | null;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ChatMessages = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _lucideReact = require("lucide-react");
13
+ var _react = require("react");
14
+ var _useStickToBottom2 = require("use-stick-to-bottom");
15
+ var _ChatMessages = require("./ChatMessages.styles");
16
+ var _useLastMessageHeight = require("./useLastMessageHeight");
17
+ var _Actions = require("./../../../Actions");
18
+ var _ChatMessage = require("./../ChatMessage");
19
+ var _ChatMessageError = require("./../ChatMessageError");
20
+ var _ChatMessageLoader = require("./../ChatMessageLoader");
21
+ var _Satellite = require("./../../../Satellite");
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"];
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
+ 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
+ var DEFAULT_CHAT_MESSAGE_LOCALE = {
27
+ scrollToBottomText: "Scroll to bottom"
28
+ };
29
+ var ChatMessagesBase = function ChatMessagesBase(_ref, forwardedRef) {
30
+ var messages = _ref.messages,
31
+ userMessageProps = _ref.userMessageProps,
32
+ assistantMessageProps = _ref.assistantMessageProps,
33
+ loaderProps = _ref.loaderProps,
34
+ errorProps = _ref.errorProps,
35
+ renderMessage = _ref.renderMessage,
36
+ renderLoader = _ref.renderLoader,
37
+ renderError = _ref.renderError,
38
+ status = _ref.status,
39
+ onReload = _ref.onReload,
40
+ _ref$hideScrollToBott = _ref.hideScrollToBottom,
41
+ hideScrollToBottom = _ref$hideScrollToBott === void 0 ? false : _ref$hideScrollToBott,
42
+ className = _ref.className,
43
+ scrollClassName = _ref.scrollClassName,
44
+ contentClassName = _ref.contentClassName,
45
+ propsLocale = _ref.locale,
46
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
47
+ var contextLocale = (0, _Satellite.useLocale)("chatMessage");
48
+ var locale = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_CHAT_MESSAGE_LOCALE), contextLocale), propsLocale);
49
+ var _useStickToBottom = (0, _useStickToBottom2.useStickToBottom)({
50
+ resize: "smooth",
51
+ initial: "smooth"
52
+ }),
53
+ scrollRef = _useStickToBottom.scrollRef,
54
+ contentRef = _useStickToBottom.contentRef,
55
+ isAtBottom = _useStickToBottom.isAtBottom,
56
+ scrollToBottom = _useStickToBottom.scrollToBottom;
57
+ var styles = (0, _ChatMessages.chatMessagesStyles)();
58
+ var messageRefs = (0, _react.useRef)(new Map());
59
+ var _useState = (0, _react.useState)(false),
60
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
61
+ lastMessageSubmitted = _useState2[0],
62
+ setLastMessageSubmitted = _useState2[1];
63
+ var lastUserMessage = (0, _toConsumableArray2["default"])(messages).reverse().find(function (m) {
64
+ return m.role === "user";
65
+ });
66
+ var lastUserMessageEl = lastUserMessage ? messageRefs.current.get(lastUserMessage.id) : undefined;
67
+ var lastMessageHeight = (0, _useLastMessageHeight.useLastMessageHeight)(scrollRef, messages, lastUserMessageEl, lastMessageSubmitted, 24);
68
+ (0, _react.useEffect)(function () {
69
+ if (status !== "submitted" || !lastUserMessage) {
70
+ return;
71
+ }
72
+ setLastMessageSubmitted(true);
73
+ }, [status, messages, lastUserMessage]);
74
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({}, props), {}, {
75
+ ref: forwardedRef,
76
+ className: styles.base({
77
+ className: className
78
+ }),
79
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
80
+ ref: scrollRef,
81
+ className: styles.scroll({
82
+ className: scrollClassName
83
+ }),
84
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
85
+ ref: contentRef,
86
+ className: styles.content({
87
+ className: contentClassName
88
+ }),
89
+ style: {
90
+ "--last-message-height": "".concat(lastMessageHeight, "px")
91
+ },
92
+ children: [messages.map(function (message) {
93
+ var isAssistant = message.role === "assistant";
94
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChatMessage.ChatMessage, _objectSpread(_objectSpread({
95
+ ref: function ref(el) {
96
+ if (el) messageRefs.current.set(message.id, el);else messageRefs.current["delete"](message.id);
97
+ },
98
+ side: isAssistant ? "left" : "right",
99
+ variant: isAssistant ? "subtle" : "neutral",
100
+ content: renderMessage ? renderMessage(message) : message.content
101
+ }, isAssistant ? assistantMessageProps : userMessageProps), {}, {
102
+ "data-role": message.role,
103
+ actionsExtraData: message,
104
+ "data-key": message.id
105
+ }), message.id);
106
+ }), 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), {}, {
107
+ onReload: onReload
108
+ })))]
109
+ })
110
+ }), !hideScrollToBottom && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.IconButton, {
111
+ icon: _lucideReact.ChevronDownIcon,
112
+ title: locale.scrollToBottomText,
113
+ size: "small",
114
+ onClick: function onClick() {
115
+ return scrollToBottom();
116
+ },
117
+ className: styles.scrollToBottom({
118
+ isAtBottom: isAtBottom
119
+ }),
120
+ tooltipHideDelay: 0
121
+ })]
122
+ }));
123
+ };
124
+ var ChatMessages = exports.ChatMessages = /*#__PURE__*/(0, _react.forwardRef)(ChatMessagesBase);
@@ -0,0 +1,43 @@
1
+ export declare const chatMessagesStyles: import("tailwind-variants").TVReturnType<{
2
+ isAtBottom: {
3
+ true: {
4
+ scrollToBottom: string;
5
+ };
6
+ false: {
7
+ scrollToBottom: string;
8
+ };
9
+ };
10
+ }, {
11
+ base: string;
12
+ scroll: string;
13
+ content: string;
14
+ scrollToBottom: string;
15
+ }, undefined, {
16
+ isAtBottom: {
17
+ true: {
18
+ scrollToBottom: string;
19
+ };
20
+ false: {
21
+ scrollToBottom: string;
22
+ };
23
+ };
24
+ }, {
25
+ base: string;
26
+ scroll: string;
27
+ content: string;
28
+ scrollToBottom: string;
29
+ }, import("tailwind-variants").TVReturnType<{
30
+ isAtBottom: {
31
+ true: {
32
+ scrollToBottom: string;
33
+ };
34
+ false: {
35
+ scrollToBottom: string;
36
+ };
37
+ };
38
+ }, {
39
+ base: string;
40
+ scroll: string;
41
+ content: string;
42
+ scrollToBottom: string;
43
+ }, undefined, unknown, unknown, undefined>>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.chatMessagesStyles = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _satellitePrefixer = _interopRequireDefault(require("./../../../styles/helpers/satellitePrefixer"));
10
+ var _tv = require("./../../../styles/helpers/tv");
11
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
12
+ var chatMessagesStyles = exports.chatMessagesStyles = (0, _tv.tv)({
13
+ slots: {
14
+ base: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["relative flex flex-col overflow-hidden h-full"]))),
15
+ scroll: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["overflow-y-auto overflow-x-hidden thin-scrollbar size-full"]))),
16
+ content: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["flex flex-col gap-6 w-full flex-1 [&>article:last-of-type]:min-h-[var(--last-message-height)]"]))),
17
+ scrollToBottom: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["absolute bottom-4 left-1/2 -translate-x-1/2 transition-[transform,opacity] duration-300 ease-out"])))
18
+ },
19
+ variants: {
20
+ isAtBottom: {
21
+ "true": {
22
+ scrollToBottom: (0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["pointer-events-none translate-y-4 scale-95 opacity-0"])))
23
+ },
24
+ "false": {
25
+ scrollToBottom: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["translate-y-0 scale-100 opacity-100"])))
26
+ }
27
+ }
28
+ }
29
+ });
@@ -0,0 +1 @@
1
+ export * from "./ChatMessages";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _ChatMessages = require("./ChatMessages");
7
+ Object.keys(_ChatMessages).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _ChatMessages[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _ChatMessages[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1,10 @@
1
+ import type { RefObject } from "react";
2
+ /**
3
+ * React hook to compute the “fill” height below the last user message,
4
+ * based on the scroll container’s height, the last user‐message element’s height,
5
+ * and any CSS gap/padding offsets.
6
+ */
7
+ export declare function useLastMessageHeight(scrollRef: RefObject<HTMLElement>, messages: Array<{
8
+ id: string;
9
+ role: string;
10
+ }>, lastUserMessageEl: HTMLElement | undefined, lastMessageSubmitted: boolean, spacingOffset?: number): number;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useLastMessageHeight = useLastMessageHeight;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = require("react");
10
+ /**
11
+ * React hook to compute the “fill” height below the last user message,
12
+ * based on the scroll container’s height, the last user‐message element’s height,
13
+ * and any CSS gap/padding offsets.
14
+ */
15
+ function useLastMessageHeight(scrollRef, messages, lastUserMessageEl, lastMessageSubmitted) {
16
+ var spacingOffset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
17
+ var _useState = (0, _react.useState)(0),
18
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
19
+ lastMessageHeight = _useState2[0],
20
+ setLastMessageHeight = _useState2[1];
21
+ var updateLastMessageHeight = function updateLastMessageHeight() {
22
+ var scrollEl = scrollRef.current;
23
+ if (!scrollEl || messages.length === 0 || !lastMessageSubmitted || !lastUserMessageEl) return;
24
+
25
+ // Measure parent/container height
26
+ var parentHeight = scrollEl.clientHeight;
27
+
28
+ // Compute any CSS gap/rowGap/padding offsets by reading computed style
29
+ var computed = window.getComputedStyle(scrollEl);
30
+ var rowGapValue = parseFloat(computed.rowGap) || parseFloat(computed.gap) || 0;
31
+ var paddingTop = parseFloat(computed.paddingTop) || 0;
32
+ var paddingBottom = parseFloat(computed.paddingBottom) || 0;
33
+ var totalOffset = spacingOffset + rowGapValue + paddingTop + paddingBottom;
34
+
35
+ // The “remaining” height is parentHeight − lastMsgElem.offsetHeight − totalOffset
36
+ var remaining = parentHeight - lastUserMessageEl.offsetHeight - totalOffset;
37
+ setLastMessageHeight(Math.max(remaining, 0));
38
+ };
39
+
40
+ // Recompute whenever messages change and a new user message has just been submitted
41
+ (0, _react.useLayoutEffect)(function () {
42
+ if (!lastMessageSubmitted) return;
43
+ updateLastMessageHeight();
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ }, [messages, lastMessageSubmitted]);
46
+ return lastMessageHeight;
47
+ }