@servicetitan/titan-chatbot-ui 3.1.2 → 3.1.4

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ # v3.1.4 (Fri Aug 22 2025)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - SPA-7126: Small link props improvement [#47](https://github.com/servicetitan/titan-chatbot-client/pull/47) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
6
+
7
+ #### Authors: 1
8
+
9
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
10
+
11
+ ---
12
+
13
+ # v3.1.3 (Fri Aug 22 2025)
14
+
15
+ #### 🐛 Bug Fix
16
+
17
+ - SPA-7126: Removed non-compatible with Anvil2 dependencies [#45](https://github.com/servicetitan/titan-chatbot-client/pull/45) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
18
+
19
+ #### Authors: 1
20
+
21
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
22
+
23
+ ---
24
+
1
25
  # v3.1.2 (Fri Aug 15 2025)
2
26
 
3
27
  #### 🐛 Bug Fix
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-message-feedback-form-guardrail.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,eAAO,MAAM,mCAAmC,EAAE,EAyBhD,CAAC"}
1
+ {"version":3,"file":"chatbot-message-feedback-form-guardrail.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAe,EAAE,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,mCAAmC,EAAE,EA8ChD,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Form, Stack } from '@servicetitan/design-system';
3
- import { FormStateErrorBanner } from '@servicetitan/form';
2
+ import { Banner, Form, Stack } from '@servicetitan/design-system';
4
3
  import { useDependencies } from '@servicetitan/react-ioc';
5
4
  import { MessageFeedbackGuardrailStore } from '@servicetitan/titan-chatbot-api';
6
5
  import classNames from 'classnames';
@@ -8,6 +7,14 @@ import { observer } from 'mobx-react';
8
7
  import * as Styles from './chatbot-message-feedback-form.module.less';
9
8
  export const ChatbotMessageFeedbackFormGuardrail = observer(() => {
10
9
  const [store] = useDependencies(MessageFeedbackGuardrailStore);
11
- return (_jsxs(Stack, { direction: "column", spacing: "2", children: [store.formState.error && _jsx(FormStateErrorBanner, { form: store.formState }), _jsxs(Form, { "data-cy": "titan-chatbot-message-feedback-form", children: [_jsx(Form.Input, { label: "Link to correct article", className: classNames(Styles.formItem), error: store.formState.$.linkUrl.error, value: store.formState.$.linkUrl.value, onChange: store.formState.$.linkUrl.onChangeHandler, "data-cy": "titan-chatbot-message-feedback-form-link-url" }), _jsx(Form.TextArea, { label: "Notes", className: classNames(Styles.formItem, Styles.textArea), value: store.formState.$.comment.value, onChange: store.formState.$.comment.onChangeHandler, onBlur: store.formState.$.comment.enableAutoValidationAndValidate, "data-cy": "titan-chatbot-message-feedback-form-other-comment" })] })] }));
10
+ const errors = store.getFormErrors();
11
+ const status = errors.length === 0 ? 'success' : 'critical';
12
+ return (_jsxs(Stack, { direction: "column", spacing: "2", children: [store.formState.error && (_jsx(Banner, { status: status, icon: true, title: "Form Incomplete", "data-cy": "titan-chatbot-message-feedback-form-error", children: _jsx("ul", { children: errors.map((e, index) => (
13
+ // eslint-disable-next-line react/no-array-index-key
14
+ _jsx("li", { children: e }, index))) }) })), _jsxs(Form, { "data-cy": "titan-chatbot-message-feedback-form", children: [_jsx(Form.Input, { label: "Link to correct article", className: classNames(Styles.formItem), error: store.formState.$.linkUrl.error, value: store.formState.$.linkUrl.value, onChange: (e) => {
15
+ store.formState.$.linkUrl.onChange(e.currentTarget.value);
16
+ }, "data-cy": "titan-chatbot-message-feedback-form-link-url" }), _jsx(Form.TextArea, { label: "Notes", className: classNames(Styles.formItem, Styles.textArea), value: store.formState.$.comment.value, onChange: (e) => {
17
+ store.formState.$.comment.onChange(e.currentTarget.value);
18
+ }, onBlur: store.formState.$.comment.enableAutoValidationAndValidate, "data-cy": "titan-chatbot-message-feedback-form-other-comment" })] })] }));
12
19
  });
13
20
  //# sourceMappingURL=chatbot-message-feedback-form-guardrail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-message-feedback-form-guardrail.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,6CAA6C,CAAC;AAEtE,MAAM,CAAC,MAAM,mCAAmC,GAAO,QAAQ,CAAC,GAAG,EAAE;IACjE,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,6BAA6B,CAAC,CAAC;IAC/D,OAAO,CACH,MAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAG,aAChC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,KAAC,oBAAoB,IAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAI,EACzE,MAAC,IAAI,eAAS,qCAAqC,aAC/C,KAAC,IAAI,CAAC,KAAK,IACP,KAAK,EAAC,yBAAyB,EAC/B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EACtC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,aAC3C,8CAA8C,GACxD,EACF,KAAC,IAAI,CAAC,QAAQ,IACV,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EACvD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EACnD,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,aACzD,mDAAmD,GAC7D,IACC,IACH,CACX,CAAC;AACN,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"chatbot-message-feedback-form-guardrail.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,6CAA6C,CAAC;AAEtE,MAAM,CAAC,MAAM,mCAAmC,GAAO,QAAQ,CAAC,GAAG,EAAE;IACjE,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,6BAA6B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAE5D,OAAO,CACH,MAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,GAAG,aAChC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,CACtB,KAAC,MAAM,IACH,MAAM,EAAE,MAAM,EACd,IAAI,QACJ,KAAK,EAAC,iBAAiB,aACf,2CAA2C,YAEnD,uBACK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACtB,oDAAoD;oBACpD,uBAAiB,CAAC,IAAT,KAAK,CAAU,CAC3B,CAAC,GACD,GACA,CACZ,EACD,MAAC,IAAI,eAAS,qCAAqC,aAC/C,KAAC,IAAI,CAAC,KAAK,IACP,KAAK,EAAC,yBAAyB,EAC/B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EACtC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,QAAQ,EAAE,CAAC,CAAgC,EAAE,EAAE;4BAC3C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAC9D,CAAC,aACO,8CAA8C,GACxD,EACF,KAAC,IAAI,CAAC,QAAQ,IACV,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EACvD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EACtC,QAAQ,EAAE,CAAC,CAAmC,EAAE,EAAE;4BAC9C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAC9D,CAAC,EACD,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,aACzD,mDAAmD,GAC7D,IACC,IACH,CACX,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-message-feedback-form.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,eAAO,MAAM,0BAA0B,EAAE,EAwDvC,CAAC"}
1
+ {"version":3,"file":"chatbot-message-feedback-form.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAe,EAAE,EAAE,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,0BAA0B,EAAE,EAoEvC,CAAC"}
@@ -7,6 +7,18 @@ import { observer } from 'mobx-react';
7
7
  import * as Styles from './chatbot-message-feedback-form.module.less';
8
8
  export const ChatbotMessageFeedbackForm = observer(() => {
9
9
  const [store] = useDependencies(MessageFeedbackStore);
10
- return (_jsxs(Form, { "data-cy": "titan-chatbot-message-feedback-form", children: [_jsx(Form.Checkbox, { label: "Answer is unrelated to my question", className: Styles.formItem, value: store.formState.$.unrelated.value, onChange: store.formState.$.unrelated.onChangeHandler, "data-cy": "titan-chatbot-message-feedback-form-unrelated" }), _jsx(Form.Checkbox, { label: "Answer is unclear, not sure what it means", className: Styles.formItem, value: store.formState.$.unclear.value, onChange: store.formState.$.unclear.onChangeHandler, "data-cy": "titan-chatbot-message-feedback-form-unclear" }), _jsx(Form.Checkbox, { label: "Answer doesn\u2019t fully address the question", className: Styles.formItem, value: store.formState.$.notFull.value, onChange: store.formState.$.notFull.onChangeHandler, "data-cy": "titan-chatbot-message-feedback-form-not-full" }), _jsx(Form.Checkbox, { label: "Answer is incorrect or doesn\u2019t work", className: Styles.formItem, value: store.formState.$.incorrect.value, onChange: store.formState.$.incorrect.onChangeHandler, "data-cy": "titan-chatbot-message-feedback-form-incorrect" }), _jsx(Form.Checkbox, { label: "Other", className: Styles.formItem, value: store.formState.$.other.value, onChange: store.formState.$.other.onChangeHandler, "data-cy": "titan-chatbot-message-feedback-form-other" }), store.isTextAreaVisible && (_jsxs("div", { className: "m-l-4", children: [_jsx(Form.TextArea, { className: classNames(Styles.formItem, Styles.textArea), error: store.formState.$.otherComment.error, value: store.formState.$.otherComment.value, onChange: store.formState.$.otherComment.onChangeHandler, onBlur: store.formState.$.otherComment.enableAutoValidationAndValidate, "data-cy": "titan-chatbot-message-feedback-form-other-comment" }), _jsx(BodyText, { size: "small", className: "c-neutral-100 m-b-1", children: "Tell us more about what can be improved." })] }))] }));
10
+ return (_jsxs(Form, { "data-cy": "titan-chatbot-message-feedback-form", children: [_jsx(Form.Checkbox, { label: "Answer is unrelated to my question", className: Styles.formItem, value: store.formState.$.unrelated.value, onChange: (_, checked) => {
11
+ store.formState.$.unrelated.onChange(!!checked);
12
+ }, "data-cy": "titan-chatbot-message-feedback-form-unrelated" }), _jsx(Form.Checkbox, { label: "Answer is unclear, not sure what it means", className: Styles.formItem, value: store.formState.$.unclear.value, onChange: (_, checked) => {
13
+ store.formState.$.unclear.onChange(!!checked);
14
+ }, "data-cy": "titan-chatbot-message-feedback-form-unclear" }), _jsx(Form.Checkbox, { label: "Answer doesn\u2019t fully address the question", className: Styles.formItem, value: store.formState.$.notFull.value, onChange: (_, checked) => {
15
+ store.formState.$.notFull.onChange(!!checked);
16
+ }, "data-cy": "titan-chatbot-message-feedback-form-not-full" }), _jsx(Form.Checkbox, { label: "Answer is incorrect or doesn\u2019t work", className: Styles.formItem, value: store.formState.$.incorrect.value, onChange: (_, checked) => {
17
+ store.formState.$.incorrect.onChange(!!checked);
18
+ }, "data-cy": "titan-chatbot-message-feedback-form-incorrect" }), _jsx(Form.Checkbox, { label: "Other", className: Styles.formItem, value: store.formState.$.other.value, onChange: (_, checked) => {
19
+ store.formState.$.other.onChange(!!checked);
20
+ }, "data-cy": "titan-chatbot-message-feedback-form-other" }), store.isTextAreaVisible && (_jsxs("div", { className: "m-l-4", children: [_jsx(Form.TextArea, { className: classNames(Styles.formItem, Styles.textArea), error: store.formState.$.otherComment.error, value: store.formState.$.otherComment.value, onChange: (e) => {
21
+ store.formState.$.otherComment.onChange(e.currentTarget.value);
22
+ }, onBlur: store.formState.$.otherComment.enableAutoValidationAndValidate, "data-cy": "titan-chatbot-message-feedback-form-other-comment" }), _jsx(BodyText, { size: "small", className: "c-neutral-100 m-b-1", children: "Tell us more about what can be improved." })] }))] }));
11
23
  });
12
24
  //# sourceMappingURL=chatbot-message-feedback-form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-message-feedback-form.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatbot-message-feedback-form.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-message-feedback-form.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-session-feedback-modal.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAExC,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAAC;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAwFnE,CAAC"}
1
+ {"version":3,"file":"chatbot-session-feedback-modal.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAe,EAAE,EAAe,MAAM,OAAO,CAAC;AAErD,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAAC;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CA4FnE,CAAC"}
@@ -18,6 +18,8 @@ export const ChatbotSessionFeedbackModal = provide({
18
18
  const handleThumbs = useCallback((isThumbsUp) => {
19
19
  chatbotFeedbackStore.formState.$.thumbs.onChange(isThumbsUp ? 1 : -1);
20
20
  }, [chatbotFeedbackStore]);
21
- return (_jsx(Modal, { onClose: handleClose, open: true, title: "Give Feedback on Titan", size: Modal.Sizes.S, footer: _jsxs(ButtonGroup, { children: [_jsx(Button, { onClick: handleClose, "data-cy": "titan-chatbot-session-feedback-cancel", children: "Cancel" }), _jsx(Button, { onClick: handleSubmit, primary: true, disabled: !chatbotFeedbackStore.isValid, "data-cy": "titan-chatbot-session-feedback-submit", children: "Submit Feedback" })] }), "data-cy": "titan-chatbot-session-feedback-modal", children: _jsxs(Stack, { direction: "column", spacing: "3", children: [_jsxs(Stack, { direction: "column", spacing: "2", children: [_jsx(BodyText, { children: "Was Titan able to help solve your problem?" }), _jsxs(ButtonGroup, { children: [_jsx(Button, { small: true, "aria-label": "Thumbs Up", title: "Thumbs Up", iconName: "thumb_up", fill: "outline", selected: chatbotFeedbackStore.isThumbsUp, onClick: () => handleThumbs(true), "data-cy": "titan-chatbot-session-feedback-thumbs-up" }), _jsx(Button, { small: true, fill: "outline", "aria-label": "Thumbs Down", title: "Thumbs Down", selected: chatbotFeedbackStore.isThumbsDown, iconName: "thumb_down", onClick: () => handleThumbs(false), "data-cy": "titan-chatbot-session-feedback-thumbs-down" })] })] }), _jsx(Form.TextArea, { label: "Tell us more", maxRows: 3, value: chatbotFeedbackStore.formState.$.comment.value, onChange: chatbotFeedbackStore.formState.$.comment.onChangeHandler, "data-cy": "titan-chatbot-session-feedback-comment" })] }) }));
21
+ return (_jsx(Modal, { onClose: handleClose, open: true, title: "Give Feedback on Titan", size: Modal.Sizes.S, footer: _jsxs(ButtonGroup, { children: [_jsx(Button, { onClick: handleClose, "data-cy": "titan-chatbot-session-feedback-cancel", children: "Cancel" }), _jsx(Button, { onClick: handleSubmit, primary: true, disabled: !chatbotFeedbackStore.isValid, "data-cy": "titan-chatbot-session-feedback-submit", children: "Submit Feedback" })] }), "data-cy": "titan-chatbot-session-feedback-modal", children: _jsxs(Stack, { direction: "column", spacing: "3", children: [_jsxs(Stack, { direction: "column", spacing: "2", children: [_jsx(BodyText, { children: "Was Titan able to help solve your problem?" }), _jsxs(ButtonGroup, { children: [_jsx(Button, { small: true, "aria-label": "Thumbs Up", title: "Thumbs Up", iconName: "thumb_up", fill: "outline", selected: chatbotFeedbackStore.isThumbsUp, onClick: () => handleThumbs(true), "data-cy": "titan-chatbot-session-feedback-thumbs-up" }), _jsx(Button, { small: true, fill: "outline", "aria-label": "Thumbs Down", title: "Thumbs Down", selected: chatbotFeedbackStore.isThumbsDown, iconName: "thumb_down", onClick: () => handleThumbs(false), "data-cy": "titan-chatbot-session-feedback-thumbs-down" })] })] }), _jsx(Form.TextArea, { label: "Tell us more", maxRows: 3, value: chatbotFeedbackStore.formState.$.comment.value, onChange: (e) => {
22
+ chatbotFeedbackStore.formState.$.comment.onChange(e.currentTarget.value);
23
+ }, "data-cy": "titan-chatbot-session-feedback-comment" })] }) }));
22
24
  }));
23
25
  //# sourceMappingURL=chatbot-session-feedback-modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-session-feedback-modal.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatbot-session-feedback-modal.js","sourceRoot":"","sources":["../../../../src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-links.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/messages/chatbot-links.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AAG5D,UAAU,cAAc;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,cAAc,CA2D3C,CAAC"}
1
+ {"version":3,"file":"chatbot-links.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/messages/chatbot-links.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AAG5D,UAAU,cAAc;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,cAAc,CA4D3C,CAAC"}
@@ -1,9 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { BodyText, Collapsible, Icon, Link, Stack } from '@servicetitan/design-system';
3
+ import classNames from 'classnames';
3
4
  import { Fragment, useCallback, useState } from 'react';
4
5
  import * as Styles from './chatbot-links.module.less';
5
6
  export const ChatbotLinks = ({ linkProps, links, onToggle, seeLessLabel, seeMoreLabel, }) => {
6
7
  const [linksCollapsed, setLinksCollapsed] = useState(true);
8
+ const className = linkProps === null || linkProps === void 0 ? void 0 : linkProps.className;
9
+ const primary = Boolean(linkProps === null || linkProps === void 0 ? void 0 : linkProps.primary);
7
10
  const handleToggleCollapsible = useCallback(() => {
8
11
  setLinksCollapsed(!linksCollapsed);
9
12
  setTimeout(() => {
@@ -15,7 +18,7 @@ export const ChatbotLinks = ({ linkProps, links, onToggle, seeLessLabel, seeMore
15
18
  }
16
19
  return (_jsxs(Fragment, { children: [_jsx(Link, { className: "m-t-2", onClick: handleToggleCollapsible, "data-cy": "titan-chatbot-links-more", "data-pendo": "titan-chatbot-links-more", children: _jsxs(Stack, { direction: "row", alignItems: "center", children: [_jsx(BodyText, { el: "div", children: linksCollapsed ? seeMoreLabel : seeLessLabel }), _jsx(Icon, { className: "m-l-half", name: linksCollapsed ? 'keyboard_arrow_down' : 'keyboard_arrow_up' })] }) }), _jsx(Collapsible, { animate: true, open: !linksCollapsed, "data-cy": "titan-chatbot-links-collapsible", children: _jsx("ul", { className: Styles.messageLinkList, children: links.map(u => {
17
20
  var _a, _b;
18
- return (_jsx("li", { children: _jsx(BodyText, { el: "span", children: _jsx(Link, { href: u.url, target: "_blank", className: Styles.messageLink, primary: true, "data-cy": "titan-chatbot-links-link", "data-pendo": "titan-chatbot-links-link-secondary", title: (_a = u.title) !== null && _a !== void 0 ? _a : u.url, ...linkProps, children: (_b = u.title) !== null && _b !== void 0 ? _b : u.url }) }) }, u.url));
21
+ return (_jsx("li", { children: _jsx(BodyText, { el: "span", children: _jsx(Link, { href: u.url, target: "_blank", className: classNames(Styles.messageLink, className), primary: primary, title: (_a = u.title) !== null && _a !== void 0 ? _a : u.url, "data-cy": "titan-chatbot-links-link", "data-pendo": "titan-chatbot-links-link-secondary", children: (_b = u.title) !== null && _b !== void 0 ? _b : u.url }) }) }, u.url));
19
22
  }) }) })] }));
20
23
  };
21
24
  //# sourceMappingURL=chatbot-links.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-links.js","sourceRoot":"","sources":["../../../../src/components/chatbot/messages/chatbot-links.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEvF,OAAO,EAAM,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AAatD,MAAM,CAAC,MAAM,YAAY,GAAuB,CAAC,EAC7C,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,GACf,EAAE,EAAE;IACD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE3D,MAAM,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7C,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;QACnC,UAAU,CAAC,GAAG,EAAE;YACZ,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,CAAC;QACjB,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CACH,MAAC,QAAQ,eACL,KAAC,IAAI,IACD,SAAS,EAAC,OAAO,EACjB,OAAO,EAAE,uBAAuB,aACxB,0BAA0B,gBACvB,0BAA0B,YAErC,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,aACtC,KAAC,QAAQ,IAAC,EAAE,EAAC,KAAK,YAAE,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,GAAY,EAC5E,KAAC,IAAI,IACD,SAAS,EAAC,UAAU,EACpB,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,GACpE,IACE,GACL,EACP,KAAC,WAAW,IAAC,OAAO,QAAC,IAAI,EAAE,CAAC,cAAc,aAAU,iCAAiC,YACjF,aAAI,SAAS,EAAE,MAAM,CAAC,eAAe,YAChC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;wBAAC,OAAA,CACZ,uBACI,KAAC,QAAQ,IAAC,EAAE,EAAC,MAAM,YACf,KAAC,IAAI,IACD,IAAI,EAAE,CAAC,CAAC,GAAG,EACX,MAAM,EAAC,QAAQ,EACf,SAAS,EAAE,MAAM,CAAC,WAAW,EAC7B,OAAO,mBACC,0BAA0B,gBACvB,oCAAoC,EAC/C,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,KACnB,SAAS,YAEZ,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,GACd,GACA,IAdN,CAAC,CAAC,GAAG,CAeT,CACR,CAAA;qBAAA,CAAC,GACD,GACK,IACP,CACd,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"chatbot-links.js","sourceRoot":"","sources":["../../../../src/components/chatbot/messages/chatbot-links.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEvF,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAM,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAC;AAatD,MAAM,CAAC,MAAM,YAAY,GAAuB,CAAC,EAC7C,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,GACf,EAAE,EAAE;IACD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,CAAC;IAE5C,MAAM,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7C,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;QACnC,UAAU,CAAC,GAAG,EAAE;YACZ,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,CAAC;QACjB,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CACH,MAAC,QAAQ,eACL,KAAC,IAAI,IACD,SAAS,EAAC,OAAO,EACjB,OAAO,EAAE,uBAAuB,aACxB,0BAA0B,gBACvB,0BAA0B,YAErC,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,aACtC,KAAC,QAAQ,IAAC,EAAE,EAAC,KAAK,YAAE,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,GAAY,EAC5E,KAAC,IAAI,IACD,SAAS,EAAC,UAAU,EACpB,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,GACpE,IACE,GACL,EACP,KAAC,WAAW,IAAC,OAAO,QAAC,IAAI,EAAE,CAAC,cAAc,aAAU,iCAAiC,YACjF,aAAI,SAAS,EAAE,MAAM,CAAC,eAAe,YAChC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;wBAAC,OAAA,CACZ,uBACI,KAAC,QAAQ,IAAC,EAAE,EAAC,MAAM,YACf,KAAC,IAAI,IACD,IAAI,EAAE,CAAC,CAAC,GAAG,EACX,MAAM,EAAC,QAAQ,EACf,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,EACpD,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,aACf,0BAA0B,gBACvB,oCAAoC,YAE9C,MAAA,CAAC,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,GACd,GACA,IAbN,CAAC,CAAC,GAAG,CAcT,CACR,CAAA;qBAAA,CAAC,GACD,GACK,IACP,CACd,CAAC;AACN,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/titan-chatbot-ui",
3
- "version": "3.1.2",
3
+ "version": "3.1.4",
4
4
  "description": "Chatbot experience UI package",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,17 +17,15 @@
17
17
  "push:local": "yalc push"
18
18
  },
19
19
  "dependencies": {
20
- "@servicetitan/titan-chat-ui": "^3.1.2",
21
- "@servicetitan/titan-chat-ui-common": "^3.1.2",
22
- "@servicetitan/titan-chatbot-api": "^3.1.2",
20
+ "@servicetitan/titan-chat-ui": "^3.1.4",
21
+ "@servicetitan/titan-chat-ui-common": "^3.1.4",
22
+ "@servicetitan/titan-chatbot-api": "^3.1.4",
23
23
  "nanoid": "^5.1.5"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "@servicetitan/confirm": ">=27",
27
27
  "@servicetitan/culture": ">=27",
28
28
  "@servicetitan/design-system": "^14",
29
- "@servicetitan/form": ">=27",
30
- "@servicetitan/form-state": ">=27",
31
29
  "@servicetitan/log-service": ">=27",
32
30
  "@servicetitan/react-ioc": ">=24",
33
31
  "@servicetitan/skeleton": ">=8",
@@ -38,11 +36,11 @@
38
36
  "mobx": ">=6",
39
37
  "mobx-react": ">=9",
40
38
  "mobx-utils": ">=6",
41
- "react": "^18",
42
- "react-dom": "^18"
39
+ "react": ">=18",
40
+ "react-dom": ">=18"
43
41
  },
44
42
  "devDependencies": {
45
- "@servicetitan/cypress-shared": "^3.1.2",
43
+ "@servicetitan/cypress-shared": "^3.1.4",
46
44
  "cypress": "^14.3.2"
47
45
  },
48
46
  "keywords": [
@@ -55,5 +53,5 @@
55
53
  "cli": {
56
54
  "webpack": false
57
55
  },
58
- "gitHead": "8fc8beac260595027748b7a4336ab711e1c834d5"
56
+ "gitHead": "35fca60717ca9d384fe20fd319471a9d728db23d"
59
57
  }
@@ -1,31 +1,51 @@
1
- import { Form, Stack } from '@servicetitan/design-system';
2
- import { FormStateErrorBanner } from '@servicetitan/form';
1
+ import { Banner, Form, Stack } from '@servicetitan/design-system';
3
2
  import { useDependencies } from '@servicetitan/react-ioc';
4
3
  import { MessageFeedbackGuardrailStore } from '@servicetitan/titan-chatbot-api';
5
4
  import classNames from 'classnames';
6
5
  import { observer } from 'mobx-react';
7
- import { FC } from 'react';
6
+ import { ChangeEvent, FC } from 'react';
8
7
  import * as Styles from './chatbot-message-feedback-form.module.less';
9
8
 
10
9
  export const ChatbotMessageFeedbackFormGuardrail: FC = observer(() => {
11
10
  const [store] = useDependencies(MessageFeedbackGuardrailStore);
11
+ const errors = store.getFormErrors();
12
+ const status = errors.length === 0 ? 'success' : 'critical';
13
+
12
14
  return (
13
15
  <Stack direction="column" spacing="2">
14
- {store.formState.error && <FormStateErrorBanner form={store.formState} />}
16
+ {store.formState.error && (
17
+ <Banner
18
+ status={status}
19
+ icon
20
+ title="Form Incomplete"
21
+ data-cy="titan-chatbot-message-feedback-form-error"
22
+ >
23
+ <ul>
24
+ {errors.map((e, index) => (
25
+ // eslint-disable-next-line react/no-array-index-key
26
+ <li key={index}>{e}</li>
27
+ ))}
28
+ </ul>
29
+ </Banner>
30
+ )}
15
31
  <Form data-cy="titan-chatbot-message-feedback-form">
16
32
  <Form.Input
17
33
  label="Link to correct article"
18
34
  className={classNames(Styles.formItem)}
19
35
  error={store.formState.$.linkUrl.error}
20
36
  value={store.formState.$.linkUrl.value}
21
- onChange={store.formState.$.linkUrl.onChangeHandler}
37
+ onChange={(e: ChangeEvent<HTMLInputElement>) => {
38
+ store.formState.$.linkUrl.onChange(e.currentTarget.value);
39
+ }}
22
40
  data-cy="titan-chatbot-message-feedback-form-link-url"
23
41
  />
24
42
  <Form.TextArea
25
43
  label="Notes"
26
44
  className={classNames(Styles.formItem, Styles.textArea)}
27
45
  value={store.formState.$.comment.value}
28
- onChange={store.formState.$.comment.onChangeHandler}
46
+ onChange={(e: ChangeEvent<HTMLTextAreaElement>) => {
47
+ store.formState.$.comment.onChange(e.currentTarget.value);
48
+ }}
29
49
  onBlur={store.formState.$.comment.enableAutoValidationAndValidate}
30
50
  data-cy="titan-chatbot-message-feedback-form-other-comment"
31
51
  />
@@ -3,7 +3,7 @@ import { useDependencies } from '@servicetitan/react-ioc';
3
3
  import { MessageFeedbackStore } from '@servicetitan/titan-chatbot-api';
4
4
  import classNames from 'classnames';
5
5
  import { observer } from 'mobx-react';
6
- import { FC } from 'react';
6
+ import { ChangeEvent, FC } from 'react';
7
7
  import * as Styles from './chatbot-message-feedback-form.module.less';
8
8
 
9
9
  export const ChatbotMessageFeedbackForm: FC = observer(() => {
@@ -14,35 +14,45 @@ export const ChatbotMessageFeedbackForm: FC = observer(() => {
14
14
  label="Answer is unrelated to my question"
15
15
  className={Styles.formItem}
16
16
  value={store.formState.$.unrelated.value}
17
- onChange={store.formState.$.unrelated.onChangeHandler}
17
+ onChange={(_, checked) => {
18
+ store.formState.$.unrelated.onChange(!!checked);
19
+ }}
18
20
  data-cy="titan-chatbot-message-feedback-form-unrelated"
19
21
  />
20
22
  <Form.Checkbox
21
23
  label="Answer is unclear, not sure what it means"
22
24
  className={Styles.formItem}
23
25
  value={store.formState.$.unclear.value}
24
- onChange={store.formState.$.unclear.onChangeHandler}
26
+ onChange={(_, checked) => {
27
+ store.formState.$.unclear.onChange(!!checked);
28
+ }}
25
29
  data-cy="titan-chatbot-message-feedback-form-unclear"
26
30
  />
27
31
  <Form.Checkbox
28
32
  label="Answer doesn’t fully address the question"
29
33
  className={Styles.formItem}
30
34
  value={store.formState.$.notFull.value}
31
- onChange={store.formState.$.notFull.onChangeHandler}
35
+ onChange={(_, checked) => {
36
+ store.formState.$.notFull.onChange(!!checked);
37
+ }}
32
38
  data-cy="titan-chatbot-message-feedback-form-not-full"
33
39
  />
34
40
  <Form.Checkbox
35
41
  label="Answer is incorrect or doesn’t work"
36
42
  className={Styles.formItem}
37
43
  value={store.formState.$.incorrect.value}
38
- onChange={store.formState.$.incorrect.onChangeHandler}
44
+ onChange={(_, checked) => {
45
+ store.formState.$.incorrect.onChange(!!checked);
46
+ }}
39
47
  data-cy="titan-chatbot-message-feedback-form-incorrect"
40
48
  />
41
49
  <Form.Checkbox
42
50
  label="Other"
43
51
  className={Styles.formItem}
44
52
  value={store.formState.$.other.value}
45
- onChange={store.formState.$.other.onChangeHandler}
53
+ onChange={(_, checked) => {
54
+ store.formState.$.other.onChange(!!checked);
55
+ }}
46
56
  data-cy="titan-chatbot-message-feedback-form-other"
47
57
  />
48
58
  {store.isTextAreaVisible && (
@@ -51,7 +61,9 @@ export const ChatbotMessageFeedbackForm: FC = observer(() => {
51
61
  className={classNames(Styles.formItem, Styles.textArea)}
52
62
  error={store.formState.$.otherComment.error}
53
63
  value={store.formState.$.otherComment.value}
54
- onChange={store.formState.$.otherComment.onChangeHandler}
64
+ onChange={(e: ChangeEvent<HTMLTextAreaElement>) => {
65
+ store.formState.$.otherComment.onChange(e.currentTarget.value);
66
+ }}
55
67
  onBlur={store.formState.$.otherComment.enableAutoValidationAndValidate}
56
68
  data-cy="titan-chatbot-message-feedback-form-other-comment"
57
69
  />
@@ -2,7 +2,7 @@ import { BodyText, Button, ButtonGroup, Form, Modal, Stack } from '@servicetitan
2
2
  import { provide, useDependencies } from '@servicetitan/react-ioc';
3
3
  import { CHATBOT_UI_STORE_TOKEN, SessionFeedbackStore } from '@servicetitan/titan-chatbot-api';
4
4
  import { observer } from 'mobx-react';
5
- import { FC, useCallback } from 'react';
5
+ import { ChangeEvent, FC, useCallback } from 'react';
6
6
 
7
7
  export const ChatbotSessionFeedbackModal: FC<{ onClose: () => void }> = provide({
8
8
  singletons: [SessionFeedbackStore],
@@ -85,7 +85,11 @@ export const ChatbotSessionFeedbackModal: FC<{ onClose: () => void }> = provide(
85
85
  label="Tell us more"
86
86
  maxRows={3}
87
87
  value={chatbotFeedbackStore.formState.$.comment.value}
88
- onChange={chatbotFeedbackStore.formState.$.comment.onChangeHandler}
88
+ onChange={(e: ChangeEvent<HTMLTextAreaElement>) => {
89
+ chatbotFeedbackStore.formState.$.comment.onChange(
90
+ e.currentTarget.value
91
+ );
92
+ }}
89
93
  data-cy="titan-chatbot-session-feedback-comment"
90
94
  />
91
95
  </Stack>
@@ -1,5 +1,6 @@
1
1
  import { BodyText, Collapsible, Icon, Link, Stack } from '@servicetitan/design-system';
2
2
  import { Models } from '@servicetitan/titan-chatbot-api';
3
+ import classNames from 'classnames';
3
4
  import { FC, Fragment, useCallback, useState } from 'react';
4
5
  import * as Styles from './chatbot-links.module.less';
5
6
 
@@ -22,6 +23,8 @@ export const ChatbotLinks: FC<ChatLinksProps> = ({
22
23
  seeMoreLabel,
23
24
  }) => {
24
25
  const [linksCollapsed, setLinksCollapsed] = useState(true);
26
+ const className = linkProps?.className;
27
+ const primary = Boolean(linkProps?.primary);
25
28
 
26
29
  const handleToggleCollapsible = useCallback(() => {
27
30
  setLinksCollapsed(!linksCollapsed);
@@ -57,12 +60,11 @@ export const ChatbotLinks: FC<ChatLinksProps> = ({
57
60
  <Link
58
61
  href={u.url}
59
62
  target="_blank"
60
- className={Styles.messageLink}
61
- primary
63
+ className={classNames(Styles.messageLink, className)}
64
+ primary={primary}
65
+ title={u.title ?? u.url}
62
66
  data-cy="titan-chatbot-links-link"
63
67
  data-pendo="titan-chatbot-links-link-secondary"
64
- title={u.title ?? u.url}
65
- {...linkProps}
66
68
  >
67
69
  {u.title ?? u.url}
68
70
  </Link>