@yext/chat-ui-react 0.5.5 → 0.6.0

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 (51) hide show
  1. package/README.md +9 -13
  2. package/THIRD-PARTY-NOTICES +1 -133
  3. package/lib/bundle.css +1 -1
  4. package/lib/commonjs/bundle.css +1 -0
  5. package/lib/commonjs/package.json +99 -98
  6. package/lib/commonjs/src/components/ChatInput.js +3 -3
  7. package/lib/commonjs/src/components/ChatInput.js.map +1 -1
  8. package/lib/commonjs/src/components/ChatPanel.d.ts.map +1 -1
  9. package/lib/commonjs/src/components/ChatPanel.js +3 -3
  10. package/lib/commonjs/src/components/ChatPanel.js.map +1 -1
  11. package/lib/commonjs/src/components/ChatPopUp.d.ts.map +1 -1
  12. package/lib/commonjs/src/components/ChatPopUp.js +1 -1
  13. package/lib/commonjs/src/components/ChatPopUp.js.map +1 -1
  14. package/lib/commonjs/src/components/MessageBubble.js +1 -1
  15. package/lib/commonjs/src/components/MessageBubble.js.map +1 -1
  16. package/lib/commonjs/src/components/index.d.ts +0 -1
  17. package/lib/commonjs/src/components/index.d.ts.map +1 -1
  18. package/lib/commonjs/src/components/index.js +1 -3
  19. package/lib/commonjs/src/components/index.js.map +1 -1
  20. package/lib/esm/bundle.css +1 -0
  21. package/lib/esm/index.d.ts +0 -12
  22. package/lib/esm/package.json +99 -98
  23. package/lib/esm/src/components/ChatInput.js +3 -3
  24. package/lib/esm/src/components/ChatInput.js.map +1 -1
  25. package/lib/esm/src/components/ChatPanel.d.ts.map +1 -1
  26. package/lib/esm/src/components/ChatPanel.js +3 -3
  27. package/lib/esm/src/components/ChatPanel.js.map +1 -1
  28. package/lib/esm/src/components/ChatPopUp.d.ts.map +1 -1
  29. package/lib/esm/src/components/ChatPopUp.js +1 -1
  30. package/lib/esm/src/components/ChatPopUp.js.map +1 -1
  31. package/lib/esm/src/components/MessageBubble.js +1 -1
  32. package/lib/esm/src/components/MessageBubble.js.map +1 -1
  33. package/lib/esm/src/components/index.d.ts +0 -1
  34. package/lib/esm/src/components/index.d.ts.map +1 -1
  35. package/lib/esm/src/components/index.js +0 -1
  36. package/lib/esm/src/components/index.js.map +1 -1
  37. package/package.json +4 -4
  38. package/src/components/ChatInput.tsx +3 -3
  39. package/src/components/ChatPanel.tsx +20 -18
  40. package/src/components/ChatPopUp.tsx +26 -22
  41. package/src/components/MessageBubble.tsx +1 -1
  42. package/src/components/index.ts +0 -2
  43. package/lib/commonjs/src/components/ChatStyleProvider.d.ts +0 -13
  44. package/lib/commonjs/src/components/ChatStyleProvider.d.ts.map +0 -1
  45. package/lib/commonjs/src/components/ChatStyleProvider.js +0 -19
  46. package/lib/commonjs/src/components/ChatStyleProvider.js.map +0 -1
  47. package/lib/esm/src/components/ChatStyleProvider.d.ts +0 -13
  48. package/lib/esm/src/components/ChatStyleProvider.d.ts.map +0 -1
  49. package/lib/esm/src/components/ChatStyleProvider.js +0 -15
  50. package/lib/esm/src/components/ChatStyleProvider.js.map +0 -1
  51. package/src/components/ChatStyleProvider.tsx +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -3,5 +3,4 @@ export { ChatHeader } from "./ChatHeader";
3
3
  export { MessageBubble } from "./MessageBubble";
4
4
  export { ChatPanel } from "./ChatPanel";
