@envive-ai/react-toolkit-v3 0.3.21 → 0.3.23

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 (284) hide show
  1. package/dist/AnimatedText/AnimatedText.d.cts +3 -3
  2. package/dist/AnimatedText/AnimatedText.d.ts +3 -3
  3. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.cts +2 -2
  4. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.ts +2 -2
  5. package/dist/Carousel/Carousel.cjs +1 -1
  6. package/dist/Carousel/Carousel.d.cts +2 -2
  7. package/dist/Carousel/Carousel.d.ts +2 -2
  8. package/dist/Carousel/Carousel.js +1 -1
  9. package/dist/Carousel/components/Container.cjs +2 -2
  10. package/dist/Carousel/components/Container.js +2 -2
  11. package/dist/ChatFooter/ChatFooter.cjs +7 -3
  12. package/dist/ChatFooter/ChatFooter.d.cts +7 -3
  13. package/dist/ChatFooter/ChatFooter.d.ts +5 -1
  14. package/dist/ChatFooter/ChatFooter.js +7 -3
  15. package/dist/ChatFooter/components/Layout.cjs +2 -2
  16. package/dist/ChatFooter/components/Layout.js +2 -2
  17. package/dist/ChatFooter/components/index.d.cts +10 -6
  18. package/dist/ChatFooter/components/index.d.ts +7 -3
  19. package/dist/ChatFooter/types/types.d.cts +16 -0
  20. package/dist/ChatFooter/types/types.d.ts +16 -0
  21. package/dist/ChatHeader/ChatHeader.cjs +2 -1
  22. package/dist/ChatHeader/ChatHeader.d.cts +2 -2
  23. package/dist/ChatHeader/ChatHeader.d.ts +2 -2
  24. package/dist/ChatHeader/ChatHeader.js +2 -1
  25. package/dist/ChatHeader/components/Handle.cjs +4 -4
  26. package/dist/ChatHeader/components/Handle.js +4 -4
  27. package/dist/ChatHeader/components/Toggle.cjs +3 -3
  28. package/dist/ChatHeader/components/Toggle.js +3 -3
  29. package/dist/ChatHeader/hooks/useGetHandleProperties.cjs +8 -6
  30. package/dist/ChatHeader/hooks/useGetHandleProperties.js +8 -6
  31. package/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +1 -1
  32. package/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +1 -1
  33. package/dist/ChatPreview/ChatPreview.cjs +7 -4
  34. package/dist/ChatPreview/ChatPreview.d.cts +2 -2
  35. package/dist/ChatPreview/ChatPreview.js +7 -4
  36. package/dist/ChatPreview/index.d.cts +2 -2
  37. package/dist/ChatPreview/index.d.ts +2 -2
  38. package/dist/ChatPreview/types/types.d.cts +13 -1
  39. package/dist/ChatPreview/types/types.d.ts +13 -1
  40. package/dist/ChatPreviewComparison/ChatPreviewComparison.cjs +7 -4
  41. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.cts +2 -2
  42. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.ts +2 -2
  43. package/dist/ChatPreviewComparison/ChatPreviewComparison.js +7 -4
  44. package/dist/ChatPreviewComparison/components/Headline.cjs +2 -2
  45. package/dist/ChatPreviewComparison/components/Headline.js +2 -2
  46. package/dist/ChatPreviewComparison/components/Layout.cjs +4 -4
  47. package/dist/ChatPreviewComparison/components/Layout.js +4 -4
  48. package/dist/ChatPreviewComparison/components/Message.cjs +2 -2
  49. package/dist/ChatPreviewComparison/components/Message.js +2 -2
  50. package/dist/ChatPreviewComparison/index.d.cts +2 -2
  51. package/dist/ChatPreviewComparison/index.d.ts +2 -2
  52. package/dist/ChatPreviewComparison/types/types.d.cts +13 -1
  53. package/dist/ChatPreviewComparison/types/types.d.ts +13 -1
  54. package/dist/ChatPreviewLoading/ChatPreviewLoading.cjs +7 -2
  55. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.cts +4 -3
  56. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.ts +4 -3
  57. package/dist/ChatPreviewLoading/ChatPreviewLoading.js +7 -2
  58. package/dist/ChatPreviewLoading/types/types.d.cts +4 -0
  59. package/dist/ChatPreviewLoading/types/types.d.ts +4 -0
  60. package/dist/Container/Container.d.cts +172 -172
  61. package/dist/Container/Container.d.ts +172 -172
  62. package/dist/DesignTokens/DesignTokensComponent.d.cts +2 -2
  63. package/dist/DesignTokens/DesignTokensComponent.d.ts +2 -2
  64. package/dist/Disclaimer/components/Container.cjs +2 -2
  65. package/dist/Disclaimer/components/Container.js +2 -2
  66. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.cts +2 -2
  67. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.ts +2 -2
  68. package/dist/DocumentRetrievalCard/components/Layout.cjs +2 -2
  69. package/dist/DocumentRetrievalCard/components/Layout.js +2 -2
  70. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.cjs +1 -1
  71. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.js +1 -1
  72. package/dist/FloatingButton/FloatingButton.d.cts +2 -2
  73. package/dist/FloatingButton/FloatingButton.d.ts +2 -2
  74. package/dist/FloatingChat/FloatingChat.cjs +27 -4
  75. package/dist/FloatingChat/FloatingChat.d.cts +2 -2
  76. package/dist/FloatingChat/FloatingChat.d.ts +2 -2
  77. package/dist/FloatingChat/FloatingChat.js +28 -5
  78. package/dist/FloatingChat/components/AgentMessage.cjs +2 -2
  79. package/dist/FloatingChat/components/AgentMessage.js +2 -2
  80. package/dist/FloatingChat/components/ChatMessages.cjs +1 -1
  81. package/dist/FloatingChat/components/ChatMessages.js +1 -1
  82. package/dist/FloatingChat/components/Layout.cjs +3 -3
  83. package/dist/FloatingChat/components/Layout.js +3 -3
  84. package/dist/FloatingChat/components/ResultsGridView.cjs +1 -1
  85. package/dist/FloatingChat/components/ResultsGridView.js +1 -1
  86. package/dist/FloatingChat/components/SalesAgentBadgeContent.cjs +1 -1
  87. package/dist/FloatingChat/components/SalesAgentBadgeContent.js +1 -1
  88. package/dist/FloatingChat/hooks/useChatSuggestions.cjs +3 -5
  89. package/dist/FloatingChat/hooks/useChatSuggestions.js +4 -6
  90. package/dist/FullPageSalesAgent/FullPageSalesAgent.cjs +25 -3
  91. package/dist/FullPageSalesAgent/FullPageSalesAgent.d.cts +5 -3
  92. package/dist/FullPageSalesAgent/FullPageSalesAgent.d.ts +5 -3
  93. package/dist/FullPageSalesAgent/FullPageSalesAgent.js +26 -4
  94. package/dist/Image/Image.d.cts +2 -2
  95. package/dist/Image/Image.d.ts +2 -2
  96. package/dist/ImageGallery/ImageGallery.d.cts +2 -2
  97. package/dist/ImageGallery/ImageGallery.d.ts +2 -2
  98. package/dist/ImageGallery/components/Layout.cjs +1 -1
  99. package/dist/ImageGallery/components/Layout.js +1 -1
  100. package/dist/MarkdownProcessor/MarkdownProcessor.d.cts +2 -2
  101. package/dist/MarkdownProcessor/MarkdownProcessor.d.ts +2 -2
  102. package/dist/Message/components/LinkButton.cjs +1 -1
  103. package/dist/Message/components/LinkButton.js +1 -1
  104. package/dist/OrderLookupCard/OrderLookupCard.cjs +1 -1
  105. package/dist/OrderLookupCard/OrderLookupCard.js +1 -1
  106. package/dist/ProductCard/ProductCard.cjs +7 -3
  107. package/dist/ProductCard/ProductCard.d.cts +6 -3
  108. package/dist/ProductCard/ProductCard.d.ts +6 -3
  109. package/dist/ProductCard/ProductCard.js +7 -3
  110. package/dist/ProductCard/index.d.cts +2 -2
  111. package/dist/ProductCard/index.d.ts +2 -2
  112. package/dist/ProductCard/types/index.d.cts +7 -1
  113. package/dist/ProductCard/types/index.d.ts +7 -1
  114. package/dist/PromptButton/PromptButton.d.cts +2 -2
  115. package/dist/PromptButton/PromptButton.d.ts +2 -2
  116. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.cjs +5 -2
  117. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.cts +6 -3
  118. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.ts +6 -3
  119. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.js +5 -2
  120. package/dist/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.cjs +1 -1
  121. package/dist/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.js +1 -1
  122. package/dist/PromptButtonCarouselWithImage/types/types.d.cts +12 -0
  123. package/dist/PromptButtonCarouselWithImage/types/types.d.ts +12 -0
  124. package/dist/PromptCarousel/PromptCarousel.cjs +3 -3
  125. package/dist/PromptCarousel/PromptCarousel.d.cts +2 -2
  126. package/dist/PromptCarousel/PromptCarousel.d.ts +2 -2
  127. package/dist/PromptCarousel/PromptCarousel.js +3 -3
  128. package/dist/ReviewCard/ReviewCard.d.cts +2 -2
  129. package/dist/ReviewCard/ReviewCard.d.ts +2 -2
  130. package/dist/ReviewCard/components/Container.cjs +2 -2
  131. package/dist/ReviewCard/components/Container.js +2 -2
  132. package/dist/ReviewCard/components/Rating.cjs +0 -1
  133. package/dist/ReviewCard/components/Rating.js +0 -1
  134. package/dist/ReviewCard/components/ReadMoreButton.cjs +1 -1
  135. package/dist/ReviewCard/components/ReadMoreButton.js +1 -1
  136. package/dist/ReviewCard/components/index.d.cts +4 -4
  137. package/dist/ReviewCard/components/index.d.ts +6 -6
  138. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.cts +2 -2
  139. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.ts +2 -2
  140. package/dist/SalesAgentProductCard/components/Container.cjs +2 -2
  141. package/dist/SalesAgentProductCard/components/Container.js +2 -2
  142. package/dist/SalesAgentProductCard/components/index.d.cts +6 -6
  143. package/dist/SalesAgentProductCard/components/index.d.ts +8 -8
  144. package/dist/SocialProof/SocialProof.cjs +7 -4
  145. package/dist/SocialProof/SocialProof.d.cts +2 -2
  146. package/dist/SocialProof/SocialProof.js +7 -4
  147. package/dist/SocialProof/components/Headline.cjs +3 -3
  148. package/dist/SocialProof/components/Headline.js +3 -3
  149. package/dist/SocialProof/components/LayoutFourHorizontal.cjs +1 -1
  150. package/dist/SocialProof/components/LayoutFourHorizontal.js +1 -1
  151. package/dist/SocialProof/components/Subheadline.cjs +1 -1
  152. package/dist/SocialProof/components/Subheadline.js +1 -1
  153. package/dist/SocialProof/components/Textfield.cjs +5 -2
  154. package/dist/SocialProof/components/Textfield.js +5 -2
  155. package/dist/SocialProof/index.d.cts +2 -2
  156. package/dist/SocialProof/index.d.ts +2 -2
  157. package/dist/SocialProof/types/types.d.cts +13 -1
  158. package/dist/SocialProof/types/types.d.ts +13 -1
  159. package/dist/SparkleAnimation/SparkleAnimation.d.cts +2 -2
  160. package/dist/SparkleAnimation/SparkleAnimation.d.ts +2 -2
  161. package/dist/Stack/Stack.d.cts +2 -2
  162. package/dist/Stack/Stack.d.ts +2 -2
  163. package/dist/TextField/TextField.cjs +34 -2
  164. package/dist/TextField/TextField.d.cts +5 -1
  165. package/dist/TextField/TextField.d.ts +5 -1
  166. package/dist/TextField/TextField.js +34 -2
  167. package/dist/TextField/components/Layout.cjs +10 -7
  168. package/dist/TextField/components/Layout.js +10 -7
  169. package/dist/TextField/components/VoiceInputButton.cjs +45 -0
  170. package/dist/TextField/components/VoiceInputButton.js +39 -0
  171. package/dist/TextField/components/index.cjs +3 -1
  172. package/dist/TextField/components/index.js +3 -1
  173. package/dist/TextField/hooks/useGetMicButtonContainerProperties.cjs +20 -0
  174. package/dist/TextField/hooks/useGetMicButtonContainerProperties.js +19 -0
  175. package/dist/TextField/hooks/useGetSkeletonProperties.cjs +1 -1
  176. package/dist/TextField/hooks/useGetSkeletonProperties.js +1 -1
  177. package/dist/TextField/hooks/useVoiceInput.cjs +59 -0
  178. package/dist/TextField/hooks/useVoiceInput.js +57 -0
  179. package/dist/TextField/types/index.d.cts +11 -0
  180. package/dist/TextField/types/index.d.ts +11 -0
  181. package/dist/TextField/utils/getLayoutStateProperties.cjs +9 -1
  182. package/dist/TextField/utils/getLayoutStateProperties.js +8 -1
  183. package/dist/TitledPromptCarousel/TitledPromptCarousel.cjs +1 -1
  184. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.cts +2 -2
  185. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.ts +2 -2
  186. package/dist/TitledPromptCarousel/TitledPromptCarousel.js +1 -1
  187. package/dist/Tokens/index.cjs +1 -1
  188. package/dist/Tokens/index.js +1 -1
  189. package/dist/TypingAnimation/TypingAnimation.cjs +8 -4
  190. package/dist/TypingAnimation/TypingAnimation.d.cts +2 -2
  191. package/dist/TypingAnimation/TypingAnimation.js +8 -4
  192. package/dist/TypingAnimation/hooks/useGetTypographyVariant.cjs +1 -1
  193. package/dist/TypingAnimation/hooks/useGetTypographyVariant.js +1 -1
  194. package/dist/TypingAnimation/index.d.cts +2 -2
  195. package/dist/TypingAnimation/index.d.ts +2 -2
  196. package/dist/TypingAnimation/types/index.d.cts +13 -1
  197. package/dist/TypingAnimation/types/index.d.ts +13 -1
  198. package/dist/Typography/Typography.d.cts +4 -4
  199. package/dist/Typography/Typography.d.ts +4 -4
  200. package/dist/WelcomeMessage/components/Container.cjs +2 -2
  201. package/dist/WelcomeMessage/components/Container.js +2 -2
  202. package/dist/WidgetTextField/WidgetTextField.cjs +40 -8
  203. package/dist/WidgetTextField/WidgetTextField.d.cts +7 -3
  204. package/dist/WidgetTextField/WidgetTextField.d.ts +7 -3
  205. package/dist/WidgetTextField/WidgetTextField.js +34 -3
  206. package/dist/WidgetTextField/components/Container.cjs +33 -27
  207. package/dist/WidgetTextField/components/Container.js +33 -27
  208. package/dist/WidgetTextField/components/Icon.cjs +1 -1
  209. package/dist/WidgetTextField/components/Icon.js +1 -1
  210. package/dist/WidgetTextField/hooks/useGetContainerProperties.cjs +5 -3
  211. package/dist/WidgetTextField/hooks/useGetContainerProperties.js +5 -3
  212. package/dist/WidgetTextField/hooks/useGetMicWidgetButtonProperties.cjs +20 -0
  213. package/dist/WidgetTextField/hooks/useGetMicWidgetButtonProperties.js +19 -0
  214. package/dist/WidgetTextField/types/types.d.cts +21 -0
  215. package/dist/WidgetTextField/types/types.d.ts +21 -0
  216. package/dist/WidgetWrapper/WidgetWrapper.d.cts +2 -2
  217. package/dist/WidgetWrapper/WidgetWrapper.d.ts +2 -2
  218. package/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +1 -1
  219. package/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +1 -1
  220. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.cts +2 -2
  221. package/dist/node_modules/jotai/esm/react.cjs +87 -0
  222. package/dist/node_modules/jotai/esm/react.js +88 -2
  223. package/dist/node_modules/jotai/esm/vanilla/internals.cjs +2 -1
  224. package/dist/node_modules/jotai/esm/vanilla/internals.js +1 -1
  225. package/dist/styles.css +1 -1
  226. package/package.json +2 -1
  227. package/src/components/ChatFooter/ChatFooter.tsx +8 -0
  228. package/src/components/ChatFooter/__tests__/ChatFooter.test.tsx +43 -0
  229. package/src/components/ChatFooter/components/TextField.tsx +12 -0
  230. package/src/components/ChatFooter/types/types.ts +17 -0
  231. package/src/components/ChatHeader/ChatHeader.tsx +1 -0
  232. package/src/components/ChatHeader/components/Handle.tsx +7 -2
  233. package/src/components/ChatHeader/hooks/useGetHandleProperties.ts +9 -5
  234. package/src/components/ChatHeader/hooks/useGetToggleOptionProperties.ts +1 -1
  235. package/src/components/ChatHeader/types/index.ts +1 -0
  236. package/src/components/ChatPreview/ChatPreview.tsx +13 -2
  237. package/src/components/ChatPreview/__tests__/ChatPreview.test.tsx +44 -0
  238. package/src/components/ChatPreview/index.ts +1 -1
  239. package/src/components/ChatPreview/types/types.ts +13 -0
  240. package/src/components/ChatPreviewComparison/ChatPreviewComparison.tsx +6 -0
  241. package/src/components/ChatPreviewComparison/__tests__/ChatPreviewComparison.test.tsx +44 -0
  242. package/src/components/ChatPreviewComparison/index.ts +1 -1
  243. package/src/components/ChatPreviewComparison/types/types.ts +13 -0
  244. package/src/components/ChatPreviewLoading/ChatPreviewLoading.tsx +5 -3
  245. package/src/components/ChatPreviewLoading/__tests__/ChatPreviewLoading.test.tsx +40 -0
  246. package/src/components/ChatPreviewLoading/types/types.ts +5 -0
  247. package/src/components/FloatingChat/FloatingChat.tsx +38 -7
  248. package/src/components/FloatingChat/hooks/useChatSuggestions.ts +8 -12
  249. package/src/components/FullPageSalesAgent/FullPageSalesAgent.tsx +32 -1
  250. package/src/components/ProductCard/ProductCard.tsx +7 -0
  251. package/src/components/ProductCard/__tests__/ProductCard.test.tsx +33 -0
  252. package/src/components/ProductCard/index.ts +1 -1
  253. package/src/components/ProductCard/types/index.ts +6 -0
  254. package/src/components/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.tsx +6 -0
  255. package/src/components/PromptButtonCarouselWithImage/__tests__/PromptButtonCarouselWithImage.test.tsx +34 -0
  256. package/src/components/PromptButtonCarouselWithImage/types/types.ts +12 -0
  257. package/src/components/ReviewCard/components/Rating.tsx +0 -1
  258. package/src/components/SocialProof/SocialProof.tsx +6 -0
  259. package/src/components/SocialProof/__tests__/SocialProof.test.tsx +58 -0
  260. package/src/components/SocialProof/components/Textfield.tsx +9 -0
  261. package/src/components/SocialProof/index.ts +1 -1
  262. package/src/components/SocialProof/types/types.ts +13 -0
  263. package/src/components/TextField/TextField.tsx +49 -0
  264. package/src/components/TextField/__tests__/TextField.test.tsx +3 -3
  265. package/src/components/TextField/__tests__/VoiceInputButton.test.tsx +175 -0
  266. package/src/components/TextField/components/Layout.tsx +24 -17
  267. package/src/components/TextField/components/VoiceInputButton.tsx +69 -0
  268. package/src/components/TextField/components/index.ts +2 -0
  269. package/src/components/TextField/hooks/useGetMicButtonContainerProperties.ts +38 -0
  270. package/src/components/TextField/hooks/useGetSkeletonProperties.ts +1 -1
  271. package/src/components/TextField/hooks/useVoiceInput.ts +77 -0
  272. package/src/components/TextField/types/index.ts +11 -0
  273. package/src/components/TextField/utils/getLayoutStateProperties.ts +8 -0
  274. package/src/components/TypingAnimation/TypingAnimation.tsx +7 -0
  275. package/src/components/TypingAnimation/__tests__/TypingAnimation.test.tsx +47 -0
  276. package/src/components/TypingAnimation/index.ts +1 -1
  277. package/src/components/TypingAnimation/types/index.ts +14 -1
  278. package/src/components/WidgetTextField/WidgetTextField.tsx +47 -0
  279. package/src/components/WidgetTextField/__tests__/WidgetTextField.test.tsx +119 -4
  280. package/src/components/WidgetTextField/components/Container.tsx +40 -27
  281. package/src/components/WidgetTextField/hooks/useGetContainerProperties.ts +16 -4
  282. package/src/components/WidgetTextField/hooks/useGetMicWidgetButtonProperties.ts +38 -0
  283. package/src/components/WidgetTextField/types/types.ts +21 -0
  284. package/src/components/WidgetWrapper/hooks/useGetWrapperProperties.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import { TypingAnimationProps } from "./types/index.cjs";
