@yext/chat-ui-react 0.12.1 → 0.12.2

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 (216) hide show
  1. package/package.json +14 -3
  2. package/lib/bundle.css +0 -1
  3. package/lib/commonjs/package.json.js +0 -6
  4. package/lib/commonjs/package.json.js.map +0 -1
  5. package/lib/commonjs/src/components/ChatHeader.d.ts +0 -53
  6. package/lib/commonjs/src/components/ChatHeader.d.ts.map +0 -1
  7. package/lib/commonjs/src/components/ChatHeader.js +0 -52
  8. package/lib/commonjs/src/components/ChatHeader.js.map +0 -1
  9. package/lib/commonjs/src/components/ChatInput.d.ts +0 -60
  10. package/lib/commonjs/src/components/ChatInput.d.ts.map +0 -1
  11. package/lib/commonjs/src/components/ChatInput.js +0 -76
  12. package/lib/commonjs/src/components/ChatInput.js.map +0 -1
  13. package/lib/commonjs/src/components/ChatPanel.d.ts +0 -74
  14. package/lib/commonjs/src/components/ChatPanel.d.ts.map +0 -1
  15. package/lib/commonjs/src/components/ChatPanel.js +0 -178
  16. package/lib/commonjs/src/components/ChatPanel.js.map +0 -1
  17. package/lib/commonjs/src/components/ChatPopUp.d.ts +0 -76
  18. package/lib/commonjs/src/components/ChatPopUp.d.ts.map +0 -1
  19. package/lib/commonjs/src/components/ChatPopUp.js +0 -160
  20. package/lib/commonjs/src/components/ChatPopUp.js.map +0 -1
  21. package/lib/commonjs/src/components/FeedbackButtons.d.ts +0 -35
  22. package/lib/commonjs/src/components/FeedbackButtons.d.ts.map +0 -1
  23. package/lib/commonjs/src/components/FeedbackButtons.js +0 -59
  24. package/lib/commonjs/src/components/FeedbackButtons.js.map +0 -1
  25. package/lib/commonjs/src/components/InitialMessagePopUp.d.ts +0 -33
  26. package/lib/commonjs/src/components/InitialMessagePopUp.d.ts.map +0 -1
  27. package/lib/commonjs/src/components/InitialMessagePopUp.js +0 -44
  28. package/lib/commonjs/src/components/InitialMessagePopUp.js.map +0 -1
  29. package/lib/commonjs/src/components/LoadingDots.d.ts +0 -10
  30. package/lib/commonjs/src/components/LoadingDots.d.ts.map +0 -1
  31. package/lib/commonjs/src/components/LoadingDots.js +0 -23
  32. package/lib/commonjs/src/components/LoadingDots.js.map +0 -1
  33. package/lib/commonjs/src/components/Markdown.d.ts +0 -39
  34. package/lib/commonjs/src/components/Markdown.d.ts.map +0 -1
  35. package/lib/commonjs/src/components/Markdown.js +0 -72
  36. package/lib/commonjs/src/components/Markdown.js.map +0 -1
  37. package/lib/commonjs/src/components/MessageBubble.d.ts +0 -64
  38. package/lib/commonjs/src/components/MessageBubble.d.ts.map +0 -1
  39. package/lib/commonjs/src/components/MessageBubble.js +0 -77
  40. package/lib/commonjs/src/components/MessageBubble.js.map +0 -1
  41. package/lib/commonjs/src/components/MessageSuggestions.d.ts +0 -37
  42. package/lib/commonjs/src/components/MessageSuggestions.d.ts.map +0 -1
  43. package/lib/commonjs/src/components/MessageSuggestions.js +0 -55
  44. package/lib/commonjs/src/components/MessageSuggestions.js.map +0 -1
  45. package/lib/commonjs/src/components/index.d.ts +0 -14
  46. package/lib/commonjs/src/components/index.d.ts.map +0 -1
  47. package/lib/commonjs/src/hooks/index.d.ts +0 -3
  48. package/lib/commonjs/src/hooks/index.d.ts.map +0 -1
  49. package/lib/commonjs/src/hooks/useComposedCssClasses.d.ts +0 -30
  50. package/lib/commonjs/src/hooks/useComposedCssClasses.d.ts.map +0 -1
  51. package/lib/commonjs/src/hooks/useComposedCssClasses.js +0 -61
  52. package/lib/commonjs/src/hooks/useComposedCssClasses.js.map +0 -1
  53. package/lib/commonjs/src/hooks/useDefaultHandleApiError.d.ts +0 -8
  54. package/lib/commonjs/src/hooks/useDefaultHandleApiError.d.ts.map +0 -1
  55. package/lib/commonjs/src/hooks/useDefaultHandleApiError.js +0 -25
  56. package/lib/commonjs/src/hooks/useDefaultHandleApiError.js.map +0 -1
  57. package/lib/commonjs/src/hooks/useFetchInitialMessage.d.ts +0 -13
  58. package/lib/commonjs/src/hooks/useFetchInitialMessage.d.ts.map +0 -1
  59. package/lib/commonjs/src/hooks/useFetchInitialMessage.js +0 -41
  60. package/lib/commonjs/src/hooks/useFetchInitialMessage.js.map +0 -1
  61. package/lib/commonjs/src/hooks/useReportAnalyticsEvent.d.ts +0 -8
  62. package/lib/commonjs/src/hooks/useReportAnalyticsEvent.d.ts.map +0 -1
  63. package/lib/commonjs/src/hooks/useReportAnalyticsEvent.js +0 -21
  64. package/lib/commonjs/src/hooks/useReportAnalyticsEvent.js.map +0 -1
  65. package/lib/commonjs/src/hooks/useSendMessageWithRetries.d.ts +0 -17
  66. package/lib/commonjs/src/hooks/useSendMessageWithRetries.d.ts.map +0 -1
  67. package/lib/commonjs/src/hooks/useSendMessageWithRetries.js +0 -54
  68. package/lib/commonjs/src/hooks/useSendMessageWithRetries.js.map +0 -1
  69. package/lib/commonjs/src/icons/Arrow.d.ts +0 -3
  70. package/lib/commonjs/src/icons/Arrow.d.ts.map +0 -1
  71. package/lib/commonjs/src/icons/Arrow.js +0 -16
  72. package/lib/commonjs/src/icons/Arrow.js.map +0 -1
  73. package/lib/commonjs/src/icons/Chat.d.ts +0 -5
  74. package/lib/commonjs/src/icons/Chat.d.ts.map +0 -1
  75. package/lib/commonjs/src/icons/Chat.js +0 -20
  76. package/lib/commonjs/src/icons/Chat.js.map +0 -1
  77. package/lib/commonjs/src/icons/Cross.d.ts +0 -5
  78. package/lib/commonjs/src/icons/Cross.d.ts.map +0 -1
  79. package/lib/commonjs/src/icons/Cross.js +0 -16
  80. package/lib/commonjs/src/icons/Cross.js.map +0 -1
  81. package/lib/commonjs/src/icons/DualSync.d.ts +0 -5
  82. package/lib/commonjs/src/icons/DualSync.d.ts.map +0 -1
  83. package/lib/commonjs/src/icons/DualSync.js +0 -16
  84. package/lib/commonjs/src/icons/DualSync.js.map +0 -1
  85. package/lib/commonjs/src/icons/ThumbsDown.d.ts +0 -5
  86. package/lib/commonjs/src/icons/ThumbsDown.d.ts.map +0 -1
  87. package/lib/commonjs/src/icons/ThumbsDown.js +0 -15
  88. package/lib/commonjs/src/icons/ThumbsDown.js.map +0 -1
  89. package/lib/commonjs/src/icons/ThumbsDownFill.d.ts +0 -5
  90. package/lib/commonjs/src/icons/ThumbsDownFill.d.ts.map +0 -1
  91. package/lib/commonjs/src/icons/ThumbsDownFill.js +0 -15
  92. package/lib/commonjs/src/icons/ThumbsDownFill.js.map +0 -1
  93. package/lib/commonjs/src/icons/ThumbsUp.d.ts +0 -5
  94. package/lib/commonjs/src/icons/ThumbsUp.d.ts.map +0 -1
  95. package/lib/commonjs/src/icons/ThumbsUp.js +0 -15
  96. package/lib/commonjs/src/icons/ThumbsUp.js.map +0 -1
  97. package/lib/commonjs/src/icons/ThumbsUpFill.d.ts +0 -5
  98. package/lib/commonjs/src/icons/ThumbsUpFill.d.ts.map +0 -1
  99. package/lib/commonjs/src/icons/ThumbsUpFill.js +0 -15
  100. package/lib/commonjs/src/icons/ThumbsUpFill.js.map +0 -1
  101. package/lib/commonjs/src/index.d.ts +0 -3
  102. package/lib/commonjs/src/index.d.ts.map +0 -1
  103. package/lib/commonjs/src/index.js +0 -20
  104. package/lib/commonjs/src/index.js.map +0 -1
  105. package/lib/commonjs/src/tsdoc-metadata.json +0 -11
  106. package/lib/commonjs/src/utils/withStylelessCssClasses.d.ts +0 -17
  107. package/lib/commonjs/src/utils/withStylelessCssClasses.d.ts.map +0 -1
  108. package/lib/commonjs/src/utils/withStylelessCssClasses.js +0 -30
  109. package/lib/commonjs/src/utils/withStylelessCssClasses.js.map +0 -1
  110. package/lib/esm/index.d.ts +0 -411
  111. package/lib/esm/package.json.mjs +0 -4
  112. package/lib/esm/package.json.mjs.map +0 -1
  113. package/lib/esm/src/components/ChatHeader.d.ts +0 -53
  114. package/lib/esm/src/components/ChatHeader.d.ts.map +0 -1
  115. package/lib/esm/src/components/ChatHeader.mjs +0 -46
  116. package/lib/esm/src/components/ChatHeader.mjs.map +0 -1
  117. package/lib/esm/src/components/ChatInput.d.ts +0 -60
  118. package/lib/esm/src/components/ChatInput.d.ts.map +0 -1
  119. package/lib/esm/src/components/ChatInput.mjs +0 -69
  120. package/lib/esm/src/components/ChatInput.mjs.map +0 -1
  121. package/lib/esm/src/components/ChatPanel.d.ts +0 -74
  122. package/lib/esm/src/components/ChatPanel.d.ts.map +0 -1
  123. package/lib/esm/src/components/ChatPanel.mjs +0 -169
  124. package/lib/esm/src/components/ChatPanel.mjs.map +0 -1
  125. package/lib/esm/src/components/ChatPopUp.d.ts +0 -76
  126. package/lib/esm/src/components/ChatPopUp.d.ts.map +0 -1
  127. package/lib/esm/src/components/ChatPopUp.mjs +0 -154
  128. package/lib/esm/src/components/ChatPopUp.mjs.map +0 -1
  129. package/lib/esm/src/components/FeedbackButtons.d.ts +0 -35
  130. package/lib/esm/src/components/FeedbackButtons.d.ts.map +0 -1
  131. package/lib/esm/src/components/FeedbackButtons.mjs +0 -53
  132. package/lib/esm/src/components/FeedbackButtons.mjs.map +0 -1
  133. package/lib/esm/src/components/InitialMessagePopUp.d.ts +0 -33
  134. package/lib/esm/src/components/InitialMessagePopUp.d.ts.map +0 -1
  135. package/lib/esm/src/components/InitialMessagePopUp.mjs +0 -38
  136. package/lib/esm/src/components/InitialMessagePopUp.mjs.map +0 -1
  137. package/lib/esm/src/components/LoadingDots.d.ts +0 -10
  138. package/lib/esm/src/components/LoadingDots.d.ts.map +0 -1
  139. package/lib/esm/src/components/LoadingDots.mjs +0 -17
  140. package/lib/esm/src/components/LoadingDots.mjs.map +0 -1
  141. package/lib/esm/src/components/Markdown.d.ts +0 -39
  142. package/lib/esm/src/components/Markdown.d.ts.map +0 -1
  143. package/lib/esm/src/components/Markdown.mjs +0 -62
  144. package/lib/esm/src/components/Markdown.mjs.map +0 -1
  145. package/lib/esm/src/components/MessageBubble.d.ts +0 -64
  146. package/lib/esm/src/components/MessageBubble.d.ts.map +0 -1
  147. package/lib/esm/src/components/MessageBubble.mjs +0 -71
  148. package/lib/esm/src/components/MessageBubble.mjs.map +0 -1
  149. package/lib/esm/src/components/MessageSuggestions.d.ts +0 -37
  150. package/lib/esm/src/components/MessageSuggestions.d.ts.map +0 -1
  151. package/lib/esm/src/components/MessageSuggestions.mjs +0 -49
  152. package/lib/esm/src/components/MessageSuggestions.mjs.map +0 -1
  153. package/lib/esm/src/components/index.d.ts +0 -14
  154. package/lib/esm/src/components/index.d.ts.map +0 -1
  155. package/lib/esm/src/hooks/index.d.ts +0 -3
  156. package/lib/esm/src/hooks/index.d.ts.map +0 -1
  157. package/lib/esm/src/hooks/useComposedCssClasses.d.ts +0 -30
  158. package/lib/esm/src/hooks/useComposedCssClasses.d.ts.map +0 -1
  159. package/lib/esm/src/hooks/useComposedCssClasses.mjs +0 -59
  160. package/lib/esm/src/hooks/useComposedCssClasses.mjs.map +0 -1
  161. package/lib/esm/src/hooks/useDefaultHandleApiError.d.ts +0 -8
  162. package/lib/esm/src/hooks/useDefaultHandleApiError.d.ts.map +0 -1
  163. package/lib/esm/src/hooks/useDefaultHandleApiError.mjs +0 -23
  164. package/lib/esm/src/hooks/useDefaultHandleApiError.mjs.map +0 -1
  165. package/lib/esm/src/hooks/useFetchInitialMessage.d.ts +0 -13
  166. package/lib/esm/src/hooks/useFetchInitialMessage.d.ts.map +0 -1
  167. package/lib/esm/src/hooks/useFetchInitialMessage.mjs +0 -39
  168. package/lib/esm/src/hooks/useFetchInitialMessage.mjs.map +0 -1
  169. package/lib/esm/src/hooks/useReportAnalyticsEvent.d.ts +0 -8
  170. package/lib/esm/src/hooks/useReportAnalyticsEvent.d.ts.map +0 -1
  171. package/lib/esm/src/hooks/useReportAnalyticsEvent.mjs +0 -19
  172. package/lib/esm/src/hooks/useReportAnalyticsEvent.mjs.map +0 -1
  173. package/lib/esm/src/hooks/useSendMessageWithRetries.d.ts +0 -17
  174. package/lib/esm/src/hooks/useSendMessageWithRetries.d.ts.map +0 -1
  175. package/lib/esm/src/hooks/useSendMessageWithRetries.mjs +0 -52
  176. package/lib/esm/src/hooks/useSendMessageWithRetries.mjs.map +0 -1
  177. package/lib/esm/src/icons/Arrow.d.ts +0 -3
  178. package/lib/esm/src/icons/Arrow.d.ts.map +0 -1
  179. package/lib/esm/src/icons/Arrow.mjs +0 -10
  180. package/lib/esm/src/icons/Arrow.mjs.map +0 -1
  181. package/lib/esm/src/icons/Chat.d.ts +0 -5
  182. package/lib/esm/src/icons/Chat.d.ts.map +0 -1
  183. package/lib/esm/src/icons/Chat.mjs +0 -14
  184. package/lib/esm/src/icons/Chat.mjs.map +0 -1
  185. package/lib/esm/src/icons/Cross.d.ts +0 -5
  186. package/lib/esm/src/icons/Cross.d.ts.map +0 -1
  187. package/lib/esm/src/icons/Cross.mjs +0 -10
  188. package/lib/esm/src/icons/Cross.mjs.map +0 -1
  189. package/lib/esm/src/icons/DualSync.d.ts +0 -5
  190. package/lib/esm/src/icons/DualSync.d.ts.map +0 -1
  191. package/lib/esm/src/icons/DualSync.mjs +0 -10
  192. package/lib/esm/src/icons/DualSync.mjs.map +0 -1
  193. package/lib/esm/src/icons/ThumbsDown.d.ts +0 -5
  194. package/lib/esm/src/icons/ThumbsDown.d.ts.map +0 -1
  195. package/lib/esm/src/icons/ThumbsDown.mjs +0 -9
  196. package/lib/esm/src/icons/ThumbsDown.mjs.map +0 -1
  197. package/lib/esm/src/icons/ThumbsDownFill.d.ts +0 -5
  198. package/lib/esm/src/icons/ThumbsDownFill.d.ts.map +0 -1
  199. package/lib/esm/src/icons/ThumbsDownFill.mjs +0 -9
  200. package/lib/esm/src/icons/ThumbsDownFill.mjs.map +0 -1
  201. package/lib/esm/src/icons/ThumbsUp.d.ts +0 -5
  202. package/lib/esm/src/icons/ThumbsUp.d.ts.map +0 -1
  203. package/lib/esm/src/icons/ThumbsUp.mjs +0 -9
  204. package/lib/esm/src/icons/ThumbsUp.mjs.map +0 -1
  205. package/lib/esm/src/icons/ThumbsUpFill.d.ts +0 -5
  206. package/lib/esm/src/icons/ThumbsUpFill.d.ts.map +0 -1
  207. package/lib/esm/src/icons/ThumbsUpFill.mjs +0 -9
  208. package/lib/esm/src/icons/ThumbsUpFill.mjs.map +0 -1
  209. package/lib/esm/src/index.d.ts +0 -3
  210. package/lib/esm/src/index.d.ts.map +0 -1
  211. package/lib/esm/src/index.mjs +0 -8
  212. package/lib/esm/src/index.mjs.map +0 -1
  213. package/lib/esm/src/utils/withStylelessCssClasses.d.ts +0 -17
  214. package/lib/esm/src/utils/withStylelessCssClasses.d.ts.map +0 -1
  215. package/lib/esm/src/utils/withStylelessCssClasses.mjs +0 -28
  216. package/lib/esm/src/utils/withStylelessCssClasses.mjs.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yext/chat-ui-react",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "description": "A library of React Components for powering Yext Chat integrations.",
