stream-chat-angular 6.2.0 → 6.3.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 (106) hide show
  1. package/assets/i18n/en.d.ts +42 -0
  2. package/assets/version.d.ts +1 -1
  3. package/esm2020/assets/i18n/en.mjs +43 -1
  4. package/esm2020/assets/version.mjs +2 -2
  5. package/esm2020/lib/channel-list/channel-list.component.mjs +3 -3
  6. package/esm2020/lib/channel-preview/channel-preview.component.mjs +4 -1
  7. package/esm2020/lib/channel.service.mjs +6 -3
  8. package/esm2020/lib/custom-templates.service.mjs +9 -1
  9. package/esm2020/lib/icon/icon.component.mjs +1 -1
  10. package/esm2020/lib/message/message.component.mjs +21 -6
  11. package/esm2020/lib/message-actions.service.mjs +5 -1
  12. package/esm2020/lib/message-input/message-input.component.mjs +30 -5
  13. package/esm2020/lib/message-preview.mjs +3 -2
  14. package/esm2020/lib/modal/modal.component.mjs +3 -3
  15. package/esm2020/lib/modal/stream-modal.module.mjs +19 -0
  16. package/esm2020/lib/notification-list/stream-notification.module.mjs +20 -0
  17. package/esm2020/lib/paginated-list/stream-paginated-list.module.mjs +20 -0
  18. package/esm2020/lib/polls/base-poll.component.mjs +87 -0
  19. package/esm2020/lib/polls/poll/poll.component.mjs +34 -0
  20. package/esm2020/lib/polls/poll-actions/add-option/add-option.component.mjs +67 -0
  21. package/esm2020/lib/polls/poll-actions/poll-actions.component.mjs +137 -0
  22. package/esm2020/lib/polls/poll-actions/poll-answers-list/poll-answers-list.component.mjs +82 -0
  23. package/esm2020/lib/polls/poll-actions/poll-results/poll-results-list/poll-results-list.component.mjs +63 -0
  24. package/esm2020/lib/polls/poll-actions/poll-results/poll-vote/poll-vote.component.mjs +33 -0
  25. package/esm2020/lib/polls/poll-actions/poll-results/poll-vote-results-list/poll-vote-results-list.component.mjs +82 -0
  26. package/esm2020/lib/polls/poll-actions/upsert-answer/upsert-answer.component.mjs +60 -0
  27. package/esm2020/lib/polls/poll-composer/poll-composer.component.mjs +134 -0
  28. package/esm2020/lib/polls/poll-composer/validators.mjs +18 -0
  29. package/esm2020/lib/polls/poll-header/poll-header.component.mjs +80 -0
  30. package/esm2020/lib/polls/poll-option-selector/poll-option-selector.component.mjs +137 -0
  31. package/esm2020/lib/polls/poll-options-list/poll-options-list.component.mjs +39 -0
  32. package/esm2020/lib/polls/poll-preview/poll-preview.component.mjs +31 -0
  33. package/esm2020/lib/polls/stream-polls.module.mjs +108 -0
  34. package/esm2020/lib/polls/unique.validator.mjs +13 -0
  35. package/esm2020/lib/stream-chat.module.mjs +26 -19
  36. package/esm2020/lib/types.mjs +1 -1
  37. package/esm2020/public-api.mjs +18 -1
  38. package/fesm2015/stream-chat-angular.mjs +1333 -61
  39. package/fesm2015/stream-chat-angular.mjs.map +1 -1
  40. package/fesm2020/stream-chat-angular.mjs +1291 -59
  41. package/fesm2020/stream-chat-angular.mjs.map +1 -1
  42. package/lib/channel.service.d.ts +2 -1
  43. package/lib/custom-templates.service.d.ts +14 -0
  44. package/lib/icon/icon.component.d.ts +1 -1
  45. package/lib/message/message.component.d.ts +1 -1
  46. package/lib/message-actions.service.d.ts +4 -0
  47. package/lib/message-input/message-input.component.d.ts +11 -1
  48. package/lib/message-preview.d.ts +1 -1
  49. package/lib/modal/stream-modal.module.d.ts +9 -0
  50. package/lib/notification-list/stream-notification.module.d.ts +10 -0
  51. package/lib/paginated-list/stream-paginated-list.module.d.ts +10 -0
  52. package/lib/polls/base-poll.component.d.ts +43 -0
  53. package/lib/polls/poll/poll.component.d.ts +12 -0
  54. package/lib/polls/poll-actions/add-option/add-option.component.d.ts +22 -0
  55. package/lib/polls/poll-actions/poll-actions.component.d.ts +50 -0
  56. package/lib/polls/poll-actions/poll-answers-list/poll-answers-list.component.d.ts +25 -0
  57. package/lib/polls/poll-actions/poll-results/poll-results-list/poll-results-list.component.d.ts +22 -0
  58. package/lib/polls/poll-actions/poll-results/poll-vote/poll-vote.component.d.ts +20 -0
  59. package/lib/polls/poll-actions/poll-results/poll-vote-results-list/poll-vote-results-list.component.d.ts +24 -0
  60. package/lib/polls/poll-actions/upsert-answer/upsert-answer.component.d.ts +27 -0
  61. package/lib/polls/poll-composer/poll-composer.component.d.ts +43 -0
  62. package/lib/polls/poll-composer/validators.d.ts +3 -0
  63. package/lib/polls/poll-header/poll-header.component.d.ts +19 -0
  64. package/lib/polls/poll-option-selector/poll-option-selector.component.d.ts +27 -0
  65. package/lib/polls/poll-options-list/poll-options-list.component.d.ts +17 -0
  66. package/lib/polls/poll-preview/poll-preview.component.d.ts +13 -0
  67. package/lib/polls/stream-polls.module.d.ts +26 -0
  68. package/lib/polls/unique.validator.d.ts +2 -0
  69. package/lib/stream-chat.module.d.ts +20 -19
  70. package/lib/types.d.ts +2 -1
  71. package/package.json +6 -2
  72. package/public-api.d.ts +17 -0
  73. package/src/assets/i18n/en.ts +46 -0
  74. package/src/assets/styles/css/index.css +1 -1
  75. package/src/assets/styles/css/index.layout.css +1 -1
  76. package/src/assets/styles/scss/AttachmentList/AttachmentList-layout.scss +50 -0
  77. package/src/assets/styles/scss/AttachmentList/AttachmentList-theme.scss +56 -0
  78. package/src/assets/styles/scss/AttachmentPreviewList/AttachmentPreviewList-layout.scss +4 -1
  79. package/src/assets/styles/scss/AttachmentPreviewList/AttachmentPreviewList-theme.scss +11 -0
  80. package/src/assets/styles/scss/Autocomplete/Autocomplete-layout.scss +14 -0
  81. package/src/assets/styles/scss/Autocomplete/Autocomplete-theme.scss +11 -0
  82. package/src/assets/styles/scss/Dialog/Dialog-layout.scss +13 -5
  83. package/src/assets/styles/scss/DropzoneContainer/DropzoneContainer-layout.scss +14 -0
  84. package/src/assets/styles/scss/DropzoneContainer/DropzoneContainer-theme.scss +17 -0
  85. package/src/assets/styles/scss/Form/Form-layout.scss +40 -0
  86. package/src/assets/styles/scss/Form/Form-theme.scss +75 -10
  87. package/src/assets/styles/scss/Icon/Icon-layout.scss +6 -0
  88. package/src/assets/styles/scss/Icon/Icon-theme.scss +4 -0
  89. package/src/assets/styles/scss/LinkPreview/LinkPreview-layout.scss +18 -0
  90. package/src/assets/styles/scss/LinkPreview/LinkPreview-theme.scss +15 -0
  91. package/src/assets/styles/scss/Location/Location-layout.scss +52 -0
  92. package/src/assets/styles/scss/Location/Location-theme.scss +32 -0
  93. package/src/assets/styles/scss/Message/Message-layout.scss +37 -2
  94. package/src/assets/styles/scss/Message/Message-theme.scss +40 -1
  95. package/src/assets/styles/scss/MessageActionsBox/MessageActionsBox-theme.scss +8 -0
  96. package/src/assets/styles/scss/MessageInput/MessageInput-layout.scss +32 -13
  97. package/src/assets/styles/scss/MessageInput/MessageInput-theme.scss +28 -20
  98. package/src/assets/styles/scss/Modal/Modal-layout.scss +2 -0
  99. package/src/assets/styles/scss/Modal/Modal-theme.scss +21 -6
  100. package/src/assets/styles/scss/Poll/Poll-layout.scss +45 -44
  101. package/src/assets/styles/scss/Poll/Poll-theme.scss +8 -36
  102. package/src/assets/styles/scss/_icons.scss +1 -0
  103. package/src/assets/styles/scss/index.layout.scss +3 -1
  104. package/src/assets/styles/scss/index.scss +2 -0
  105. package/src/assets/version.ts +1 -1
  106. /package/src/assets/styles/scss/DragAndDropContainer/{DragAmdDropContainer-layout.scss → DragAndDropContainer-layout.scss} +0 -0
