@linktr.ee/messaging-react 3.1.2 → 3.1.3-rc-1780626183
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.
- package/dist/{Card-Dbz87-zR.cjs → Card-BHF-XfHG.cjs} +2 -2
- package/dist/{Card-Dbz87-zR.cjs.map → Card-BHF-XfHG.cjs.map} +1 -1
- package/dist/{Card-2Vcm5_-_.cjs → Card-CqeFyk7l.cjs} +2 -2
- package/dist/{Card-2Vcm5_-_.cjs.map → Card-CqeFyk7l.cjs.map} +1 -1
- package/dist/{Card-CScx0yAg.js → Card-Ctub3AU9.js} +2 -2
- package/dist/{Card-CScx0yAg.js.map → Card-Ctub3AU9.js.map} +1 -1
- package/dist/{Card-BUsHZ7Og.cjs → Card-DvoK42pX.cjs} +2 -2
- package/dist/{Card-BUsHZ7Og.cjs.map → Card-DvoK42pX.cjs.map} +1 -1
- package/dist/{Card-CbR6yi8j.js → Card-RHd97_iq.js} +2 -2
- package/dist/{Card-CbR6yi8j.js.map → Card-RHd97_iq.js.map} +1 -1
- package/dist/{Card-DWc7s-Ty.js → Card-VEde2Hfe.js} +3 -3
- package/dist/{Card-DWc7s-Ty.js.map → Card-VEde2Hfe.js.map} +1 -1
- package/dist/{LockedThumbnail-_OY_3HpX.js → LockedThumbnail-BADzjHNM.js} +2 -2
- package/dist/{LockedThumbnail-_OY_3HpX.js.map → LockedThumbnail-BADzjHNM.js.map} +1 -1
- package/dist/{LockedThumbnail-C-rn_o2_.cjs → LockedThumbnail-BPMP5yZP.cjs} +2 -2
- package/dist/{LockedThumbnail-C-rn_o2_.cjs.map → LockedThumbnail-BPMP5yZP.cjs.map} +1 -1
- package/dist/assets/index.css +1 -1
- package/dist/index-BQf4WkPC.cjs +2 -0
- package/dist/index-BQf4WkPC.cjs.map +1 -0
- package/dist/{index-Dca2QSVv.js → index-CnOvDQIp.js} +207 -217
- package/dist/index-CnOvDQIp.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/components/Avatar/index.tsx +1 -4
- package/src/components/ChannelList/CustomChannelPreview.tsx +9 -11
- package/src/components/ChannelView.tsx +20 -19
- package/src/components/CustomMessage/index.tsx +1 -1
- package/src/components/CustomMessageInput/index.tsx +1 -1
- package/src/providers/MessagingProvider.tsx +1 -1
- package/src/styles.css +51 -10
- package/dist/index-Bgbm6F_U.cjs +0 -2
- package/dist/index-Bgbm6F_U.cjs.map +0 -1
- package/dist/index-Dca2QSVv.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-BQf4WkPC.cjs");exports.ActionButton=e.ActionButton;exports.Avatar=e.Avatar;exports.ChannelEmptyState=e.ChannelEmptyState;exports.ChannelList=e.ChannelList;exports.ChannelView=e.ChannelView;exports.CustomMessageProvider=e.CustomMessageProvider;exports.FaqList=e.FaqList;exports.FaqListItem=e.FaqListItem;exports.LinkAttachment=e.LinkAttachment;exports.LockedAttachment=e.LockedAttachment;exports.MediaMessage=e.MediaMessage;exports.MessageAttachment=e.MessageAttachment;exports.MessageVoteButtons=e.MessageVoteButtons;exports.MessagingProvider=e.MessagingProvider;exports.MessagingShell=e.MessagingShell;exports.buildCompactMetaLabel=e.buildCompactMetaLabel;exports.formatFileSize=e.formatFileSize;exports.formatRelativeTime=e.formatRelativeTime;exports.getFileExtensionLabel=e.getFileExtensionLabel;exports.getMessageDisplayText=e.getMessageDisplayText;exports.isLinkAttachment=e.isLinkAttachment;exports.isUuidLike=e.isUuidLike;exports.messageAttachmentGroupPositionFromStream=e.bubbleGroupPositionFromStream;exports.normalizeLanguageCode=e.normalizeLanguageCode;exports.resolveLinkAttachment=e.resolveLinkAttachment;exports.resolveMediaFromMessage=e.resolveMediaFromMessage;exports.resolveParticipantDisplayName=e.resolveParticipantDisplayName;exports.useCustomMessage=e.useCustomMessage;exports.useMessageVote=e.useMessageVote;exports.useMessaging=e.useMessaging;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e, b as t, C as i, c as n, d as o, e as m, F as g, f as l, L as r, h as M, M as u, i as L, j as c, k as h, l as d, m as p, n as v, o as A, p as C, q as F, s as k, t as b, u as f, v as x, w as y, x as P, y as S, z as q, B as z, D as B } from "./index-
|
|
1
|
+
import { a as e, b as t, C as i, c as n, d as o, e as m, F as g, f as l, L as r, h as M, M as u, i as L, j as c, k as h, l as d, m as p, n as v, o as A, p as C, q as F, s as k, t as b, u as f, v as x, w as y, x as P, y as S, z as q, B as z, D as B } from "./index-CnOvDQIp.js";
|
|
2
2
|
export {
|
|
3
3
|
e as ActionButton,
|
|
4
4
|
t as Avatar,
|
package/package.json
CHANGED
|
@@ -43,10 +43,7 @@ export const Avatar = ({
|
|
|
43
43
|
const borderStyle =
|
|
44
44
|
shape === 'circle'
|
|
45
45
|
? { borderRadius: '50%' }
|
|
46
|
-
: {
|
|
47
|
-
borderRadius: '33%',
|
|
48
|
-
cornerShape: 'superellipse(1.3)',
|
|
49
|
-
}
|
|
46
|
+
: { borderRadius: '1rem' }
|
|
50
47
|
|
|
51
48
|
const avatarInner = (
|
|
52
49
|
<div className="h-full w-full overflow-hidden" style={borderStyle}>
|
|
@@ -125,22 +125,21 @@ const CustomChannelPreview = React.memo<ChannelPreviewUIComponentProps>(
|
|
|
125
125
|
onClick={handleClick}
|
|
126
126
|
onKeyDown={handleKeyDown}
|
|
127
127
|
className={classNames(
|
|
128
|
-
'group w-full px-4 py-3 transition-colors text-left max-w-full overflow-hidden focus-ring',
|
|
128
|
+
'group w-full px-4 py-3 transition-colors text-left max-w-full overflow-hidden focus-ring rounded-[12px] [&+&]:mt-2',
|
|
129
129
|
{
|
|
130
|
-
'bg-
|
|
131
|
-
'hover:bg-
|
|
130
|
+
'bg-black/[0.04]': isSelected,
|
|
131
|
+
'hover:bg-black/[0.02]': !isSelected,
|
|
132
132
|
}
|
|
133
133
|
)}
|
|
134
134
|
>
|
|
135
|
-
<div className="flex items-start gap-
|
|
135
|
+
<div className="flex items-start gap-4">
|
|
136
136
|
{/* Avatar */}
|
|
137
137
|
<Avatar
|
|
138
138
|
id={participant?.user?.id || channel.id || 'unknown'}
|
|
139
139
|
name={participantName}
|
|
140
140
|
image={participantImage}
|
|
141
|
-
size={
|
|
141
|
+
size={48}
|
|
142
142
|
starred={isChannelStarred}
|
|
143
|
-
className="[&_.avatar-fallback]:group-hover:bg-[#eeeeee]"
|
|
144
143
|
/>
|
|
145
144
|
|
|
146
145
|
{/* Content column */}
|
|
@@ -149,8 +148,7 @@ const CustomChannelPreview = React.memo<ChannelPreviewUIComponentProps>(
|
|
|
149
148
|
<div className="flex items-center justify-between gap-2">
|
|
150
149
|
<h3
|
|
151
150
|
className={classNames(
|
|
152
|
-
'text-sm font-medium truncate'
|
|
153
|
-
isSelected ? 'text-primary' : 'text-charcoal'
|
|
151
|
+
'text-sm font-medium truncate text-[#191918]'
|
|
154
152
|
)}
|
|
155
153
|
>
|
|
156
154
|
{isChannelStarred && (
|
|
@@ -159,7 +157,7 @@ const CustomChannelPreview = React.memo<ChannelPreviewUIComponentProps>(
|
|
|
159
157
|
{participantName}
|
|
160
158
|
</h3>
|
|
161
159
|
{lastMessageTime && (
|
|
162
|
-
<span className="text-xs text-
|
|
160
|
+
<span className="text-xs text-[#717070] flex-shrink-0">
|
|
163
161
|
{lastMessageTime}
|
|
164
162
|
</span>
|
|
165
163
|
)}
|
|
@@ -167,11 +165,11 @@ const CustomChannelPreview = React.memo<ChannelPreviewUIComponentProps>(
|
|
|
167
165
|
|
|
168
166
|
{/* Message and unread badge row */}
|
|
169
167
|
<div className="flex items-center justify-between gap-2 min-w-0">
|
|
170
|
-
<p className="text-
|
|
168
|
+
<p className="text-sm text-[#717070] flex-1 line-clamp-1">
|
|
171
169
|
{messagePreview}
|
|
172
170
|
</p>
|
|
173
171
|
{unreadCount > 0 && (
|
|
174
|
-
<span className="bg-[#7f22fe] text-white text-
|
|
172
|
+
<span className="bg-[#7f22fe] text-white text-[10px] rounded-full h-4 flex items-center justify-center p-1 min-w-4 text-center flex-shrink-0">
|
|
175
173
|
{unreadCount > 99 ? '99+' : unreadCount}
|
|
176
174
|
</span>
|
|
177
175
|
)}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ArrowLeftIcon,
|
|
3
|
-
CaretRightIcon,
|
|
4
3
|
DotsThreeIcon,
|
|
5
4
|
SparkleIcon,
|
|
6
5
|
StarIcon,
|
|
@@ -35,7 +34,7 @@ import { ChannelEmptyState } from './MessagingShell/ChannelEmptyState'
|
|
|
35
34
|
import { LoadingState } from './MessagingShell/LoadingState'
|
|
36
35
|
|
|
37
36
|
const ICON_BTN_CLASS =
|
|
38
|
-
'size-10 rounded-full
|
|
37
|
+
'size-10 rounded-full hover:bg-[#E5E4E1] flex items-center justify-center transition-colors duration-150 focus-ring'
|
|
39
38
|
|
|
40
39
|
const DM_AGENT_HEADER_HELPER_TEXT = 'Replies instantly with AI assistant'
|
|
41
40
|
|
|
@@ -90,13 +89,13 @@ const CustomChannelHeader: React.FC<{
|
|
|
90
89
|
|
|
91
90
|
return (
|
|
92
91
|
<div className="@container">
|
|
93
|
-
<div className="grid grid-cols-[1fr_auto_1fr] w-full items-center @lg:hidden">
|
|
92
|
+
<div className="grid grid-cols-[1fr_auto_1fr] w-full items-center @lg:hidden px-6 py-3">
|
|
94
93
|
<div className="flex items-center gap-2">
|
|
95
94
|
{showBackButton && (
|
|
96
95
|
<button
|
|
97
96
|
className={classNames(
|
|
98
97
|
ICON_BTN_CLASS,
|
|
99
|
-
'messaging-channel-view-back-button-mobile'
|
|
98
|
+
'messaging-channel-view-back-button-mobile bg-[#F1F0EE]'
|
|
100
99
|
)}
|
|
101
100
|
onClick={onBack || (() => {})}
|
|
102
101
|
type="button"
|
|
@@ -113,7 +112,7 @@ const CustomChannelHeader: React.FC<{
|
|
|
113
112
|
image={participantImage}
|
|
114
113
|
starred={showStarButton && isStarred}
|
|
115
114
|
dmAgentEnabled={dmAgentEnabled}
|
|
116
|
-
size={
|
|
115
|
+
size={48}
|
|
117
116
|
/>
|
|
118
117
|
<p className="text-center text-xs font-medium text-black/90">
|
|
119
118
|
{participantName}
|
|
@@ -145,7 +144,7 @@ const CustomChannelHeader: React.FC<{
|
|
|
145
144
|
</button>
|
|
146
145
|
)}
|
|
147
146
|
<button
|
|
148
|
-
className={ICON_BTN_CLASS}
|
|
147
|
+
className={classNames(ICON_BTN_CLASS, 'bg-[#F1F0EE]')}
|
|
149
148
|
onClick={onShowInfo}
|
|
150
149
|
type="button"
|
|
151
150
|
aria-label="Show info"
|
|
@@ -154,7 +153,7 @@ const CustomChannelHeader: React.FC<{
|
|
|
154
153
|
</button>
|
|
155
154
|
</div>
|
|
156
155
|
</div>
|
|
157
|
-
<div className="hidden @lg:flex items-center justify-between gap-3 min-h-12">
|
|
156
|
+
<div className="px-6 py-3 hidden @lg:flex items-center justify-between gap-3 min-h-12 border-b border-b-black/[0.08]">
|
|
158
157
|
<div className="flex items-center gap-4 min-w-0">
|
|
159
158
|
{showBackButton && onBack && (
|
|
160
159
|
<button
|
|
@@ -176,7 +175,7 @@ const CustomChannelHeader: React.FC<{
|
|
|
176
175
|
image={participantImage}
|
|
177
176
|
starred={showStarButton && isStarred}
|
|
178
177
|
dmAgentEnabled={dmAgentEnabled}
|
|
179
|
-
size={
|
|
178
|
+
size={48}
|
|
180
179
|
/>
|
|
181
180
|
<div className="min-w-0">
|
|
182
181
|
{canShowInfo ? (
|
|
@@ -187,7 +186,6 @@ const CustomChannelHeader: React.FC<{
|
|
|
187
186
|
aria-label={`View info for ${participantName}`}
|
|
188
187
|
>
|
|
189
188
|
<span className="truncate">{participantName}</span>
|
|
190
|
-
<CaretRightIcon className="size-4 shrink-0" />
|
|
191
189
|
</button>
|
|
192
190
|
) : (
|
|
193
191
|
<h1 className="font-medium text-black/90 truncate">
|
|
@@ -213,7 +211,7 @@ const CustomChannelHeader: React.FC<{
|
|
|
213
211
|
}
|
|
214
212
|
>
|
|
215
213
|
<StarIcon
|
|
216
|
-
className={classNames('size-
|
|
214
|
+
className={classNames('size-6', {
|
|
217
215
|
'text-yellow-600': isStarred,
|
|
218
216
|
'text-black/90': !isStarred,
|
|
219
217
|
})}
|
|
@@ -228,7 +226,7 @@ const CustomChannelHeader: React.FC<{
|
|
|
228
226
|
type="button"
|
|
229
227
|
aria-label="Show info"
|
|
230
228
|
>
|
|
231
|
-
<DotsThreeIcon className="size-
|
|
229
|
+
<DotsThreeIcon className="size-6 text-black/90" />
|
|
232
230
|
</button>
|
|
233
231
|
)}
|
|
234
232
|
</div>
|
|
@@ -392,7 +390,7 @@ const ChannelViewInner: React.FC<{
|
|
|
392
390
|
>
|
|
393
391
|
<Window>
|
|
394
392
|
{/* Custom Channel Header */}
|
|
395
|
-
<div key="lt-channel-header"
|
|
393
|
+
<div key="lt-channel-header">
|
|
396
394
|
<CustomChannelHeader
|
|
397
395
|
onBack={onBack}
|
|
398
396
|
showBackButton={showBackButton}
|
|
@@ -415,10 +413,7 @@ const ChannelViewInner: React.FC<{
|
|
|
415
413
|
key="lt-channel-message-list"
|
|
416
414
|
className="flex-1 overflow-hidden relative"
|
|
417
415
|
>
|
|
418
|
-
<MessageList
|
|
419
|
-
hideDeletedMessages
|
|
420
|
-
hideNewMessageSeparator={false}
|
|
421
|
-
/>
|
|
416
|
+
<MessageList hideDeletedMessages hideNewMessageSeparator={false} />
|
|
422
417
|
</div>
|
|
423
418
|
|
|
424
419
|
{renderConversationFooter ? (
|
|
@@ -430,7 +425,9 @@ const ChannelViewInner: React.FC<{
|
|
|
430
425
|
{/* Message Input */}
|
|
431
426
|
<CustomMessageInput
|
|
432
427
|
key="lt-channel-message-input"
|
|
433
|
-
|
|
428
|
+
{...(renderMessageInputActions && {
|
|
429
|
+
renderActions: () => renderMessageInputActions?.(channel),
|
|
430
|
+
})}
|
|
434
431
|
renderFooter={() => renderMessageInputFooter?.(channel)}
|
|
435
432
|
disabled={composerDisabled}
|
|
436
433
|
disabledReason={composerDisabledReason}
|
|
@@ -443,7 +440,9 @@ const ChannelViewInner: React.FC<{
|
|
|
443
440
|
dialogRef={infoDialogRef}
|
|
444
441
|
onClose={handleCloseInfo}
|
|
445
442
|
participant={participant}
|
|
446
|
-
participantDisplayName={resolveParticipantDisplayName(
|
|
443
|
+
participantDisplayName={resolveParticipantDisplayName(
|
|
444
|
+
participant?.user
|
|
445
|
+
)}
|
|
447
446
|
channel={channel}
|
|
448
447
|
followerStatusLabel={followerStatusLabel}
|
|
449
448
|
onLeaveConversation={onLeaveConversation}
|
|
@@ -582,7 +581,9 @@ export const ChannelView = React.memo<ChannelViewProps>(
|
|
|
582
581
|
TypingIndicator={CustomTypingIndicator}
|
|
583
582
|
doSendMessageRequest={doSendMessageRequest}
|
|
584
583
|
{...(sendButton ? { SendButton: sendButton } : {})}
|
|
585
|
-
{...(attachmentPreviewList
|
|
584
|
+
{...(attachmentPreviewList
|
|
585
|
+
? { AttachmentPreviewList: attachmentPreviewList }
|
|
586
|
+
: {})}
|
|
586
587
|
>
|
|
587
588
|
<ChannelViewInner
|
|
588
589
|
onBack={onBack}
|
|
@@ -207,7 +207,7 @@ const CustomMessageWithContext = (props: CustomMessageWithContextProps) => {
|
|
|
207
207
|
id={message.user.id}
|
|
208
208
|
image={message.user.image}
|
|
209
209
|
name={message.user.name || message.user.id}
|
|
210
|
-
size={
|
|
210
|
+
size={24}
|
|
211
211
|
shape="circle"
|
|
212
212
|
dmAgentEnabled={isChatbot}
|
|
213
213
|
/>
|
|
@@ -60,7 +60,7 @@ const CustomMessageInputInner: React.FC = () => {
|
|
|
60
60
|
<div className="w-full ml-2 mr-4 self-center leading-[0]">
|
|
61
61
|
<TextareaComposer
|
|
62
62
|
aria-disabled={disabled || undefined}
|
|
63
|
-
className="w-full resize-none outline-none leading-
|
|
63
|
+
className="w-full resize-none outline-none leading-5 placeholder:text-black/30 text-sm"
|
|
64
64
|
// While this might usually be considered an anti-pattern, in most
|
|
65
65
|
// cases, when a message thread is rendered, we want the input to
|
|
66
66
|
// gain focus automatically.
|
|
@@ -340,7 +340,7 @@ export const MessagingProvider: React.FC<MessagingProviderProps> = ({
|
|
|
340
340
|
client={client}
|
|
341
341
|
customClasses={{
|
|
342
342
|
channelList:
|
|
343
|
-
'str-chat__channel-list str-chat__channel-list-react bg-transparent lg:border-r-2 border-r-0 border-[#0000000A]',
|
|
343
|
+
'str-chat__channel-list str-chat__channel-list-react bg-transparent lg:border-r-2 border-r-0 border-[#0000000A] p-4',
|
|
344
344
|
}}
|
|
345
345
|
>
|
|
346
346
|
{children}
|
package/src/styles.css
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
/* Stream Chat base styles */
|
|
2
2
|
@import 'stream-chat-react/dist/css/v2/index.css';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
.str-chat {
|
|
5
|
+
/* Inherit the host's font instead of stream-chat-react's hardcoded system stack.
|
|
5
6
|
In admin (federation host) this resolves to Link Sans; on linktr.ee profile
|
|
6
7
|
pages it resolves to the creator's profile font. */
|
|
7
|
-
.str-chat {
|
|
8
8
|
--str-chat__font-family: inherit;
|
|
9
|
+
|
|
10
|
+
--str-chat__message-bubble-border-radius: 1.5rem;
|
|
11
|
+
--str-chat__message-bubble-background-color: #f1f0ee;
|
|
12
|
+
--str-chat__message-bubble-color: #181818;
|
|
13
|
+
|
|
14
|
+
--str-chat__own-message-bubble-background-color: #121110;
|
|
15
|
+
--str-chat__own-message-bubble-color: #fff;
|
|
9
16
|
}
|
|
10
17
|
|
|
11
18
|
/* Dialog component styles - used by messaging components */
|
|
@@ -293,21 +300,24 @@
|
|
|
293
300
|
}
|
|
294
301
|
|
|
295
302
|
.str-chat__message.str-chat__message--me {
|
|
296
|
-
.str-chat__message-bubble {
|
|
297
|
-
background-color: #121110;
|
|
298
|
-
color: white;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
303
|
.str-chat__attachment-list .str-chat__message-attachment--card {
|
|
302
304
|
color: white;
|
|
303
305
|
}
|
|
304
306
|
}
|
|
305
307
|
|
|
306
|
-
.str-chat__unread-messages-separator
|
|
307
|
-
.str-chat__date-separator-line {
|
|
308
|
+
.str-chat__unread-messages-separator {
|
|
308
309
|
background-color: transparent;
|
|
309
310
|
}
|
|
310
311
|
|
|
312
|
+
.str-chat__date-separator-line {
|
|
313
|
+
display: none;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.str-chat__date-separator-date {
|
|
317
|
+
margin: 0 auto;
|
|
318
|
+
font-size: 0.75rem;
|
|
319
|
+
}
|
|
320
|
+
|
|
311
321
|
.str-chat__list {
|
|
312
322
|
background: transparent;
|
|
313
323
|
}
|
|
@@ -334,6 +344,10 @@
|
|
|
334
344
|
justify-items: flex-start;
|
|
335
345
|
}
|
|
336
346
|
|
|
347
|
+
.str-chat__message.str-chat__message--other {
|
|
348
|
+
column-gap: 0.25rem;
|
|
349
|
+
}
|
|
350
|
+
|
|
337
351
|
/* Outer grid for me (outgoing) messages — add footer row after message */
|
|
338
352
|
.str-chat__li .str-chat__message--me {
|
|
339
353
|
grid-template-areas:
|
|
@@ -533,6 +547,18 @@
|
|
|
533
547
|
transition-delay: 300ms;
|
|
534
548
|
}
|
|
535
549
|
|
|
550
|
+
.str-chat__message
|
|
551
|
+
.str-chat__message-inner
|
|
552
|
+
.str-chat__message-bubble
|
|
553
|
+
.str-chat__message-text {
|
|
554
|
+
padding: 0.75rem 1rem;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
.str-chat__message .str-chat__message-bubble {
|
|
558
|
+
font-size: 0.875rem;
|
|
559
|
+
line-height: 1.25rem;
|
|
560
|
+
}
|
|
561
|
+
|
|
536
562
|
/* Chatbot reply markdown — restore semantics that consumer Tailwind preflight
|
|
537
563
|
(or other resets) strip from the body of `.str-chat__message-text-inner`. */
|
|
538
564
|
.str-chat__message-text-inner :where(h1, h2, h3, h4, h5, h6) {
|
|
@@ -594,7 +620,7 @@
|
|
|
594
620
|
.str-chat__message-text
|
|
595
621
|
.str-chat__message-text-inner
|
|
596
622
|
p {
|
|
597
|
-
margin: 0
|
|
623
|
+
margin: 0;
|
|
598
624
|
}
|
|
599
625
|
|
|
600
626
|
.str-chat__message
|
|
@@ -637,6 +663,21 @@
|
|
|
637
663
|
margin-bottom: 0;
|
|
638
664
|
}
|
|
639
665
|
|
|
666
|
+
.str-chat__li--single,
|
|
667
|
+
.str-chat__li--bottom {
|
|
668
|
+
.str-chat__message {
|
|
669
|
+
margin-block-end: 0.875rem;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.str-chat__message--other .str-chat__message-bubble {
|
|
673
|
+
border-end-start-radius: var(--str-chat__message-bubble-border-radius);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.str-chat__message--me .str-chat__message-bubble {
|
|
677
|
+
border-end-end-radius: var(--str-chat__message-bubble-border-radius);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
|
|
640
681
|
/* Locked attachment wrapper: stack card + text bubble in the correct direction */
|
|
641
682
|
.str-chat__li .str-chat__message--me .str-chat__message-bubble-wrapper {
|
|
642
683
|
display: flex;
|