stream-chat-react 12.4.1 → 12.5.0

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 (180) hide show
  1. package/dist/assets/icons/stream-chat-icons.eot +0 -0
  2. package/dist/assets/icons/stream-chat-icons.svg +4 -0
  3. package/dist/assets/icons/stream-chat-icons.ttf +0 -0
  4. package/dist/assets/icons/stream-chat-icons.woff +0 -0
  5. package/dist/assets/icons/stream-chat-icons.woff2 +0 -0
  6. package/dist/components/Attachment/components/ProgressBar.d.ts +2 -2
  7. package/dist/components/Attachment/components/ProgressBar.js +2 -1
  8. package/dist/components/Channel/Channel.d.ts +1 -1
  9. package/dist/components/Channel/Channel.js +36 -15
  10. package/dist/components/Channel/constants.d.ts +1 -0
  11. package/dist/components/Channel/constants.js +1 -0
  12. package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts +2 -0
  13. package/dist/components/Channel/hooks/useChannelContainerClasses.js +10 -5
  14. package/dist/components/ChannelPreview/utils.js +35 -0
  15. package/dist/components/Chat/hooks/useChat.js +2 -0
  16. package/dist/components/Dialog/DialogAnchor.d.ts +1 -2
  17. package/dist/components/Dialog/DialogMenu.d.ts +3 -0
  18. package/dist/components/Dialog/DialogMenu.js +5 -0
  19. package/dist/components/Dialog/DialogPortal.d.ts +1 -1
  20. package/dist/components/Dialog/DialogPortal.js +4 -12
  21. package/dist/components/Dialog/FormDialog.d.ts +23 -0
  22. package/dist/components/Dialog/FormDialog.js +72 -0
  23. package/dist/components/Dialog/PromptDialog.d.ts +8 -0
  24. package/dist/components/Dialog/PromptDialog.js +7 -0
  25. package/dist/components/DragAndDrop/DragAndDropContainer.d.ts +7 -0
  26. package/dist/components/DragAndDrop/DragAndDropContainer.js +93 -0
  27. package/dist/components/Form/FieldError.d.ts +6 -0
  28. package/dist/components/Form/FieldError.js +3 -0
  29. package/dist/components/Form/SwitchField.d.ts +7 -0
  30. package/dist/components/Form/SwitchField.js +21 -0
  31. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +10 -0
  32. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +10 -0
  33. package/dist/components/InfiniteScrollPaginator/InfiniteScrollPaginator.d.ts +10 -0
  34. package/dist/components/InfiniteScrollPaginator/InfiniteScrollPaginator.js +68 -0
  35. package/dist/components/InfiniteScrollPaginator/hooks/useCursorPaginator.d.ts +18 -0
  36. package/dist/components/InfiniteScrollPaginator/hooks/useCursorPaginator.js +41 -0
  37. package/dist/components/Message/MessageSimple.js +5 -1
  38. package/dist/components/Message/QuotedMessage.js +8 -4
  39. package/dist/components/Message/hooks/useUserRole.js +3 -2
  40. package/dist/components/Message/index.d.ts +1 -0
  41. package/dist/components/MessageInput/AttachmentSelector.d.ts +25 -0
  42. package/dist/components/MessageInput/AttachmentSelector.js +125 -0
  43. package/dist/components/MessageInput/EditMessageForm.js +1 -1
  44. package/dist/components/MessageInput/MessageInput.d.ts +2 -0
  45. package/dist/components/MessageInput/MessageInput.js +9 -4
  46. package/dist/components/MessageInput/MessageInputFlat.js +4 -10
  47. package/dist/components/MessageInput/QuotedMessagePreview.js +7 -3
  48. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +3 -1
  49. package/dist/components/MessageInput/hooks/useSubmitHandler.js +4 -1
  50. package/dist/components/MessageInput/index.d.ts +1 -0
  51. package/dist/components/MessageInput/index.js +1 -0
  52. package/dist/components/Modal/ModalHeader.d.ts +8 -0
  53. package/dist/components/Modal/ModalHeader.js +6 -0
  54. package/dist/components/Poll/Poll.d.ts +7 -0
  55. package/dist/components/Poll/Poll.js +8 -0
  56. package/dist/components/Poll/PollActions/AddCommentForm.d.ts +7 -0
  57. package/dist/components/Poll/PollActions/AddCommentForm.js +24 -0
  58. package/dist/components/Poll/PollActions/EndPollDialog.d.ts +6 -0
  59. package/dist/components/Poll/PollActions/EndPollDialog.js +19 -0
  60. package/dist/components/Poll/PollActions/PollAction.d.ts +9 -0
  61. package/dist/components/Poll/PollActions/PollAction.js +5 -0
  62. package/dist/components/Poll/PollActions/PollActions.d.ts +17 -0
  63. package/dist/components/Poll/PollActions/PollActions.js +46 -0
  64. package/dist/components/Poll/PollActions/PollAnswerList.d.ts +7 -0
  65. package/dist/components/Poll/PollActions/PollAnswerList.js +28 -0
  66. package/dist/components/Poll/PollActions/PollOptionsFullList.d.ts +6 -0
  67. package/dist/components/Poll/PollActions/PollOptionsFullList.js +16 -0
  68. package/dist/components/Poll/PollActions/PollResults/PollOptionVotesList.d.ts +7 -0
  69. package/dist/components/Poll/PollActions/PollResults/PollOptionVotesList.js +18 -0
  70. package/dist/components/Poll/PollActions/PollResults/PollOptionWithLatestVotes.d.ts +9 -0
  71. package/dist/components/Poll/PollActions/PollResults/PollOptionWithLatestVotes.js +19 -0
  72. package/dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.d.ts +11 -0
  73. package/dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.js +18 -0
  74. package/dist/components/Poll/PollActions/PollResults/PollResults.d.ts +6 -0
  75. package/dist/components/Poll/PollActions/PollResults/PollResults.js +33 -0
  76. package/dist/components/Poll/PollActions/PollResults/index.d.ts +1 -0
  77. package/dist/components/Poll/PollActions/PollResults/index.js +1 -0
  78. package/dist/components/Poll/PollActions/SuggestPollOptionForm.d.ts +7 -0
  79. package/dist/components/Poll/PollActions/SuggestPollOptionForm.js +37 -0
  80. package/dist/components/Poll/PollActions/index.d.ts +7 -0
  81. package/dist/components/Poll/PollActions/index.js +7 -0
  82. package/dist/components/Poll/PollContent.d.ts +3 -0
  83. package/dist/components/Poll/PollContent.js +18 -0
  84. package/dist/components/Poll/PollCreationDialog/OptionFieldSet.d.ts +9 -0
  85. package/dist/components/Poll/PollCreationDialog/OptionFieldSet.js +70 -0
  86. package/dist/components/Poll/PollCreationDialog/PollCreationDialog.d.ts +5 -0
  87. package/dist/components/Poll/PollCreationDialog/PollCreationDialog.js +87 -0
  88. package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.d.ts +8 -0
  89. package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.js +44 -0
  90. package/dist/components/Poll/PollCreationDialog/index.d.ts +1 -0
  91. package/dist/components/Poll/PollCreationDialog/index.js +1 -0
  92. package/dist/components/Poll/PollCreationDialog/types.d.ts +21 -0
  93. package/dist/components/Poll/PollCreationDialog/types.js +1 -0
  94. package/dist/components/Poll/PollHeader.d.ts +3 -0
  95. package/dist/components/Poll/PollHeader.js +31 -0
  96. package/dist/components/Poll/PollOptionList.d.ts +6 -0
  97. package/dist/components/Poll/PollOptionList.js +14 -0
  98. package/dist/components/Poll/PollOptionSelector.d.ts +19 -0
  99. package/dist/components/Poll/PollOptionSelector.js +53 -0
  100. package/dist/components/Poll/PollVote.d.ts +12 -0
  101. package/dist/components/Poll/PollVote.js +31 -0
  102. package/dist/components/Poll/QuotedPoll.d.ts +3 -0
  103. package/dist/components/Poll/QuotedPoll.js +17 -0
  104. package/dist/components/Poll/constants.d.ts +3 -0
  105. package/dist/components/Poll/constants.js +3 -0
  106. package/dist/components/Poll/hooks/index.d.ts +2 -0
  107. package/dist/components/Poll/hooks/index.js +2 -0
  108. package/dist/components/Poll/hooks/useManagePollVotesRealtime.d.ts +4 -0
  109. package/dist/components/Poll/hooks/useManagePollVotesRealtime.js +36 -0
  110. package/dist/components/Poll/hooks/usePollAnswerPagination.d.ts +13 -0
  111. package/dist/components/Poll/hooks/usePollAnswerPagination.js +27 -0
  112. package/dist/components/Poll/hooks/usePollOptionVotesPagination.d.ts +13 -0
  113. package/dist/components/Poll/hooks/usePollOptionVotesPagination.js +27 -0
  114. package/dist/components/Poll/index.d.ts +10 -0
  115. package/dist/components/Poll/index.js +10 -0
  116. package/dist/components/Portal/Portal.d.ts +6 -0
  117. package/dist/components/Portal/Portal.js +14 -0
  118. package/dist/components/ReactFileUtilities/UploadButton.d.ts +11 -1
  119. package/dist/components/ReactFileUtilities/UploadButton.js +22 -4
  120. package/dist/components/Thread/Thread.js +1 -1
  121. package/dist/components/index.d.ts +2 -0
  122. package/dist/components/index.js +1 -0
  123. package/dist/context/AttachmentSelectorContext.d.ts +8 -0
  124. package/dist/context/AttachmentSelectorContext.js +6 -0
  125. package/dist/context/ComponentContext.d.ts +21 -5
  126. package/dist/context/PollContext.d.ts +11 -0
  127. package/dist/context/PollContext.js +7 -0
  128. package/dist/context/index.d.ts +1 -0
  129. package/dist/context/index.js +1 -0
  130. package/dist/css/v2/index.css +2 -2
  131. package/dist/css/v2/index.layout.css +2 -2
  132. package/dist/experimental/index.browser.cjs +129 -117
  133. package/dist/experimental/index.browser.cjs.map +4 -4
  134. package/dist/experimental/index.node.cjs +129 -117
  135. package/dist/experimental/index.node.cjs.map +4 -4
  136. package/dist/i18n/Streami18n.d.ts +45 -0
  137. package/dist/i18n/de.json +70 -25
  138. package/dist/i18n/en.json +46 -1
  139. package/dist/i18n/es.json +74 -25
  140. package/dist/i18n/fr.json +83 -34
  141. package/dist/i18n/hi.json +54 -9
  142. package/dist/i18n/it.json +75 -26
  143. package/dist/i18n/ja.json +46 -5
  144. package/dist/i18n/ko.json +46 -5
  145. package/dist/i18n/nl.json +59 -14
  146. package/dist/i18n/pt.json +66 -17
  147. package/dist/i18n/ru.json +66 -13
  148. package/dist/i18n/tr.json +77 -32
  149. package/dist/index.browser.cjs +4226 -1857
  150. package/dist/index.browser.cjs.map +4 -4
  151. package/dist/index.node.cjs +4166 -1770
  152. package/dist/index.node.cjs.map +4 -4
  153. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-layout.scss +2 -2
  154. package/dist/scss/v2/AudioRecorder/AudioRecorder-layout.scss +64 -14
  155. package/dist/scss/v2/AudioRecorder/AudioRecorder-theme.scss +11 -1
  156. package/dist/scss/v2/Avatar/Avatar-layout.scss +4 -0
  157. package/dist/scss/v2/ChannelList/ChannelList-layout.scss +15 -0
  158. package/dist/scss/v2/Dialog/Dialog-layout.scss +54 -0
  159. package/dist/scss/v2/Dialog/Dialog-theme.scss +103 -0
  160. package/dist/scss/v2/DragAndDropContainer/DragAmdDropContainer-layout.scss +5 -0
  161. package/dist/scss/v2/DragAndDropContainer/DragAndDropContainer-theme.scss +47 -0
  162. package/dist/scss/v2/Form/Form-layout.scss +9 -0
  163. package/dist/scss/v2/Form/Form-theme.scss +17 -0
  164. package/dist/scss/v2/Icon/Icon-layout.scss +6 -1
  165. package/dist/scss/v2/InfiniteScrollPaginator/InfiniteScrollPaginator-layout.scss +4 -0
  166. package/dist/scss/v2/MessageActionsBox/MessageActionsBox-layout.scss +0 -9
  167. package/dist/scss/v2/MessageInput/MessageInput-layout.scss +29 -4
  168. package/dist/scss/v2/MessageInput/MessageInput-theme.scss +61 -0
  169. package/dist/scss/v2/Modal/Modal-layout.scss +31 -0
  170. package/dist/scss/v2/Modal/Modal-theme.scss +6 -0
  171. package/dist/scss/v2/Notification/MessageNotification-layout.scss +1 -1
  172. package/dist/scss/v2/Poll/Poll-layout.scss +488 -0
  173. package/dist/scss/v2/Poll/Poll-theme.scss +206 -0
  174. package/dist/scss/v2/_base.scss +4 -0
  175. package/dist/scss/v2/_global-theme-variables.scss +1 -1
  176. package/dist/scss/v2/_icons.scss +7 -0
  177. package/dist/scss/v2/index.layout.scss +4 -0
  178. package/dist/scss/v2/index.scss +4 -0
  179. package/dist/types/types.d.ts +6 -0
  180. package/package.json +4 -4