@@ -325,6 +325,56 @@
325
325
  }
326
326
  }
327
327
 
328
+ .str-chat__message-attachment-geolocation {
329
+ margin: var(--str-chat__attachment-margin);
330
+ min-width: 200px;
331
+
332
+ .str-chat__message-attachment-geolocation__placeholder {
333
+ position: relative;
334
+ display: flex;
335
+ justify-content: center;
336
+ align-items: center;
337
+ padding: var(--str-chat__spacing-2);
338
+
339
+ .str-chat__message-geolocation__icon {
340
+ height: calc(var(--str-chat__spacing-px) *150);
341
+ }
342
+
343
+ .str-chat__message-attachment-geolocation__placeholder-link {
344
+ position: absolute;
345
+ inset-inline-end: 0.75rem;
346
+ inset-block: 0.75rem;
347
+ height: calc(var(--str-chat__spacing-px) * 20);
348
+ width: calc(var(--str-chat__spacing-px) * 20);
349
+ }
350
+ }
351
+
352
+ .str-chat__message-attachment-geolocation__status {
353
+ display: flex;
354
+ justify-content: center;
355
+ padding: 0.5rem 2rem;
356
+
357
+ .str-chat__message-attachment-geolocation__status--active {
358
+ display: flex;
359
+ flex-direction: column;
360
+ align-items: center;
361
+ gap: 0.375rem;
362
+
363
+ .str-chat__message-attachment-geolocation__stop-sharing-button {
364
+ color: var(--str-chat__danger-color);
365
+ }
366
+
367
+ .str-chat__message-attachment-geolocation__status--active-status {
368
+ color: var(--str-chat__info-color);
369
+ }
370
+
371
+ .str-chat__message-attachment-geolocation__status--active-until {
372
+ text-transform: lowercase;
373
+ }
374
+ }
375
+ }
376
+ }
377
+
328
378
  .str-chat__message-attachment-audio-widget {
329
379
  .str-chat__message-attachment-audio-widget--play-controls {
330
380
  @include utils.flex-row-center();
@@ -141,6 +141,35 @@
141
141
  /* Box shadow applied to file attachments */
142
142
  --str-chat__file-attachment-box-shadow: none;
143
143
 
144
+ /* The border radius used for the borders of file attachments */
145
+ --str-chat__geolocation-attachment-border-radius: calc(
146
+ var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
147
+ );
148
+
149
+ /* The text/icon color of geolocation attachments */
150
+ --str-chat__geolocation-attachment-color: var(--str-chat__text-color);
151
+
152
+ /* The text/icon color of geolocation attachments for low emphasis texts (for example file size) */
153
+ --str-chat__geolocation-attachment-secondary-color: var(--str-chat__text-low-emphasis-color);
154
+
155
+ /* The background color of geolocation attachments */
156
+ --str-chat__geolocation-attachment-background-color: var(--str-chat__secondary-background-color);
157
+
158
+ /* Top border of geolocation attachments */
159
+ --str-chat__geolocation-attachment-border-block-start: none;
160
+
161
+ /* Bottom border of geolocation attachments */
162
+ --str-chat__geolocation-attachment-border-block-end: none;
163
+
164
+ /* Left (right in RTL layout) border of geolocation attachments */
165
+ --str-chat__geolocation-attachment-border-inline-start: none;
166
+
167
+ /* Right (left in RTL layout) border of geolocation attachments */
168
+ --str-chat__geolocation-attachment-border-inline-end: none;
169
+
170
+ /* Box shadow applied to geolocation attachments */
171
+ --str-chat__geolocation-attachment-box-shadow: none;
172
+
144
173
  /* Border radius applied audio widget */
145
174
  --str-chat__audio-attachment-widget-border-radius: calc(
146
175
  var(--str-chat__message-bubble-border-radius) - var(--str-chat__attachment-margin)
@@ -325,6 +354,33 @@
325
354
  @include utils.component-layer-overrides('file-attachment');
326
355
  }
327
356
 
357
+ .str-chat__message-attachment-geolocation {
358
+ @include utils.component-layer-overrides('geolocation-attachment');
359
+ overflow: hidden;
360
+
361
+ .str-chat__message-attachment-geolocation__placeholder {
362
+ .str-chat__message-attachment-geolocation__placeholder-link {
363
+ color: currentColor;
364
+ }
365
+ }
366
+
367
+ .str-chat__message-attachment-geolocation__status {
368
+ background-color: var(--str-chat__tertiary-surface-color);
369
+
370
+ .str-chat__message-attachment-geolocation__status--active {
371
+ .str-chat__message-attachment-geolocation__stop-sharing-button {
372
+ @include utils.button-reset;
373
+ font: var(--str-chat__subtitle-medium-text);
374
+ cursor: pointer;
375
+ }
376
+
377
+ .str-chat__message-attachment-geolocation__status--active-until {
378
+ font: var(--str-chat__caption-text);
379
+ }
380
+ }
381
+ }
382
+ }
383
+
328
384
  .str-chat__message-attachment-unsupported {
329
385
  .str-chat__message-attachment-unsupported__title {
330
386
  font: var(--str-chat__subtitle-medium-text);
@@ -47,6 +47,7 @@
47
47
  }
48
48
  }
49
49
 
50
+ .str-chat__location-preview,
50
51
  .str-chat__attachment-preview-unsupported,
51
52
  .str-chat__attachment-preview-voice-recording,
52
53
  .str-chat__attachment-preview-file {
@@ -70,12 +71,14 @@
70
71
  justify-content: center;
71
72
 
72
73
  .str-chat__attachment-preview-title,
74
+ .str-chat__attachment-preview-subtitle,
73
75
  .str-chat__attachment-preview-file-name {
74
76
  @include utils.ellipsis-text;
75
77
  max-width: 100%;
76
78
  }
77
79
  }
78
80
 
81
+ .str-chat__location-preview-image,
79
82
  .str-chat__attachment-preview-file-icon {
80
83
  --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 37);
81
84
  --str-chat-icon-width: auto;
@@ -114,7 +117,7 @@
114
117
  top: calc(var(--str-chat__spacing-px) * 2);
115
118
  inset-inline-end: calc(var(--str-chat__spacing-px) * 2);
116
119
  cursor: pointer;
117
- z-index: 0;
120
+ z-index: 1;
118
121
 
119
122
  svg {
120
123
  width: calc(var(--str-chat__spacing-px) * 24);
@@ -107,6 +107,7 @@
107
107
  }
108
108
  }
109
109
 
110
+ .str-chat__location-preview,
110
111
  .str-chat__attachment-preview-unsupported,
111
112
  .str-chat__attachment-preview-voice-recording,
112
113
  .str-chat__attachment-preview-file {
@@ -117,6 +118,10 @@
117
118
  font: var(--str-chat__subtitle-medium-text);
118
119
  }
119
120
 
121
+ .str-chat__attachment-preview-subtitle {
122
+ font: var(--str-chat__caption-text);
123
+ }
124
+
120
125
  .str-chat__attachment-preview-file-download {
121
126
  --str-chat-icon-color: var(--str-chat__attachment-preview-download-icon-color);
122
127
  text-decoration: none;
@@ -142,6 +147,12 @@
142
147
  }
143
148
  }