2
- import * as react_jsx_runtime21 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/TypingAnimation/TypingAnimation.d.ts
5
5
  declare const TypingAnimation: ({
@@ -7,6 +7,6 @@ declare const TypingAnimation: ({
7
7
  widgetContentProps,
8
8
  widgetStyleProps,
9
9
  widgetEventProps
10
- }: TypingAnimationProps) => react_jsx_runtime21.JSX.Element;
10
+ }: TypingAnimationProps) => react_jsx_runtime1.JSX.Element;
11
11
  //#endregion
12
12
  export { TypingAnimation };
@@ -1,12 +1,12 @@
1
1
  import { AnimatedText } from "../AnimatedText/AnimatedText.js";
2
2
  import "../AnimatedText/index.js";
3
3
  import { Theme } from "../packages/components-v3/tokens/theme/theme.js";
4
- import "../Tokens/index.js";
5
4
  import { Stack } from "../Stack/Stack.js";
6
5
  import "../Stack/index.js";
7
6
  import { TypographyColor } from "../Typography/types/index.js";
8
7
  import { Typography } from "../Typography/Typography.js";
9
8
  import "../Typography/index.js";
9
+ import "../Tokens/index.js";
10
10
  import { PromptButtonVariant } from "../PromptButton/types/index.js";
