@seamly/web-ui 21.0.8 → 22.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 (163) hide show
  1. package/build/dist/lib/components.js +9295 -7845
  2. package/build/dist/lib/components.js.map +1 -0
  3. package/build/dist/lib/components.min.js +2 -1
  4. package/build/dist/lib/components.min.js.LICENSE.txt +2 -2
  5. package/build/dist/lib/components.min.js.map +1 -0
  6. package/build/dist/lib/config.js +2 -1
  7. package/build/dist/lib/config.js.map +1 -0
  8. package/build/dist/lib/config.min.js +2 -1
  9. package/build/dist/lib/config.min.js.map +1 -0
  10. package/build/dist/lib/contexts.js +2 -1
  11. package/build/dist/lib/contexts.js.map +1 -0
  12. package/build/dist/lib/contexts.min.js +2 -1
  13. package/build/dist/lib/contexts.min.js.map +1 -0
  14. package/build/dist/lib/deprecated-view.css +1 -1
  15. package/build/dist/lib/deprecated-view.js +1 -1
  16. package/build/dist/lib/hooks.js +6839 -5731
  17. package/build/dist/lib/hooks.js.map +1 -0
  18. package/build/dist/lib/hooks.min.js +2 -1
  19. package/build/dist/lib/hooks.min.js.map +1 -0
  20. package/build/dist/lib/index.debug.js +964 -383
  21. package/build/dist/lib/index.debug.js.map +1 -0
  22. package/build/dist/lib/index.debug.min.js +2 -1
  23. package/build/dist/lib/index.debug.min.js.LICENSE.txt +336 -108
  24. package/build/dist/lib/index.debug.min.js.map +1 -0
  25. package/build/dist/lib/index.js +2991 -5659
  26. package/build/dist/lib/index.js.map +1 -0
  27. package/build/dist/lib/index.min.js +2 -1
  28. package/build/dist/lib/index.min.js.LICENSE.txt +2 -2
  29. package/build/dist/lib/index.min.js.map +1 -0
  30. package/build/dist/lib/sounds/beep.mp3 +0 -0
  31. package/build/dist/lib/standalone.js +9454 -12449
  32. package/build/dist/lib/standalone.js.map +1 -0
  33. package/build/dist/lib/standalone.min.js +2 -1
  34. package/build/dist/lib/standalone.min.js.LICENSE.txt +1 -1
  35. package/build/dist/lib/standalone.min.js.map +1 -0
  36. package/build/dist/lib/storage.js +2 -1
  37. package/build/dist/lib/storage.js.map +1 -0
  38. package/build/dist/lib/storage.min.js +2 -1
  39. package/build/dist/lib/storage.min.js.map +1 -0
  40. package/build/dist/lib/style-guide.js +1828 -6015
  41. package/build/dist/lib/style-guide.js.map +1 -0
  42. package/build/dist/lib/style-guide.min.js +2 -1
  43. package/build/dist/lib/style-guide.min.js.LICENSE.txt +2 -2
  44. package/build/dist/lib/style-guide.min.js.map +1 -0
  45. package/build/dist/lib/styles-default-implementation.css +1 -1
  46. package/build/dist/lib/styles-default-implementation.js +1 -1
  47. package/build/dist/lib/styles.css +1 -1
  48. package/build/dist/lib/styles.js +1 -1
  49. package/build/dist/lib/utils.js +11601 -14586
  50. package/build/dist/lib/utils.js.map +1 -0
  51. package/build/dist/lib/utils.min.js +2 -1
  52. package/build/dist/lib/utils.min.js.LICENSE.txt +1 -6
  53. package/build/dist/lib/utils.min.js.map +1 -0
  54. package/package.json +58 -48
  55. package/src/javascripts/api/conversation-connector.ts +2 -0
  56. package/src/javascripts/api/errors/seamly-api-error.ts +15 -0
  57. package/src/javascripts/api/index.ts +168 -94
  58. package/src/javascripts/config.ts +1 -1
  59. package/src/javascripts/config.types.ts +18 -11
  60. package/src/javascripts/domains/config/selectors.ts +1 -1
  61. package/src/javascripts/domains/config/slice.ts +12 -0
  62. package/src/javascripts/domains/forms/forms.types.ts +1 -0
  63. package/src/javascripts/domains/forms/hooks.ts +10 -2
  64. package/src/javascripts/domains/i18n/slice.ts +2 -0
  65. package/src/javascripts/domains/interrupt/hooks.ts +15 -7
  66. package/src/javascripts/domains/interrupt/selectors.ts +4 -0
  67. package/src/javascripts/domains/interrupt/slice.ts +2 -2
  68. package/src/javascripts/domains/store/selectors.ts +23 -10
  69. package/src/javascripts/domains/store/slice.ts +63 -11
  70. package/src/javascripts/domains/store/store.types.ts +39 -1
  71. package/src/javascripts/domains/translations/components/options-button.tsx +1 -4
  72. package/src/javascripts/domains/translations/components/translation-status.tsx +4 -3
  73. package/src/javascripts/domains/translations/hooks.ts +11 -4
  74. package/src/javascripts/domains/translations/slice.ts +2 -0
  75. package/src/javascripts/index.ts +2 -0
  76. package/src/javascripts/lib/url-helpers.ts +24 -0
  77. package/src/javascripts/schema.ts +10 -0
  78. package/src/javascripts/style-guide/states.js +65 -0
  79. package/src/javascripts/ui/components/app-options/index.js +4 -3
  80. package/src/javascripts/ui/components/conversation/conversation.tsx +2 -0
  81. package/src/javascripts/ui/components/conversation/event/chat-scroll/chat-scroll-provider.tsx +2 -0
  82. package/src/javascripts/ui/components/conversation/event/choice-prompt.js +1 -1
  83. package/src/javascripts/ui/components/conversation/event/text.js +1 -1
  84. package/src/javascripts/ui/components/conversation/event/upload.js +50 -9
  85. package/src/javascripts/ui/components/conversation/use-chat-scroll.ts +3 -2
  86. package/src/javascripts/ui/components/core/seamly-event-subscriber.ts +16 -14
  87. package/src/javascripts/ui/components/core/seamly-file-upload.tsx +156 -0
  88. package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +5 -5
  89. package/src/javascripts/ui/components/entry/abort-transaction-button/abort-transaction-button.tsx +45 -0
  90. package/src/javascripts/ui/components/entry/deprecated-toggle-button.js +4 -3
  91. package/src/javascripts/ui/components/entry/text-entry/hooks.ts +108 -0
  92. package/src/javascripts/ui/components/entry/text-entry/index.js +7 -4
  93. package/src/javascripts/ui/components/entry/text-entry/{text-entry-form.js → text-entry-form.tsx} +8 -22
  94. package/src/javascripts/ui/components/faq/faq.js +5 -4
  95. package/src/javascripts/ui/components/form-controls/{input.js → input.tsx} +13 -2
  96. package/src/javascripts/ui/components/form-controls/{wrapper.js → wrapper.tsx} +8 -4
  97. package/src/javascripts/ui/components/layout/agent-info.js +4 -3
  98. package/src/javascripts/ui/components/layout/chat-frame.js +7 -8
  99. package/src/javascripts/ui/components/layout/deprecated-chat-frame.js +7 -8
  100. package/src/javascripts/ui/components/layout/interrupt.js +6 -15
  101. package/src/javascripts/ui/components/layout/pre-chat-messages.js +4 -3
  102. package/src/javascripts/ui/components/suggestions/index.js +5 -4
  103. package/src/javascripts/ui/components/translation-chat-status/index.tsx +4 -3
  104. package/src/javascripts/ui/components/view/app-view.js +1 -2
  105. package/src/javascripts/ui/components/view/deprecated-view.js +1 -2
  106. package/src/javascripts/ui/components/view/{index.js → index.tsx} +53 -4
  107. package/src/javascripts/ui/components/view/inline-view.js +1 -11
  108. package/src/javascripts/ui/components/view/window-view/{index.js → index.tsx} +15 -11
  109. package/src/javascripts/ui/components/view/window-view/window-open-button.js +4 -3
  110. package/src/javascripts/ui/components/widgets/{in-out-transition.js → in-out-transition.tsx} +67 -28
  111. package/src/javascripts/ui/hooks/sounds/beep.mp3 +0 -0
  112. package/src/javascripts/ui/hooks/use-click-outside.ts +5 -3
  113. package/src/javascripts/ui/hooks/use-notifications.ts +114 -0
  114. package/src/javascripts/ui/hooks/{use-seamly-chat.js → use-seamly-chat.ts} +5 -1
  115. package/src/javascripts/ui/hooks/use-session-expired-command.ts +17 -0
  116. package/src/javascripts/ui/hooks/use-timeout.ts +20 -0
  117. package/src/stylesheets/3-chat/_chat.scss +3 -5
  118. package/src/stylesheets/4-base/_formelements.scss +0 -36
  119. package/src/stylesheets/5-components/_abort-transaction.scss +10 -0
  120. package/src/stylesheets/5-components/_buttons.scss +18 -3
  121. package/src/stylesheets/5-components/_character-limit.scss +2 -2
  122. package/src/stylesheets/5-components/_chat-status.scss +26 -37
  123. package/src/stylesheets/5-components/_choice-prompt.scss +9 -10
  124. package/src/stylesheets/5-components/_conversation.scss +9 -62
  125. package/src/stylesheets/5-components/_disclaimer.scss +11 -3
  126. package/src/stylesheets/5-components/_error.scss +3 -2
  127. package/src/stylesheets/5-components/_idle.scss +3 -8
  128. package/src/stylesheets/5-components/_input.scss +34 -13
  129. package/src/stylesheets/5-components/_interrupt.scss +3 -10
  130. package/src/stylesheets/5-components/_loader.scss +1 -2
  131. package/src/stylesheets/5-components/_message-author.scss +2 -4
  132. package/src/stylesheets/5-components/_message-body.scss +33 -10
  133. package/src/stylesheets/5-components/_message-card.scss +2 -10
  134. package/src/stylesheets/5-components/_message-carousel.scss +4 -4
  135. package/src/stylesheets/5-components/_message-cta.scss +0 -6
  136. package/src/stylesheets/5-components/_message.scss +1 -0
  137. package/src/stylesheets/5-components/_modal.scss +2 -5
  138. package/src/stylesheets/5-components/_options.scss +17 -22
  139. package/src/stylesheets/5-components/_pre-chat-messages.scss +3 -1
  140. package/src/stylesheets/5-components/_prompt.scss +3 -7
  141. package/src/stylesheets/5-components/_skip-link.scss +2 -1
  142. package/src/stylesheets/5-components/_suggestions.scss +2 -2
  143. package/src/stylesheets/5-components/_translation-options.scss +5 -2
  144. package/src/stylesheets/5-components/_unread-messages.scss +33 -0
  145. package/src/stylesheets/5-components/_upload.scss +20 -27
  146. package/src/stylesheets/6-default-implementation/_hover.scss +14 -17
  147. package/src/stylesheets/7-deprecated/1-settings/_config.scss +17 -0
  148. package/src/stylesheets/7-deprecated/3-app/_app.scss +2 -1
  149. package/src/stylesheets/7-deprecated/5-components/_card.scss +1 -0
  150. package/src/stylesheets/7-deprecated/5-components/_chat-status.scss +66 -20
  151. package/src/stylesheets/7-deprecated/5-components/_conversation.scss +1 -4
  152. package/src/stylesheets/7-deprecated/5-components/_input.scss +6 -1
  153. package/src/stylesheets/7-deprecated/5-components/_interrupt.scss +1 -4
  154. package/src/stylesheets/7-deprecated/5-components/_message.scss +49 -12
  155. package/src/stylesheets/7-deprecated/5-components/_translation-options.scss +30 -37
  156. package/src/stylesheets/7-deprecated/5-components/_unread-messages.scss +38 -0
  157. package/src/stylesheets/deprecated-view.scss +1 -0
  158. package/src/stylesheets/styles.scss +2 -0
  159. package/webpack/config.common.js +6 -1
  160. package/webpack/config.package.js +18 -0
  161. package/webpack/defaults.js +1 -1
  162. package/src/javascripts/ui/components/core/seamly-file-upload.js +0 -86
  163. package/src/javascripts/ui/components/entry/text-entry/hooks.js +0 -46
