@servicetitan/titan-chat-ui-anvil2 3.0.1 → 3.1.1

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 (112) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/components/chat/__tests-cy__/chat-error.test.d.ts +2 -0
  3. package/dist/components/chat/__tests-cy__/chat-error.test.d.ts.map +1 -0
  4. package/dist/components/chat/__tests-cy__/chat-error.test.js +6 -0
  5. package/dist/components/chat/__tests-cy__/chat-error.test.js.map +1 -0
  6. package/dist/components/chat/__tests-cy__/chat-input-file.test.d.ts +2 -0
  7. package/dist/components/chat/__tests-cy__/chat-input-file.test.d.ts.map +1 -0
  8. package/dist/components/chat/__tests-cy__/chat-input-file.test.js +6 -0
  9. package/dist/components/chat/__tests-cy__/chat-input-file.test.js.map +1 -0
  10. package/dist/components/chat/__tests-cy__/chat-input.test.d.ts +2 -0
  11. package/dist/components/chat/__tests-cy__/chat-input.test.d.ts.map +1 -0
  12. package/dist/components/chat/__tests-cy__/chat-input.test.js +6 -0
  13. package/dist/components/chat/__tests-cy__/chat-input.test.js.map +1 -0
  14. package/dist/components/chat/__tests-cy__/chat-log.test.d.ts +2 -0
  15. package/dist/components/chat/__tests-cy__/chat-log.test.d.ts.map +1 -0
  16. package/dist/components/chat/__tests-cy__/chat-log.test.js +6 -0
  17. package/dist/components/chat/__tests-cy__/chat-log.test.js.map +1 -0
  18. package/dist/components/chat/__tests-cy__/chat-messages.test.js +2 -91
  19. package/dist/components/chat/__tests-cy__/chat-messages.test.js.map +1 -1
  20. package/dist/components/chat/__tests-cy__/chat-notifications.test.d.ts +2 -0
  21. package/dist/components/chat/__tests-cy__/chat-notifications.test.d.ts.map +1 -0
  22. package/dist/components/chat/__tests-cy__/chat-notifications.test.js +6 -0
  23. package/dist/components/chat/__tests-cy__/chat-notifications.test.js.map +1 -0
  24. package/dist/components/chat/__tests-cy__/chat-timer.test.d.ts +2 -0
  25. package/dist/components/chat/__tests-cy__/chat-timer.test.d.ts.map +1 -0
  26. package/dist/components/chat/__tests-cy__/chat-timer.test.js +6 -0
  27. package/dist/components/chat/__tests-cy__/chat-timer.test.js.map +1 -0
  28. package/dist/components/chat/__tests-cy__/chat.test.js +3 -127
  29. package/dist/components/chat/__tests-cy__/chat.test.js.map +1 -1
  30. package/dist/components/chat/chat-connecting.js +1 -1
  31. package/dist/components/chat/chat-connecting.js.map +1 -1
  32. package/dist/components/chat/chat-error.d.ts +3 -1
  33. package/dist/components/chat/chat-error.d.ts.map +1 -1
  34. package/dist/components/chat/chat-error.js +3 -4
  35. package/dist/components/chat/chat-error.js.map +1 -1
  36. package/dist/components/chat/chat-input-file.d.ts.map +1 -1
  37. package/dist/components/chat/chat-input-file.js +19 -15
  38. package/dist/components/chat/chat-input-file.js.map +1 -1
  39. package/dist/components/chat/chat-input.d.ts.map +1 -1
  40. package/dist/components/chat/chat-input.js +5 -6
  41. package/dist/components/chat/chat-input.js.map +1 -1
  42. package/dist/components/chat/chat-input.module.less +4 -0
  43. package/dist/components/chat/chat-message-template-user.d.ts.map +1 -1
  44. package/dist/components/chat/chat-message-template-user.js +2 -2
  45. package/dist/components/chat/chat-message-template-user.js.map +1 -1
  46. package/dist/components/chat/chat-timer.d.ts.map +1 -1
  47. package/dist/components/chat/chat-timer.js +2 -3
  48. package/dist/components/chat/chat-timer.js.map +1 -1
  49. package/dist/components/chat/chat.d.ts.map +1 -1
  50. package/dist/components/chat/chat.js +7 -2
  51. package/dist/components/chat/chat.js.map +1 -1
  52. package/dist/components/chat/chat.module.less +9 -0
  53. package/dist/components/message-content/__tests-cy__/message-content-file.test.d.ts +2 -0
  54. package/dist/components/message-content/__tests-cy__/message-content-file.test.d.ts.map +1 -0
  55. package/dist/components/message-content/__tests-cy__/message-content-file.test.js +6 -0
  56. package/dist/components/message-content/__tests-cy__/message-content-file.test.js.map +1 -0
  57. package/dist/components/messages/__tests-cy__/message-agent.test.js +11 -77
  58. package/dist/components/messages/__tests-cy__/message-agent.test.js.map +1 -1
  59. package/dist/components/messages/__tests-cy__/message-system.test.js +6 -15
  60. package/dist/components/messages/__tests-cy__/message-system.test.js.map +1 -1
  61. package/dist/components/messages/__tests-cy__/message-timeout.test.js +2 -21
  62. package/dist/components/messages/__tests-cy__/message-timeout.test.js.map +1 -1
  63. package/dist/components/messages/__tests-cy__/message-typing.test.js +3 -45
  64. package/dist/components/messages/__tests-cy__/message-typing.test.js.map +1 -1
  65. package/dist/components/messages/__tests-cy__/message-user.test.js +3 -23
  66. package/dist/components/messages/__tests-cy__/message-user.test.js.map +1 -1
  67. package/dist/components/messages/message-timeout.d.ts.map +1 -1
  68. package/dist/components/messages/message-timeout.js +2 -1
  69. package/dist/components/messages/message-timeout.js.map +1 -1
  70. package/dist/components/messages/message-timeout.module.less +3 -0
  71. package/dist/components/messages/message-typing.js +1 -1
  72. package/dist/components/messages/message-typing.js.map +1 -1
  73. package/dist/components/messages/message-typing.module.less +4 -0
  74. package/package.json +4 -4
  75. package/src/components/chat/__tests-cy__/chat-error.test.tsx +6 -0
  76. package/src/components/chat/__tests-cy__/chat-input-file.test.tsx +6 -0
  77. package/src/components/chat/__tests-cy__/chat-input.test.tsx +6 -0
  78. package/src/components/chat/__tests-cy__/chat-log.test.tsx +6 -0
  79. package/src/components/chat/__tests-cy__/chat-messages.test.tsx +2 -107
  80. package/src/components/chat/__tests-cy__/chat-notifications.test.tsx +6 -0
  81. package/src/components/chat/__tests-cy__/chat-timer.test.tsx +6 -0
  82. package/src/components/chat/__tests-cy__/chat.test.tsx +3 -161
  83. package/src/components/chat/chat-connecting.tsx +1 -1
  84. package/src/components/chat/chat-error.tsx +18 -21
  85. package/src/components/chat/chat-input-file.tsx +66 -31
  86. package/src/components/chat/chat-input.module.less +4 -0
  87. package/src/components/chat/chat-input.module.less.d.ts +1 -0
  88. package/src/components/chat/chat-input.tsx +31 -26
  89. package/src/components/chat/chat-message-template-user.tsx +11 -8
  90. package/src/components/chat/chat-timer.tsx +3 -9
  91. package/src/components/chat/chat.module.less +9 -0
  92. package/src/components/chat/chat.module.less.d.ts +4 -0
  93. package/src/components/chat/chat.tsx +33 -20
  94. package/src/components/message-content/__tests-cy__/message-content-file.test.tsx +6 -0
  95. package/src/components/messages/__tests-cy__/message-agent.test.tsx +15 -136
  96. package/src/components/messages/__tests-cy__/message-system.test.tsx +10 -28
  97. package/src/components/messages/__tests-cy__/message-timeout.test.tsx +2 -25
  98. package/src/components/messages/__tests-cy__/message-typing.test.tsx +3 -54
  99. package/src/components/messages/__tests-cy__/message-user.test.tsx +3 -37
  100. package/src/components/messages/message-timeout.module.less +3 -0
  101. package/src/components/messages/message-timeout.module.less.d.ts +3 -0
  102. package/src/components/messages/message-timeout.tsx +3 -2
  103. package/src/components/messages/message-typing.module.less +4 -0
  104. package/src/components/messages/message-typing.module.less.d.ts +1 -0
  105. package/src/components/messages/message-typing.tsx +1 -1
  106. package/tsconfig.tsbuildinfo +1 -1
  107. package/dist/components/chat/chat-error.module.less +0 -6
  108. package/dist/components/chat/chat-timer.module.less +0 -5
  109. package/src/components/chat/chat-error.module.less +0 -6
  110. package/src/components/chat/chat-error.module.less.d.ts +0 -3
  111. package/src/components/chat/chat-timer.module.less +0 -5
  112. package/src/components/chat/chat-timer.module.less.d.ts +0 -3