11
11
  import { PromptCarouselRows } from "../PromptCarousel/types/types.js";
12
12
  import { PromptCarousel } from "../PromptCarousel/PromptCarousel.js";
@@ -25,9 +25,9 @@ import { jsx, jsxs } from "react/jsx-runtime";
25
25
  //#region src/components/TypingAnimation/TypingAnimation.tsx
26
26
  const TypingAnimation = ({ baseProps, widgetContentProps, widgetStyleProps, widgetEventProps }) => {
27
27
  const { id, testId, className, style } = baseProps || {};
28
- const { titleLabel, headlineText, animatedTextSequence, promptButtonTexts, hintText, textFieldAriaLabel, logoSrc, hideLogo } = widgetContentProps || {};
28
+ const { titleLabel, headlineText, animatedTextSequence, promptButtonTexts, hintText, textFieldAriaLabel, logoSrc, hideLogo, voiceInputEnabled } = widgetContentProps || {};
29
29
  const { widgetVariant = WidgetWrapperVariant.CARD_WITH_BORDER, cardColor, promptButtonType = PromptButtonVariant.LIGHT, promptCarouselRows = PromptCarouselRows.ALWAYS_ONE, showTextField = true, theme = Theme.GLOBAL_CUSTOM, isLoading = false } = widgetStyleProps || {};
30
- const { handleButtonClick, handleButtonDrag, handleButtonHover, handleButtonMouseDown, handleButtonMouseUp, handleButtonTouchStart, handleButtonTouchEnd, handleTextFieldClick } = widgetEventProps || {};
30
+ const { handleButtonClick, handleButtonDrag, handleButtonHover, handleButtonMouseDown, handleButtonMouseUp, handleButtonTouchStart, handleButtonTouchEnd, handleTextFieldClick, onTranscriptionStarted, onTranscriptionCompleted } = widgetEventProps || {};
31
31
  const typographyVariant = useGetTypographyVariant(theme);
32
32
  const { measuringRef, minHeight } = useAnimatedTextMinHeight(animatedTextSequence ?? []);
33
33
  const biggestAnimatedText = useMemo(() => {
@@ -130,7 +130,11 @@ const TypingAnimation = ({ baseProps, widgetContentProps, widgetStyleProps, widg
130
130
  ariaLabel: textFieldAriaLabel,
131
131
  theme,
132
132
  isLoading,
133
- className: "envive-tw-mt-2 envive-tw-overflow-hidden envive-tw-text-ellipsis envive-tw-whitespace-nowrap"
133
+ className: "envive-tw-mt-2 envive-tw-overflow-hidden envive-tw-text-ellipsis envive-tw-whitespace-nowrap",
134
+ voiceInputClassName: "envive-tw-mt-2",
135
+ enableVoiceInput: voiceInputEnabled,
136
+ onTranscriptionStarted,
137
+ onTranscriptionCompleted
134
138
  })
135
139
  ]
136
140
  })