@@ -1,10 +1,7 @@
1
1
  .#{$n}-chat-status {
2
2
  display: flex;
3
- z-index: 1;
4
- top: $spacer;
5
- right: 0;
6
- left: 0;
7
- align-items: center;
3
+ align-items: flex-start;
4
+ gap: $spacer * 0.5;
8
5
  width: 100%;
9
6
  min-height: $buttonsize;
10
7
  margin: $spacer;
@@ -14,44 +11,31 @@
14
11
  box-shadow: $boxshadow;
15
12
 
16
13
  &--condensed {
17
- padding: $spacer * 0.25;
18
-
19
- .#{$n}-chat-status__title {
20
- padding-left: $spacer * 0.25;
21
- }
22
-
23
- .#{$n}-chat-status__close {
24
- min-height: $buttonsize-small;
25
- padding-right: $spacer * 0.25;
26
- }
14
+ align-items: center;
15
+ padding: $spacer * 0.25 $spacer * 0.5 $spacer * 0.25 $spacer * 0.25;
27
16
  }
28
17
  }
29
18
 
30
- .#{$n}-chat--layout-window {
31
- .#{$n}-chat-status {
32
- margin-right: $buttonsize + $spacer * 2;
33
- }
19
+ .#{$n}-chat--layout-window .#{$n}-chat-status {
20
+ margin-right: $buttonsize + $spacer * 2;
34
21
  }