144
149
 
150
+ .str-chat__location-preview {
151
+ .str-chat__location-preview-image {
152
+ color: var(--str-chat__active-primary-color);
153
+ }
154
+ }
155
+
145
156
  .str-chat__attachment-preview-delete {
146
157
  --str-chat-icon-color: var(--str-chat__attachment-preview-close-icon-color);
147
158
 
@@ -38,6 +38,16 @@
38
38
  padding: unset;
39
39
  margin: unset;
40
40
  }
41
+
42
+ .str-chat__suggestion-list--react {
43
+ overflow-y: unset;
44
+
45
+ .str-chat__suggestion-list-item {
46
+ > button {
47
+ width: 100%;
48
+ }
49
+ }
50
+ }
41
51
  }
42
52
 
43
53
  .str-chat__slash-command {
@@ -58,6 +68,8 @@
58
68
  .str-chat__user-item--name {
59
69
  @include utils.ellipsis-text;
60
70
  @include utils.prevent-glitch-text-overflow;
71
+ display: flex;
72
+ align-items: center;
61
73
  width: 100%;
62
74
  }
63
75
  }
@@ -69,6 +81,8 @@
69
81
 
70
82
  .str-chat__emoji-item--name {
71
83
  @include utils.ellipsis-text;
84
+ display: flex;
85
+ align-items: center;
72
86
  width: 100%;
73
87
  }