@@ -114,7 +114,7 @@
114
114
  top: calc(var(--str-chat__spacing-px) * 2);
115
115
  inset-inline-end: calc(var(--str-chat__spacing-px) * 2);
116
116
  cursor: pointer;
117
- z-index: 1;
117
+ z-index: 0;
118
118
 
119
119
  svg {
120
120
  width: calc(var(--str-chat__spacing-px) * 24);
@@ -128,7 +128,7 @@
128
128
  @include utils.unset-button(unset);
129
129
  inset-inline-start: 0;
130
130
  cursor: pointer;
131
- z-index: 1;
131
+ z-index: 0;
132
132
  }
133
133
  }
134
134
 
@@ -10,7 +10,8 @@
10
10
  padding-inline: 1rem;
11
11
  }
12
12
 
13
- .str-chat__audio_recorder {
13
+ .str-chat__audio_recorder,
14
+ stream-voice-recorder-wavebar {
14
15
  @include utils.flex-row-center;
15
16
  gap: 0.375rem;
16
17
 
@@ -21,28 +22,52 @@
21
22
  padding: 0;
22
23
  }
23
24
 
24
- .str-chat__audio_recorder__cancel-button svg {
25
- height: 28px;
25
+ .str-chat__audio_recorder__cancel-button {
26
+ --str-chat-icon-height: 28px;
27
+
28
+ svg {
29
+ height: 28px;
30
+ }
26
31
  }
27
32
 
28
- .str-chat__audio_recorder__toggle-playback-button svg {
29
- height: 16px;
33
+ .str-chat__audio_recorder__toggle-playback-button {
34
+ --str-chat-icon-height: 16px;
35
+
36
+ svg {
37
+ height: 16px;
38
+ }
30
39
  }
31
40
 
32
- .str-chat__audio_recorder__pause-recording-button svg {
33
- height: 12px;
41
+ .str-chat__audio_recorder__pause-recording-button {
42
+ --str-chat-icon-height: 12px;
43
+
44
+ svg {
45
+ height: 12px;
46
+ }
34
47
  }
35
48
 
36
- .str-chat__audio_recorder__resume-recording-button svg {
37
- height: 24px;
49
+ .str-chat__audio_recorder__resume-recording-button {
50
+ --str-chat-icon-height: 24px;
51
+
52
+ svg {
53
+ height: 24px;
54
+ }
38
55
  }
39
56
 
40
- .str-chat__audio_recorder__stop-button svg {
41
- height: 12px;
57
+ .str-chat__audio_recorder__stop-button {
58
+ --str-chat-icon-height: 12px;
59
+
60
+ svg {
61
+ height: 12px;
62
+ }
42
63
  }
43
64
 
44
- .str-chat__audio_recorder__complete-button svg {
45
- height: 16px;
65
+ .str-chat__audio_recorder__complete-button {
66
+ --str-chat-icon-height: 16px;
67
+
68
+ svg {
69
+ height: 16px;
70
+ }
46
71
  }
47
72
 
48
73
  .str-chat__recording-timer {
@@ -86,4 +111,29 @@
86
111
  .str-chat__audio_recorder__waveform-box {
87
112
  overflow-x: hidden;
88
113
  }
89
- }
114
+ }
115
+
116
+ .str-chat__audio_recorder-container {
117
+ .str-chat__message-attachment__voice-recording-widget {
118
+ display: flex;
119
+ gap: var(--str-chat__spacing-1_5);
120
+
121
+ .str-chat__message-attachment-voice-recording-widget--first-row {
122
+ display: none;
123
+ }
124
+
125
+ .str-chat__message-attachment__voice-recording-widget__audio-state {
126
+ display: flex;
127
+ gap: var(--str-chat__spacing-1_5);
128
+
129
+ .str-chat__message-attachment__voice-recording-widget__timer {
130
+ min-width: 3rem;
131
+ align-self: center;
132
+ }
133
+ }
134
+
135
+ .str-chat__message-attachment__voice-recording-widget__right-section {
136
+ display: none;
137
+ }
138
+ }
139
+ }
@@ -17,15 +17,24 @@
17
17
  }
18
18
 
19
19
  .str-chat__audio_recorder__cancel-button {
20
+ --str-chat-icon-color: var(--str-chat__text-low-emphasis-color);
20
21
  color: var(--str-chat__text-low-emphasis-color);
21
22
  }
22
23
 
23
24
  .str-chat__audio_recorder__toggle-playback-button {
25
+ --str-chat-icon-color: var(--str-chat__text-low-emphasis-color);
24
26
  color: var(--str-chat__text-low-emphasis-color);
25
27
  }
26
28
 
29
+ .str-chat__message-attachment-audio-widget--play-button {
30
+ --str-chat-icon-color: var(--str-chat__text-low-emphasis-color);
31
+ box-shadow: none;
32
+ border: none;
33
+ }
34
+
27
35
  .str-chat__audio_recorder__pause-recording-button,
28
36
  .str-chat__audio_recorder__resume-recording-button {
37
+ --str-chat-icon-color: var(--str-chat__danger-color);
29
38
  color: var(--str-chat__danger-color);
30
39
  }
31
40
 
@@ -36,6 +45,7 @@
36
45
 
37
46
  .str-chat__audio_recorder__stop-button,
38
47
  .str-chat__audio_recorder__complete-button {
48
+ --str-chat-icon-color: var(--str-chat__on-primary-color);
39
49
  border-radius: var(--str-chat__border-radius-circle);
40
50
  color: var(--str-chat__on-primary-color);
41
51
  background-color: var(--str-chat__primary-color);
@@ -48,4 +58,4 @@
48
58
  }
49
59
  }
50
60
  }
51
- }
61
+ }
@@ -30,6 +30,10 @@
30
30
  .stream-chat__avatar--message-status {
31
31
  --str-chat__avatar-size: calc(var(--str-chat__spacing-px) * 15);
32
32
  }
33
+
34
+ .str-chat__avatar--poll-vote-author {
35
+ --str-chat__avatar-size: calc(var(--str-chat__spacing-px) * 20);
36
+ }
33
37
  }