@@ -1,7 +1,7 @@
1
1
  const require_theme = require('../../packages/components-v3/tokens/theme/theme.cjs');
2
- require('../../Tokens/index.cjs');
3
2
  const require_index = require('../../Typography/types/index.cjs');
4
3
  require('../../Typography/index.cjs');
4
+ require('../../Tokens/index.cjs');
5
5
 
6
6
  //#region src/components/TypingAnimation/hooks/useGetTypographyVariant.tsx
7
7
  const useGetTypographyVariant = (theme) => {
@@ -1,7 +1,7 @@
1
1
  import { Theme } from "../../packages/components-v3/tokens/theme/theme.js";
2
- import "../../Tokens/index.js";
3
2
  import { TypographyVariant } from "../../Typography/types/index.js";
4
3
  import "../../Typography/index.js";
4
+ import "../../Tokens/index.js";
5
5
 
6
6
  //#region src/components/TypingAnimation/hooks/useGetTypographyVariant.tsx
7
7
  const useGetTypographyVariant = (theme) => {
@@ -1,3 +1,3 @@
1
- import { TypingAnimationProps } from "./types/index.cjs";
1
+ import { TypingAnimationProps, WidgetEventProps } from "./types/index.cjs";
2
2
  import { TypingAnimation } from "./TypingAnimation.cjs";
3
- export { TypingAnimation, type TypingAnimationProps };
3
+ export { TypingAnimation, type TypingAnimationProps, type WidgetEventProps };
@@ -1,3 +1,3 @@
1
- import { TypingAnimationProps } from "./types/index.js";
1
+ import { TypingAnimationProps, WidgetEventProps } from "./types/index.js";
2
2
  import { TypingAnimation } from "./TypingAnimation.js";
3
- export { TypingAnimation, type TypingAnimationProps };
3
+ export { TypingAnimation, type TypingAnimationProps, type WidgetEventProps };
@@ -64,6 +64,10 @@ type WidgetContentProps = {
64
64
  * When `true`, hides the logo in the title even if logoSrc is provided.
65
65
  */
66
66
  hideLogo?: boolean;
67
+ /**
68
+ * Whether to enable voice input.
69
+ */
70
+ voiceInputEnabled?: boolean;
67
71
  };
68
72
  /**
69
73
  * Props to control the visual appearance, layout, and behavior of the widget.
@@ -147,6 +151,14 @@ type WidgetEventProps = {
147
151
  * Callback function invoked when the TextField is clicked.
148
152
  */
149
153
  handleTextFieldClick?: () => void;
154
+ /**
155
+ * Callback function invoked when voice transcription starts.
156
+ */
157
+ onTranscriptionStarted?: () => void;
158
+ /**
159
+ * Callback function invoked when voice transcription completes.
160
+ */
161
+ onTranscriptionCompleted?: (transcript: string) => void;
150
162
  };
151
163
  /**
152
164
  * Props for the TypingAnimation component.
@@ -170,4 +182,4 @@ type TypingAnimationProps = {
170
182
  widgetEventProps?: WidgetEventProps;
171
183
  };
172
184
  //#endregion
173
- export { TypingAnimationProps };
185
+ export { TypingAnimationProps, WidgetEventProps };
@@ -64,6 +64,10 @@ type WidgetContentProps = {
64
64
  * When `true`, hides the logo in the title even if logoSrc is provided.
65
65
  */
66
66
  hideLogo?: boolean;
67
+ /**
68
+ * Whether to enable voice input.
69
+ */
70
+ voiceInputEnabled?: boolean;
67
71
  };
