@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.
Files changed (210) hide show
  1. package/dist/cjs/Actions/Button/PolymorphicButton.js +5 -5
  2. package/dist/cjs/Actions/Button/PolymorphicIconButton.js +2 -2
  3. package/dist/cjs/Actions/Button/styles.d.ts +1 -0
  4. package/dist/cjs/Actions/Button/styles.js +15 -10
  5. package/dist/cjs/Actions/ButtonLink/ButtonLink.d.ts +2 -0
  6. package/dist/cjs/Actions/ButtonLink/ButtonLink.js +4 -2
  7. package/dist/cjs/Actions/SegmentedControl/SegmentedControl.js +3 -2
  8. package/dist/cjs/Actions/SegmentedControl/SegmentedControlOption.js +6 -3
  9. package/dist/cjs/Actions/ToggleButton/ToggleButtonBase.js +3 -3
  10. package/dist/cjs/Actions/ToggleGroup/ToggleGroup.d.ts +13 -14
  11. package/dist/cjs/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +23 -0
  12. package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.js +9 -2
  13. package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.styles.d.ts +20 -1
  14. package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.styles.js +3 -3
  15. package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/ChatMessage.d.ts +80 -3
  16. package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/ChatMessage.js +14 -5
  17. package/dist/{esm/Layout/Chat/ChatMessageError/ChatMessageError.styles.d.ts → cjs/Chat/ChatMessage/ChatMessage.styles.d.ts} +34 -40
  18. package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/ChatMessage.styles.js +20 -14
  19. package/dist/{esm/Layout → cjs}/Chat/ChatMessageError/ChatMessageError.d.ts +7 -2
  20. package/dist/cjs/{Layout/Chat → Chat}/ChatMessageError/ChatMessageError.js +9 -4
  21. package/dist/cjs/Chat/ChatMessageError/ChatMessageError.styles.d.ts +253 -0
  22. package/dist/cjs/{Layout/Chat → Chat}/ChatMessageError/ChatMessageError.styles.js +2 -2
  23. package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.d.ts +6 -3
  24. package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.js +9 -4
  25. package/dist/{esm/Layout → cjs}/Chat/ChatMessageLoader/ChatMessageLoader.styles.d.ts +89 -9
  26. package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.styles.js +3 -3
  27. package/dist/cjs/Chat/ChatMessages/ChatMessages.d.ts +141 -0
  28. package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/ChatMessages.js +64 -23
  29. package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/ChatMessages.styles.d.ts +27 -1
  30. package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/ChatMessages.styles.js +2 -2
  31. package/dist/cjs/Chat/ChatMessages/useLastMessageHeight.d.ts +14 -0
  32. package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/useLastMessageHeight.js +21 -14
  33. package/dist/{esm/Layout → cjs}/Chat/ChatPrompt/ChatPrompt.d.ts +34 -12
  34. package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/ChatPrompt.js +46 -19
  35. package/dist/cjs/Chat/ChatPrompt/ChatPrompt.styles.d.ts +63 -0
  36. package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/ChatPrompt.styles.js +11 -4
  37. package/dist/cjs/Chat/ChatPrompt/useFocusTyping.d.ts +30 -0
  38. package/dist/cjs/Chat/ChatPrompt/useFocusTyping.js +65 -0
  39. package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/useTypewriter.d.ts +9 -0
  40. package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/useTypewriter.js +9 -0
  41. package/dist/cjs/Fields/Checkbox/Checkbox.d.ts +2 -2
  42. package/dist/cjs/Fields/Checkbox/Checkbox.js +2 -2
  43. package/dist/cjs/Fields/Dropzone/Dropzone.js +1 -1
  44. package/dist/cjs/Fields/Form/stories/Complex.js +123 -50
  45. package/dist/cjs/Fields/Input/Input.js +10 -13
  46. package/dist/cjs/Fields/RadioGroup/RadioButton.js +9 -2
  47. package/dist/cjs/Fields/RadioGroup/RadioButton.tailwind.js +1 -1
  48. package/dist/cjs/Fields/RadioGroup/RadioGroupContext.d.ts +2 -0
  49. package/dist/cjs/Fields/RadioGroup/RadioGroupItem.js +1 -1
  50. package/dist/cjs/Fields/Select/Select.tailwind.js +4 -3
  51. package/dist/cjs/Fields/SelectableCard/SelectableCard.d.ts +35 -0
  52. package/dist/cjs/Fields/SelectableCard/SelectableCard.js +105 -0
  53. package/dist/cjs/Fields/SelectableCard/SelectableCardContext.d.ts +13 -0
  54. package/dist/cjs/Fields/SelectableCard/SelectableCardContext.js +15 -0
  55. package/dist/cjs/Fields/SelectableCard/SelectableCardGroup.d.ts +13 -0
  56. package/dist/cjs/Fields/SelectableCard/SelectableCardGroup.js +55 -0
  57. package/dist/cjs/Fields/SelectableCard/index.d.ts +2 -0
  58. package/dist/cjs/Fields/SelectableCard/index.js +27 -0
  59. package/dist/cjs/Fields/Switch/Switch.js +1 -1
  60. package/dist/cjs/Fields/TextAreaAutoSize/TextAreaAutoSize.d.ts +12 -4
  61. package/dist/cjs/Fields/TextAreaAutoSize/TextAreaAutoSize.styles.d.ts +13 -1
  62. package/dist/cjs/Fields/index.d.ts +1 -0
  63. package/dist/cjs/Fields/index.js +11 -0
  64. package/dist/cjs/Helpers/MarkdownContent/MarkdownContent.d.ts +15 -0
  65. package/dist/cjs/Helpers/MarkdownContent/MarkdownContent.js +29 -0
  66. package/dist/cjs/Helpers/MarkdownContent/MarkdownContent.tailwind.d.ts +5 -0
  67. package/dist/cjs/Helpers/MarkdownContent/MarkdownContent.tailwind.js +138 -0
  68. package/dist/cjs/Helpers/MarkdownContent/index.d.ts +1 -0
  69. package/dist/cjs/Helpers/MarkdownContent/index.js +16 -0
  70. package/dist/cjs/Helpers/ShimmerText/ShimmerText.tailwind.js +1 -1
  71. package/dist/cjs/Helpers/index.d.ts +1 -0
  72. package/dist/cjs/Helpers/index.js +11 -0
  73. package/dist/cjs/Helpers/utilities/focusable.tailwind.js +1 -1
  74. package/dist/cjs/Layout/index.d.ts +0 -1
  75. package/dist/cjs/Layout/index.js +0 -11
  76. package/dist/cjs/Navigation/Link/Link.d.ts +10 -0
  77. package/dist/cjs/Navigation/Link/Link.js +4 -2
  78. package/dist/cjs/Satellite/locale.d.ts +3 -3
  79. package/dist/cjs/index.d.ts +1 -0
  80. package/dist/cjs/index.js +12 -0
  81. package/dist/cjs/styles/helpers/tv.d.ts +5 -1
  82. package/dist/cjs/styles/tailwind.config.js +1 -1
  83. package/dist/cjs/utils/isCssPropertySupported.d.ts +1 -1
  84. package/dist/esm/Actions/Button/PolymorphicButton.js +6 -6
  85. package/dist/esm/Actions/Button/PolymorphicIconButton.js +2 -2
  86. package/dist/esm/Actions/Button/styles.d.ts +1 -0
  87. package/dist/esm/Actions/Button/styles.js +14 -9
  88. package/dist/esm/Actions/ButtonLink/ButtonLink.d.ts +2 -0
  89. package/dist/esm/Actions/ButtonLink/ButtonLink.js +4 -2
  90. package/dist/esm/Actions/SegmentedControl/SegmentedControl.js +3 -2
  91. package/dist/esm/Actions/SegmentedControl/SegmentedControlOption.js +6 -3
  92. package/dist/esm/Actions/ToggleButton/ToggleButtonBase.js +4 -4
  93. package/dist/esm/Actions/ToggleGroup/ToggleGroup.d.ts +13 -14
  94. package/dist/esm/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +23 -0
  95. package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.js +9 -2
  96. package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.styles.d.ts +20 -1
  97. package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/ChatContextAccordion.styles.js +3 -3
  98. package/dist/esm/{Layout/Chat → Chat}/ChatMessage/ChatMessage.d.ts +80 -3
  99. package/dist/esm/{Layout/Chat → Chat}/ChatMessage/ChatMessage.js +14 -5
  100. package/dist/{cjs/Layout/Chat/ChatMessageError/ChatMessageError.styles.d.ts → esm/Chat/ChatMessage/ChatMessage.styles.d.ts} +34 -40
  101. package/dist/esm/{Layout/Chat → Chat}/ChatMessage/ChatMessage.styles.js +20 -14
  102. package/dist/{cjs/Layout → esm}/Chat/ChatMessageError/ChatMessageError.d.ts +7 -2
  103. package/dist/esm/{Layout/Chat → Chat}/ChatMessageError/ChatMessageError.js +8 -3
  104. package/dist/esm/Chat/ChatMessageError/ChatMessageError.styles.d.ts +253 -0
  105. package/dist/esm/{Layout/Chat → Chat}/ChatMessageError/ChatMessageError.styles.js +2 -2
  106. package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.d.ts +6 -3
  107. package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.js +9 -4
  108. package/dist/{cjs/Layout → esm}/Chat/ChatMessageLoader/ChatMessageLoader.styles.d.ts +89 -9
  109. package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/ChatMessageLoader.styles.js +3 -3
  110. package/dist/esm/Chat/ChatMessages/ChatMessages.d.ts +141 -0
  111. package/dist/esm/{Layout/Chat → Chat}/ChatMessages/ChatMessages.js +64 -25
  112. package/dist/esm/{Layout/Chat → Chat}/ChatMessages/ChatMessages.styles.d.ts +27 -1
  113. package/dist/esm/{Layout/Chat → Chat}/ChatMessages/ChatMessages.styles.js +2 -2
  114. package/dist/esm/Chat/ChatMessages/useLastMessageHeight.d.ts +14 -0
  115. package/dist/esm/{Layout/Chat → Chat}/ChatMessages/useLastMessageHeight.js +22 -15
  116. package/dist/{cjs/Layout → esm}/Chat/ChatPrompt/ChatPrompt.d.ts +34 -12
  117. package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/ChatPrompt.js +47 -19
  118. package/dist/esm/Chat/ChatPrompt/ChatPrompt.styles.d.ts +63 -0
  119. package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/ChatPrompt.styles.js +11 -4
  120. package/dist/esm/Chat/ChatPrompt/useFocusTyping.d.ts +30 -0
  121. package/dist/esm/Chat/ChatPrompt/useFocusTyping.js +59 -0
  122. package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/useTypewriter.d.ts +9 -0
  123. package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/useTypewriter.js +9 -0
  124. package/dist/esm/Fields/Checkbox/Checkbox.d.ts +2 -2
  125. package/dist/esm/Fields/Checkbox/Checkbox.js +2 -2
  126. package/dist/esm/Fields/Dropzone/Dropzone.js +1 -1
  127. package/dist/esm/Fields/Form/stories/Complex.js +123 -50
  128. package/dist/esm/Fields/Input/Input.js +10 -13
  129. package/dist/esm/Fields/RadioGroup/RadioButton.js +10 -3
  130. package/dist/esm/Fields/RadioGroup/RadioButton.tailwind.js +1 -1
  131. package/dist/esm/Fields/RadioGroup/RadioGroupContext.d.ts +2 -0
  132. package/dist/esm/Fields/RadioGroup/RadioGroupItem.js +1 -1
  133. package/dist/esm/Fields/Select/Select.tailwind.js +4 -3
  134. package/dist/esm/Fields/SelectableCard/SelectableCard.d.ts +35 -0
  135. package/dist/esm/Fields/SelectableCard/SelectableCard.js +100 -0
  136. package/dist/esm/Fields/SelectableCard/SelectableCardContext.d.ts +13 -0
  137. package/dist/esm/Fields/SelectableCard/SelectableCardContext.js +9 -0
  138. package/dist/esm/Fields/SelectableCard/SelectableCardGroup.d.ts +13 -0
  139. package/dist/esm/Fields/SelectableCard/SelectableCardGroup.js +48 -0
  140. package/dist/esm/Fields/SelectableCard/index.d.ts +2 -0
  141. package/dist/esm/Fields/SelectableCard/index.js +2 -0
  142. package/dist/esm/Fields/Switch/Switch.js +1 -1
  143. package/dist/esm/Fields/TextAreaAutoSize/TextAreaAutoSize.d.ts +12 -4
  144. package/dist/esm/Fields/TextAreaAutoSize/TextAreaAutoSize.styles.d.ts +13 -1
  145. package/dist/esm/Fields/index.d.ts +1 -0
  146. package/dist/esm/Fields/index.js +1 -0
  147. package/dist/esm/Helpers/MarkdownContent/MarkdownContent.d.ts +15 -0
  148. package/dist/esm/Helpers/MarkdownContent/MarkdownContent.js +22 -0
  149. package/dist/esm/Helpers/MarkdownContent/MarkdownContent.tailwind.d.ts +5 -0
  150. package/dist/esm/Helpers/MarkdownContent/MarkdownContent.tailwind.js +138 -0
  151. package/dist/esm/Helpers/MarkdownContent/index.d.ts +1 -0
  152. package/dist/esm/Helpers/MarkdownContent/index.js +1 -0
  153. package/dist/esm/Helpers/ShimmerText/ShimmerText.tailwind.js +1 -1
  154. package/dist/esm/Helpers/index.d.ts +1 -0
  155. package/dist/esm/Helpers/index.js +2 -1
  156. package/dist/esm/Helpers/utilities/focusable.tailwind.js +1 -1
  157. package/dist/esm/Layout/index.d.ts +0 -1
  158. package/dist/esm/Layout/index.js +0 -1
  159. package/dist/esm/Navigation/Link/Link.d.ts +10 -0
  160. package/dist/esm/Navigation/Link/Link.js +4 -2
  161. package/dist/esm/Satellite/locale.d.ts +3 -3
  162. package/dist/esm/index.d.ts +1 -0
  163. package/dist/esm/index.js +1 -0
  164. package/dist/esm/styles/helpers/tv.d.ts +5 -1
  165. package/dist/esm/styles/tailwind.config.js +1 -1
  166. package/dist/esm/utils/isCssPropertySupported.d.ts +1 -1
  167. package/dist/satellite.min.css +1 -1
  168. package/package.json +5 -4
  169. package/dist/cjs/Layout/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +0 -8
  170. package/dist/cjs/Layout/Chat/ChatMessage/ChatMessage.styles.d.ts +0 -100
  171. package/dist/cjs/Layout/Chat/ChatMessages/ChatMessages.d.ts +0 -42
  172. package/dist/cjs/Layout/Chat/ChatMessages/useLastMessageHeight.d.ts +0 -10
  173. package/dist/cjs/Layout/Chat/ChatPrompt/ChatPrompt.styles.d.ts +0 -61
  174. package/dist/esm/Layout/Chat/ChatContextAccordion/ChatContextAccordion.d.ts +0 -8
  175. package/dist/esm/Layout/Chat/ChatMessage/ChatMessage.styles.d.ts +0 -100
  176. package/dist/esm/Layout/Chat/ChatMessages/ChatMessages.d.ts +0 -42
  177. package/dist/esm/Layout/Chat/ChatMessages/useLastMessageHeight.d.ts +0 -10
  178. package/dist/esm/Layout/Chat/ChatPrompt/ChatPrompt.styles.d.ts +0 -61
  179. /package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/index.d.ts +0 -0
  180. /package/dist/cjs/{Layout/Chat → Chat}/ChatContextAccordion/index.js +0 -0
  181. /package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/index.d.ts +0 -0
  182. /package/dist/cjs/{Layout/Chat → Chat}/ChatMessage/index.js +0 -0
  183. /package/dist/cjs/{Layout/Chat → Chat}/ChatMessageError/index.d.ts +0 -0
  184. /package/dist/cjs/{Layout/Chat → Chat}/ChatMessageError/index.js +0 -0
  185. /package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/index.d.ts +0 -0
  186. /package/dist/cjs/{Layout/Chat → Chat}/ChatMessageLoader/index.js +0 -0
  187. /package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/index.d.ts +0 -0
  188. /package/dist/cjs/{Layout/Chat → Chat}/ChatMessages/index.js +0 -0
  189. /package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/index.d.ts +0 -0
  190. /package/dist/cjs/{Layout/Chat → Chat}/ChatPrompt/index.js +0 -0
  191. /package/dist/cjs/{Layout/Chat → Chat}/index.d.ts +0 -0
  192. /package/dist/cjs/{Layout/Chat → Chat}/index.js +0 -0
  193. /package/dist/cjs/{Layout/Chat → Chat}/types.d.ts +0 -0
  194. /package/dist/cjs/{Layout/Chat → Chat}/types.js +0 -0
  195. /package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/index.d.ts +0 -0
  196. /package/dist/esm/{Layout/Chat → Chat}/ChatContextAccordion/index.js +0 -0
  197. /package/dist/esm/{Layout/Chat → Chat}/ChatMessage/index.d.ts +0 -0
  198. /package/dist/esm/{Layout/Chat → Chat}/ChatMessage/index.js +0 -0
  199. /package/dist/esm/{Layout/Chat → Chat}/ChatMessageError/index.d.ts +0 -0
  200. /package/dist/esm/{Layout/Chat → Chat}/ChatMessageError/index.js +0 -0
  201. /package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/index.d.ts +0 -0
  202. /package/dist/esm/{Layout/Chat → Chat}/ChatMessageLoader/index.js +0 -0
  203. /package/dist/esm/{Layout/Chat → Chat}/ChatMessages/index.d.ts +0 -0
  204. /package/dist/esm/{Layout/Chat → Chat}/ChatMessages/index.js +0 -0
  205. /package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/index.d.ts +0 -0
  206. /package/dist/esm/{Layout/Chat → Chat}/ChatPrompt/index.js +0 -0
  207. /package/dist/esm/{Layout/Chat → Chat}/index.d.ts +0 -0
  208. /package/dist/esm/{Layout/Chat → Chat}/index.js +0 -0
  209. /package/dist/esm/{Layout/Chat → Chat}/types.d.ts +0 -0
  210. /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