34
38
 
35
39
  .str-chat__avatar {
@@ -34,6 +34,10 @@
34
34
  @include utils.flex-row-center;
35
35
  }
36
36
  }
37
+
38
+ .stream-chat__paginated-list {
39
+ gap: 0;
40
+ }
37
41
  }
38
42
 
39
43
  .str-chat__channel-list-react {
@@ -48,3 +52,14 @@
48
52
  }
49
53
  }
50
54
  }
55
+
56
+ .str-chat-angular__channel-list {
57
+ .str-chat__channel-list-messenger__main {
58
+ display: flex;
59
+ flex-direction: column;
60
+
61
+ stream-paginated-list {
62
+ min-height: 0;
63
+ }
64
+ }
65
+ }
@@ -1,3 +1,5 @@
1
+ @use '../utils';
2
+
1
3
  .str-chat__dialog-overlay {
2
4
  inset: 0;
3
5
  overflow: hidden;
@@ -5,4 +7,56 @@
5
7
  height: var(--str-chat__dialog-overlay-height);
6
8
  width: 100%;
7
9
  z-index: 2;
10
+ }
11
+
12
+ .str-chat__dialog {
13
+ width: 100%;
14
+
15
+ .str-chat__dialog__body {
16
+ padding: 2rem 1rem;
17
+ overflow-y: auto;
18
+
19
+ .str-chat__dialog__title {
20
+ margin-bottom: 1rem;
21
+ }
22
+
23
+ }
24
+
25
+ .str-chat__dialog__controls {
26
+ display: flex;
27
+ justify-content: flex-end;
28
+ gap: 1.25rem;
29
+ padding: 1.25rem;
30
+
31
+ .str-chat__dialog__controls-button {
32
+ @include utils.button-reset;
33
+ }
34
+ }
35
+ }
36
+
37
+ .str-chat__prompt-dialog {
38
+ input[type=text] {
39
+ width: 100%;
40
+ padding: 0.625rem 1rem;
41
+ }
42
+ }
43
+
44
+ .str-chat__dialog-menu {
45
+ overflow: hidden;
46
+
47
+ .str-chat__dialog-menu__button {
48
+ display: flex;
49
+ align-items: center;
50
+ width: 100%;
51
+ padding: 0.5rem 0.75rem;
52
+
53
+ .str-chat__dialog-menu__button-icon {
54
+ height: 1rem;
55
+ width: 1rem;
56
+ }
57
+
58
+ .str-chat__dialog-menu__button-text {
59
+ padding-inline: 0.675rem;
60
+ }
61
+ }
8
62
  }