68
72
  /**
69
73
  * Props to control the visual appearance, layout, and behavior of the widget.
@@ -147,6 +151,14 @@ type WidgetEventProps = {
147
151
  * Callback function invoked when the TextField is clicked.
148
152
  */
149
153
  handleTextFieldClick?: () => void;
154
+ /**
155
+ * Callback function invoked when voice transcription starts.
156
+ */
157
+ onTranscriptionStarted?: () => void;
158
+ /**
159
+ * Callback function invoked when voice transcription completes.
160
+ */
161
+ onTranscriptionCompleted?: (transcript: string) => void;
150
162
  };
151
163
  /**
152
164
  * Props for the TypingAnimation component.
@@ -170,4 +182,4 @@ type TypingAnimationProps = {
170
182
  widgetEventProps?: WidgetEventProps;
171
183
  };
172
184
  //#endregion
173
- export { TypingAnimationProps };
185
+ export { TypingAnimationProps, WidgetEventProps };
@@ -1,5 +1,5 @@
1
1
  import { TypographyProps } from "./types/index.cjs";
2
- import * as react7 from "react";
2
+ import * as react8 from "react";
3
3
 
4
4
  //#region src/components/Typography/Typography.d.ts
5
5
  /**
@@ -18,13 +18,13 @@ declare const Typography: ({
18
18
  noWrap,
19
19
  as,
20
20
  "aria-label": ariaLabel
21
- }: TypographyProps) => react7.DetailedReactHTMLElement<{
21
+ }: TypographyProps) => react8.DetailedReactHTMLElement<{
22
22
  'aria-label': string;
23
23
  'aria-level'?: number;
24
- role?: react7.AriaRole;
24
+ role?: react8.AriaRole;
25
25
  title?: string;
26
26
  className: string;
27
- style: react7.CSSProperties;
27
+ style: react8.CSSProperties;
28
28
  id: string;
29
29
  'data-testid': string;
30
30
  }, HTMLElement>;
@@ -1,5 +1,5 @@
1
1
  import { TypographyProps } from "./types/index.js";
2
- import * as react173 from "react";
2
+ import * as react1 from "react";
3
3
 
4
4
  //#region src/components/Typography/Typography.d.ts
5
5
  /**
@@ -18,13 +18,13 @@ declare const Typography: ({
18
18
  noWrap,
19
19
  as,
20
20
  "aria-label": ariaLabel
21
- }: TypographyProps) => react173.DetailedReactHTMLElement<{
21
+ }: TypographyProps) => react1.DetailedReactHTMLElement<{
22
22
  'aria-label': string;
23
23
  'aria-level'?: number;
24
- role?: react173.AriaRole;
24
+ role?: react1.AriaRole;
25
25
  title?: string;
26
26
  className: string;
27
- style: react173.CSSProperties;
27
+ style: react1.CSSProperties;
28
28
  id: string;
29
29
  'data-testid': string;
30
30
  }, HTMLElement>;
@@ -1,8 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_Container = require('../../Container/Container.cjs');
3
- require('../../Container/index.cjs');
4
2
  const require_Stack = require('../../Stack/Stack.cjs');
5
3
  require('../../Stack/index.cjs');
4
+ const require_Container = require('../../Container/Container.cjs');
5
+ require('../../Container/index.cjs');
6
6
  const require_useGetContainerProperties = require('../hooks/useGetContainerProperties.cjs');
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let classnames = require("classnames");
@@ -1,7 +1,7 @@
1
- import { Container } from "../../Container/Container.js";
2
- import "../../Container/index.js";
3
1
  import { Stack } from "../../Stack/Stack.js";
4
2
  import "../../Stack/index.js";
3
+ import { Container } from "../../Container/Container.js";
4
+ import "../../Container/index.js";
5
5
  import { useGetContainerProperties } from "../hooks/useGetContainerProperties.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import classNames from "classnames";
@@ -1,33 +1,65 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
2
  const require_theme = require('../packages/components-v3/tokens/theme/theme.cjs');
3
- const require_resolveTheme = require('../utils/resolveTheme.cjs');
4
3
  const require_index = require('../Typography/types/index.cjs');
4
+ const require_resolveTheme = require('../utils/resolveTheme.cjs');
5
+ const require_index$1 = require('../TextField/components/index.cjs');
6
+ const require_useGetSkeletonProperties = require('../TextField/hooks/useGetSkeletonProperties.cjs');
7
+ const require_react = require('../node_modules/jotai/esm/react.cjs');
8
+ const require_useVoiceInput = require('../TextField/hooks/useVoiceInput.cjs');
5
9
  const require_types = require('./types/types.cjs');
6
- const require_index$1 = require('./components/index.cjs');
10
+ const require_index$2 = require('./components/index.cjs');
11
+ const require_useGetMicWidgetButtonProperties = require('./hooks/useGetMicWidgetButtonProperties.cjs');
7
12
  let react_jsx_runtime = require("react/jsx-runtime");
13
+ let classnames = require("classnames");
14
+ classnames = require_rolldown_runtime.__toESM(classnames);
15
+ let __envive_ai_react_hooks_atoms_chat = require("@envive-ai/react-hooks/atoms/chat");
8
16
 
9
17
  //#region src/components/WidgetTextField/WidgetTextField.tsx
10
- const WidgetTextField = ({ id, testId, style, className, theme = require_theme.Theme.GLOBAL_CUSTOM, iconVariant = require_types.IconVariant.DEFAULT, textColor = require_index.TypographyColor.TEXT_SECONDARY, placeholder, ariaLabel, disabled, isLoading, onClick }) => {
18
+ const WidgetTextField = ({ id, testId, style, className, voiceInputClassName, theme = require_theme.Theme.GLOBAL_CUSTOM, minimalFrame = "full", iconVariant = require_types.IconVariant.DEFAULT, textColor = require_index.TypographyColor.TEXT_SECONDARY, placeholder, ariaLabel, disabled, isLoading, onClick, enableVoiceInput = false, onTranscriptionStarted }) => {
11
19
  const resolvedTheme = require_resolveTheme.resolveTheme(theme);
12
- if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.WidgetTextFieldComponents.Skeleton, { theme: resolvedTheme });
13
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.WidgetTextFieldComponents.Container, {
20
+ const setListeningToSpeech = require_react.useSetAtom(__envive_ai_react_hooks_atoms_chat.listeningToSpeechAtom);
21
+ const { skeletonClass } = require_useGetSkeletonProperties.useGetSkeletonProperties(isLoading);
22
+ const { browserSupportsSpeechRecognition } = require_useVoiceInput.useVoiceInput({});
23
+ const { micWidgetButtonClasses } = require_useGetMicWidgetButtonProperties.useGetMicWidgetButtonProperties({
24
+ theme: resolvedTheme,
25
+ isListening: false
26
+ });
27
+ const voiceInputButtonClassName = (0, classnames.default)(micWidgetButtonClasses, skeletonClass, voiceInputClassName);
28
+ if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.WidgetTextFieldComponents.Skeleton, { theme: resolvedTheme });
29
+ const handleToggleListening = () => {
30
+ setListeningToSpeech(true);
31
+ onTranscriptionStarted?.();
32
+ onClick();
33
+ };
34
+ const voiceInputButton = enableVoiceInput && browserSupportsSpeechRecognition ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.TextFieldComponents.VoiceInputButton, {
35
+ theme: resolvedTheme,
36
+ isListening: false,
37
+ onToggleListening: disabled ? void 0 : handleToggleListening,
38
+ ariaLabel,
39
+ isLoading,
40
+ disabled,
41
+ className: voiceInputButtonClassName
42
+ }) : null;
43
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.WidgetTextFieldComponents.Container, {
14
44
  onClick: disabled ? void 0 : onClick,
15
45
  id,
16
46
  testId,
17
47
  style,
18
48
  className,
19
49
  theme: resolvedTheme,
50
+ minimalFrame,
20
51
  disabled,
21
52
  ariaLabel,
22
- icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.WidgetTextFieldComponents.Icon, {
53
+ icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.WidgetTextFieldComponents.Icon, {
23
54
  textColor,
24
55
  variant: iconVariant,
25
56
  theme: resolvedTheme
26
57
  }),
27
- text: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.WidgetTextFieldComponents.FakeTextInput, {
58
+ text: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$2.WidgetTextFieldComponents.FakeTextInput, {
28
59
  placeholder,
29
60
  textColor
30
- })
61
+ }),
62
+ voiceInputButton
31
63
  });
32
64
  };
33
65
 
@@ -1,5 +1,5 @@
1
1
  import { WidgetTextFieldProps } from "./types/types.cjs";
2
- import * as react_jsx_runtime15 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime19 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/WidgetTextField/WidgetTextField.d.ts
5
5
  declare const WidgetTextField: ({
@@ -7,14 +7,18 @@ declare const WidgetTextField: ({
7
7
  testId,
8
8
  style,
9
9
  className,
10
+ voiceInputClassName,
10
11
  theme,
12
+ minimalFrame,
11
13
  iconVariant,
12
14
  textColor,
13
15
  placeholder,
14
16
  ariaLabel,
15
17
  disabled,
16
18
  isLoading,
17
- onClick
18
- }: WidgetTextFieldProps) => react_jsx_runtime15.JSX.Element;
19
+ onClick,
20
+ enableVoiceInput,
21
+ onTranscriptionStarted
22
+ }: WidgetTextFieldProps) => react_jsx_runtime19.JSX.Element;
19
23
  //#endregion
20
24
  export { WidgetTextField };
@@ -1,5 +1,5 @@
1
1
  import { WidgetTextFieldProps } from "./types/types.js";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/WidgetTextField/WidgetTextField.d.ts
5
5
  declare const WidgetTextField: ({
@@ -7,14 +7,18 @@ declare const WidgetTextField: ({
7
7
  testId,
8
8
  style,
9
9
  className,
10
+ voiceInputClassName,
10
11
  theme,
12
+ minimalFrame,
11
13
  iconVariant,
12
14
  textColor,
13
15
  placeholder,
14
16
  ariaLabel,
15
17
  disabled,
16
18
  isLoading,
17
- onClick
18
- }: WidgetTextFieldProps) => react_jsx_runtime0.JSX.Element;
19
+ onClick,
20
+ enableVoiceInput,
21
+ onTranscriptionStarted
22
+ }: WidgetTextFieldProps) => react_jsx_runtime1.JSX.Element;
19
23
  //#endregion
20
24
  export { WidgetTextField };
@@ -1,14 +1,43 @@
1
1
  import { Theme } from "../packages/components-v3/tokens/theme/theme.js";
2
- import { resolveTheme } from "../utils/resolveTheme.js";
3
2
  import { TypographyColor } from "../Typography/types/index.js";
3
+ import { resolveTheme } from "../utils/resolveTheme.js";
4
+ import { TextFieldComponents } from "../TextField/components/index.js";
5
+ import { useGetSkeletonProperties } from "../TextField/hooks/useGetSkeletonProperties.js";
6
+ import { useSetAtom } from "../node_modules/jotai/esm/react.js";
7
+ import { useVoiceInput } from "../TextField/hooks/useVoiceInput.js";
4
8
  import { IconVariant } from "./types/types.js";
5
9
  import { WidgetTextFieldComponents } from "./components/index.js";
10
+ import { useGetMicWidgetButtonProperties } from "./hooks/useGetMicWidgetButtonProperties.js";
6
11
  import { jsx } from "react/jsx-runtime";
12
+ import classNames from "classnames";
13
+ import { listeningToSpeechAtom } from "@envive-ai/react-hooks/atoms/chat";
7
14
 
8
15
  //#region src/components/WidgetTextField/WidgetTextField.tsx
9
- const WidgetTextField = ({ id, testId, style, className, theme = Theme.GLOBAL_CUSTOM, iconVariant = IconVariant.DEFAULT, textColor = TypographyColor.TEXT_SECONDARY, placeholder, ariaLabel, disabled, isLoading, onClick }) => {
16
+ const WidgetTextField = ({ id, testId, style, className, voiceInputClassName, theme = Theme.GLOBAL_CUSTOM, minimalFrame = "full", iconVariant = IconVariant.DEFAULT, textColor = TypographyColor.TEXT_SECONDARY, placeholder, ariaLabel, disabled, isLoading, onClick, enableVoiceInput = false, onTranscriptionStarted }) => {
10
17
  const resolvedTheme = resolveTheme(theme);
18
+ const setListeningToSpeech = useSetAtom(listeningToSpeechAtom);
19
+ const { skeletonClass } = useGetSkeletonProperties(isLoading);
20
+ const { browserSupportsSpeechRecognition } = useVoiceInput({});
21
+ const { micWidgetButtonClasses } = useGetMicWidgetButtonProperties({
22
+ theme: resolvedTheme,
23
+ isListening: false
24
+ });
25
+ const voiceInputButtonClassName = classNames(micWidgetButtonClasses, skeletonClass, voiceInputClassName);
11
26
  if (isLoading) return /* @__PURE__ */ jsx(WidgetTextFieldComponents.Skeleton, { theme: resolvedTheme });