35
22
 
36
23
  .#{$n}-chat-status__body {
37
24
  display: flex;
38
- flex-direction: column;
39
- flex-grow: 1;
40
- align-items: flex-start;
25
+ flex: 1 1 auto;
26
+ flex-wrap: wrap;
27
+ gap: $spacer * 0.5;
28
+ align-items: center;
41
29
  justify-content: flex-start;
42
30
  }
43
31
 
44
32
  .#{$n}-chat-status__title {
45
33
  display: flex;
46
- margin: 0 $spacer * 0.5 0 0;
34
+ margin: 0;
47
35
  color: $grey-e;
48
36
  font-size: $fontsize-medium;
49
37
  font-weight: $fontweight-bold;
50
38
  line-height: 1.25;
51
-
52
- + .#{$n}-chat-status__button {
53
- margin-top: $spacer * 0.5;
54
- }
55
39
  }
56
40
 
57
41
  .#{$n}-chat-status .#{$n}-icon {
@@ -67,28 +51,33 @@
67
51
  min-height: $buttonsize-small;
68
52
  padding: $spacer * 0.25 $spacer * 0.5;
69
53
  color: $white;
54
+ }
70
55
 
71
- .#{$n}-icon {
72
- margin-right: $spacer * 0.25;
73
-
74
- svg {
75
- width: 100%;
76
- height: 100%;
56
+ .#{$n}-chat-status__button .#{$n}-icon {
57
+ svg {
58
+ width: 100%;
59
+ height: 100%;
77
60
 
78
- path {
79
- fill: $white;
80
- }
61
+ path {
62
+ fill: $white;
81
63
  }
82
64
  }
83
65
  }