74
88
  }
@@ -156,6 +156,8 @@
156
156
 
157
157
  .str-chat__slash-command {
158
158
  @include utils.component-layer-overrides('slash-command');
159
+ text-align: left;
160
+ font: var(--str-chat__subtitle-text);
159
161
 
160
162
  .str-chat__slash-command-header {
161
163
  .str-chat__slash-command-name {
@@ -206,4 +208,13 @@
206
208
  background-color: var(--str-chat__suggestion-list-item--selected-background-color);
207
209
  }
208
210
  }
211
+
212
+ .str-chat__suggestion-list--react {
213
+ .str-chat__suggestion-list-item {
214
+ > button {
215
+ @include utils.button-reset;
216
+ text-decoration: none;
217
+ }
218
+ }
219
+ }
209
220
  }
@@ -2,7 +2,6 @@
2
2
 
3
3
  .str-chat__dialog-overlay {
4
4
  inset: 0;
5
- overflow: hidden;
6
5
  position: absolute;
7
6
  height: var(--str-chat__dialog-overlay-height);
8
7
  width: 100%;
@@ -19,14 +18,13 @@
19
18
  .str-chat__dialog__title {
20
19
  margin-bottom: 1rem;
21
20
  }
22
-
23
21
  }
24
22
 
25
23
  .str-chat__dialog__controls {
26
24
  display: flex;
27
25
  justify-content: flex-end;
28
26
  gap: 1.25rem;
29
- padding: 1.25rem;
27
+ padding: 2.25rem 1.25rem;
30
28
 
31
29
  .str-chat__dialog__controls-button {
32
30
  @include utils.button-reset;
@@ -34,8 +32,18 @@
34
32
  }
35
33
  }
36
34
 
35
+ .str-chat-angular__dialog-body {
36
+ &.str-chat__dialog__body {
37
+ padding: 0;
38
+ }
39
+
40
+ .str-chat__dialog__controls {
41
+ padding-bottom: 0;
42
+ }
43
+ }
44
+
37
45
  .str-chat__prompt-dialog {
38
- input[type=text] {
46
+ input[type='text'] {
39
47
  width: 100%;
40
48
  padding: 0.625rem 1rem;
41
49
  }
@@ -59,4 +67,4 @@
59
67
  padding-inline: 0.675rem;
60
68
  }
61
69
  }