@@ -1,5 +1,9 @@
1
1
  @import '@servicetitan/tokens/dist/tokens.less';
2
2
 
3
+ .formContainer {
4
+ width: 100%;
5
+ }
6
+
3
7
  .form-textarea {
4
8
  margin-bottom: @spacing-0 !important;
5
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message-template-user.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-template-user.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGH,iBAAiB,EACpB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAe,MAAM,OAAO,CAAC;AAI3D,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAuC5E,CAAC"}
1
+ {"version":3,"file":"chat-message-template-user.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-template-user.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGH,iBAAiB,EACpB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAe,MAAM,OAAO,CAAC;AAI3D,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CA0C5E,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, Text } from '@servicetitan/anvil2';
2
+ import { Button, Flex, Text } from '@servicetitan/anvil2';
3
3
  import IconRefresh from '@servicetitan/anvil2/assets/icons/material/round/refresh.svg';
4
4
  import { useDependencies } from '@servicetitan/react-ioc';
5
5
  import { CHAT_UI_STORE_TOKEN, ChatMessageState, } from '@servicetitan/titan-chat-ui-common';
@@ -11,6 +11,6 @@ export const ChatMessageTemplateUser = observer(({ children, message, omitTimest
11
11
  const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
12
12
  const isError = message.state === ChatMessageState.Failed;
13
13
  const handleRetry = useCallback(() => chatUiStore.sendMessageRetry(message), [chatUiStore, message]);
14
- return (_jsx(MessageUser, { isError: isError, messageFooter: isError ? (_jsxs(Text, { variant: "eyebrow", className: "c-red-600", "data-cy": "titan-chat-message-error", children: ["Message not delivered. Retry", _jsx(Button, { icon: IconRefresh, appearance: "ghost", size: "small", "aria-label": "Retry send message", onClick: handleRetry, "data-cy": "titan-chat-message-error-retry" })] })) : !omitTimestamp ? (_jsx(MessageFooter, { timestamp: message.timestamp })) : null, children: children }));
14
+ return (_jsx(MessageUser, { isError: isError, messageFooter: isError ? (_jsxs(Flex, { direction: "row", alignItems: "center", gap: "1", children: [_jsx(Text, { variant: "eyebrow", className: "c-danger", "data-cy": "titan-chat-message-error", children: "Message not delivered. Retry" }), _jsx(Button, { icon: IconRefresh, appearance: "ghost", size: "small", className: "c-danger", "aria-label": "Retry send message", onClick: handleRetry, "data-cy": "titan-chat-message-error-retry" })] })) : !omitTimestamp ? (_jsx(MessageFooter, { timestamp: message.timestamp })) : null, children: children }));
15
15
  });
16
16
  //# sourceMappingURL=chat-message-template-user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message-template-user.js","sourceRoot":"","sources":["../../../src/components/chat/chat-message-template-user.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,WAAW,MAAM,8DAA8D,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACH,mBAAmB,EACnB,gBAAgB,GAEnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAyB,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,CAAC,MAAM,uBAAuB,GAA6C,QAAQ,CACrF,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;IACrC,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,gBAAgB,CAAC,MAAM,CAAC;IAE1D,MAAM,WAAW,GAAG,WAAW,CAC3B,GAAG,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAC3C,CAAC,WAAW,EAAE,OAAO,CAAC,CACzB,CAAC;IAEF,OAAO,CACH,KAAC,WAAW,IACR,OAAO,EAAE,OAAO,EAChB,aAAa,EACT,OAAO,CAAC,CAAC,CAAC,CACN,MAAC,IAAI,IACD,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,WAAW,aACb,0BAA0B,6CAGlC,KAAC,MAAM,IACH,IAAI,EAAE,WAAW,EACjB,UAAU,EAAC,OAAO,EAClB,IAAI,EAAC,OAAO,gBACD,oBAAoB,EAC/B,OAAO,EAAE,WAAW,aACZ,gCAAgC,GAC1C,IACC,CACV,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACjB,KAAC,aAAa,IAAC,SAAS,EAAE,OAAO,CAAC,SAAS,GAAI,CAClD,CAAC,CAAC,CAAC,IAAI,YAGX,QAAQ,GACC,CACjB,CAAC;AACN,CAAC,CACJ,CAAC"}
1
+ {"version":3,"file":"chat-message-template-user.js","sourceRoot":"","sources":["../../../src/components/chat/chat-message-template-user.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,WAAW,MAAM,8DAA8D,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACH,mBAAmB,EACnB,gBAAgB,GAEnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAyB,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,CAAC,MAAM,uBAAuB,GAA6C,QAAQ,CACrF,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;IACrC,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,gBAAgB,CAAC,MAAM,CAAC;IAE1D,MAAM,WAAW,GAAG,WAAW,CAC3B,GAAG,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAC3C,CAAC,WAAW,EAAE,OAAO,CAAC,CACzB,CAAC;IAEF,OAAO,CACH,KAAC,WAAW,IACR,OAAO,EAAE,OAAO,EAChB,aAAa,EACT,OAAO,CAAC,CAAC,CAAC,CACN,MAAC,IAAI,IAAC,SAAS,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAC7C,KAAC,IAAI,IACD,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,UAAU,aACZ,0BAA0B,6CAG/B,EACP,KAAC,MAAM,IACH,IAAI,EAAE,WAAW,EACjB,UAAU,EAAC,OAAO,EAClB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,UAAU,gBACT,oBAAoB,EAC/B,OAAO,EAAE,WAAW,aACZ,gCAAgC,GAC1C,IACC,CACV,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACjB,KAAC,aAAa,IAAC,SAAS,EAAE,OAAO,CAAC,SAAS,GAAI,CAClD,CAAC,CAAC,CAAC,IAAI,YAGX,QAAQ,GACC,CACjB,CAAC;AACN,CAAC,CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-timer.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-timer.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,SAAS,EAAE,EA0BtB,CAAC"}
1
+ {"version":3,"file":"chat-timer.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-timer.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAExC,eAAO,MAAM,SAAS,EAAE,EAqBtB,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { Announcement, Link, Text } from '@servicetitan/anvil2';
2
+ import { Alert, Link, Text } from '@servicetitan/anvil2';
3
3
  import { useDependencies } from '@servicetitan/react-ioc';
4
4
  import { CHAT_UI_STORE_TOKEN } from '@servicetitan/titan-chat-ui-common';
5
5
  import { observer } from 'mobx-react';
6
6
  import { useCallback } from 'react';
7
- import * as Styles from './chat-timer.module.less';
8
7
  export const ChatTimer = observer(() => {
9
8
  var _a, _b;
10
9
  const [chatUiStore] = useDependencies(CHAT_UI_STORE_TOKEN);
@@ -13,6 +12,6 @@ export const ChatTimer = observer(() => {
13
12
  if (!chatUiStore.timer) {
14
13
  return null;
15
14
  }
16
- return (_jsxs(Announcement, { status: "info", title: "Chat inactive", className: Styles.banner, "data-cy": "titan-chat-timer", children: [_jsxs(Text, { variant: "body", children: ['Are you still there? Please respond within ', _jsxs("b", { children: [secondsLeft, "s"] }), ' or this chat will time out.'] }), _jsx(Link, { onClick: restartTimers, appearance: "secondary", "data-cy": "titan-chat-timer-restart", children: "I'm here" })] }));
15
+ return (_jsxs(Alert, { status: "info", title: "Chat inactive", "data-cy": "titan-chat-timer", children: [_jsxs(Text, { variant: "body", children: ['Are you still there? Please respond within ', _jsxs("b", { children: [secondsLeft, "s"] }), ' or this chat will time out.'] }), _jsx(Link, { onClick: restartTimers, appearance: "secondary", "data-cy": "titan-chat-timer-restart", children: "I'm here" })] }));
17
16
  });
18
17
  //# sourceMappingURL=chat-timer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-timer.js","sourceRoot":"","sources":["../../../src/components/chat/chat-timer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAM,WAAW,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAO,QAAQ,CAAC,GAAG,EAAE;;IACvC,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,0CAAE,WAAW,mCAAI,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CACH,MAAC,YAAY,IACT,MAAM,EAAC,MAAM,EACb,KAAK,EAAC,eAAe,EACrB,SAAS,EAAE,MAAM,CAAC,MAAM,aAChB,kBAAkB,aAE1B,MAAC,IAAI,IAAC,OAAO,EAAC,MAAM,aACf,6CAA6C,EAC9C,wBAAI,WAAW,SAAM,EACpB,8BAA8B,IAC5B,EACP,KAAC,IAAI,IAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAC,WAAW,aAAS,0BAA0B,yBAEhF,IACI,CAClB,CAAC;AACN,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"chat-timer.js","sourceRoot":"","sources":["../../../src/components/chat/chat-timer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAM,WAAW,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,SAAS,GAAO,QAAQ,CAAC,GAAG,EAAE;;IACvC,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,MAAA,MAAA,WAAW,CAAC,KAAK,0CAAE,WAAW,mCAAI,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CACH,MAAC,KAAK,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,eAAe,aAAS,kBAAkB,aACjE,MAAC,IAAI,IAAC,OAAO,EAAC,MAAM,aACf,6CAA6C,EAC9C,wBAAI,WAAW,SAAM,EACpB,8BAA8B,IAC5B,EACP,KAAC,IAAI,IAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAC,WAAW,aAAS,0BAA0B,yBAEhF,IACH,CACX,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7F,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AAOxD,MAAM,WAAW,UAAU;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACvC;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,UAAU,CA2C9B,CAAC"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG7F,OAAO,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AAQ9C,MAAM,WAAW,UAAU;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACvC;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,UAAU,CAsD9B,CAAC"}
@@ -2,13 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Flex } from '@servicetitan/anvil2';
3
3
  import { useDependencies } from '@servicetitan/react-ioc';
4
4
  import { CHAT_UI_STORE_TOKEN } from '@servicetitan/titan-chat-ui-common';
5
+ import classNames from 'classnames';
5
6
  import { observer } from 'mobx-react';
6
- import { Fragment, useEffect, useRef } from 'react';
7
+ import { useEffect, useRef } from 'react';
7
8
  import { ChatConnecting } from './chat-connecting';
8
9
  import { ChatInput } from './chat-input';
9
10
  import { ChatInputFile } from './chat-input-file';
10
11
  import { ChatMessages } from './chat-messages';
11
12
  import { ChatNotifications } from './chat-notifications';
13
+ import * as Styles from './chat.module.less';
12
14
  export const Chat = observer(({ className, customizations }) => {
13
15
  var _a, _b;
14
16
  const scrollRef = useRef(null);
@@ -25,6 +27,9 @@ export const Chat = observer(({ className, customizations }) => {
25
27
  }
26
28
  }, 0);
27
29
  }, [chatUiStore.scrollCounter]);
28
- return (_jsx(Flex, { direction: "column", className: className, "data-cy": "titan-chat", children: chatUiStore.isStarting ? ((loadingComponent !== null && loadingComponent !== void 0 ? loadingComponent : _jsx(ChatConnecting, { className: "p-x-3 p-y-2" }))) : (_jsxs(Fragment, { children: [_jsx("div", { ref: scrollRef, className: "p-x-3 p-y-2 flex-grow-1 of-y-auto", children: _jsx(ChatMessages, { messages: chatUiStore.messages, showTypingIndicator: chatUiStore.isAgentTyping }) }), _jsx(ChatNotifications, {}), !((_b = (_a = chatUiStore.customizations) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.isDisabled) && (_jsxs(Flex, { className: "p-x-3 p-y-2", direction: "column", gap: "4", children: [_jsx(ChatInputFile, { className: "p-2 box-sizing-border-box border-radius-1 border border-style-dashed" }), _jsx(ChatInput, {}), Boolean(footerComponent) && footerComponent] }))] })) }));
30
+ if (chatUiStore.isStarting) {
31
+ return (_jsx(Flex, { direction: "column", className: className, "data-cy": "titan-chat", children: loadingComponent !== null && loadingComponent !== void 0 ? loadingComponent : _jsx(ChatConnecting, { className: "p-inline-6 p-block-4" }) }));
32
+ }
33
+ return (_jsxs(Flex, { direction: "column", className: className, "data-cy": "titan-chat", children: [_jsx(Flex, { direction: "column", ref: scrollRef, grow: "1", className: classNames('p-inline-6 p-block-4', Styles.scrollContainer), children: _jsx(ChatMessages, { messages: chatUiStore.messages, showTypingIndicator: chatUiStore.isAgentTyping }) }), _jsx(ChatNotifications, {}), !((_b = (_a = chatUiStore.customizations) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.isDisabled) && (_jsxs(Flex, { className: "p-inline-6 p-block-4", direction: "column", gap: "4", children: [_jsx(ChatInputFile, { className: classNames('p-4 border-radius-small border-color-subdued', Styles.fileContainer) }), _jsx(ChatInput, {}), Boolean(footerComponent) && footerComponent] }))] }));
29
34
  });
30
35
  //# sourceMappingURL=chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/components/chat/chat.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAsB,MAAM,oCAAoC,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAM,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOzD,MAAM,CAAC,MAAM,IAAI,GAAmB,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE;;IAC3E,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAE3D,MAAM,eAAe,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,CAAC;IACxD,MAAM,gBAAgB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,gBAAgB,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACX,WAAW,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACX,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACpB,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;YACjE,CAAC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhC,OAAO,CACH,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAE,SAAS,aAAU,YAAY,YAC9D,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CACtB,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,KAAC,cAAc,IAAC,SAAS,EAAC,aAAa,GAAG,CAAC,CACnE,CAAC,CAAC,CAAC,CACA,MAAC,QAAQ,eACL,cAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,mCAAmC,YAC9D,KAAC,YAAY,IACT,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,mBAAmB,EAAE,WAAW,CAAC,aAAa,GAChD,GACA,EACN,KAAC,iBAAiB,KAAG,EACpB,CAAC,CAAA,MAAA,MAAA,WAAW,CAAC,cAAc,0CAAE,KAAK,0CAAE,UAAU,CAAA,IAAI,CAC/C,MAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aACpD,KAAC,aAAa,IAAC,SAAS,EAAC,sEAAsE,GAAG,EAClG,KAAC,SAAS,KAAG,EACZ,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,IACzC,CACV,IACM,CACd,GACE,CACV,CAAC;AACN,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/components/chat/chat.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ .scrollContainer {
2
+ overflow-y: auto;
3
+ overflow-x: hidden;
4
+ }
5
+
6
+ .fileContainer {
7
+ border-width: 1px;
8
+ border-style: dashed;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=message-content-file.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-content-file.test.d.ts","sourceRoot":"","sources":["../../../../src/components/message-content/__tests-cy__/message-content-file.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { runMessageContentFileSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
2
+ import { MessageContentFile } from '../message-content-file';
3
+ describe('MessageContentFile', () => {
4
+ runMessageContentFileSharedTests(MessageContentFile, { isAnvil2: true });
5
+ });
6
+ //# sourceMappingURL=message-content-file.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-content-file.test.js","sourceRoot":"","sources":["../../../../src/components/message-content/__tests-cy__/message-content-file.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,gCAAgC,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC"}
@@ -1,83 +1,17 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { AnvilProvider, Button, Flex, Text } from '@servicetitan/anvil2';
1
+ import { Button, Flex, Text } from '@servicetitan/anvil2';
3
2
  import IconThumbDown from '@servicetitan/anvil2/assets/icons/material/round/thumb_down.svg';
4
3
  import IconThumbUp from '@servicetitan/anvil2/assets/icons/material/round/thumb_up.svg';
5
- import { ChatParticipantIcon } from '@servicetitan/titan-chat-ui-common';
6
- import { ChatUiSelectors } from '@servicetitan/titan-chatbot-ui-cypress';
7
- import { mount as cyMount } from 'cypress/react';
4
+ import { runMessageAgentSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
8
5
  import { MessageAgent } from '../message-agent';
9
6
  import { MessageFooter } from '../message-footer';
10
- describe('[MessageAgent]', () => {
11
- beforeEach(() => {
12
- cy.viewport('macbook-13');
13
- cy.clock(new Date('2023-10-10T10:10:00Z').getTime());
14
- });
15
- const mount = (children) => {
16
- return cyMount(_jsx(AnvilProvider, { children: children }));
17
- };
18
- it('should be properly rendered', () => {
19
- mount(_jsx(MessageAgent, { avatar: {
20
- name: 'Test User Name',
21
- icon: ChatParticipantIcon.Bot,
22
- className: 'custom-class',
23
- }, children: _jsx(Text, { "data-cy": "content", children: "message agent content" }) }));
24
- ChatUiSelectors.chatMessageAgent.should('be.visible').children().should('have.length', 2);
25
- ChatUiSelectors.chatAvatarBot.should('be.visible').should('have.class', 'custom-class');
26
- ChatUiSelectors.chatMessageContentAgent.should('contain.text', 'message agent content');
27
- });
28
- it('should be full width', () => {
29
- mount(_jsx(MessageAgent, { fullWidth: true, avatar: {
30
- name: 'Test User Name',
31
- icon: ChatParticipantIcon.Bot,
32
- }, children: _jsx(Text, { children: "message agent content" }) }));
33
- ChatUiSelectors.chatMessageContentAgent.should('contain.text', 'message agent content');
34
- });
35
- it('should render with custom data-cy', () => {
36
- mount(_jsx(MessageAgent, { "data-cy": "custom-data-cy", avatar: {
37
- name: 'Test User Name',
38
- icon: ChatParticipantIcon.Bot,
39
- }, children: _jsx(Text, { children: "message agent content" }) }));
40
- cy.getCy('custom-data-cy').should('be.visible');
41
- });
42
- it('should render custom message footer', () => {
43
- mount(_jsx(MessageAgent, { messageFooter: _jsxs(Flex, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [_jsx(MessageFooter, { name: "name", timestamp: new Date() }), _jsxs(Flex, { direction: "row", gap: "2", children: [_jsx(Button, { icon: IconThumbUp, size: "small", appearance: "ghost" }), _jsx(Button, { icon: IconThumbDown, size: "small", appearance: "ghost" })] })] }), avatar: {
44
- name: 'Test User Name',
45
- icon: ChatParticipantIcon.Bot,
46
- }, children: _jsx(Text, { children: "message agent content" }) }));
47
- ChatUiSelectors.chatMessageAgent.should('be.visible').children().should('have.length', 2);
48
- ChatUiSelectors.chatMessageFooter
49
- .should('be.visible')
50
- .should('contain.text', 'name • 10:10 AM');
51
- });
52
- it('should render subtle message', () => {
53
- mount(_jsx(MessageAgent, { subtle: true, avatar: {
54
- name: 'Test User Name',
55
- icon: ChatParticipantIcon.Bot,
56
- }, children: _jsx(Flex, { className: "border h-100", alignItems: "center", "data-cy": "custom-content", children: _jsx(Text, { children: "message agent content" }) }) }));
57
- ChatUiSelectors.chatAvatarBot.should('be.visible');
58
- cy.getCy('custom-content')
59
- .should('be.visible')
60
- .should('contain.text', 'message agent content');
61
- });
62
- describe('with different icon types', () => {
63
- const render = (icon) => {
64
- return mount(_jsx(MessageAgent, { avatar: {
65
- name: 'Test User Name',
66
- icon,
67
- }, children: _jsx(Text, { children: "message agent content" }) }));
68
- };
69
- it('icon bot', () => {
70
- render(ChatParticipantIcon.Bot);
71
- ChatUiSelectors.chatAvatarBot.should('be.visible');
72
- });
73
- it('icon initials', () => {
74
- render(ChatParticipantIcon.Initials);
75
- ChatUiSelectors.chatAvatarInitials.should('be.visible').should('contain.text', 'T');
76
- });
77
- it('icon empty', () => {
78
- render(ChatParticipantIcon.Empty);
79
- ChatUiSelectors.chatAvatarEmpty.should('exist').should('not.be.visible');
80
- });
81
- });
7
+ describe('MessageAgent', () => {
8
+ runMessageAgentSharedTests(MessageAgent, {
9
+ TextComponent: Text,
10
+ ButtonComponent: Button,
11
+ ContainerComponent: Flex,
12
+ MessageFooterComponent: MessageFooter,
13
+ thumbUpIcon: IconThumbUp,
14
+ thumbDownIcon: IconThumbDown,
15
+ }, { isAnvil2: true });
82
16
  });
83
17
  //# sourceMappingURL=message-agent.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-agent.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-agent.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-agent.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-agent.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,aAAa,MAAM,iEAAiE,CAAC;AAC5F,OAAO,WAAW,MAAM,+DAA+D,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,0BAA0B,CACtB,YAAY,EACZ;QACI,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,MAAM;QACvB,kBAAkB,EAAE,IAAI;QACxB,sBAAsB,EAAE,aAAa;QACrC,WAAW,EAAE,WAAW;QACxB,aAAa,EAAE,aAAa;KAC/B,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1,19 +1,10 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  import { Flex, Text } from '@servicetitan/anvil2';
3
- import { ChatUiSelectors } from '@servicetitan/titan-chatbot-ui-cypress';
4
- import { mount } from 'cypress/react';
2
+ import { runMessageSystemSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
5
3
  import { MessageSystem } from '../message-system';
6
- describe('[MessageSystem]', () => {
7
- beforeEach(() => {
8
- cy.viewport('macbook-13');
9
- });
10
- it('should be properly rendered', () => {
11
- mount(_jsx(MessageSystem, { className: "custom-class", children: _jsx(Flex, { className: "border", children: _jsx(Text, { "data-cy": "content", children: "message system content" }) }) }));
12
- ChatUiSelectors.chatMessageSystem.should('have.class', 'custom-class').should('be.visible');
13
- });
14
- it('should be properly rendered fullwidth', () => {
15
- mount(_jsx(MessageSystem, { className: "custom-class", fullWidth: true, children: _jsx(Flex, { className: "border", children: _jsx(Text, { "data-cy": "content", children: "message system content" }) }) }));
16
- ChatUiSelectors.chatMessageSystem.should('have.class', 'custom-class').should('be.visible');
17
- });
4
+ describe('MessageSystem', () => {
5
+ runMessageSystemSharedTests(MessageSystem, {
6
+ TextComponent: Text,
7
+ ContainerComponent: Flex,
8
+ }, { isAnvil2: true });
18
9
  });
19
10
  //# sourceMappingURL=message-system.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-system.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-system.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,KAAK,CACD,KAAC,aAAa,IAAC,SAAS,EAAC,cAAc,YACnC,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,YACpB,KAAC,IAAI,eAAS,SAAS,uCAA8B,GAClD,GACK,CACnB,CAAC;QACF,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,KAAK,CACD,KAAC,aAAa,IAAC,SAAS,EAAC,cAAc,EAAC,SAAS,kBAC7C,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,YACpB,KAAC,IAAI,eAAS,SAAS,uCAA8B,GAClD,GACK,CACnB,CAAC;QACF,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"message-system.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-system.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,2BAA2B,CACvB,aAAa,EACb;QACI,aAAa,EAAE,IAAI;QACnB,kBAAkB,EAAE,IAAI;KAC3B,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -1,25 +1,6 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { ChatUiSelectors } from '@servicetitan/titan-chatbot-ui-cypress';
3
- import { mount } from 'cypress/react';
1
+ import { runMessageTimeoutSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
4
2
  import { MessageTimeout } from '../message-timeout';
5
3
  describe('MessageTimeout', () => {
6
- it('should render message', () => {
7
- const onResume = cy.spy().as('onResume');
8
- const onReset = cy.spy().as('onReset');
9
- mount(_jsx(MessageTimeout, { onResume: onResume, onReset: onReset }));
10
- ChatUiSelectors.chatMessageTimeout
11
- .should('be.visible')
12
- .should('contain.text', [
13
- 'Your session has timed out.',
14
- 'Would you like to resume it or start a new one?',
15
- 'Continue session or Start new session',
16
- ].join(''));
17
- ChatUiSelectors.chatMessageTimeoutResume.should('be.visible');
18
- ChatUiSelectors.chatMessageTimeoutReset.should('be.visible');
19
- ChatUiSelectors.chatMessageTimeoutResume.click();
20
- cy.get('@onResume').should('have.been.calledOnce');
21
- ChatUiSelectors.chatMessageTimeoutReset.click();
22
- cy.get('@onReset').should('have.been.calledOnce');
23
- });
4
+ runMessageTimeoutSharedTests(MessageTimeout);
24
5
  });
25
6
  //# sourceMappingURL=message-timeout.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-timeout.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-timeout.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACvC,KAAK,CAAC,KAAC,cAAc,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC;QAEhE,eAAe,CAAC,kBAAkB;aAC7B,MAAM,CAAC,YAAY,CAAC;aACpB,MAAM,CACH,cAAc,EACd;YACI,6BAA6B;YAC7B,iDAAiD;YACjD,uCAAuC;SAC1C,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,CAAC;QACN,eAAe,CAAC,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE7D,eAAe,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACjD,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACnD,eAAe,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAChD,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"message-timeout.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-timeout.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,4BAA4B,CAAC,cAAc,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC"}
@@ -1,48 +1,6 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { ChatParticipantIcon } from '@servicetitan/titan-chat-ui-common';
3
- import { ChatUiSelectors } from '@servicetitan/titan-chatbot-ui-cypress';
4
- import { mount } from 'cypress/react';
1
+ import { runMessageTypingSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
5
2
  import { MessageTyping } from '../message-typing';
6
- describe('ChatMessageTyping', () => {
7
- function render(icon) {
8
- mount(_jsx(MessageTyping, { avatar: {
9
- name: 'Test User Name',
10
- icon,
11
- className: 'custom-class',
12
- } }));
13
- ChatUiSelectors.chatMessageTyping.should('be.visible').children().should('have.length', 2);
14
- ChatUiSelectors.chatMessageTypingDots.should('be.visible');
15
- }
16
- it('should render message with bot icon', () => {
17
- render(ChatParticipantIcon.Bot);
18
- ChatUiSelectors.chatAvatarBot
19
- .should('be.visible')
20
- .should('have.class', 'custom-class')
21
- .invoke('css', 'background-image')
22
- .then(bgColor => {
23
- const isSvg = Boolean(bgColor.indexOf('data:image/svg+xml;base64') >= 0);
24
- expect(isSvg).to.eq(true);
25
- });
26
- });
27
- it('should render message with empty icon', () => {
28
- render(ChatParticipantIcon.Empty);
29
- ChatUiSelectors.chatAvatarEmpty.should('exist').should('not.be.visible');
30
- });
31
- it('should render message with initials', () => {
32
- render(ChatParticipantIcon.Initials);
33
- ChatUiSelectors.chatAvatarInitials.should('be.visible').should('contain.text', 'T');
34
- });
35
- it('should not cancel the dots animation', () => {
36
- cy.clock();
37
- render(ChatParticipantIcon.Initials);
38
- // Verify the rendered component + check the dots animation doesn't change over the time
39
- ChatUiSelectors.chatMessageTypingDots.should('be.visible');
40
- cy.tick(10000);
41
- ChatUiSelectors.chatMessageTypingDots.should('be.visible');
42
- cy.tick(20000);
43
- ChatUiSelectors.chatMessageTypingDots.should('be.visible');
44
- cy.tick(30000);
45
- ChatUiSelectors.chatMessageTypingDots.should('be.visible');
46
- });
3
+ describe('MessageTyping', () => {
4
+ runMessageTypingSharedTests(MessageTyping);
47
5
  });
48
6
  //# sourceMappingURL=message-typing.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-typing.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-typing.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,SAAS,MAAM,CAAC,IAAyB;QACrC,KAAK,CACD,KAAC,aAAa,IACV,MAAM,EAAE;gBACJ,IAAI,EAAE,gBAAgB;gBACtB,IAAI;gBACJ,SAAS,EAAE,cAAc;aAC5B,GACH,CACL,CAAC;QACF,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC3F,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC;IAED,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,eAAe,CAAC,aAAa;aACxB,MAAM,CAAC,YAAY,CAAC;aACpB,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;aACpC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC;aACjC,IAAI,CAAC,OAAO,CAAC,EAAE;YACZ,MAAM,KAAK,GAAG,OAAO,CAChB,OAAyB,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CACvE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAClC,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACrC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACrC,wFAAwF;QACxF,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"message-typing.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-typing.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,2BAA2B,CAAC,aAAa,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
@@ -1,27 +1,7 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  import { Text } from '@servicetitan/anvil2';
3
- import { ChatUiSelectors } from '@servicetitan/titan-chatbot-ui-cypress';
4
- import { mount } from 'cypress/react';
2
+ import { runMessageUserSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
5
3
  import { MessageUser } from '../message-user';
6
- describe('[MessageUser]', () => {
7
- beforeEach(() => {
8
- cy.viewport('macbook-13');
9
- });
10
- it('should be properly rendered', () => {
11
- mount(_jsx(MessageUser, { children: _jsx(Text, { "data-cy": "content", children: "message user content" }) }));
12
- ChatUiSelectors.chatMessageUser.should('be.visible');
13
- ChatUiSelectors.chatMessageContent
14
- .should('be.visible')
15
- .should('contain.text', 'message user content');
16
- });
17
- it('should be properly rendered with long text', () => {
18
- const longText = 'message user content '.repeat(100).trim();
19
- mount(_jsx(MessageUser, { children: _jsx(Text, { "data-cy": "content", children: longText }) }));
20
- ChatUiSelectors.chatMessageContent.should('be.visible').should('contain.text', longText);
21
- });
22
- it('should be rendered with footer', () => {
23
- mount(_jsx(MessageUser, { messageFooter: _jsx(Text, { children: "message user footer" }), children: _jsx(Text, { "data-cy": "content", children: "message user content" }) }));
24
- ChatUiSelectors.chatMessageFooter.should('be.visible');
25
- });
4
+ describe('MessageUser', () => {
5
+ runMessageUserSharedTests(MessageUser, Text);
26
6
  });
27
7
  //# sourceMappingURL=message-user.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-user.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-user.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,UAAU,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,KAAK,CACD,KAAC,WAAW,cACR,KAAC,IAAI,eAAS,SAAS,qCAA4B,GACzC,CACjB,CAAC;QACF,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,eAAe,CAAC,kBAAkB;aAC7B,MAAM,CAAC,YAAY,CAAC;aACpB,MAAM,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,KAAK,CACD,KAAC,WAAW,cACR,KAAC,IAAI,eAAS,SAAS,YAAE,QAAQ,GAAQ,GAC/B,CACjB,CAAC;QACF,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,KAAK,CACD,KAAC,WAAW,IAAC,aAAa,EAAE,KAAC,IAAI,sCAA2B,YACxD,KAAC,IAAI,eAAS,SAAS,qCAA4B,GACzC,CACjB,CAAC;QACF,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"message-user.test.js","sourceRoot":"","sources":["../../../../src/components/messages/__tests-cy__/message-user.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,yBAAyB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-timeout.d.ts","sourceRoot":"","sources":["../../../src/components/messages/message-timeout.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAGxC,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,oBAAoB,CAqCnD,CAAC"}
1
+ {"version":3,"file":"message-timeout.d.ts","sourceRoot":"","sources":["../../../src/components/messages/message-timeout.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAIxC,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,oBAAoB,CAqCnD,CAAC"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Divider, Flex, Link, Text } from '@servicetitan/anvil2';
3
3
  import { useCallback } from 'react';
4
4
  import { MessageSystem } from './message-system';
5
+ import * as Styles from './message-timeout.module.less';
5
6
  export const MessageTimeout = ({ onReset, onResume }) => {
6
7
  const handleResume = useCallback(() => {
7
8
  onResume();
@@ -9,6 +10,6 @@ export const MessageTimeout = ({ onReset, onResume }) => {
9
10
  const handleReset = useCallback(() => {
10
11
  onReset();
11
12
  }, [onReset]);
12
- return (_jsx(MessageSystem, { "data-cy": "titan-chat-message-timeout", fullWidth: true, children: _jsxs(Flex, { direction: "column", gap: "4", children: [_jsx(Divider, {}), _jsxs(Text, { className: "ta-center", children: ["Your session has timed out.", _jsx("br", {}), "Would you like to resume it or start a new one?", _jsx("br", {}), _jsx(Link, { onClick: handleResume, appearance: "primary", "data-cy": "titan-chat-message-timeout-resume", children: "Continue session" }), ' ', "or", ' ', _jsx(Link, { onClick: handleReset, appearance: "primary", "data-cy": "titan-chat-message-timeout-reset", children: "Start new session" })] })] }) }));
13
+ return (_jsx(MessageSystem, { "data-cy": "titan-chat-message-timeout", fullWidth: true, children: _jsxs(Flex, { direction: "column", alignItems: "center", gap: "4", children: [_jsx(Divider, {}), _jsxs(Text, { variant: "body", className: Styles.timeoutMessage, children: ["Your session has timed out.", _jsx("br", {}), "Would you like to resume it or start a new one?", _jsx("br", {}), _jsx(Link, { onClick: handleResume, appearance: "primary", "data-cy": "titan-chat-message-timeout-resume", children: "Continue session" }), ' ', "or", ' ', _jsx(Link, { onClick: handleReset, appearance: "primary", "data-cy": "titan-chat-message-timeout-reset", children: "Start new session" })] })] }) }));
13
14
  };
14
15
  //# sourceMappingURL=message-timeout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-timeout.js","sourceRoot":"","sources":["../../../src/components/messages/message-timeout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAM,WAAW,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,MAAM,CAAC,MAAM,cAAc,GAA6B,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9E,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,OAAO,EAAE,CAAC;IACd,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACH,KAAC,aAAa,eAAS,4BAA4B,EAAC,SAAS,kBACzD,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAC5B,KAAC,OAAO,KAAG,EACX,MAAC,IAAI,IAAC,SAAS,EAAC,WAAW,4CAEvB,cAAM,qDAEN,cAAM,EACN,KAAC,IAAI,IACD,OAAO,EAAE,YAAY,EACrB,UAAU,EAAC,SAAS,aACZ,mCAAmC,iCAGxC,EAAC,GAAG,QACR,GAAG,EACN,KAAC,IAAI,IACD,OAAO,EAAE,WAAW,EACpB,UAAU,EAAC,SAAS,aACZ,kCAAkC,kCAGvC,IACJ,IACJ,GACK,CACnB,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"message-timeout.js","sourceRoot":"","sources":["../../../src/components/messages/message-timeout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAM,WAAW,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAOxD,MAAM,CAAC,MAAM,cAAc,GAA6B,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9E,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,OAAO,EAAE,CAAC;IACd,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACH,KAAC,aAAa,eAAS,4BAA4B,EAAC,SAAS,kBACzD,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAChD,KAAC,OAAO,KAAG,EACX,MAAC,IAAI,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,4CAEjD,cAAM,qDAEN,cAAM,EACN,KAAC,IAAI,IACD,OAAO,EAAE,YAAY,EACrB,UAAU,EAAC,SAAS,aACZ,mCAAmC,iCAGxC,EAAC,GAAG,QACR,GAAG,EACN,KAAC,IAAI,IACD,OAAO,EAAE,WAAW,EACpB,UAAU,EAAC,SAAS,aACZ,kCAAkC,kCAGvC,IACJ,IACJ,GACK,CACnB,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ .timeoutMessage {
2
+ text-align: center;
3
+ }
@@ -2,5 +2,5 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Flex } from '@servicetitan/anvil2';
3
3
  import { MessageAgent } from './message-agent';
4
4
  import * as Styles from './message-typing.module.less';
5
- export const MessageTyping = ({ avatar }) => (_jsx(MessageAgent, { avatar: avatar, "data-cy": "titan-chat-message-typing", subtle: true, children: _jsx(Flex, { className: "h-100", alignItems: "center", children: _jsxs("div", { className: Styles.dotsContainer, "data-cy": "titan-chat-message-typing-dots", children: [_jsx("span", { className: Styles.dot }), _jsx("span", { className: Styles.dot }), _jsx("span", { className: Styles.dot })] }) }) }));
5
+ export const MessageTyping = ({ avatar }) => (_jsx(MessageAgent, { avatar: avatar, "data-cy": "titan-chat-message-typing", subtle: true, children: _jsx(Flex, { className: Styles.container, alignItems: "center", children: _jsxs("div", { className: Styles.dotsContainer, "data-cy": "titan-chat-message-typing-dots", children: [_jsx("span", { className: Styles.dot }), _jsx("span", { className: Styles.dot }), _jsx("span", { className: Styles.dot })] }) }) }));
6
6
  //# sourceMappingURL=message-typing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-typing.js","sourceRoot":"","sources":["../../../src/components/messages/message-typing.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAC;AAMvD,MAAM,CAAC,MAAM,aAAa,GAA4B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAClE,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,aAAU,2BAA2B,EAAC,MAAM,kBACpE,KAAC,IAAI,IAAC,SAAS,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,YACvC,eAAK,SAAS,EAAE,MAAM,CAAC,aAAa,aAAU,gCAAgC,aAC1E,eAAM,SAAS,EAAE,MAAM,CAAC,GAAG,GAAI,EAC/B,eAAM,SAAS,EAAE,MAAM,CAAC,GAAG,GAAI,EAC/B,eAAM,SAAS,EAAE,MAAM,CAAC,GAAG,GAAI,IAC7B,GACH,GACI,CAClB,CAAC"}
1
+ {"version":3,"file":"message-typing.js","sourceRoot":"","sources":["../../../src/components/messages/message-typing.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAC;AAMvD,MAAM,CAAC,MAAM,aAAa,GAA4B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAClE,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,aAAU,2BAA2B,EAAC,MAAM,kBACpE,KAAC,IAAI,IAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAC,QAAQ,YAClD,eAAK,SAAS,EAAE,MAAM,CAAC,aAAa,aAAU,gCAAgC,aAC1E,eAAM,SAAS,EAAE,MAAM,CAAC,GAAG,GAAI,EAC/B,eAAM,SAAS,EAAE,MAAM,CAAC,GAAG,GAAI,EAC/B,eAAM,SAAS,EAAE,MAAM,CAAC,GAAG,GAAI,IAC7B,GACH,GACI,CAClB,CAAC"}
@@ -1,5 +1,9 @@
1
1
  @import '@servicetitan/tokens/dist/tokens.less';
2
2
 
3
+ .container {
4
+ height: 100%;
5
+ }
6
+
3
7
  .dotsContainer {
4
8
  @keyframes dot-jumping {
5
9
  0% {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/titan-chat-ui-anvil2",
3
- "version": "3.0.1",
3
+ "version": "3.1.1",
4
4
  "description": "Chat experience UI package (Anvil2 version)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "push:local": "yalc push"
18
18
  },
19
19
  "dependencies": {
20
- "@servicetitan/titan-chat-ui-common": "^3.0.1",
20
+ "@servicetitan/titan-chat-ui-common": "^3.1.1",
21
21
  "lodash": "4.17.21",
22
22
  "nanoid": "^5.1.5"
23
23
  },
@@ -36,7 +36,7 @@
36
36
  "react-dom": "^18"
37
37
  },
38
38
  "devDependencies": {
39
- "@servicetitan/titan-chatbot-ui-cypress": "^3.0.1",
39
+ "@servicetitan/titan-chatbot-ui-cypress": "^3.1.1",
40
40
  "cypress": "^14.3.2"
41
41
  },
42
42
  "keywords": [
@@ -49,5 +49,5 @@
49
49
  "cli": {
50
50
  "webpack": false
51
51
  },
52
- "gitHead": "4aea1ee0fe4bce5c3f6c09db1d49067eb75ac83a"
52
+ "gitHead": "83c89de5b42d24ce5d7fcd034810bf596a673a08"
53
53
  }
@@ -0,0 +1,6 @@
1
+ import { runChatErrorSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
2
+ import { ChatError } from '../chat-error';
3
+
4
+ describe('ChatError', () => {
5
+ runChatErrorSharedTests(ChatError);
6
+ });
@@ -0,0 +1,6 @@
1
+ import { runChatInputFileSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
2
+ import { ChatInputFile } from '../chat-input-file';
3
+
4
+ describe('ChatInputFile', () => {
5
+ runChatInputFileSharedTests(ChatInputFile, { isAnvil2: true });
6
+ });
@@ -0,0 +1,6 @@
1
+ import { runChatInputSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
2
+ import { ChatInput } from '../chat-input';
3
+
4
+ describe('ChatInput', () => {
5
+ runChatInputSharedTests(ChatInput);
6
+ });
@@ -0,0 +1,6 @@
1
+ import { runChatLogSharedTests } from '@servicetitan/titan-chatbot-ui-cypress';
2
+ import { ChatLog } from '../chat-log';
3
+
4
+ describe('[ChatLog]', () => {
5
+ runChatLogSharedTests(ChatLog);
6
+ });