- }, undefined, unknown, unknown, undefined>>>;
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("./../../../styles/helpers/satellitePrefixer"));
11
- var _tv = require("./../../../styles/helpers/tv");
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 typo-subdued"]))),
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("./../../../Actions");
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 _Satellite = require("./../../../Satellite");
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
- resize: "smooth",
51
- initial: "smooth"
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 messageRefs = (0, _react.useRef)(new Map());
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 lastUserMessageEl = lastUserMessage ? messageRefs.current.get(lastUserMessage.id) : undefined;
67
- var lastMessageHeight = (0, _useLastMessageHeight.useLastMessageHeight)(scrollRef, messages, lastUserMessageEl, lastMessageSubmitted, 24);
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 !== "submitted" || !lastUserMessage) {
70
- return;
99
+ if (status === "submitted" && lastUserMessage) {
100
+ setLastMessageSubmitted(true);
101
+ void scrollToBottom();
71
102
  }
72
- setLastMessageSubmitted(true);
73
- }, [status, messages, lastUserMessage]);
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
- 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,
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: _lucideReact.ChevronDownIcon,
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, unknown, unknown, 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("./../../../styles/helpers/satellitePrefixer"));
10
- var _tv = require("./../../../styles/helpers/tv");
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, messages, lastUserMessageEl, lastMessageSubmitted) {
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 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
+ 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(scrollEl);
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
- 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));
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
  }