27
+ const handleToggleListening = () => {
28
+ setListeningToSpeech(true);
29
+ onTranscriptionStarted?.();
30
+ onClick();
31
+ };
32
+ const voiceInputButton = enableVoiceInput && browserSupportsSpeechRecognition ? /* @__PURE__ */ jsx(TextFieldComponents.VoiceInputButton, {
33
+ theme: resolvedTheme,
34
+ isListening: false,
35
+ onToggleListening: disabled ? void 0 : handleToggleListening,
36
+ ariaLabel,
37
+ isLoading,
38
+ disabled,
39
+ className: voiceInputButtonClassName
40
+ }) : null;
12
41
  return /* @__PURE__ */ jsx(WidgetTextFieldComponents.Container, {
13
42
  onClick: disabled ? void 0 : onClick,
14
43
  id,
@@ -16,6 +45,7 @@ const WidgetTextField = ({ id, testId, style, className, theme = Theme.GLOBAL_CU
16
45
  style,
17
46
  className,
18
47
  theme: resolvedTheme,
48
+ minimalFrame,
19
49
  disabled,
20
50
  ariaLabel,
21
51
  icon: /* @__PURE__ */ jsx(WidgetTextFieldComponents.Icon, {
@@ -26,7 +56,8 @@ const WidgetTextField = ({ id, testId, style, className, theme = Theme.GLOBAL_CU
26
56
  text: /* @__PURE__ */ jsx(WidgetTextFieldComponents.FakeTextInput, {
27
57
  placeholder,
28
58
  textColor
29
- })
59
+ }),
60
+ voiceInputButton
30
61
  });
31
62
  };
32
63
 
@@ -1,8 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_Container = require('../../Container/Container.cjs');
3
- require('../../Container/index.cjs');
4
2
  const require_Stack = require('../../Stack/Stack.cjs');
5
3
  require('../../Stack/index.cjs');
4
+ const require_Container = require('../../Container/Container.cjs');
5
+ require('../../Container/index.cjs');
6
6
  const require_useGetContainerProperties = require('../hooks/useGetContainerProperties.cjs');
7
7
  const require_useHandleKeyboard = require('../hooks/useHandleKeyboard.cjs');
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -10,33 +10,39 @@ let classnames = require("classnames");
10
10
  classnames = require_rolldown_runtime.__toESM(classnames);
11
11
 
12
12
  //#region src/components/WidgetTextField/components/Container.tsx
13
- const Container$1 = ({ id, testId, style, className, theme, ariaLabel, icon, text, disabled, onClick }) => {
14
- const { baseClassName, themeContainerClassName } = require_useGetContainerProperties.useGetContainerProperties({ theme });
13
+ const Container$1 = ({ id, testId, style, className, theme, minimalFrame, ariaLabel, icon, text, voiceInputButton, disabled, onClick }) => {
14
+ const { baseClassName, themeContainerClassName, containerWrapperClassName } = require_useGetContainerProperties.useGetContainerProperties({
15
+ theme,
16
+ minimalFrame
17
+ });
15
18
  const { handleKeyDown } = require_useHandleKeyboard.useHandleKeyboard({ onClick });
16
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Container.Container, {
17
- id,
18
- testId,
19
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20
+ className: containerWrapperClassName,
19
21
  style,
20
- className: (0, classnames.default)(className, baseClassName, themeContainerClassName, disabled && "envive-tw-pointer-events-none envive-tw-opacity-50"),
21
- "aria-label": ariaLabel,
22
- fluid: true,
23
- onClick,
24
- onKeyDown: handleKeyDown,
25
- role: "button",
26
- tabIndex: onClick ? 0 : void 0,
27
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Stack.Stack, {
28
- direction: "row",
29
- align: "center",
30
- justify: "between",
31
- gap: "2",
32
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
33
- className: "envive-tw-min-w-0 envive-tw-flex-1 envive-tw-overflow-hidden",
34
- children: text
35
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
36
- className: "envive-tw-flex-shrink-0",
37
- children: icon
38
- })]
39
- })
22
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Container.Container, {
23
+ id,
24
+ testId,
25
+ className: (0, classnames.default)(className, baseClassName, themeContainerClassName, disabled && "envive-tw-pointer-events-none envive-tw-opacity-50"),
26
+ "aria-label": ariaLabel,
27
+ fluid: true,
28
+ onClick,
29
+ onKeyDown: handleKeyDown,
30
+ role: "button",
31
+ tabIndex: onClick ? 0 : void 0,
32
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Stack.Stack, {
33
+ direction: "row",
34
+ align: "center",
35
+ justify: "between",
36
+ gap: "2",
37
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
38
+ className: "envive-tw-min-w-0 envive-tw-flex-1 envive-tw-overflow-hidden",
39
+ children: text
40
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
41
+ className: "envive-tw-flex-shrink-0",
42
+ children: icon
43
+ })]
44
+ })
45
+ }), voiceInputButton]
40
46
  });