84
66
 
85
67
  .#{$n}-chat-status__close {
86
68
  display: inline-flex;
87
- align-self: flex-start;
69
+ flex: 0 0 auto;
88
70
  justify-content: center;
71
+ min-width: $buttonsize-small - $spacer * 0.5;
89
72
  min-height: $buttonsize-small - $spacer * 0.5;
90
73
  color: $brand3;
91
74
 
75
+ &:has(.#{$n}-icon) {
76
+ flex: 0 0 $buttonsize-small - $spacer * 0.5;
77
+ width: $buttonsize-small - $spacer * 0.5;
78
+ padding: 0;
79
+ }
80
+
92
81
  .#{$n}-icon {
93
82
  align-self: center;
94
83
  }
@@ -1,18 +1,13 @@
1
1
  .#{$n}-choice-prompt {
2
2
  display: flex;
3
3
  flex-direction: column;
4
+ gap: $spacer * 0.25;
4
5
  padding: 0;
5
6
  }
6
7
 
7
8
  .#{$n}-choice-prompt__item {
8
9
  display: block;
9
10
  width: 100%;
10
- margin-top: $spacer * 0.25;
11
- margin-left: 0;
12
-
13
- &:first-child {
14
- margin-top: 0;
15
- }
16
11
  }
17
12
 
18
13
  .#{$n}-choice-prompt__item .#{$n}-button {
@@ -29,11 +24,14 @@
29
24
  .#{$n}-button--choose-again {
30
25
  display: flex;
31
26
  align-items: center;
32
- margin: $spacer * 0.25 0 $spacer * 0.5;
27
+ gap: $spacer * 0.5;
28
+ margin: $spacer * 0.25 0;
33
29
  padding: 0;
30
+ transition: margin $transition, color $transition;
31
+ line-height: 1;
34
32
 
35
- &:last-child {
36
- margin-bottom: 0;
33
+ &[aria-expanded='true'] {
34
+ margin: $spacer 0 $spacer * 0.5;
37
35
  }
38
36
  }
39
37
 
@@ -44,7 +42,8 @@
44
42
  justify-content: center;
45
43
  width: $iconsize-small * 0.5;
46
44
  height: $iconsize-small * 0.5;
47
- margin: 0 $spacer * 0.5;
45
+ margin: 0;
46
+ padding: 0;
48
47
  transform-origin: 50% 50%;
49
48
  transition: transform $transition;
50
49
  }
@@ -1,13 +1,11 @@
1
1
  .#{$n}-conversation__container {
2
2
  display: flex;
3
3
  position: absolute;
4
- top: 0;
5
- right: 0;
6
- bottom: 0;
7
- left: 0;
4
+ inset: 0;
8
5
  flex: 1 1 100%;
9
6
  flex-direction: column;
10
7
  justify-content: space-between;