62
- }
70
+ }
@@ -0,0 +1,14 @@
1
+ @use '../utils';
2
+
3
+ .str-chat__dropzone-container {
4
+ @include utils.flex-row-center;
5
+
6
+ position: absolute;
7
+ height: 100%;
8
+ width: 100%;
9
+ z-index: 5;
10
+
11
+ p {
12
+ margin: unset;
13
+ }
14
+ }
@@ -0,0 +1,17 @@
1
+ .str-chat {
2
+ /* The text/icon color of the dropzone container */
3
+ --str-chat__dropzone-container-color: var(--str-chat__on-primary-color);
4
+
5
+ /* The background color of the dropzone container */
6
+ --str-chat__dropzone-container-background-color: var(--str-chat__primary-overlay-color);
7
+
8
+ /* The backdrop filter applied to the dropzone container */
9
+ --str-chat__dropzone-container-backdrop-filter: blur(3px);
10
+ }
11
+
12
+ .str-chat__dropzone-container {
13
+ background-color: var(--str-chat__dropzone-container-background-color);
14
+ color: var(--str-chat__dropzone-container-color);
15
+ backdrop-filter: var(--str-chat__dropzone-container-backdrop-filter);
16
+ font: var(--str-chat__subtitle-text);
17
+ }
@@ -6,4 +6,44 @@
6
6
  .str-chat__form-field-error {
7
7
  margin-left: 0.5rem;
8
8
  }
9
+ }
10
+
11
+ .str-chat__form__switch-field {
12
+ width: 100%;
13
+ padding: 1rem;
14
+
15
+ input[type='checkbox'] {
16
+ display: none;
17
+ }
18
+
19
+ label {
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: space-between;
23
+ width: 100%;
24
+ }
25
+
26
+ .str-chat__form__switch-field__switch {
27
+ display: flex;
28
+ align-items: center;
29
+ width: calc(var(--str-chat__spacing-px) * 52);
30
+ height: calc(var(--str-chat__spacing-px) * 32);
31
+ padding: 0.25rem;
32
+
33
+ .str-chat__form__switch-field__switch-handle {
34
+ height: 1.5rem;
35
+ width: 1.5rem;
36
+ }
37
+
38
+ &.str-chat__form__switch-field__switch--on {
39
+ justify-content: flex-end;
40
+ }
41
+ }
42
+ }
43
+
44
+ .str-chat__dropdown {
45
+ .str-chat__dropdown__open-button {
46
+ width: 100%;
47
+ text-align: start;
48
+ }
9
49
  }
@@ -1,17 +1,82 @@
1
+ @use '../utils';
2
+
3
+ .str-chat {
4
+ // hide spin buttons form input of type number
5
+ /* Chrome, Safari, Edge, Opera */
6
+
7
+ input::-webkit-outer-spin-button,
8
+ input::-webkit-inner-spin-button {
9
+ -webkit-appearance: none;
10
+ margin: 0;
11
+ }
12
+
13
+ /* Firefox */
14
+ input[type='number'] {
15
+ -moz-appearance: textfield;
16
+ }
17
+ }
18
+
1
19
  .str-chat__form-field-error {
2
20
  font-size: 0.75rem;
3
- color: var(--str-chat__danger-color)
21
+ color: var(--str-chat__danger-color);
22
+ }
23
+
24
+ // fixme: duplicate mixin in poll theme
25
+ @mixin field-background {
26
+ background-color: var(--str-chat__tertiary-surface-color);
27
+ border-radius: 0.75rem;
28
+ }
29
+
30
+
31
+
32
+ .str-chat__form__switch-field {
33
+ @include field-background;
34
+
35
+ &, label {
36
+ cursor: pointer;
37
+ }
38
+
39
+ label {
40
+ display: flex;
41
+ gap: 0.5rem;
42
+ }
43
+
44
+ .str-chat__form__switch-field__switch {
45
+ cursor: pointer;
46
+ background-color: var(--str-chat__text-low-emphasis-color);
47
+ border-radius: 100px;
48
+
49
+ .str-chat__form__switch-field__switch-handle {
50
+ border-radius: var(--str-chat__border-radius-circle);
51
+ background-color: var(--str-chat__disabled-color);
52
+ }
53
+
54
+ &.str-chat__form__switch-field__switch--on {
55
+ background-color: var(--str-chat__green600);
56
+
57
+ .str-chat__form__switch-field__switch-handle {
58
+ background-color: var(--str-chat__background-color);
59
+ border-radius: var(--str-chat__border-radius-circle);
60
+ }
61
+ }
62
+ }
4
63
  }
5
64
 