41
47
  };
42
48
 
@@ -1,40 +1,46 @@
1
- import { Container } from "../../Container/Container.js";
2
- import "../../Container/index.js";
3
1
  import { Stack } from "../../Stack/Stack.js";
4
2
  import "../../Stack/index.js";
3
+ import { Container } from "../../Container/Container.js";
4
+ import "../../Container/index.js";
5
5
  import { useGetContainerProperties } from "../hooks/useGetContainerProperties.js";
6
6
  import { useHandleKeyboard } from "../hooks/useHandleKeyboard.js";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  import classNames from "classnames";
9
9
 
10
10
  //#region src/components/WidgetTextField/components/Container.tsx
11
- const Container$1 = ({ id, testId, style, className, theme, ariaLabel, icon, text, disabled, onClick }) => {
12
- const { baseClassName, themeContainerClassName } = useGetContainerProperties({ theme });
11
+ const Container$1 = ({ id, testId, style, className, theme, minimalFrame, ariaLabel, icon, text, voiceInputButton, disabled, onClick }) => {
12
+ const { baseClassName, themeContainerClassName, containerWrapperClassName } = useGetContainerProperties({
13
+ theme,
14
+ minimalFrame
15
+ });
13
16
  const { handleKeyDown } = useHandleKeyboard({ onClick });
14
- return /* @__PURE__ */ jsx(Container, {
15
- id,
16
- testId,
17
+ return /* @__PURE__ */ jsxs("div", {
18
+ className: containerWrapperClassName,
17
19
  style,
18
- className: classNames(className, baseClassName, themeContainerClassName, disabled && "envive-tw-pointer-events-none envive-tw-opacity-50"),
19
- "aria-label": ariaLabel,
20
- fluid: true,
21
- onClick,
22
- onKeyDown: handleKeyDown,
23
- role: "button",
24
- tabIndex: onClick ? 0 : void 0,
25
- children: /* @__PURE__ */ jsxs(Stack, {
26
- direction: "row",
27
- align: "center",
28
- justify: "between",
29
- gap: "2",
30
- children: [/* @__PURE__ */ jsx("div", {
31
- className: "envive-tw-min-w-0 envive-tw-flex-1 envive-tw-overflow-hidden",
32
- children: text
33
- }), /* @__PURE__ */ jsx("div", {
34
- className: "envive-tw-flex-shrink-0",
35
- children: icon
36
- })]
37
- })
20
+ children: [/* @__PURE__ */ jsx(Container, {
21
+ id,
22
+ testId,
23
+ className: classNames(className, baseClassName, themeContainerClassName, disabled && "envive-tw-pointer-events-none envive-tw-opacity-50"),
24
+ "aria-label": ariaLabel,
25
+ fluid: true,
26
+ onClick,
27
+ onKeyDown: handleKeyDown,
28
+ role: "button",
29
+ tabIndex: onClick ? 0 : void 0,
30
+ children: /* @__PURE__ */ jsxs(Stack, {
31
+ direction: "row",
32
+ align: "center",
33
+ justify: "between",
34
+ gap: "2",
35
+ children: [/* @__PURE__ */ jsx("div", {
36
+ className: "envive-tw-min-w-0 envive-tw-flex-1 envive-tw-overflow-hidden",
37
+ children: text
38
+ }), /* @__PURE__ */ jsx("div", {
39
+ className: "envive-tw-flex-shrink-0",
40
+ children: icon
41
+ })]
42
+ })
43
+ }), voiceInputButton]
38
44
  });
39
45
  };
40
46
 
@@ -1,7 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_theme = require('../../packages/components-v3/tokens/theme/theme.cjs');
3
- const require_CustomIcon = require('../../utils/CustomIcon.cjs');
4
3
  const require_index = require('../../Typography/types/index.cjs');
4
+ const require_CustomIcon = require('../../utils/CustomIcon.cjs');
5
5
  const require_types = require('../types/types.cjs');
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
7
  let __envive_ai_react_icons_SendStandard = require("@envive-ai/react-icons/SendStandard");
@@ -1,6 +1,6 @@
1
1
  import { Theme } from "../../packages/components-v3/tokens/theme/theme.js";
2
- import { CustomIcon } from "../../utils/CustomIcon.js";
3
2
  import { TypographyColor } from "../../Typography/types/index.js";
3
+ import { CustomIcon } from "../../utils/CustomIcon.js";
4
4
  import { IconVariant } from "../types/types.js";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  import SendStandard from "@envive-ai/react-icons/SendStandard";
@@ -3,16 +3,18 @@ const require_theme = require('../../packages/components-v3/tokens/theme/theme.c
3
3
  let react = require("react");
4
4
 
5
5
  //#region src/components/WidgetTextField/hooks/useGetContainerProperties.ts
6
- const useGetContainerProperties = ({ theme }) => {
6
+ const useGetContainerProperties = ({ theme, minimalFrame = "full" }) => {
7
7
  return {
8
8
  baseClassName: "envive-tw-cursor-text envive-tw-border-solid envive-tw-px-4 envive-tw-py-2",
9
9
  themeContainerClassName: (0, react.useMemo)(() => {
10
+ const minimalBorderClass = minimalFrame === "bottom-only" ? "envive-tw-border-b-[1px] envive-tw-border-text-light" : "envive-tw-border-[1px] envive-tw-border-border-light";
10
11
  return {
11
12
  [require_theme.Theme.STANDARD]: "envive-tw-border-[1px] envive-tw-border-border-light envive-tw-rounded-global-custom",
12
13
  [require_theme.Theme.MODERN]: "envive-tw-border-[1px] envive-tw-border-border-light envive-tw-rounded-4",
13
- [require_theme.Theme.MINIMAL]: "envive-tw-border-[1px] envive-tw-border-border-light"
14
+ [require_theme.Theme.MINIMAL]: minimalBorderClass
14
15
  }[theme] ?? "";
15
- }, [theme])
16
+ }, [theme, minimalFrame]),
17
+ containerWrapperClassName: "envive-tw-gap-4 envive-tw-flex envive-tw-w-full envive-tw-flex-row"
16
18
  };
17
19
  };
18
20
 
@@ -2,16 +2,18 @@ import { Theme } from "../../packages/components-v3/tokens/theme/theme.js";
2
2
  import { useMemo } from "react";
3
3
 
4
4
  //#region src/components/WidgetTextField/hooks/useGetContainerProperties.ts
5
- const useGetContainerProperties = ({ theme }) => {
5
+ const useGetContainerProperties = ({ theme, minimalFrame = "full" }) => {
6
6
  return {
7
7
  baseClassName: "envive-tw-cursor-text envive-tw-border-solid envive-tw-px-4 envive-tw-py-2",
8
8
  themeContainerClassName: useMemo(() => {
9
+ const minimalBorderClass = minimalFrame === "bottom-only" ? "envive-tw-border-b-[1px] envive-tw-border-text-light" : "envive-tw-border-[1px] envive-tw-border-border-light";
9
10
  return {
10
11
  [Theme.STANDARD]: "envive-tw-border-[1px] envive-tw-border-border-light envive-tw-rounded-global-custom",
11
12
  [Theme.MODERN]: "envive-tw-border-[1px] envive-tw-border-border-light envive-tw-rounded-4",
12
- [Theme.MINIMAL]: "envive-tw-border-[1px] envive-tw-border-border-light"
13
+ [Theme.MINIMAL]: minimalBorderClass
13
14
  }[theme] ?? "";
14
- }, [theme])
15
+ }, [theme, minimalFrame]),
16
+ containerWrapperClassName: "envive-tw-gap-4 envive-tw-flex envive-tw-w-full envive-tw-flex-row"
15
17
  };
16
18
  };
17
19