|
|
|
@ -840,12 +840,12 @@ |
|
|
|
|
|
|
|
|
|
|
|
<div class="post-header flex items-center justify-between gap-2 mb-2"> |
|
|
|
<div class="post-header flex items-center justify-between gap-2 mb-2"> |
|
|
|
<div class="flex items-center gap-2 flex-1 min-w-0 post-header-left"> |
|
|
|
<div class="flex items-center gap-2 flex-1 min-w-0 post-header-left"> |
|
|
|
<div class="flex-shrink-0"> |
|
|
|
<div class="flex-shrink-1 min-w-0 max-w-full profile-badge-wrapper"> |
|
|
|
<ProfileBadge pubkey={post.pubkey} /> |
|
|
|
<ProfileBadge pubkey={post.pubkey} /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<span class="text-fog-text-light dark:text-fog-dark-text-light flex-shrink-0 whitespace-nowrap" style="font-size: 0.75em;">{getRelativeTime()}</span> |
|
|
|
<span class="text-fog-text-light dark:text-fog-dark-text-light flex-shrink-0" style="font-size: 0.75em;">{getRelativeTime()}</span> |
|
|
|
{#if getClientName()} |
|
|
|
{#if getClientName()} |
|
|
|
<span class="text-fog-text-light dark:text-fog-dark-text-light flex-shrink-0 whitespace-nowrap" style="font-size: 0.75em;">via {getClientName()}</span> |
|
|
|
<span class="text-fog-text-light dark:text-fog-dark-text-light flex-shrink-0" style="font-size: 0.75em;">via {getClientName()}</span> |
|
|
|
{/if} |
|
|
|
{/if} |
|
|
|
{#if post.kind === KIND.DISCUSSION_THREAD} |
|
|
|
{#if post.kind === KIND.DISCUSSION_THREAD} |
|
|
|
{@const topics = getTopics()} |
|
|
|
{@const topics = getTopics()} |
|
|
|
@ -903,9 +903,9 @@ |
|
|
|
<div class="flex-shrink-0"> |
|
|
|
<div class="flex-shrink-0"> |
|
|
|
<ProfileBadge pubkey={post.pubkey} inline={true} /> |
|
|
|
<ProfileBadge pubkey={post.pubkey} inline={true} /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<span class="text-fog-text-light dark:text-fog-dark-text-light flex-shrink-0 whitespace-nowrap" style="font-size: 0.75em;">{getRelativeTime()}</span> |
|
|
|
<span class="text-fog-text-light dark:text-fog-dark-text-light flex-shrink-0" style="font-size: 0.75em;">{getRelativeTime()}</span> |
|
|
|
{#if getClientName()} |
|
|
|
{#if getClientName()} |
|
|
|
<span class="text-fog-text-light dark:text-fog-dark-text-light flex-shrink-0 whitespace-nowrap" style="font-size: 0.75em;">via {getClientName()}</span> |
|
|
|
<span class="text-fog-text-light dark:text-fog-dark-text-light flex-shrink-0" style="font-size: 0.75em;">via {getClientName()}</span> |
|
|
|
{/if} |
|
|
|
{/if} |
|
|
|
{#if post.kind === KIND.DISCUSSION_THREAD} |
|
|
|
{#if post.kind === KIND.DISCUSSION_THREAD} |
|
|
|
{@const topics = getTopics()} |
|
|
|
{@const topics = getTopics()} |
|
|
|
@ -1110,11 +1110,18 @@ |
|
|
|
border-radius: 0.25rem; |
|
|
|
border-radius: 0.25rem; |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
word-break: break-word; |
|
|
|
|
|
|
|
overflow-wrap: anywhere; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 640px) { |
|
|
|
@media (max-width: 640px) { |
|
|
|
.Feed-post { |
|
|
|
.Feed-post { |
|
|
|
padding: 0.75rem; |
|
|
|
padding: 0.75rem; |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -1172,17 +1179,42 @@ |
|
|
|
.post-content { |
|
|
|
.post-content { |
|
|
|
line-height: 1.6; |
|
|
|
line-height: 1.6; |
|
|
|
word-wrap: break-word; |
|
|
|
word-wrap: break-word; |
|
|
|
overflow-wrap: break-word; |
|
|
|
overflow-wrap: anywhere; |
|
|
|
word-break: break-word; |
|
|
|
word-break: break-word; |
|
|
|
padding-top: 1rem; |
|
|
|
padding-top: 1rem; |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.post-content :global(.nostr-event-link), |
|
|
|
|
|
|
|
.post-content :global(a[href^="nostr:"]) { |
|
|
|
|
|
|
|
word-break: break-all !important; |
|
|
|
|
|
|
|
overflow-wrap: anywhere !important; |
|
|
|
|
|
|
|
word-wrap: break-word !important; |
|
|
|
|
|
|
|
white-space: normal !important; |
|
|
|
|
|
|
|
max-width: 100% !important; |
|
|
|
|
|
|
|
display: inline-block !important; |
|
|
|
|
|
|
|
box-sizing: border-box !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.post-content :global(.profile-badge) { |
|
|
|
|
|
|
|
max-width: 100% !important; |
|
|
|
|
|
|
|
min-width: 0 !important; |
|
|
|
|
|
|
|
flex-shrink: 1 !important; |
|
|
|
|
|
|
|
word-break: break-word !important; |
|
|
|
|
|
|
|
overflow-wrap: anywhere !important; |
|
|
|
|
|
|
|
flex-wrap: wrap !important; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.word-wrap { |
|
|
|
.word-wrap { |
|
|
|
word-wrap: break-word; |
|
|
|
word-wrap: break-word; |
|
|
|
overflow-wrap: break-word; |
|
|
|
overflow-wrap: anywhere; |
|
|
|
word-break: break-word; |
|
|
|
word-break: break-word; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.media-urls { |
|
|
|
.media-urls { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
flex-direction: column; |
|
|
|
@ -1192,12 +1224,20 @@ |
|
|
|
|
|
|
|
|
|
|
|
.media-url-link { |
|
|
|
.media-url-link { |
|
|
|
word-break: break-all; |
|
|
|
word-break: break-all; |
|
|
|
|
|
|
|
overflow-wrap: anywhere; |
|
|
|
text-align: left; /* Ensure left alignment */ |
|
|
|
text-align: left; /* Ensure left alignment */ |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.nostr-event-link { |
|
|
|
.nostr-event-link { |
|
|
|
word-break: break-all; |
|
|
|
word-break: break-all !important; |
|
|
|
|
|
|
|
overflow-wrap: anywhere !important; |
|
|
|
|
|
|
|
word-wrap: break-word !important; |
|
|
|
|
|
|
|
white-space: normal !important; |
|
|
|
text-decoration: underline; |
|
|
|
text-decoration: underline; |
|
|
|
|
|
|
|
max-width: 100% !important; |
|
|
|
|
|
|
|
display: inline-block !important; |
|
|
|
|
|
|
|
box-sizing: border-box !important; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.nostr-event-link:hover { |
|
|
|
.nostr-event-link:hover { |
|
|
|
@ -1289,11 +1329,62 @@ |
|
|
|
gap: 0.5rem; |
|
|
|
gap: 0.5rem; |
|
|
|
min-width: 0; |
|
|
|
min-width: 0; |
|
|
|
flex-wrap: wrap; |
|
|
|
flex-wrap: wrap; |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
word-break: break-word; |
|
|
|
|
|
|
|
overflow-wrap: anywhere; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.post-header-left { |
|
|
|
.post-header-left { |
|
|
|
min-width: 0; |
|
|
|
min-width: 0; |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
|
|
|
word-break: break-word; |
|
|
|
|
|
|
|
overflow-wrap: anywhere; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.post-header-left > span { |
|
|
|
|
|
|
|
word-break: break-word !important; |
|
|
|
|
|
|
|
overflow-wrap: anywhere !important; |
|
|
|
|
|
|
|
white-space: normal !important; |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.profile-badge-wrapper { |
|
|
|
|
|
|
|
min-width: 0 !important; |
|
|
|
|
|
|
|
max-width: 100% !important; |
|
|
|
|
|
|
|
flex-shrink: 1 !important; |
|
|
|
|
|
|
|
overflow: visible !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.post-header-left :global(.profile-badge) { |
|
|
|
|
|
|
|
max-width: 100% !important; |
|
|
|
|
|
|
|
width: auto !important; |
|
|
|
|
|
|
|
min-width: 0 !important; |
|
|
|
|
|
|
|
word-break: break-word !important; |
|
|
|
|
|
|
|
overflow-wrap: anywhere !important; |
|
|
|
|
|
|
|
box-sizing: border-box !important; |
|
|
|
|
|
|
|
flex-shrink: 1 !important; |
|
|
|
|
|
|
|
flex-wrap: wrap !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Apply break-all only on wider screens (not in narrow screen media query) */ |
|
|
|
|
|
|
|
@media (min-width: 641px) { |
|
|
|
|
|
|
|
.post-header-left :global(.nip05-text), |
|
|
|
|
|
|
|
.post-header-left :global(.break-nip05) { |
|
|
|
|
|
|
|
word-break: break-all !important; |
|
|
|
|
|
|
|
overflow-wrap: anywhere !important; |
|
|
|
|
|
|
|
word-wrap: break-word !important; |
|
|
|
|
|
|
|
white-space: normal !important; |
|
|
|
|
|
|
|
max-width: 100% !important; |
|
|
|
|
|
|
|
width: 100% !important; |
|
|
|
|
|
|
|
display: block !important; |
|
|
|
|
|
|
|
box-sizing: border-box !important; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 640px) { |
|
|
|
@media (max-width: 640px) { |
|
|
|
@ -1309,11 +1400,68 @@ |
|
|
|
gap: 0.5rem; |
|
|
|
gap: 0.5rem; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.post-header-left > span { |
|
|
|
|
|
|
|
white-space: normal !important; |
|
|
|
|
|
|
|
word-break: break-word !important; |
|
|
|
|
|
|
|
overflow-wrap: anywhere !important; |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
|
|
|
|
flex-shrink: 1; |
|
|
|
|
|
|
|
min-width: 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.post-header-left { |
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
|
|
flex-wrap: wrap; |
|
|
|
|
|
|
|
gap: 0.5rem; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.post-header-actions { |
|
|
|
.post-header-actions { |
|
|
|
width: 100%; |
|
|
|
width: 100%; |
|
|
|
justify-content: flex-start; |
|
|
|
justify-content: flex-start; |
|
|
|
flex-wrap: wrap; |
|
|
|
flex-wrap: wrap; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.profile-badge-wrapper { |
|
|
|
|
|
|
|
max-width: 100% !important; |
|
|
|
|
|
|
|
width: 100% !important; |
|
|
|
|
|
|
|
flex-shrink: 1 !important; |
|
|
|
|
|
|
|
min-width: 0 !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.post-header-left :global(.profile-badge) { |
|
|
|
|
|
|
|
max-width: 100% !important; |
|
|
|
|
|
|
|
width: 100% !important; |
|
|
|
|
|
|
|
min-width: 0 !important; |
|
|
|
|
|
|
|
flex-shrink: 1 !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.post-header-left :global(.nip05-container) { |
|
|
|
|
|
|
|
flex-direction: column !important; |
|
|
|
|
|
|
|
align-items: flex-start !important; |
|
|
|
|
|
|
|
width: 100% !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Truncate NIP-05 to 10 characters on narrow screens */ |
|
|
|
|
|
|
|
/* Override both the class selectors and Tailwind's break-all utility */ |
|
|
|
|
|
|
|
.post-header-left :global(.nip05-text), |
|
|
|
|
|
|
|
.post-header-left :global(.break-nip05), |
|
|
|
|
|
|
|
.post-header-left :global(.nip05-text.break-all), |
|
|
|
|
|
|
|
.post-header-left :global(.break-nip05.break-all), |
|
|
|
|
|
|
|
.post-header-left :global(span.nip05-text), |
|
|
|
|
|
|
|
.post-header-left :global(span.break-nip05), |
|
|
|
|
|
|
|
.post-header-left :global(span.nip05-text.break-all), |
|
|
|
|
|
|
|
.post-header-left :global(span.break-nip05.break-all) { |
|
|
|
|
|
|
|
max-width: 10ch !important; |
|
|
|
|
|
|
|
overflow: hidden !important; |
|
|
|
|
|
|
|
text-overflow: ellipsis !important; |
|
|
|
|
|
|
|
white-space: nowrap !important; |
|
|
|
|
|
|
|
word-break: normal !important; |
|
|
|
|
|
|
|
overflow-wrap: normal !important; |
|
|
|
|
|
|
|
word-wrap: normal !important; |
|
|
|
|
|
|
|
display: inline-block !important; |
|
|
|
|
|
|
|
width: auto !important; |
|
|
|
|
|
|
|
box-sizing: border-box !important; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.post-header-divider { |
|
|
|
.post-header-divider { |
|
|
|
@ -1352,7 +1500,8 @@ |
|
|
|
|
|
|
|
|
|
|
|
.post-title { |
|
|
|
.post-title { |
|
|
|
word-break: break-word; |
|
|
|
word-break: break-word; |
|
|
|
overflow-wrap: break-word; |
|
|
|
overflow-wrap: anywhere; |
|
|
|
|
|
|
|
max-width: 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|