6
- // hide spin buttons form input of type number
7
- /* Chrome, Safari, Edge, Opera */
8
- input::-webkit-outer-spin-button,
9
- input::-webkit-inner-spin-button {
10
- -webkit-appearance: none;
11
- margin: 0;
65
+ .str-chat__form__switch-field--disabled {
66
+ .str-chat__form__switch-field--disabled,
67
+ .str-chat__form__switch-field--disabled .str-chat__form__switch-field__switch,
68
+ label {
69
+ cursor: not-allowed;
70
+ }
12
71
  }
13
72
 
14
- /* Firefox */
15
- input[type=number] {
16
- -moz-appearance: textfield;
73
+ .str-chat__dropdown {
74
+ .str-chat__dropdown__open-button {
75
+ @include utils.button-reset;
76
+ cursor: pointer;
77
+ }
78
+
79
+ .str-chat__dropdown__items {
80
+ background-color: var(--str-chat__background-color);
81
+ }
17
82
  }
@@ -30,6 +30,12 @@
30
30
  content: url('data:image/svg+xml;base64,PHN2ZwogIGNsYXNzPSJyZnUtZmlsZS1hdWRpbyIKICBmaWxsPSJub25lIgogIHZpZXdCb3g9IjAgMCAzNCA0MCIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgaGVpZ2h0PSIyMCIKICB3aWR0aD0iMjAiCj4KICA8cGF0aAogICAgY2xpcC1ydWxlPSJldmVub2RkIgogICAgZD0iTTE3LjcxNjggMzMuMTcyQzE4LjIzNDggMzMuMTcyIDE4LjQyMzggMzMuNjU1IDE4LjQyMzggMzQuMThDMTguNDIzOCAzNC42NDIgMTguMjk3OCAzNS4xOTUgMTcuNzE2OCAzNS4xOTVDMTcuMTcwOCAzNS4xOTUgMTYuOTg4OCAzNC42NDIgMTYuOTg4OCAzNC4xNDVDMTYuOTg4OCAzMy42ODMgMTcuMTcwOCAzMy4xNzIgMTcuNzE2OCAzMy4xNzJaTTE5LjU3MTggMzEuMDAySDE4LjM4MThWMzIuNzU4OUgxOC4zNjc4QzE4LjEyMjggMzIuNDMgMTcuNzc5OCAzMi4yNjIgMTcuMzMxOCAzMi4yNjJDMTYuMzAyOCAzMi4yNjIgMTUuNzk4OCAzMy4xNTggMTUuNzk4OCAzNC4xMDNDMTUuNzk4OCAzNS4xMjUgMTYuMjgxOCAzNi4xMDQ5IDE3LjQyMjggMzYuMTA0OUMxNy44NDI4IDM2LjEwNDkgMTguMTkyOCAzNS45MjMgMTguNDIzOCAzNS41OEgxOC40Mzc4VjM2SDE5LjU3MThWMzEuMDAyWk0xMi43MDk1IDM0LjE4NzJDMTIuNzA5NSAzMy43MjUyIDEyLjg3NzUgMzMuMTcyMiAxMy40MzA1IDMzLjE3MjJDMTMuOTgzNSAzMy4xNzIyIDE0LjE1ODUgMzMuNzI1MiAxNC4xNTg1IDM0LjE4NzJDMTQuMTU4NSAzNC42NDkyIDEzLjk4MzUgMzUuMTk1MiAxMy40MzA1IDM1LjE5NTJDMTIuODc3NSAzNS4xOTUyIDEyLjcwOTUgMzQuNjQ5MiAxMi43MDk1IDM0LjE4NzJaTTExLjUxOTUgMzQuMTg3MkMxMS41MTk1IDM1LjI3OTIgMTIuMzAzNSAzNi4xMDUyIDEzLjQzMDUgMzYuMTA1MkMxNC41NTc1IDM2LjEwNTIgMTUuMzQ4NSAzNS4yNzkyIDE1LjM0ODUgMzQuMTg3MkMxNS4zNDg1IDMzLjA5NTIgMTQuNTU3NSAzMi4yNjIyIDEzLjQzMDUgMzIuMjYyMkMxMi4zMDM1IDMyLjI2MjIgMTEuNTE5NSAzMy4wOTUyIDExLjUxOTUgMzQuMTg3MlpNMjEuODM5IDMyLjM2NzFIMjIuNTc0VjMzLjEzNzFIMjEuODM5VjM0Ljc4OTFDMjEuODM5IDM1LjA3NjEgMjIuMDA3IDM1LjEzOTEgMjIuMjY2IDM1LjEzOTFDMjIuMzE0MiAzNS4xMzkxIDIyLjM2NCAzNS4xMzU3IDIyLjQxNDcgMzUuMTMyM0MyMi40NjcyIDM1LjEyODcgMjIuNTIwNiAzNS4xMjUxIDIyLjU3NCAzNS4xMjUxVjM2LjAwMDFDMjIuNDgxIDM2LjAwMzEgMjIuMzg4IDM2LjAwOTkgMjIuMjk1IDM2LjAxNjhDMjIuMTcxIDM2LjAyNTkgMjIuMDQ3IDM2LjAzNTEgMjEuOTIzIDM2LjAzNTFDMjAuOTA4IDM2LjAzNTEgMjAuNjQ5IDM1Ljc0MTEgMjAuNjQ5IDM0Ljc1NDFWMzMuMTM3MUgyMC4wNDdWMzIuMzY3MUgyMC42NDlWMzEuMjY4MUgyMS44MzlWMzIuMzY3MVoiCiAgICBmaWxsPSJ3aGl0ZSIKICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICA+PC9wYXRoPgogIDxwYXRoCiAgICBkPSJNMCAyOEgzNFYzN0MzNCAzOC42NTY5IDMyLjY1NjkgNDAgMzEgNDBIM0MxLjM0MzE1IDQwIDAgMzguNjU2OSAwIDM3VjI4WiIKICAgIGZpbGw9IiMyNzI3QjAiCiAgPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAzQzAgMS4zNDMxNSAxLjM0MzE1IDAgMyAwSDIzTDM0IDExVjI4SDBWM1oiIGZpbGw9IiNGNUY1RjUiPjwvcGF0aD4KICA8cGF0aAogICAgZD0iTTM0IDExTDI2IDExQzI0LjM0MzEgMTEgMjMgOS42NTY4NSAyMyA4VjBMMzQgMTFaIgogICAgZmlsbD0iI0RCREJEQiIKICA+PC9wYXRoPgogIDxwYXRoCiAgICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICBkPSJNOC44NzkxMiAyMS45NDFIMTIuMjk4TDE2Ljk1MjEgMjQuNzQ5M0MxNy4wMzA3IDI0LjgxMzggMTcuMTI5MyAyNC44NDkgMTcuMjMxMSAyNC44NDlDMTcuNDczOCAyNC44NDg4IDE3LjY3MDUgMjQuNjUxOSAxNy42NzAzIDI0LjQwOTJWMTIuNDM5OUMxNy42NzA0IDEyLjMzODEgMTcuNjM1MiAxMi4yMzk2IDE3LjU3MDcgMTIuMTYwOUMxNy40MTY4IDExLjk3MzIgMTcuMTM5OCAxMS45NDU3IDE2Ljk1MjEgMTIuMDk5NkwxMi4yOTggMTQuOTA4SDguODc5MTJDOC4zOTM2IDE0LjkwOCA4IDE1LjMwMTYgOCAxNS43ODcxVjIxLjA2MTlDOCAyMS41NDc0IDguMzkzNiAyMS45NDEgOC44NzkxMiAyMS45NDFaTTEyLjkyNTggMTYuNjY2NEwxNS45MTIyIDE1LjIyMjRWMjEuNjI2OEwxMi45MjU4IDIwLjE4MjlIOS43NTgzVjE2LjY2NjRIMTIuOTI1OFpNMTkuODUxMSAxNi4zNTE3QzE5LjQ3NCAxNi40MDkyIDE5LjIzOTcgMTYuNjYzNyAxOS4zMjgzIDE2LjkxOTFMMTkuMzI2MiAxNi45MkMxOS41Mjk1IDE3LjQ5OTUgMTkuNjMwNSAxOC4wOTggMTkuNjI4NCAxOC42OTUzQzE5LjYzMDUgMTkuMjk3NSAxOS41MjM3IDE5LjkwMTQgMTkuMzE5NiAyMC40OTA5QzE5LjIyOSAyMC43NDYyIDE5LjQ2ODIgMjAuOTk5NiAxOS44NDc0IDIxLjA2QzE5LjkwMDggMjEuMDY4MyAxOS45NTQyIDIxLjA3MiAyMC4wMDc2IDIxLjA3MkMyMC4zMjU5IDIxLjA3MiAyMC42MTU2IDIwLjkyMzQgMjAuNjkyMiAyMC43MDU3QzIwLjkxOTQgMjAuMDQ1MSAyMS4wMzM3IDE5LjM3IDIxLjAzNzQgMTguNjk1M0MyMS4wMzQ5IDE4LjAyNTEgMjAuOTIxMSAxNy4zNTc1IDIwLjY5NTUgMTYuNzAzNUMyMC42MDUzIDE2LjQ0NzcgMjAuMjI5IDE2LjI5MDggMTkuODUxMSAxNi4zNTE3Wk0yMi4xNjA1IDE0LjYwMjhDMjIuNTI1MiAxNC41MTYzIDIyLjkyNTkgMTQuNjQ1NCAyMy4wNTUgMTQuODkzOEMyMy42ODkxIDE2LjExNTcgMjQgMTcuNDA0MiAyNCAxOC42OTIzQzI0LjAwMDQgMTkuOTg5NSAyMy42Nzk2IDIxLjI4MzkgMjMuMDUyMSAyMi41MTUzQzIyLjk1MDMgMjIuNzEyMyAyMi42NzYzIDIyLjgzNDQgMjIuMzgyOCAyMi44MzQ0QzIyLjMwNzEgMjIuODM0NCAyMi4yMzAxIDIyLjgyNjEgMjIuMTU0MyAyMi44MDkyQzIxLjc4NjMgMjIuNzI1MSAyMS41OTE0IDIyLjQ1MzYgMjEuNzE4NSAyMi4yMDc3QzIyLjI5ODggMjEuMDc2MSAyMi41OTIyIDE5Ljg4MzYgMjIuNTkzMSAxOC42OTE5QzIyLjU5MzEgMTcuNTA1NiAyMi4zMDU0IDE2LjMyMjIgMjEuNzI3NiAxNS4yMDI1QzIxLjYwMDEgMTQuOTU2MyAyMS43OTUgMTQuNjg2IDIyLjE2MDUgMTQuNjAyOFoiCiAgICBmaWxsPSIjMjcyN0IwIgogICAgZmlsbC1ydWxlPSJldmVub2RkIgogID48L3BhdGg+Cjwvc3ZnPg==');
31
31
  }
32
32
 
33
+ .str-chat__icon--poll {
34
+ --str-chat-icon-width: var(--str-chat-icon-height);
35
+ -webkit-mask: var(--str-chat__poll-icon) no-repeat center / contain;
36
+ mask: var(--str-chat__poll-icon) no-repeat center / contain;
37
+ }
38
+
33
39
  .str-chat__icon--action::before {
34
40
  content: '\e800';
35
41
  } /* '' */
@@ -11,3 +11,7 @@
11
11
  .str-chat__icon--error {
12
12
  --str-chat-icon-color: var(--str-chat__danger-color);
13
13
  }
14
+
15
+ .str-chat__icon--poll {
16
+ background-color: var(--str-chat-icon-color);
17
+ }
@@ -46,4 +46,22 @@
46
46
  @include utils.button-reset;
47
47
  cursor: pointer;
48
48
  }
