@seamly/web-ui 19.1.1 → 20.0.0-beta.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 (186) 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 +7290 -7753
  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 +5785 -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 +10834 -4971
  14. package/build/dist/lib/style-guide.min.js +2 -1
  15. package/build/dist/lib/style-guide.min.js.LICENSE.txt +9 -0
  16. package/build/dist/lib/styles.css +1 -1
  17. package/package.json +1 -2
  18. package/src/icons/icon_file-32.svg +1 -1
  19. package/src/javascripts/api/errors/seamly-base-error.js +7 -0
  20. package/src/javascripts/api/index.js +48 -37
  21. package/src/javascripts/api/producer.js +5 -1
  22. package/src/javascripts/config.js +1 -5
  23. package/src/javascripts/domains/app/actions.js +22 -5
  24. package/src/javascripts/domains/config/actions.js +3 -0
  25. package/src/javascripts/domains/config/reducer.js +9 -0
  26. package/src/javascripts/domains/errors/index.js +5 -4
  27. package/src/javascripts/domains/forms/hooks.js +3 -1
  28. package/src/javascripts/domains/forms/provider.js +12 -0
  29. package/src/javascripts/domains/forms/reducer.js +2 -0
  30. package/src/javascripts/domains/i18n/hooks.js +2 -1
  31. package/src/javascripts/domains/i18n/reducer.js +2 -0
  32. package/src/javascripts/domains/interrupt/reducer.js +2 -2
  33. package/src/javascripts/domains/options/middleware.js +15 -31
  34. package/src/javascripts/domains/store/index.js +2 -1
  35. package/src/javascripts/domains/store/state-reducer.js +3 -8
  36. package/src/javascripts/domains/translations/components/options-dialog/form.js +1 -1
  37. package/src/javascripts/domains/translations/components/options-dialog/index.js +15 -1
  38. package/src/javascripts/domains/translations/reducer.js +2 -0
  39. package/src/javascripts/domains/visibility/actions.js +1 -1
  40. package/src/javascripts/domains/visibility/hooks.js +10 -8
  41. package/src/javascripts/domains/visibility/utils.js +1 -2
  42. package/src/javascripts/index.js +5 -3
  43. package/src/javascripts/lib/css.js +7 -1
  44. package/src/javascripts/lib/engine/index.js +4 -3
  45. package/src/javascripts/lib/external-api/index.js +38 -29
  46. package/src/javascripts/package/components.js +2 -1
  47. package/src/javascripts/style-guide/components/app.js +1 -1
  48. package/src/javascripts/style-guide/components/static-core.js +18 -4
  49. package/src/javascripts/style-guide/states.js +203 -298
  50. package/src/javascripts/ui/components/chat-app.js +1 -1
  51. package/src/javascripts/ui/components/conversation/component-filter.js +6 -0
  52. package/src/javascripts/ui/components/conversation/event/carousel-component/index.js +8 -1
  53. package/src/javascripts/ui/components/conversation/event/carousel-message/components/slide.js +2 -3
  54. package/src/javascripts/ui/components/conversation/event/conversation-suggestions.js +70 -0
  55. package/src/javascripts/ui/components/conversation/event/participant.js +2 -5
  56. package/src/javascripts/ui/components/conversation/event/splash.js +26 -0
  57. package/src/javascripts/ui/components/conversation/event/text.js +1 -2
  58. package/src/javascripts/ui/components/core/seamly-core.js +12 -9
  59. package/src/javascripts/ui/components/core/seamly-event-subscriber.js +4 -10
  60. package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +1 -8
  61. package/src/javascripts/ui/components/entry/entry-container.js +5 -3
  62. package/src/javascripts/ui/components/entry/text-entry/index.js +7 -1
  63. package/src/javascripts/ui/components/entry/text-entry/text-entry-form.js +5 -1
  64. package/src/javascripts/ui/components/entry/toggle-button.js +4 -2
  65. package/src/javascripts/ui/components/entry/upload/file-upload-form.js +1 -1
  66. package/src/javascripts/ui/components/form-controls/error.js +6 -2
  67. package/src/javascripts/ui/components/form-controls/form.js +26 -3
  68. package/src/javascripts/ui/components/layout/app-frame.js +24 -15
  69. package/src/javascripts/ui/components/layout/chat-frame.js +0 -2
  70. package/src/javascripts/ui/components/layout/modal-wrapper.js +0 -80
  71. package/src/javascripts/ui/components/layout/pre-chat-messages.js +45 -0
  72. package/src/javascripts/ui/components/options/options-frame.js +9 -4
  73. package/src/javascripts/ui/components/options/options.js +1 -4
  74. package/src/javascripts/ui/components/options/transcript/index.js +15 -1
  75. package/src/javascripts/ui/components/options/transcript/transcript-form.js +1 -1
  76. package/src/javascripts/ui/components/suggestions/index.js +174 -0
  77. package/src/javascripts/ui/components/suggestions/suggestions-item.js +40 -0
  78. package/src/javascripts/ui/components/suggestions/suggestions-list.js +24 -0
  79. package/src/javascripts/ui/components/view/app-view.js +21 -0
  80. package/src/javascripts/ui/components/view/deprecated-view.js +30 -0
  81. package/src/javascripts/ui/components/view/index.js +27 -0
  82. package/src/javascripts/ui/components/view/inline-view.js +45 -0
  83. package/src/javascripts/ui/components/view/window-view/collapse-button.js +20 -0
  84. package/src/javascripts/ui/components/view/window-view/index.js +82 -0
  85. package/src/javascripts/ui/components/view/window-view/window-open-button.js +68 -0
  86. package/src/javascripts/ui/components/widgets/lightbox.js +7 -2
  87. package/src/javascripts/ui/hooks/component-helper-hooks.js +0 -9
  88. package/src/javascripts/ui/hooks/seamly-hooks.js +0 -1
  89. package/src/javascripts/ui/hooks/seamly-state-hooks.js +28 -4
  90. package/src/javascripts/ui/hooks/use-seamly-chat.js +12 -3
  91. package/src/javascripts/ui/hooks/use-seamly-commands.js +4 -31
  92. package/src/javascripts/ui/utils/seamly-utils.js +2 -14
  93. package/src/stylesheets/1-settings/_animations.scss +0 -6
  94. package/src/stylesheets/1-settings/_config.scss +34 -35
  95. package/src/stylesheets/2-tools/_functions.scss +0 -5
  96. package/src/stylesheets/2-tools/_mixins.scss +4 -16
  97. package/src/stylesheets/3-app/_app.scss +78 -135
  98. package/src/stylesheets/4-base/_a11y.scss +0 -3
  99. package/src/stylesheets/4-base/_elements.scss +0 -11
  100. package/src/stylesheets/4-base/_formelements.scss +4 -14
  101. package/src/stylesheets/5-components/_avatar.scss +2 -44
  102. package/src/stylesheets/5-components/_buttons.scss +6 -45
  103. package/src/stylesheets/5-components/_chat-status.scss +14 -38
  104. package/src/stylesheets/5-components/_choice-prompt.scss +33 -2
  105. package/src/stylesheets/5-components/_collapse-button.scss +16 -0
  106. package/src/stylesheets/5-components/_conversation.scss +26 -2
  107. package/src/stylesheets/5-components/_disclaimer.scss +10 -12
  108. package/src/stylesheets/5-components/_divider.scss +7 -4
  109. package/src/stylesheets/5-components/_error.scss +1 -1
  110. package/src/stylesheets/5-components/_form.scss +9 -0
  111. package/src/stylesheets/5-components/_icon.scss +10 -1
  112. package/src/stylesheets/5-components/_idle.scss +0 -8
  113. package/src/stylesheets/5-components/_input.scss +14 -20
  114. package/src/stylesheets/5-components/_interrupt.scss +0 -2
  115. package/src/stylesheets/5-components/_loader.scss +0 -32
  116. package/src/stylesheets/5-components/_message-author.scss +40 -0
  117. package/src/stylesheets/5-components/_message-body.scss +194 -0
  118. package/src/stylesheets/5-components/_message-card.scss +55 -0
  119. package/src/stylesheets/5-components/_message-carousel.scss +143 -0
  120. package/src/stylesheets/5-components/_message-count.scss +11 -28
  121. package/src/stylesheets/5-components/_message-cta.scss +23 -0
  122. package/src/stylesheets/5-components/_message-info.scss +11 -0
  123. package/src/stylesheets/5-components/_message-translation-info.scss +17 -0
  124. package/src/stylesheets/5-components/_message.scss +13 -364
  125. package/src/stylesheets/5-components/_modal.scss +28 -58
  126. package/src/stylesheets/5-components/_notification.scss +0 -5
  127. package/src/stylesheets/5-components/_options.scss +27 -42
  128. package/src/stylesheets/5-components/_pre-chat-messages.scss +30 -0
  129. package/src/stylesheets/5-components/_prompt.scss +0 -8
  130. package/src/stylesheets/5-components/_skip-link.scss +3 -3
  131. package/src/stylesheets/5-components/_suggestions.scss +96 -0
  132. package/src/stylesheets/5-components/_unstarted.scss +50 -0
  133. package/src/stylesheets/5-components/_upload.scss +26 -28
  134. package/src/stylesheets/5-components/_window-open-button.scss +39 -0
  135. package/src/stylesheets/6-webui-only/_hover.scss +151 -0
  136. package/src/stylesheets/6-webui-only/_scrollbar.scss +31 -0
  137. package/src/stylesheets/7-deprecated/1-settings/_animations.scss +43 -0
  138. package/src/stylesheets/7-deprecated/1-settings/_config.scss +105 -0
  139. package/src/stylesheets/7-deprecated/2-tools/_functions.scss +22 -0
  140. package/src/stylesheets/7-deprecated/2-tools/_mixins.scss +77 -0
  141. package/src/stylesheets/7-deprecated/3-app/_app.scss +214 -0
  142. package/src/stylesheets/7-deprecated/4-base/_a11y.scss +14 -0
  143. package/src/stylesheets/7-deprecated/4-base/_elements.scss +21 -0
  144. package/src/stylesheets/7-deprecated/4-base/_formelements.scss +57 -0
  145. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_agent-info.scss +0 -0
  146. package/src/stylesheets/7-deprecated/5-components/_avatar.scss +64 -0
  147. package/src/stylesheets/7-deprecated/5-components/_buttons.scss +94 -0
  148. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_card.scss +0 -0
  149. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_carousel.scss +0 -0
  150. package/src/stylesheets/7-deprecated/5-components/_character-limit.scss +36 -0
  151. package/src/stylesheets/{5-components/_cobrowsing.scss → 7-deprecated/5-components/_chat-status.scss} +18 -16
  152. package/src/stylesheets/7-deprecated/5-components/_choice-prompt.scss +27 -0
  153. package/src/stylesheets/7-deprecated/5-components/_collapse-button.scss +17 -0
  154. package/src/stylesheets/7-deprecated/5-components/_conversation.scss +44 -0
  155. package/src/stylesheets/7-deprecated/5-components/_disclaimer.scss +36 -0
  156. package/src/stylesheets/7-deprecated/5-components/_divider.scss +91 -0
  157. package/src/stylesheets/7-deprecated/5-components/_error.scss +24 -0
  158. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_faq.scss +8 -3
  159. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_header-controls.scss +0 -0
  160. package/src/stylesheets/7-deprecated/5-components/_icon.scss +4 -0
  161. package/src/stylesheets/7-deprecated/5-components/_idle.scss +61 -0
  162. package/src/stylesheets/7-deprecated/5-components/_input.scss +78 -0
  163. package/src/stylesheets/7-deprecated/5-components/_interrupt.scss +35 -0
  164. package/src/stylesheets/7-deprecated/5-components/_loader.scss +78 -0
  165. package/src/stylesheets/7-deprecated/5-components/_message-count.scss +41 -0
  166. package/src/stylesheets/7-deprecated/5-components/_message.scss +385 -0
  167. package/src/stylesheets/7-deprecated/5-components/_modal.scss +138 -0
  168. package/src/stylesheets/7-deprecated/5-components/_notification.scss +20 -0
  169. package/src/stylesheets/7-deprecated/5-components/_options.scss +286 -0
  170. package/src/stylesheets/7-deprecated/5-components/_prompt.scss +44 -0
  171. package/src/stylesheets/7-deprecated/5-components/_skip-link.scss +21 -0
  172. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_svg-graphic.scss +0 -0
  173. package/src/stylesheets/7-deprecated/5-components/_upload.scss +213 -0
  174. package/src/stylesheets/deprecated-view.scss +64 -0
  175. package/src/stylesheets/styles-webui-only.scss +3 -0
  176. package/src/stylesheets/styles.scss +15 -25
  177. package/webpack/config.site.js +4 -0
  178. package/webpack/defaults.js +5 -0
  179. package/src/.DS_Store +0 -0
  180. package/src/javascripts/ui/components/conversation/event/hooks/use-text-rendering.js +0 -35
  181. package/src/javascripts/ui/components/faq/faq.js +0 -162
  182. package/src/javascripts/ui/components/layout/view.js +0 -36
  183. package/src/javascripts/ui/components/options/cobrowsing.js +0 -110
  184. package/src/javascripts/ui/components/warnings/cobrowsing-active-frame.js +0 -29
  185. package/src/javascripts/ui/components/warnings/cobrowsing-active.js +0 -33
  186. package/src/stylesheets/5-components/_modal_mode.scss +0 -108