@@ -0,0 +1,103 @@
1
+ @use '../utils';
2
+
3
+ .str-chat {
4
+ /* The border radius used for the borders of the component */
5
+ --str-chat__dialog-menu-border-radius: var(--str-chat__border-radius-sm);
6
+
7
+ /* The text/icon color of the component */
8
+ --str-chat__dialog-menu-color: var(--str-chat__text-color);
9
+
10
+ /* The background color of the component */
11
+ --str-chat__dialog-menu-background-color: var(--str-chat__secondary-background-color);
12
+
13
+ /* Top border of the component */
14
+ --str-chat__dialog-menu-border-block-start: none;
15
+
16
+ /* Bottom border of the component */
17
+ --str-chat__dialog-menu-border-block-end: none;
18
+
19
+ /* Left (right in RTL layout) border of the component */
20
+ --str-chat__dialog-menu-border-inline-start: none;
21
+
22
+ /* Right (left in RTL layout) border of the component */
23
+ --str-chat__dialog-menu-border-inline-end: none;
24
+
25
+ /* Box shadow applied to the component */
26
+ --str-chat__dialog-menu-box-shadow: 0 0 8px var(--str-chat__box-shadow-color);
27
+
28
+ /* The border radius used for the borders of an item in the message actions box */
29
+ --str-chat__dialog-menu-button-border-radius: 0;
30
+
31
+ /* The text/icon color of an item in the message actions box */
32
+ --str-chat__dialog-menu-button-color: var(--str-chat__text-color);
33
+
34
+ /* The background color of an item in the message actions box */
35
+ --str-chat__dialog-menu-button-background-color: transparent;
36
+
37
+ /* The background color of an item in the message actions box when hovered */
38
+ --str-chat__dialog-menu-button-hover-background-color: var(--str-chat__secondary-surface-color);
39
+
40
+ /* Top border of an item in the message actions box */
41
+ --str-chat__dialog-menu-button-border-block-start: none;
42
+
43
+ /* Bottom border of an item in the message actions box */
44
+ --str-chat__dialog-menu-button-border-block-end: none;
45
+
46
+ /* Left (right in RTL layout) border of an item in the message actions box */
47
+ --str-chat__dialog-menu-button-border-inline-start: none;
48
+
49
+ /* Right (left in RTL layout) border of an item in the message actions box */
50
+ --str-chat__dialog-menu-button-border-inline-end: none;
51
+
52
+ /* Box shadow applied to an item in the message actions box */
53
+ --str-chat__dialog-menu-button-box-shadow: none;
54
+ }
55
+
56
+ .str-chat__dialog {
57
+ .str-chat__dialog__title {
58
+ font: var(--str-chat__subtitle-medium-text);
59
+ }
60
+
61
+ .str-chat__dialog__prompt {
62
+ font: var(--str-chat__subtitle-text);
63
+ }
64
+
65
+ .str-chat__dialog__controls {
66
+ .str-chat__dialog__controls-button {
67
+ cursor: pointer;
68
+ font: var(--str-chat__body-medium-text);
69
+ color: var(--str-chat__primary-color);
70
+ }
71
+
72
+ .str-chat__dialog__controls-button--submit {
73
+ text-transform: uppercase;
74
+
75
+ &:disabled {
76
+ color: var(--str-chat__disabled-color);
77
+ }
78
+ }
79
+ }
80
+ }
81
+
82
+ .str-chat__prompt-dialog {
83
+ input[type=text] {
84
+ font: var(--str-chat__subtitle-text);
85
+ border-radius: 20px;
86
+ border: 1px solid var(--str-chat__primary-color);
87
+ }
88
+ }
89
+
90
+
91
+ .str-chat__dialog-menu {
92
+ @include utils.component-layer-overrides('dialog-menu');
93
+
94
+ .str-chat__dialog-menu__button {
95
+ @include utils.component-layer-overrides('dialog-menu-button');
96
+ cursor: pointer;
97
+ font: var(--str-chat__subtitle-text);
98
+
99
+ &:hover, &:focus{
100
+ background-color: var(--str-chat__dialog-menu-button-hover-background-color);
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,5 @@
1
+ .str-chat__drag-and-drop-container__item {
2
+ display: flex;
3
+ width: 100%;
4
+ padding-block: 0.25rem;
5
+ }
@@ -0,0 +1,47 @@
1
+ .str-chat {
2
+ /* Top border of the component */
3
+ --str-chat__drag-and-drop-container-border-block-start: 2px solid transparent;
4
+
5
+ /* Bottom border of the component */
6
+ --str-chat__drag-and-drop-container-border-block-end: 2px solid transparent;
7
+
8
+ /* Top border of the component on dragover */
9
+ --str-chat__drag-and-drop-container-on-dragover-border-block-start: 2px solid var(--str-chat__primary-color);
10
+
11
+ /* Bottom border of the component on dragover */
12
+ --str-chat__drag-and-drop-container-on-dragover-border-block-end: 2px solid var(--str-chat__primary-color);
13
+
14
+ /* Left (right in RTL layout) border of the component on dragover */
15
+ --str-chat__drag-and-drop-container-on-dragover-border-inline-start: none;
16
+
17
+ /* Right (left in RTL layout) border of the component on dragover */
18
+ --str-chat__drag-and-drop-container-on-dragover-border-inline-end: none;
19
+ }
20
+
21
+
22
+ .str-chat__drag-and-drop-container--dragging {
23
+ cursor: grabbing;
24
+ }
25
+
26
+ .str-chat__drag-and-drop-container__item[draggable="true"] {
27
+ cursor: grab;
28
+
29
+ &:active {
30
+ background: transparent;
31
+ }
32
+ }
33
+
34
+
35
+ .str-chat__drag-and-drop-container__item {
36
+ border-bottom: var(--str-chat__drag-and-drop-container-border-block-start);
37
+ border-top: var(--str-chat__drag-and-drop-container-border-block-start);
38
+
39
+ &.str-chat__drag-and-drop-container__item--dragged-over-from-top {
40
+ border-bottom: var(--str-chat__drag-and-drop-container-on-dragover-border-block-end);
41
+ }
42
+
43
+ &.str-chat__drag-and-drop-container__item--dragged-over-from-bottom {
44
+ border-top: var(--str-chat__drag-and-drop-container-on-dragover-border-block-start);
45
+ }
46
+ }
47
+
@@ -0,0 +1,9 @@
1
+ .str-chat__dialog__field {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.5rem;
5
+
6
+ .str-chat__form-field-error {
7
+ margin-left: 0.5rem;
8
+ }
9
+ }
@@ -0,0 +1,17 @@
1
+ .str-chat__form-field-error {
2
+ font-size: 0.75rem;
3
+ color: var(--str-chat__danger-color)
4
+ }
5
+
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;
12
+ }
13
+
14
+ /* Firefox */
15
+ input[type=number] {
16
+ -moz-appearance: textfield;
17
+ }
@@ -30,7 +30,6 @@
30
30
  content: url('data:image/svg+xml;base64,PHN2ZwogIGNsYXNzPSJyZnUtZmlsZS1hdWRpbyIKICBmaWxsPSJub25lIgogIHZpZXdCb3g9IjAgMCAzNCA0MCIKICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgaGVpZ2h0PSIyMCIKICB3aWR0aD0iMjAiCj4KICA8cGF0aAogICAgY2xpcC1ydWxlPSJldmVub2RkIgogICAgZD0iTTE3LjcxNjggMzMuMTcyQzE4LjIzNDggMzMuMTcyIDE4LjQyMzggMzMuNjU1IDE4LjQyMzggMzQuMThDMTguNDIzOCAzNC42NDIgMTguMjk3OCAzNS4xOTUgMTcuNzE2OCAzNS4xOTVDMTcuMTcwOCAzNS4xOTUgMTYuOTg4OCAzNC42NDIgMTYuOTg4OCAzNC4xNDVDMTYuOTg4OCAzMy42ODMgMTcuMTcwOCAzMy4xNzIgMTcuNzE2OCAzMy4xNzJaTTE5LjU3MTggMzEuMDAySDE4LjM4MThWMzIuNzU4OUgxOC4zNjc4QzE4LjEyMjggMzIuNDMgMTcuNzc5OCAzMi4yNjIgMTcuMzMxOCAzMi4yNjJDMTYuMzAyOCAzMi4yNjIgMTUuNzk4OCAzMy4xNTggMTUuNzk4OCAzNC4xMDNDMTUuNzk4OCAzNS4xMjUgMTYuMjgxOCAzNi4xMDQ5IDE3LjQyMjggMzYuMTA0OUMxNy44NDI4IDM2LjEwNDkgMTguMTkyOCAzNS45MjMgMTguNDIzOCAzNS41OEgxOC40Mzc4VjM2SDE5LjU3MThWMzEuMDAyWk0xMi43MDk1IDM0LjE4NzJDMTIuNzA5NSAzMy43MjUyIDEyLjg3NzUgMzMuMTcyMiAxMy40MzA1IDMzLjE3MjJDMTMuOTgzNSAzMy4xNzIyIDE0LjE1ODUgMzMuNzI1MiAxNC4xNTg1IDM0LjE4NzJDMTQuMTU4NSAzNC42NDkyIDEzLjk4MzUgMzUuMTk1MiAxMy40MzA1IDM1LjE5NTJDMTIuODc3NSAzNS4xOTUyIDEyLjcwOTUgMzQuNjQ5MiAxMi43MDk1IDM0LjE4NzJaTTExLjUxOTUgMzQuMTg3MkMxMS41MTk1IDM1LjI3OTIgMTIuMzAzNSAzNi4xMDUyIDEzLjQzMDUgMzYuMTA1MkMxNC41NTc1IDM2LjEwNTIgMTUuMzQ4NSAzNS4yNzkyIDE1LjM0ODUgMzQuMTg3MkMxNS4zNDg1IDMzLjA5NTIgMTQuNTU3NSAzMi4yNjIyIDEzLjQzMDUgMzIuMjYyMkMxMi4zMDM1IDMyLjI2MjIgMTEuNTE5NSAzMy4wOTUyIDExLjUxOTUgMzQuMTg3MlpNMjEuODM5IDMyLjM2NzFIMjIuNTc0VjMzLjEzNzFIMjEuODM5VjM0Ljc4OTFDMjEuODM5IDM1LjA3NjEgMjIuMDA3IDM1LjEzOTEgMjIuMjY2IDM1LjEzOTFDMjIuMzE0MiAzNS4xMzkxIDIyLjM2NCAzNS4xMzU3IDIyLjQxNDcgMzUuMTMyM0MyMi40NjcyIDM1LjEyODcgMjIuNTIwNiAzNS4xMjUxIDIyLjU3NCAzNS4xMjUxVjM2LjAwMDFDMjIuNDgxIDM2LjAwMzEgMjIuMzg4IDM2LjAwOTkgMjIuMjk1IDM2LjAxNjhDMjIuMTcxIDM2LjAyNTkgMjIuMDQ3IDM2LjAzNTEgMjEuOTIzIDM2LjAzNTFDMjAuOTA4IDM2LjAzNTEgMjAuNjQ5IDM1Ljc0MTEgMjAuNjQ5IDM0Ljc1NDFWMzMuMTM3MUgyMC4wNDdWMzIuMzY3MUgyMC42NDlWMzEuMjY4MUgyMS44MzlWMzIuMzY3MVoiCiAgICBmaWxsPSJ3aGl0ZSIKICAgIGZpbGwtcnVsZT0iZXZlbm9kZCIKICA+PC9wYXRoPgogIDxwYXRoCiAgICBkPSJNMCAyOEgzNFYzN0MzNCAzOC42NTY5IDMyLjY1NjkgNDAgMzEgNDBIM0MxLjM0MzE1IDQwIDAgMzguNjU2OSAwIDM3VjI4WiIKICAgIGZpbGw9IiMyNzI3QjAiCiAgPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAzQzAgMS4zNDMxNSAxLjM0MzE1IDAgMyAwSDIzTDM0IDExVjI4SDBWM1oiIGZpbGw9IiNGNUY1RjUiPjwvcGF0aD4KICA8cGF0aAogICAgZD0iTTM0IDExTDI2IDExQzI0LjM0MzEgMTEgMjMgOS42NTY4NSAyMyA4VjBMMzQgMTFaIgogICAgZmlsbD0iI0RCREJEQiIKICA+PC9wYXRoPgogIDxwYXRoCiAgICBjbGlwLXJ1bGU9ImV2ZW5vZGQiCiAgICBkPSJNOC44NzkxMiAyMS45NDFIMTIuMjk4TDE2Ljk1MjEgMjQuNzQ5M0MxNy4wMzA3IDI0LjgxMzggMTcuMTI5MyAyNC44NDkgMTcuMjMxMSAyNC44NDlDMTcuNDczOCAyNC44NDg4IDE3LjY3MDUgMjQuNjUxOSAxNy42NzAzIDI0LjQwOTJWMTIuNDM5OUMxNy42NzA0IDEyLjMzODEgMTcuNjM1MiAxMi4yMzk2IDE3LjU3MDcgMTIuMTYwOUMxNy40MTY4IDExLjk3MzIgMTcuMTM5OCAxMS45NDU3IDE2Ljk1MjEgMTIuMDk5NkwxMi4yOTggMTQuOTA4SDguODc5MTJDOC4zOTM2IDE0LjkwOCA4IDE1LjMwMTYgOCAxNS43ODcxVjIxLjA2MTlDOCAyMS41NDc0IDguMzkzNiAyMS45NDEgOC44NzkxMiAyMS45NDFaTTEyLjkyNTggMTYuNjY2NEwxNS45MTIyIDE1LjIyMjRWMjEuNjI2OEwxMi45MjU4IDIwLjE4MjlIOS43NTgzVjE2LjY2NjRIMTIuOTI1OFpNMTkuODUxMSAxNi4zNTE3QzE5LjQ3NCAxNi40MDkyIDE5LjIzOTcgMTYuNjYzNyAxOS4zMjgzIDE2LjkxOTFMMTkuMzI2MiAxNi45MkMxOS41Mjk1IDE3LjQ5OTUgMTkuNjMwNSAxOC4wOTggMTkuNjI4NCAxOC42OTUzQzE5LjYzMDUgMTkuMjk3NSAxOS41MjM3IDE5LjkwMTQgMTkuMzE5NiAyMC40OTA5QzE5LjIyOSAyMC43NDYyIDE5LjQ2ODIgMjAuOTk5NiAxOS44NDc0IDIxLjA2QzE5LjkwMDggMjEuMDY4MyAxOS45NTQyIDIxLjA3MiAyMC4wMDc2IDIxLjA3MkMyMC4zMjU5IDIxLjA3MiAyMC42MTU2IDIwLjkyMzQgMjAuNjkyMiAyMC43MDU3QzIwLjkxOTQgMjAuMDQ1MSAyMS4wMzM3IDE5LjM3IDIxLjAzNzQgMTguNjk1M0MyMS4wMzQ5IDE4LjAyNTEgMjAuOTIxMSAxNy4zNTc1IDIwLjY5NTUgMTYuNzAzNUMyMC42MDUzIDE2LjQ0NzcgMjAuMjI5IDE2LjI5MDggMTkuODUxMSAxNi4zNTE3Wk0yMi4xNjA1IDE0LjYwMjhDMjIuNTI1MiAxNC41MTYzIDIyLjkyNTkgMTQuNjQ1NCAyMy4wNTUgMTQuODkzOEMyMy42ODkxIDE2LjExNTcgMjQgMTcuNDA0MiAyNCAxOC42OTIzQzI0LjAwMDQgMTkuOTg5NSAyMy42Nzk2IDIxLjI4MzkgMjMuMDUyMSAyMi41MTUzQzIyLjk1MDMgMjIuNzEyMyAyMi42NzYzIDIyLjgzNDQgMjIuMzgyOCAyMi44MzQ0QzIyLjMwNzEgMjIuODM0NCAyMi4yMzAxIDIyLjgyNjEgMjIuMTU0MyAyMi44MDkyQzIxLjc4NjMgMjIuNzI1MSAyMS41OTE0IDIyLjQ1MzYgMjEuNzE4NSAyMi4yMDc3QzIyLjI5ODggMjEuMDc2MSAyMi41OTIyIDE5Ljg4MzYgMjIuNTkzMSAxOC42OTE5QzIyLjU5MzEgMTcuNTA1NiAyMi4zMDU0IDE2LjMyMjIgMjEuNzI3NiAxNS4yMDI1QzIxLjYwMDEgMTQuOTU2MyAyMS43OTUgMTQuNjg2IDIyLjE2MDUgMTQuNjAyOFoiCiAgICBmaWxsPSIjMjcyN0IwIgogICAgZmlsbC1ydWxlPSJldmVub2RkIgogID48L3BhdGg+Cjwvc3ZnPg==');
31
31
  }
32
32
 
33
- // Copy icon mapping here
34
33
  .str-chat__icon--action::before {
35
34
  content: '\e800';
36
35
  } /* '' */
@@ -85,3 +84,9 @@
85
84
  .str-chat__icon--attach::before {
86
85
  content: '\e811';
87
86
  } /* '' */
87
+ .str-chat__icon--mic::before {
88
+ content: '\e812';
89
+ } /* '' */
90
+ .str-chat__icon--bin::before {
91
+ content: '\e813';
92
+ } /* '' */
@@ -0,0 +1,4 @@
1
+ .str-chat__infinite-scroll-paginator {
2
+ overflow-y: auto;
3
+ overflow-x: hidden;
4
+ }
@@ -18,12 +18,3 @@
18
18
  }