8
+ gap: $spacer * 0.5;
11
9
  height: 100%;
12
10
  max-height: 100%;
13
11
  }
@@ -15,6 +13,10 @@
15
13
  .#{$n}-conversation {
16
14
  @include unList;
17
15
 
16
+ display: flex;
17
+ flex-direction: column;
18
+ justify-content: space-between;
19
+ gap: $spacer * 0.5;
18
20
  width: 100%;
19
21
  margin: auto 0 0;
20
22
  padding: $spacer $spacer 0;
@@ -23,80 +25,25 @@
23
25
  &::after {
24
26
  content: '';
25
27
  display: block;
26
- flex: 0 0 100%;
28
+ flex: 0 0 $spacer;
27
29
  width: 100%;
28
30
  height: $spacer;
29
31
  }
30
32
  }
31
33
 
32
- .#{$n}-chat-status ~ .#{$n}-chat__container .#{$n}-conversation {
33
- padding-top: $buttonsize + $spacer * 2;
34
- }
35
-
36
- .#{$n}-chat-status
37
- ~ .#{$n}-chat__container__scroll-area
38
- .#{$n}-disclaimer
39
- + .#{$n}-conversation {
40
- padding-top: 0;
41
- }
42
-
43
34
  .#{$n}-chat--layout-inline .#{$n}-conversation {
44
35
  position: relative;
45
36
  }
46
37
 
47
38
  .#{$n}-conversation__item {
39
+ display: block;
48
40
  width: 100%;
49
- min-height: 0;
50
- margin-top: $spacer * 0.5;
51
41
  }
52
42
 
53
43
  .#{$n}-conversation__item--new-participant {
54
- margin-top: $spacer;
44
+ margin-top: $spacer * 0.5;
55
45
 
56
46
  &:first-child {
57
47
  margin-top: 0;
58
48
  }
59
49
  }
60
-
61
- .#{$n}-conversation__item--source-info {
62
- margin-top: $spacer;
63
- margin-bottom: $spacer;
64
-
65
- &:last-child {
66
- margin-bottom: 0;
67
- }
68
- }
69
-
70
- .#{$n}-unread-messages {
71
- display: none;
72
- position: absolute;
73
- bottom: 0;
74
- align-items: center;
75
- justify-content: center;
76
- margin: $spacer;
77
- opacity: 0;
78
-
79
- > .#{$n}-button {
80
- display: flex;
81
- align-items: center;
82
-
83
- > .#{$n}-icon {
84
- width: $spacer;
85
- height: $spacer;
86
- margin-left: calc($spacer / 2);
87
-
88
- svg path {
89
- fill: $white;
90
- }
91
- }
92
- }
93
- }
94
-
95
- .#{$n}-unread-messages.#{$n}-transition--visible {
96
- display: flex;
97
- }
98
-
99
- .#{$n}-unread-messages.#{$n}-transition--in {
100
- transition: opacity $transition 1000ms;
101
- opacity: 1;
102
- }
@@ -1,6 +1,8 @@
1
1
  .#{$n}-disclaimer {
2
- display: block;
2
+ display: flex;
3
3
  flex: 0 0 auto;
4
+ flex-direction: column;
5
+ gap: $spacer * 0.25;
4
6
  width: 100%;
5
7
  height: auto;
6
8
  padding: $spacer;
@@ -11,9 +13,15 @@
11
13
  padding-right: $buttonsize + $spacer * 2;
12
14
  }
13
15
 
14
- .#{$n}-disclaimer__title {
15
- margin: 0 0 $spacer * 0.25;
16
+ .#{$n}-chat--layout-window
17
+ .#{$n}-chat__container__header:has(.#{$n}-chat-status)
18
+ ~ .#{$n}-chat__body
19
+ .#{$n}-disclaimer {
16
20
  padding-right: $spacer;
21
+ }
22
+
23
+ .#{$n}-disclaimer__title {
24
+ margin: 0;
17
25
  font-size: $fontsize-small;
18
26
  font-weight: $fontweight-bold;
19
27
  line-height: 1;
@@ -6,7 +6,7 @@
6
6
  .#{$n}-error {
7
7
  display: block;
8
8
  width: 100%;
9
- margin: 0 0 $spacer * 0.25;
9
+ margin: 0;
10
10
 
11
11
  &:empty {
12
12
  display: none;
@@ -17,12 +17,13 @@
17
17
  flex: 0 0 16px;
18
18
  width: 16px;
19
19
  height: 16px;
20
- margin-right: $spacer * 0.25;
21
20
  }
22
21
 
23
22
  .#{$n}-error__message {
24
23
  display: flex;
