ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁
banner
zkhouse.bsky.social
ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁
@zkhouse.bsky.social
|คุณเซอร์| writer account #ถ้าตัวประกอบจะซวย #แอชเชอร์คนนั้น #ตัวร้ายกับหายนะ #ฮีลเลอร์ที่แปลว่าแฟน profile © @._cinkai
Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁
ได้รับบ็อกซ์น้องเชสเชียร์แล้ว/ᐠ. 。.ᐟ\ᵐᵉᵒʷˎˊ˗
#ฮีลเลอร์ที่แปลว่าแฟน
October 26, 2024 at 5:53 AM
Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁
【Work】
สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน

ฮันเตอร์-ดันเจี้ยน-แอคชั่นเรื่องยาว 4 เล่มจบ! แฟนคลับสู่แฟนครับและปูมหลังที่น่าค้นหา✨

Owner / @zkhouse.bsky.social
Illustrator / anie
Title design / yy_artwork
October 27, 2024 at 8:08 AM
Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁
【Work】
สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน

<br>font custom design เหลี่ยมปลายตัด กับ element futuristic ของระบบสกิลและจอสำหรับควบคุมโดรนด้วย</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreiaiqykdivu4pno5da7eo57zsdr6buxmeoxal7ewamyct5dow42rae@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreiaiqykdivu4pno5da7eo57zsdr6buxmeoxal7ewamyct5dow42rae@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreicapinnrrwgqqgwekk74u45yvevlfs5tk6wkruafdqtnkprnorqiy@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreicapinnrrwgqqgwekk74u45yvevlfs5tk6wkruafdqtnkprnorqiy@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreibveufkcb7gjgloodjrrimkuegabm2bcrlh6kmr5zftuaugqp3pmq@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreibveufkcb7gjgloodjrrimkuegabm2bcrlh6kmr5zftuaugqp3pmq@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreihuojgn5p4al6qih64qsvwhjmeom3xivzk5kwbqrswvrslixu5akq@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreihuojgn5p4al6qih64qsvwhjmeom3xivzk5kwbqrswvrslixu5akq@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 27, 2024 at 8:28 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i6kzqkni2i"> 【Work】<br><a href="https://www.readawrite.com/a/61ca084202dfc65998c82d006cfa531b" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">สกิลของผมชื่อแมรี่ ซู</a> <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br><br><Title in color and silhouette version><br>font custom design เหลี่ยมปลายตัด กับ element futuristic ของระบบสกิลและจอสำหรับควบคุมโดรนด้วย </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i6kzqkni2i" data-bluesky-interactions-reply-cid-param="bafyreiaj3xj2ika7rvous4ogm5texzdo6ek37u77gvpz3ovnoglwgrqpka" data-bluesky-interactions-reply-root-uri-param="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i5h6gzd62a" data-bluesky-interactions-reply-root-cid-param="bafyreicjeiw6olrwifnbhiu74vlvart7626347ktfu42hymskr4gfsws3e" data-bluesky-interactions-reply-author-name-param="yy_artwork" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreiefpsgiwc4xuom67ilckexen7ljjbg3momk2qirwhfro2nxw7xgda@jpeg" data-bluesky-interactions-post-path-param="/bsky/yyartwork.bsky.social/post/3l7i6kzqkni2i" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i6kzqkni2i" data-bluesky-repost-menu-cid-value="bafyreiaj3xj2ika7rvous4ogm5texzdo6ek37u77gvpz3ovnoglwgrqpka" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="yyartwork.bsky.social" data-bluesky-repost-menu-post-text-value="【Work】 สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน <Title in color and silhouette version> font custom design เหลี่ยมปลายตัด กับ element futuristic ของระบบสกิลและจอสำหรับควบคุมโดรนด้วย" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">2</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i6kzqkni2i" data-bluesky-interactions-cid-param="bafyreiaj3xj2ika7rvous4ogm5texzdo6ek37u77gvpz3ovnoglwgrqpka" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">1</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/yyartwork.bsky.social/post/3l7i6kzqkni2i" data-share-title-value="yy_artwork on Lightnews" data-share-text-value="【Work】 สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน <Title in color and silhouette version> font custom design เหลี่ยมปลายตัด กับ element fut…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="【Work】 สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน <Title in color and silhouette version> font custom design เหลี่ยมปลายตัด กับ element futuristic ของระบบสกิลและจอสำหรับควบคุมโดรนด้วย" data-bluesky-options-author-handle-value="yyartwork.bsky.social" data-bluesky-options-author-did-value="did:plc:p7shgbbpjwko3corlirsofvo" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/yyartwork.bsky.social/post/3l7i6m773iu2o" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=yyartwork.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="yy_artwork" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreiefpsgiwc4xuom67ilckexen7ljjbg3momk2qirwhfro2nxw7xgda@jpeg" alt="yyartwork.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=yyartwork.bsky.social" class="truncate hover:underline text-black no-card-link">yy_artwork</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=yyartwork.bsky.social" class="hover:underline text-gray-500 no-card-link">@yyartwork.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">【Work】<br><a href="https://www.readawrite.com/a/61ca084202dfc65998c82d006cfa531b" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">สกิลของผมชื่อแมรี่ ซู</a> <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br><br>Emoji in used. ปรับตามอารมณ์ในแต่ละประโยคด้วยนะ! ถ้าสังเกตเห็นดีเทลเล็กๆ ตรงนี้จะดีใจมากเลยค่ะ😊💛</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreihzndd22rtkxeoairofzxpb6yadoxroj5bjwfuq3yl24l5q5wmi34@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreihzndd22rtkxeoairofzxpb6yadoxroj5bjwfuq3yl24l5q5wmi34@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 27, 2024 at 8:28 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i6m773iu2o"> 【Work】<br><a href="https://www.readawrite.com/a/61ca084202dfc65998c82d006cfa531b" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">สกิลของผมชื่อแมรี่ ซู</a> <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br><br>Emoji in used. ปรับตามอารมณ์ในแต่ละประโยคด้วยนะ! ถ้าสังเกตเห็นดีเทลเล็กๆ ตรงนี้จะดีใจมากเลยค่ะ😊💛 </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i6m773iu2o" data-bluesky-interactions-reply-cid-param="bafyreigme57xggbrlkvcs2mso6ibcih6jxb6nplohomsbsfcy2mmll36dm" data-bluesky-interactions-reply-root-uri-param="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i5h6gzd62a" data-bluesky-interactions-reply-root-cid-param="bafyreicjeiw6olrwifnbhiu74vlvart7626347ktfu42hymskr4gfsws3e" data-bluesky-interactions-reply-author-name-param="yy_artwork" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:p7shgbbpjwko3corlirsofvo/bafkreiefpsgiwc4xuom67ilckexen7ljjbg3momk2qirwhfro2nxw7xgda@jpeg" data-bluesky-interactions-post-path-param="/bsky/yyartwork.bsky.social/post/3l7i6m773iu2o" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i6m773iu2o" data-bluesky-repost-menu-cid-value="bafyreigme57xggbrlkvcs2mso6ibcih6jxb6nplohomsbsfcy2mmll36dm" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="yyartwork.bsky.social" data-bluesky-repost-menu-post-text-value="【Work】 สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน Emoji in used. ปรับตามอารมณ์ในแต่ละประโยคด้วยนะ! ถ้าสังเกตเห็นดีเทลเล็กๆ ตรงนี้จะดีใจมากเลยค่ะ😊💛" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">2</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:p7shgbbpjwko3corlirsofvo/app.bsky.feed.post/3l7i6m773iu2o" data-bluesky-interactions-cid-param="bafyreigme57xggbrlkvcs2mso6ibcih6jxb6nplohomsbsfcy2mmll36dm" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/yyartwork.bsky.social/post/3l7i6m773iu2o" data-share-title-value="yy_artwork on Lightnews" data-share-text-value="【Work】 สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน Emoji in used. ปรับตามอารมณ์ในแต่ละประโยคด้วยนะ! ถ้าสังเกตเห็นดีเทลเล็กๆ ตรงนี้จะดีใจมากเ…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="【Work】 สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน Emoji in used. ปรับตามอารมณ์ในแต่ละประโยคด้วยนะ! ถ้าสังเกตเห็นดีเทลเล็กๆ ตรงนี้จะดีใจมากเลยค่ะ😊💛" data-bluesky-options-author-handle-value="yyartwork.bsky.social" data-bluesky-options-author-did-value="did:plc:p7shgbbpjwko3corlirsofvo" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/mitunlee.bsky.social/post/3l7ndl4sk6e2s" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=mitunlee.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="☘︎" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreigcb6k4cqu2ppcgik6vxpw4s7irb4ovwvl5xwtvnyaixjpjck35ua@jpeg" alt="mitunlee.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=mitunlee.bsky.social" class="truncate hover:underline text-black no-card-link">☘︎</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=mitunlee.bsky.social" class="hover:underline text-gray-500 no-card-link">@mitunlee.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">ฟิน ✨☔️🪼 <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a></div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreigup54xdh3uxxm4nqlqdnay6tvticupodzp2u7t6ehn2axuxxvuau@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreigup54xdh3uxxm4nqlqdnay6tvticupodzp2u7t6ehn2axuxxvuau@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreibxkdkhf4slvqhb75kq4tln4db3j3ioq5rnru4q5xivl4lizhmymm@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreibxkdkhf4slvqhb75kq4tln4db3j3ioq5rnru4q5xivl4lizhmymm@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreibnxuzgtrfn7hbvetm3iaju2e5xdydjpau4t63pdcxcp3q7eheb7i@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreibnxuzgtrfn7hbvetm3iaju2e5xdydjpau4t63pdcxcp3q7eheb7i@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreif5z5xfymljhonisgz6dkakw6p4kfqbwpdg65xrkxicvk4pzf737q@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreif5z5xfymljhonisgz6dkakw6p4kfqbwpdg65xrkxicvk4pzf737q@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 29, 2024 at 9:41 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:otbp45bxtrtqbmri6ir7w3h5/app.bsky.feed.post/3l7ndl4sk6e2s"> ฟิน ✨☔️🪼 <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:otbp45bxtrtqbmri6ir7w3h5/app.bsky.feed.post/3l7ndl4sk6e2s" data-bluesky-interactions-reply-cid-param="bafyreihn3lu6xkvdh3pgx3ddzyxca5yodqsq3cmmcmw4ra65ecvl36tyye" data-bluesky-interactions-reply-root-uri-param="at://did:plc:otbp45bxtrtqbmri6ir7w3h5/app.bsky.feed.post/3l7n4inbhlm2w" data-bluesky-interactions-reply-root-cid-param="bafyreibamlejn3scwnkri3ln4yr4gskraaf2mfcf4qb7usr6x2k4wmqupu" data-bluesky-interactions-reply-author-name-param="☘︎" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:otbp45bxtrtqbmri6ir7w3h5/bafkreigcb6k4cqu2ppcgik6vxpw4s7irb4ovwvl5xwtvnyaixjpjck35ua@jpeg" data-bluesky-interactions-post-path-param="/bsky/mitunlee.bsky.social/post/3l7ndl4sk6e2s" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:otbp45bxtrtqbmri6ir7w3h5/app.bsky.feed.post/3l7ndl4sk6e2s" data-bluesky-repost-menu-cid-value="bafyreihn3lu6xkvdh3pgx3ddzyxca5yodqsq3cmmcmw4ra65ecvl36tyye" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="mitunlee.bsky.social" data-bluesky-repost-menu-post-text-value="ฟิน ✨☔️🪼 #ฮีลเลอร์ที่แปลว่าแฟน" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">1</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:otbp45bxtrtqbmri6ir7w3h5/app.bsky.feed.post/3l7ndl4sk6e2s" data-bluesky-interactions-cid-param="bafyreihn3lu6xkvdh3pgx3ddzyxca5yodqsq3cmmcmw4ra65ecvl36tyye" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/mitunlee.bsky.social/post/3l7ndl4sk6e2s" data-share-title-value="☘︎ on Lightnews" data-share-text-value="ฟิน ✨☔️🪼 #ฮีลเลอร์ที่แปลว่าแฟน" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="ฟิน ✨☔️🪼 #ฮีลเลอร์ที่แปลว่าแฟน" data-bluesky-options-author-handle-value="mitunlee.bsky.social" data-bluesky-options-author-did-value="did:plc:otbp45bxtrtqbmri6ir7w3h5" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/aoorm.bsky.social/post/3l7ngckbde42h" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=aoorm.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="@orm" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:yxssmqr6hulzddiq4sh4galr/bafkreih6evcrnhswx6u2fihqvb6p47uaummcxju6mhw4alj277ylr4437a@jpeg" alt="aoorm.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=aoorm.bsky.social" class="truncate hover:underline text-black no-card-link">@orm</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=aoorm.bsky.social" class="hover:underline text-gray-500 no-card-link">@aoorm.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">ในที่สุด🥹🫶 <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a></div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:yxssmqr6hulzddiq4sh4galr/bafkreiffnngogitabzfefwkbcgspyunay55vvxo7tkqcggztquui7nefsa@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:yxssmqr6hulzddiq4sh4galr/bafkreiffnngogitabzfefwkbcgspyunay55vvxo7tkqcggztquui7nefsa@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:yxssmqr6hulzddiq4sh4galr/bafkreicgueonuuhe7mr3hzfbuzsomrbg2pbei46mg457acyehnn5ofkkbu@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:yxssmqr6hulzddiq4sh4galr/bafkreicgueonuuhe7mr3hzfbuzsomrbg2pbei46mg457acyehnn5ofkkbu@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 29, 2024 at 10:29 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:yxssmqr6hulzddiq4sh4galr/app.bsky.feed.post/3l7ngckbde42h"> ในที่สุด🥹🫶 <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:yxssmqr6hulzddiq4sh4galr/app.bsky.feed.post/3l7ngckbde42h" data-bluesky-interactions-reply-cid-param="bafyreigrxp3synp5v33zzyemczo6rf4dx6wyxluqtmm2lfsm3o37kfruya" data-bluesky-interactions-reply-root-uri-param="at://did:plc:yxssmqr6hulzddiq4sh4galr/app.bsky.feed.post/3l7ngckbde42h" data-bluesky-interactions-reply-root-cid-param="bafyreigrxp3synp5v33zzyemczo6rf4dx6wyxluqtmm2lfsm3o37kfruya" data-bluesky-interactions-reply-author-name-param="@orm" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:yxssmqr6hulzddiq4sh4galr/bafkreih6evcrnhswx6u2fihqvb6p47uaummcxju6mhw4alj277ylr4437a@jpeg" data-bluesky-interactions-post-path-param="/bsky/aoorm.bsky.social/post/3l7ngckbde42h" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:yxssmqr6hulzddiq4sh4galr/app.bsky.feed.post/3l7ngckbde42h" data-bluesky-repost-menu-cid-value="bafyreigrxp3synp5v33zzyemczo6rf4dx6wyxluqtmm2lfsm3o37kfruya" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="aoorm.bsky.social" data-bluesky-repost-menu-post-text-value="ในที่สุด🥹🫶 #ฮีลเลอร์ที่แปลว่าแฟน" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">1</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:yxssmqr6hulzddiq4sh4galr/app.bsky.feed.post/3l7ngckbde42h" data-bluesky-interactions-cid-param="bafyreigrxp3synp5v33zzyemczo6rf4dx6wyxluqtmm2lfsm3o37kfruya" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/aoorm.bsky.social/post/3l7ngckbde42h" data-share-title-value="@orm on Lightnews" data-share-text-value="ในที่สุด🥹🫶 #ฮีลเลอร์ที่แปลว่าแฟน" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="ในที่สุด🥹🫶 #ฮีลเลอร์ที่แปลว่าแฟน" data-bluesky-options-author-handle-value="aoorm.bsky.social" data-bluesky-options-author-did-value="did:plc:yxssmqr6hulzddiq4sh4galr" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/jfnzspace.bsky.social/post/3laazdoye2g2k" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=jfnzspace.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="•|KRGNazaa|•" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:34bfavey5xbtufkbrck4mfmi/bafkreidtilz4xqhbxcxsj3pgmaraijgglnlohjwu3b4uq6fcvx4mjoy73q@jpeg" alt="jfnzspace.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=jfnzspace.bsky.social" class="truncate hover:underline text-black no-card-link">•|KRGNazaa|•</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=jfnzspace.bsky.social" class="hover:underline text-gray-500 no-card-link">@jfnzspace.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">มีมนี้กับเอลิเชสคือเข้ากันสุด47678865658 มาส่งแฟนอาร์ตค่ะฟฟ <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a></div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:34bfavey5xbtufkbrck4mfmi/bafkreigpmkpgdoyiaxxbqwqat4efi7in2q2do6zhjxvghknlcmp7xuon5y@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:34bfavey5xbtufkbrck4mfmi/bafkreigpmkpgdoyiaxxbqwqat4efi7in2q2do6zhjxvghknlcmp7xuon5y@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>November 6, 2024 at 5:31 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:34bfavey5xbtufkbrck4mfmi/app.bsky.feed.post/3laazdoye2g2k"> มีมนี้กับเอลิเชสคือเข้ากันสุด47678865658 มาส่งแฟนอาร์ตค่ะฟฟ <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:34bfavey5xbtufkbrck4mfmi/app.bsky.feed.post/3laazdoye2g2k" data-bluesky-interactions-reply-cid-param="bafyreieb32vv5omyomguuib5pzkbmy7q4hau37etml4zzq7kd76vo3fxpi" data-bluesky-interactions-reply-root-uri-param="at://did:plc:34bfavey5xbtufkbrck4mfmi/app.bsky.feed.post/3laazdoye2g2k" data-bluesky-interactions-reply-root-cid-param="bafyreieb32vv5omyomguuib5pzkbmy7q4hau37etml4zzq7kd76vo3fxpi" data-bluesky-interactions-reply-author-name-param="•|KRGNazaa|•" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:34bfavey5xbtufkbrck4mfmi/bafkreidtilz4xqhbxcxsj3pgmaraijgglnlohjwu3b4uq6fcvx4mjoy73q@jpeg" data-bluesky-interactions-post-path-param="/bsky/jfnzspace.bsky.social/post/3laazdoye2g2k" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:34bfavey5xbtufkbrck4mfmi/app.bsky.feed.post/3laazdoye2g2k" data-bluesky-repost-menu-cid-value="bafyreieb32vv5omyomguuib5pzkbmy7q4hau37etml4zzq7kd76vo3fxpi" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="jfnzspace.bsky.social" data-bluesky-repost-menu-post-text-value="มีมนี้กับเอลิเชสคือเข้ากันสุด47678865658 มาส่งแฟนอาร์ตค่ะฟฟ #ฮีลเลอร์ที่แปลว่าแฟน" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">2</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:34bfavey5xbtufkbrck4mfmi/app.bsky.feed.post/3laazdoye2g2k" data-bluesky-interactions-cid-param="bafyreieb32vv5omyomguuib5pzkbmy7q4hau37etml4zzq7kd76vo3fxpi" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/jfnzspace.bsky.social/post/3laazdoye2g2k" data-share-title-value="•|KRGNazaa|• on Lightnews" data-share-text-value="มีมนี้กับเอลิเชสคือเข้ากันสุด47678865658 มาส่งแฟนอาร์ตค่ะฟฟ #ฮีลเลอร์ที่แปลว่าแฟน" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="มีมนี้กับเอลิเชสคือเข้ากันสุด47678865658 มาส่งแฟนอาร์ตค่ะฟฟ #ฮีลเลอร์ที่แปลว่าแฟน" data-bluesky-options-author-handle-value="jfnzspace.bsky.social" data-bluesky-options-author-did-value="did:plc:34bfavey5xbtufkbrck4mfmi" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/dolotnyc607.bsky.social/post/3lainxc6lv52a" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=dolotnyc607.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="Dolo_T" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:wt2hbmh3jtu3ypk22ez3m7ap/bafkreicfoqisd4tb4rxog56ipiiczwmxmo6u4xzrxwi4ymcuap3n6ni5tm@jpeg" alt="dolotnyc607.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=dolotnyc607.bsky.social" class="truncate hover:underline text-black no-card-link">Dolo_T</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=dolotnyc607.bsky.social" class="hover:underline text-gray-500 no-card-link">@dolotnyc607.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]"><a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br><br>[33] นิยายวายจบแล้ว แฟนตาซี ดันเจี้ยน<br>เรื่อง : สกิลของผมชื่อแมรี่ ซู<br>นามปากกา : Zer'Kaem<br><br><a href="https://www.readawrite.com/a/61ca084202dfc65998c82d006cfa531b" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">www.readawrite.com/a/61ca084202...</a><br><br><a href="/hashtag/%E0%B9%81%E0%B8%99%E0%B8%B0%E0%B8%99%E0%B8%B3%E0%B8%99%E0%B8%B4%E0%B8%A2%E0%B8%B2%E0%B8%A2%E0%B8%A7%E0%B8%B2%E0%B8%A2" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#แนะนำนิยายวาย</a> <a href="/hashtag/%E0%B9%81%E0%B8%99%E0%B8%B0%E0%B8%99%E0%B8%B3%E0%B8%99%E0%B8%B4%E0%B8%A2%E0%B8%B2%E0%B8%A2" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#แนะนำนิยาย</a> <a href="/hashtag/%E0%B8%94%E0%B8%A5%E0%B8%98%E0%B8%B5%E0%B8%AD%E0%B9%88%E0%B8%B2%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ดลธีอ่าน</a></div> <a href="https://www.readawrite.com/a/61ca084202dfc65998c82d006cfa531b" target="_blank" rel="noopener" class="block mt-2 border rounded overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:wt2hbmh3jtu3ypk22ez3m7ap/bafkreig6wf2sikdxe4nxx5xigpmr6y33tpgbzz7i63p5a3wfztq5asgsie@jpeg" class="w-full h-40 object-cover" loading="lazy"> <div class="p-2"> <div class="text-sm font-semibold truncate">[Pre-order] สกิลของผมชื่อแมรี่ ซู #ฮีลเลอร์ที่แปลว่าแฟน: นิยาย Boy Love Lovely Room</div> <div class="text-xs text-gray-500 truncate">กิจการไลฟ์สดการลงดันเจี้ยนเฟื่องฟู ผมที่ทำอาชีพตากล้องถูกฮันเตอร์อันดับ 1 เลือกไปเป็นฮีลเลอร์ แล้วสก</div> </div> <div class="border-t px-2 py-2 text-sm text-gray-600 flex items-center gap-2"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 0 1 0 20"/><path d="M12 2a15.3 15.3 0 0 0 0 20"/></svg> <span class="truncate">www.readawrite.com</span> </div> </a> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>November 9, 2024 at 6:28 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:wt2hbmh3jtu3ypk22ez3m7ap/app.bsky.feed.post/3lainxc6lv52a"> <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br><br>[33] นิยายวายจบแล้ว แฟนตาซี ดันเจี้ยน<br>เรื่อง : สกิลของผมชื่อแมรี่ ซู<br>นามปากกา : Zer'Kaem<br><br><a href="https://www.readawrite.com/a/61ca084202dfc65998c82d006cfa531b" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">www.readawrite.com/a/61ca084202...</a><br><br><a href="/hashtag/%E0%B9%81%E0%B8%99%E0%B8%B0%E0%B8%99%E0%B8%B3%E0%B8%99%E0%B8%B4%E0%B8%A2%E0%B8%B2%E0%B8%A2%E0%B8%A7%E0%B8%B2%E0%B8%A2" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#แนะนำนิยายวาย</a> <a href="/hashtag/%E0%B9%81%E0%B8%99%E0%B8%B0%E0%B8%99%E0%B8%B3%E0%B8%99%E0%B8%B4%E0%B8%A2%E0%B8%B2%E0%B8%A2" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#แนะนำนิยาย</a> <a href="/hashtag/%E0%B8%94%E0%B8%A5%E0%B8%98%E0%B8%B5%E0%B8%AD%E0%B9%88%E0%B8%B2%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ดลธีอ่าน</a> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:wt2hbmh3jtu3ypk22ez3m7ap/app.bsky.feed.post/3lainxc6lv52a" data-bluesky-interactions-reply-cid-param="bafyreieqalzowrf3gbqedrunqnclpnmoheavkiuu352zuyjp66v24ynmam" data-bluesky-interactions-reply-root-uri-param="at://did:plc:wt2hbmh3jtu3ypk22ez3m7ap/app.bsky.feed.post/3lainxc6lv52a" data-bluesky-interactions-reply-root-cid-param="bafyreieqalzowrf3gbqedrunqnclpnmoheavkiuu352zuyjp66v24ynmam" data-bluesky-interactions-reply-author-name-param="Dolo_T" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:wt2hbmh3jtu3ypk22ez3m7ap/bafkreicfoqisd4tb4rxog56ipiiczwmxmo6u4xzrxwi4ymcuap3n6ni5tm@jpeg" data-bluesky-interactions-post-path-param="/bsky/dolotnyc607.bsky.social/post/3lainxc6lv52a" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:wt2hbmh3jtu3ypk22ez3m7ap/app.bsky.feed.post/3lainxc6lv52a" data-bluesky-repost-menu-cid-value="bafyreieqalzowrf3gbqedrunqnclpnmoheavkiuu352zuyjp66v24ynmam" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="dolotnyc607.bsky.social" data-bluesky-repost-menu-post-text-value="#ฮีลเลอร์ที่แปลว่าแฟน [33] นิยายวายจบแล้ว แฟนตาซี ดันเจี้ยน เรื่อง : สกิลของผมชื่อแมรี่ ซู นามปากกา : Zer'Kaem www.readawrite.com/a/61ca084202... #แนะนำนิยายวาย #แนะนำนิยาย #ดลธีอ่าน" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">1</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:wt2hbmh3jtu3ypk22ez3m7ap/app.bsky.feed.post/3lainxc6lv52a" data-bluesky-interactions-cid-param="bafyreieqalzowrf3gbqedrunqnclpnmoheavkiuu352zuyjp66v24ynmam" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/dolotnyc607.bsky.social/post/3lainxc6lv52a" data-share-title-value="Dolo_T on Lightnews" data-share-text-value="#ฮีลเลอร์ที่แปลว่าแฟน [33] นิยายวายจบแล้ว แฟนตาซี ดันเจี้ยน เรื่อง : สกิลของผมชื่อแมรี่ ซู นามปากกา : Zer'Kaem www.readawrite.com/a/61ca0842…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="#ฮีลเลอร์ที่แปลว่าแฟน [33] นิยายวายจบแล้ว แฟนตาซี ดันเจี้ยน เรื่อง : สกิลของผมชื่อแมรี่ ซู นามปากกา : Zer'Kaem www.readawrite.com/a/61ca084202... #แนะนำนิยายวาย #แนะนำนิยาย #ดลธีอ่าน" data-bluesky-options-author-handle-value="dolotnyc607.bsky.social" data-bluesky-options-author-did-value="did:plc:wt2hbmh3jtu3ypk22ez3m7ap" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/onceuponatime-c.bsky.social/post/3lembyb6frk2c" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=onceuponatime-c.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="차이" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:3m4huzcwv4bz5z7d7wb3hwli/bafkreidhmxcrcphtefahrumk5al5aqcfdb7e22utxv7xufwbr735pzcwla@jpeg" alt="onceuponatime-c.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=onceuponatime-c.bsky.social" class="truncate hover:underline text-black no-card-link">차이</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=onceuponatime-c.bsky.social" class="hover:underline text-gray-500 no-card-link">@onceuponatime-c.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">ชฟ Reading Wrap-Up 2024 <br>อ่านจบ 163 เล่ม 105 เรื่อง <br>อ่านค้าง 5 เรื่อง<br><br>เรื่องที่อ่านแล้วชอบ [นักเขียนไทย] :<br>สกิลของผมชื่อ [แมรี่ ซู] <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br>รีวิวคาเฟ่ by อัลฟ่านิรนาม<br>Lampfire เรื่องเล่ารอบโคมไฟ<br>อีกากับพระเจ้า เล่ม 2 <br>3.00 A.M. Runner <a href="/hashtag/%E0%B8%84%E0%B8%B7%E0%B8%99%E0%B8%99%E0%B8%B5%E0%B9%89%E0%B8%9D%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%AB%E0%B9%87%E0%B8%99%E0%B8%9C%E0%B8%B5%E0%B8%AB%E0%B8%A3%E0%B8%B7%E0%B8%AD%E0%B8%AB%E0%B8%99%E0%B8%B5%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#คืนนี้ฝันเห็นผีหรือหนีอะไร</a><br>Under the Graveyard ยมทูตมีรัก<br>JAGUAR จากัวร์ไม่ใช่ตัวร้าย<br>เพียงพันดารา</div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>December 31, 2024 at 2:45 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:3m4huzcwv4bz5z7d7wb3hwli/app.bsky.feed.post/3lembyb6frk2c"> ชฟ Reading Wrap-Up 2024 <br>อ่านจบ 163 เล่ม 105 เรื่อง <br>อ่านค้าง 5 เรื่อง<br><br>เรื่องที่อ่านแล้วชอบ [นักเขียนไทย] :<br>สกิลของผมชื่อ [แมรี่ ซู] <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br>รีวิวคาเฟ่ by อัลฟ่านิรนาม<br>Lampfire เรื่องเล่ารอบโคมไฟ<br>อีกากับพระเจ้า เล่ม 2 <br>3.00 A.M. Runner <a href="/hashtag/%E0%B8%84%E0%B8%B7%E0%B8%99%E0%B8%99%E0%B8%B5%E0%B9%89%E0%B8%9D%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%AB%E0%B9%87%E0%B8%99%E0%B8%9C%E0%B8%B5%E0%B8%AB%E0%B8%A3%E0%B8%B7%E0%B8%AD%E0%B8%AB%E0%B8%99%E0%B8%B5%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#คืนนี้ฝันเห็นผีหรือหนีอะไร</a><br>Under the Graveyard ยมทูตมีรัก<br>JAGUAR จากัวร์ไม่ใช่ตัวร้าย<br>เพียงพันดารา </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:3m4huzcwv4bz5z7d7wb3hwli/app.bsky.feed.post/3lembyb6frk2c" data-bluesky-interactions-reply-cid-param="bafyreibiqvwq2f7kgoyibu24h7wkzurymdp7wejtnfb7acmvjnyjuwtzrm" data-bluesky-interactions-reply-root-uri-param="at://did:plc:3m4huzcwv4bz5z7d7wb3hwli/app.bsky.feed.post/3lembyb6frk2c" data-bluesky-interactions-reply-root-cid-param="bafyreibiqvwq2f7kgoyibu24h7wkzurymdp7wejtnfb7acmvjnyjuwtzrm" data-bluesky-interactions-reply-author-name-param="차이" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:3m4huzcwv4bz5z7d7wb3hwli/bafkreidhmxcrcphtefahrumk5al5aqcfdb7e22utxv7xufwbr735pzcwla@jpeg" data-bluesky-interactions-post-path-param="/bsky/onceuponatime-c.bsky.social/post/3lembyb6frk2c" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:3m4huzcwv4bz5z7d7wb3hwli/app.bsky.feed.post/3lembyb6frk2c" data-bluesky-repost-menu-cid-value="bafyreibiqvwq2f7kgoyibu24h7wkzurymdp7wejtnfb7acmvjnyjuwtzrm" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="onceuponatime-c.bsky.social" data-bluesky-repost-menu-post-text-value="ชฟ Reading Wrap-Up 2024 อ่านจบ 163 เล่ม 105 เรื่อง อ่านค้าง 5 เรื่อง เรื่องที่อ่านแล้วชอบ [นักเขียนไทย] : สกิลของผมชื่อ [แมรี่ ซู] #ฮีลเลอร์ที่แปลว่าแฟน รีวิวคาเฟ่ by อัลฟ่านิรนาม Lampfire เรื่องเล่ารอบโคมไฟ อีกากับพระเจ้า เล่ม 2 3.00 A.M. Runner #คืนนี้ฝันเห็นผีหรือหนีอะไร Under the Graveyard ยมทูตมีรัก JAGUAR จากัวร์ไม่ใช่ตัวร้าย เพียงพันดารา" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">5</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:3m4huzcwv4bz5z7d7wb3hwli/app.bsky.feed.post/3lembyb6frk2c" data-bluesky-interactions-cid-param="bafyreibiqvwq2f7kgoyibu24h7wkzurymdp7wejtnfb7acmvjnyjuwtzrm" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">3</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/onceuponatime-c.bsky.social/post/3lembyb6frk2c" data-share-title-value="차이 on Lightnews" data-share-text-value="ชฟ Reading Wrap-Up 2024 อ่านจบ 163 เล่ม 105 เรื่อง อ่านค้าง 5 เรื่อง เรื่องที่อ่านแล้วชอบ [นักเขียนไทย] : สกิลของผมชื่อ [แมรี่ ซู] #ฮีลเลอร์…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="ชฟ Reading Wrap-Up 2024 อ่านจบ 163 เล่ม 105 เรื่อง อ่านค้าง 5 เรื่อง เรื่องที่อ่านแล้วชอบ [นักเขียนไทย] : สกิลของผมชื่อ [แมรี่ ซู] #ฮีลเลอร์ที่แปลว่าแฟน รีวิวคาเฟ่ by อัลฟ่านิรนาม Lampfire เรื่องเล่ารอบโคมไฟ อีกากับพระเจ้า เล่ม 2 3.00 A.M. Runner #คืนนี้ฝันเห็นผีหรือหนีอะไร Under the Graveyard ยมทูตมีรัก JAGUAR จากัวร์ไม่ใช่ตัวร้าย เพียงพันดารา" data-bluesky-options-author-handle-value="onceuponatime-c.bsky.social" data-bluesky-options-author-did-value="did:plc:3m4huzcwv4bz5z7d7wb3hwli" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/gammy29.bsky.social/post/3lujrysjxmc25" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=gammy29.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="Gammy" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:ovzk7gc4w6l2uht435gmzh2w/bafkreia2i57snmsfxegbyq7kdaonbu6n5ofybn6epdogdue2iar2fod7eq@jpeg" alt="gammy29.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=gammy29.bsky.social" class="truncate hover:underline text-black no-card-link">Gammy</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=gammy29.bsky.social" class="hover:underline text-gray-500 no-card-link">@gammy29.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">สกิลของผมชื่อ [แมรี่ ซู] เล่ม 1-4<br><a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br><a href="/hashtag/ZerKaem" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ZerKaem</a><br><br>จากการอ่านตัวอย่างจนต้องไปรื้อหาเล่มในวันนั้น สู่การอ่านจบ4เล่มแล้ววันนี้ 😏 สนุกมากกกกกก เป็นนิยายวายแฟนตาซีที่นักเขียนเป็นคนไทยด้วย!</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:ovzk7gc4w6l2uht435gmzh2w/bafkreifhmijac7p3k36d7gsv7yewc5lyobib6ivlqrqijb2gda4gxi2qxm@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:ovzk7gc4w6l2uht435gmzh2w/bafkreifhmijac7p3k36d7gsv7yewc5lyobib6ivlqrqijb2gda4gxi2qxm@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>July 22, 2025 at 5:37 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:ovzk7gc4w6l2uht435gmzh2w/app.bsky.feed.post/3lujrysjxmc25"> สกิลของผมชื่อ [แมรี่ ซู] เล่ม 1-4<br><a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a><br><a href="/hashtag/ZerKaem" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ZerKaem</a><br><br>จากการอ่านตัวอย่างจนต้องไปรื้อหาเล่มในวันนั้น สู่การอ่านจบ4เล่มแล้ววันนี้ 😏 สนุกมากกกกกก เป็นนิยายวายแฟนตาซีที่นักเขียนเป็นคนไทยด้วย! </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:ovzk7gc4w6l2uht435gmzh2w/app.bsky.feed.post/3lujrysjxmc25" data-bluesky-interactions-reply-cid-param="bafyreiczgvhkrpcb4o3rgqmvblud2l6l67sapt3luwchgx6gxtawy4c37m" data-bluesky-interactions-reply-root-uri-param="at://did:plc:ovzk7gc4w6l2uht435gmzh2w/app.bsky.feed.post/3lujrysjxmc25" data-bluesky-interactions-reply-root-cid-param="bafyreiczgvhkrpcb4o3rgqmvblud2l6l67sapt3luwchgx6gxtawy4c37m" data-bluesky-interactions-reply-author-name-param="Gammy" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:ovzk7gc4w6l2uht435gmzh2w/bafkreia2i57snmsfxegbyq7kdaonbu6n5ofybn6epdogdue2iar2fod7eq@jpeg" data-bluesky-interactions-post-path-param="/bsky/gammy29.bsky.social/post/3lujrysjxmc25" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:ovzk7gc4w6l2uht435gmzh2w/app.bsky.feed.post/3lujrysjxmc25" data-bluesky-repost-menu-cid-value="bafyreiczgvhkrpcb4o3rgqmvblud2l6l67sapt3luwchgx6gxtawy4c37m" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="gammy29.bsky.social" data-bluesky-repost-menu-post-text-value="สกิลของผมชื่อ [แมรี่ ซู] เล่ม 1-4 #ฮีลเลอร์ที่แปลว่าแฟน #ZerKaem จากการอ่านตัวอย่างจนต้องไปรื้อหาเล่มในวันนั้น สู่การอ่านจบ4เล่มแล้ววันนี้ 😏 สนุกมากกกกกก เป็นนิยายวายแฟนตาซีที่นักเขียนเป็นคนไทยด้วย!" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">1</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:ovzk7gc4w6l2uht435gmzh2w/app.bsky.feed.post/3lujrysjxmc25" data-bluesky-interactions-cid-param="bafyreiczgvhkrpcb4o3rgqmvblud2l6l67sapt3luwchgx6gxtawy4c37m" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/gammy29.bsky.social/post/3lujrysjxmc25" data-share-title-value="Gammy on Lightnews" data-share-text-value="สกิลของผมชื่อ [แมรี่ ซู] เล่ม 1-4 #ฮีลเลอร์ที่แปลว่าแฟน #ZerKaem จากการอ่านตัวอย่างจนต้องไปรื้อหาเล่มในวันนั้น สู่การอ่านจบ4เล่มแล้ววันนี้ 😏…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="สกิลของผมชื่อ [แมรี่ ซู] เล่ม 1-4 #ฮีลเลอร์ที่แปลว่าแฟน #ZerKaem จากการอ่านตัวอย่างจนต้องไปรื้อหาเล่มในวันนั้น สู่การอ่านจบ4เล่มแล้ววันนี้ 😏 สนุกมากกกกกก เป็นนิยายวายแฟนตาซีที่นักเขียนเป็นคนไทยด้วย!" data-bluesky-options-author-handle-value="gammy29.bsky.social" data-bluesky-options-author-did-value="did:plc:ovzk7gc4w6l2uht435gmzh2w" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/harukaa.bsky.social/post/3l6zgi34ceu2c" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=harukaa.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="HARUKA " style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreiahacujyuzke3haequ2647lorpuw3zql5ugh2pt3jipypnc2l4t7e@jpeg" alt="harukaa.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=harukaa.bsky.social" class="truncate hover:underline text-black no-card-link">HARUKA </a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=harukaa.bsky.social" class="hover:underline text-gray-500 no-card-link">@harukaa.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]"><a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a></div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreib57ks5ex62leqbrf4jqi3tunrf63ng4ivm22vvrnvgiu25im3rnu@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreib57ks5ex62leqbrf4jqi3tunrf63ng4ivm22vvrnvgiu25im3rnu@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreih4pjecw6q5umuzvwpx4gd5q3alu5t57i5kk7dzkkofuj24rfokry@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreih4pjecw6q5umuzvwpx4gd5q3alu5t57i5kk7dzkkofuj24rfokry@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreihwm6itdk6gfvbwi2ufr6q7pgsarn5spfd6aj7zghvnvh26eym2yq@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreihwm6itdk6gfvbwi2ufr6q7pgsarn5spfd6aj7zghvnvh26eym2yq@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreigqwkm2uxelfi7eetr75advur4kwt7t2ejg5k236t7itm36xlazs4@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreigqwkm2uxelfi7eetr75advur4kwt7t2ejg5k236t7itm36xlazs4@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 21, 2024 at 11:39 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:3lky2ka6vpughz2bf7nolqvq/app.bsky.feed.post/3l6zgi34ceu2c"> <a href="/hashtag/%E0%B8%AE%E0%B8%B5%E0%B8%A5%E0%B9%80%E0%B8%A5%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B9%81%E0%B8%9B%E0%B8%A5%E0%B8%A7%E0%B9%88%E0%B8%B2%E0%B9%81%E0%B8%9F%E0%B8%99" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ฮีลเลอร์ที่แปลว่าแฟน</a> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:3lky2ka6vpughz2bf7nolqvq/app.bsky.feed.post/3l6zgi34ceu2c" data-bluesky-interactions-reply-cid-param="bafyreibbxtj7kx4pdvlqccw2xjoglyvlrogpqtlxrpq3toyzlggjfvmx4y" data-bluesky-interactions-reply-root-uri-param="at://did:plc:3lky2ka6vpughz2bf7nolqvq/app.bsky.feed.post/3l6zgi34ceu2c" data-bluesky-interactions-reply-root-cid-param="bafyreibbxtj7kx4pdvlqccw2xjoglyvlrogpqtlxrpq3toyzlggjfvmx4y" data-bluesky-interactions-reply-author-name-param="HARUKA " data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:3lky2ka6vpughz2bf7nolqvq/bafkreiahacujyuzke3haequ2647lorpuw3zql5ugh2pt3jipypnc2l4t7e@jpeg" data-bluesky-interactions-post-path-param="/bsky/harukaa.bsky.social/post/3l6zgi34ceu2c" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:3lky2ka6vpughz2bf7nolqvq/app.bsky.feed.post/3l6zgi34ceu2c" data-bluesky-repost-menu-cid-value="bafyreibbxtj7kx4pdvlqccw2xjoglyvlrogpqtlxrpq3toyzlggjfvmx4y" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="harukaa.bsky.social" data-bluesky-repost-menu-post-text-value="#ฮีลเลอร์ที่แปลว่าแฟน" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">1</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:3lky2ka6vpughz2bf7nolqvq/app.bsky.feed.post/3l6zgi34ceu2c" data-bluesky-interactions-cid-param="bafyreibbxtj7kx4pdvlqccw2xjoglyvlrogpqtlxrpq3toyzlggjfvmx4y" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/harukaa.bsky.social/post/3l6zgi34ceu2c" data-share-title-value="HARUKA on Lightnews" data-share-text-value="#ฮีลเลอร์ที่แปลว่าแฟน" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="#ฮีลเลอร์ที่แปลว่าแฟน" data-bluesky-options-author-handle-value="harukaa.bsky.social" data-bluesky-options-author-did-value="did:plc:3lky2ka6vpughz2bf7nolqvq" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/zkhouse.bsky.social/post/3m4fwbx2qis2s" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" alt="zkhouse.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="truncate hover:underline text-black no-card-link">ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="hover:underline text-gray-500 no-card-link">@zkhouse.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">ครบ 1k ฟอล (คนที่ 1000 คือแอคตัวเอง สภาพ 555555)</div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 30, 2025 at 12:05 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwbx2qis2s"> ครบ 1k ฟอล (คนที่ 1000 คือแอคตัวเอง สภาพ 555555) </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwbx2qis2s" data-bluesky-interactions-reply-cid-param="bafyreihyvapkrvfrno35hezp7mafccqwlgn26xgptsxelhcezt3qnkyrhq" data-bluesky-interactions-reply-root-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwbx2qis2s" data-bluesky-interactions-reply-root-cid-param="bafyreihyvapkrvfrno35hezp7mafccqwlgn26xgptsxelhcezt3qnkyrhq" data-bluesky-interactions-reply-author-name-param="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" data-bluesky-interactions-post-path-param="/bsky/zkhouse.bsky.social/post/3m4fwbx2qis2s" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwbx2qis2s" data-bluesky-repost-menu-cid-value="bafyreihyvapkrvfrno35hezp7mafccqwlgn26xgptsxelhcezt3qnkyrhq" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="zkhouse.bsky.social" data-bluesky-repost-menu-post-text-value="ครบ 1k ฟอล (คนที่ 1000 คือแอคตัวเอง สภาพ 555555)" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwbx2qis2s" data-bluesky-interactions-cid-param="bafyreihyvapkrvfrno35hezp7mafccqwlgn26xgptsxelhcezt3qnkyrhq" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">1</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/zkhouse.bsky.social/post/3m4fwbx2qis2s" data-share-title-value="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁 on Lightnews" data-share-text-value="ครบ 1k ฟอล (คนที่ 1000 คือแอคตัวเอง สภาพ 555555)" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="ครบ 1k ฟอล (คนที่ 1000 คือแอคตัวเอง สภาพ 555555)" data-bluesky-options-author-handle-value="zkhouse.bsky.social" data-bluesky-options-author-did-value="did:plc:mdyfvkyt4sb5uhyr5ttkbjdr" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/zkhouse.bsky.social/post/3m4fwad44fk2s" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" alt="zkhouse.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="truncate hover:underline text-black no-card-link">ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="hover:underline text-gray-500 no-card-link">@zkhouse.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">สวัสดีฟ้าฟ้า ผมมาละ (มาทำไม)</div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 30, 2025 at 12:04 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwad44fk2s"> สวัสดีฟ้าฟ้า ผมมาละ (มาทำไม) </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwad44fk2s" data-bluesky-interactions-reply-cid-param="bafyreifwjcujcat5era4u5ybd5beemmgwp3xbbg3jg54zmhkuew7zbq7c4" data-bluesky-interactions-reply-root-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwad44fk2s" data-bluesky-interactions-reply-root-cid-param="bafyreifwjcujcat5era4u5ybd5beemmgwp3xbbg3jg54zmhkuew7zbq7c4" data-bluesky-interactions-reply-author-name-param="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" data-bluesky-interactions-post-path-param="/bsky/zkhouse.bsky.social/post/3m4fwad44fk2s" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwad44fk2s" data-bluesky-repost-menu-cid-value="bafyreifwjcujcat5era4u5ybd5beemmgwp3xbbg3jg54zmhkuew7zbq7c4" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="zkhouse.bsky.social" data-bluesky-repost-menu-post-text-value="สวัสดีฟ้าฟ้า ผมมาละ (มาทำไม)" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3m4fwad44fk2s" data-bluesky-interactions-cid-param="bafyreifwjcujcat5era4u5ybd5beemmgwp3xbbg3jg54zmhkuew7zbq7c4" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">1</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/zkhouse.bsky.social/post/3m4fwad44fk2s" data-share-title-value="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁 on Lightnews" data-share-text-value="สวัสดีฟ้าฟ้า ผมมาละ (มาทำไม)" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="สวัสดีฟ้าฟ้า ผมมาละ (มาทำไม)" data-bluesky-options-author-handle-value="zkhouse.bsky.social" data-bluesky-options-author-did-value="did:plc:mdyfvkyt4sb5uhyr5ttkbjdr" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/zkhouse.bsky.social/post/3l7cyc7yjb42g" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" alt="zkhouse.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="truncate hover:underline text-black no-card-link">ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="hover:underline text-gray-500 no-card-link">@zkhouse.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">-โต๊ะปรับระดับระบบไฟฟ้า นั่ง ๆ ยืน ๆ สลับกัน ปวดหลังน้อยลง😭<br>-ที่วางไอแพดแบบปรับระดับได้ วาดถนัดมือดีสำหรับเรา<br>-ปฏิทินน่ารัก ๆ จากอาร์ติสไทย เพิ่มความสวยงาม 😭😭😭😭</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreierkn2baser6zpufnuo2jh2b7ozp5u3kqu7s4ps5rqyjz7umakuja@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreierkn2baser6zpufnuo2jh2b7ozp5u3kqu7s4ps5rqyjz7umakuja@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreiei5flvysoubgo4xbddanb7uzc4s3aksmnwhxpp6houq2yodrkeo4@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreiei5flvysoubgo4xbddanb7uzc4s3aksmnwhxpp6houq2yodrkeo4@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 25, 2024 at 6:52 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l7cyc7yjb42g"> -โต๊ะปรับระดับระบบไฟฟ้า นั่ง ๆ ยืน ๆ สลับกัน ปวดหลังน้อยลง😭<br>-ที่วางไอแพดแบบปรับระดับได้ วาดถนัดมือดีสำหรับเรา<br>-ปฏิทินน่ารัก ๆ จากอาร์ติสไทย เพิ่มความสวยงาม 😭😭😭😭 </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l7cyc7yjb42g" data-bluesky-interactions-reply-cid-param="bafyreiaenrd4nlnqhyrz5qkhfimuvmrziv4uppkwfjeqqy2vmhn5qhe3bu" data-bluesky-interactions-reply-root-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l7cyc7yjb42g" data-bluesky-interactions-reply-root-cid-param="bafyreiaenrd4nlnqhyrz5qkhfimuvmrziv4uppkwfjeqqy2vmhn5qhe3bu" data-bluesky-interactions-reply-author-name-param="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" data-bluesky-interactions-post-path-param="/bsky/zkhouse.bsky.social/post/3l7cyc7yjb42g" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l7cyc7yjb42g" data-bluesky-repost-menu-cid-value="bafyreiaenrd4nlnqhyrz5qkhfimuvmrziv4uppkwfjeqqy2vmhn5qhe3bu" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="zkhouse.bsky.social" data-bluesky-repost-menu-post-text-value="-โต๊ะปรับระดับระบบไฟฟ้า นั่ง ๆ ยืน ๆ สลับกัน ปวดหลังน้อยลง😭 -ที่วางไอแพดแบบปรับระดับได้ วาดถนัดมือดีสำหรับเรา -ปฏิทินน่ารัก ๆ จากอาร์ติสไทย เพิ่มความสวยงาม 😭😭😭😭" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">23</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l7cyc7yjb42g" data-bluesky-interactions-cid-param="bafyreiaenrd4nlnqhyrz5qkhfimuvmrziv4uppkwfjeqqy2vmhn5qhe3bu" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">46</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/zkhouse.bsky.social/post/3l7cyc7yjb42g" data-share-title-value="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁 on Lightnews" data-share-text-value="-โต๊ะปรับระดับระบบไฟฟ้า นั่ง ๆ ยืน ๆ สลับกัน ปวดหลังน้อยลง😭 -ที่วางไอแพดแบบปรับระดับได้ วาดถนัดมือดีสำหรับเรา -ปฏิทินน่ารัก ๆ จากอาร์ติสไทย…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="-โต๊ะปรับระดับระบบไฟฟ้า นั่ง ๆ ยืน ๆ สลับกัน ปวดหลังน้อยลง😭 -ที่วางไอแพดแบบปรับระดับได้ วาดถนัดมือดีสำหรับเรา -ปฏิทินน่ารัก ๆ จากอาร์ติสไทย เพิ่มความสวยงาม 😭😭😭😭" data-bluesky-options-author-handle-value="zkhouse.bsky.social" data-bluesky-options-author-did-value="did:plc:mdyfvkyt4sb5uhyr5ttkbjdr" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/gloomygloy.bsky.social/post/3l6vqt7wfa42n" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=gloomygloy.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="gloomyroot" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:nhshltxxibmcrhov6heri5d3/bafkreicqbzidg662dedck3enuehlmoksd4x66uf5p6k5lka5u3p4dvv2fy@jpeg" alt="gloomygloy.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=gloomygloy.bsky.social" class="truncate hover:underline text-black no-card-link">gloomyroot</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=gloomygloy.bsky.social" class="hover:underline text-gray-500 no-card-link">@gloomygloy.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">ขอฝากนิยายแฟนตาซีของเราด้วยนะคะ น่ารักอ่านง่ายทั้งสองเรื่องเลย เรื่องแรกเป็นชาวบ้านธรรมดาไปเคาะประตูบ้านจอมมารเพื่อขอดาบไปแลกเงินรางวัล ซึ่งท่านจอมมารก็ขี้อายสุดๆ ต้องให้ข้ารับใช้คอยช่วยหาทางจีบหนุ่ม<br><br>เรื่องสองเป็นแนวเกมออนไลน์ที่น้องNPC ต้องคอยสอนอาชีพแจกเควสให้ผู้เล่น แต่ดันมีหัวหน้ากิลด์คนหนึ่งหาเรื่องอู้งานจะมาเล่นกับน้องให้ได้</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:nhshltxxibmcrhov6heri5d3/bafkreibpodfzypokansyn77pfmkwfxra4v6vaxml2ianf5vqlxbt6a43ta@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:nhshltxxibmcrhov6heri5d3/bafkreibpodfzypokansyn77pfmkwfxra4v6vaxml2ianf5vqlxbt6a43ta@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:nhshltxxibmcrhov6heri5d3/bafkreih6cwpatxjvvrc66qp2vp66zkn33zviearxomxek4rplbc2vf4r2y@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:nhshltxxibmcrhov6heri5d3/bafkreih6cwpatxjvvrc66qp2vp66zkn33zviearxomxek4rplbc2vf4r2y@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 20, 2024 at 12:34 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:nhshltxxibmcrhov6heri5d3/app.bsky.feed.post/3l6vqt7wfa42n"> ขอฝากนิยายแฟนตาซีของเราด้วยนะคะ น่ารักอ่านง่ายทั้งสองเรื่องเลย เรื่องแรกเป็นชาวบ้านธรรมดาไปเคาะประตูบ้านจอมมารเพื่อขอดาบไปแลกเงินรางวัล ซึ่งท่านจอมมารก็ขี้อายสุดๆ ต้องให้ข้ารับใช้คอยช่วยหาทางจีบหนุ่ม<br><br>เรื่องสองเป็นแนวเกมออนไลน์ที่น้องNPC ต้องคอยสอนอาชีพแจกเควสให้ผู้เล่น แต่ดันมีหัวหน้ากิลด์คนหนึ่งหาเรื่องอู้งานจะมาเล่นกับน้องให้ได้ </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:nhshltxxibmcrhov6heri5d3/app.bsky.feed.post/3l6vqt7wfa42n" data-bluesky-interactions-reply-cid-param="bafyreib7arjbntsp7jldlmvgur4bsebj3wbx64rkylaqigiam7wc6sl7ga" data-bluesky-interactions-reply-root-uri-param="at://did:plc:nhshltxxibmcrhov6heri5d3/app.bsky.feed.post/3l6vqt7wfa42n" data-bluesky-interactions-reply-root-cid-param="bafyreib7arjbntsp7jldlmvgur4bsebj3wbx64rkylaqigiam7wc6sl7ga" data-bluesky-interactions-reply-author-name-param="gloomyroot" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:nhshltxxibmcrhov6heri5d3/bafkreicqbzidg662dedck3enuehlmoksd4x66uf5p6k5lka5u3p4dvv2fy@jpeg" data-bluesky-interactions-post-path-param="/bsky/gloomygloy.bsky.social/post/3l6vqt7wfa42n" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:nhshltxxibmcrhov6heri5d3/app.bsky.feed.post/3l6vqt7wfa42n" data-bluesky-repost-menu-cid-value="bafyreib7arjbntsp7jldlmvgur4bsebj3wbx64rkylaqigiam7wc6sl7ga" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="gloomygloy.bsky.social" data-bluesky-repost-menu-post-text-value="ขอฝากนิยายแฟนตาซีของเราด้วยนะคะ น่ารักอ่านง่ายทั้งสองเรื่องเลย เรื่องแรกเป็นชาวบ้านธรรมดาไปเคาะประตูบ้านจอมมารเพื่อขอดาบไปแลกเงินรางวัล ซึ่งท่านจอมมารก็ขี้อายสุดๆ ต้องให้ข้ารับใช้คอยช่วยหาทางจีบหนุ่ม เรื่องสองเป็นแนวเกมออนไลน์ที่น้องNPC ต้องคอยสอนอาชีพแจกเควสให้ผู้เล่น แต่ดันมีหัวหน้ากิลด์คนหนึ่งหาเรื่องอู้งานจะมาเล่นกับน้องให้ได้" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">8</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:nhshltxxibmcrhov6heri5d3/app.bsky.feed.post/3l6vqt7wfa42n" data-bluesky-interactions-cid-param="bafyreib7arjbntsp7jldlmvgur4bsebj3wbx64rkylaqigiam7wc6sl7ga" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">4</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/gloomygloy.bsky.social/post/3l6vqt7wfa42n" data-share-title-value="gloomyroot on Lightnews" data-share-text-value="ขอฝากนิยายแฟนตาซีของเราด้วยนะคะ น่ารักอ่านง่ายทั้งสองเรื่องเลย เรื่องแรกเป็นชาวบ้านธรรมดาไปเคาะประตูบ้านจอมมารเพื่อขอดาบไปแลกเงินรางวัล ซึ่ง…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="ขอฝากนิยายแฟนตาซีของเราด้วยนะคะ น่ารักอ่านง่ายทั้งสองเรื่องเลย เรื่องแรกเป็นชาวบ้านธรรมดาไปเคาะประตูบ้านจอมมารเพื่อขอดาบไปแลกเงินรางวัล ซึ่งท่านจอมมารก็ขี้อายสุดๆ ต้องให้ข้ารับใช้คอยช่วยหาทางจีบหนุ่ม เรื่องสองเป็นแนวเกมออนไลน์ที่น้องNPC ต้องคอยสอนอาชีพแจกเควสให้ผู้เล่น แต่ดันมีหัวหน้ากิลด์คนหนึ่งหาเรื่องอู้งานจะมาเล่นกับน้องให้ได้" data-bluesky-options-author-handle-value="gloomygloy.bsky.social" data-bluesky-options-author-did-value="did:plc:nhshltxxibmcrhov6heri5d3" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/riotpk.bsky.social/post/3l6wbfkkq2t2e" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=riotpk.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="RiOT_PK 🩸" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:bbizcnbdy3ocf52f6nwqxyo2/bafkreiep74vavqabozj67ybibxaemw2lkirznwwjijx6i3oqyirnbcz6vu@jpeg" alt="riotpk.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=riotpk.bsky.social" class="truncate hover:underline text-black no-card-link">RiOT_PK 🩸</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=riotpk.bsky.social" class="hover:underline text-gray-500 no-card-link">@riotpk.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">ขอฝากด้วยนะคะ <a href="/hashtag/%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87%E0%B9%83%E0%B8%88%E0%B8%88%E0%B8%B0%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%8A%E0%B8%B5%E0%B8%A7%E0%B8%B4%E0%B8%95%E0%B8%88%E0%B8%B7%E0%B8%94%E0%B8%8A%E0%B8%B7%E0%B8%94" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ตั้งใจจะใช้ชีวิตจืดชืด</a><br>- นิยายแฟนตาซีแนวเกิดใหม่ เนื้อเรื่องเข้มข้นพอให้หอมปากหอมคอ มีความคอมเมดี้มาเสริมให้ผ่อนคลายค่ะ อ่านได้เรื่อยๆ สบายๆ เลย 🌷</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:bbizcnbdy3ocf52f6nwqxyo2/bafkreigrgkom4irajh5loznug63au2swfxbdctipoubfmq4i3z2ffqdcny@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:bbizcnbdy3ocf52f6nwqxyo2/bafkreigrgkom4irajh5loznug63au2swfxbdctipoubfmq4i3z2ffqdcny@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 20, 2024 at 5:30 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:bbizcnbdy3ocf52f6nwqxyo2/app.bsky.feed.post/3l6wbfkkq2t2e"> ขอฝากด้วยนะคะ <a href="/hashtag/%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87%E0%B9%83%E0%B8%88%E0%B8%88%E0%B8%B0%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%8A%E0%B8%B5%E0%B8%A7%E0%B8%B4%E0%B8%95%E0%B8%88%E0%B8%B7%E0%B8%94%E0%B8%8A%E0%B8%B7%E0%B8%94" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#ตั้งใจจะใช้ชีวิตจืดชืด</a><br>- นิยายแฟนตาซีแนวเกิดใหม่ เนื้อเรื่องเข้มข้นพอให้หอมปากหอมคอ มีความคอมเมดี้มาเสริมให้ผ่อนคลายค่ะ อ่านได้เรื่อยๆ สบายๆ เลย 🌷 </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:bbizcnbdy3ocf52f6nwqxyo2/app.bsky.feed.post/3l6wbfkkq2t2e" data-bluesky-interactions-reply-cid-param="bafyreiaz7j7xusmtwwejjmiapxyxy4i5u2tw37r3f2bcdi3umqiegw6k7y" data-bluesky-interactions-reply-root-uri-param="at://did:plc:bbizcnbdy3ocf52f6nwqxyo2/app.bsky.feed.post/3l6wbfkkq2t2e" data-bluesky-interactions-reply-root-cid-param="bafyreiaz7j7xusmtwwejjmiapxyxy4i5u2tw37r3f2bcdi3umqiegw6k7y" data-bluesky-interactions-reply-author-name-param="RiOT_PK 🩸" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:bbizcnbdy3ocf52f6nwqxyo2/bafkreiep74vavqabozj67ybibxaemw2lkirznwwjijx6i3oqyirnbcz6vu@jpeg" data-bluesky-interactions-post-path-param="/bsky/riotpk.bsky.social/post/3l6wbfkkq2t2e" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:bbizcnbdy3ocf52f6nwqxyo2/app.bsky.feed.post/3l6wbfkkq2t2e" data-bluesky-repost-menu-cid-value="bafyreiaz7j7xusmtwwejjmiapxyxy4i5u2tw37r3f2bcdi3umqiegw6k7y" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="riotpk.bsky.social" data-bluesky-repost-menu-post-text-value="ขอฝากด้วยนะคะ #ตั้งใจจะใช้ชีวิตจืดชืด - นิยายแฟนตาซีแนวเกิดใหม่ เนื้อเรื่องเข้มข้นพอให้หอมปากหอมคอ มีความคอมเมดี้มาเสริมให้ผ่อนคลายค่ะ อ่านได้เรื่อยๆ สบายๆ เลย 🌷" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">5</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:bbizcnbdy3ocf52f6nwqxyo2/app.bsky.feed.post/3l6wbfkkq2t2e" data-bluesky-interactions-cid-param="bafyreiaz7j7xusmtwwejjmiapxyxy4i5u2tw37r3f2bcdi3umqiegw6k7y" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">5</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/riotpk.bsky.social/post/3l6wbfkkq2t2e" data-share-title-value="RiOT_PK 🩸 on Lightnews" data-share-text-value="ขอฝากด้วยนะคะ #ตั้งใจจะใช้ชีวิตจืดชืด - นิยายแฟนตาซีแนวเกิดใหม่ เนื้อเรื่องเข้มข้นพอให้หอมปากหอมคอ มีความคอมเมดี้มาเสริมให้ผ่อนคลายค่ะ อ่านไ…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="ขอฝากด้วยนะคะ #ตั้งใจจะใช้ชีวิตจืดชืด - นิยายแฟนตาซีแนวเกิดใหม่ เนื้อเรื่องเข้มข้นพอให้หอมปากหอมคอ มีความคอมเมดี้มาเสริมให้ผ่อนคลายค่ะ อ่านได้เรื่อยๆ สบายๆ เลย 🌷" data-bluesky-options-author-handle-value="riotpk.bsky.social" data-bluesky-options-author-did-value="did:plc:bbizcnbdy3ocf52f6nwqxyo2" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/jiwinil.bsky.social/post/3l6x2xtqvsi2k" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=jiwinil.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="Jiwinil" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:rq6vusvr3xm5c2damav5dbr5/bafkreihitzwjtk6hed5wngrf7nciboyrt5hsxwjzbf7mmmjls26khoxunm@jpeg" alt="jiwinil.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=jiwinil.bsky.social" class="truncate hover:underline text-black no-card-link">Jiwinil</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=jiwinil.bsky.social" class="hover:underline text-gray-500 no-card-link">@jiwinil.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">เป็นนักหัดเขียน fantasy ที่เขียน slice of life ด้วยค่ะ แวะมาลองชิมกันได้นะคะ 🙏 🥺</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:rq6vusvr3xm5c2damav5dbr5/bafkreib5e4ptdlky6oxkw3wgpw5jz6agc7jbzobfly43u2kuv5ygyy4kn4@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:rq6vusvr3xm5c2damav5dbr5/bafkreib5e4ptdlky6oxkw3wgpw5jz6agc7jbzobfly43u2kuv5ygyy4kn4@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:rq6vusvr3xm5c2damav5dbr5/bafkreife7r2q2nuojwzk3yrn45zze2esqhov23wcqzwr6rmbjpli2zptmm@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:rq6vusvr3xm5c2damav5dbr5/bafkreife7r2q2nuojwzk3yrn45zze2esqhov23wcqzwr6rmbjpli2zptmm@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 20, 2024 at 1:08 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:rq6vusvr3xm5c2damav5dbr5/app.bsky.feed.post/3l6x2xtqvsi2k"> เป็นนักหัดเขียน fantasy ที่เขียน slice of life ด้วยค่ะ แวะมาลองชิมกันได้นะคะ 🙏 🥺 </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:rq6vusvr3xm5c2damav5dbr5/app.bsky.feed.post/3l6x2xtqvsi2k" data-bluesky-interactions-reply-cid-param="bafyreigb3zdxql6vbobfcmilouyxwuklcl3535hi45sxfgp2ymd3wau4s4" data-bluesky-interactions-reply-root-uri-param="at://did:plc:rq6vusvr3xm5c2damav5dbr5/app.bsky.feed.post/3l6x2xtqvsi2k" data-bluesky-interactions-reply-root-cid-param="bafyreigb3zdxql6vbobfcmilouyxwuklcl3535hi45sxfgp2ymd3wau4s4" data-bluesky-interactions-reply-author-name-param="Jiwinil" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:rq6vusvr3xm5c2damav5dbr5/bafkreihitzwjtk6hed5wngrf7nciboyrt5hsxwjzbf7mmmjls26khoxunm@jpeg" data-bluesky-interactions-post-path-param="/bsky/jiwinil.bsky.social/post/3l6x2xtqvsi2k" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:rq6vusvr3xm5c2damav5dbr5/app.bsky.feed.post/3l6x2xtqvsi2k" data-bluesky-repost-menu-cid-value="bafyreigb3zdxql6vbobfcmilouyxwuklcl3535hi45sxfgp2ymd3wau4s4" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="jiwinil.bsky.social" data-bluesky-repost-menu-post-text-value="เป็นนักหัดเขียน fantasy ที่เขียน slice of life ด้วยค่ะ แวะมาลองชิมกันได้นะคะ 🙏 🥺" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">7</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:rq6vusvr3xm5c2damav5dbr5/app.bsky.feed.post/3l6x2xtqvsi2k" data-bluesky-interactions-cid-param="bafyreigb3zdxql6vbobfcmilouyxwuklcl3535hi45sxfgp2ymd3wau4s4" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">6</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/jiwinil.bsky.social/post/3l6x2xtqvsi2k" data-share-title-value="Jiwinil on Lightnews" data-share-text-value="เป็นนักหัดเขียน fantasy ที่เขียน slice of life ด้วยค่ะ แวะมาลองชิมกันได้นะคะ 🙏 🥺" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="เป็นนักหัดเขียน fantasy ที่เขียน slice of life ด้วยค่ะ แวะมาลองชิมกันได้นะคะ 🙏 🥺" data-bluesky-options-author-handle-value="jiwinil.bsky.social" data-bluesky-options-author-did-value="did:plc:rq6vusvr3xm5c2damav5dbr5" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/thisnoire.bsky.social/post/3l6yn7aijdy2a" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=thisnoire.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="อลิซ นัวร์" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:xteq7jaldgflgtzywl56sce5/bafkreifi3isw5dbrekt6ydbnkrvdavyq4jgqsklapqycbqvyw3zk6ju7ai@jpeg" alt="thisnoire.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=thisnoire.bsky.social" class="truncate hover:underline text-black no-card-link">อลิซ นัวร์</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=thisnoire.bsky.social" class="hover:underline text-gray-500 no-card-link">@thisnoire.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">📣พรีออเดอร์📣<br>📆 20 ก.ย. - 31 ต.ค. 67<br>📕หนังสือขนาด A5<br>🍷225 หน้า | 50k คำ<br>🎟️ราคาปก 285.-<br><br>🌟ของแถม💫<br>🌹ที่คั่นหนังสือ<br>🌹โปสการ์ดเวอร์เลือดสาด<br>🌹โปสการ์ดเวอร์สดใสไร้เลือด<br><br>📍พรีออเดอร์ผ่าน ARN (มีส่วนลด) <a href="https://arnbook.com/productdetail/34668" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">arnbook.com/productdetai...</a></div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:xteq7jaldgflgtzywl56sce5/bafkreicz3pw44cmmuoarikwrguetzwiyy5wtfnqk2vzv5imrbsre453yra@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:xteq7jaldgflgtzywl56sce5/bafkreicz3pw44cmmuoarikwrguetzwiyy5wtfnqk2vzv5imrbsre453yra@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 21, 2024 at 4:07 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:xteq7jaldgflgtzywl56sce5/app.bsky.feed.post/3l6yn7aijdy2a"> 📣พรีออเดอร์📣<br>📆 20 ก.ย. - 31 ต.ค. 67<br>📕หนังสือขนาด A5<br>🍷225 หน้า | 50k คำ<br>🎟️ราคาปก 285.-<br><br>🌟ของแถม💫<br>🌹ที่คั่นหนังสือ<br>🌹โปสการ์ดเวอร์เลือดสาด<br>🌹โปสการ์ดเวอร์สดใสไร้เลือด<br><br>📍พรีออเดอร์ผ่าน ARN (มีส่วนลด) <a href="https://arnbook.com/productdetail/34668" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">arnbook.com/productdetai...</a> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:xteq7jaldgflgtzywl56sce5/app.bsky.feed.post/3l6yn7aijdy2a" data-bluesky-interactions-reply-cid-param="bafyreihy6e43dx6mcguyomn6p3sjlcvvtjlbsaxf7hjiu6wuqeeefxxnaq" data-bluesky-interactions-reply-root-uri-param="at://did:plc:xteq7jaldgflgtzywl56sce5/app.bsky.feed.post/3l6ymuxr37j2o" data-bluesky-interactions-reply-root-cid-param="bafyreibyurd2jogbyz3wm623ezab4fsnedz7ydmucsgjpamqnkjarfrcwe" data-bluesky-interactions-reply-author-name-param="อลิซ นัวร์" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:xteq7jaldgflgtzywl56sce5/bafkreifi3isw5dbrekt6ydbnkrvdavyq4jgqsklapqycbqvyw3zk6ju7ai@jpeg" data-bluesky-interactions-post-path-param="/bsky/thisnoire.bsky.social/post/3l6yn7aijdy2a" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:xteq7jaldgflgtzywl56sce5/app.bsky.feed.post/3l6yn7aijdy2a" data-bluesky-repost-menu-cid-value="bafyreihy6e43dx6mcguyomn6p3sjlcvvtjlbsaxf7hjiu6wuqeeefxxnaq" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="thisnoire.bsky.social" data-bluesky-repost-menu-post-text-value="📣พรีออเดอร์📣 📆 20 ก.ย. - 31 ต.ค. 67 📕หนังสือขนาด A5 🍷225 หน้า | 50k คำ 🎟️ราคาปก 285.- 🌟ของแถม💫 🌹ที่คั่นหนังสือ 🌹โปสการ์ดเวอร์เลือดสาด 🌹โปสการ์ดเวอร์สดใสไร้เลือด 📍พรีออเดอร์ผ่าน ARN (มีส่วนลด) arnbook.com/productdetai..." style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">3</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:xteq7jaldgflgtzywl56sce5/app.bsky.feed.post/3l6yn7aijdy2a" data-bluesky-interactions-cid-param="bafyreihy6e43dx6mcguyomn6p3sjlcvvtjlbsaxf7hjiu6wuqeeefxxnaq" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">1</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/thisnoire.bsky.social/post/3l6yn7aijdy2a" data-share-title-value="อลิซ นัวร์ on Lightnews" data-share-text-value="📣พรีออเดอร์📣 📆 20 ก.ย. - 31 ต.ค. 67 📕หนังสือขนาด A5 🍷225 หน้า | 50k คำ 🎟️ราคาปก 285.- 🌟ของแถม💫 🌹ที่คั่นหนังสือ 🌹โปสการ์ดเวอร์เลือดสาด 🌹โปสกา…" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="📣พรีออเดอร์📣 📆 20 ก.ย. - 31 ต.ค. 67 📕หนังสือขนาด A5 🍷225 หน้า | 50k คำ 🎟️ราคาปก 285.- 🌟ของแถม💫 🌹ที่คั่นหนังสือ 🌹โปสการ์ดเวอร์เลือดสาด 🌹โปสการ์ดเวอร์สดใสไร้เลือด 📍พรีออเดอร์ผ่าน ARN (มีส่วนลด) arnbook.com/productdetai..." data-bluesky-options-author-handle-value="thisnoire.bsky.social" data-bluesky-options-author-did-value="did:plc:xteq7jaldgflgtzywl56sce5" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/zkhouse.bsky.social/post/3l6yrocznzn25" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" alt="zkhouse.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="truncate hover:underline text-black no-card-link">ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="hover:underline text-gray-500 no-card-link">@zkhouse.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">สวัสดีคร้าบ Zer’Kaem a.k.a. คุณเซอร์คร้าบ สายแฟนตาซีทั้งแบบมีเลิฟไลน์และไม่มีเลิฟไลน์ ฝากเนื้อฝากตัวด้วยคร้าบ</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreibmsrum4befsjhvuvvco4ryuoghpmtxgtpgjv3mdqmmovjno3dj4u@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreibmsrum4befsjhvuvvco4ryuoghpmtxgtpgjv3mdqmmovjno3dj4u@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreiasqecyab65g4ownrh25zjydcfbrojlpsqewruhyn5qeduwsd2mci@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreiasqecyab65g4ownrh25zjydcfbrojlpsqewruhyn5qeduwsd2mci@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 21, 2024 at 5:27 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6yrocznzn25"> สวัสดีคร้าบ Zer’Kaem a.k.a. คุณเซอร์คร้าบ สายแฟนตาซีทั้งแบบมีเลิฟไลน์และไม่มีเลิฟไลน์ ฝากเนื้อฝากตัวด้วยคร้าบ </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6yrocznzn25" data-bluesky-interactions-reply-cid-param="bafyreihgv5gpimnxoqmiqy3as62sbwvdcbrkozqbe5pfueopmjuby2p7ky" data-bluesky-interactions-reply-root-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6yrocznzn25" data-bluesky-interactions-reply-root-cid-param="bafyreihgv5gpimnxoqmiqy3as62sbwvdcbrkozqbe5pfueopmjuby2p7ky" data-bluesky-interactions-reply-author-name-param="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" data-bluesky-interactions-post-path-param="/bsky/zkhouse.bsky.social/post/3l6yrocznzn25" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6yrocznzn25" data-bluesky-repost-menu-cid-value="bafyreihgv5gpimnxoqmiqy3as62sbwvdcbrkozqbe5pfueopmjuby2p7ky" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="zkhouse.bsky.social" data-bluesky-repost-menu-post-text-value="สวัสดีคร้าบ Zer’Kaem a.k.a. คุณเซอร์คร้าบ สายแฟนตาซีทั้งแบบมีเลิฟไลน์และไม่มีเลิฟไลน์ ฝากเนื้อฝากตัวด้วยคร้าบ" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">36</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6yrocznzn25" data-bluesky-interactions-cid-param="bafyreihgv5gpimnxoqmiqy3as62sbwvdcbrkozqbe5pfueopmjuby2p7ky" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">30</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/zkhouse.bsky.social/post/3l6yrocznzn25" data-share-title-value="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁 on Lightnews" data-share-text-value="สวัสดีคร้าบ Zer’Kaem a.k.a. คุณเซอร์คร้าบ สายแฟนตาซีทั้งแบบมีเลิฟไลน์และไม่มีเลิฟไลน์ ฝากเนื้อฝากตัวด้วยคร้าบ" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="สวัสดีคร้าบ Zer’Kaem a.k.a. คุณเซอร์คร้าบ สายแฟนตาซีทั้งแบบมีเลิฟไลน์และไม่มีเลิฟไลน์ ฝากเนื้อฝากตัวด้วยคร้าบ" data-bluesky-options-author-handle-value="zkhouse.bsky.social" data-bluesky-options-author-did-value="did:plc:mdyfvkyt4sb5uhyr5ttkbjdr" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/cinkai.bsky.social/post/3l6s24v6p6k22" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=cinkai.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="cinkai" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:ljtwrosx2gupr7ugi5643rgc/bafkreigikvkalvqhyyxeuqbxb2qb7ftbrc5wyuvk6zazgl27spvcvqpze4@jpeg" alt="cinkai.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=cinkai.bsky.social" class="truncate hover:underline text-black no-card-link">cinkai</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=cinkai.bsky.social" class="hover:underline text-gray-500 no-card-link">@cinkai.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">空蝉(2021)<br> <a href="/hashtag/GenshinImpact" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#GenshinImpact</a> <a href="/hashtag/%E5%8E%9F%E7%A5%9E" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#原神</a></div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:ljtwrosx2gupr7ugi5643rgc/bafkreifa7gg7z36ertigfk52b4iytdz7zezfraqxcenhthp2wwyqtdxnwq@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:ljtwrosx2gupr7ugi5643rgc/bafkreifa7gg7z36ertigfk52b4iytdz7zezfraqxcenhthp2wwyqtdxnwq@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 18, 2024 at 1:10 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6s24v6p6k22"> 空蝉(2021)<br> <a href="/hashtag/GenshinImpact" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#GenshinImpact</a> <a href="/hashtag/%E5%8E%9F%E7%A5%9E" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#原神</a> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6s24v6p6k22" data-bluesky-interactions-reply-cid-param="bafyreidu6yyshdyxz6rmddhxyc3lhyki5sznqjfojc23pnjq4fldnd2lhi" data-bluesky-interactions-reply-root-uri-param="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6s24v6p6k22" data-bluesky-interactions-reply-root-cid-param="bafyreidu6yyshdyxz6rmddhxyc3lhyki5sznqjfojc23pnjq4fldnd2lhi" data-bluesky-interactions-reply-author-name-param="cinkai" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:ljtwrosx2gupr7ugi5643rgc/bafkreigikvkalvqhyyxeuqbxb2qb7ftbrc5wyuvk6zazgl27spvcvqpze4@jpeg" data-bluesky-interactions-post-path-param="/bsky/cinkai.bsky.social/post/3l6s24v6p6k22" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">3</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6s24v6p6k22" data-bluesky-repost-menu-cid-value="bafyreidu6yyshdyxz6rmddhxyc3lhyki5sznqjfojc23pnjq4fldnd2lhi" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="cinkai.bsky.social" data-bluesky-repost-menu-post-text-value="空蝉(2021) #GenshinImpact #原神" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">160</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6s24v6p6k22" data-bluesky-interactions-cid-param="bafyreidu6yyshdyxz6rmddhxyc3lhyki5sznqjfojc23pnjq4fldnd2lhi" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">440</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/cinkai.bsky.social/post/3l6s24v6p6k22" data-share-title-value="cinkai on Lightnews" data-share-text-value="空蝉(2021) #GenshinImpact #原神" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="空蝉(2021) #GenshinImpact #原神" data-bluesky-options-author-handle-value="cinkai.bsky.social" data-bluesky-options-author-did-value="did:plc:ljtwrosx2gupr7ugi5643rgc" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/cinkai.bsky.social/post/3l6v5atrevx2c" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=cinkai.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="cinkai" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:ljtwrosx2gupr7ugi5643rgc/bafkreigikvkalvqhyyxeuqbxb2qb7ftbrc5wyuvk6zazgl27spvcvqpze4@jpeg" alt="cinkai.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=cinkai.bsky.social" class="truncate hover:underline text-black no-card-link">cinkai</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=cinkai.bsky.social" class="hover:underline text-gray-500 no-card-link">@cinkai.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">『RedemptioN』(2021)</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:ljtwrosx2gupr7ugi5643rgc/bafkreifqygskoc7kqtipilymidzauzoltjrzmvxk46i4y5gyae63mj572y@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:ljtwrosx2gupr7ugi5643rgc/bafkreifqygskoc7kqtipilymidzauzoltjrzmvxk46i4y5gyae63mj572y@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 19, 2024 at 6:44 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6v5atrevx2c"> 『RedemptioN』(2021) </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6v5atrevx2c" data-bluesky-interactions-reply-cid-param="bafyreifsdniii3lvr4eatgefawndsxfkxj56pl3goobus7dfsktfubo36y" data-bluesky-interactions-reply-root-uri-param="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6v5atrevx2c" data-bluesky-interactions-reply-root-cid-param="bafyreifsdniii3lvr4eatgefawndsxfkxj56pl3goobus7dfsktfubo36y" data-bluesky-interactions-reply-author-name-param="cinkai" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:ljtwrosx2gupr7ugi5643rgc/bafkreigikvkalvqhyyxeuqbxb2qb7ftbrc5wyuvk6zazgl27spvcvqpze4@jpeg" data-bluesky-interactions-post-path-param="/bsky/cinkai.bsky.social/post/3l6v5atrevx2c" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6v5atrevx2c" data-bluesky-repost-menu-cid-value="bafyreifsdniii3lvr4eatgefawndsxfkxj56pl3goobus7dfsktfubo36y" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="cinkai.bsky.social" data-bluesky-repost-menu-post-text-value="『RedemptioN』(2021)" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">17</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:ljtwrosx2gupr7ugi5643rgc/app.bsky.feed.post/3l6v5atrevx2c" data-bluesky-interactions-cid-param="bafyreifsdniii3lvr4eatgefawndsxfkxj56pl3goobus7dfsktfubo36y" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">97</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/cinkai.bsky.social/post/3l6v5atrevx2c" data-share-title-value="cinkai on Lightnews" data-share-text-value="『RedemptioN』(2021)" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="『RedemptioN』(2021)" data-bluesky-options-author-handle-value="cinkai.bsky.social" data-bluesky-options-author-did-value="did:plc:ljtwrosx2gupr7ugi5643rgc" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/zkhouse.bsky.social/post/3l6sbldur3b2z" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" alt="zkhouse.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="truncate hover:underline text-black no-card-link">ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="hover:underline text-gray-500 no-card-link">@zkhouse.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">หนูค่ะพี่😭😭😭🥹😭😭 น้องคุณเซอร์อยู่นี่แล้วค่ะ(ไม่มีเวลาทำอาร์ตเวิร์คใหม่)😭😭😭😭</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreicnldowbq6qhfzswa62jxlwzr5zcgaujd5kkpwvldqqyra2kogz4q@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreicnldowbq6qhfzswa62jxlwzr5zcgaujd5kkpwvldqqyra2kogz4q@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 18, 2024 at 3:23 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sbldur3b2z"> หนูค่ะพี่😭😭😭🥹😭😭 น้องคุณเซอร์อยู่นี่แล้วค่ะ(ไม่มีเวลาทำอาร์ตเวิร์คใหม่)😭😭😭😭 </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sbldur3b2z" data-bluesky-interactions-reply-cid-param="bafyreieahv5r6ulmtp4dqrt77pnxrjm2bryj3lavgu2uvongf4vpoxgxey" data-bluesky-interactions-reply-root-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sbldur3b2z" data-bluesky-interactions-reply-root-cid-param="bafyreieahv5r6ulmtp4dqrt77pnxrjm2bryj3lavgu2uvongf4vpoxgxey" data-bluesky-interactions-reply-author-name-param="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" data-bluesky-interactions-post-path-param="/bsky/zkhouse.bsky.social/post/3l6sbldur3b2z" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sbldur3b2z" data-bluesky-repost-menu-cid-value="bafyreieahv5r6ulmtp4dqrt77pnxrjm2bryj3lavgu2uvongf4vpoxgxey" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="zkhouse.bsky.social" data-bluesky-repost-menu-post-text-value="หนูค่ะพี่😭😭😭🥹😭😭 น้องคุณเซอร์อยู่นี่แล้วค่ะ(ไม่มีเวลาทำอาร์ตเวิร์คใหม่)😭😭😭😭" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">52</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sbldur3b2z" data-bluesky-interactions-cid-param="bafyreieahv5r6ulmtp4dqrt77pnxrjm2bryj3lavgu2uvongf4vpoxgxey" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">45</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/zkhouse.bsky.social/post/3l6sbldur3b2z" data-share-title-value="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁 on Lightnews" data-share-text-value="หนูค่ะพี่😭😭😭🥹😭😭 น้องคุณเซอร์อยู่นี่แล้วค่ะ(ไม่มีเวลาทำอาร์ตเวิร์คใหม่)😭😭😭😭" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="หนูค่ะพี่😭😭😭🥹😭😭 น้องคุณเซอร์อยู่นี่แล้วค่ะ(ไม่มีเวลาทำอาร์ตเวิร์คใหม่)😭😭😭😭" data-bluesky-options-author-handle-value="zkhouse.bsky.social" data-bluesky-options-author-did-value="did:plc:mdyfvkyt4sb5uhyr5ttkbjdr" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/roseqserenity.bsky.social/post/3l6ra2qvj5w2n" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="mb-1 sm:mb-2 ml-6 text-sm font-semibold text-gray-500 flex items-center gap-1"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Reposted by ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</span> </div> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=roseqserenity.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="Toya." style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:st7prgo4y2ds4pky6oqezf2z/bafkreidiiil2zmd4gkl4vhqkkjekfntgswbqdzgl3rhgabdir3wfckpp6m@jpeg" alt="roseqserenity.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=roseqserenity.bsky.social" class="truncate hover:underline text-black no-card-link">Toya.</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=roseqserenity.bsky.social" class="hover:underline text-gray-500 no-card-link">@roseqserenity.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">ผปค.เหมียว ๆ ริวโรสครับ ≽^•⩊•^≼</div> <div class="mt-2 w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="modal"> <div class="grid grid-cols-2 gap-1"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:st7prgo4y2ds4pky6oqezf2z/bafkreifdychmuqojvreoadk46kbcflicybu2hivt7xaki5khuvxihqnira@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:st7prgo4y2ds4pky6oqezf2z/bafkreifdychmuqojvreoadk46kbcflicybu2hivt7xaki5khuvxihqnira@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:st7prgo4y2ds4pky6oqezf2z/bafkreicgk77n2lscmewck5vgg4gartyhmcpitd66kelz2ttpebv7jdhrwu@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:st7prgo4y2ds4pky6oqezf2z/bafkreicgk77n2lscmewck5vgg4gartyhmcpitd66kelz2ttpebv7jdhrwu@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:st7prgo4y2ds4pky6oqezf2z/bafkreicthtqifttmre4wp5blgv3yckwajx52oadzji5dhk2mtrx7lfgtjm@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:st7prgo4y2ds4pky6oqezf2z/bafkreicthtqifttmre4wp5blgv3yckwajx52oadzji5dhk2mtrx7lfgtjm@jpeg" alt="" class="w-full h-full object-cover rounded cursor-zoom-in" loading="lazy"> </div> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 18, 2024 at 5:23 AM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:st7prgo4y2ds4pky6oqezf2z/app.bsky.feed.post/3l6ra2qvj5w2n"> ผปค.เหมียว ๆ ริวโรสครับ ≽^•⩊•^≼ </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:st7prgo4y2ds4pky6oqezf2z/app.bsky.feed.post/3l6ra2qvj5w2n" data-bluesky-interactions-reply-cid-param="bafyreiczwnehenxlruvhgmcgjtmc6rmshmx72aqbue7x5kcbvrjm3pdpc4" data-bluesky-interactions-reply-root-uri-param="at://did:plc:st7prgo4y2ds4pky6oqezf2z/app.bsky.feed.post/3l6ra2qvj5w2n" data-bluesky-interactions-reply-root-cid-param="bafyreiczwnehenxlruvhgmcgjtmc6rmshmx72aqbue7x5kcbvrjm3pdpc4" data-bluesky-interactions-reply-author-name-param="Toya." data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:st7prgo4y2ds4pky6oqezf2z/bafkreidiiil2zmd4gkl4vhqkkjekfntgswbqdzgl3rhgabdir3wfckpp6m@jpeg" data-bluesky-interactions-post-path-param="/bsky/roseqserenity.bsky.social/post/3l6ra2qvj5w2n" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">4</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:st7prgo4y2ds4pky6oqezf2z/app.bsky.feed.post/3l6ra2qvj5w2n" data-bluesky-repost-menu-cid-value="bafyreiczwnehenxlruvhgmcgjtmc6rmshmx72aqbue7x5kcbvrjm3pdpc4" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="roseqserenity.bsky.social" data-bluesky-repost-menu-post-text-value="ผปค.เหมียว ๆ ริวโรสครับ ≽^•⩊•^≼" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">61</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:st7prgo4y2ds4pky6oqezf2z/app.bsky.feed.post/3l6ra2qvj5w2n" data-bluesky-interactions-cid-param="bafyreiczwnehenxlruvhgmcgjtmc6rmshmx72aqbue7x5kcbvrjm3pdpc4" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">110</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/roseqserenity.bsky.social/post/3l6ra2qvj5w2n" data-share-title-value="Toya. on Lightnews" data-share-text-value="ผปค.เหมียว ๆ ริวโรสครับ ≽^•⩊•^≼" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="ผปค.เหมียว ๆ ริวโรสครับ ≽^•⩊•^≼" data-bluesky-options-author-handle-value="roseqserenity.bsky.social" data-bluesky-options-author-did-value="did:plc:st7prgo4y2ds4pky6oqezf2z" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/zkhouse.bsky.social/post/3l6sarja6lt2h" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" alt="zkhouse.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="truncate hover:underline text-black no-card-link">ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="hover:underline text-gray-500 no-card-link">@zkhouse.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-2 border rounded-2xl p-3 w-[calc(100%+3.5rem)] -ml-[3.5rem] card-clickable cursor-pointer group" data-href="/bsky/pettessan.bsky.social/post/3l6ra7icyip2c" role="link" tabindex="0"> <div class="w-full bluesky-nested"> <div> <div class="text-[13px] leading-4 text-black flex items-center gap-2 min-w-0"> <a href="/author?bsky_handle=pettessan.bsky.social" class="no-card-link shrink-0" aria-label="Pettes"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:hgjaihekznpt7buu5l6aoneu/bafkreic7t2jvwnjvquujgx3ib7nj6zngs2j6viiikyitrf6ifbxhhe32oy@jpeg" alt="pettessan.bsky.social" class="w-4 h-4 rounded-full" loading="lazy"> </a> <span class="flex items-center min-w-0 truncate"> <a href="/author?bsky_handle=pettessan.bsky.social" class="font-semibold text-black hover:underline truncate no-card-link">Pettes</a> <a href="/author?bsky_handle=pettessan.bsky.social" class="text-gray-500 ml-1 truncate hover:underline no-card-link">@pettessan.bsky.social</a> </span> <span class="text-gray-500 ml-1 shrink-0">· Oct 18</span> </div> <div class="mt-1 text-[15px] leading-5 break-words text-gray-800"> ลืมลงรูปไอ่เหลืองหรอเนี่ย >< <a href="/hashtag/%E0%B8%88%E0%B8%B1%E0%B8%9A%E0%B8%A1%E0%B8%B7%E0%B8%AD%E0%B8%A5%E0%B8%87%E0%B8%99%E0%B8%A3%E0%B8%81" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link">#จับมือลงนรก</a> </div> <div class="mt-2 no-card-link" data-controller="modal"> <img src="https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:hgjaihekznpt7buu5l6aoneu/bafkreifjrxnwlkt7prh4t36fraj6mkd3awa65gry6ahhvdwsbwty626l4e@jpeg" data-action="click->modal#openWith" data-large-src="https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:hgjaihekznpt7buu5l6aoneu/bafkreifjrxnwlkt7prh4t36fraj6mkd3awa65gry6ahhvdwsbwty626l4e@jpeg" alt="" class="w-full rounded cursor-zoom-in" loading="lazy"> <div data-modal-target="panel" class="hidden fixed inset-0 z-[100]"> <div class="absolute inset-0 bg-black/90" data-action="click->modal#close"></div> <div class="relative z-[101] h-full w-full flex items-center justify-center p-4" data-action="click->modal#stop"> <img data-modal-target="image" alt="" class="max-w-full max-h-full rounded"> <button type="button" aria-label="Close" class="absolute top-4 right-4 inline-flex items-center justify-center w-10 h-10 rounded-full bg-black/60 text-white hover:bg-black/80" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> </button> </div> </div> </div> </div> </div> </div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 18, 2024 at 3:09 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sarja6lt2h"> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sarja6lt2h" data-bluesky-interactions-reply-cid-param="bafyreicntmwyxzktrksy3gq4uqqcf4eejdpr46gvtpldgf42yibpufivye" data-bluesky-interactions-reply-root-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sarja6lt2h" data-bluesky-interactions-reply-root-cid-param="bafyreicntmwyxzktrksy3gq4uqqcf4eejdpr46gvtpldgf42yibpufivye" data-bluesky-interactions-reply-author-name-param="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" data-bluesky-interactions-post-path-param="/bsky/zkhouse.bsky.social/post/3l6sarja6lt2h" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">1</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sarja6lt2h" data-bluesky-repost-menu-cid-value="bafyreicntmwyxzktrksy3gq4uqqcf4eejdpr46gvtpldgf42yibpufivye" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="zkhouse.bsky.social" data-bluesky-repost-menu-post-text-value="" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6sarja6lt2h" data-bluesky-interactions-cid-param="bafyreicntmwyxzktrksy3gq4uqqcf4eejdpr46gvtpldgf42yibpufivye" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">9</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/zkhouse.bsky.social/post/3l6sarja6lt2h" data-share-title-value="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁 on Lightnews" data-share-text-value="" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="" data-bluesky-options-author-handle-value="zkhouse.bsky.social" data-bluesky-options-author-did-value="did:plc:mdyfvkyt4sb5uhyr5ttkbjdr" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> <div class="w-full border-y sm:border bg-white dark:bg-[#0C1220] bluesky-list-card digest-card card-clickable cursor-pointer group" data-href="/bsky/zkhouse.bsky.social/post/3l6saepz2hf2g" role="link" tabindex="0" data-card-type="bsky-post" onclick="if(!event.target.closest('.no-card-link')){ window.location = this.dataset.href }" onkeydown="if((event.key==='Enter' || event.key===' ') && !event.target.closest('.no-card-link')){ window.location = this.dataset.href }"> <div class="px-4 py-3"> <div class="flex items-start gap-4"> <div class="relative w-10 self-stretch flex justify-center no-card-link avatar-column-no-nav" style="min-height:40px; align-self:stretch" onclick="event.stopPropagation(); event.stopImmediatePropagation(); return false;" onkeydown="if(event.key==='Enter' || event.key===' '){ event.stopPropagation(); event.stopImmediatePropagation(); return false; }"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="no-card-link inline-block flex-shrink-0" aria-label="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" style="align-self: flex-start;"> <img src="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" alt="zkhouse.bsky.social" class="w-10 h-10 rounded-full relative z-10" loading="lazy"> </a> </div> <div class="flex-1 min-w-0 -mt-0.5"> <div> <div class="text-[1.1rem] sm:text-[1.15rem] font-semibold text-black flex items-center gap-1"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="truncate hover:underline text-black no-card-link">ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁</a> </div> <div class="text-gray-500 text-sm leading-4 -mt-0.5 truncate"> <a href="/author?bsky_handle=zkhouse.bsky.social" class="hover:underline text-gray-500 no-card-link">@zkhouse.bsky.social</a> </div> </div> <div class="mt-3 text-[1.2rem] leading-7 break-words text-gray-800 w-[calc(100%+3.5rem)] -ml-[3.5rem]">ทุกคน เราทำลิตส์นักเขียน(ได้ 10 คน) 😭😭😭😭😭<br><br><a href="https://go.bsky.app/4HW9GTa" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">go.bsky.app/4HW9GTa</a></div> <div class="mt-3 text-xs text-gray-500 flex items-center gap-2 whitespace-nowrap overflow-hidden w-[calc(100%+3.5rem)] -ml-[3.5rem]"> <span>October 18, 2024 at 3:01 PM</span> </div> <div class="border-t my-2 w-[calc(100%+3.5rem)] -ml-[3.5rem]"></div> <div class="mt-3 flex items-center justify-between text-gray-600 text-sm w-[calc(100%+3.5rem)] -ml-[3.5rem] no-card-link" data-controller="bluesky-interactions"> <div class="flex items-center justify-between w-[300px] pr-4 no-card-link"> <div class="hidden" data-post-text-uri="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6saepz2hf2g"> ทุกคน เราทำลิตส์นักเขียน(ได้ 10 คน) 😭😭😭😭😭<br><br><a href="https://go.bsky.app/4HW9GTa" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">go.bsky.app/4HW9GTa</a> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link" data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#reply" data-bluesky-interactions-reply-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6saepz2hf2g" data-bluesky-interactions-reply-cid-param="bafyreibyscetwkluea2emerr4sd4owvgubdmtbeibmjohzztc5vnciva5q" data-bluesky-interactions-reply-root-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6saepz2hf2g" data-bluesky-interactions-reply-root-cid-param="bafyreibyscetwkluea2emerr4sd4owvgubdmtbeibmjohzztc5vnciva5q" data-bluesky-interactions-reply-author-name-param="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁" data-bluesky-interactions-reply-author-avatar-param="https://cdn.bsky.app/img/avatar/plain/did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/bafkreidl56fh6mzabh4352jjir25hji7xawbjyouhs7acjefjfkd3ehg7m@jpeg" data-bluesky-interactions-post-path-param="/bsky/zkhouse.bsky.social/post/3l6saepz2hf2g" title="Reply" style="pointer-events: auto; cursor: pointer; z-index: 10; position: relative;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a4 4 0 0 1-4 4H7l-4 4V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"/></svg> <span data-bluesky-interactions-target="replyCount">14</span> </button> <div class="relative no-card-link" data-controller="bluesky-repost-menu" data-bluesky-repost-menu-uri-value="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6saepz2hf2g" data-bluesky-repost-menu-cid-value="bafyreibyscetwkluea2emerr4sd4owvgubdmtbeibmjohzztc5vnciva5q" data-bluesky-repost-menu-repost-uri-value="" data-bluesky-repost-menu-is-reposted-value="false" data-bluesky-repost-menu-author-handle-value="zkhouse.bsky.social" data-bluesky-repost-menu-post-text-value="ทุกคน เราทำลิตส์นักเขียน(ได้ 10 คน) 😭😭😭😭😭 go.bsky.app/4HW9GTa" style="pointer-events:auto; cursor:pointer;"> <button type="button" class="flex items-center gap-1 hover:text-black " data-action="click->bluesky-repost-menu#toggleMenu" data-bluesky-interactions-target="repostButton" title="Repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span data-bluesky-interactions-target="repostCount">75</span> </button> <div class="hidden absolute left-0 bottom-full mb-3 w-48 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden z-50" data-bluesky-repost-menu-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#repost"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="17 1 21 5 17 9"/><path d="M3 11V9a4 4 0 0 1 4-4h14"/><polyline points="7 23 3 19 7 15"/><path d="M21 13v2a4 4 0 0 1-4 4H3"/></svg> <span>Repost</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-repost-menu#quote"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> <span>Quote post</span> </button> </div> </div> <button type="button" class="flex items-center gap-1 hover:text-black no-card-link " data-action="click->bluesky-auth#requireConnection click->bluesky-interactions#toggleLike" data-bluesky-interactions-uri-param="at://did:plc:mdyfvkyt4sb5uhyr5ttkbjdr/app.bsky.feed.post/3l6saepz2hf2g" data-bluesky-interactions-cid-param="bafyreibyscetwkluea2emerr4sd4owvgubdmtbeibmjohzztc5vnciva5q" data-bluesky-interactions-like-uri-param="" data-bluesky-interactions-target="likeButton" title="Like"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z"/></svg> <span data-bluesky-interactions-target="likeCount">56</span> </button> </div> <div class="flex items-center gap-4 text-gray-500"> <button type="button" class="flex items-center hover:text-black no-card-link" data-controller="share" data-share-url-value="https://oauth.lightnews.app/bsky/zkhouse.bsky.social/post/3l6saepz2hf2g" data-share-title-value="ℤ𝕖𝕣'𝕂𝕒𝕖𝕞 🦊🍁 on Lightnews" data-share-text-value="ทุกคน เราทำลิตส์นักเขียน(ได้ 10 คน) 😭😭😭😭😭 go.bsky.app/4HW9GTa" data-action="click->share#shareSystem" title="Share" style="pointer-events:auto; cursor:pointer;"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg> </button> <div class="relative no-card-link" data-controller="bluesky-options" data-bluesky-options-text-value="ทุกคน เราทำลิตส์นักเขียน(ได้ 10 คน) 😭😭😭😭😭 go.bsky.app/4HW9GTa" data-bluesky-options-author-handle-value="zkhouse.bsky.social" data-bluesky-options-author-did-value="did:plc:mdyfvkyt4sb5uhyr5ttkbjdr" data-bluesky-options-muted-value="false" data-bluesky-options-blocking-uri-value="" data-bluesky-options-own-value="false" data-bluesky-options-delete-url-value="" data-bluesky-options-post-element-selector-value='[data-card-type="bsky-post"]'> <button type="button" class="inline-flex items-center" data-action="click->bluesky-options#toggleMenu" aria-label="Post options"> <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg> </button> <div class="hidden absolute right-0 bottom-full mb-3 w-60 rounded-2xl border border-white/10 bg-[#1C2333] text-white shadow-xl overflow-hidden" data-bluesky-options-target="menu"> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#translate"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 4h16v16H4z"/><path d="M9 8h6"/><path d="M9 12h6"/><path d="M9 16h6"/></svg> </span> <span>Translate</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-options#copyText"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="8" width="12" height="12" rx="2"/><path d="M16 8V6a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8"/></svg> </span> <span>Copy post text</span> </button> <div class="border-t border-white/10"></div> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#muteAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 9v6h3l5 5V4L7 9H4z"/><line x1="16" y1="9" x2="19" y2="12"/><line x1="19" y1="12" x2="16" y2="15"/></svg> </span> <span data-bluesky-options-target="muteLabel">Mute account</span> </button> <button type="button" class="w-full px-4 py-3 flex items-center gap-3 text-sm hover:bg-[#273045] text-left" data-action="click->bluesky-auth#requireConnection click->bluesky-options#blockAccount"> <span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-white/10"> <svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h18v18H3z"/><path d="M3 3l18 18"/></svg> </span> <span data-bluesky-options-target="blockLabel">Block account</span> </button> </div> </div> </div> </div> </div> </div> </div> </div> <script> // Prevent navigation when clicking in avatar column area - must run in capture phase before global handler // Only initialize once to avoid duplicate listeners if (!window._avatarColumnNoNavInitialized) { window._avatarColumnNoNavInitialized = true; document.addEventListener('click', function(ev) { try { // Check if target itself has the class OR is inside an element with that class var avatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if (avatarColumn) { // Only allow navigation if clicking directly on the avatar link itself var isAvatarLink = ev.target.tagName === 'A' && ev.target.href && ev.target.href.indexOf('/author') !== -1; if (!isAvatarLink) { ev.stopPropagation(); ev.stopImmediatePropagation(); ev.preventDefault(); return false; } } } catch(e) {} }, true); // Capture phase - runs BEFORE other handlers } </script> </div> </div> </div> </main> <!-- mobile footer CTA will be rendered after the grid to avoid stacking issues --> </div> <div class="hidden md:block"></div> </div> <!-- Mobile footer: CTA when logged out; mini-nav when logged in --> <div id="cta-footer" class="md:hidden fixed bottom-0 left-0 right-0 z-40 bg-white dark:bg-black border-t border-gray-200 dark:border-gray-700"> <div class="px-2 pt-3 pb-5"> <div class="flex items-center justify-between gap-3"> <!-- Left: Logo + Text --> <div class="flex items-center gap-2 flex-1 min-w-0"> <a class="inline-flex items-center gap-2" aria-label="Lightnews" data-apply-edition="1" href="/"> <img alt="Lightnews" class="logo-light h-10 w-10 flex-shrink-0" src="/assets/lightnews_black-993b5cbd.png" /> <img alt="Lightnews" class="logo-dark h-10 w-10 flex-shrink-0" src="/assets/lightnews-f13a19bd.png" /> <span class="text-base font-semibold text-gray-900 dark:text-white truncate brand-text">Lightnews</span> </a> </div> <!-- Right: Buttons --> <div class="flex items-center gap-2 flex-shrink-0"> <button type="button" data-action="click->bluesky-auth#openOAuthModal" class="btn btn-primary btn-sm whitespace-nowrap">Create account</button> <button type="button" data-action="click->bluesky-auth#openOAuthModal" class="btn btn-light btn-sm whitespace-nowrap">Sign in</button> </div> </div> </div> </div> <!-- Add bottom padding to body on mobile to prevent content from being hidden behind sticky footer --> <style> @media (max-width: 767px) { body { padding-bottom: 6.5rem; } } /* Hard guarantee: footer is visible on mobile widths */ @media (max-width: 1023px) { #cta-footer { display: block !important; } } </style> <!-- Sign In Modal --> <div id="signin-modal" class="hidden fixed inset-0 z-50 overflow-y-auto" data-auth-modal-target="signinModal"> <div class="flex min-h-screen items-center justify-center p-4"> <!-- Backdrop --> <div class="fixed inset-0 bg-black/80 transition-opacity" data-action="click->auth-modal#close"></div> <!-- Modal Content --> <div class="relative bg-white dark:bg-black rounded-2xl w-full max-w-md p-8 shadow-2xl"> <!-- Close Button --> <button data-action="click->auth-modal#close" class="absolute top-4 right-4 text-gray-400 hover:text-white transition-colors"> <svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line> </svg> </button> <!-- Logo --> <div class="flex justify-center mb-6"> <img alt="Lightnews" class="logo-light h-12 w-12" src="/assets/lightnews_black-993b5cbd.png" /> <img alt="Lightnews" class="logo-dark h-12 w-12" src="/assets/lightnews-f13a19bd.png" /> </div> <!-- Title --> <h2 class="text-black dark:text-white text-3xl font-bold text-center mb-6">Sign in to Lightnews</h2> <!-- Top CTA: Bluesky quick sign-in (neutral OAuth style with icon) --> <div class="mb-6"> <a class="w-full flex items-center justify-center gap-3 px-6 py-3 bg-transparent hover:bg-black/5 dark:hover:bg-white/10 text-black dark:text-white font-semibold rounded transition-colors border border-gray-300 dark:border-gray-600" data-turbo="false" href="/auth/bluesky/start"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"> <path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.038.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741 0 01-.415-.056c.14.018.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z" fill="#1185fe"/> </svg> Continue with Bluesky </a> </div> <!-- OAuth Buttons --> <div class="space-y-3 mb-6"> <!-- Google --> <button class="w-full flex items-center justify-center gap-3 px-6 py-3 bg-transparent hover:bg-black/5 dark:hover:bg-white/10 text-black dark:text-white font-semibold rounded transition-colors border border-gray-300 dark:border-gray-600"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"> <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"/> <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"/> <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"/> <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"/> </svg> Continue with Google </button> <!-- Apple --> <button class="w-full flex items-center justify-center gap-3 px-6 py-3 bg-transparent hover:bg-black/5 dark:hover:bg-white/10 text-black dark:text-white font-semibold rounded transition-colors border border-gray-300 dark:border-gray-600"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"> <path d="M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z"/> </svg> Continue with Apple </button> </div> <!-- Divider --> <div class="relative my-6"> <div class="absolute inset-0 flex items-center"> <div class="w-full border-t border-gray-700"></div> </div> </div> <!-- Email Form --> <form class="space-y-4"> <div class="mt-10"> <label for="signin-email" class="block text-black dark:text-white font-semibold text-sm mb-2">Email or username</label> <input type="text" id="signin-email" placeholder="Email or username" class="w-full px-4 py-3 bg-gray-50 dark:bg-gray-900 border border-gray-300 dark:border-gray-700 rounded text-black dark:text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-600 focus:border-transparent" /> </div> <button type="submit" class="w-full btn btn-primary py-3 font-semibold"> Continue </button> </form> <!-- Footer --> <div class="mt-8 text-center"> <p class="text-gray-600 dark:text-gray-400 mb-2">Don't have an account?</p> <button data-action="click->auth-modal#switchToSignup" class="text-blue-600 dark:text-white font-semibold underline hover:text-blue-500 transition-colors"> Sign up for Lightnews </button> </div> </div> </div> </div> <!-- Sign Up Modal --> <div id="signup-modal" class="hidden fixed inset-0 z-50 overflow-y-auto" data-auth-modal-target="signupModal"> <div class="flex min-h-screen items-center justify-center p-4"> <!-- Backdrop --> <div class="fixed inset-0 bg-black/80 transition-opacity" data-action="click->auth-modal#close"></div> <!-- Modal Content --> <div class="relative bg-white dark:bg-black rounded-2xl w-full max-w-md p-8 shadow-2xl"> <!-- Close Button --> <button data-action="click->auth-modal#close" class="absolute top-4 right-4 text-gray-400 hover:text-white transition-colors"> <svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line> </svg> </button> <!-- Logo --> <div class="flex justify-center mb-6"> <img alt="Lightnews" class="logo-light h-12 w-12" src="/assets/lightnews_black-993b5cbd.png" /> <img alt="Lightnews" class="logo-dark h-12 w-12" src="/assets/lightnews-f13a19bd.png" /> </div> <!-- Title --> <h2 class="text-black dark:text-white text-3xl font-bold text-center mb-6">Sign up to start reading</h2> <!-- Top CTA: Bluesky quick sign-up (neutral OAuth style with icon) --> <div class="mb-6"> <a class="w-full flex items-center justify-center gap-3 px-6 py-3 bg-transparent hover:bg-black/5 dark:hover:bg-white/10 text-black dark:text-white font-semibold rounded transition-colors border border-gray-300 dark:border-gray-600" data-turbo="false" href="/auth/bluesky/start"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"> <path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.038.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741 0 01-.415-.056c.14.018.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z" fill="#1185fe"/> </svg> Sign up with Bluesky </a> </div> <!-- Divider before email sign up --> <div class="relative my-4"> <div class="absolute inset-0 flex items-center"> <div class="w-full border-t border-gray-300 dark:border-gray-700"></div> </div> <div class="relative flex justify-center"> <span class="bg-white dark:bg-black px-3 text-sm text-gray-600 dark:text-gray-300">or</span> </div> </div> <!-- Email Form First --> <form class="space-y-4 mt-2"> <div> <label for="signup-email" class="block text-black dark:text-white font-semibold text-sm mt-2 mb-2">Email address</label> <input type="email" id="signup-email" placeholder="name@domain.com" class="w-full px-4 py-3 bg-gray-50 dark:bg-gray-900 border border-gray-300 dark:border-gray-700 rounded text-black dark:text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-600 focus:border-transparent" /> </div> <button type="submit" class="w-full btn btn-primary py-3 font-semibold"> Next </button> </form> <!-- Divider --> <div class="relative my-6"> <div class="absolute inset-0 flex items-center"> <div class="w-full border-t border-gray-700"></div> </div> <div class="relative flex justify-center"> <span class="bg-white dark:bg-black px-4 text-black dark:text-white text-sm">or</span> </div> </div> <!-- OAuth Buttons --> <div class="space-y-3 mb-6"> <!-- Google --> <button class="w-full flex items-center justify-center gap-3 px-6 py-3 bg-transparent hover:bg-black/5 dark:hover:bg-white/10 text-black dark:text-white font-semibold rounded transition-colors border border-gray-300 dark:border-gray-600"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"> <path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"/> <path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"/> <path d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z" fill="#FBBC05"/> <path d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z" fill="#EA4335"/> </svg> Sign up with Google </button> <!-- Apple --> <button class="w-full flex items-center justify-center gap-3 px-6 py-3 bg-transparent hover:bg-black/5 dark:hover:bg-white/10 text-black dark:text-white font-semibold rounded transition-colors border border-gray-300 dark:border-gray-600"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"> <path d="M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z"/> </svg> Sign up with Apple </button> </div> <!-- Footer --> <div class="mt-8 text-center"> <p class="text-gray-600 dark:text-gray-400 mb-2">Already have an account?</p> <button data-action="click->auth-modal#switchToSignin" class="text-blue-600 dark:text-white font-semibold underline hover:text-blue-500 transition-colors"> Sign in </button> </div> </div> </div> </div> <div data-controller="modal" data-reply-modal="true" id="global-reply-modal" data-viewer-avatar-url="" data-viewer-display-name=""> <div class="hidden fixed inset-0 z-50 overflow-y-auto" data-modal-target="panel" data-viewer-avatar-url="" data-viewer-display-name=""> <div class="flex min-h-screen items-start justify-center pt-4 md:pt-20"> <!-- Backdrop --> <div class="fixed inset-0 bg-black/80 transition-opacity" data-action="click->modal#close"></div> <!-- Modal Content --> <div class="relative bg-[#1e3a5f] rounded-2xl w-full max-w-xl mx-4 shadow-2xl" data-action="click->modal#stop"> <!-- Top bar: Cancel + Reply button --> <div class="flex items-center justify-between px-4 py-3 border-b border-gray-600"> <button type="button" class="text-blue-400 text-base font-medium" data-action="click->modal#close">Cancel</button> <button type="button" id="modal-reply-submit" class="px-5 py-1.5 bg-blue-600 text-white rounded-full font-semibold hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed"> Reply </button> </div> <!-- Parent post preview (for replies) --> <div class="px-4 py-3 border-b border-gray-600 modal-reply-preview"> <div class="flex items-start gap-3"> <img src="" alt="" class="modal-reply-author-avatar w-10 h-10 rounded-full flex-shrink-0 hidden"> <div class="modal-reply-author-avatar-placeholder w-10 h-10 rounded-full bg-gray-300 flex-shrink-0"></div> <div class="flex-1 min-w-0"> <div class="font-semibold text-white text-base modal-reply-author-name"> </div> <div class="text-gray-300 text-sm line-clamp-3 modal-reply-post-text"> </div> </div> </div> </div> <!-- Reply/Post textarea --> <div class="px-4 py-3"> <div class="flex items-start gap-3"> <img src="" alt="You" class="modal-viewer-avatar w-10 h-10 rounded-full flex-shrink-0 hidden"> <div class="modal-viewer-avatar-placeholder w-10 h-10 rounded-full bg-gray-300 flex-shrink-0 "></div> <div class="flex-1 min-w-0"> <textarea id="modal-reply-text" placeholder="Write your reply" rows="8" maxlength="300" class="w-full px-0 py-2 bg-transparent text-white text-base placeholder-gray-400 resize-none focus:outline-none border-0" data-reply-uri="" data-reply-cid="" data-root-uri="" data-root-cid="" data-mode="reply" data-embed="" ></textarea> </div> </div> <!-- Quote preview (for quote posts, shown below textarea) --> <div class="modal-quote-preview hidden mt-3 p-3 border border-gray-600 rounded-xl bg-[#152642]"> <div class="flex items-start gap-3"> <img src="" alt="" class="modal-quote-author-avatar w-8 h-8 rounded-full flex-shrink-0 hidden"> <div class="modal-quote-author-avatar-placeholder w-8 h-8 rounded-full bg-gray-400 flex-shrink-0"></div> <div class="flex-1 min-w-0"> <div class="font-semibold text-white text-sm modal-quote-author-name"></div> <div class="text-gray-300 text-sm mt-1 modal-quote-post-text"></div> </div> </div> </div> <input type="file" id="modal-attachment-input" accept="image/*" class="hidden" multiple> <div id="modal-attachment-preview" class="mt-3 hidden"> <div class="flex flex-wrap gap-3" id="modal-attachment-preview-list"></div> </div> </div> <!-- Bottom toolbar --> <div class="px-4 py-3 border-t border-gray-600 flex items-center justify-between"> <div class="flex items-center gap-3"> <button type="button" class="text-blue-500 hover:text-blue-400" id="modal-attachment-button"> <svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg> </button> <button type="button" class="text-blue-500 hover:text-blue-400" id="modal-gif-button"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor"><text x="3" y="18" font-family="Arial" font-size="14" font-weight="bold">GIF</text></svg> </button> </div> <div class="flex items-center gap-3 text-sm"> <span class="text-blue-400">English</span> <span class="text-gray-400" id="modal-reply-count">300</span> </div> </div> </div> </div> </div> </div> <script> (function(){ function setupReplyModal(){ var textarea = document.getElementById('modal-reply-text'); var submitBtn = document.getElementById('modal-reply-submit'); var countEl = document.getElementById('modal-reply-count'); var attachmentButton = document.getElementById('modal-attachment-button'); var gifButton = document.getElementById('modal-gif-button'); var attachmentInput = document.getElementById('modal-attachment-input'); var attachmentPreview = document.getElementById('modal-attachment-preview'); var attachmentList = document.getElementById('modal-attachment-preview-list'); if (!textarea || !submitBtn || !countEl) { return; } if (textarea.dataset.replyModalBound === '1') { return; } textarea.dataset.replyModalBound = '1'; var attachments = []; var currentEmbed = null; var isUploadingAttachment = false; var MAX_ATTACHMENTS = 4; function updateCount(){ var length = textarea.value.length; var remaining = 300 - length; countEl.textContent = remaining.toString(); countEl.classList.toggle('text-red-400', remaining < 0); countEl.classList.toggle('text-gray-400', remaining >= 0); submitBtn.disabled = ((length === 0) && attachments.length === 0) || length > 300; } function updateEmbedPayload() { if (!attachments.length) { currentEmbed = null; textarea.removeAttribute('data-embed'); return; } currentEmbed = { "$type": "app.bsky.embed.images", "images": attachments.map(function(item){ return { "alt": item.alt || 'Image', "image": item.blob }; }) }; textarea.dataset.embed = JSON.stringify(currentEmbed); } function refreshAttachmentPreview() { if (!attachmentList || !attachmentPreview) { return; } attachmentList.innerHTML = ''; attachments.forEach(function(item, index){ var wrapper = document.createElement('div'); wrapper.className = 'relative w-20 h-20 rounded-xl overflow-hidden'; var img = document.createElement('img'); img.src = item.previewUrl; img.alt = item.alt || 'Attachment'; img.className = 'object-cover w-full h-full'; wrapper.appendChild(img); var removeBtn = document.createElement('button'); removeBtn.type = 'button'; removeBtn.className = 'absolute top-1 right-1 bg-black/70 text-white rounded-full w-6 h-6 flex items-center justify-center text-xs'; removeBtn.innerHTML = '×'; removeBtn.addEventListener('click', function(){ removeAttachment(index); }); wrapper.appendChild(removeBtn); attachmentList.appendChild(wrapper); }); if (attachments.length) { attachmentPreview.classList.remove('hidden'); } else { attachmentPreview.classList.add('hidden'); } if (attachmentButton) { attachmentButton.disabled = attachments.length >= MAX_ATTACHMENTS || isUploadingAttachment; attachmentButton.classList.toggle('opacity-50', attachmentButton.disabled); attachmentButton.classList.toggle('pointer-events-none', attachmentButton.disabled); } if (gifButton) { gifButton.disabled = attachments.length >= MAX_ATTACHMENTS || isUploadingAttachment; gifButton.classList.toggle('opacity-50', gifButton.disabled); gifButton.classList.toggle('pointer-events-none', gifButton.disabled); } updateCount(); } function removeAttachment(index) { if (index < 0 || index >= attachments.length) { return; } var removed = attachments.splice(index, 1)[0]; if (removed && removed.previewUrl) { try { URL.revokeObjectURL(removed.previewUrl); } catch (_) {} } updateEmbedPayload(); refreshAttachmentPreview(); } function setAttachmentUploading(state) { isUploadingAttachment = state; refreshAttachmentPreview(); } async function uploadFile(file) { if (!file || !attachmentInput) { return; } if (!file.type.match(/^image\//)) { alert('Only image uploads are supported right now.'); return; } if (attachments.length >= MAX_ATTACHMENTS) { alert('You can attach up to ' + MAX_ATTACHMENTS + ' images.'); return; } if (file.size > 976 * 1024) { alert('Images must be 976KB or smaller.'); return; } setAttachmentUploading(true); var formData = new FormData(); formData.append('file', file); formData.append('alt', file.name || 'Image'); try { var response = await fetch('/api/bluesky/uploads', { method: 'POST', headers: { 'X-CSRF-Token': (document.querySelector('meta[name="csrf-token"]') || {}).content || '', 'Accept': 'application/json' }, credentials: 'same-origin', body: formData }); if (!response.ok) { var errorText = await response.text(); var message = 'Upload failed'; try { var parsed = JSON.parse(errorText); message = parsed.error || message; } catch (_) { if (errorText && errorText.length < 200) { message = errorText; } } throw new Error(message); } var data = await response.json(); if (!data || !data.success || !data.blob) { throw new Error((data && data.error) || 'Upload failed'); } var previewUrl = URL.createObjectURL(file); attachments.push({ blob: data.blob, alt: data.alt || file.name || 'Image', previewUrl: previewUrl }); updateEmbedPayload(); refreshAttachmentPreview(); } catch (error) { console.error('Attachment upload error:', error); alert(error && error.message ? error.message : 'Unable to upload image right now.'); } finally { setAttachmentUploading(false); if (attachmentInput) { attachmentInput.value = ''; } } } function handleFileSelection(files) { if (!files || !files.length) { return; } var remaining = MAX_ATTACHMENTS - attachments.length; Array.from(files).slice(0, remaining).forEach(function(file){ uploadFile(file); }); } if (attachmentButton && attachmentInput) { attachmentButton.addEventListener('click', function(e){ e.preventDefault(); if (isUploadingAttachment || attachments.length >= MAX_ATTACHMENTS) { return; } attachmentInput.setAttribute('accept', 'image/*'); attachmentInput.click(); }); } if (gifButton && attachmentInput) { gifButton.addEventListener('click', function(e){ e.preventDefault(); if (isUploadingAttachment || attachments.length >= MAX_ATTACHMENTS) { return; } attachmentInput.setAttribute('accept', 'image/gif'); attachmentInput.click(); }); } if (attachmentInput) { attachmentInput.addEventListener('change', function(e){ handleFileSelection(e.target.files); }); } refreshAttachmentPreview(); textarea.addEventListener('input', updateCount); updateCount(); submitBtn.addEventListener('click', async function(e){ e.preventDefault(); var text = textarea.value.trim(); if ((text.length === 0 && attachments.length === 0) || text.length > 300) { return; } var replyUri = textarea.dataset.replyUri; var replyCid = textarea.dataset.replyCid; var rootUri = textarea.dataset.rootUri; var rootCid = textarea.dataset.rootCid; var mode = textarea.dataset.mode || 'reply'; if (mode === 'reply' && (!replyUri || !replyCid)) { return; } submitBtn.disabled = true; var originalText = submitBtn.textContent; submitBtn.textContent = mode === 'post' ? 'Posting...' : 'Replying...'; try { var endpoint, payload; if (mode === 'post') { endpoint = '/api/bluesky/posts'; payload = { text: text }; } else { endpoint = '/api/bluesky/replies'; payload = { text: text, reply_to_uri: replyUri, reply_to_cid: replyCid, root_uri: rootUri, root_cid: rootCid }; } // Attach quote embed if present (for quote posts) - check first var quoteEmbed = textarea.dataset.quoteEmbed; if (quoteEmbed && mode === 'post' && !currentEmbed) { try { payload.embed = JSON.parse(quoteEmbed); console.log('Added quote embed:', payload.embed); } catch (e) { console.error('Failed to parse quote embed', e); } } // Attach image embed if present (overrides quote for now) if (currentEmbed) { payload.embed = currentEmbed; console.log('Added image embed:', payload.embed); } console.log('Submitting payload:', JSON.stringify(payload).substring(0, 300)); var response = await fetch(endpoint, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-Token': (document.querySelector('meta[name="csrf-token"]') || {}).content || '' }, credentials: 'same-origin', body: JSON.stringify(payload) }); console.log('Reply response status:', response.status); if (!response.ok) { var errorText = await response.text(); var errorMessage = 'Network error. Please try again.'; var settingsUrl = null; try { var errorData = JSON.parse(errorText); errorMessage = errorData.error || errorMessage; settingsUrl = errorData.settings_url || null; } catch (e2) { if (errorText && errorText.length < 200) { errorMessage = errorText; } else { errorMessage = 'HTTP ' + response.status + ': ' + response.statusText; } } console.error('Error response:', response.status, errorMessage); if (response.status === 401 && settingsUrl) { if (confirm(errorMessage + '\n\nWould you like to go to Settings now?')) { window.location.href = settingsUrl; return; } } else { alert(errorMessage); } submitBtn.disabled = false; submitBtn.textContent = originalText; return; } var data = await response.json(); console.log('Reply response data:', data); if (data.success) { window.location.reload(); } else { alert(data.error || (mode === 'post' ? 'Failed to create post' : 'Failed to post reply')); submitBtn.disabled = false; submitBtn.textContent = originalText; } } catch (error) { console.error('Reply error:', error); alert(error && error.message ? error.message : 'Network error. Please try again.'); submitBtn.disabled = false; submitBtn.textContent = originalText; } }); } function openReplyIfRequested(){ try{ var qs = new URLSearchParams(window.location.search); if(qs.get('reply') === '1'){ var panel = document.querySelector('[data-modal-target="panel"]'); if(panel){ panel.classList.remove('hidden'); document.documentElement.classList.add('overflow-hidden'); document.body.classList.add('overflow-hidden'); var ta = document.getElementById('modal-reply-text'); if(ta){ ta.focus(); } } } }catch(e){} } function initReplyModal(){ setupReplyModal(); openReplyIfRequested(); } document.addEventListener('turbo:load', function(){ setTimeout(initReplyModal, 0); }); if (document.readyState === 'complete' || document.readyState === 'interactive') { setTimeout(initReplyModal, 0); } else { document.addEventListener('DOMContentLoaded', initReplyModal); } })(); </script> <script> // Sanitize any legacy nav=1 param from links and the current URL document.addEventListener('click', function(ev){ try{ var a = ev.target.closest && ev.target.closest('a'); if(!a) return; var url = new URL(a.href, location.origin); if(url.searchParams.has('nav')){ url.searchParams.delete('nav'); a.setAttribute('href', url.pathname + (url.searchParams.toString() ? ('?' + url.searchParams.toString()) : '') + url.hash); } }catch(e){} }, true); document.addEventListener('turbo:load', function(){ try{ var url = new URL(location.href); if(url.searchParams.has('nav')){ url.searchParams.delete('nav'); var cleaned = url.pathname + (url.searchParams.toString() ? ('?' + url.searchParams.toString()) : '') + url.hash; history.replaceState(null, '', cleaned); } }catch(e){} }); </script> <script> function loadTwitterEmbeds() { try { if (window.twttr && window.twttr.widgets) { window.twttr.widgets.load(); return true; } } catch(e) {} return false; } document.addEventListener("turbo:load", function() { if (!loadTwitterEmbeds()) { var tries = 0; var max = 10; (function retry(){ if (loadTwitterEmbeds() || ++tries > max) return; setTimeout(retry, 400); })(); } // Re-hydrate Bluesky embeds after Turbo navigation by reinjecting the script try { var s = document.createElement("script"); s.src = "https://embed.bsky.app/static/embed.js?ts=" + Date.now(); s.async = true; s.onload = function(){ try { s.remove(); } catch(_){} }; document.body.appendChild(s); } catch (e) {} }); </script> <script> // Decorate links to lists (home/sections) with stored edition at click time (web only) document.addEventListener('click', function(ev){ try{ var a = ev.target.closest && ev.target.closest('a[data-apply-edition="1"]'); if(!a) return; var pref = localStorage.getItem('preferredEdition'); if(pref && pref !== 'global'){ var url = new URL(a.href, location.origin); url.searchParams.set('edition', pref); if (url.toString() !== a.href) { // Update href and let the browser/Turbo handle the navigation once a.setAttribute('href', url.pathname + '?' + url.searchParams.toString() + url.hash); } } else { var url2 = new URL(a.href, location.origin); if(url2.searchParams.has('edition')){ url2.searchParams.delete('edition'); var newHref = url2.pathname + (url2.searchParams.toString() ? ('?' + url2.searchParams.toString()) : '') + url2.hash; a.setAttribute('href', newHref); } } }catch(e){} }, true); </script> <script> // Track last list path (home or sections) for back navigation on digest pages document.addEventListener('turbo:load', function(){ try{ var path = location.pathname; if(path === '/' || path.indexOf('/sections/') === 0){ var url = new URL(location.href); var ed = url.searchParams.get('edition'); var stored = path + (ed ? ('?edition=' + ed) : ''); sessionStorage.setItem('lastListPath', stored); sessionStorage.setItem('lastNonPost', stored); } else if(path === '/trending'){ sessionStorage.setItem('lastTrendingPath', '/trending'); sessionStorage.setItem('lastNonPost', '/trending'); } else if(path.indexOf('/digests/') === 0){ // Keep lastDigestPath fresh when on digest pages to avoid stale fallbacks sessionStorage.setItem('lastDigestPath', path + location.search); sessionStorage.setItem('lastNonPost', path + location.search); } }catch(e){} }); </script> <script> // Remove any l=... language parameter from digest links to unify cache keys document.addEventListener('click', function(ev){ try{ var a = ev.target.closest && ev.target.closest('a[href^="/digests/"]'); if(!a) return; var url = new URL(a.href, location.origin); if(url.searchParams.has('l')){ url.searchParams.delete('l'); var newHref = url.pathname + (url.searchParams.toString() ? ('?' + url.searchParams.toString()) : '') + url.hash; a.setAttribute('href', newHref); } }catch(e){} }, true); </script> <script> // Remember previous page before navigating to a local Bluesky post via anchor document.addEventListener('click', function(ev){ try{ var a = ev.target.closest && ev.target.closest('a[href^="/bsky/"]'); if(!a) return; var prev = location.pathname + location.search; sessionStorage.setItem('prevPage', prev); sessionStorage.setItem('lastPostPath', location.pathname); }catch(e){} }, true); </script> <script> // Remember previous page before navigating to an author profile document.addEventListener('click', function(ev){ try{ // Match both /author and /author/... and /author?... var a = ev.target.closest && (ev.target.closest('a[href^="/author/"]') || ev.target.closest('a[href^="/author"]')); if(!a) return; var prev = location.pathname + location.search; sessionStorage.setItem('prevPage', prev); if(location.pathname.indexOf('/author/') !== 0){ sessionStorage.setItem('lastNonAuthor', prev); } sessionStorage.setItem('entrySource','author'); }catch(e){} }, true); </script> <script> // Also sanitize card-clickable data-href: strip l=... if present document.addEventListener('click', function(ev){ try{ var card = ev.target.closest && ev.target.closest('.card-clickable'); if(!card) return; var href = (card.getAttribute('data-href') || '').trim(); if(!href) return; // Strip accidental wrapping quotes if((href[0]==='"' && href[href.length-1]==='"') || (href[0]==="'" && href[href.length-1]==="'")){ href = href.slice(1,-1); } var url = new URL(href, location.origin); if(url.searchParams.has('l')){ url.searchParams.delete('l'); var newHref = url.pathname + (url.searchParams.toString() ? ('?' + url.searchParams.toString()) : '') + url.hash; card.setAttribute('data-href', newHref); } // Navigate on card click unless clicking an inner actionable link var isInlineVideo = ev.target.closest && ev.target.closest('.inline-video'); // Tag nested-card navigations so back button can return to previous post instead of thread parent var inNested = ev.target.closest && ev.target.closest('.bsky-nested, .nested-bsky, .bluesky-nested'); // Don't navigate if clicking in avatar column area (left side of post with avatar and thread lines) // Check if target itself has the class OR is inside an element with that class var isAvatarColumn = (ev.target.classList && ev.target.classList.contains('avatar-column-no-nav')) || (ev.target.closest && ev.target.closest('.avatar-column-no-nav')); if(!ev.target.closest('.no-card-link') && !isInlineVideo && !isAvatarColumn){ ev.preventDefault(); var targetHref = (card.getAttribute('data-href') || href).trim(); if((targetHref[0]==='"' && targetHref[targetHref.length-1]==='"') || (targetHref[0]==="'" && targetHref[targetHref.length-1]==="'")){ targetHref = targetHref.slice(1,-1); } try{ // If navigating from a digest page to a post, remember this digest for back navigation if(location.pathname.indexOf('/digests/') === 0){ sessionStorage.setItem('lastDigestPath', location.pathname + location.search); sessionStorage.setItem('entrySource','digest'); } else if(location.pathname.indexOf('/bsky/') === 0){ // Navigating from a post to another post (e.g., reply): mark source as post sessionStorage.setItem('entrySource', inNested ? 'nested' : 'post'); } // Always remember the immediate previous page when going to a post if(targetHref.indexOf('/bsky/') === 0){ var prevp = location.pathname + location.search; sessionStorage.setItem('prevPage', prevp); sessionStorage.setItem('lastPostPath', location.pathname); } }catch(e){} if(window.Turbo && Turbo.visit){ Turbo.visit(targetHref); } else { window.location.href = targetHref; } } }catch(e){} }, true); </script> <script> // Keyboard activation for card-clickable elements document.addEventListener('keydown', function(ev){ try{ if(ev.key !== 'Enter' && ev.key !== ' ') return; var card = ev.target.closest && ev.target.closest('.card-clickable'); if(!card) return; var isInlineVideo = ev.target.closest && ev.target.closest('.inline-video'); if(isInlineVideo) return; var href = (card.getAttribute('data-href') || '').trim(); if(!href) return; if((href[0]==='"' && href[href.length-1]==='"') || (href[0]==="'" && href[href.length-1]==="'")){ href = href.slice(1,-1); } ev.preventDefault(); if(window.Turbo && Turbo.visit){ Turbo.visit(href); } else { window.location.href = href; } }catch(e){} }, true); </script> <script> // Sync stored edition from current URL on list pages (no navigation) // Only update when the URL explicitly includes an edition param; otherwise keep prior preference. document.addEventListener("turbo:load", function(){ try{ var onDigest = location.pathname.indexOf('/digests/') === 0; if(onDigest) return; var url = new URL(location.href); if(url.searchParams.has('edition')){ var ed = url.searchParams.get('edition'); localStorage.setItem('preferredEdition', (ed && ed !== 'global') ? ed : 'global'); } }catch(e){} }); </script> <div data-controller="modal" data-bluesky-auth-target="modal" id="bluesky-pds-modal"> <div class="hidden fixed inset-0 z-50 overflow-y-auto" data-modal-target="panel"> <div class="flex min-h-screen items-center justify-center p-4"> <div class="fixed inset-0 bg-black/80 transition-opacity" data-action="click->modal#close"></div> <div class="relative bg-white dark:bg-black rounded-2xl w-full max-w-md p-8 shadow-2xl" data-action="click->modal#stop"> <button type="button" class="absolute top-4 right-4 text-gray-400 hover:text-black dark:hover:text-white transition" data-action="click->modal#close"> <svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line> </svg> </button> <div class="flex justify-center mb-6"> <img alt="Lightnews" class="logo-light h-12 w-12" src="/assets/lightnews_black-993b5cbd.png" /> <img alt="Lightnews" class="logo-dark h-12 w-12" src="/assets/lightnews-f13a19bd.png" /> </div> <h2 class="text-2xl font-bold text-center text-black dark:text-white mb-3">Connect Bluesky</h2> <p class="text-center text-sm text-gray-600 dark:text-gray-300 mb-6"> Enter your Bluesky handle and app password to unlock posting, likes, and your Following feed. </p> <div class="mb-4 hidden text-sm text-red-500" data-bluesky-auth-target="error"></div> <form data-bluesky-auth-target="form" class="space-y-4" action="/auth/bluesky/pds_session" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="NRL_wbAn1woc7gI3_deP3JusFyr4-HZtEjKzGim-2OCWdQzfY7AuxXRcXe3UfedmLksv7YCwZkC4dbrxRIfqRA" autocomplete="off" /> <div> <label class="block text-sm font-semibold text-black dark:text-white mb-2" for="identifier">Handle or email</label> <input placeholder="@you.bsky.social" autocomplete="username" required="required" class="w-full px-4 py-3 bg-gray-50 dark:bg-gray-900 border border-gray-300 dark:border-gray-700 rounded-lg text-black dark:text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-600 focus:border-transparent" data-bluesky-auth-target="identifierInput" type="text" name="identifier" id="identifier" /> </div> <div> <label class="block text-sm font-semibold text-black dark:text-white mb-2" for="password">App password</label> <input placeholder="xxxx-xxxx-xxxx-xxxx" autocomplete="current-password" required="required" class="w-full px-4 py-3 bg-gray-50 dark:bg-gray-900 border border-gray-300 dark:border-gray-700 rounded-lg text-black dark:text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-600 focus:border-transparent" data-bluesky-auth-target="passwordInput" type="password" name="password" id="password" /> </div> <div class="hidden" data-bluesky-auth-target="tfaField"> <label class="block text-sm font-semibold text-black dark:text-white mb-2" for="auth_factor_token">2FA Code</label> <input placeholder="123456" autocomplete="one-time-code" inputmode="numeric" pattern="[0-9]*" class="w-full px-4 py-3 bg-gray-50 dark:bg-gray-900 border border-gray-300 dark:border-gray-700 rounded-lg text-black dark:text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-600 focus:border-transparent" data-bluesky-auth-target="tfaInput" type="text" name="auth_factor_token" id="auth_factor_token" /> </div> <button type="submit" class="w-full btn btn-primary py-3 font-semibold" data-bluesky-auth-target="submitButton"> Connect Bluesky </button> </form> <p class="mt-5 text-xs text-center text-gray-500 dark:text-gray-400"> Need an app password? Open Bluesky, go to Settings > App passwords, and create a new one. </p> </div> </div> </div> </div> <!-- Bluesky OAuth Modal - Shows when logged-out user tries Bluesky action --> <div id="bluesky-oauth-modal" class="hidden fixed inset-0 z-50 overflow-y-auto" data-bluesky-auth-target="oauthModal"> <div class="flex min-h-screen items-center justify-center p-4"> <!-- Backdrop --> <div class="fixed inset-0 bg-black/80 transition-opacity" data-action="click->bluesky-auth#closeOAuthModal"></div> <!-- Modal Content --> <div class="relative bg-white dark:bg-black rounded-2xl w-full max-w-md p-8 shadow-2xl" data-action="click->bluesky-auth#stopPropagation"> <!-- Close Button --> <button data-action="click->bluesky-auth#closeOAuthModal" class="absolute top-4 right-4 text-gray-400 hover:text-white transition-colors"> <svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line> </svg> </button> <!-- Logo --> <div class="flex justify-center mb-6"> <img alt="Lightnews" class="logo-light h-12 w-12" src="/assets/lightnews_black-993b5cbd.png" /> <img alt="Lightnews" class="logo-dark h-12 w-12" src="/assets/lightnews-f13a19bd.png" /> </div> <!-- Title --> <h2 class="text-black dark:text-white text-3xl font-bold text-center mb-3">Connect with Bluesky</h2> <!-- Description --> <p class="text-center text-base text-gray-600 dark:text-gray-300 mb-6"> Sign in with your Bluesky account to unlock posting, likes, and your Following feed. </p> <!-- Buttons --> <div class="space-y-3"> <!-- Sign In Button - Grey --> <button type="button" data-action="click->bluesky-auth#handleSignIn" data-bluesky-auth-target="signinButton" class="bsky-signin-btn w-full flex items-center justify-center gap-3 px-6 py-3 bg-gray-600 hover:bg-gray-700 font-semibold rounded transition-colors border border-gray-600 text-white"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor" style="color: #1185fe !important;"> <path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.038.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741 0 01-.415-.056c.14.018.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z" fill="#1185fe"/> </svg> <span>Sign in</span> </button> <!-- Create Account Button - Blue --> <button type="button" data-action="click->bluesky-auth#handleCreateAccount" data-bluesky-auth-target="signupButton" class="bsky-signup-btn w-full flex items-center justify-center gap-3 px-6 py-3 bg-blue-600 hover:bg-blue-700 font-semibold rounded transition-colors border border-blue-600" style="color: #ffffff !important;"> <svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor" style="color: #ffffff !important;"> <path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.038.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741 0 01-.415-.056c.14.018.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z" fill="currentColor"/> </svg> <span style="color: #ffffff !important;">Create an account</span> </button> </div> </div> </div> </div> </body> </html>