19
19
  }
20
20
  }
21
-
22
- .str-chat__message-actions-box:not(.str-chat__message-actions-box-angular) {
23
- display: none;
24
- z-index: 1;
25
-
26
- &.str-chat__message-actions-box--open {
27
- display: block;
28
- }
29
- }
@@ -53,10 +53,6 @@
53
53
  height: calc(var(--str-chat__spacing-px) * 45);
54
54
  cursor: pointer;
55
55
 
56
- .str-chat__file-input {
57
- display: none;
58
- }
59
-
60
56
  .str-chat__file-input-label {
61
57
  @include utils.flex-row-center;
62
58
  cursor: pointer;
@@ -149,6 +145,7 @@
149
145
  }
150
146
 
151
147
  .str-chat__start-recording-audio-button {
148
+ --str-chat-icon-height: calc(var(--str-chat__spacing-px) * 25);
152
149
  @include utils.flex-row-center;
153
150
  cursor: pointer;
154
151
  padding: 0;
@@ -216,3 +213,31 @@
216
213
  transform: scale(-1, 1);
217
214
  }
218
215
  }
216
+
217
+ .str-chat__attachment-selector-actions-menu,
218
+ .str-chat__attachment-selector {
219
+ button {
220
+ @include utils.button-reset;
221
+ }
222
+ }
223
+
224
+ .str-chat__attachment-selector {
225
+ .str-chat__attachment-selector__menu-button {
226
+ padding: 0.25rem 0.5rem;
227
+ cursor: pointer;
228
+
229
+ .str-chat__attachment-selector__menu-button__icon {
230
+ height: 26px;
231
+ width: 26px;
232
+ }
233
+ }
234
+ }
235
+
236
+ .str-chat__file-input {
237
+ display: none;
238
+ }
239
+
240
+ .str-chat__attachment-selector-actions-menu {
241
+ min-width: 300px;
242
+ padding-block: 0.5rem;
243
+ }
@@ -168,6 +168,18 @@
168
168
 