@@ -0,0 +1,57 @@
1
+ // ##### FORM ELEMENTS #####
2
+ // =========================
3
+
4
+ // PARTS
5
+ // ----
6
+ .#{$n}-input__checkbox {
7
+ margin-right: $spacer * 0.5;
8
+
9
+ &:disabled {
10
+ opacity: 0.5;
11
+ }
12
+ }
13
+
14
+ .#{$n}-label {
15
+ display: block;
16
+ margin-bottom: $spacer * 0.25;
17
+ color: $brand3;
18
+ font-size: $fontsize-medium;
19
+ font-weight: $fontweight-bold;
20
+ }
21
+
22
+ .#{$n}-input__checkbox:disabled + .#{$n}-label {
23
+ opacity: 0.5;
24
+ }
25
+
26
+ .#{$n}-input__select {
27
+ appearance: none;
28
+ width: 100%;
29
+ height: 100%;
30
+ padding: $spacer * 0.5;
31
+ transition: padding $transition;
32
+ border: $thin-border solid $grey-b;
33
+ border-radius: $borderradius-small;
34
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxkZWZzLz48cGF0aCBmaWxsPSIjNEE0OEMxIiBkPSJNMi45OTgsNi41MDNjMC0wLjI0NywwLjA5MS0wLjQ5NCwwLjI3My0wLjY4N2MwLjM4LTAuNDAxLDEuMDEzLTAuNDE5LDEuNDE0LTAuMDRsMi41ODUsMi40NDYJYzAuMzk0LDAuMzczLDEuMDYsMC4zNzMsMS40NTQsMGwyLjU4Ni0yLjQ0NmMwLjQtMC4zNzksMS4wMzMtMC4zNjIsMS40MTMsMC4wNGMwLjM3OSwwLjQsMC4zNjIsMS4wMzQtMC4wMzksMS40MTRsLTIuNTg2LDIuNDQ2CWMtMS4xNTksMS4wOTYtMy4wNDMsMS4wOTYtNC4yMDMsMEwzLjMxLDcuMjI5QzMuMTAyLDcuMDMzLDIuOTk4LDYuNzY4LDIuOTk4LDYuNTAzeiIvPjwvc3ZnPg==');
35
+ background-repeat: no-repeat;
36
+ background-position: right $spacer * 0.5 top 50%;
37
+ background-size: $spacer * 0.75 auto;
38
+ color: $grey-e;
39
+ font-size: $fontsize-small;
40
+ resize: none;
41
+ // iOS will zoom in on focus if font-size below 16px, and not go back.
42
+ // User has to pinch to zoom out; very nasty UX. So:
43
+ @supports (-webkit-overflow-scrolling: touch) {
44
+ font-size: 16px; // this should stay fixed!
45
+ }
46
+
47
+ &:hover {
48
+ border: $thin-border solid $brand3;
49
+ }
50
+
51
+ &:disabled,
52
+ &:disabled:hover {
53
+ border: $thin-border solid $grey-c;
54
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNnB4IiBoZWlnaHQ9IjE2cHgiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxkZWZzLz48cGF0aCBmaWxsPSIjYTNiNGJmIiBkPSJNMi45OTgsNi41MDNjMC0wLjI0NywwLjA5MS0wLjQ5NCwwLjI3My0wLjY4N2MwLjM4LTAuNDAxLDEuMDEzLTAuNDE5LDEuNDE0LTAuMDRsMi41ODUsMi40NDYJYzAuMzk0LDAuMzczLDEuMDYsMC4zNzMsMS40NTQsMGwyLjU4Ni0yLjQ0NmMwLjQtMC4zNzksMS4wMzMtMC4zNjIsMS40MTMsMC4wNGMwLjM3OSwwLjQsMC4zNjIsMS4wMzQtMC4wMzksMS40MTRsLTIuNTg2LDIuNDQ2CWMtMS4xNTksMS4wOTYtMy4wNDMsMS4wOTYtNC4yMDMsMEwzLjMxLDcuMjI5QzMuMTAyLDcuMDMzLDIuOTk4LDYuNzY4LDIuOTk4LDYuNTAzeiIvPjwvc3ZnPg==');
55
+ color: $grey-c;
56
+ }
57
+ }
@@ -0,0 +1,64 @@
1
+ // ##### AVATAR #####
2
+ // ==================
3
+
4
+ // VARS
5
+ // ----
6
+
7
+ $avatar-bgcolor: $brand1;
8
+ $avatar-size: $badge-touch-size;
9
+
10
+ // BASE
11
+ // ----
12
+
13
+ .#{$n}-avatar {
14
+ display: block;
15
+ position: relative;
16
+ flex-shrink: 0;
17
+ width: $avatar-size;
18
+ height: $avatar-size;
19
+ overflow: hidden;
20
+ border-radius: $borderradius-small;
21
+
22
+ > .#{$n}-icon {
23
+ display: block;
24
+ }
25
+ }
26
+
27
+ .#{$n}-avatar__graphic {
28
+ display: block;
29
+ }
30
+
31
+ .#{$n}-conversation__message + .#{$n}-avatar {
32
+ align-self: flex-end;
33
+ margin-left: $spacer * 0.5;
34
+ }
35
+
36
+ // OPTIONS
37
+ // -------
38
+
39
+ // BG WHITE
40
+
41
+ .#{$n}-avatar--bg-white {
42
+ background-color: $white;
43
+ }
44
+
45
+ // ARROW RIGHT
46
+
47
+ .#{$n}-avatar--arrow-right {
48
+ margin-right: $spacer * 0.25;
49
+ overflow: visible;
50
+
51
+ &::after {
52
+ content: '';
53
+ display: inline-block;
54
+ position: absolute;
55
+ top: 50%;
56
+ right: -($spacer * 0.3333);
57
+ width: 0;
58
+ height: 0;
59
+ transform: translateY(-50%);
60
+ border-top: $spacer * 0.25 solid transparent;
61
+ border-bottom: $spacer * 0.25 solid transparent;
62
+ border-left: ($spacer * 0.2) * 2 solid $avatar-bgcolor;
63
+ }
64
+ }
@@ -0,0 +1,94 @@
1
+ $buttons-line-height: 30px;
2
+ $buttons-border-radius: $buttons-line-height * 0.5;
3
+ $button-transition: $transition;
4
+
5
+ .#{$n}-button {
6
+ display: inline-block;
7
+ margin: 0;
8
+ padding: 0;
9
+ border: 0;
10
+ background: none;
11
+ text-align: left;
12
+ cursor: pointer;
13
+ }
14
+
15
+ .#{$n}-button span {
16
+ color: inherit;
17
+ font-family: inherit;
18
+ font-size: inherit;
19
+ font-weight: inherit;
20
+ }
21
+
22
+ // VARIATIONS
23
+ // ----------
24
+
25
+ .#{$n}-button--primary {
26
+ min-height: $buttons-line-height;
27
+ padding: $spacer * 0.25 $spacer * 0.75;
28
+ border-radius: $buttons-border-radius;
29
+ border-color: set-border-color($brand3);
30
+ background-color: $interaction;
31
+ color: set-text-color($interaction);
32
+ font-weight: $fontweight-bold;
33
+ }
34
+
35
+ .#{$n}-button--secondary {
36
+ padding: $spacer * 0.5;
37
+ color: $interaction;
38
+ font-weight: $fontweight-bold;
39
+ }
40
+
41
+ .#{$n}-button--tertiary {
42
+ padding: $spacer * 0.1 $spacer * 0.25;
43
+ border-radius: $borderradius;
44
+ background-color: initial;
45
+ color: set-text-color($interaction);
46
+ font-size: $fontsize-small;
47
+ font-weight: $fontweight-bold;
48
+ }
49
+
50
+ .#{$n}-button--disabled {
51
+ color: $disabled;
52
+ cursor: auto;
53
+ }
54
+
55
+ .#{$n}-button--choose-again {
56
+ display: flex;
57
+ align-items: center;
58
+ margin: $spacer * 0.25 0 $spacer * 0.5;
59
+ padding: 0;
60
+
61
+ &:last-child {
62
+ margin-bottom: 0;
63
+ }
64
+ }
65
+
66
+ .#{$n}-button--choose-again .#{$n}-icon {
67
+ display: flex;
68
+ flex: 0 0 $badge-touch-size * 0.25;
69
+ align-items: center;
70
+ justify-content: center;
71
+ width: $badge-touch-size * 0.25;
72
+ height: $badge-touch-size * 0.25;
73
+ margin: $spacer * 0.15 $spacer * 0.25;
74
+ transform-origin: 50% 50%;
75
+ transition: transform $button-transition;
76
+ }
77
+
78
+ .#{$n}-button--choose-again[aria-expanded='true'] .#{$n}-icon {
79
+ transform: rotate(180deg);
80
+ }
81
+
82
+ .#{$n}-button--choose-again .#{$n}-icon svg {
83
+ display: block;
84
+ width: 100%;
85
+ }
86
+
87
+ .#{$n}-button__state {
88
+ display: inline-block;
89
+ margin: $spacer * -0.15 $spacer * -0.15 $spacer * -0.15 $spacer * 0.15;
90
+ padding: $spacer * 0.15 $spacer * 0.25;
91
+ border-radius: $borderradius-small;
92
+ background-color: $grey-a;
93
+ color: inherit;
94
+ }
@@ -0,0 +1,36 @@
1
+ .#{$n}-character-count {
2
+ display: flex;
3
+ position: absolute;
4
+ top: 0;
5
+ right: 0;
6
+ align-items: center;
7
+ justify-content: right;
8
+ height: 100%;
9
+ padding: 0 $spacer * 0.5;
10
+ transform: translateX(100%);
11
+ transition: transform $transition, opacity 0.2s 0.2s ease;
12
+ opacity: 0;
13
+ font-size: $fontsize-small;
14
+ font-weight: $fontweight-bold;
15
+ line-height: 1;
16
+ text-align: right;
17
+ pointer-events: none;
18
+
19
+ span {
20
+ color: inherit;
21
+ font-family: inherit;
22
+ font-size: inherit;
23
+ font-weight: inherit;
24
+ text-align: right;
25
+ }
26
+ }
27
+
28
+ .#{$n}-character-warning .#{$n}-character-count,
29
+ .#{$n}-character-exceeded .#{$n}-character-count {
30
+ transform: translateX(0%);
31
+ opacity: 1;
32
+ }
33
+
34
+ .#{$n}-character-exceeded .#{$n}-character-count span {
35
+ color: $negative;
36
+ }
@@ -1,38 +1,41 @@
1
- // ##### OPTIONS #####
1
+ // ##### CHAT STATUS #####
2
2
  // ===================
