@seamly/web-ui 19.1.2 → 20.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/CHANGELOG.md +625 -0
  2. package/build/dist/lib/components.js +2 -1
  3. package/build/dist/lib/components.min.js +1 -1
  4. package/build/dist/lib/index.debug.js +183 -128
  5. package/build/dist/lib/index.debug.min.js +1 -1
  6. package/build/dist/lib/index.debug.min.js.LICENSE.txt +45 -25
  7. package/build/dist/lib/index.js +7292 -7752
  8. package/build/dist/lib/index.min.js +1 -1
  9. package/build/dist/lib/index.min.js.LICENSE.txt +0 -5
  10. package/build/dist/lib/standalone.js +5788 -6255
  11. package/build/dist/lib/standalone.min.js +1 -1
  12. package/build/dist/lib/standalone.min.js.LICENSE.txt +0 -5
  13. package/build/dist/lib/style-guide.js +1935 -1965
  14. package/build/dist/lib/style-guide.min.js +1 -1
  15. package/build/dist/lib/styles.css +1 -1
  16. package/package.json +1 -2
  17. package/src/icons/icon_file-32.svg +1 -1
  18. package/src/javascripts/api/errors/seamly-base-error.js +7 -0
  19. package/src/javascripts/api/index.js +48 -37
  20. package/src/javascripts/api/producer.js +5 -1
  21. package/src/javascripts/config.js +1 -5
  22. package/src/javascripts/domains/app/actions.js +22 -5
  23. package/src/javascripts/domains/config/actions.js +3 -0
  24. package/src/javascripts/domains/config/reducer.js +9 -0
  25. package/src/javascripts/domains/errors/index.js +5 -4
  26. package/src/javascripts/domains/forms/hooks.js +3 -1
  27. package/src/javascripts/domains/forms/provider.js +12 -0
  28. package/src/javascripts/domains/forms/reducer.js +2 -0
  29. package/src/javascripts/domains/i18n/hooks.js +2 -1
  30. package/src/javascripts/domains/i18n/reducer.js +2 -0
  31. package/src/javascripts/domains/interrupt/reducer.js +2 -2
  32. package/src/javascripts/domains/options/middleware.js +15 -31
  33. package/src/javascripts/domains/store/index.js +2 -1
  34. package/src/javascripts/domains/store/state-reducer.js +3 -8
  35. package/src/javascripts/domains/translations/components/options-dialog/form.js +1 -1
  36. package/src/javascripts/domains/translations/components/options-dialog/index.js +15 -1
  37. package/src/javascripts/domains/translations/reducer.js +2 -0
  38. package/src/javascripts/domains/visibility/actions.js +1 -1
  39. package/src/javascripts/domains/visibility/hooks.js +10 -8
  40. package/src/javascripts/domains/visibility/utils.js +1 -2
  41. package/src/javascripts/index.js +7 -2
  42. package/src/javascripts/lib/css.js +7 -1
  43. package/src/javascripts/lib/engine/index.js +4 -3
  44. package/src/javascripts/lib/external-api/index.js +38 -29
  45. package/src/javascripts/package/components.js +2 -1
  46. package/src/javascripts/style-guide/components/app.js +1 -1
  47. package/src/javascripts/style-guide/components/static-core.js +9 -3
  48. package/src/javascripts/style-guide/states.js +203 -298
  49. package/src/javascripts/ui/components/chat-app.js +1 -1
  50. package/src/javascripts/ui/components/conversation/component-filter.js +6 -0
  51. package/src/javascripts/ui/components/conversation/event/carousel-component/index.js +8 -1
  52. package/src/javascripts/ui/components/conversation/event/carousel-message/components/slide.js +2 -3
  53. package/src/javascripts/ui/components/conversation/event/conversation-suggestions.js +70 -0
  54. package/src/javascripts/ui/components/conversation/event/participant.js +2 -5
  55. package/src/javascripts/ui/components/conversation/event/splash.js +26 -0
  56. package/src/javascripts/ui/components/conversation/event/text.js +1 -2
  57. package/src/javascripts/ui/components/core/seamly-core.js +12 -9
  58. package/src/javascripts/ui/components/core/seamly-event-subscriber.js +4 -10
  59. package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +1 -8
  60. package/src/javascripts/ui/components/entry/entry-container.js +5 -3
  61. package/src/javascripts/ui/components/entry/text-entry/index.js +7 -1
  62. package/src/javascripts/ui/components/entry/text-entry/text-entry-form.js +5 -1
  63. package/src/javascripts/ui/components/entry/toggle-button.js +4 -2
  64. package/src/javascripts/ui/components/entry/upload/file-upload-form.js +1 -1
  65. package/src/javascripts/ui/components/form-controls/error.js +6 -2
  66. package/src/javascripts/ui/components/form-controls/form.js +26 -3
  67. package/src/javascripts/ui/components/layout/app-frame.js +24 -15
  68. package/src/javascripts/ui/components/layout/chat-frame.js +0 -2
  69. package/src/javascripts/ui/components/layout/modal-wrapper.js +0 -80
  70. package/src/javascripts/ui/components/layout/pre-chat-messages.js +45 -0
  71. package/src/javascripts/ui/components/options/options-frame.js +9 -4
  72. package/src/javascripts/ui/components/options/options.js +1 -4
  73. package/src/javascripts/ui/components/options/transcript/index.js +15 -1
  74. package/src/javascripts/ui/components/options/transcript/transcript-form.js +1 -1
  75. package/src/javascripts/ui/components/suggestions/index.js +174 -0
  76. package/src/javascripts/ui/components/suggestions/suggestions-item.js +40 -0
  77. package/src/javascripts/ui/components/suggestions/suggestions-list.js +24 -0
  78. package/src/javascripts/ui/components/view/app-view.js +21 -0
  79. package/src/javascripts/ui/components/view/deprecated-view.js +30 -0
  80. package/src/javascripts/ui/components/view/index.js +27 -0
  81. package/src/javascripts/ui/components/view/inline-view.js +45 -0
  82. package/src/javascripts/ui/components/view/window-view/collapse-button.js +20 -0
  83. package/src/javascripts/ui/components/view/window-view/index.js +82 -0
  84. package/src/javascripts/ui/components/view/window-view/window-open-button.js +68 -0
  85. package/src/javascripts/ui/components/widgets/lightbox.js +7 -2
  86. package/src/javascripts/ui/hooks/component-helper-hooks.js +0 -9
  87. package/src/javascripts/ui/hooks/seamly-hooks.js +0 -1
  88. package/src/javascripts/ui/hooks/seamly-state-hooks.js +28 -4
  89. package/src/javascripts/ui/hooks/use-seamly-chat.js +12 -3
  90. package/src/javascripts/ui/hooks/use-seamly-commands.js +4 -31
  91. package/src/javascripts/ui/utils/seamly-utils.js +2 -14
  92. package/src/stylesheets/1-settings/_animations.scss +0 -6
  93. package/src/stylesheets/1-settings/_config.scss +34 -35
  94. package/src/stylesheets/2-tools/_functions.scss +0 -5
  95. package/src/stylesheets/2-tools/_mixins.scss +4 -16
  96. package/src/stylesheets/3-app/_app.scss +78 -135
  97. package/src/stylesheets/4-base/_a11y.scss +0 -3
  98. package/src/stylesheets/4-base/_elements.scss +0 -11
  99. package/src/stylesheets/4-base/_formelements.scss +4 -14
  100. package/src/stylesheets/5-components/_avatar.scss +2 -44
  101. package/src/stylesheets/5-components/_buttons.scss +6 -45
  102. package/src/stylesheets/5-components/_chat-status.scss +14 -38
  103. package/src/stylesheets/5-components/_choice-prompt.scss +33 -2
  104. package/src/stylesheets/5-components/_collapse-button.scss +16 -0
  105. package/src/stylesheets/5-components/_conversation.scss +26 -2
  106. package/src/stylesheets/5-components/_disclaimer.scss +10 -12
  107. package/src/stylesheets/5-components/_divider.scss +7 -4
  108. package/src/stylesheets/5-components/_error.scss +1 -1
  109. package/src/stylesheets/5-components/_form.scss +9 -0
  110. package/src/stylesheets/5-components/_icon.scss +10 -1
  111. package/src/stylesheets/5-components/_idle.scss +0 -8
  112. package/src/stylesheets/5-components/_input.scss +14 -20
  113. package/src/stylesheets/5-components/_interrupt.scss +0 -2
  114. package/src/stylesheets/5-components/_loader.scss +0 -32
  115. package/src/stylesheets/5-components/_message-author.scss +40 -0
  116. package/src/stylesheets/5-components/_message-body.scss +194 -0
  117. package/src/stylesheets/5-components/_message-card.scss +55 -0
  118. package/src/stylesheets/5-components/_message-carousel.scss +143 -0
  119. package/src/stylesheets/5-components/_message-count.scss +11 -28
  120. package/src/stylesheets/5-components/_message-cta.scss +23 -0
  121. package/src/stylesheets/5-components/_message-info.scss +11 -0
  122. package/src/stylesheets/5-components/_message-translation-info.scss +17 -0
  123. package/src/stylesheets/5-components/_message.scss +13 -364
  124. package/src/stylesheets/5-components/_modal.scss +28 -58
  125. package/src/stylesheets/5-components/_notification.scss +0 -5
  126. package/src/stylesheets/5-components/_options.scss +27 -42
  127. package/src/stylesheets/5-components/_pre-chat-messages.scss +30 -0
  128. package/src/stylesheets/5-components/_prompt.scss +0 -8
  129. package/src/stylesheets/5-components/_skip-link.scss +3 -3
  130. package/src/stylesheets/5-components/_suggestions.scss +96 -0
  131. package/src/stylesheets/5-components/_unstarted.scss +50 -0
  132. package/src/stylesheets/5-components/_upload.scss +26 -28
  133. package/src/stylesheets/5-components/_window-open-button.scss +39 -0
  134. package/src/stylesheets/6-webui-only/_hover.scss +151 -0
  135. package/src/stylesheets/6-webui-only/_scrollbar.scss +31 -0
  136. package/src/stylesheets/7-deprecated/1-settings/_animations.scss +43 -0
  137. package/src/stylesheets/7-deprecated/1-settings/_config.scss +105 -0
  138. package/src/stylesheets/7-deprecated/2-tools/_functions.scss +22 -0
  139. package/src/stylesheets/7-deprecated/2-tools/_mixins.scss +77 -0
  140. package/src/stylesheets/7-deprecated/3-app/_app.scss +214 -0
  141. package/src/stylesheets/7-deprecated/4-base/_a11y.scss +14 -0
  142. package/src/stylesheets/7-deprecated/4-base/_elements.scss +21 -0
  143. package/src/stylesheets/7-deprecated/4-base/_formelements.scss +57 -0
  144. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_agent-info.scss +0 -0
  145. package/src/stylesheets/7-deprecated/5-components/_avatar.scss +64 -0
  146. package/src/stylesheets/7-deprecated/5-components/_buttons.scss +94 -0
  147. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_card.scss +0 -0
  148. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_carousel.scss +0 -0
  149. package/src/stylesheets/7-deprecated/5-components/_character-limit.scss +36 -0
  150. package/src/stylesheets/{5-components/_cobrowsing.scss → 7-deprecated/5-components/_chat-status.scss} +18 -16
  151. package/src/stylesheets/7-deprecated/5-components/_choice-prompt.scss +27 -0
  152. package/src/stylesheets/7-deprecated/5-components/_collapse-button.scss +17 -0
  153. package/src/stylesheets/7-deprecated/5-components/_conversation.scss +44 -0
  154. package/src/stylesheets/7-deprecated/5-components/_disclaimer.scss +36 -0
  155. package/src/stylesheets/7-deprecated/5-components/_divider.scss +91 -0
  156. package/src/stylesheets/7-deprecated/5-components/_error.scss +24 -0
  157. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_faq.scss +8 -3
  158. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_header-controls.scss +0 -0
  159. package/src/stylesheets/7-deprecated/5-components/_icon.scss +4 -0
  160. package/src/stylesheets/7-deprecated/5-components/_idle.scss +61 -0
  161. package/src/stylesheets/7-deprecated/5-components/_input.scss +78 -0
  162. package/src/stylesheets/7-deprecated/5-components/_interrupt.scss +35 -0
  163. package/src/stylesheets/7-deprecated/5-components/_loader.scss +78 -0
  164. package/src/stylesheets/7-deprecated/5-components/_message-count.scss +41 -0
  165. package/src/stylesheets/7-deprecated/5-components/_message.scss +385 -0
  166. package/src/stylesheets/7-deprecated/5-components/_modal.scss +138 -0
  167. package/src/stylesheets/7-deprecated/5-components/_notification.scss +20 -0
  168. package/src/stylesheets/7-deprecated/5-components/_options.scss +286 -0
  169. package/src/stylesheets/7-deprecated/5-components/_prompt.scss +44 -0
  170. package/src/stylesheets/7-deprecated/5-components/_skip-link.scss +21 -0
  171. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_svg-graphic.scss +0 -0
  172. package/src/stylesheets/7-deprecated/5-components/_upload.scss +213 -0
  173. package/src/stylesheets/deprecated-view.scss +64 -0
  174. package/src/stylesheets/styles-webui-only.scss +3 -0
  175. package/src/stylesheets/styles.scss +15 -25
  176. package/webpack/config.site.js +4 -0
  177. package/webpack/defaults.js +5 -0
  178. package/src/.DS_Store +0 -0
  179. package/src/javascripts/ui/components/conversation/event/hooks/use-text-rendering.js +0 -35
  180. package/src/javascripts/ui/components/faq/faq.js +0 -162
  181. package/src/javascripts/ui/components/layout/view.js +0 -36
  182. package/src/javascripts/ui/components/options/cobrowsing.js +0 -110
  183. package/src/javascripts/ui/components/warnings/cobrowsing-active-frame.js +0 -29
  184. package/src/javascripts/ui/components/warnings/cobrowsing-active.js +0 -33
  185. package/src/stylesheets/5-components/_modal_mode.scss +0 -108