169
169
  /* Box shadow applied to the cooldown timer */
170
170
  --str-chat__cooldown-box-shadow: none;
171
+
172
+ /* Color applied to an icon in a button that opens attachment selector */
173
+ --str-chat__attachment-selector-button-icon-color: var(--str-chat__text-low-emphasis-color);
174
+
175
+ /* Color applied to an icon in a button that opens attachment selector when hovered over */
176
+ --str-chat__attachment-selector-button-icon-color-hover: var(--str-chat__primary-color);
177
+
178
+ /* Color applied to an attachment selector menu item icon when hovered over */
179
+ --str-chat__attachment-selector-actions-menu-button-icon-color: var(--str-chat__primary-color);
180
+
181
+ /* Color applied to an attachment selector menu item icon when hovered over or focused */
182
+ --str-chat__attachment-selector-actions-menu-button-icon-color-active: var(--str-chat__primary-color);
171
183
  }
172
184
 
173
185
  .str-chat__message-input {
@@ -228,6 +240,7 @@
228
240
  }
229
241
 
230
242
  .str-chat__start-recording-audio-button {
243
+ --str-chat-icon-color: var(--str-chat__start-recording-audio-button-color);
231
244
  @include utils.component-layer-overrides('start-recording-audio-button');
232
245
 
233
246
  &:disabled {
@@ -282,3 +295,51 @@
282
295
  }
283
296
  }