24
+ flex-direction: row;
25
25
  align-items: flex-start;
26
+ gap: $spacer * 0.25;
26
27
  width: 100%;
27
28
  padding: $spacer * 0.25 $spacer * 0.5;
28
29
  border-radius: $borderradius-small;
@@ -3,27 +3,22 @@
3
3
  flex-direction: column;
4
4
  align-items: center;
5
5
  justify-content: space-between;
6
+ gap: $spacer * 0.5;
6
7
  max-height: initial;
7
8
  padding: $spacer * 0.5;
8
9
  }
9
10
 
10
11
  .#{$n}-idle__title {
11
- margin-top: 0;
12
- margin-bottom: $spacer * 0.25;
12
+ margin: 0;
13
13
  font-size: $fontsize-default;
14
14
  font-weight: bold;
15
15
  text-align: center;
16
-
17
- &:last-child {
18
- margin-bottom: 0;
19
- }
20
16
  }
21
17
 
22
18
  .#{$n}-idle__count-container {
23
19
  display: block;
24
20
  width: 100%;
25
21
  height: 2.75em;
26
- margin-bottom: $spacer * 0.5;
27
22
  font-size: $fontsize-small;
28
23
  }
29
24
 
@@ -40,6 +35,7 @@
40
35
  display: flex;
41
36
  flex-wrap: wrap;
42
37
  justify-content: center;
38
+ gap: $spacer * 0.25;
43
39
  width: 100%;
44
40
  margin: 0;
45
41
  padding: 0;
@@ -47,7 +43,6 @@
47
43
  }
48
44
 
49
45
  .#{$n}-idle__options .#{$n}-button {
50
- margin: $spacer * 0.25 $spacer * 0.25 0;
51
46
  text-align: center;
52
47
  white-space: normal;
53
48
  }
@@ -5,31 +5,52 @@
5
5
  height: 100%;
6
6
  }
7
7
 
8
+ .#{$n}-entry-form {
9
+ display: flex;
10
+ align-items: flex-end;
11
+ gap: $spacer * 0.25;
12
+ }
13
+
8
14
  .#{$n}-input--text__container {
9
15
  display: flex;
10
16
  position: relative;
11
17
  flex: 1 1 100%;
12
18
  height: 100%;
13
- margin-right: $spacer * 0.25;
19
+ }
20
+
21
+ .#{$n}-entry-form .#{$n}-form-control__wrapper {
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: $spacer * 0.25;
25
+ width: 100%;
26
+ }
27
+
28
+ .#{$n}-input__label {
29
+ font-size: $fontsize-medium;
30
+ font-weight: $fontweight-bold;
14
31
  }
15
32
 
16
33
  .#{$n}-input__text {
17
34
  appearance: none;
18
35
  flex-grow: 4;
19
36
  height: $buttonsize;
20
- margin-right: $spacer * 0.25;
21
37
  padding: $spacer * 0.5;
38
+ overflow: hidden;
22
39
  transition: padding $transition;
23
- border: $thin-border solid transparent;
40
+ border: $thin-border solid $grey-b;
24
41
  border-radius: $borderradius-small;
25
42
  color: $grey-e;
26
43
  font-size: $fontsize-default;
44
+ text-overflow: ellipsis;
45
+ white-space: nowrap;
27
46
  resize: none;
28
47
 
29
48
  @include stylePlaceholder {
30
- overflow: visible;
49
+ overflow: hidden;
31
50
  color: $grey-c;
32
51
  line-height: $spacer;
52
+ text-overflow: ellipsis;
53
+ white-space: nowrap;
33
54
  }
34
55
  }
35
56
 
@@ -57,16 +78,16 @@
57
78
  padding: 0;
58
79
  border-radius: $borderradius-small;
59
80
 
60
- &[aria-disabled='true'] {
61
- cursor: auto;
81
+ .#{$n}-icon path {
82
+ transition: fill $transition;
83
+ fill: $interaction;
62
84
  }
63
- }
64
85
 
65
- .#{$n}-input__submit .#{$n}-icon path {
66
- transition: fill $transition;
67
- fill: $interaction;
68
- }
86
+ &[aria-disabled='true'] {
87
+ cursor: auto;
69
88
 
70
- .#{$n}-input__submit[aria-disabled='true'] .#{$n}-icon path {
71
- fill: $grey-c;
89
+ .#{$n}-icon path {
90
+ fill: $grey-c;
91
+ }
92
+ }
72
93
  }
@@ -1,10 +1,7 @@
1
1
  .#{$n}-interrupt {
2
2
  display: flex;
3
3
  position: absolute;
4
- top: 0;
5
- right: 0;
6
- bottom: 0;
7
- left: 0;
4
+ inset: 0;
8
5
  background: $white;
9
6
  }
10
7
 
@@ -24,6 +21,7 @@
24
21
  flex-direction: column;
25
22
  align-items: left;
26
23
  justify-content: center;
24
+ gap: $spacer * 0.5;
27
25
  padding: $spacer * 2;
28
26
  text-align: left;
29
27
  }
@@ -33,18 +31,13 @@
33
31
  }
34
32
 
35
33
  .#{$n}-interrupt__title {
36
- margin: 0 0 $spacer;
34
+ margin: 0;
37
35
  font-size: $fontsize-default;
38
36
  font-weight: bold;
39
37
  }
40
38
 
41
39
  .#{$n}-interrupt__message {
42
- margin-bottom: $spacer * 2;
43
40
  font-size: $fontsize-default;
44
-
45
- &:last-child {
46
- margin-bottom: 0;
47
- }
48
41
  }
49
42
 
50
43
  .#{$n}-interrupt__actions {
@@ -6,6 +6,7 @@ $loader-quarter-duration: $loader-animation-duration * 0.2;
6
6
  flex-direction: row;
7
7
  align-items: center;
8
8
  justify-content: flex-start;
9
+ gap: $spacer * 0.25;
9
10
  height: $spacer;
10
11
  padding: $spacer * 0.125 $spacer * 0.25;
11
12
  animation: #{$app-name}-fadeIn $loader-animation-duration * 0.5 linear;
@@ -15,7 +16,6 @@ $loader-quarter-duration: $loader-animation-duration * 0.2;
15
16
  display: inline-block;
16
17
  width: $spacer * 0.3333;
17
18
  height: 100%;
18
- margin-right: $spacer * 0.25;
19
19
  transform: scaleY(0.45);
20
20
  animation-name: #{$app-name}-loader;
21
21
  animation-duration: $loader-animation-duration;
@@ -40,7 +40,6 @@ $loader-quarter-duration: $loader-animation-duration * 0.2;
40
40
  }
41
41
 
42
42
  &.#{$n}-four {
43
- margin-right: 0;
44
43
  animation-delay: $loader-quarter-duration * 4;
45
44
  }
46
45
  }
@@ -3,9 +3,9 @@
3
3
  flex-direction: row;
4
4
  align-items: center;
5
5
  justify-content: flex-start;
6
+ gap: $spacer * 0.25;
6
7
  width: 100%;
7
- margin-bottom: 0.3rem;
8
- padding: 0 $spacer * 0.5;
8
+ padding: 0;
9
9
  font-weight: $fontweight-bold;
10
10
  }
11
11
 
@@ -16,7 +16,6 @@
16
16
  .#{$n}-message__avatar {
17
17
  width: $avatarsize * 0.5;
18
18
  height: $avatarsize * 0.5;
19
- margin: 0 0.5em 0 0;
20
19
 
21
20
  .#{$n}-avatar {
22
21
  display: block;
@@ -32,7 +31,6 @@
32
31
 
33
32
  .#{$n}-message--source-user .#{$n}-message__avatar {
34
33
  order: 2;
35
- margin: 0 0 0 $spacer * 0.5;
36
34
  }
37
35
 
38
36
  .#{$n}-message--source-user .#{$n}-message__author-name {
@@ -2,7 +2,6 @@
2
2
  display: block;
3
3
  position: relative;
4
4
  max-width: 100%;
5
- margin-bottom: $spacer * 0.25;
6
5
  padding: $spacer * 0.5 $spacer * 0.75;
7
6
  border-radius: $borderradius;
8
7
  background-color: $threadlist-agent-text-bgcolor;
@@ -157,6 +156,7 @@
157
156
  .#{$n}-download {
158
157
  display: flex;
159
158
  align-items: center;
159
+ gap: $spacer * 0.5;
160
160
  padding: $spacer * 0.5 $spacer * 0.75;
161
161
  border-radius: $borderradius;
162
162
  color: inherit;
@@ -166,17 +166,36 @@
166
166
 
167
167
  .#{$n}-download-link {
168
168
  text-decoration: underline;
169
+ cursor: pointer;
169
170
  }
170
171
 