5
5
  export { ChatPopUp } from "./ChatPopUp";
6
- export { ChatStyleProvider } from "./ChatStyleProvider";
7
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yext/chat-ui-react",
3
- "version": "0.5.5",
3
+ "version": "0.6.0",
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",
@@ -40,7 +40,8 @@
40
40
  "tailwindcss": "tailwindcss",
41
41
  "build:css": "./scoped-bundle.sh",
42
42
  "build:js": "tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json",
43
- "build": "rm -rf lib/** && npm run build:js && npm run build:css && npm run generate-docs && npm run generate-notices",
43
+ "update-lib-package": "node ./update-lib-package.js",
44
+ "build": "rm -rf lib/** && npm run build:js && npm run build:css && npm run update-lib-package && npm run generate-docs && npm run generate-notices",
44
45
  "build-storybook": "storybook build"
45
46
  },
46
47
  "devDependencies": {
@@ -89,9 +90,8 @@
89
90
  "react-dom": "^16.14 || ^17 || || ^18"
90
91
  },
91
92
  "dependencies": {
92
- "react-expanding-textarea": "^2.3.6",
93
93
  "react-markdown": "^6.0.3",
94
- "react-textarea-autosize": "^8.4.1",
94
+ "react-textarea-autosize": "^8.5.3",
95
95
  "rehype-raw": "^5.0.0",
96
96
  "rehype-sanitize": "^4.0.0",
97
97
  "remark-gfm": "^1.0.0",
@@ -2,7 +2,7 @@ import { useCallback, useState } from "react";
2
2
  import { useChatActions, useChatState } from "@yext/chat-headless-react";
3
3
  import { ArrowIcon } from "../icons/Arrow";
4
4
  import { useComposedCssClasses } from "../hooks";
5
- import Textarea from "react-expanding-textarea";
5
+ import TextareaAutosize from "react-textarea-autosize";
6
6
  import { useDefaultHandleApiError } from "../hooks/useDefaultHandleApiError";
7
7
  import { withStylelessCssClasses } from "../utils/withStylelessCssClasses";
8
8
 
@@ -22,7 +22,7 @@ const builtInCssClasses: ChatInputCssClasses = withStylelessCssClasses(
22
22
  {
23
23
  container: "w-full h-fit flex flex-row relative @container",
24
24
  textArea:
25
- "w-full p-4 pr-12 border border-slate-300 rounded-3xl resize-none text-[13px] @[480px]:text-base text-slate-900",
25
+ "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",
26
26
  sendButton:
27
27
  "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",
28
28
  }
@@ -115,7 +115,7 @@ export function ChatInput({
115
115
 
116
116
  return (
117
117
  <div className={cssClasses.container}>
118
- <Textarea
118
+ <TextareaAutosize
119
119
  autoFocus={inputAutoFocus}
120
120
  onKeyDown={handleKeyDown}
121
121
  value={input}
@@ -31,8 +31,8 @@ const builtInCssClasses: ChatPanelCssClasses = withStylelessCssClasses(
31
31
  {
32
32
  container: "h-full w-full flex flex-col relative shadow-2xl bg-white",
33
33
  messagesScrollContainer: "flex flex-col mt-auto overflow-hidden",
34
- messagesContainer: "flex flex-col gap-y-1 px-4 pb-[85px] overflow-auto",
35
- inputContainer: "w-full absolute bottom-0 p-4 backdrop-blur-lg",
34
+ messagesContainer: "flex flex-col gap-y-1 px-4 overflow-auto",
35
+ inputContainer: "w-full p-4",
36
36
  messageBubbleCssClasses: {
37
37
  topContainer: "first:mt-4",
38
38
  },
@@ -103,23 +103,25 @@ export function ChatPanel(props: ChatPanelProps) {
103
103
  }, [messages]);
104
104
 
105
105
  return (
106
- <div className={cssClasses.container}>
107
- {header}
108
- <div className={cssClasses.messagesScrollContainer}>
109
- <div ref={messagesRef} className={cssClasses.messagesContainer}>
110
- {messages.map((message, index) => (
111
- <MessageBubble
112
- {...props}
113
- customCssClasses={cssClasses.messageBubbleCssClasses}
114
- key={index}
115
- message={message}
116
- />
117
- ))}
118
- {loading && <LoadingDots />}
106
+ <div className="yext-chat">
107
+ <div className={cssClasses.container}>
108
+ {header}
109
+ <div className={cssClasses.messagesScrollContainer}>
110
+ <div ref={messagesRef} className={cssClasses.messagesContainer}>
111
+ {messages.map((message, index) => (
112
+ <MessageBubble
113
+ {...props}
114
+ customCssClasses={cssClasses.messageBubbleCssClasses}
115
+ key={index}
116
+ message={message}
117
+ />
118
+ ))}
119
+ {loading && <LoadingDots />}
120
+ </div>
121
+ </div>
122
+ <div className={cssClasses.inputContainer}>
123
+ <ChatInput {...props} customCssClasses={cssClasses.inputCssClasses} />
119
124
  </div>
120
- </div>
121
- <div className={cssClasses.inputContainer}>
122
- <ChatInput {...props} customCssClasses={cssClasses.inputCssClasses} />
123
125
  </div>
124
126
  </div>
125
127
  );
@@ -118,29 +118,33 @@ export function ChatPopUp(props: ChatPopUpProps) {
118
118
  );
119
119
 
120
120
  return (
121
- <div className={cssClasses.container}>
122
- <div className={panelCssClasses} aria-label="Chat Popup Panel">
123
- <ChatPanel
124
- {...props}
125
- customCssClasses={cssClasses.panelCssClasses}
126
- header={
127
- <ChatHeader
128
- title={title}
129
- showRestartButton={showRestartButton}
130
- showCloseButton={true}
131
- onClose={onClose}
132
- customCssClasses={cssClasses.headerCssClasses}
133
- />
134
- }
135
- />
121
+ <div className="yext-chat">
122
+ <div className={cssClasses.container}>
123
+ <div className={panelCssClasses} aria-label="Chat Popup Panel">
124
+ <ChatPanel
125
+ {...props}
126
+ customCssClasses={cssClasses.panelCssClasses}
127
+ header={
128
+ <ChatHeader
129
+ title={title}
130
+ showRestartButton={showRestartButton}
131
+ showCloseButton={true}
132
+ onClose={onClose}
133
+ customCssClasses={cssClasses.headerCssClasses}
134
+ />
135
+ }
136
+ />
137
+ </div>
138
+ <button
139
+ aria-label="Chat Popup Button"
140
+ onClick={onClick}
141
+ className={buttonCssClasses}
142
+ >
143
+ {openPanelButtonIcon ?? (
144
+ <ChatIcon className={cssClasses.buttonIcon} />
145
+ )}
146
+ </button>
136
147
  </div>
137
- <button
138
- aria-label="Chat Popup Button"
139
- onClick={onClick}
140
- className={buttonCssClasses}
141
- >
142
- {openPanelButtonIcon ?? <ChatIcon className={cssClasses.buttonIcon} />}
143
- </button>
144
148
  </div>
145
149
  );
146
150
  }
@@ -40,7 +40,7 @@ const builtInCssClasses: MessageBubbleCssClasses =
40
40
  "ml-auto @lg:ml-0 bg-gradient-to-tr from-blue-600 to-blue-700 text-white",
41
41
  text: "text-[13px] @[480px]:text-base prose overflow-x-auto",
42
42
  text__bot: "text-slate-900",
43
- text__user: "text-white",
43
+ text__user: "text-white break-words",
44
44
  timestamp:
45
45
  "w-fit my-0.5 ml-4 @lg:ml-0 text-slate-400 text-[10px] @[480px]:text-[13px] opacity-0 peer-hover:opacity-100 duration-200 whitespace-pre-wrap",
46
46
  timestamp__bot: "",
@@ -17,5 +17,3 @@ export type { ChatPanelCssClasses, ChatPanelProps } from "./ChatPanel";
17
17
 
18
18
  export { ChatPopUp } from "./ChatPopUp";
19
19
  export type { ChatPopUpCssClasses, ChatPopUpProps } from "./ChatPopUp";
20
-
21
- export { ChatStyleProvider } from "./ChatStyleProvider";
@@ -1,13 +0,0 @@
1
- import { PropsWithChildren } from "react";
2
- import "@yext/chat-ui-react/bundle.css";
3
- /**
4
- * Adds Chat styling scoped to this component and its children.
5
- *
6
- * @remarks
7
- * Internaly, this will import "\@yext/chat-ui-react/bundle.css".
8
- * This is for use cases where the application doesn't use tailwind.
9
- *
10
- * @public
11
- */
12
- export declare function ChatStyleProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
13
- //# sourceMappingURL=ChatStyleProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatStyleProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatStyleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAEhE"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatStyleProvider = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- require("@yext/chat-ui-react/bundle.css");
6
- /**
7
- * Adds Chat styling scoped to this component and its children.
8
- *
9
- * @remarks
10
- * Internaly, this will import "\@yext/chat-ui-react/bundle.css".
11
- * This is for use cases where the application doesn't use tailwind.
12
- *
13
- * @public
14
- */
15
- function ChatStyleProvider({ children }) {
16
- return (0, jsx_runtime_1.jsx)("div", { className: "yext-chat", children: children });
17
- }
18
- exports.ChatStyleProvider = ChatStyleProvider;
19
- //# sourceMappingURL=ChatStyleProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatStyleProvider.js","sourceRoot":"","sources":["../../../../src/components/ChatStyleProvider.tsx"],"names":[],"mappings":";;;;AACA,0CAAwC;AAExC;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAqB;IAC/D,OAAO,gCAAK,SAAS,EAAC,WAAW,YAAE,QAAQ,GAAO,CAAC;AACrD,CAAC;AAFD,8CAEC"}
@@ -1,13 +0,0 @@
1
- import { PropsWithChildren } from "react";
2
- import "@yext/chat-ui-react/bundle.css";
3
- /**
4
- * Adds Chat styling scoped to this component and its children.
5
- *
6
- * @remarks
7
- * Internaly, this will import "\@yext/chat-ui-react/bundle.css".
8
- * This is for use cases where the application doesn't use tailwind.
9
- *
10
- * @public
11
- */
12
- export declare function ChatStyleProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
13
- //# sourceMappingURL=ChatStyleProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatStyleProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatStyleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAEhE"}
@@ -1,15 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import "@yext/chat-ui-react/bundle.css";
3
- /**
4
- * Adds Chat styling scoped to this component and its children.
5
- *
6
- * @remarks
7
- * Internaly, this will import "\@yext/chat-ui-react/bundle.css".
8
- * This is for use cases where the application doesn't use tailwind.
9
- *
10
- * @public
11
- */
12
- export function ChatStyleProvider({ children }) {
13
- return _jsx("div", { className: "yext-chat", children: children });
14
- }
15
- //# sourceMappingURL=ChatStyleProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatStyleProvider.js","sourceRoot":"","sources":["../../../../src/components/ChatStyleProvider.tsx"],"names":[],"mappings":";AACA,OAAO,gCAAgC,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAqB;IAC/D,OAAO,cAAK,SAAS,EAAC,WAAW,YAAE,QAAQ,GAAO,CAAC;AACrD,CAAC"}
@@ -1,15 +0,0 @@
1
- import { PropsWithChildren } from "react";
2
- import "@yext/chat-ui-react/bundle.css";
3
-
4
- /**
5
- * Adds Chat styling scoped to this component and its children.
6
- *
7
- * @remarks
8
- * Internaly, this will import "\@yext/chat-ui-react/bundle.css".
9
- * This is for use cases where the application doesn't use tailwind.
10
- *
11
- * @public
12
- */
13
- export function ChatStyleProvider({ children }: PropsWithChildren) {
14
- return <div className="yext-chat">{children}</div>;
15
- }