284
297
  }
298
+
299
+ .str-chat__attachment-selector {
300
+ .str-chat__attachment-selector__menu-button {
301
+ .str-chat__attachment-selector__menu-button__icon {
302
+ background-color: var(--str-chat__attachment-selector-button-icon-color);
303
+ -webkit-mask: var(--str-chat__add-attachment-icon) no-repeat center / contain;
304
+ mask: var(--str-chat__add-attachment-icon) no-repeat center / contain;
305
+ }
306
+
307
+ &:hover {
308
+ .str-chat__attachment-selector__menu-button__icon {
309
+ background-color: var(--str-chat__attachment-selector-button-icon-color-hover);
310
+ }
311
+ }
312
+ }
313
+ }
314
+
315
+ .str-chat__attachment-selector-actions-menu {
316
+ .str-chat__attachment-selector-actions-menu__button {
317
+ color: var(--str-chat__text-low-emphasis-color);
318
+
319
+ .str-chat__dialog-menu__button-icon {
320
+ background-color: var(--str-chat__attachment-selector-actions-menu-button-icon-color);
321
+ }
322
+
323
+ &:hover, &:focus {
324
+ color: var(--str-chat__text-color);
325
+
326
+ .str-chat__dialog-menu__button-icon {
327
+ background-color: var(--str-chat__attachment-selector-actions-menu-button-icon-color-active);
328
+ }
329
+ }
330
+ }
331
+
332
+ .str-chat__attachment-selector-actions-menu__upload-file-button {
333
+ .str-chat__dialog-menu__button-icon {
334
+ -webkit-mask: var(--str-chat__folder-icon) no-repeat center / contain;
335
+ mask: var(--str-chat__folder-icon) no-repeat center / contain;
336
+ }
337
+ }
338
+
339
+ .str-chat__attachment-selector-actions-menu__create-poll-button {
340
+ .str-chat__dialog-menu__button-icon {
341
+ -webkit-mask: var(--str-chat__poll-icon) no-repeat center / contain;
342
+ mask: var(--str-chat__poll-icon) no-repeat center / contain;
343
+ }
344
+ }
345
+ }
@@ -11,6 +11,36 @@
11
11
  height: 100%;