3
3
 
4
4
  // BASE
5
5
  // ----
6
- .#{$n}-cobrowsing {
6
+ .#{$n}-chat-status {
7
7
  display: flex;
8
8
  align-items: center;
9
9
  justify-content: space-between;
10
- padding: $spacer * 0.25 $spacer * 0.5;
11
- background-color: $brand3;
10
+ padding: $spacer * 0.5;
11
+ border-bottom: $thin-border solid $grey-b;
12
+ background-color: $white;
12
13
  }
13
14
 
14
- &.#{$n}-app--collapsed .#{$n}-cobrowsing {
15
+ &.#{$n}-app--collapsed .#{$n}-chat-status {
15
16
  display: none;
16
17
  }
17
18
 
18
19
  // PARTS
19
20
  // -----
20
- .#{$n}-cobrowsing__title {
21
+ .#{$n}-chat-status__title {
21
22
  display: flex;
22
23
  align-items: center;
23
24
  margin: 0 $spacer * 0.5 0 0;
24
- color: $white;
25
- font-size: $fontsize-medium;
25
+ color: $grey-e;
26
+ font-size: $fontsize-small;
26
27
  font-weight: $fontweight-bold;
27
28
  line-height: 1;
29
+ }
28
30
 
31
+ .#{$n}-chat-status--cobrowsing .#{$n}-chat-status__title {
29
32
  &::before {
30
33
  content: '';
31
34
  display: block;
32
- flex: 0 0 $spacer * 0.25;
33
- width: $spacer * 0.25;
34
- height: $spacer * 0.25;
35
- margin-right: $spacer * 0.5;
35
+ flex: 0 0 $spacer * 0.5;
36
+ width: $spacer * 0.5;
37
+ height: $spacer * 0.5;
38
+ margin-right: $spacer * 0.25;
36
39
  animation-name: #{$app-name}-blink;
37
40
  animation-duration: 1s;
38
41
  animation-timing-function: ease-in-out;
@@ -40,11 +43,10 @@
40
43
  animation-direction: normal;
41
44
  animation-fill-mode: forwards;
42
45
  border-radius: 50% 50%;
43
- background-color: $white;
46
+ background-color: $interaction;
44
47
  }