5
5
  "author": "clippy@yext.com",
6
6
  "main": "./lib/commonjs/src/index.js",
@@ -48,6 +48,14 @@
48
48
  "build": "rm -rf lib/** && npm run build:js && npm run build:css && npm run generate-docs && npm run generate-notices",
49
49
  "build-storybook": "storybook build"
50
50
  },
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "https://github.com/yext/chat-ui-react.git"
54
+ },
55
+ "bugs": {
56
+ "url": "https://github.com/yext/chat-ui-react/issues"
57
+ },
58
+ "homepage": "https://github.com/yext/chat-ui-react#readme",
51
59
  "devDependencies": {
52
60
  "@babel/core": "^7.21.8",
53
61
  "@babel/preset-env": "^7.21.5",
@@ -84,9 +92,9 @@
84
92
  "prettier": "^2.8.8",
85
93
  "react": "^18.2.0",
86
94
  "react-dom": "^18.2.0",
87
- "rollup": "^3.29.5",
95
+ "rollup": "^3.30.0",
88
96
  "rollup-plugin-typescript2": "^0.35.0",
89
- "storybook": "^7.5.2",
97
+ "storybook": "^7.6.21",
90
98
  "tailwindcss": "^3.3.2",
91
99
  "typescript": "^5.0.4"
92
100
  },
@@ -102,5 +110,8 @@
102
110
  "rehype-sanitize": "^4.0.0",
103
111
  "remark-gfm": "^1.0.0",
104
112
  "tailwind-merge": "^1.12.0"
113
+ },
114
+ "overrides": {
115
+ "handlebars": "^4.7.9"
105
116
  }
106
117
  }
package/lib/bundle.css DELETED
@@ -1 +0,0 @@
1
- .yext-chat { width: 100%; height: 100%; } /*! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com*/.yext-chat *,.yext-chat :after,.yext-chat :before{box-sizing:border-box;border:0 solid #e5e7eb}.yext-chat :after,.yext-chat :before{--tw-content:""}.yext-chat {line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal}.yext-chat {margin:0;line-height:inherit}.yext-chat hr{height:0;color:inherit;border-top-width:1px}.yext-chat abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.yext-chat h1,.yext-chat h2,.yext-chat h3,.yext-chat h4,.yext-chat h5,.yext-chat h6{font-size:inherit;font-weight:inherit}.yext-chat a{color:inherit;text-decoration:inherit}.yext-chat b,.yext-chat strong{font-weight:bolder}.yext-chat code,.yext-chat kbd,.yext-chat pre,.yext-chat samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}.yext-chat small{font-size:80%}.yext-chat sub,.yext-chat sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}.yext-chat sub{bottom:-.25em}.yext-chat sup{top:-.5em}.yext-chat table{text-indent:0;border-color:inherit;border-collapse:collapse}.yext-chat button,.yext-chat input,.yext-chat optgroup,.yext-chat select,.yext-chat textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}.yext-chat button,.yext-chat select{text-transform:none}.yext-chat [type=button],.yext-chat [type=reset],.yext-chat [type=submit],.yext-chat button{-webkit-appearance:button;background-color:initial;background-image:none}.yext-chat :-moz-focusring{outline:auto}.yext-chat :-moz-ui-invalid{box-shadow:none}.yext-chat progress{vertical-align:initial}.yext-chat ::-webkit-inner-spin-button,.yext-chat ::-webkit-outer-spin-button{height:auto}.yext-chat [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.yext-chat ::-webkit-search-decoration{-webkit-appearance:none}.yext-chat ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.yext-chat summary{display:list-item}.yext-chat blockquote,.yext-chat dd,.yext-chat dl,.yext-chat figure,.yext-chat h1,.yext-chat h2,.yext-chat h3,.yext-chat h4,.yext-chat h5,.yext-chat h6,.yext-chat hr,.yext-chat p,.yext-chat pre{margin:0}.yext-chat fieldset{margin:0}.yext-chat fieldset,.yext-chat legend{padding:0}.yext-chat menu,.yext-chat ol,.yext-chat ul{list-style:none;margin:0;padding:0}.yext-chat textarea{resize:vertical}.yext-chat input::-moz-placeholder,.yext-chat textarea::-moz-placeholder{opacity:1;color:#9ca3af}.yext-chat input::placeholder,.yext-chat textarea::placeholder{opacity:1;color:#9ca3af}.yext-chat [role=button],.yext-chat button{cursor:pointer}.yext-chat :disabled{cursor:default}.yext-chat audio,.yext-chat canvas,.yext-chat embed,.yext-chat iframe,.yext-chat img,.yext-chat object,.yext-chat svg,.yext-chat video{display:block;vertical-align:middle}.yext-chat img,.yext-chat video{max-width:100%;height:auto}.yext-chat [hidden]{display:none}.yext-chat *,.yext-chat ::backdrop,.yext-chat :after,.yext-chat :before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.yext-chat .container{width:100%}@media (min-width:640px){.yext-chat .container{max-width:640px}}@media (min-width:768px){.yext-chat .container{max-width:768px}}@media (min-width:1024px){.yext-chat .container{max-width:1024px}}@media (min-width:1280px){.yext-chat .container{max-width:1280px}}@media (min-width:1536px){.yext-chat .container{max-width:1536px}}.yext-chat .prose{color:var(--tw-prose-body);max-width:65ch}.yext-chat .prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.yext-chat .prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.yext-chat .prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.yext-chat .prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.yext-chat .prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.yext-chat .prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.yext-chat .prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.yext-chat .prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.yext-chat .prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.yext-chat .prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.yext-chat .prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.yext-chat .prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.yext-chat .prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.yext-chat .prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.yext-chat .prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.yext-chat .prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.yext-chat .prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.yext-chat .prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.yext-chat .prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.yext-chat .prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.yext-chat .prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.yext-chat .prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.yext-chat .prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:open-quote}.yext-chat .prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:close-quote}.yext-chat .prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.yext-chat .prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900;color:inherit}.yext-chat .prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.yext-chat .prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800;color:inherit}.yext-chat .prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.yext-chat .prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.yext-chat .prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.yext-chat .prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.yext-chat .prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.yext-chat .prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.yext-chat .prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.yext-chat .prose :where(code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.yext-chat .prose :where(code):not(:where([class~=not-prose] *)):before{content:"`"}.yext-chat .prose :where(code):not(:where([class~=not-prose] *)):after{content:"`"}.yext-chat .prose :where(a code):not(:where([class~=not-prose] *)){color:inherit}.yext-chat .prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.yext-chat .prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.yext-chat .prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.yext-chat .prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.yext-chat .prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.yext-chat .prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.yext-chat .prose :where(pre):not(:where([class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.yext-chat .prose :where(pre code):not(:where([class~=not-prose] *)){background-color:initial;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.yext-chat .prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.yext-chat .prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.yext-chat .prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.yext-chat .prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.yext-chat .prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.yext-chat .prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.yext-chat .prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.yext-chat .prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:initial}.yext-chat .prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.yext-chat .prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.yext-chat .prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.yext-chat .prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.yext-chat .prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.yext-chat .prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.yext-chat .prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.yext-chat .prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.yext-chat .prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.yext-chat .prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.yext-chat .prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.yext-chat .prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.yext-chat .prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.yext-chat .prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.yext-chat .prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.yext-chat .prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.yext-chat .prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.yext-chat .prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.yext-chat .prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.yext-chat .prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.yext-chat .prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.5714286em}.yext-chat .prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.yext-chat .prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.yext-chat .prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.yext-chat .prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.yext-chat .invisible{visibility:hidden}.yext-chat .fixed{position:fixed}.yext-chat .absolute{position:absolute}.yext-chat .relative{position:relative}.yext-chat .-right-1{right:-.25rem}.yext-chat .-top-3{top:-.75rem}.yext-chat .bottom-2{bottom:.5rem}.yext-chat .bottom-2\.5{bottom:.625rem}.yext-chat .bottom-6{bottom:1.5rem}.yext-chat .right-4{right:1rem}.yext-chat .top-0{top:0}.yext-chat .z-50{z-index:50}.yext-chat .-mr-8{margin-right:-2rem}.yext-chat .mb-3{margin-bottom:.75rem}.yext-chat .mb-4{margin-bottom:1rem}.yext-chat .ml-4{margin-left:1rem}.yext-chat .ml-auto{margin-left:auto}.yext-chat .mt-1{margin-top:.25rem}.yext-chat .mt-auto{margin-top:auto}.yext-chat .line-clamp-1{-webkit-line-clamp:1}.yext-chat .line-clamp-1,.yext-chat .line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.yext-chat .line-clamp-2{-webkit-line-clamp:2}.yext-chat .flex{display:flex}.yext-chat .hidden{display:none}.yext-chat .h-10{height:2.5rem}.yext-chat .h-12{height:3rem}.yext-chat .h-2{height:.5rem}.yext-chat .h-4{height:1rem}.yext-chat .h-5{height:1.25rem}.yext-chat .h-6{height:1.5rem}.yext-chat .h-8{height:2rem}.yext-chat .h-\[22px\]{height:22px}.yext-chat .h-\[26px\]{height:26px}.yext-chat .h-\[28px\]{height:28px}.yext-chat .h-\[75vh\]{height:75vh}.yext-chat .h-fit{height:-moz-fit-content;height:fit-content}.yext-chat .h-full{height:100%}.yext-chat .w-12{width:3rem}.yext-chat .w-2{width:.5rem}.yext-chat .w-4{width:1rem}.yext-chat .w-5{width:1.25rem}.yext-chat .w-6{width:1.5rem}.yext-chat .w-60{width:15rem}.yext-chat .w-8{width:2rem}.yext-chat .w-80{width:20rem}.yext-chat .w-\[22px\]{width:22px}.yext-chat .w-\[26px\]{width:26px}.yext-chat .w-\[28px\]{width:28px}.yext-chat .w-fit{width:-moz-fit-content;width:fit-content}.yext-chat .w-full{width:100%}.yext-chat .max-w-\[80\%\]{max-width:80%}.yext-chat .shrink-0{flex-shrink:0}.yext-chat .translate-y-0{--tw-translate-y:0px}.yext-chat .translate-y-0,.yext-chat .translate-y-\[20\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.yext-chat .translate-y-\[20\%\]{--tw-translate-y:20%}.yext-chat .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.yext-chat .animate-\[bounce_1s_infinite\]{animation:bounce 1s infinite}.yext-chat .animate-\[bounce_1s_infinite_0\.3s\]{animation:bounce 1s .3s infinite}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.yext-chat .animate-\[bounce_1s_infinite_0\.6s\]{animation:bounce 1s .6s infinite}@keyframes spin{to{transform:rotate(1turn)}}.yext-chat .animate-\[spin_0\.3s_linear\]{animation:spin .3s linear}@keyframes expand-left{0%{margin-left:100%}to{margin-left:0}}.yext-chat .animate-expand-left{animation:expand-left .5s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.yext-chat .animate-fade-in{animation:fade-in .4s}@keyframes heartbeat{0%{transform:scale(1)}80%{transform:scale(1)}90%{transform:scale(1.1)}to{transform:scale(1)}}.yext-chat .animate-heartbeat{animation:heartbeat 2s ease-out infinite}.yext-chat .cursor-pointer{cursor:pointer}.yext-chat .resize-none{resize:none}.yext-chat .flex-row{flex-direction:row}.yext-chat .flex-col{flex-direction:column}.yext-chat .flex-wrap{flex-wrap:wrap}.yext-chat .items-center{align-items:center}.yext-chat .justify-center{justify-content:center}.yext-chat .justify-between{justify-content:space-between}.yext-chat .gap-1{gap:.25rem}.yext-chat .gap-2{gap:.5rem}.yext-chat .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.yext-chat .gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.yext-chat .gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.yext-chat .gap-y-1{row-gap:.25rem}.yext-chat .overflow-auto{overflow:auto}.yext-chat .overflow-hidden{overflow:hidden}.yext-chat .overflow-x-auto{overflow-x:auto}.yext-chat .truncate{overflow:hidden;text-overflow:ellipsis}.yext-chat .truncate,.yext-chat .whitespace-nowrap{white-space:nowrap}.yext-chat .whitespace-pre-wrap{white-space:pre-wrap}.yext-chat .break-words{overflow-wrap:break-word}.yext-chat .rounded-2xl{border-radius:1rem}.yext-chat .rounded-3xl{border-radius:1.5rem}.yext-chat .rounded-full{border-radius:9999px}.yext-chat .rounded-md{border-radius:.375rem}.yext-chat .rounded-xl{border-radius:.75rem}.yext-chat .rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.yext-chat .rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.yext-chat .rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.yext-chat .border{border-width:1px}.yext-chat .border-blue-700{--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity))}.yext-chat .border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.yext-chat .bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.yext-chat .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.yext-chat .bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.yext-chat .bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}.yext-chat .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.yext-chat .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.yext-chat .bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.yext-chat .from-blue-600{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.yext-chat .from-slate-50{--tw-gradient-from:#f8fafc var(--tw-gradient-from-position);--tw-gradient-to:#f8fafc00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.yext-chat .to-blue-700{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.yext-chat .to-blue-800{--tw-gradient-to:#1e40af var(--tw-gradient-to-position)}.yext-chat .to-slate-100{--tw-gradient-to:#f1f5f9 var(--tw-gradient-to-position)}.yext-chat .stroke-2{stroke-width:2}.yext-chat .stroke-\[0\.2\]{stroke-width:.2}.yext-chat .p-1{padding:.25rem}.yext-chat .p-1\.5{padding:.375rem}.yext-chat .p-2{padding:.5rem}.yext-chat .p-2\.5{padding:.625rem}.yext-chat .p-3{padding:.75rem}.yext-chat .p-4{padding:1rem}.yext-chat .px-2{padding-left:.5rem;padding-right:.5rem}.yext-chat .px-4{padding-left:1rem;padding-right:1rem}.yext-chat .py-1{padding-top:.25rem;padding-bottom:.25rem}.yext-chat .py-3{padding-top:.75rem;padding-bottom:.75rem}.yext-chat .pb-4{padding-bottom:1rem}.yext-chat .pl-4{padding-left:1rem}.yext-chat .pr-1{padding-right:.25rem}.yext-chat .pr-12{padding-right:3rem}.yext-chat .pr-3{padding-right:.75rem}.yext-chat .pr-8{padding-right:2rem}.yext-chat .text-center{text-align:center}.yext-chat .text-\[10px\]{font-size:10px}.yext-chat .text-\[12px\]{font-size:12px}.yext-chat .text-\[13px\]{font-size:13px}.yext-chat .text-sm{font-size:.875rem;line-height:1.25rem}.yext-chat .text-xl{font-size:1.25rem;line-height:1.75rem}.yext-chat .font-bold{font-weight:700}.yext-chat .font-medium{font-weight:500}.yext-chat .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.yext-chat .text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity))}.yext-chat .text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity))}.yext-chat .text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.yext-chat .text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.yext-chat .text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.yext-chat .text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.yext-chat .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.yext-chat .opacity-0{opacity:0}.yext-chat .shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.yext-chat .shadow-2xl,.yext-chat .shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.yext-chat .shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.yext-chat .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.yext-chat .duration-150,.yext-chat .transition-all{transition-duration:.15s}.yext-chat .duration-200{transition-duration:.2s}.yext-chat .duration-300{transition-duration:.3s}.yext-chat .\@container{container-type:inline-size}.yext-chat .placeholder\:text-\[13px\]::-moz-placeholder{font-size:13px}.yext-chat .placeholder\:text-\[13px\]::placeholder{font-size:13px}@media (hover:hover) and (pointer:fine){.yext-chat .hover\:-translate-y-2:hover{--tw-translate-y:-0.5rem}.yext-chat .hover\:-translate-y-2:hover,.yext-chat .hover\:scale-110:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.yext-chat .hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}.yext-chat .hover\:cursor-pointer:hover{cursor:pointer}.yext-chat .hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity))}.yext-chat .hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}.yext-chat .hover\:underline:hover{text-decoration-line:underline}}.yext-chat .active\:scale-90:active{--tw-scale-x:.9;--tw-scale-y:.9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.yext-chat .disabled\:bg-slate-200:disabled{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}@media (hover:hover) and (pointer:fine){.yext-chat .group:hover .group-hover\:opacity-100,.yext-chat .peer:hover~.peer-hover\:opacity-100{opacity:1}}@container (min-width: 32rem){.yext-chat .\@lg\:m-1{margin:.25rem}.yext-chat .\@lg\:ml-0{margin-left:0}.yext-chat .\@lg\:flex-row{flex-direction:row}.yext-chat .\@lg\:flex-row-reverse{flex-direction:row-reverse}.yext-chat .\@lg\:items-center{align-items:center}.yext-chat .\@lg\:gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}}@container (min-width: 480px){.yext-chat .\@\[480px\]\:bottom-3\.5{bottom:.875rem}.yext-chat .\@\[480px\]\:text-\[13px\]{font-size:13px}.yext-chat .\@\[480px\]\:text-base{font-size:1rem;line-height:1.5rem}.yext-chat .placeholder\:\@\[480px\]\:text-base::-moz-placeholder{font-size:1rem;line-height:1.5rem}.yext-chat .placeholder\:\@\[480px\]\:text-base::placeholder{font-size:1rem;line-height:1.5rem}}@media (max-width:480px){.yext-chat .max-\[480px\]\:bottom-0{bottom:0}.yext-chat .max-\[480px\]\:right-0{right:0}.yext-chat .max-\[480px\]\:h-full{height:100%}.yext-chat .max-\[480px\]\:w-full{width:100%}.yext-chat .max-\[480px\]\:rounded-none{border-radius:0}}@media (min-width:1024px){.yext-chat .lg\:bottom-14{bottom:3.5rem}.yext-chat .lg\:right-10{right:2.5rem}.yext-chat .lg\:h-14{height:3.5rem}.yext-chat .lg\:h-16{height:4rem}.yext-chat .lg\:h-6{height:1.5rem}.yext-chat .lg\:h-\[40px\]{height:40px}.yext-chat .lg\:w-16{width:4rem}.yext-chat .lg\:w-6{width:1.5rem}.yext-chat .lg\:w-96{width:24rem}.yext-chat .lg\:w-\[40px\]{width:40px}.yext-chat .lg\:text-base{font-size:1rem;line-height:1.5rem}}.yext-chat .\[\&\>\*\:first-child\]\:mt-3>:first-child{margin-top:.75rem}@media (hover:hover){.yext-chat .\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var version = "0.12.1";
4
-
5
- exports.version = version;
6
- //# sourceMappingURL=package.json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,53 +0,0 @@
1
- import React from "react";
2
- /**
3
- * The CSS class interface for the {@link ChatHeader} component.
4
- *
5
- * @public
6
- */
7
- export interface ChatHeaderCssClasses {
8
- container?: string;
9
- title?: string;
10
- restartButton?: string;
11
- restartButtonIcon?: string;
12
- closeButton?: string;
13
- closeButtonIcon?: string;
14
- }
15
- /**
16
- * The props for the {@link ChatHeader} component.
17
- *
18
- * @public
19
- */
20
- export interface ChatHeaderProps {
21
- /**
22
- * The headers's title text, essentially how the chat window identifies itself to the user.
23
- */
24
- title: string;
25
- /**
26
- * Displays a restart button which allows the user to restart the conversation.
27
- * Defaults to false.
28
- */
29
- showRestartButton?: boolean;
30
- /**
31
- * Displays a close button which will invoke {@link ChatHeaderProps.onClose} on click.
32
- * Default to false.
33
- */
34
- showCloseButton?: boolean;
35
- /** A function which is called when the close button is clicked. */
36
- onClose?: () => void;
37
- /** Custom icon for for restart button. */
38
- restartButtonIcon?: JSX.Element;
39
- /** Custom icon for for close button. */
40
- closeButtonIcon?: JSX.Element;
41
- /** CSS classes for customizing the component styling. */
42
- customCssClasses?: ChatHeaderCssClasses;
43
- }
44
- /**
45
- * A component that renders the header of a chat bot panel,
46
- * including the title and a button to reset the conversation.
47
- *
48
- * @public
49
- *
50
- * @param props - {@link ChatHeaderProps}
51
- */
52
- export declare function ChatHeader({ title, showRestartButton, restartButtonIcon, showCloseButton, closeButtonIcon, onClose, customCssClasses, }: ChatHeaderProps): React.JSX.Element;
53
- //# sourceMappingURL=ChatHeader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatHeader.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAK7D;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAcD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChC,yCAAyC;IACzC,eAAe,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC9B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,OAAO,EACP,gBAAgB,GACjB,EAAE,eAAe,qBAgDjB"}
@@ -1,52 +0,0 @@
1
- 'use strict';
2
-
3
- var chatHeadlessReact = require('@yext/chat-headless-react');
4
- var DualSync = require('../icons/DualSync.js');
5
- var useComposedCssClasses = require('../hooks/useComposedCssClasses.js');
6
- var React = require('react');
7
- var tailwindMerge = require('tailwind-merge');
8
- var Cross = require('../icons/Cross.js');
9
- var withStylelessCssClasses = require('../utils/withStylelessCssClasses.js');
10
-
11
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
-
13
- var React__default = /*#__PURE__*/_interopDefault(React);
14
-
15
- const builtInCssClasses = withStylelessCssClasses.withStylelessCssClasses("Header", {
16
- container: "w-full pl-4 pr-3 py-3 flex justify-between bg-gradient-to-tr from-blue-600 to-blue-800",
17
- title: "text-white text-xl font-medium truncate pr-1",
18
- restartButton: "w-8 h-8 ml-auto shrink-0 flex justify-center items-center",
19
- restartButtonIcon: "text-white stroke-[0.2] w-[26px] h-[26px]",
20
- closeButton: "w-8 h-8 hover:scale-110 shrink-0 flex justify-center items-center",
21
- closeButtonIcon: "text-white w-[26px] h-[26px]",
22
- });
23
- /**
24
- * A component that renders the header of a chat bot panel,
25
- * including the title and a button to reset the conversation.
26
- *
27
- * @public
28
- *
29
- * @param props - {@link ChatHeaderProps}
30
- */
31
- function ChatHeader({ title, showRestartButton, restartButtonIcon, showCloseButton, closeButtonIcon, onClose, customCssClasses, }) {
32
- const chat = chatHeadlessReact.useChatActions();
33
- const cssClasses = useComposedCssClasses.useComposedCssClasses(builtInCssClasses, customCssClasses);
34
- const [isSpinning, setIsSpinning] = React.useState(false);
35
- const restartButtonCssClasses = tailwindMerge.twMerge(cssClasses.restartButton, isSpinning ? "animate-[spin_0.3s_linear]" : "hover:scale-110");
36
- const clearTimerRef = React.useRef();
37
- const onRestart = React.useCallback(async () => {
38
- clearTimeout(clearTimerRef.current);
39
- setIsSpinning(true);
40
- clearTimerRef.current = setTimeout(() => {
41
- setIsSpinning(false);
42
- }, 1000);
43
- chat.restartConversation();
44
- }, [chat]);
45
- return (React__default.default.createElement("div", { className: cssClasses.container },
46
- React__default.default.createElement("h1", { className: cssClasses.title }, title),
47
- showRestartButton && (React__default.default.createElement("button", { "aria-label": "Restart Conversation", onClick: onRestart, className: restartButtonCssClasses }, restartButtonIcon ?? (React__default.default.createElement(DualSync.DualSyncIcon, { className: cssClasses.restartButtonIcon })))),
48
- showCloseButton && (React__default.default.createElement("button", { "aria-label": "Close Chat", onClick: onClose, className: cssClasses.closeButton }, closeButtonIcon ?? (React__default.default.createElement(Cross.CrossIcon, { className: cssClasses.closeButtonIcon }))))));
49
- }
50
-
51
- exports.ChatHeader = ChatHeader;
52
- //# sourceMappingURL=ChatHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatHeader.js","sources":["../../../../src/components/ChatHeader.tsx"],"sourcesContent":["import { useChatActions } from \"@yext/chat-headless-react\";\nimport { DualSyncIcon } from \"../icons/DualSync\";\nimport { useComposedCssClasses } from \"../hooks/useComposedCssClasses\";\nimport React, { useCallback, useRef, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { CrossIcon } from \"../icons/Cross\";\nimport { withStylelessCssClasses } from \"../utils/withStylelessCssClasses\";\n\n/**\n * The CSS class interface for the {@link ChatHeader} component.\n *\n * @public\n */\nexport interface ChatHeaderCssClasses {\n container?: string;\n title?: string;\n restartButton?: string;\n restartButtonIcon?: string;\n closeButton?: string;\n closeButtonIcon?: string;\n}\n\nconst builtInCssClasses: Readonly<ChatHeaderCssClasses> =\n withStylelessCssClasses(\"Header\", {\n container:\n \"w-full pl-4 pr-3 py-3 flex justify-between bg-gradient-to-tr from-blue-600 to-blue-800\",\n title: \"text-white text-xl font-medium truncate pr-1\",\n restartButton: \"w-8 h-8 ml-auto shrink-0 flex justify-center items-center\",\n restartButtonIcon: \"text-white stroke-[0.2] w-[26px] h-[26px]\",\n closeButton:\n \"w-8 h-8 hover:scale-110 shrink-0 flex justify-center items-center\",\n closeButtonIcon: \"text-white w-[26px] h-[26px]\",\n });\n\n/**\n * The props for the {@link ChatHeader} component.\n *\n * @public\n */\nexport interface ChatHeaderProps {\n /**\n * The headers's title text, essentially how the chat window identifies itself to the user.\n */\n title: string;\n /**\n * Displays a restart button which allows the user to restart the conversation.\n * Defaults to false.\n */\n showRestartButton?: boolean;\n /**\n * Displays a close button which will invoke {@link ChatHeaderProps.onClose} on click.\n * Default to false.\n */\n showCloseButton?: boolean;\n /** A function which is called when the close button is clicked. */\n onClose?: () => void;\n /** Custom icon for for restart button. */\n restartButtonIcon?: JSX.Element;\n /** Custom icon for for close button. */\n closeButtonIcon?: JSX.Element;\n /** CSS classes for customizing the component styling. */\n customCssClasses?: ChatHeaderCssClasses;\n}\n\n/**\n * A component that renders the header of a chat bot panel,\n * including the title and a button to reset the conversation.\n *\n * @public\n *\n * @param props - {@link ChatHeaderProps}\n */\nexport function ChatHeader({\n title,\n showRestartButton,\n restartButtonIcon,\n showCloseButton,\n closeButtonIcon,\n onClose,\n customCssClasses,\n}: ChatHeaderProps) {\n const chat = useChatActions();\n\n const cssClasses = useComposedCssClasses(builtInCssClasses, customCssClasses);\n\n const [isSpinning, setIsSpinning] = useState(false);\n const restartButtonCssClasses = twMerge(\n cssClasses.restartButton,\n isSpinning ? \"animate-[spin_0.3s_linear]\" : \"hover:scale-110\"\n );\n\n const clearTimerRef = useRef<ReturnType<typeof setTimeout>>();\n const onRestart = useCallback(async () => {\n clearTimeout(clearTimerRef.current);\n setIsSpinning(true);\n clearTimerRef.current = setTimeout(() => {\n setIsSpinning(false);\n }, 1000);\n chat.restartConversation();\n }, [chat]);\n\n return (\n <div className={cssClasses.container}>\n <h1 className={cssClasses.title}>{title}</h1>\n {showRestartButton && (\n <button\n aria-label=\"Restart Conversation\"\n onClick={onRestart}\n className={restartButtonCssClasses}\n >\n {restartButtonIcon ?? (\n <DualSyncIcon className={cssClasses.restartButtonIcon} />\n )}\n </button>\n )}\n {showCloseButton && (\n <button\n aria-label=\"Close Chat\"\n onClick={onClose}\n className={cssClasses.closeButton}\n >\n {closeButtonIcon ?? (\n <CrossIcon className={cssClasses.closeButtonIcon} />\n )}\n </button>\n )}\n </div>\n );\n}\n"],"names":["withStylelessCssClasses","useChatActions","useComposedCssClasses","useState","twMerge","useRef","useCallback","React","DualSyncIcon","CrossIcon"],"mappings":";;;;;;;;;;;;;;AAsBA,MAAM,iBAAiB,GACrBA,+CAAuB,CAAC,QAAQ,EAAE;AAChC,IAAA,SAAS,EACP,wFAAwF;AAC1F,IAAA,KAAK,EAAE,8CAA8C;AACrD,IAAA,aAAa,EAAE,2DAA2D;AAC1E,IAAA,iBAAiB,EAAE,2CAA2C;AAC9D,IAAA,WAAW,EACT,mEAAmE;AACrE,IAAA,eAAe,EAAE,8BAA8B;AAChD,CAAA,CAAC,CAAC;AAgCL;;;;;;;AAOG;SACa,UAAU,CAAC,EACzB,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,OAAO,EACP,gBAAgB,GACA,EAAA;AAChB,IAAA,MAAM,IAAI,GAAGC,gCAAc,EAAE,CAAC;IAE9B,MAAM,UAAU,GAAGC,2CAAqB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAE9E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAC;AACpD,IAAA,MAAM,uBAAuB,GAAGC,qBAAO,CACrC,UAAU,CAAC,aAAa,EACxB,UAAU,GAAG,4BAA4B,GAAG,iBAAiB,CAC9D,CAAC;AAEF,IAAA,MAAM,aAAa,GAAGC,YAAM,EAAiC,CAAC;AAC9D,IAAA,MAAM,SAAS,GAAGC,iBAAW,CAAC,YAAW;AACvC,QAAA,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,aAAa,CAAC,IAAI,CAAC,CAAC;AACpB,QAAA,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;YACtC,aAAa,CAAC,KAAK,CAAC,CAAC;SACtB,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7B,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAEX,IAAA,QACEC,sBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,SAAS,EAAA;AAClC,QAAAA,sBAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,UAAU,CAAC,KAAK,EAAA,EAAG,KAAK,CAAM;QAC5C,iBAAiB,KAChBA,sBAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,YAAA,EACa,sBAAsB,EACjC,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,uBAAuB,EAAA,EAEjC,iBAAiB,KAChBA,sBAAA,CAAA,aAAA,CAACC,qBAAY,EAAA,EAAC,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAA,CAAI,CAC1D,CACM,CACV;AACA,QAAA,eAAe,KACdD,sBACa,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,YAAA,EAAA,YAAY,EACvB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,UAAU,CAAC,WAAW,EAEhC,EAAA,eAAe,KACdA,sBAAC,CAAA,aAAA,CAAAE,eAAS,EAAC,EAAA,SAAS,EAAE,UAAU,CAAC,eAAe,EAAA,CAAI,CACrD,CACM,CACV,CACG,EACN;AACJ;;;;"}
@@ -1,60 +0,0 @@
1
- import React from "react";
2
- /**
3
- * The CSS class interface for the {@link ChatInput} component.
4
- *
5
- * @public
6
- */
7
- export interface ChatInputCssClasses {
8
- container?: string;
9
- textArea?: string;
10
- sendButton?: string;
11
- }
12
- /**
13
- * The props for the {@link ChatInput} component.
14
- *
15
- * @public
16
- */
17
- export interface ChatInputProps {
18
- /**
19
- * The input's placeholder text when no text has been entered by the user.
20
- * Defaults to "Type a message...".
21
- */
22
- placeholder?: string;
23
- /**
24
- * Enable streaming behavior by making a request to Chat Streaming API.
25
- * This feature is experimental, and is subject to change.
26
- * Defaults to false.
27
- */
28
- stream?: boolean;
29
- /** Enable auto focus for the input box. Defaults to false. */
30
- inputAutoFocus?: boolean;
31
- /**
32
- * A function which is called when an error occurs from Chat API while processing the user's message.
33
- * By default, the error is logged to the console and an error message is added to state.
34
- */
35
- handleError?: (e: unknown) => void;
36
- /** Custom icon for the send button. */
37
- sendButtonIcon?: JSX.Element;
38
- /** CSS classes for customizing the component styling. */
39
- customCssClasses?: ChatInputCssClasses;
40
- /** A callback which is called when user sends a message. */
41
- onSend?: (message: string) => void;
42
- /**
43
- * A function which is called when a retryable error occurs from
44
- * Chat API while processing the user's message.
45
- */
46
- onRetry?: (e: unknown) => void;
47
- }
48
- /**
49
- * A component that allows user to input message and send to Chat API.
50
- *
51
- * @remarks
52
- * Pressing "Enter" key will send the current message.
53
- * To add a newline, press "Shift" and "Enter".
54
- *
55
- * @public
56
- *
57
- * @param props - {@link ChatInputProps}
58
- */
59
- export declare function ChatInput({ placeholder, stream, inputAutoFocus, handleError, sendButtonIcon, customCssClasses, onSend, onRetry, }: ChatInputProps): React.JSX.Element;
60
- //# sourceMappingURL=ChatInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AASrD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAaD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,uCAAuC;IACvC,cAAc,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC7B,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAiC,EACjC,MAAc,EACd,cAAqB,EACrB,WAAW,EACX,cAA8B,EAC9B,gBAAgB,EAChB,MAAM,EACN,OAAO,GACR,EAAE,cAAc,qBAuEhB"}
@@ -1,76 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var chatHeadlessReact = require('@yext/chat-headless-react');
5
- var Arrow = require('../icons/Arrow.js');
6
- var useComposedCssClasses = require('../hooks/useComposedCssClasses.js');
7
- var TextareaAutosize = require('react-textarea-autosize');
8
- var useDefaultHandleApiError = require('../hooks/useDefaultHandleApiError.js');
9
- var withStylelessCssClasses = require('../utils/withStylelessCssClasses.js');
10
- var useSendMessageWithRetries = require('../hooks/useSendMessageWithRetries.js');
11
-
12
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
-
14
- var React__default = /*#__PURE__*/_interopDefault(React);
15
- var TextareaAutosize__default = /*#__PURE__*/_interopDefault(TextareaAutosize);
16
-
17
- const builtInCssClasses = withStylelessCssClasses.withStylelessCssClasses("Input", {
18
- container: "w-full h-fit flex flex-row relative @container",
19
- textArea: "w-full p-4 pr-12 border border-slate-300 rounded-3xl resize-none text-[13px] @[480px]:text-base placeholder:text-[13px] placeholder:@[480px]:text-base text-slate-900",
20
- sendButton: "rounded-full p-1.5 w-8 h-8 stroke-2 text-white bg-blue-600 disabled:bg-slate-200 hover:bg-blue-800 active:scale-90 transition-all absolute right-4 bottom-2.5 @[480px]:bottom-3.5",
21
- });
22
- /**
23
- * A component that allows user to input message and send to Chat API.
24
- *
25
- * @remarks
26
- * Pressing "Enter" key will send the current message.
27
- * To add a newline, press "Shift" and "Enter".
28
- *
29
- * @public
30
- *
31
- * @param props - {@link ChatInputProps}
32
- */
33
- function ChatInput({ placeholder = "Type a message...", stream = false, inputAutoFocus = true, handleError, sendButtonIcon = React__default.default.createElement(Arrow.ArrowIcon, null), customCssClasses, onSend, onRetry, }) {
34
- const [input, setInput] = React.useState("");
35
- const canSendMessage = chatHeadlessReact.useChatState((state) => state.conversation.canSendMessage);
36
- const defaultHandleApiError = useDefaultHandleApiError.useDefaultHandleApiError();
37
- const sendMessageWithRetries = useSendMessageWithRetries.useSendMessageWithRetries(stream, 1, onRetry);
38
- const cssClasses = useComposedCssClasses.useComposedCssClasses(builtInCssClasses, customCssClasses);
39
- const sendMessage = React.useCallback(async () => {
40
- setInput("");
41
- sendMessageWithRetries(input)
42
- .catch(handleError ?? defaultHandleApiError)
43
- .finally(() => {
44
- onSend?.(input);
45
- });
46
- }, [
47
- sendMessageWithRetries,
48
- input,
49
- handleError,
50
- defaultHandleApiError,
51
- onSend,
52
- ]);
53
- const handleKeyDown = React.useCallback((e) => {
54
- if (!e.shiftKey &&
55
- e.key === "Enter" &&
56
- // The Japanese Keyboard uses "Enter" key to convert from Hiragana to Kanji.
57
- // "isComposing" is a flag that indicates whether the event is part of an ongoing composition session.
58
- // Safari does not support `isComposing` with the Japanese IME event,
59
- // so we have to additionally check for the keyCode to handle that edge case.
60
- !(e.nativeEvent.isComposing || e.keyCode === 229)) {
61
- e.preventDefault();
62
- if (canSendMessage && input.trim().length !== 0) {
63
- sendMessage();
64
- }
65
- }
66
- }, [sendMessage, canSendMessage, input]);
67
- const onInputChange = React.useCallback((e) => {
68
- setInput(e.target.value);
69
- }, []);
70
- return (React__default.default.createElement("div", { className: cssClasses.container },
71
- React__default.default.createElement(TextareaAutosize__default.default, { autoFocus: inputAutoFocus, onKeyDown: handleKeyDown, value: input, onChange: onInputChange, className: cssClasses.textArea, placeholder: placeholder }),
72
- React__default.default.createElement("button", { "aria-label": "Send Message", disabled: !canSendMessage || input.trim().length === 0, onClick: sendMessage, className: cssClasses.sendButton }, sendButtonIcon)));
73
- }
74
-
75
- exports.ChatInput = ChatInput;
76
- //# sourceMappingURL=ChatInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatInput.js","sources":["../../../../src/components/ChatInput.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { useChatState } from \"@yext/chat-headless-react\";\nimport { ArrowIcon } from \"../icons/Arrow\";\nimport { useComposedCssClasses } from \"../hooks\";\nimport TextareaAutosize from \"react-textarea-autosize\";\nimport { useDefaultHandleApiError } from \"../hooks/useDefaultHandleApiError\";\nimport { withStylelessCssClasses } from \"../utils/withStylelessCssClasses\";\nimport { useSendMessageWithRetries } from \"../hooks/useSendMessageWithRetries\";\n\n/**\n * The CSS class interface for the {@link ChatInput} component.\n *\n * @public\n */\nexport interface ChatInputCssClasses {\n container?: string;\n textArea?: string;\n sendButton?: string;\n}\n\nconst builtInCssClasses: ChatInputCssClasses = withStylelessCssClasses(\n \"Input\",\n {\n container: \"w-full h-fit flex flex-row relative @container\",\n textArea:\n \"w-full p-4 pr-12 border border-slate-300 rounded-3xl resize-none text-[13px] @[480px]:text-base placeholder:text-[13px] placeholder:@[480px]:text-base text-slate-900\",\n sendButton:\n \"rounded-full p-1.5 w-8 h-8 stroke-2 text-white bg-blue-600 disabled:bg-slate-200 hover:bg-blue-800 active:scale-90 transition-all absolute right-4 bottom-2.5 @[480px]:bottom-3.5\",\n }\n);\n\n/**\n * The props for the {@link ChatInput} component.\n *\n * @public\n */\nexport interface ChatInputProps {\n /**\n * The input's placeholder text when no text has been entered by the user.\n * Defaults to \"Type a message...\".\n */\n placeholder?: string;\n /**\n * Enable streaming behavior by making a request to Chat Streaming API.\n * This feature is experimental, and is subject to change.\n * Defaults to false.\n */\n stream?: boolean;\n /** Enable auto focus for the input box. Defaults to false. */\n inputAutoFocus?: boolean;\n /**\n * A function which is called when an error occurs from Chat API while processing the user's message.\n * By default, the error is logged to the console and an error message is added to state.\n */\n handleError?: (e: unknown) => void;\n /** Custom icon for the send button. */\n sendButtonIcon?: JSX.Element;\n /** CSS classes for customizing the component styling. */\n customCssClasses?: ChatInputCssClasses;\n /** A callback which is called when user sends a message. */\n onSend?: (message: string) => void;\n /**\n * A function which is called when a retryable error occurs from\n * Chat API while processing the user's message.\n */\n onRetry?: (e: unknown) => void;\n}\n\n/**\n * A component that allows user to input message and send to Chat API.\n *\n * @remarks\n * Pressing \"Enter\" key will send the current message.\n * To add a newline, press \"Shift\" and \"Enter\".\n *\n * @public\n *\n * @param props - {@link ChatInputProps}\n */\nexport function ChatInput({\n placeholder = \"Type a message...\",\n stream = false,\n inputAutoFocus = true,\n handleError,\n sendButtonIcon = <ArrowIcon />,\n customCssClasses,\n onSend,\n onRetry,\n}: ChatInputProps) {\n const [input, setInput] = useState(\"\");\n const canSendMessage = useChatState(\n (state) => state.conversation.canSendMessage\n );\n const defaultHandleApiError = useDefaultHandleApiError();\n const sendMessageWithRetries = useSendMessageWithRetries(stream, 1, onRetry);\n const cssClasses = useComposedCssClasses(builtInCssClasses, customCssClasses);\n\n const sendMessage = useCallback(async () => {\n setInput(\"\");\n sendMessageWithRetries(input)\n .catch(handleError ?? defaultHandleApiError)\n .finally(() => {\n onSend?.(input);\n });\n }, [\n sendMessageWithRetries,\n input,\n handleError,\n defaultHandleApiError,\n onSend,\n ]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (\n !e.shiftKey &&\n e.key === \"Enter\" &&\n // The Japanese Keyboard uses \"Enter\" key to convert from Hiragana to Kanji.\n // \"isComposing\" is a flag that indicates whether the event is part of an ongoing composition session.\n // Safari does not support `isComposing` with the Japanese IME event,\n // so we have to additionally check for the keyCode to handle that edge case.\n !(e.nativeEvent.isComposing || e.keyCode === 229)\n ) {\n e.preventDefault();\n if (canSendMessage && input.trim().length !== 0) {\n sendMessage();\n }\n }\n },\n [sendMessage, canSendMessage, input]\n );\n\n const onInputChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setInput(e.target.value);\n },\n []\n );\n\n return (\n <div className={cssClasses.container}>\n <TextareaAutosize\n autoFocus={inputAutoFocus}\n onKeyDown={handleKeyDown}\n value={input}\n onChange={onInputChange}\n className={cssClasses.textArea}\n placeholder={placeholder}\n />\n <button\n aria-label=\"Send Message\"\n disabled={!canSendMessage || input.trim().length === 0}\n onClick={sendMessage}\n className={cssClasses.sendButton}\n >\n {sendButtonIcon}\n </button>\n </div>\n );\n}\n"],"names":["withStylelessCssClasses","React","ArrowIcon","useState","useChatState","useDefaultHandleApiError","useSendMessageWithRetries","useComposedCssClasses","useCallback","TextareaAutosize"],"mappings":";;;;;;;;;;;;;;;;AAoBA,MAAM,iBAAiB,GAAwBA,+CAAuB,CACpE,OAAO,EACP;AACE,IAAA,SAAS,EAAE,gDAAgD;AAC3D,IAAA,QAAQ,EACN,uKAAuK;AACzK,IAAA,UAAU,EACR,mLAAmL;AACtL,CAAA,CACF,CAAC;AAuCF;;;;;;;;;;AAUG;AACa,SAAA,SAAS,CAAC,EACxB,WAAW,GAAG,mBAAmB,EACjC,MAAM,GAAG,KAAK,EACd,cAAc,GAAG,IAAI,EACrB,WAAW,EACX,cAAc,GAAGC,sBAAC,CAAA,aAAA,CAAAC,eAAS,EAAG,IAAA,CAAA,EAC9B,gBAAgB,EAChB,MAAM,EACN,OAAO,GACQ,EAAA;IACf,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGC,cAAQ,CAAC,EAAE,CAAC,CAAC;AACvC,IAAA,MAAM,cAAc,GAAGC,8BAAY,CACjC,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC,cAAc,CAC7C,CAAC;AACF,IAAA,MAAM,qBAAqB,GAAGC,iDAAwB,EAAE,CAAC;IACzD,MAAM,sBAAsB,GAAGC,mDAAyB,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAGC,2CAAqB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AAE9E,IAAA,MAAM,WAAW,GAAGC,iBAAW,CAAC,YAAW;QACzC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,sBAAsB,CAAC,KAAK,CAAC;AAC1B,aAAA,KAAK,CAAC,WAAW,IAAI,qBAAqB,CAAC;aAC3C,OAAO,CAAC,MAAK;AACZ,YAAA,MAAM,GAAG,KAAK,CAAC,CAAC;AAClB,SAAC,CAAC,CAAC;AACP,KAAC,EAAE;QACD,sBAAsB;QACtB,KAAK;QACL,WAAW;QACX,qBAAqB;QACrB,MAAM;AACP,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,aAAa,GAAGA,iBAAW,CAC/B,CAAC,CAA2C,KAAI;QAC9C,IACE,CAAC,CAAC,CAAC,QAAQ;YACX,CAAC,CAAC,GAAG,KAAK,OAAO;;;;;AAKjB,YAAA,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,EACjD;YACA,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA;AACF,SAAA;KACF,EACD,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CACrC,CAAC;AAEF,IAAA,MAAM,aAAa,GAAGA,iBAAW,CAC/B,CAAC,CAAyC,KAAI;AAC5C,QAAA,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC1B,EACD,EAAE,CACH,CAAC;AAEF,IAAA,QACEP,sBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,SAAS,EAAA;QAClCA,sBAAC,CAAA,aAAA,CAAAQ,iCAAgB,EACf,EAAA,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,UAAU,CAAC,QAAQ,EAC9B,WAAW,EAAE,WAAW,EACxB,CAAA;AACF,QAAAR,sBAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,YAAA,EACa,cAAc,EACzB,QAAQ,EAAE,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACtD,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,UAAU,CAAC,UAAU,EAE/B,EAAA,cAAc,CACR,CACL,EACN;AACJ;;;;"}
@@ -1,74 +0,0 @@
1
- import React, { ReactNode } from "react";
2
- import { MessageBubbleCssClasses, MessageBubbleProps } from "./MessageBubble";
3
- import { ChatInputCssClasses, ChatInputProps } from "./ChatInput";
4
- import { MessageSuggestionCssClasses } from "./MessageSuggestions";
5
- /**
6
- * The CSS class interface for the {@link ChatPanel} component.
7
- *
8
- * @public
9
- */
10
- export interface ChatPanelCssClasses {
11
- container?: string;
12
- messagesContainer?: string;
13
- messagesScrollContainer?: string;
14
- inputContainer?: string;
15
- inputCssClasses?: ChatInputCssClasses;
16
- messageBubbleCssClasses?: MessageBubbleCssClasses;
17
- messageSuggestionClasses?: MessageSuggestionCssClasses;
18
- footer?: string;
19
- }
20
- /**
21
- * The props for the {@link ChatPanel} component.
22
- *
23
- * @public
24
- */
25
- export interface ChatPanelProps extends Omit<MessageBubbleProps, "customCssClasses" | "message">, Omit<ChatInputProps, "customCssClasses"> {
26
- /** A header to render at the top of the panel. */
27
- header?: ReactNode;
28
- /** A footer markdown string to render at the bottom of the panel. */
29
- footer?: string;
30
- /**
31
- * CSS classes for customizing the component styling.
32
- */
33
- customCssClasses?: ChatPanelCssClasses;
34
- /**
35
- * A set of pre-written initial messages that the user
36
- * can click on instead of typing their own.
37
- */
38
- messageSuggestions?: string[];
39
- /** Link target open behavior on click.
40
- * Defaults to "_blank".
41
- */
42
- linkTarget?: string;
43
- /** A callback which is called when user clicks a link. */
44
- onLinkClick?: (href?: string) => void;
45
- /**
46
- * Text to display when retrying.
47
- * Defaults to "Error occurred. Retrying".
48
- */
49
- retryText?: string;
50
- }
51
- /**
52
- * A component that renders a full panel for chat bot interactions. This includes
53
- * the message bubbles for the conversation, input box with send button, and header
54
- * (if provided).
55
- *
56
- * @public
57
- *
58
- * @param props - {@link ChatPanelProps}
59
- */
60
- export declare function ChatPanel(props: ChatPanelProps): React.JSX.Element;
61
- export declare function getStateLocalStorageKey(hostname: string, conversationId: string): string;
62
- /**
63
- * Maintains the panel state of the session.
64
- */
65
- export interface PanelState {
66
- /** The scroll position of the panel. */
67
- scrollPosition?: number;
68
- }
69
- /**
70
- * Loads the {@link PanelState} from local storage.
71
- */
72
- export declare const loadSessionState: (conversationId: string) => PanelState;
73
- export declare const saveSessionState: (conversationId: string, state: PanelState) => void;
74
- //# sourceMappingURL=ChatPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,SAAS,EAOV,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAa,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7E,OAAO,EACL,2BAA2B,EAE5B,MAAM,sBAAsB,CAAC;AAG9B;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,wBAAwB,CAAC,EAAE,2BAA2B,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD;;;;GAIG;AACH,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAC,EAC9D,IAAI,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC1C,kDAAkD;IAClD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBA6L9C;AAID,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,MAAM,CAER;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,mBAAoB,MAAM,KAAG,UAsBzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,mBAAoB,MAAM,SAAS,UAAU,SASzE,CAAC"}