49
+ }
50
+
51
+ .str-chat__link-preview-card--loading {
52
+ .str-chat__link-preview-card__content {
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: 0.25rem;
56
+
57
+ .str-chat__link-preview-card__content-title {
58
+ height: calc(var(--str-chat__spacing-px) * 16);
59
+ width: 100%
60
+ }
61
+
62
+ .str-chat__link-preview-card__content-description {
63
+ height: calc(var(--str-chat__spacing-px) * 12);
64
+ width: 100%;
65
+ }
66
+ }
49
67
  }
@@ -1,3 +1,9 @@
1
+ @use '../utils';
2
+
3
+ .str-chat {
4
+ --str-chat__link-preview-loading-state-color: var(--str-chat__disabled-color);
5
+ }
6
+
1
7
  .str-chat__link-preview-card {
2
8
  .str-chat__link-preview-card__content {
3
9
  border-left: 2px solid var(--str-chat__primary-color);
@@ -14,4 +20,13 @@
14
20
  .str-chat__link-preview-card__dismiss-button svg path {
15
21
  fill: var(--str-chat__text-low-emphasis-color);
16
22
  }
23
+ }
24
+
25
+ .str-chat__link-preview-card--loading {
26
+ .str-chat__link-preview-card__content-title,
27
+ .str-chat__link-preview-card__content-description {
28
+ @include utils.loading-item-background('link-preview');
29
+ @include utils.loading-animation;
30
+ border-radius: calc(var(--str-chat__spacing-px) * 3);
31
+ }
17
32
  }
@@ -0,0 +1,52 @@
1
+ .str-chat__modal.str-chat__share-location-modal {
2
+ .str-chat__modal__close-button {
3
+ display: none;
4
+ }
5
+
6
+ .str-chat__share-location-dialog {
7
+ .str-chat__modal-header {
8
+ padding-top: 0;
9
+ }
10
+
11
+ .str-chat__dialog__body {
12
+ display: flex;
13
+ flex-direction: column;
14
+ gap: 1rem;
15
+ padding-block: 0;
16
+ -webkit-touch-callout: none;
17
+ -webkit-user-select: none;
18
+ user-select: none;
19
+
20
+ .str-chat__live-location-activation {
21
+ padding: 0.5rem;
22
+
23
+ .str-chat__form__switch-field {
24
+ padding: 0.5rem;
25
+ }
26
+
27
+ .str-chat__dropdown__open-button {
28
+ padding: 0.5rem;
29
+ }
30
+
31
+ .str-chat__dialog-contents {
32
+ .str-chat__dropdown__items {
33
+ display: flex;
34
+ flex-direction: column;
35
+ align-items: flex-start;
36
+ padding-block: 0.25rem;
37
+
38
+ .str-chat__live-location-sharing-duration-option {
39
+ padding: 0.25rem 0.5rem;
40
+ width: 100%;
41
+ text-align: start;
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+
48
+ .str-chat__dialog__controls {
49
+ padding: 1.25rem 1rem 0;
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,32 @@
1
+ @use '../utils';
2
+
3
+ .str-chat__share-location-dialog {
4
+ .str-chat__live-location-activation {
5
+ border-radius: var(--str-chat__border-radius-sm);
6
+ border: 1px solid var(--str-chat__secondary-overlay-color);;
7
+
8
+ .str-chat__form__switch-field {
9
+ background-color: var(--str-chat__background-color);
10
+ }
11
+
12
+ .str-chat__dropdown__open-button {
13
+ border-radius: var(--str-chat__border-radius-xs);
14
+ border: 1px solid var(--str-chat__secondary-overlay-color);
15
+ background-color: var(--str-chat__tertiary-surface-color);
16
+ }
17
+
18
+ .str-chat__dropdown__items {
19
+ box-shadow: 0 0 8px var(--str-chat__box-shadow-color);
20
+ border-radius: var(--str-chat__border-radius-xs);
21
+
22
+ .str-chat__live-location-sharing-duration-option {
23
+ @include utils.button-reset;
24
+ cursor: pointer;
25
+
26
+ &:hover {
27
+ background-color: var(--str-chat__message-options-hover-background-color);
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }