@seamly/web-ui 19.1.3 → 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 (182) 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 +180 -125
  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 +7279 -7756
  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 +5700 -6184
  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 +10820 -4993
  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/index.js +48 -37
  20. package/src/javascripts/config.js +1 -5
  21. package/src/javascripts/domains/app/actions.js +22 -5
  22. package/src/javascripts/domains/config/actions.js +3 -0
  23. package/src/javascripts/domains/config/reducer.js +9 -0
  24. package/src/javascripts/domains/forms/hooks.js +3 -1
  25. package/src/javascripts/domains/forms/provider.js +12 -0
  26. package/src/javascripts/domains/forms/reducer.js +2 -0
  27. package/src/javascripts/domains/i18n/hooks.js +2 -1
  28. package/src/javascripts/domains/i18n/reducer.js +2 -0
  29. package/src/javascripts/domains/interrupt/reducer.js +2 -2
  30. package/src/javascripts/domains/options/middleware.js +15 -31
  31. package/src/javascripts/domains/store/index.js +2 -1
  32. package/src/javascripts/domains/store/state-reducer.js +3 -8
  33. package/src/javascripts/domains/translations/components/options-dialog/form.js +1 -1
  34. package/src/javascripts/domains/translations/components/options-dialog/index.js +15 -1
  35. package/src/javascripts/domains/translations/reducer.js +2 -0
  36. package/src/javascripts/domains/visibility/actions.js +1 -1
  37. package/src/javascripts/domains/visibility/hooks.js +10 -8
  38. package/src/javascripts/domains/visibility/utils.js +1 -2
  39. package/src/javascripts/index.js +5 -3
  40. package/src/javascripts/lib/css.js +7 -1
  41. package/src/javascripts/lib/engine/index.js +4 -3
  42. package/src/javascripts/lib/external-api/index.js +38 -29
  43. package/src/javascripts/package/components.js +2 -1
  44. package/src/javascripts/style-guide/components/app.js +1 -1
  45. package/src/javascripts/style-guide/components/static-core.js +9 -3
  46. package/src/javascripts/style-guide/states.js +203 -298
  47. package/src/javascripts/ui/components/chat-app.js +1 -1
  48. package/src/javascripts/ui/components/conversation/component-filter.js +6 -0
  49. package/src/javascripts/ui/components/conversation/event/carousel-component/index.js +8 -1
  50. package/src/javascripts/ui/components/conversation/event/carousel-message/components/slide.js +2 -3
  51. package/src/javascripts/ui/components/conversation/event/conversation-suggestions.js +70 -0
  52. package/src/javascripts/ui/components/conversation/event/participant.js +2 -5
  53. package/src/javascripts/ui/components/conversation/event/splash.js +26 -0
  54. package/src/javascripts/ui/components/conversation/event/text.js +1 -2
  55. package/src/javascripts/ui/components/core/seamly-core.js +12 -9
  56. package/src/javascripts/ui/components/core/seamly-event-subscriber.js +4 -10
  57. package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +1 -8
  58. package/src/javascripts/ui/components/entry/entry-container.js +5 -3
  59. package/src/javascripts/ui/components/entry/text-entry/index.js +7 -1
  60. package/src/javascripts/ui/components/entry/text-entry/text-entry-form.js +5 -1
  61. package/src/javascripts/ui/components/entry/toggle-button.js +4 -2
  62. package/src/javascripts/ui/components/entry/upload/file-upload-form.js +1 -1
  63. package/src/javascripts/ui/components/form-controls/error.js +6 -2
  64. package/src/javascripts/ui/components/form-controls/form.js +26 -3
  65. package/src/javascripts/ui/components/layout/app-frame.js +24 -15
  66. package/src/javascripts/ui/components/layout/chat-frame.js +0 -2
  67. package/src/javascripts/ui/components/layout/modal-wrapper.js +0 -80
  68. package/src/javascripts/ui/components/layout/pre-chat-messages.js +45 -0
  69. package/src/javascripts/ui/components/options/options-frame.js +9 -4
  70. package/src/javascripts/ui/components/options/options.js +1 -4
  71. package/src/javascripts/ui/components/options/transcript/index.js +15 -1
  72. package/src/javascripts/ui/components/options/transcript/transcript-form.js +1 -1
  73. package/src/javascripts/ui/components/suggestions/index.js +174 -0
  74. package/src/javascripts/ui/components/suggestions/suggestions-item.js +40 -0
  75. package/src/javascripts/ui/components/suggestions/suggestions-list.js +24 -0
  76. package/src/javascripts/ui/components/view/app-view.js +21 -0
  77. package/src/javascripts/ui/components/view/deprecated-view.js +30 -0
  78. package/src/javascripts/ui/components/view/index.js +27 -0
  79. package/src/javascripts/ui/components/view/inline-view.js +45 -0
  80. package/src/javascripts/ui/components/view/window-view/collapse-button.js +20 -0
  81. package/src/javascripts/ui/components/view/window-view/index.js +82 -0
  82. package/src/javascripts/ui/components/view/window-view/window-open-button.js +68 -0
  83. package/src/javascripts/ui/components/widgets/lightbox.js +7 -2
  84. package/src/javascripts/ui/hooks/component-helper-hooks.js +0 -9
  85. package/src/javascripts/ui/hooks/seamly-hooks.js +0 -1
  86. package/src/javascripts/ui/hooks/seamly-state-hooks.js +28 -4
  87. package/src/javascripts/ui/hooks/use-seamly-chat.js +12 -3
  88. package/src/javascripts/ui/hooks/use-seamly-commands.js +4 -31
  89. package/src/javascripts/ui/utils/seamly-utils.js +2 -14
  90. package/src/stylesheets/1-settings/_animations.scss +0 -6
  91. package/src/stylesheets/1-settings/_config.scss +34 -35
  92. package/src/stylesheets/2-tools/_functions.scss +0 -5
  93. package/src/stylesheets/2-tools/_mixins.scss +4 -16
  94. package/src/stylesheets/3-app/_app.scss +78 -135
  95. package/src/stylesheets/4-base/_a11y.scss +0 -3
  96. package/src/stylesheets/4-base/_elements.scss +0 -11
  97. package/src/stylesheets/4-base/_formelements.scss +4 -14
  98. package/src/stylesheets/5-components/_avatar.scss +2 -44
  99. package/src/stylesheets/5-components/_buttons.scss +6 -45
  100. package/src/stylesheets/5-components/_chat-status.scss +14 -38
  101. package/src/stylesheets/5-components/_choice-prompt.scss +33 -2
  102. package/src/stylesheets/5-components/_collapse-button.scss +16 -0
  103. package/src/stylesheets/5-components/_conversation.scss +26 -2
  104. package/src/stylesheets/5-components/_disclaimer.scss +10 -12
  105. package/src/stylesheets/5-components/_divider.scss +7 -4
  106. package/src/stylesheets/5-components/_error.scss +1 -1
  107. package/src/stylesheets/5-components/_form.scss +9 -0
  108. package/src/stylesheets/5-components/_icon.scss +10 -1
  109. package/src/stylesheets/5-components/_idle.scss +0 -8
  110. package/src/stylesheets/5-components/_input.scss +14 -20
  111. package/src/stylesheets/5-components/_interrupt.scss +0 -2
  112. package/src/stylesheets/5-components/_loader.scss +0 -32
  113. package/src/stylesheets/5-components/_message-author.scss +40 -0
  114. package/src/stylesheets/5-components/_message-body.scss +194 -0
  115. package/src/stylesheets/5-components/_message-card.scss +55 -0
  116. package/src/stylesheets/5-components/_message-carousel.scss +143 -0
  117. package/src/stylesheets/5-components/_message-count.scss +11 -28
  118. package/src/stylesheets/5-components/_message-cta.scss +23 -0
  119. package/src/stylesheets/5-components/_message-info.scss +11 -0
  120. package/src/stylesheets/5-components/_message-translation-info.scss +17 -0
  121. package/src/stylesheets/5-components/_message.scss +13 -364
  122. package/src/stylesheets/5-components/_modal.scss +28 -58
  123. package/src/stylesheets/5-components/_notification.scss +0 -5
  124. package/src/stylesheets/5-components/_options.scss +27 -42
  125. package/src/stylesheets/5-components/_pre-chat-messages.scss +30 -0
  126. package/src/stylesheets/5-components/_prompt.scss +0 -8
  127. package/src/stylesheets/5-components/_skip-link.scss +3 -3
  128. package/src/stylesheets/5-components/_suggestions.scss +96 -0
  129. package/src/stylesheets/5-components/_unstarted.scss +50 -0
  130. package/src/stylesheets/5-components/_upload.scss +26 -28
  131. package/src/stylesheets/5-components/_window-open-button.scss +39 -0
  132. package/src/stylesheets/6-webui-only/_hover.scss +151 -0
  133. package/src/stylesheets/6-webui-only/_scrollbar.scss +31 -0
  134. package/src/stylesheets/7-deprecated/1-settings/_animations.scss +43 -0
  135. package/src/stylesheets/7-deprecated/1-settings/_config.scss +105 -0
  136. package/src/stylesheets/7-deprecated/2-tools/_functions.scss +22 -0
  137. package/src/stylesheets/7-deprecated/2-tools/_mixins.scss +77 -0
  138. package/src/stylesheets/7-deprecated/3-app/_app.scss +214 -0
  139. package/src/stylesheets/7-deprecated/4-base/_a11y.scss +14 -0
  140. package/src/stylesheets/7-deprecated/4-base/_elements.scss +21 -0
  141. package/src/stylesheets/7-deprecated/4-base/_formelements.scss +57 -0
  142. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_agent-info.scss +0 -0
  143. package/src/stylesheets/7-deprecated/5-components/_avatar.scss +64 -0
  144. package/src/stylesheets/7-deprecated/5-components/_buttons.scss +94 -0
  145. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_card.scss +0 -0
  146. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_carousel.scss +0 -0
  147. package/src/stylesheets/7-deprecated/5-components/_character-limit.scss +36 -0
  148. package/src/stylesheets/{5-components/_cobrowsing.scss → 7-deprecated/5-components/_chat-status.scss} +18 -16
  149. package/src/stylesheets/7-deprecated/5-components/_choice-prompt.scss +27 -0
  150. package/src/stylesheets/7-deprecated/5-components/_collapse-button.scss +17 -0
  151. package/src/stylesheets/7-deprecated/5-components/_conversation.scss +44 -0
  152. package/src/stylesheets/7-deprecated/5-components/_disclaimer.scss +36 -0
  153. package/src/stylesheets/7-deprecated/5-components/_divider.scss +91 -0
  154. package/src/stylesheets/7-deprecated/5-components/_error.scss +24 -0
  155. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_faq.scss +8 -3
  156. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_header-controls.scss +0 -0
  157. package/src/stylesheets/7-deprecated/5-components/_icon.scss +4 -0
  158. package/src/stylesheets/7-deprecated/5-components/_idle.scss +61 -0
  159. package/src/stylesheets/7-deprecated/5-components/_input.scss +78 -0
  160. package/src/stylesheets/7-deprecated/5-components/_interrupt.scss +35 -0
  161. package/src/stylesheets/7-deprecated/5-components/_loader.scss +78 -0
  162. package/src/stylesheets/7-deprecated/5-components/_message-count.scss +41 -0
  163. package/src/stylesheets/7-deprecated/5-components/_message.scss +385 -0
  164. package/src/stylesheets/7-deprecated/5-components/_modal.scss +138 -0
  165. package/src/stylesheets/7-deprecated/5-components/_notification.scss +20 -0
  166. package/src/stylesheets/7-deprecated/5-components/_options.scss +286 -0
  167. package/src/stylesheets/7-deprecated/5-components/_prompt.scss +44 -0
  168. package/src/stylesheets/7-deprecated/5-components/_skip-link.scss +21 -0
  169. package/src/stylesheets/{5-components → 7-deprecated/5-components}/_svg-graphic.scss +0 -0
  170. package/src/stylesheets/7-deprecated/5-components/_upload.scss +213 -0
  171. package/src/stylesheets/deprecated-view.scss +64 -0
  172. package/src/stylesheets/styles-webui-only.scss +3 -0
  173. package/src/stylesheets/styles.scss +15 -25
  174. package/webpack/config.site.js +4 -0
  175. package/webpack/defaults.js +5 -0
  176. package/src/javascripts/ui/components/conversation/event/hooks/use-text-rendering.js +0 -35
  177. package/src/javascripts/ui/components/faq/faq.js +0 -162
  178. package/src/javascripts/ui/components/layout/view.js +0 -36
  179. package/src/javascripts/ui/components/options/cobrowsing.js +0 -110
  180. package/src/javascripts/ui/components/warnings/cobrowsing-active-frame.js +0 -29
  181. package/src/javascripts/ui/components/warnings/cobrowsing-active.js +0 -33
  182. package/src/stylesheets/5-components/_modal_mode.scss +0 -108
@@ -0,0 +1,138 @@
1
+ // ##### MODAL #####
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
+ $control-small-radius: $spacer;
9
+ $button-transition: $transition;
10
+
11
+ // BASE
12
+ // ----
13
+
14
+ .#{$n}-modal {
15
+ @include boxSizing;
16
+
17
+ display: block;
18
+ display: flex;
19
+ position: fixed;
20
+ z-index: 99;
21
+ top: 0;
22
+ left: 0;
23
+ align-items: center;
24
+ justify-content: center;
25
+ width: 100%;
26
+ height: 100%;
27
+ max-height: 100%;
28
+ padding: $spacer;
29
+ background-color: rgba($app-bg, 0.8);
30
+ }
31
+
32
+ .#{$n}-modal__float {
33
+ position: relative;
34
+ width: 100%;
35
+ max-width: 80rem;
36
+ height: 100%;
37
+ padding: $spacer * 0.25;
38
+ border: $thin-border solid $grey-b;
39
+ border-radius: $borderradius;
40
+ outline: 0;
41
+ background-color: $app-bg;
42
+ box-shadow: $boxshadow-soft;
43
+ }
44
+
45
+ .#{$n}-modal__inner {
46
+ display: flex;
47
+ position: relative;
48
+ align-items: center;
49
+ justify-content: center;
50
+ width: 100%;
51
+ height: 100%;
52
+ padding: $spacer * 0.5;
53
+ border-radius: $borderradius-small;
54
+ background-color: $grey-a;
55
+ }
56
+
57
+ .#{$n}-modal__image {
58
+ display: block;
59
+ flex: 0 0 auto;
60
+ width: auto;
61
+ max-width: calc(95vw - (#{$spacer} * 2));
62
+ max-height: calc(95vh - (#{$spacer} * 2));
63
+ border: $thin-border solid $grey-b;
64
+ }
65
+
66
+ .#{$n}-modal__close {
67
+ appearance: none;
68
+ display: flex;
69
+ position: absolute;
70
+ top: $spacer;
71
+ right: $spacer * -0.5;
72
+ align-items: center;
73
+ padding: $spacer * 0.5 $spacer;
74
+ transition: background-color $button-transition;
75
+ border: $thin-border solid $grey-b;
76
+ border-radius: $control-small-radius;
77
+ background-color: $app-bg;
78
+ box-shadow: $small-shadow-light;
79
+ color: $brand3;
80
+ font-size: $fontsize-medium;
81
+ font-weight: $fontweight-bold;
82
+
83
+ .#{$n}-icon {
84
+ width: $badge-touch-size * 0.5;
85
+ height: $badge-touch-size * 0.5;
86
+ margin-right: $spacer * 0.25;
87
+
88
+ svg {
89
+ width: inherit;
90
+ height: inherit;
91
+ }
92
+
93
+ svg path {
94
+ transition: fill $button-transition;
95
+ fill: $brand3;
96
+ }
97
+ }
98
+
99
+ &:hover {
100
+ transition: color $button-transition;
101
+ background-color: $brand3;
102
+ color: $app-bg;
103
+
104
+ svg path {
105
+ fill: $app-bg;
106
+ }
107
+ }
108
+ }
109
+
110
+ .#{$n}-modal__enlarge {
111
+ appearance: none;
112
+ display: flex;
113
+ position: absolute;
114
+ right: $spacer;
115
+ bottom: $spacer;
116
+ align-items: center;
117
+ justify-content: center;
118
+ width: $spacer * 1.6;
119
+ height: $spacer * 1.6;
120
+ padding: 0;
121
+ border: 0 none;
122
+ border-radius: $control-small-radius;
123
+ background: rgba($app-bg, 0.4);
124
+ color: transparent;
125
+ font-size: 0;
126
+
127
+ svg path {
128
+ fill: $brand3;
129
+ }
130
+
131
+ &:hover {
132
+ background-color: $brand3;
133
+ }
134
+
135
+ &:hover .cvco-icon svg path {
136
+ fill: $white;
137
+ }
138
+ }
@@ -0,0 +1,20 @@
1
+ // ##### NOTIFICATION #####
2
+ // ========================
3
+
4
+ // BASE
5
+ // ----
6
+ .#{$n}-notification {
7
+ display: block;
8
+ width: 100%;
9
+ margin: 0 0 $spacer * 0.5;
10
+ padding: $spacer * 0.25 $spacer * 0.5;
11
+ border-radius: $borderradius-small;
12
+ background-color: rgba($brand3, 0.1);
13
+ color: $brand2;
14
+ font-size: $fontsize-small;
15
+ font-weight: $fontweight-bold;
16
+
17
+ &:last-child {
18
+ margin: 0;
19
+ }
20
+ }
@@ -0,0 +1,286 @@
1
+ // ##### OPTIONS #####
2
+ // ===================
3
+
4
+ // BASE
5
+ // ----
6
+ .#{$n}-app__options {
7
+ display: flex;
8
+ position: relative;
9
+ align-items: center;
10
+ justify-content: flex-end;
11
+ padding: $spacer * 0.25;
12
+ border-top: $thin-border solid $grey-b;
13
+ }
14
+
15
+ .#{$n}-app__options-item--left {
16
+ margin-right: auto;
17
+ }
18
+
19
+ &.#{$n}-app--collapsed .#{$n}-app__options {
20
+ display: none;
21
+ }
22
+
23
+ .#{$n}-app__options__button {
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: flex-end;
27
+ padding: $spacer * 0.25 $spacer * 0.5;
28
+ border-radius: $buttons-border-radius;
29
+ }
30
+
31
+ &.#{$n}-app--collapsed .#{$n}-app__options-button {
32
+ display: none;
33
+ }
34
+
35
+ .#{$n}-app__options__button .#{$n}-icon {
36
+ flex: 0 0 $spacer * 0.75;
37
+ width: $spacer * 0.75;
38
+ height: $spacer * 0.75;
39
+ margin-right: $spacer * 0.25;
40
+ }
41
+
42
+ .#{$n}-app__options__button .#{$n}-icon svg {
43
+ width: 100%;
44
+ height: 100%;
45
+ }
46
+
47
+ .#{$n}-app__options__button.#{$n}-button--disabled .#{$n}-icon path {
48
+ fill: currentColor;
49
+ }
50
+
51
+ // CONTEXT MENU
52
+ // ------------
53
+ .#{$n}-options__menu {
54
+ display: none;
55
+ position: absolute;
56
+ right: $spacer * 0.5;
57
+ bottom: calc(100% + (#{$spacer} * 0.5));
58
+ max-width: $spacer * 15;
59
+ max-height: $spacer * 20;
60
+ margin: 0;
61
+ padding: $spacer * 0.5;
62
+ transform: scaleY(0) translateY($spacer * 5);
63
+ transform-origin: 100% 100%;
64
+ transition: transform 0.2s ease-in-out, opacity 0.2s ease;
65
+ border: $thin-border solid $grey-b;
66
+ border-radius: $borderradius-small;
67
+ opacity: 0;
68
+ background-color: $white;
69
+ box-shadow: $boxshadow-soft;
70
+ list-style: none;
71
+ }
72
+
73
+ .#{$n}-options__menu.#{$n}-transition--visible {
74
+ display: block;
75
+ }
76
+
77
+ .#{$n}-options__menu.#{$n}-transition--in {
78
+ transform: scaleY(1) translateY(0);
79
+ opacity: 1;
80
+ }
81
+
82
+ .#{$n}-options__menu__item {
83
+ margin-bottom: $spacer * 0.25;
84
+ transition: opacity 0.1s 0.1s ease;
85
+ opacity: 0;
86
+
87
+ &:last-child {
88
+ margin-bottom: 0;
89
+ }
90
+ }
91
+
92
+ .#{$n}-options__menu.#{$n}-transition--in .#{$n}-options__menu__item {
93
+ opacity: 1;
94
+ }
95
+
96
+ .#{$n}-options__menu .#{$n}-button {
97
+ display: flex;
98
+ align-items: center;
99
+ width: 100%;
100
+ min-width: $spacer * 10;
101
+ border-radius: $borderradius-small;
102
+
103
+ &:hover {
104
+ background-color: $brand2;
105
+ color: $white;
106
+ }
107
+ }
108
+
109
+ .#{$n}-options__menu .#{$n}-button.#{$n}-button--disabled {
110
+ &:hover {
111
+ background-color: initial;
112
+ color: $disabled;
113
+ }
114
+ }
115
+
116
+ // OPTIONS DIALOG
117
+ // --------------
118
+ .#{$n}-options {
119
+ display: none;
120
+ position: absolute;
121
+ right: $spacer * 0.5;
122
+ bottom: calc(100% + (#{$spacer} * 0.5));
123
+ flex-direction: column;
124
+ width: calc(100% - #{$spacer});
125
+ max-width: $spacer * 15;
126
+ margin: 0;
127
+ padding: 0;
128
+ transform: scaleY(0) translateY($spacer * 5);
129
+ transform-origin: 100% 100%;
130
+ transition: transform 0.2s ease-in-out, opacity 0.2s ease;
131
+ border: $thin-border solid $grey-b;
132
+ border-radius: $borderradius-small;
133
+ opacity: 0;
134
+ background-color: $white;
135
+ box-shadow: $boxshadow-soft;
136
+ list-style: none;
137
+ }
138
+
139
+ .#{$n}-options--left {
140
+ right: initial;
141
+ left: $spacer * 0.5;
142
+ }
143
+
144
+ .#{$n}-options--right {
145
+ right: $spacer * 0.5;
146
+ }
147
+
148
+ .#{$n}-options__dialog.#{$n}-transition--visible .#{$n}-options {
149
+ display: flex;
150
+ }
151
+
152
+ .#{$n}-options__dialog.#{$n}-transition--in .#{$n}-options {
153
+ transform: scaleY(1) translateY(0);
154
+ opacity: 1;
155
+ }
156
+
157
+ .#{$n}-options__body {
158
+ display: flex;
159
+ flex-direction: column;
160
+ max-height: $spacer * 15;
161
+ transition: opacity 0.1s 0.1s ease;
162
+ opacity: 0;
163
+ }
164
+
165
+ .#{$n}-options__dialog.#{$n}-transition--in .#{$n}-options__body {
166
+ opacity: 1;
167
+ }
168
+
169
+ .#{$n}-options__title {
170
+ display: flex;
171
+ flex: 0 0 auto;
172
+ align-items: center;
173
+ width: calc(100% - #{$badge-touch-size} - (#{$spacer} * 0.5));
174
+ margin: 0;
175
+ padding: $spacer $spacer $spacer * 0.5;
176
+ color: $brand2;
177
+ font-size: $fontsize-default;
178
+ font-weight: $fontweight-bold;
179
+ }
180
+
181
+ .#{$n}-options__close {
182
+ position: absolute;
183
+ top: $spacer * 0.5;
184
+ right: $spacer * 0.5;
185
+ width: $badge-touch-size;
186
+ height: $badge-touch-size;
187
+ font-size: 0;
188
+ }
189
+
190
+ .#{$n}-options__close .#{$n}-icon {
191
+ display: flex;
192
+ align-items: center;
193
+ justify-content: center;
194
+ width: 100%;
195
+ height: 100%;
196
+ }
197
+
198
+ .#{$n}-options__body form {
199
+ display: flex;
200
+ flex: 1 1 auto;
201
+ flex-direction: column;
202
+ width: 100%;
203
+ }
204
+
205
+ .#{$n}-options__wrapper {
206
+ display: flex;
207
+ flex: 1 1 auto;
208
+ flex-wrap: wrap;
209
+ align-items: flex-start;
210
+ width: 100%;
211
+ padding: 0 $spacer;
212
+ overflow: auto;
213
+
214
+ // FF AND IE11 FIX
215
+ &:last-child::after {
216
+ content: '';
217
+ display: block;
218
+ flex: 0 0 100%;
219
+ width: 100%;
220
+ height: $spacer;
221
+ }
222
+ }
223
+
224
+ .#{$n}-options__body div {
225
+ width: 100%;
226
+ }
227
+
228
+ .#{$n}-options__wrapper h3 {
229
+ margin: 0;
230
+ color: $brand2;
231
+ font-size: $fontsize-medium;
232
+ font-weight: $fontweight-bold;
233
+ }
234
+
235
+ .#{$n}-options__description {
236
+ display: block;
237
+ width: 100%;
238
+ margin-bottom: $spacer * 0.5;
239
+ font-size: $fontsize-medium;
240
+ }
241
+
242
+ .#{$n}-transcript__input {
243
+ width: 100%;
244
+ padding: $spacer * 0.5;
245
+ transition: padding $transition;
246
+ border: $thin-border solid $grey-b;
247
+ border-radius: $borderradius-small;
248
+ font-size: $fontsize-small;
249
+
250
+ &:focus {
251
+ border: $thin-border solid $grey-b;
252
+ }
253
+
254
+ @supports (-webkit-overflow-scrolling: touch) {
255
+ font-size: 16px; // KEEP THIS FIXED
256
+ }
257
+
258
+ @include stylePlaceholder() {
259
+ overflow: visible;
260
+ color: $grey-c;
261
+ line-height: $spacer;
262
+ }
263
+ }
264
+
265
+ .#{$n}-options__active-language {
266
+ color: $grey-e;
267
+ font-size: $fontsize-medium;
268
+ }
269
+
270
+ .#{$n}-options__actions {
271
+ display: flex;
272
+ flex: 0 0 auto;
273
+ justify-content: flex-end;
274
+ width: 100%;
275
+ margin-top: $spacer * 0.5;
276
+ padding: 0;
277
+ }
278
+
279
+ .#{$n}-options__actions .#{$n}-button {
280
+ width: 100%;
281
+ margin-right: $spacer * 0.5;
282
+
283
+ &:last-child {
284
+ margin-right: 0;
285
+ }
286
+ }
@@ -0,0 +1,44 @@
1
+ // ##### PROMPT #####
2
+ // ========================
3
+
4
+ // BASE
5
+ // ----
6
+ .#{$n}-prompt {
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}-prompt__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}-prompt__options {
31
+ display: flex;
32
+ flex-wrap: wrap;
33
+ justify-content: center;
34
+ width: 100%;
35
+ margin: 0;
36
+ padding: 0;
37
+ list-style-type: none;
38
+ }
39
+
40
+ .#{$n}-prompt__options .#{$n}-button {
41
+ margin: $spacer * 0.25 $spacer * 0.25 0;
42
+ text-align: center;
43
+ white-space: normal;
44
+ }
@@ -0,0 +1,21 @@
1
+ .#{$n}-skip-link {
2
+ position: absolute;
3
+ z-index: 100;
4
+ top: $spacer * 0.5;
5
+ left: 50%;
6
+ padding: $spacer * 0.5 $spacer;
7
+ transform: translate(-50%, -1 * $spacer * 0.25) scale(0);
8
+ transform-origin: 50% 0%;
9
+ transition: transform $transition, opacity $transition;
10
+ border: 1px solid $white;
11
+ border-radius: $spacer;
12
+ opacity: 0;
13
+ background: $interaction;
14
+ color: $white;
15
+ font-size: $fontsize-small;
16
+
17
+ &:focus {
18
+ transform: translate(-50%, 0%) scale(1);
19
+ opacity: 1;
20
+ }
21
+ }
@@ -0,0 +1,213 @@
1
+ // ##### UPLOAD #####
2
+ // ==================
3
+
4
+ // TOGGLE
5
+ // ------
6
+ .#{$n}-upload-toggle-wrapper {
7
+ width: 0;
8
+ height: 100%;
9
+ overflow: visible;
10
+ transition: width $transition;
11
+ }
12
+
13
+ .#{$n}-upload-toggle-wrapper.#{$n}-transition--in {
14
+ width: calc(#{$badge-touch-size} + (#{$spacer} * 0.5)); // INSTEAD OF MARGIN
15
+ }
16
+
17
+ .#{$n}-upload-toggle {
18
+ display: flex;
19
+ flex: 0 0 $badge-touch-size;
20
+ flex-direction: column;
21
+ align-items: center;
22
+ justify-content: center;
23
+ width: $badge-touch-size;
24
+ height: $badge-touch-size;
25
+ padding: 0;
26
+ transform: translateX(-100%);
27
+ transition: transform $transition, opacity $transition;
28
+ opacity: 0;
29
+ color: transparent;
30
+ font-size: 0;
31
+ line-height: 1;
32
+ text-align: center;
33
+ }
34
+
35
+ .#{$n}-upload-toggle-wrapper.#{$n}-transition--in .#{$n}-upload-toggle {
36
+ transform: translateX(0%);
37
+ opacity: 1;
38
+ }
39
+
40
+ .#{$n}-upload-toggle .#{$n}-icon {
41
+ flex: 0 0 100%;
42
+ width: 100%;
43
+ height: 100%;
44
+ }
45
+
46
+ .#{$n}-upload-toggle .#{$n}-icon svg {
47
+ width: 100%;
48
+ height: 100%;
49
+ }
50
+
51
+ // UPLOAD DIALOG
52
+ // -------------
53
+ .#{$n}-upload {
54
+ width: 100%;
55
+ padding: $spacer * 0.5 $spacer * 0.5 0;
56
+ }
57
+
58
+ .#{$n}-input--file {
59
+ display: block;
60
+ }
61
+
62
+ .#{$n}-upload__container {
63
+ width: 100%;
64
+ margin-bottom: $spacer * 0.5;
65
+ }
66
+
67
+ .#{$n}-upload__visible-label--text {
68
+ display: block;
69
+ width: 100%;
70
+ font-size: $fontsize-default;
71
+ font-weight: $fontweight-bold;
72
+ }
73
+
74
+ .#{$n}-upload__content-hint {
75
+ display: block;
76
+ width: 100%;
77
+ margin-bottom: $spacer * 0.5;
78
+ padding-right: $spacer;
79
+ font-size: $fontsize-small;
80
+ }
81
+
82
+ .#{$n}-file-upload {
83
+ width: 100%;
84
+ max-width: 100%;
85
+ border: 1px solid $interaction;
86
+ border-radius: $borderradius-small;
87
+
88
+ &:hover {
89
+ background-color: rgba($brand3, 0.1);
90
+ }
91
+ }
92
+
93
+ .#{$n}-file-upload.#{$n}-focus-within {
94
+ outline: 1px dotted #212121;
95
+ outline: 5px auto -webkit-focus-ring-color;
96
+ }
97
+
98
+ // Visually hidden
99
+ .#{$n}-upload__input {
100
+ position: absolute;
101
+ width: 1px;
102
+ height: 1px;
103
+ overflow: hidden;
104
+ clip: rect(1px, 1px, 1px, 1px);
105
+ }
106
+
107
+ .#{$n}-upload__label {
108
+ display: flex;
109
+ align-items: center;
110
+ justify-content: flex-start;
111
+ width: 100%;
112
+ padding: $spacer * 0.5;
113
+ text-align: left;
114
+ }
115
+
116
+ .#{$n}-upload__label .#{$n}-icon {
117
+ flex: 0 0 32px;
118
+ width: 32px;
119
+ height: 32px;
120
+ margin-right: $spacer * 0.5;
121
+ }
122
+
123
+ .#{$n}-upload__label--text {
124
+ display: block;
125
+ flex: 1 1 100%;
126
+ max-width: 100%;
127
+ color: $interaction;
128
+ font-size: $fontsize-medium;
129
+ font-weight: $fontweight-bold;
130
+ }
131
+
132
+ .#{$n}-upload__output {
133
+ display: block;
134
+ flex: 1 1 100%;
135
+ max-width: 100%;
136
+ font-size: $fontsize-small;
137
+ word-break: break-all;
138
+ }
139
+
140
+ .#{$n}-upload .#{$n}-button--primary {
141
+ text-align: center;
142
+ }
143
+
144
+ .#{$n}-upload__button-container {
145
+ display: flex;
146
+ flex: 0 0 100%;
147
+ justify-content: flex-end;
148
+ }
149
+
150
+ .#{$n}-upload__cancel {
151
+ margin-right: $spacer * 0.25;
152
+ padding: $spacer * 0.5;
153
+
154
+ &:last-child {
155
+ margin-right: 0;
156
+ }
157
+ }
158
+
159
+ // PROGRESS
160
+ // --------
161
+ .#{$n}-progress__text {
162
+ display: flex;
163
+ align-items: flex-end;
164
+ justify-content: space-between;
165
+ margin-bottom: $spacer * 0.25;
166
+ }
167
+
168
+ .#{$n}-progress__text--file-name {
169
+ max-width: calc(100% - (#{$spacer} * 2));
170
+ padding-right: $spacer;
171
+ overflow: hidden;
172
+ font-size: $fontsize-medium;
173
+ font-weight: $fontweight-bold;
174
+ line-height: 1.25;
175
+ text-overflow: ellipsis;
176
+ white-space: nowrap;
177
+ }
178
+
179
+ .#{$n}-progress__text--percentage {
180
+ color: $grey-d;
181
+ font-size: $fontsize-medium;
182
+ line-height: 1;
183
+ }
184
+
185
+ .#{$n}-progress .#{$n}-error {
186
+ margin-top: $spacer * 0.5;
187
+
188
+ &:empty {
189
+ display: none;
190
+ }
191
+ }
192
+
193
+ .#{$n}-progress__bar {
194
+ appearance: none;
195
+ width: 100%;
196
+ border: 1px solid $brand1;
197
+ border-radius: $borderradius-small;
198
+ background: $white;
199
+
200
+ &::-webkit-progress-bar {
201
+ border-radius: $borderradius-small;
202
+ background: $white;
203
+ box-shadow: inset 0 $spacer * 0.125 $spacer * 0.125 0 rgba(0, 0, 0, 0.22);
204
+ }
205
+
206
+ &::-webkit-progress-value {
207
+ background-color: $interaction;
208
+ }
209
+
210
+ &::-moz-progress-bar {
211
+ background-color: $interaction;
212
+ }
213
+ }