45
48
  }
46
49
 
47
- .#{$n}-cobrowsing .#{$n}-button--tertiary {
48
- border-color: $white;
49
- color: $white;
50
+ .#{$n}-chat-status .#{$n}-button--tertiary {
51
+ color: $interaction;
50
52
  }
@@ -0,0 +1,27 @@
1
+ .#{$n}-choice-prompt {
2
+ display: flex;
3
+ flex-direction: column;
4
+ padding: 0;
5
+ }
6
+
7
+ .#{$n}-choice-prompt__item {
8
+ display: block;
9
+ width: 100%;
10
+ margin-top: $spacer * 0.25;
11
+ margin-left: 0;
12
+
13
+ &:first-child {
14
+ margin-top: 0;
15
+ }
16
+ }
17
+
18
+ .#{$n}-choice-prompt__item .#{$n}-button {
19
+ display: block;
20
+ width: 100%;
21
+ white-space: normal;
22
+ }
23
+
24
+ .#{$n}-choice-prompt__item--secondary .#{$n}-button {
25
+ background-color: initial;
26
+ color: $interaction;
27
+ }
@@ -0,0 +1,17 @@
1
+ // ##### COLLAPSE BUTTON #####
2
+ // ===========================
3
+
4
+ .#{$n}-collapse-button {
5
+ display: block;
6
+ position: absolute;
7
+ z-index: 1;
8
+ top: $spacer;
9
+ right: $spacer;
10
+ width: $badge-touch-size;
11
+ height: $badge-touch-size;
12
+ padding: 0;
13
+ border: 0 none;
14
+ border-radius: 50% 50%;
15
+ background-color: $white;
16
+ box-shadow: $boxshadow;
17
+ }
@@ -0,0 +1,44 @@
1
+ .#{$n}-conversation__container {
2
+ display: flex;
3
+ position: absolute;
4
+ top: 0;
5
+ right: 0;
6
+ bottom: 0;
7
+ left: 0;
8
+ flex: 1 1 100%;
9
+ flex-direction: column;
10
+ justify-content: space-between;
11
+ height: 100%;
12
+ max-height: 100%;
13
+ }
14
+
15
+ .#{$n}-conversation {
16
+ @include unList;
17
+
18
+ width: 100%;
19
+ margin: auto 0 0;
20
+ padding: $spacer $spacer 0;
21
+
22
+ // FF and IE11 give wrong spacing at bottom otherwise
23
+ &::after {
24
+ content: '';
25
+ display: block;
26
+ flex: 0 0 100%;
27
+ width: 100%;
28
+ height: $spacer;
29
+ }
30
+ }
31
+
32
+ .#{$n}-app--layout-inline .#{$n}-conversation {
33
+ position: relative;
34
+ }
35
+
36
+ .#{$n}-conversation__item {
37
+ width: 100%;
38
+ min-height: 0;
39
+ margin-top: $spacer * 0.5;
40
+ }
41
+
42
+ .#{$n}-conversation__item--new-participant {
43
+ margin-top: $spacer;
44
+ }
@@ -0,0 +1,36 @@
1
+ // ##### DISCLAIMER #####
2
+ // ==================
3
+
4
+ // VARS
5
+ // ----
6
+
7
+ $small-shadow-light: 0 $spacer * 0.2 $spacer * 0.3333 0 rgba(0, 0, 0, 0.1);
8
+
9
+ // BASE
10
+ // ----
11
+
12
+ .#{$n}-disclaimer {
13
+ display: block;
14
+ flex: 0 0 auto;
15
+ width: 100%;
16
+ height: auto;
17
+ padding: $spacer * 0.5 $spacer;
18
+ background-color: $grey-a;
19
+ }
20
+
21
+ &.#{$n}-app--collapsed .#{$n}-disclaimer {
22
+ display: none;
23
+ }
24
+
25
+ .#{$n}-disclaimer__title {
26
+ margin: 0 0 $spacer * 0.25;
27
+ padding-right: $spacer;
28
+ font-size: $fontsize-small;
29
+ font-weight: $fontweight-bold;
30
+ line-height: 1;
31
+ }
32
+
33
+ .#{$n}-disclaimer__message {
34
+ font-size: $fontsize-small;
35
+ line-height: 1.25;
36
+ }
@@ -0,0 +1,91 @@
1
+ .#{$n}-divider {
2
+ display: flex;
3
+ position: relative;
4
+ justify-content: center;
5
+ margin: $spacer $spacer * -1 0;
6
+ padding: $spacer * 3.25 $spacer * 1.5 0;
7
+ overflow: hidden;
8
+ background: linear-gradient(180deg, $white 0%, $grey-a 100%);
9
+ background-repeat: no-repeat;
10
+ background-size: 100% 2 * $spacer;
11
+ font-family: $fontfamily-default;
12
+ font-size: $fontsize-small;
13
+ line-height: 1.5;
14
+
15
+ &::before {
16
+ content: '';
17
+ position: absolute;
18
+ top: 0;
19
+ left: 50%;
20
+ width: 100%;
21
+ height: 2 * $spacer;
22
+ transform: translateX(-50%);
23
+ background: radial-gradient(
24
+ 110px at 50% 300%,
25
+ rgba($brand3, 0.5) 0%,
26
+ rgba($white, 0) 99.99%,
27
+ rgba($brand3, 0) 100%
28
+ );
29
+ background-repeat: no-repeat;
30
+ }
31
+ }
32
+
33
+ .#{$n}-divider--type-time-indicator {
34
+ padding-top: $spacer * 3;
35
+ padding-bottom: $spacer;
36
+
37
+ &::before {
38
+ display: none;
39
+ }
40
+ }
41
+
42
+ .#{$n}-conversation__item:first-child .#{$n}-divider {
43
+ margin-top: 0;
44
+ padding-bottom: $spacer * 0.5;
45
+ }
46
+
47
+ .#{$n}-divider__graphic {
48
+ position: absolute;
49
+ top: 2 * $spacer;
50
+ left: 50%;
51
+ width: $badge-touch-size;
52
+ height: $badge-touch-size;
53
+ transform: translate(-50%, -60%);
54
+ border-radius: $borderradius-small;
55
+ background: $white;
56
+ }
57
+
58
+ .#{$n}-divider__graphic .#{$n}-avatar,
59
+ .#{$n}-divider__graphic .#{$n}-icon,
60
+ .#{$n}-divider__graphic .#{$n}-icon svg {
61
+ width: 100%;
62
+ height: 100%;
63
+ }
64
+
65
+ .#{$n}-divider__time {
66
+ text-align: center;
67
+ }
68
+
69
+ .#{$n}-divider__time span {
70
+ display: block;
71
+
72
+ &:first-of-type {
73
+ font-weight: bold;
74
+ }
75
+ }
76
+
77
+ .#{$n}-divider--type-newtranslation {
78
+ text-align: center;
79
+
80
+ .#{$n}-divider__body {
81
+ max-width: 80%;
82
+ }
83
+ .#{$n}-divider__title {
84
+ font-weight: bold;
85
+ }
86
+ }
87
+
88
+ .#{$n}-divider .#{$n}-button {
89
+ padding: 0;
90
+ font-size: inherit;
91
+ }
@@ -0,0 +1,24 @@
1
+ // ##### ERROR #####
2
+ // =================
3
+
4
+ // BASE
5
+ // ----
6
+ .#{$n}-error {
7
+ display: flex;
8
+ align-items: flex-start;
9
+ width: 100%;
10
+ margin: 0 0 $spacer * 0.5;
11
+ padding: $spacer * 0.25 $spacer * 0.5;
12
+ border-radius: $borderradius-small;
13
+ background-color: rgba($negative, 0.1);
14
+ color: $negative-dark;
15
+ font-size: $fontsize-small;
16
+ font-weight: $fontweight-bold;
17
+
18
+ .#{$n}-icon {
19
+ flex: 0 0 16px;
20
+ width: 16px;
21
+ height: 16px;
22
+ margin-right: $spacer * 0.25;
23
+ }
24
+ }
@@ -9,6 +9,8 @@
9
9
 
