mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-11-06 04:42:57 +00:00
Merge branch 'unstable' into lockdown-mode-text-configuration-17597933588831189378
This commit is contained in:
11 files changed
+2199
-544
No files matched your search
@@ -1,7 +1,7 @@
|
||||
<!-- components/profile-modal.html -->
|
||||
<div
|
||||
id="profileModal"
|
||||
class="bv-modal hidden items-start"
|
||||
class="bv-modal hidden"
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
aria-labelledby="profileModalTitle"
|
||||
@@ -12,7 +12,7 @@
|
||||
<div class="bv-modal-backdrop"></div>
|
||||
|
||||
<div
|
||||
class="bv-modal__panel modal-sheet profile-modal"
|
||||
class="bv-modal__panel profile-modal w-full h-full max-w-none rounded-none border-none p-0"
|
||||
tabindex="-1"
|
||||
data-mobile-view="menu"
|
||||
>
|
||||
@@ -217,7 +217,7 @@
|
||||
data-state="active"
|
||||
>
|
||||
<span
|
||||
class="flex h-12 w-12 flex-shrink-0 items-center justify-center overflow-hidden rounded-full border-2 border-info/50 bg-surface"
|
||||
class="flex h-12 w-12 flex-shrink-0 items-center justify-center overflow-hidden rounded-full border-2 border-accent/50 bg-surface"
|
||||
>
|
||||
<img
|
||||
id="profileModalAvatar"
|
||||
@@ -228,7 +228,7 @@
|
||||
</span>
|
||||
<div class="profile-modal__active-details">
|
||||
<div class="profile-modal__active-meta">
|
||||
<span class="text-3xs font-semibold uppercase tracking-extra-wide text-info">
|
||||
<span class="text-3xs font-semibold uppercase tracking-extra-wide text-accent">
|
||||
Active profile
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -11,4 +11,4 @@
|
||||
--player-modal-primary-inline-padding-lg,clamp(var(--space-sm),2.75vw,var(--space-lg))
|
||||
)}}.revert-modal__layout{display:grid;gap:1.5rem}@media (min-width:1024px){.revert-modal__layout{grid-template-columns:minmax(var(--revert-modal-sidebar-min),var(--revert-modal-sidebar-width)) minmax(0,1fr)}}#playerModal.video-modal__primary{display:block}.video-modal__primary{display:flex;flex-direction:column;gap:1.5rem;min-width:0;min-height:0}#playerModal.video-modal__secondary{display:block}.video-modal__secondary{display:flex;flex-direction:column;gap:1rem;min-width:0;min-height:0;width:100%;align-self:stretch}.video-modal__similar{display:none}@media (min-width:1024px){#playerModal.video-modal__similar{display:block}.video-modal__similar{display:flex;flex-direction:column;gap:1.5rem;align-self:stretch;flex:1 1 auto;min-height:0}#playerModal .video-modal__similar .player-modal__module{height:100%;display:flex;flex:1 1 auto;min-height:0;flex-direction:column}#playerModal .video-modal__similar .player-modal__module-list{flex:1 1 auto;min-height:0}#playerModal .video-modal__similar .player-modal__module-scroll{height:100%;max-height:none;min-height:0}}#playerModal .player-modal__module-item{width:100%}#playerModal#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card){display:block}#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card){display:flex;width:100%;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:var(--space-md)}#playerModal#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card){display:block}#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card){display:flex;width:100%;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:var(--space-md)}#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card) .video-card__media{width:clamp(var(--video-modal-item-media-min),18vw,var(--video-modal-item-media-max))}#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card) .video-card__media{width:clamp(var(--video-modal-item-media-min),18vw,var(--video-modal-item-media-max))!important}#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card) .video-card__media,#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card) .video-card__media{flex-shrink:0;overflow:hidden;border-radius:var(--radius-lg)}#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card) .video-card__content{padding:clamp(var(--space-sm),1.25vw,var(--space-md))}#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card) .video-card__content{padding:clamp(var(--space-sm),1.25vw,var(--space-md))!important}#playerModal#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card) .video-card__content{display:block}#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card) .video-card__content{display:flex;min-width:0;flex:1 1 0%;flex-direction:column;gap:var(--space-sm)}#playerModal#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card) .video-card__content{display:block}#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card) .video-card__content{display:flex;min-width:0;flex:1 1 0%;flex-direction:column;gap:var(--space-sm)}#playerModal#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card) .video-card__meta{display:block}#playerModal .player-modal__module-item>.card:not(.player-modal__similar-card) .video-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--font-size-xs);line-height:var(--line-height-tight);color:var(--text-muted-strong)}#playerModal#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card) .video-card__meta{display:block}#playerModal .player-modal__module-item>.\!card:not(.player-modal__similar-card) .video-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--font-size-xs);line-height:var(--line-height-tight);color:var(--text-muted-strong)}#playerModal .video-modal__similar .player-modal__module-list{gap:clamp(var(--space-2xs),.85vw,var(--space-sm))}.player-modal__similar-card{outline:2px solid transparent;outline-offset:2px}.player-modal__similar-card:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:0.7;--tw-ring-offset-width:2px;--tw-ring-offset-color:var(--surface-base);transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--motion-duration-fast);transition-timing-function:cubic-bezier(0,0,.2,1);--tw-ring-color:var(--color-accent)}#playerModal.player-modal__similar-card{display:block}.player-modal__similar-card{position:relative;displayLine truncated
|
||||
--motion-video-card-backdrop-translate
|
||||
);--video-card-backdrop-scale:1.12;--video-card-backdrop-blur:var(--blur-video-card-backdrop-strong);--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.watch-history-card:focus-visible{border-color:var(--color-accent);--tw-border-opacity:0.4;--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.watch-history-card[data-state=critical]{border-width:1px;border-color:var(--color-critical);--tw-border-opacity:0.4;background-color:var(--surface-raised-critical)}.watch-history-card[data-state=private]{background-color:var(--surface-raised-private);--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg)}.watch-history-card[data-state=disabled],.watch-history-card[data-state=private]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.watch-history-card[data-state=disabled]{opacity:.6;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.watch-history-card[data-alert=nsfw-owner]{border-width:1px;border-color:var(--color-critical);--tw-border-opacity:0.4;background-color:var(--color-black)}.watch-history-card[data-alert=nsfw-owner]:hover{--tw-border-opacity:0.6;--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.watch-history-card img[data-thumbnail-state=blurred],.watch-history-card img[data-visual-state=blurred]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-duration:var(--motion-duration-base);transition-timing-function:cubic-bezier(.4,0,.2,1);filter:blur(var(--blur-thumbnail-blur));transform:scale(1.05)}.watch-history-card[data-owner-is-viewer=true][data-url-health-state=offline][data-stream-health-state=unhealthy]{border-width:1px;border-color:var(--color-critical);--tw-border-opacity:0.4;background-color:var(--surface-raised-critical)}#playerModal#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card){display:block}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card){display:flex;width:100%;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:var(--space-md)}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__media{width:clamp(var(--video-modal-item-media-min),18vw,var(--video-modal-item-media-max));flex-shrink:0;overflow:hidden;border-radius:var(--radius-lg)}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__content{padding:clamp(var(--space-sm),1.25vw,var(--space-md))}#playerModal#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__content{display:block}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__content{display:flex;min-width:0;flex:1 1 0%;flex-direction:column;gap:var(--space-sm)}#playerModal#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__meta{display:block}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--font-size-xs);line-height:var(--line-height-tight);color:var(--text-muted-strong)}.watch-history-card[data-motion=enter]{opacity:0;animation:card-motion-enter .22s ease-out forwards}#playerModal.watch-history-card{display:block}.watch-history-card{display:flex;flex-wrap:wrap;align-items:stretch;gap:1.25rem;padding:1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--motion-duration-base);transition-timing-function:cubic-bezier(0,0,.2,1)}@media (prefers-reduced-motion:reduce){.watch-history-card,.watch-history-card[data-motion=enter]{transition-property:none}.watch-history-card[data-motion=enter]{opacity:1;animation:none}}.watch-history-card:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:640px){.watch-history-card{gap:1.5rem;padding:1.25rem}}.watch-history-card--private{border-color:var(--color-info);--tw-border-opacity:0.6}#playerModal.watch-histoLine truncated
|
||||
);--video-card-backdrop-scale:1.12;--video-card-backdrop-blur:var(--blur-video-card-backdrop-strong);--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.watch-history-card:focus-visible{border-color:var(--color-accent);--tw-border-opacity:0.4;--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.watch-history-card[data-state=critical]{border-width:1px;border-color:var(--color-critical);--tw-border-opacity:0.4;background-color:var(--surface-raised-critical)}.watch-history-card[data-state=private]{background-color:var(--surface-raised-private);--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg)}.watch-history-card[data-state=disabled],.watch-history-card[data-state=private]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.watch-history-card[data-state=disabled]{opacity:.6;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.watch-history-card[data-alert=nsfw-owner]{border-width:1px;border-color:var(--color-critical);--tw-border-opacity:0.4;background-color:var(--color-black)}.watch-history-card[data-alert=nsfw-owner]:hover{--tw-border-opacity:0.6;--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.watch-history-card img[data-thumbnail-state=blurred],.watch-history-card img[data-visual-state=blurred]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-duration:var(--motion-duration-base);transition-timing-function:cubic-bezier(.4,0,.2,1);filter:blur(var(--blur-thumbnail-blur));transform:scale(1.05)}.watch-history-card[data-owner-is-viewer=true][data-url-health-state=offline][data-stream-health-state=unhealthy]{border-width:1px;border-color:var(--color-critical);--tw-border-opacity:0.4;background-color:var(--surface-raised-critical)}#playerModal#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card){display:block}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card){display:flex;width:100%;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:var(--space-md)}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__media{width:clamp(var(--video-modal-item-media-min),18vw,var(--video-modal-item-media-max));flex-shrink:0;overflow:hidden;border-radius:var(--radius-lg)}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__content{padding:clamp(var(--space-sm),1.25vw,var(--space-md))}#playerModal#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__content{display:block}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__content{display:flex;min-width:0;flex:1 1 0%;flex-direction:column;gap:var(--space-sm)}#playerModal#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__meta{display:block}#playerModal .player-modal__module-item>.watch-history-card:not(.player-modal__similar-card) .video-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--font-size-xs);line-height:var(--line-height-tight);color:var(--text-muted-strong)}.watch-history-card[data-motion=enter]{opacity:0;animation:card-motion-enter .22s ease-out forwards}#playerModal.watch-history-card{display:block}.watch-history-card{display:flex;flex-wrap:wrap;align-items:stretch;gap:1.25rem;padding:1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:var(--motion-duration-base);transition-timing-function:cubic-bezier(0,0,.2,1)}@media (prefers-reduced-motion:reduce){.watch-history-card,.watch-history-card[data-motion=enter]{transition-property:none}.watch-history-card[data-motion=enter]{opacity:1;animation:none}}.watch-history-card:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:var(--shadow-lg);--tw-shadow-colored:var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:640px){.watch-history-card{gap:1.5rem;padding:1.25rem}}.watch-history-card--private{border-color:var(--color-info);--tw-border-opacity:0.6}#playerModal.watch-histoLine truncated
|
||||
+55
-22
@@ -241,7 +241,7 @@
|
||||
right: var(--space-2xs);
|
||||
width: var(--space-sm);
|
||||
height: var(--space-sm);
|
||||
border-radius: 999px;
|
||||
border-radius: var(--radius-full);
|
||||
border: var(--border-width-hairline) solid var(--color-page);
|
||||
background-color: var(--status-danger);
|
||||
display: none;
|
||||
@@ -3015,7 +3015,7 @@
|
||||
right: var(--space-3xs);
|
||||
width: var(--space-sm);
|
||||
height: var(--space-sm);
|
||||
border-radius: 999px;
|
||||
border-radius: var(--radius-full);
|
||||
border: var(--border-width-hairline) solid var(--surface-panel);
|
||||
background-color: var(--status-danger);
|
||||
display: none;
|
||||
@@ -5171,8 +5171,8 @@
|
||||
align-self: flex-start;
|
||||
padding: var(--space-3xs) var(--space-xs);
|
||||
border-radius: var(--radius-full);
|
||||
background: var(--unread-badge-background);
|
||||
color: var(--unread-badge-text);
|
||||
background: var(--color-accent);
|
||||
color: var(--color-white);
|
||||
font-size: var(--font-size-3xs);
|
||||
}
|
||||
|
||||
@@ -5292,12 +5292,21 @@
|
||||
|
||||
.dm-message-bubble--outgoing {
|
||||
align-self: flex-end;
|
||||
background: var(--message-bubble-outgoing-background);
|
||||
border-color: var(--message-bubble-outgoing-border);
|
||||
background: var(--color-accent);
|
||||
color: var(--color-white);
|
||||
border-color: var(--color-accent-strong);
|
||||
}
|
||||
|
||||
.dm-message-bubble--outgoing .dm-message-bubble__meta,
|
||||
.dm-message-bubble--outgoing .dm-message-bubble__status {
|
||||
color: var(--color-white);
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.dm-message-bubble__content {
|
||||
font-size: var(--font-size-sm);
|
||||
overflow-wrap: anywhere;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.dm-message-bubble__meta {
|
||||
@@ -5563,6 +5572,7 @@
|
||||
align-items: center;
|
||||
gap: var(--space-sm);
|
||||
flex-wrap: wrap;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.dm-composer__hint {
|
||||
@@ -5571,7 +5581,7 @@
|
||||
}
|
||||
|
||||
.dm-composer__attach,
|
||||
.dm-composer__privacy {
|
||||
.dm-composer__more-btn {
|
||||
border-radius: var(--radius-md);
|
||||
border: var(--border-width-hairline) solid var(--border-default);
|
||||
background: var(--surface-base);
|
||||
@@ -5581,33 +5591,56 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dm-composer__zap-toggle {
|
||||
border-radius: var(--radius-md);
|
||||
border: var(--border-width-hairline) solid var(--border-default);
|
||||
background: var(--surface-base);
|
||||
color: var(--text-muted);
|
||||
padding: var(--space-2xs) var(--space-sm);
|
||||
font-size: var(--font-size-2xs);
|
||||
cursor: pointer;
|
||||
.dm-composer__more-btn {
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
min-width: 2rem;
|
||||
}
|
||||
|
||||
.dm-composer__zap-toggle[aria-pressed="true"] {
|
||||
border-color: var(--border-strong);
|
||||
.dm-composer__more-menu {
|
||||
position: absolute;
|
||||
bottom: 100%;
|
||||
left: 0;
|
||||
margin-bottom: var(--space-xs);
|
||||
background: var(--surface-overlay-panel);
|
||||
color: var(--text-primary);
|
||||
border: var(--border-width-hairline) solid var(--border-default);
|
||||
border-radius: var(--radius-md);
|
||||
box-shadow: var(--shadow-popover);
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 8rem;
|
||||
padding: var(--space-xs);
|
||||
}
|
||||
|
||||
.dm-composer__zap-toggle:hover,
|
||||
.dm-composer__zap-toggle:focus-visible {
|
||||
.dm-composer__menu-item {
|
||||
text-align: left;
|
||||
padding: var(--space-xs) var(--space-sm);
|
||||
border-radius: var(--radius-sm);
|
||||
font-size: var(--font-size-xs);
|
||||
color: var(--text-muted);
|
||||
background: transparent;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
transition: background var(--motion-duration-fast) ease-out;
|
||||
}
|
||||
|
||||
.dm-composer__menu-item:hover,
|
||||
.dm-composer__menu-item:focus-visible {
|
||||
background: var(--surface-overlay-panel-soft);
|
||||
color: var(--text-primary);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.dm-composer__menu-item[aria-pressed="true"] {
|
||||
background: var(--color-accent);
|
||||
color: var(--color-white);
|
||||
}
|
||||
|
||||
.dm-composer__attach:hover,
|
||||
.dm-composer__attach:focus-visible,
|
||||
.dm-composer__privacy:hover,
|
||||
.dm-composer__privacy:focus-visible {
|
||||
.dm-composer__more-btn:hover,
|
||||
.dm-composer__more-btn:focus-visible {
|
||||
background: var(--surface-overlay-panel-soft);
|
||||
color: var(--text-primary);
|
||||
outline: none;
|
||||
|
||||
+33
-4
@@ -62,27 +62,56 @@ export function Composer({
|
||||
attachButton.type = "button";
|
||||
attachButton.setAttribute("aria-label", "Attach a file");
|
||||
|
||||
const moreButton = createElement(
|
||||
doc,
|
||||
"button",
|
||||
"btn-ghost dm-composer__more-btn",
|
||||
"…",
|
||||
);
|
||||
moreButton.type = "button";
|
||||
moreButton.setAttribute("aria-label", "More options");
|
||||
moreButton.setAttribute("aria-expanded", "false");
|
||||
moreButton.setAttribute("aria-haspopup", "true");
|
||||
|
||||
const moreMenu = createElement(doc, "div", "dm-composer__more-menu hidden");
|
||||
moreMenu.setAttribute("role", "menu");
|
||||
|
||||
const privacyToggle = createElement(
|
||||
doc,
|
||||
"button",
|
||||
"dm-composer__privacy",
|
||||
"dm-composer__menu-item",
|
||||
"NIP-04",
|
||||
);
|
||||
privacyToggle.type = "button";
|
||||
privacyToggle.setAttribute("role", "menuitem");
|
||||
privacyToggle.setAttribute("aria-pressed", "false");
|
||||
privacyToggle.setAttribute("aria-label", "Toggle privacy mode");
|
||||
|
||||
const zapToggle = createElement(doc, "button", "dm-composer__zap-toggle", "Zap");
|
||||
const zapToggle = createElement(doc, "button", "dm-composer__menu-item", "Zap");
|
||||
zapToggle.type = "button";
|
||||
zapToggle.setAttribute("role", "menuitem");
|
||||
zapToggle.setAttribute("aria-expanded", "false");
|
||||
zapToggle.setAttribute("aria-label", "Open zap composer");
|
||||
zapToggle.setAttribute("aria-pressed", "false");
|
||||
|
||||
moreMenu.appendChild(privacyToggle);
|
||||
moreMenu.appendChild(zapToggle);
|
||||
|
||||
tools.appendChild(attachButton);
|
||||
tools.appendChild(privacyToggle);
|
||||
tools.appendChild(zapToggle);
|
||||
tools.appendChild(moreButton);
|
||||
tools.appendChild(moreMenu);
|
||||
tools.appendChild(hint);
|
||||
|
||||
moreButton.addEventListener("click", () => {
|
||||
const isExpanded = moreButton.getAttribute("aria-expanded") === "true";
|
||||
moreButton.setAttribute("aria-expanded", String(!isExpanded));
|
||||
if (!isExpanded) {
|
||||
moreMenu.classList.remove("hidden");
|
||||
} else {
|
||||
moreMenu.classList.add("hidden");
|
||||
}
|
||||
});
|
||||
|
||||
const button = createElement(doc, "button", "dm-composer__send", "Send");
|
||||
button.type = "submit";
|
||||
button.setAttribute("aria-label", "Send message");
|
||||
|
||||
@@ -59,8 +59,6 @@ export function ContactRow({
|
||||
header.appendChild(nameEl);
|
||||
|
||||
const meta = createElement(doc, "span", "dm-contact-row__meta");
|
||||
const timeEl = createElement(doc, "span", "dm-contact-row__time", timestamp);
|
||||
meta.appendChild(timeEl);
|
||||
|
||||
if (Number.isFinite(zapTotalSats)) {
|
||||
const zapTotal = createElement(
|
||||
@@ -79,14 +77,6 @@ export function ContactRow({
|
||||
header.appendChild(meta);
|
||||
content.appendChild(header);
|
||||
|
||||
const previewEl = createElement(
|
||||
doc,
|
||||
"div",
|
||||
"dm-contact-row__preview",
|
||||
preview,
|
||||
);
|
||||
content.appendChild(previewEl);
|
||||
|
||||
if (unreadCount > 0) {
|
||||
const badge = createElement(doc, "span", "dm-contact-row__badge");
|
||||
badge.textContent = `${unreadCount}`;
|
||||
|
||||
+1
-1
@@ -6,4 +6,4 @@ npm error npm stars # View packages marked as favorites
|
||||
npm error
|
||||
npm error To see a list of scripts, run:
|
||||
npm error npm run
|
||||
npm error A complete log of this run can be found in: /home/jules/.npm/_logs/2026-01-16T13_26_28_834Z-debug-0.log
|
||||
npm error A complete log of this run can be found in: /home/jules/.npm/_logs/2026-01-19T20_34_33_214Z-debug-0.log
|
||||
@@ -13,7 +13,7 @@ const TIMESTAMP = new Date().toISOString().replace(/[:.]/g, '-');
|
||||
const LOG_FILE = path.join(ARTIFACTS_DIR, `smoke-${TIMESTAMP}.log`);
|
||||
const REPORT_FILE = path.join(ARTIFACTS_DIR, `smoke-report-${TIMESTAMP}.json`);
|
||||
const RELAY_PORT = 8008;
|
||||
const HTTP_PORT = 8001;
|
||||
const HTTP_PORT = 8000;
|
||||
|
||||
// Ensure artifacts dir exists
|
||||
if (!fs.existsSync(ARTIFACTS_DIR)) {
|
||||
@@ -107,22 +107,10 @@ async function runSmokeTest() {
|
||||
REPO_ROOT,
|
||||
(output) => output.includes(`running on ws://localhost:${RELAY_PORT}`) || output.includes(`running on port ${RELAY_PORT}`)
|
||||
);
|
||||
// Relay script in repo uses hardcoded port 8008 or env var PORT.
|
||||
// I need to check if simple-relay.mjs respects PORT env var.
|
||||
// Checking existing simple-relay.mjs content... it uses const PORT = 8008;
|
||||
// Wait, I saw "const PORT = 8008;" in the file content.
|
||||
// I should probably edit simple-relay.mjs to accept PORT env or just use 8008.
|
||||
// Let's assume 8008 for now if I can't change it easily, but wait, I can pass it via env?
|
||||
// The script I read: "const PORT = 8008;" -> It does NOT use process.env.PORT.
|
||||
// So I must use 8008.
|
||||
// Let's restart relayProc with correct expectation if needed, or just modify the script temporarily?
|
||||
// Ah, the user prompt said "Start a local relay instance".
|
||||
// I'll stick to 8008.
|
||||
|
||||
} catch (e) {
|
||||
log('Failed to start relay: ' + e.message, 'FATAL');
|
||||
// We can try to proceed if relay is already running?
|
||||
// But let's fix the port logic.
|
||||
// We attempt to proceed, as relay might be running
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
+2052
-488
File diff suppressed because it is too large.
Load diff
Binary file not shown.
|
After Width: | Height: | Size: 345 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 169 KiB |
@@ -0,0 +1,51 @@
|
||||
from playwright.sync_api import sync_playwright
|
||||
|
||||
def verify_profile_modal(page):
|
||||
page.goto("http://localhost:8001")
|
||||
|
||||
# 1. Open the profile modal by clicking the avatar button
|
||||
# Assuming standard header layout; if not found, we will adapt.
|
||||
# The header avatar usually has an ID like 'profileAvatar' or 'headerProfileButton'.
|
||||
# I'll try to find a button with an image or "profile" in the name/aria-label.
|
||||
|
||||
# The button ID is profileButton
|
||||
page.locator("#profileButton").click()
|
||||
|
||||
# 2. Wait for modal to appear
|
||||
# The modal ID is #profileModal
|
||||
page.locator("#profileModal").wait_for(state="visible")
|
||||
|
||||
# 3. Navigate to Messages tab
|
||||
# Button ID: #profileNavMessages
|
||||
page.locator("#profileNavMessages").click()
|
||||
|
||||
# 4. Wait for messages pane to be visible
|
||||
page.locator("#profilePaneMessages").wait_for(state="visible")
|
||||
|
||||
# 5. Take a screenshot of the full viewport to verify modal size and layout
|
||||
page.screenshot(path="verification/profile_modal_full.png", full_page=True)
|
||||
|
||||
# 6. Take a screenshot specifically of the Composer area to check the "More" button
|
||||
composer = page.locator(".dm-composer")
|
||||
if composer.is_visible():
|
||||
composer.screenshot(path="verification/composer_layout.png")
|
||||
|
||||
# 7. Click the "More" button to show the menu
|
||||
more_btn = page.locator(".dm-composer__more")
|
||||
more_btn.click()
|
||||
page.wait_for_timeout(200) # Wait for menu to unhide
|
||||
composer.screenshot(path="verification/composer_menu_open.png")
|
||||
|
||||
if __name__ == "__main__":
|
||||
with sync_playwright() as p:
|
||||
browser = p.chromium.launch(headless=True)
|
||||
# Use a desktop viewport size to verify full-screen behavior
|
||||
page = browser.new_page(viewport={"width": 1280, "height": 800})
|
||||
try:
|
||||
verify_profile_modal(page)
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
# Take a debug screenshot if things fail
|
||||
page.screenshot(path="verification/debug_fail.png")
|
||||
finally:
|
||||
browser.close()
|
||||
Reference in new issue
Block a user