171
- .#{$n}-download:not(.#{$n}-download-link) .#{$n}-file-download {
172
- text-decoration: line-through;
172
+ .#{$n}-download--preview {
173
+ flex-flow: column wrap;
174
+ align-items: flex-end;
175
+ gap: 0;
176
+ padding: 0;
177
+
178
+ > img {
179
+ width: 100%;
180
+ height: auto;
181
+ border-top-left-radius: $borderradius;
182
+ border-top-right-radius: $borderradius;
183
+ object-fit: cover;
184
+ }
185
+
186
+ .#{$n}-file-download {
187
+ display: flex;
188
+ flex: 0 0 auto;
189
+ justify-content: flex-end;
190
+ width: 100%;
191
+ padding: $spacer * 0.5 $spacer * 0.75;
192
+ }
173
193
  }
174
194
 
175
195
  .#{$n}-icon {
176
196
  flex: 0 0 $iconsize-small;
177
197
  width: $iconsize-small;
178
198
  height: $iconsize-small;
179
- margin-right: $spacer * 0.5;
180
199
  }
181
200
 
182
201
  .#{$n}-icon svg {
@@ -185,11 +204,14 @@
185
204
  }
186
205
  }
187
206
 
188
- .#{$n}-conversation__item--source-agent
189
- .#{$n}-message--type-upload
190
- .#{$n}-icon
191
- path {
192
- fill: $interaction;
207
+ .#{$n}-conversation__item--source-agent .#{$n}-message--type-upload {
208
+ .#{$n}-download--preview .#{$n}-file-download {
209
+ justify-content: flex-start;
210
+ }
211
+
212
+ .#{$n}-icon path {
213
+ fill: $interaction;
214
+ }
193
215
  }
194
216
 
195
217
  .#{$n}-message .#{$n}-message__info {
@@ -203,8 +225,9 @@
203
225
  .#{$n}-message--type-cta .#{$n}-message__body {
204
226
  display: flex;
205
227
  flex-direction: column;
228
+ gap: $spacer * 0.5;
206
229
  width: 100%;
207
- padding: $spacer * 0.5 $spacer * 0.75 $spacer * 0.75;
230
+ padding: $spacer * 0.75;
208
231
  background-color: $brand2;
209
232
  }
210
233
 
@@ -19,6 +19,7 @@
19
19
  display: flex;
20
20
  flex: 1 1 auto;
21
21
  flex-wrap: wrap;
22
+ gap: $spacer * 0.5;
22
23
  padding: $spacer * 0.5 $spacer * 0.75 $spacer * 0.75;
23
24
  }
24
25
 
@@ -26,24 +27,15 @@
26
27
  display: block;
27
28
  flex: 0 0 100%;
28
29
  width: 100%;
29
- margin: 0 0 $spacer * 0.25;
30
+ margin: 0;
30
31
  padding: 0;
31
32
  font-size: $fontsize-default;
32
33
  font-weight: $fontweight-bold;
33
-
34
- &:last-child {
35
- margin-bottom: 0;
36
- }
37
34
  }
38
35
 
39
36
  .#{$n}-card__description {
40
37
  display: block;
41
38
  width: 100%;
42
- margin-bottom: $spacer;
43
-
44
- &:last-child {
45
- margin-bottom: 0;
46
- }
47
39
  }
48
40
 
49
41
  .#{$n}-card__content .#{$n}-button {
@@ -43,6 +43,7 @@
43
43
  position: relative;
44
44
  align-items: center;
45
45
  justify-content: space-between;
46
+ gap: $spacer * 0.5;
46
47
  width: 100%;
47
48
  height: fit-content;
48
49
  padding: 0;
@@ -76,10 +77,10 @@
76
77
  height: $iconsize-small;
77
78
  padding: 0;
78
79
  border: 0;
79
- }
80
80
 
81
- .#{$n}-carousel__controls .#{$n}-button .#{$n}-icon svg path {
82
- fill: $interaction;
81
+ svg path {
82
+ fill: $interaction;
83
+ }
83
84
  }
84
85
  /* stylelint-enable */
85
86
 
@@ -88,7 +89,6 @@
88
89
  position: relative;
89
90
  align-items: center;
90
91
  justify-content: center;
91
- padding: 0 $spacer * 0.5;
92
92
  }
93
93
 
94
94
  .#{$n}-carousel-pagination__wrapper {
@@ -1,5 +1,4 @@
1
1
  .#{$n}-cta__content {
2
- margin-bottom: $spacer * 0.5;
3
2
  color: $white;
4
3
  font-size: $fontsize-medium;
5
4
  line-height: 1.5;
@@ -13,11 +12,6 @@
13
12
  }
14
13
 
15
14
  .#{$n}-message--type-cta .#{$n}-button {
16
- margin-bottom: $spacer * 0.5;
17
15
  line-height: 2;
18
16
  text-decoration: none;
19
-
20
- &:last-child {
21
- margin-bottom: 0;
22
- }
23
17
  }