10
10
  &.#{$n}-app--layout-window .#{$n}-faqs {
11
11
  overscroll-behavior: contain;
12
+ /* stylelint-disable-next-line property-no-vendor-prefix */
13
+ -ms-scroll-chaining: none;
12
14
  }
13
15
 
14
16
  &.#{$n}-app--layout-inline .#{$n}-faqs {
@@ -18,9 +20,9 @@
18
20
  left: 50%;
19
21
  flex-direction: column;
20
22
  width: 50%;
21
- height: 100%;
22
- min-height: 100%;
23
- overflow: hidden;
23
+ height: $app-inline-height;
24
+ min-height: $spacer * 24;
25
+ max-height: 100%;
24
26
  transform: translateX(-100%);
25
27
  border: $thin-border solid set-border-color($app-bg);
26
28
  border-left: 0;
@@ -57,6 +59,9 @@
57
59
 
58
60
  &.#{$n}-app--layout-inline .#{$n}-faqs.#{$n}-transition--in {
59
61
  @include media('>phablet-l') {
62
+ height: $app-inline-height;
63
+ min-height: $spacer * 24;
64
+ max-height: 100%;
60
65
  overflow-y: initial;
61
66
  transform: translateX(0%);
62
67
  }
@@ -0,0 +1,4 @@
1
+ .#{$n}-icon {
2
+ display: inline-block;
3
+ line-height: 1;
4
+ }
@@ -0,0 +1,61 @@
1
+ // ##### IDLE #####
2
+ // ========================
3
+
4
+ // BASE
5
+ // ----
6
+ .#{$n}-idle {
7
+ display: flex;
8
+ flex-direction: column;
9
+ align-items: center;
10
+ justify-content: space-between;
11
+ max-height: initial;
12
+ padding: $spacer * 0.5;
13
+ }
14
+
15
+ // PARTS
16
+ // -----------
17
+
18
+ .#{$n}-idle__title {
19
+ margin-top: 0;
20
+ margin-bottom: $spacer * 0.25;
21
+ font-size: $fontsize-default;
22
+ font-weight: bold;
23
+ text-align: center;
24
+
25
+ &:last-child {
26
+ margin-bottom: 0;
27
+ }
28
+ }
29
+
30
+ .#{$n}-idle__count-container {
31
+ display: block;
32
+ width: 100%;
33
+ height: 2.75em;
34
+ margin-bottom: $spacer * 0.5;
35
+ font-size: $fontsize-small;
36
+ }
37
+
38
+ .#{$n}-idle__count-text,
39
+ .#{$n}-idle__count-timer {
40
+ display: block;
41
+ width: 100%;
42
+ font-size: inherit;
43
+ text-align: center;
44
+ white-space: nowrap;
45
+ }
46
+
47
+ .#{$n}-idle__options {
48
+ display: flex;
49
+ flex-wrap: wrap;
50
+ justify-content: center;
51
+ width: 100%;
52
+ margin: 0;
53
+ padding: 0;
54
+ list-style-type: none;
55
+ }
56
+
57
+ .#{$n}-idle__options .#{$n}-button {
58
+ margin: $spacer * 0.25 $spacer * 0.25 0;
59
+ text-align: center;
60
+ white-space: normal;
61
+ }