12
12
  z-index: 100;
13
13
 
14
+ .str-chat__modal-header {
15
+ display: flex;
16
+ align-items: center;
17
+ width: 100%;
18
+ padding: 1.25rem 1rem;
19
+
20
+ button.str-chat__modal-header__go-back-button,
21
+ .str-chat__modal__close-button {
22
+ padding: 1rem;
23
+ background-size: 0.875rem;
24
+ background-repeat: no-repeat;
25
+ background-position: center;
26
+ }
27
+
28
+ button.str-chat__modal-header__go-back-button {
29
+ background-image: var(--str-chat__arrow-left-icon);
30
+ }
31
+
32
+ .str-chat__modal-header__close-button {
33
+ background-image: var(--str-chat__close-icon);
34
+ background-repeat: no-repeat;
35
+ height: 0.875rem;
36
+ width: 0.875rem;
37
+ }
38
+
39
+ .str-chat__modal-header__title {
40
+ flex: 1;
41
+ }
42
+ }
43
+
14
44
  button.str-chat__modal__close-button {
15
45
  @include utils.unset-button;
16
46
  margin: var(--str-chat__spacing-2);
@@ -31,6 +61,7 @@
31
61
  @include utils.flex-col-center;
32
62
  padding: var(--str-chat__spacing-8) var(--str-chat__spacing-4);
33
63
  width: 40%;
64
+ max-height: 80%;
34
65
  min-width: 0;
35
66
  min-height: 0;
36
67
  }
@@ -46,6 +46,12 @@
46
46
  @include utils.component-layer-overrides('modal');
47
47
  }
48
48
 
49
+ .str-chat__modal-header {
50
+ .str-chat__modal-header__title {
51
+ font: var(--str-chat__subtitle2-medium-text);
52
+ }
53
+ }
54
+
49
55
  .str-chat__modal__close-button {
50
56
  --str-chat-icon-color: var(--str-chat__modal-close-icon-color);
51
57
  @include utils.button-reset;
@@ -4,7 +4,7 @@
4
4
  align-self: center;
5
5
  padding: var(--str-chat__spacing-1) var(--str-chat__spacing-2);
6
6
  bottom: calc(var(--str-chat__spacing-px) * 10);
7
- z-index: 101;
7
+ z-index: 100;
8
8
  }
9
9
 
10
10
  .str-chat__list-notifications {