@@ -0,0 +1,78 @@
1
+ // ##### INPUT #####
2
+ // ========================
3
+
4
+ // BASE
5
+ // ----
6
+ .#{$n}-input {
7
+ display: flex;
8
+ flex: 1 1 100%;
9
+ width: 100%;
10
+ height: 100%;
11
+ }
12
+
13
+ // PARTS
14
+ // -----
15
+ .#{$n}-input--text__container {
16
+ display: flex;
17
+ position: relative;
18
+ flex: 1 1 100%;
19
+ height: 100%;
20
+ margin-right: $spacer * 0.25;
21
+ }
22
+
23
+ .#{$n}-input__text {
24
+ appearance: none;
25
+ flex-grow: 4;
26
+ height: 100%;
27
+ margin-right: $spacer * 0.25;
28
+ padding: $spacer * 0.5;
29
+ transition: padding $transition;
30
+ border: $thin-border solid transparent;
31
+ border-radius: $borderradius-small;
32
+ color: $grey-e;
33
+ font-size: $fontsize-small;
34
+ resize: none;
35
+ // iOS will zoom in on focus if font-size below 16px, and not go back.
36
+ // User has to pinch to zoom out; bad UX.
37
+ // Do not change this:
38
+ @supports (-webkit-overflow-scrolling: touch) {
39
+ font-size: 16px;
40
+ }
41
+
42
+ @include stylePlaceholder() {
43
+ overflow: visible;
44
+ color: $grey-c;
45
+ line-height: $spacer;
46
+ }
47
+ }
48
+
49
+ .#{$n}-input--text__container .#{$n}-input__text {
50
+ width: 100%;
51
+ margin-right: 0;
52
+ }
53
+
54
+ .#{$n}-character-warning .#{$n}-input__text,
55
+ .#{$n}-character-exceeded .#{$n}-input__text {
56
+ padding-right: $spacer * 2;
57
+ }
58
+
59
+ .#{$n}-character-exceeded .#{$n}-input__text {
60
+ border: $thin-border solid $negative;
61
+ }
62
+
63
+ .#{$n}-input__submit {
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ padding: 0;
68
+
69
+ &:disabled {
70
+ opacity: 0.5;
71
+ cursor: auto;
72
+ }
73
+
74
+ .#{$n}-icon {
75
+ width: $badge-touch-size;
76
+ height: $badge-touch-size;
77
+ }
78
+ }
@@ -0,0 +1,35 @@
1
+ .#{$n}-interrupt {
2
+ display: flex;
3
+ position: absolute;
4
+ top: 0;
5
+ right: 0;
6
+ bottom: 0;
7
+ left: 0;
8
+ background: $white;
9
+ }
10
+
11
+ .#{$n}-interrupt__body {
12
+ display: flex;
13
+ flex: 1 1 auto;
14
+ flex-direction: column;
15
+ align-items: center;
16
+ justify-content: center;
17
+ margin: $spacer * 0.5;
18
+ padding: $spacer * 2;
19
+ border: $thin-border solid $grey-b;
20
+ border-radius: $borderradius;
21
+ }
22
+
23
+ .#{$n}-interrupt__title {
24
+ font-size: $fontsize-default;
25
+ font-weight: bold;
26
+ }
27
+
28
+ .#{$n}-interrupt__message {
29
+ margin-bottom: $spacer * 2;
30
+ font-size: $fontsize-default;
31
+ }
32
+
33
+ .#{$n}-interrupt__actions {
34
+ margin-top: auto;
35
+ }
@@ -0,0 +1,78 @@
1
+ // ##### LOADER #####
2
+ // ==================
3
+
4
+ // VARS
5
+
6
+ $loader-animation-duration: 0.6s;
7
+ $loader-quarter-duration: $loader-animation-duration * 0.2;
8
+
9
+ // BASE
10
+ // ----
11
+
12
+ .#{$n}-loader {
13
+ display: flex;
14
+ flex-direction: row;
15
+ align-items: center;
16
+ justify-content: flex-start;
17
+ height: $spacer;
18
+ padding: $spacer * 0.125 $spacer * 0.25;
19
+ animation: #{$app-name}-fadeIn $loader-animation-duration * 0.5 linear;
20
+ }
21
+
22
+ // PARTS
23
+ // -----
24
+
25
+ // PART
26
+
27
+ .#{$n}-loader__part {
28
+ display: inline-block;
29
+ width: $spacer * 0.3333;
30
+ height: 100%;
31
+ margin-right: $spacer * 0.25;
32
+ transform: scaleY(0.45);
33
+ animation-name: #{$app-name}-loader;
34
+ animation-duration: $loader-animation-duration;
35
+ animation-timing-function: ease;
36
+ animation-delay: $loader-quarter-duration;
37
+ animation-iteration-count: infinite;
38
+ animation-direction: normal;
39
+ animation-fill-mode: forwards;
40
+ border-radius: 50% 50%;
41
+ background-color: currentColor;
42
+
43
+ &.#{$n}-one {
44
+ animation-delay: $loader-quarter-duration;
45
+ }
46
+
47
+ &.#{$n}-two {
48
+ animation-delay: $loader-quarter-duration * 2;
49
+ }
50
+
51
+ &.#{$n}-three {
52
+ animation-delay: $loader-quarter-duration * 3;
53
+ }
54
+
55
+ &.#{$n}-four {
56
+ margin-right: 0;
57
+ animation-delay: $loader-quarter-duration * 4;
58
+ }
59
+ }
60
+
61
+ // VARIATIONS
62
+ // ----------
63
+
64
+ // WHITE
65
+
66
+ .#{$n}-loader--white {
67
+ .#{$n}-loader__part {
68
+ background-color: $white;
69
+ }
70
+ }
71
+
72
+ // GREY
73
+
74
+ .#{$n}-loader--grey {
75
+ .#{$n}-loader__part {
76
+ background-color: $grey-b;
77
+ }
78
+ }
@@ -0,0 +1,41 @@
1
+ // ##### MESSAGECOUNT #####
2
+ // ==================
3
+
4
+ // VARS
5
+ // ----
6
+
7
+ $messagecount-bgcolor: $negative;
8
+ $messagecount-textcolor: $white;
9
+ $messagecount-size: $spacer;
10
+
11
+ // BASE
12
+ // ----
13
+
14
+ .#{$n}-message-count {
15
+ display: flex;
16
+ position: absolute;
17
+ top: $spacer * -0.4;
18
+ right: $spacer * -0.4;
19
+ align-items: center;
20
+ justify-content: center;
21
+ width: $messagecount-size;
22
+ height: $messagecount-size;
23
+ transform: scale(1);
24
+ transition: transform 0.3s 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
25
+ border-radius: 50% 50%;
26
+ background-color: $messagecount-bgcolor;
27
+ color: $messagecount-textcolor;
28
+ font-size: $fontsize-small;
29
+ font-weight: $fontweight-bold;
30
+ line-height: 1;
31
+ }
32
+
33
+ .#{$n}-message-count.#{$n}-message-count__empty {
34
+ transform: scale(0);
35
+ transition: transform 0.3s 0s linear;
36
+ }
37
+
38
+ .#{$n}-message-count__hide {
39
+ transform: scale(0);
40
+ transition: transform 0.3s 0s linear;
41
+ }
@@ -0,0 +1,385 @@
1
+ $threadlist-agent-text-bgcolor: $grey-a;
2
+ $threadlist-user-text-bgcolor: $brand2;
3
+ $avatar-size: $badge-touch-size;
4
+
5
+ .#{$n}-message {
6
+ display: flex;
7
+ flex-direction: row;
8
+ flex-wrap: wrap;
9
+ width: 80%;
10
+ font-family: $fontfamily-default;
11
+ font-size: $fontsize-small;
12
+ line-height: 1.5;
13
+ }
14
+
15
+ .#{$n}-message + .#{$n}-message,
16
+ .#{$n}-message + div > .#{$n}-message {
17
+ margin-top: $spacer * 0.5;
18
+ }
19
+
20
+ .#{$n}-message__author {
21
+ display: none;
22
+ flex-direction: row;
23
+ align-items: center;
24
+ justify-content: flex-start;
25
+ width: 100%;
26
+ margin-bottom: 0.3rem;
27
+ padding: 0 $spacer * 0.5;
28
+ font-weight: $fontweight-bold;
29
+ }
30
+
31
+ .#{$n}-message__avatar {
32
+ width: $avatar-size * 0.5;
33
+ height: $avatar-size * 0.5;
34
+ margin: 0 0.5em 0 0;
35
+
36
+ .#{$n}-avatar {
37
+ display: block;
38
+ width: 100%;
39
+ height: 100%;
40
+ object-fit: contain;
41
+ }
42
+ }
43
+
44
+ .#{$n}-conversation__item--new-participant .#{$n}-message__author {
45
+ display: flex;
46
+ }
47
+
48
+ .#{$n}-divider--type-time-indicator + .#{$n}-message--source-user,
49
+ .#{$n}-divider--type-time-indicator + .#{$n}-message--source-agent {
50
+ .#{$n}-message__author {
51
+ display: flex;
52
+ }
53
+ }
54
+
55
+ .#{$n}-message__body {
56
+ display: block;
57
+ position: relative;
58
+ max-width: 100%;
59
+ margin-bottom: $spacer * 0.25;
60
+ padding: $spacer * 0.5 $spacer * 0.75;
61
+ border-radius: $borderradius;
62
+ background-color: $threadlist-agent-text-bgcolor;
63
+ color: set-text-color($threadlist-agent-text-bgcolor);
64
+
65
+ .#{$n}-icon svg path {
66
+ fill: set-text-color($threadlist-agent-text-bgcolor);
67
+ }
68
+ }
69
+
70
+ .#{$n}-message__body:last-child {
71
+ margin-bottom: 0;
72
+ }
73
+
74
+ .#{$n}-message__info {
75
+ width: 100%;
76
+ }
77
+
78
+ .#{$n}-message__translation-info {
79
+ width: 100%;
80
+ }
81
+
82
+ .#{$n}-message__translation-label {
83
+ margin-right: $spacer * 0.25;
84
+ font-size: $fontsize-small;
85
+ }
86
+
87
+ .#{$n}-button.#{$n}-message__translation-toggle {
88
+ padding: 0;
89
+ font-size: inherit;
90
+ }
91
+
92
+ .#{$n}-conversation__item--source-info {
93
+ margin-top: $spacer;
94
+ margin-bottom: $spacer;
95
+
96
+ &:last-child {
97
+ margin-bottom: 0;
98
+ }
99
+
100
+ .#{$n}-message {
101
+ width: 90%;
102
+ max-width: 90%;
103
+ margin: 0 auto;
104
+
105
+ &::after {
106
+ content: '';
107
+ display: block;
108
+ width: $spacer;
109
+ height: 0;
110
+ margin: 0 auto;
111
+ border-top: 2px solid $brand3;
112
+ }
113
+ }
114
+
115
+ .#{$n}-message__body {
116
+ flex: 0 0 100%;
117
+ width: 100%;
118
+ padding: 0 $spacer * 0.75 $spacer * 0.5;
119
+ border-radius: 0;
120
+ background-color: initial;
121
+ text-align: center;
122
+ }
123
+ }
124
+
125
+ .#{$n}-message--source-user {
126
+ justify-content: flex-end;
127
+ margin-left: auto;
128
+
129
+ .#{$n}-message__author {
130
+ justify-content: flex-end;
131
+ }
132
+
133
+ .#{$n}-message__body {
134
+ background-color: $threadlist-user-text-bgcolor;
135
+ color: set-text-color($threadlist-user-text-bgcolor);
136
+
137
+ .#{$n}-icon svg path {
138
+ fill: set-text-color($threadlist-user-text-bgcolor);
139
+ }
140
+ }
141
+
142
+ .#{$n}-message__avatar {
143
+ order: 2;
144
+ margin: 0 0 0 0.5em;
145
+ }
146
+
147
+ .#{$n}-message__author-name {
148
+ order: 1;
149
+ }
150
+
151
+ .#{$n}-message__info,
152
+ .#{$n}-message__translation-info {
153
+ text-align: right;
154
+ }
155
+ }
156
+
157
+ // Text
158
+ .#{$n}-message--type-text {
159
+ .#{$n}-message__body {
160
+ p:only-child,
161
+ ul:only-child,
162
+ ol:only-child {
163
+ margin: 0;
164
+ }
165
+
166
+ p:last-child,
167
+ ul:last-child,
168
+ ol:last-child {
169
+ margin-bottom: 0;
170
+ }
171
+
172
+ p,
173
+ ul,
174
+ ol {
175
+ margin: 0 0 1em 0;
176
+ }
177
+
178
+ ul,
179
+ ol {
180
+ padding-left: 1.5em;
181
+ }
182
+
183
+ a {
184
+ color: $interaction;
185
+ word-wrap: break-word; // IE11
186
+ overflow-wrap: break-word;
187
+ word-break: break-word;
188
+ hyphens: auto;
189
+
190
+ &:hover {
191
+ text-decoration: none;
192
+ }
193
+ }
194
+ }
195
+
196
+ &.cvco-message--source-user .#{$n}-message__body {
197
+ a {
198
+ color: $white;
199
+ }
200
+ }
201
+ }
202
+
203
+ // Loading
204
+ .#{$n}-message--type-loading {
205
+ .#{$n}-message__body {
206
+ align-self: flex-start;
207
+ }
208
+ }
209
+
210
+ .#{$n}-message--type-loading.#{$n}-message--source-user {
211
+ .#{$n}-message__body {
212
+ align-self: flex-end;
213
+ }
214
+ }
215
+
216
+ // Choice Prompt
217
+ .#{$n}-message--type-choice-prompt {
218
+ .#{$n}-message__body {
219
+ width: 100%;
220
+ }
221
+ }
222
+
223
+ .#{$n}-message--type-choice-prompt:not(.#{$n}-message--type-choice-prompt-selected) {
224
+ .#{$n}-message__body {
225
+ padding: 0;
226
+ background: none;
227
+ }
228
+ }
229
+
230
+ .#{$n}-message--type-choice-prompt-selected {
231
+ .#{$n}-message__choice-indicator {
232
+ $padding: 4px;
233
+
234
+ content: '';
235
+ position: absolute;
236
+ top: $spacer * 0.5;
237
+ right: 0;
238
+ width: 1.5em;
239
+ height: 1.5em;
240
+ padding: $padding;
241
+ transform: translate(48%, -$padding);
242
+ border-radius: 50%;
243
+ background: $white;
244
+ box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
245
+
246
+ > svg {
247
+ position: absolute;
248
+ top: 50%;
249
+ left: 50%;
250
+ transform: translate(-50%, -50%);
251
+ }
252
+ }
253
+ }
254
+
255
+ // Image
256
+ .#{$n}-message--type-image {
257
+ .#{$n}-message__body {
258
+ padding: 0;
259
+
260
+ img {
261
+ display: block;
262
+ width: 100%;
263
+ height: auto;
264
+ overflow: hidden;
265
+ border-radius: $borderradius;
266
+ }
267
+ }
268
+ }
269
+
270
+ // Video
271
+ .#{$n}-message--type-video {
272
+ .#{$n}-message__body {
273
+ width: 100%;
274
+ padding: 0;
275
+ padding-bottom: 66%; // 6:4
276
+ background-color: $black;
277
+
278
+ iframe {
279
+ position: absolute;
280
+ top: 0;
281
+ left: 0;
282
+ width: 100%;
283
+ height: 100%;
284
+ overflow: hidden;
285
+ border: 0 none;
286
+ border-radius: $borderradius;
287
+ }
288
+ }
289
+ }
290
+
291
+ // Download
292
+ .#{$n}-message--type-upload {
293
+ .#{$n}-download {
294
+ display: flex;
295
+ align-items: center;
296
+ width: 100%;
297
+ }
298
+
299
+ .#{$n}-download a {
300
+ color: inherit;
301
+ text-align: left;
302
+ word-break: break-all;
303
+
304
+ &:hover {
305
+ text-decoration: none;
306
+ }
307
+ }
308
+
309
+ .#{$n}-icon {
310
+ flex: 0 0 16px;
311
+ width: 16px;
312
+ height: 16px;
313
+ margin-right: $spacer * 0.5;
314
+ }
315
+
316
+ .#{$n}-icon svg {
317
+ width: 100%;
318
+ height: 100%;
319
+ }
320
+ }
321
+
322
+ // Deleted
323
+ .#{$n}-message--deleted .#{$n}-file-download {
324
+ text-decoration: line-through;
325
+ }
326
+
327
+ .#{$n}-message .#{$n}-message__info {
328
+ margin-top: $spacer * 0.2;
329
+ color: $grey-d;
330
+ font-size: $fontsize-small;
331
+ line-height: 1.35;
332
+ }
333
+
334
+ // CTA
335
+ .#{$n}-message--type-cta {
336
+ .#{$n}-message__body {
337
+ display: flex;
338
+ flex-direction: column;
339
+ width: 100%;
340
+ padding: $spacer * 0.5 $spacer * 0.75 $spacer * 0.75;
341
+ background-color: $brand2;
342
+ }
343
+
344
+ .#{$n}-cta__content {
345
+ margin-bottom: $spacer * 0.5;
346
+ color: $white;
347
+ font-size: $fontsize-medium;
348
+ line-height: 1.5;
349
+ }
350
+
351
+ .#{$n}-cta__content p {
352
+ color: inherit;
353
+ font-family: inherit;
354
+ font-size: inherit;
355
+ font-weight: inherit;
356
+ }
357
+
358
+ .#{$n}-button {
359
+ margin-bottom: $spacer * 0.5;
360
+ line-height: 2;
361
+ text-decoration: none;
362
+
363
+ &:last-child {
364
+ margin-bottom: 0;
365
+ }
366
+ }
367
+ }
368
+
369
+ // Cards
370
+ .#{$n}-message--type-card {
371
+ .#{$n}-message__body {
372
+ display: flex;
373
+ flex-direction: column;
374
+ width: 100%;
375
+ padding: 0;
376
+ }
377
+ }
378
+
379
+ // Carousel
380
+ .#{$n}-message--type-carousel {
381
+ .#{$n}-message__body {
382
+ display: block;
383
+ padding: 0;
384
+ }
385
+ }