UNPKG

vue-tweet-pure

Version:

A Vue 3 component for embedding tweets in your Vue.js applications.

2 lines (1 loc) 31.3 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),ee=require("./fetch-tweet-BatlAg1x.cjs"),te=e.defineComponent({__name:"tweet-container",setup(o){const r=e.useAttrs();return(t,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vue-tweet-theme",t.$style.root,e.unref(r).class])},[e.createElementVNode("article",{class:e.normalizeClass(t.$style.article)},[e.renderSlot(t.$slots,"default")],2)],2))}}),oe="JrPdna_article",ne="JrPdna_root",re={article:oe,root:ne},i=(o,r)=>{const t=o.__vccOpts||o;for(const[n,a]of r)t[n]=a;return t},se={$style:re},w=i(te,[["__cssModules",se]]),ae=e.defineComponent({__name:"tweet-not-found",props:{error:{}},setup(o){return(r,t)=>(e.openBlock(),e.createBlock(w,null,{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.$style.root)},t[0]||(t[0]=[e.createElementVNode("h3",null,"Tweet not found",-1),e.createElementVNode("p",null,"The embedded tweet could not be found…",-1)]),2)]),_:1}))}}),le="nN86_W_root",ce={root:le},ie={$style:ce},V=i(ae,[["__cssModules",ie]]),ue=["src","alt","width","height"],k=e.defineComponent({__name:"avatar-img",props:{src:{},alt:{},width:{},height:{}},setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("img",{src:r.src,alt:r.alt,width:r.width,height:r.height},null,8,ue))}}),de=["src","alt","draggable"],E=e.defineComponent({__name:"media-img",props:{src:{},alt:{},draggable:{type:Boolean}},setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("img",e.mergeProps(r.$attrs,{src:r.src,alt:r.alt,draggable:r.draggable}),null,16,de))}}),b={TweetNotFound:V,AvatarImg:k,MediaImg:E},pe="_81i5Cq_verified",v={verified:pe},N=e.defineComponent({__name:"verified",setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 24 24","aria-label":"Verified account",role:"img",class:e.normalizeClass(e.unref(v).verified)},t[0]||(t[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M22.25 12c0-1.43-.88-2.67-2.19-3.34.46-1.39.2-2.9-.81-3.91s-2.52-1.27-3.91-.81c-.66-1.31-1.91-2.19-3.34-2.19s-2.67.88-3.33 2.19c-1.4-.46-2.91-.2-3.92.81s-1.26 2.52-.8 3.91c-1.31.67-2.2 1.91-2.2 3.34s.89 2.67 2.2 3.34c-.46 1.39-.21 2.9.8 3.91s2.52 1.26 3.91.81c.67 1.31 1.91 2.19 3.34 2.19s2.68-.88 3.34-2.19c1.39.45 2.9.2 3.91-.81s1.27-2.52.81-3.91c1.31-.67 2.19-1.91 2.19-3.34zm-11.71 4.2L6.8 12.46l1.41-1.42 2.26 2.26 4.8-5.23 1.47 1.36-6.2 6.77z"})],-1)]),2))}}),T=e.defineComponent({__name:"verified-business",setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 22 22","aria-label":"Verified account",role:"img",class:e.normalizeClass(e.unref(v).verified)},t[0]||(t[0]=[e.createStaticVNode('<g><linearGradient id="0-a" gradientUnits="userSpaceOnUse" x1="4.411" x2="18.083" y1="2.495" y2="21.508"><stop offset="0" stop-color="#f4e72a"></stop><stop offset=".539" stop-color="#cd8105"></stop><stop offset=".68" stop-color="#cb7b00"></stop><stop offset="1" stop-color="#f4ec26"></stop><stop offset="1" stop-color="#f4e72a"></stop></linearGradient><linearGradient id="0-b" gradientUnits="userSpaceOnUse" x1="5.355" x2="16.361" y1="3.395" y2="19.133"><stop offset="0" stop-color="#f9e87f"></stop><stop offset=".406" stop-color="#e2b719"></stop><stop offset=".989" stop-color="#e2b719"></stop></linearGradient><g clip-rule="evenodd" fill-rule="evenodd"><path d="M13.324 3.848L11 1.6 8.676 3.848l-3.201-.453-.559 3.184L2.06 8.095 3.48 11l-1.42 2.904 2.856 1.516.559 3.184 3.201-.452L11 20.4l2.324-2.248 3.201.452.559-3.184 2.856-1.516L18.52 11l1.42-2.905-2.856-1.516-.559-3.184zm-7.09 7.575l3.428 3.428 5.683-6.206-1.347-1.247-4.4 4.795-2.072-2.072z" fill="url(#0-a)"></path><path d="M13.101 4.533L11 2.5 8.899 4.533l-2.895-.41-.505 2.88-2.583 1.37L4.2 11l-1.284 2.627 2.583 1.37.505 2.88 2.895-.41L11 19.5l2.101-2.033 2.895.41.505-2.88 2.583-1.37L17.8 11l1.284-2.627-2.583-1.37-.505-2.88zm-6.868 6.89l3.429 3.428 5.683-6.206-1.347-1.247-4.4 4.795-2.072-2.072z" fill="url(#0-b)"></path><path d="M6.233 11.423l3.429 3.428 5.65-6.17.038-.033-.005 1.398-5.683 6.206-3.429-3.429-.003-1.405.005.003z" fill="#d18800"></path></g></g>',1)]),2))}}),z=e.defineComponent({__name:"verified-government",setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 22 22","aria-label":"Verified account",role:"img",class:e.normalizeClass(e.unref(v).verified)},t[0]||(t[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{"clip-rule":"evenodd",d:"M12.05 2.056c-.568-.608-1.532-.608-2.1 0l-1.393 1.49c-.284.303-.685.47-1.1.455L5.42 3.932c-.832-.028-1.514.654-1.486 1.486l.069 2.039c.014.415-.152.816-.456 1.1l-1.49 1.392c-.608.568-.608 1.533 0 2.101l1.49 1.393c.304.284.47.684.456 1.1l-.07 2.038c-.027.832.655 1.514 1.487 1.486l2.038-.069c.415-.014.816.152 1.1.455l1.392 1.49c.569.609 1.533.609 2.102 0l1.393-1.49c.283-.303.684-.47 1.099-.455l2.038.069c.832.028 1.515-.654 1.486-1.486L18 14.542c-.015-.415.152-.815.455-1.099l1.49-1.393c.608-.568.608-1.533 0-2.101l-1.49-1.393c-.303-.283-.47-.684-.455-1.1l.068-2.038c.029-.832-.654-1.514-1.486-1.486l-2.038.07c-.415.013-.816-.153-1.1-.456zm-5.817 9.367l3.429 3.428 5.683-6.206-1.347-1.247-4.4 4.795-2.072-2.072z","fill-rule":"evenodd"})],-1)]),2))}}),me=e.defineComponent({__name:"quoted-tweet-container",props:{tweet:{}},setup(o){const r=t=>{window.open(t,"_blank")};return(t,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.$style.root),onClick:n[0]||(n[0]=e.withModifiers(a=>r(t.tweet.url),["prevent"]))},[e.createElementVNode("article",{class:e.normalizeClass(t.$style.article)},[e.renderSlot(t.$slots,"default")],2)],2))}}),fe="RsfEUq_article",_e="RsfEUq_root",he={article:fe,root:_e},ye={$style:he},M=i(me,[["__cssModules",ye]]),we=e.defineComponent({__name:"verified-badge",props:{user:{}},setup(o){const r=e.useCssModule(),t=e.useAttrs(),n=o,a=e.computed(()=>n.user.verified||n.user.is_blue_verified||n.user.verified_type),s=e.computed(()=>a.value?n.user.verified_type==="Government"?z:n.user.verified_type==="Business"?T:N:null),l=e.computed(()=>a.value?n.user.verified_type==="Government"?r.verifiedGovernment:n.user.verified_type==="Business"?null:n.user.is_blue_verified?r.verifiedBlue:r.verifiedOld:null);return(c,_)=>a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(t).class,l.value])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value)))],2)):e.createCommentVNode("",!0)}}),ke="dT-upq_verifiedBlue",ve="dT-upq_verifiedGovernment",$e="dT-upq_verifiedOld",ge={verifiedBlue:ke,verifiedGovernment:ve,verifiedOld:$e},Be={$style:ge},I=i(we,[["__cssModules",Be]]),Ce=["href"],Ve=["title"],Ee=["title"],be=e.defineComponent({__name:"quoted-tweet-header",props:{tweet:{}},setup(o){const r=o,{user:t}=r.tweet;return(n,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.$style.header)},[e.createElementVNode("a",{href:n.tweet.url,class:e.normalizeClass(n.$style.avatar),target:"_blank",rel:"noopener noreferrer"},[e.createElementVNode("div",{class:e.normalizeClass([n.$style.avatarOverflow,{[n.$style.avatarSquare]:e.unref(t).profile_image_shape==="Square"}])},[e.createVNode(k,{src:e.unref(t).profile_image_url_https,alt:e.unref(t).name,width:20,height:20},null,8,["src","alt"])],2)],10,Ce),e.createElementVNode("div",{class:e.normalizeClass(n.$style.author)},[e.createElementVNode("div",{class:e.normalizeClass(n.$style.authorText)},[e.createElementVNode("span",{title:e.unref(t).name},e.toDisplayString(e.unref(t).name),9,Ve)],2),e.createVNode(I,{user:e.unref(t)},null,8,["user"]),e.createElementVNode("div",{class:e.normalizeClass(n.$style.username)},[e.createElementVNode("span",{title:`@${e.unref(t).screen_name}`},"@"+e.toDisplayString(e.unref(t).screen_name),9,Ee)],2)],2)],2))}}),Ne="_2tBG3G_author",Te="_2tBG3G_authorText",ze="_2tBG3G_avatar",Me="_2tBG3G_avatarSquare",Ie="_2tBG3G_header",Se="_2tBG3G_username",Le={author:Ne,authorText:Te,avatar:ze,avatarSquare:Me,header:Ie,username:Se},Re={$style:Le},S=i(be,[["__cssModules",Re]]),qe=["lang"],Ge=["innerHTML"],We=e.defineComponent({__name:"quoted-tweet-body",props:{tweet:{}},setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("p",{class:e.normalizeClass(r.$style.root),lang:r.tweet.lang,dir:"auto"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.tweet.entities,(n,a)=>(e.openBlock(),e.createElementBlock("span",{key:a,innerHTML:n.text},null,8,Ge))),128))],10,qe))}}),De="_3hXyqa_root",Oe={root:De},Fe={$style:Oe},L=i(We,[["__cssModules",Fe]]),B=o=>`https://x.com/${o.user.screen_name}/status/${o.id_str}`,R=o=>`https://x.com/${typeof o=="string"?o:o.user.screen_name}`,He=o=>`https://x.com/intent/like?tweet_id=${o.id_str}`,je=o=>`https://x.com/intent/tweet?in_reply_to=${o.id_str}`,Ue=o=>`https://x.com/intent/follow?screen_name=${o.user.screen_name}`,Xe=o=>`https://x.com/hashtag/${o.text}`,Ze=o=>`https://x.com/search?q=%24${o.text}`,xe=o=>`https://x.com/${o.in_reply_to_screen_name}/status/${o.in_reply_to_status_id_str}`,$=(o,r)=>{const t=new URL(o.media_url_https),n=t.pathname.split(".").pop();return n?(t.pathname=t.pathname.replace(`.${n}`,""),t.searchParams.set("format",n),t.searchParams.set("name",r),t.toString()):o.media_url_https},q=o=>{const{variants:r}=o.video_info;return r.filter(n=>n.content_type==="video/mp4").sort((n,a)=>(a.bitrate??0)-(n.bitrate??0))},G=o=>{const r=q(o);return r.length>1?r[1]:r[0]},y=o=>o>999999?`${(o/1e6).toFixed(1)}M`:o>999?`${(o/1e3).toFixed(1)}K`:o.toString();function C(o){const r=Array.from(o.text),t=[{indices:o.display_text_range,type:"text"}];return f(t,"hashtag",o.entities.hashtags),f(t,"mention",o.entities.user_mentions),f(t,"url",o.entities.urls),f(t,"symbol",o.entities.symbols),o.entities.media&&f(t,"media",o.entities.media),Ae(o,t),t.map(n=>{const a=r.slice(n.indices[0],n.indices[1]).join("");switch(n.type){case"hashtag":return Object.assign(n,{href:Xe(n),text:a});case"mention":return Object.assign(n,{href:R(n.screen_name),text:a});case"url":case"media":return Object.assign(n,{href:n.expanded_url,text:n.display_url});case"symbol":return Object.assign(n,{href:Ze(n),text:a});default:return Object.assign(n,{text:a})}})}function f(o,r,t){for(const n of t)for(const[a,s]of o.entries()){if(s.indices[0]>n.indices[0]||s.indices[1]<n.indices[1])continue;const l=[{...n,type:r}];s.indices[0]<n.indices[0]&&l.unshift({indices:[s.indices[0],n.indices[0]],type:"text"}),s.indices[1]>n.indices[1]&&l.push({indices:[n.indices[1],s.indices[1]],type:"text"}),o.splice(a,1,...l);break}}function Ae(o,r){o.entities.media&&o.entities.media[0].indices[0]<o.display_text_range[1]&&(o.display_text_range[1]=o.entities.media[0].indices[0]);const t=r.at(-1);t&&t.indices[1]>o.display_text_range[1]&&(t.indices[1]=o.display_text_range[1])}const W=o=>({...o,url:B(o),user:{...o.user,url:R(o),follow_url:Ue(o)},like_url:He(o),reply_url:je(o),in_reply_to_url:o.in_reply_to_screen_name?xe(o):void 0,entities:C(o),quoted_tweet:o.quoted_tweet?{...o.quoted_tweet,url:B(o.quoted_tweet),entities:C(o.quoted_tweet)}:void 0}),Pe="nYjDHW_grid2Columns",Ye="nYjDHW_grid2x2",Qe="nYjDHW_grid3",Ke="nYjDHW_image",Je="nYjDHW_mediaContainer",et="nYjDHW_mediaLink",tt="nYjDHW_mediaWrapper",ot="nYjDHW_root",nt="nYjDHW_rounded",rt="nYjDHW_skeleton",d={grid2Columns:Pe,grid2x2:Ye,grid3:Qe,image:Ke,mediaContainer:Je,mediaLink:et,mediaWrapper:tt,root:ot,rounded:nt,skeleton:rt},st=["poster","controls","tabindex"],at=["src","type"],lt=["href"],ct=["href"],it=e.defineComponent({__name:"tweet-media-video",props:{tweet:{},media:{}},setup(o){const r=o,t=e.ref(!0),n=e.ref(!1),a=e.ref(!1),s=G(r.media);let l=0;const c=()=>{l&&window.clearTimeout(l),n.value||(n.value=!0),a.value&&(a.value=!1)},_=()=>{l&&window.clearTimeout(l),l=window.setTimeout(()=>{n.value&&(n.value=!1),l=0},100)},J=p=>{const m=p.currentTarget.previousElementSibling;p.preventDefault(),t.value=!1,n.value=!0,m.play(),m.focus()};return(p,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("video",{class:e.normalizeClass(e.unref(d).image),poster:e.unref($)(p.media,"small"),controls:!t.value,muted:"",preload:"none",tabindex:t.value?-1:0,onPlay:c,onPause:_,onEnded:m[0]||(m[0]=rn=>a.value=!0)},[e.createElementVNode("source",{src:e.unref(s).url,type:e.unref(s).content_type},null,8,at)],42,st),t.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(p.$style.videoButton),"aria-label":"View video on X",onClick:J},[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 24 24",class:e.normalizeClass(p.$style.videoButtonIcon),"aria-hidden":"true"},m[1]||(m[1]=[e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M21 12L4 2v20l17-10z"})],-1)]),2))],2)):e.createCommentVNode("",!0),!n.value&&!a.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(p.$style.watchOnTwitter)},[e.createElementVNode("a",{href:p.tweet.url,class:e.normalizeClass(p.$style.anchor),target:"_blank",rel:"noopener noreferrer"},e.toDisplayString(t.value?"Watch on X":"Continue watching on X"),11,lt)],2)):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock("a",{key:2,href:p.tweet.url,class:e.normalizeClass([p.$style.anchor,p.$style.viewReplies]),target:"_blank",rel:"noopener noreferrer"}," View replies ",10,ct)):e.createCommentVNode("",!0)],64))}}),ut="rnM63W_anchor",dt="rnM63W_videoButton",pt="rnM63W_videoButtonIcon",mt="rnM63W_viewReplies",ft="rnM63W_watchOnTwitter",_t={anchor:ut,videoButton:dt,videoButtonIcon:pt,viewReplies:mt,watchOnTwitter:ft},ht={$style:_t},D=i(it,[["__cssModules",ht]]),yt=["href"],g=e.defineComponent({__name:"tweet-media",props:{tweet:{},components:{},quoted:{type:Boolean}},setup(o){const r=o,t=(s,l)=>{let c=56.25;return l===1&&(c=100/s.original_info.width*s.original_info.height),l===2&&(c=c*2),{width:s.type==="photo"?void 0:"unset",paddingBottom:`${c}%`}},n=e.computed(()=>{var s;return((s=r.tweet.mediaDetails)==null?void 0:s.length)??0}),a=e.computed(()=>{var s;return((s=r.components)==null?void 0:s.MediaImg)??E});return(s,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(d).root,{[e.unref(d).rounded]:!s.quoted}])},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(d).mediaWrapper,{[e.unref(d).grid2Columns]:n.value>1,[e.unref(d).grid3]:n.value===3,[e.unref(d).grid2x2]:n.value>4}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.tweet.mediaDetails,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.media_url_https},[c.type==="photo"?(e.openBlock(),e.createElementBlock("a",{key:0,href:s.tweet.url,class:e.normalizeClass([e.unref(d).mediaContainer,e.unref(d).mediaLink]),target:"_blank",rel:"noopener noreferrer"},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(d).skeleton),style:e.normalizeStyle(t(c,n.value))},null,6),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{src:e.unref($)(c,"small"),alt:c.ext_alt_text||"Image",class:e.normalizeClass(e.unref(d).image),draggable:""},null,8,["src","alt","class"]))],10,yt)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(d).mediaContainer)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(d).skeleton),style:e.normalizeStyle(t(c,n.value))},null,6),e.createVNode(D,{tweet:s.tweet,media:c},null,8,["tweet","media"])],2))],64))),128))],2)],2))}}),O=e.defineComponent({__name:"quoted-tweet",props:{tweet:{}},setup(o){return(r,t)=>(e.openBlock(),e.createBlock(M,{tweet:r.tweet},{default:e.withCtx(()=>{var n;return[e.createVNode(S,{tweet:r.tweet},null,8,["tweet"]),e.createVNode(L,{tweet:r.tweet},null,8,["tweet"]),(n=r.tweet.mediaDetails)!=null&&n.length?(e.openBlock(),e.createBlock(g,{key:0,tweet:r.tweet,quoted:""},null,8,["tweet"])):e.createCommentVNode("",!0)]}),_:1},8,["tweet"]))}}),wt=["href"],kt=["href"],vt=["title"],$t=["href"],gt=["title"],Bt=["href"],Ct=["href"],Vt=e.defineComponent({__name:"tweet-header",props:{tweet:{},components:{}},setup(o){var a;const r=o,t=((a=r.components)==null?void 0:a.AvatarImg)??k,{user:n}=r.tweet;return(s,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.$style.header)},[e.createElementVNode("a",{href:s.tweet.url,class:e.normalizeClass(s.$style.avatar),target:"_blank",rel:"noopener noreferrer"},[e.createElementVNode("div",{class:e.normalizeClass([s.$style.avatarOverflow,{[s.$style.avatarSquare]:e.unref(n).profile_image_shape==="Square"}])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(t)),{src:e.unref(n).profile_image_url_https,alt:e.unref(n).name,width:48,height:48},null,8,["src","alt"]))],2),e.createElementVNode("div",{class:e.normalizeClass(s.$style.avatarOverflow)},[e.createElementVNode("div",{class:e.normalizeClass(s.$style.avatarShadow)},null,2)],2)],10,wt),e.createElementVNode("div",{class:e.normalizeClass(s.$style.author)},[e.createElementVNode("a",{href:s.tweet.url,class:e.normalizeClass(s.$style.authorLink),target:"_blank",rel:"noopener noreferrer"},[e.createElementVNode("div",{class:e.normalizeClass(s.$style.authorLinkText)},[e.createElementVNode("span",{title:e.unref(n).name},e.toDisplayString(e.unref(n).name),9,vt)],2),e.createVNode(I,{user:e.unref(n),class:e.normalizeClass(s.$style.authorVerified)},null,8,["user","class"])],10,kt),e.createElementVNode("div",{class:e.normalizeClass(s.$style.authorMeta)},[e.createElementVNode("a",{href:s.tweet.url,class:e.normalizeClass(s.$style.username),target:"_blank",rel:"noopener noreferrer"},[e.createElementVNode("span",{title:`@${e.unref(n).screen_name}`},"@"+e.toDisplayString(e.unref(n).screen_name),9,gt)],10,$t),e.createElementVNode("div",{class:e.normalizeClass(s.$style.authorFollow)},[e.createElementVNode("span",{class:e.normalizeClass(s.$style.separator)},"·",2),e.createElementVNode("a",{href:e.unref(n).follow_url,class:e.normalizeClass(s.$style.follow),target:"_blank",rel:"noopener noreferrer"}," Follow ",10,Bt)],2)],2)],2),e.createElementVNode("a",{href:s.tweet.url,class:e.normalizeClass(s.$style.brand),target:"_blank",rel:"noopener noreferrer","aria-label":"View on Twitter"},[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 24 24","aria-hidden":"true",class:e.normalizeClass(s.$style.twitterIcon)},l[0]||(l[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})],-1)]),2))],10,Ct)],2))}}),Et="ZbIw1a_author",bt="ZbIw1a_authorFollow",Nt="ZbIw1a_authorLink",Tt="ZbIw1a_authorLinkText",zt="ZbIw1a_authorMeta",Mt="ZbIw1a_authorVerified",It="ZbIw1a_avatar",St="ZbIw1a_avatarOverflow",Lt="ZbIw1a_avatarShadow",Rt="ZbIw1a_avatarSquare",qt="ZbIw1a_brand",Gt="ZbIw1a_follow",Wt="ZbIw1a_header",Dt="ZbIw1a_separator",Ot="ZbIw1a_twitterIcon",Ft="ZbIw1a_username",Ht={author:Et,authorFollow:bt,authorLink:Nt,authorLinkText:Tt,authorMeta:zt,authorVerified:Mt,avatar:It,avatarOverflow:St,avatarShadow:Lt,avatarSquare:Rt,brand:qt,follow:Gt,header:Wt,separator:Dt,twitterIcon:Ot,username:Ft},jt={$style:Ht},F=i(Vt,[["__cssModules",jt]]),Ut=["href"],Xt=e.defineComponent({__name:"tweet-in-reply-to",props:{tweet:{}},setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("a",{href:r.tweet.in_reply_to_url,class:e.normalizeClass(r.$style.root),target:"_blank",rel:"noopener noreferrer"}," Replying to @"+e.toDisplayString(r.tweet.in_reply_to_screen_name),11,Ut))}}),Zt="_5nZaGq_root",xt={root:Zt},At={$style:xt},H=i(Xt,[["__cssModules",At]]),Pt=["href"],Yt=e.defineComponent({__name:"tweet-link",props:{href:{}},setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("a",{href:r.href,class:e.normalizeClass(r.$style.root),target:"_blank",rel:"noopener noreferrer nofollow"},[e.renderSlot(r.$slots,"default")],10,Pt))}}),Qt="KevUKq_root",Kt={root:Qt},Jt={$style:Kt},j=i(Yt,[["__cssModules",Jt]]),eo=["lang"],to=["innerHTML"],oo=e.defineComponent({__name:"tweet-body",props:{tweet:{}},setup(o){const r=t=>["hashtag","mention","url","symbol"].includes(t.type);return(t,n)=>(e.openBlock(),e.createElementBlock("p",{class:e.normalizeClass(t.$style.root),lang:t.tweet.lang,dir:"auto"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tweet.entities,(a,s)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:s},[r(a)?(e.openBlock(),e.createBlock(j,{key:0,href:a.href},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.text),1)]),_:2},1032,["href"])):a.type==="text"?(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:a.text},null,8,to)):e.createCommentVNode("",!0)],64))),128))],10,eo))}}),no="b5eIca_root",ro={root:no},so={$style:ro},U=i(oo,[["__cssModules",so]]),ao={hour:"numeric",minute:"2-digit",hour12:!0,weekday:"short",month:"short",day:"numeric",year:"numeric"},lo=new Intl.DateTimeFormat("en-US",ao),co=o=>{const r={};for(const t of o)r[t.type]=t.value;return r},io=o=>{const r=co(lo.formatToParts(o)),t=`${r.hour}:${r.minute} ${r.dayPeriod}`,n=`${r.month} ${r.day}, ${r.year}`;return`${t} · ${n}`},uo=["href","aria-label"],po=["datetime"],mo=e.defineComponent({__name:"tweet-info-created-at",props:{tweet:{}},setup(o){const r=o,t=new Date(r.tweet.created_at),n=io(t);return(a,s)=>(e.openBlock(),e.createElementBlock("a",{class:e.normalizeClass(a.$style.root),href:a.tweet.url,target:"_blank",rel:"noopener noreferrer","aria-label":e.unref(n)},[e.createElementVNode("time",{datetime:e.unref(t).toISOString()},e.toDisplayString(e.unref(n)),9,po)],10,uo))}}),fo="Oh6FCq_root",_o={root:fo},ho={$style:_o},X=i(mo,[["__cssModules",ho]]),yo=e.defineComponent({__name:"tweet-info",props:{tweet:{}},setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(r.$style.info)},[e.createVNode(X,{tweet:r.tweet},null,8,["tweet"]),e.createElementVNode("a",{class:e.normalizeClass(r.$style.infoLink),href:"https://help.x.com/en/x-for-websites-ads-info-and-privacy",target:"_blank",rel:"noopener noreferrer","aria-label":"Twitter for Websites, Ads Information and Privacy"},[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 24 24","aria-hidden":"true",class:e.normalizeClass(r.$style.infoIcon)},t[0]||(t[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M13.5 8.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5S11.17 7 12 7s1.5.67 1.5 1.5zM13 17v-5h-2v5h2zm-1 5.25c5.66 0 10.25-4.59 10.25-10.25S17.66 1.75 12 1.75 1.75 6.34 1.75 12 6.34 22.25 12 22.25zM20.25 12c0 4.56-3.69 8.25-8.25 8.25S3.75 16.56 3.75 12 7.44 3.75 12 3.75s8.25 3.69 8.25 8.25z"})],-1)]),2))],2)],2))}}),wo="Mff3nG_info",ko="Mff3nG_infoIcon",vo="Mff3nG_infoLink",$o={info:wo,infoIcon:ko,infoLink:vo},go={$style:$o},Z=i(yo,[["__cssModules",go]]),Bo="aX6RRG_actions",Co="aX6RRG_copy",Vo="aX6RRG_copyIcon",Eo="aX6RRG_copyIconWrapper",bo="aX6RRG_copyText",No="aX6RRG_like",To="aX6RRG_likeCount",zo="aX6RRG_likeIcon",Mo="aX6RRG_likeIconWrapper",Io="aX6RRG_reply",So="aX6RRG_replyIcon",Lo="aX6RRG_replyIconWrapper",Ro="aX6RRG_replyText",u={actions:Bo,copy:Co,copyIcon:Vo,copyIconWrapper:Eo,copyText:bo,like:No,likeCount:To,likeIcon:zo,likeIconWrapper:Mo,reply:Io,replyIcon:So,replyIconWrapper:Lo,replyText:Ro},x=e.defineComponent({__name:"tweet-actions-copy",props:{tweet:{}},setup(o){const r=o,t=e.ref(!1),n=()=>{navigator.clipboard.writeText(r.tweet.url),t.value=!0};return e.watch(t,a=>{if(a){const s=setTimeout(()=>{t.value=!1},6e3);e.onBeforeUnmount(()=>clearTimeout(s))}}),(a,s)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(e.unref(u).copy),"aria-label":"Copy link",onClick:n},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(u).copyIconWrapper)},[t.value?(e.openBlock(),e.createElementBlock("svg",{key:0,viewBox:"0 0 24 24",class:e.normalizeClass(e.unref(u).copyIcon),"aria-hidden":"true"},s[0]||(s[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M9.64 18.952l-5.55-4.861 1.317-1.504 3.951 3.459 8.459-10.948L19.4 6.32 9.64 18.952z"})],-1)]),2)):(e.openBlock(),e.createElementBlock("svg",{key:1,viewBox:"0 0 24 24",class:e.normalizeClass(e.unref(u).copyIcon),"aria-hidden":"true"},s[1]||(s[1]=[e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M18.36 5.64c-1.95-1.96-5.11-1.96-7.07 0L9.88 7.05 8.46 5.64l1.42-1.42c2.73-2.73 7.16-2.73 9.9 0 2.73 2.74 2.73 7.17 0 9.9l-1.42 1.42-1.41-1.42 1.41-1.41c1.96-1.96 1.96-5.12 0-7.07zm-2.12 3.53l-7.07 7.07-1.41-1.41 7.07-7.07 1.41 1.41zm-12.02.71l1.42-1.42 1.41 1.42-1.41 1.41c-1.96 1.96-1.96 5.12 0 7.07 1.95 1.96 5.11 1.96 7.07 0l1.41-1.41 1.42 1.41-1.42 1.42c-2.73 2.73-7.16 2.73-9.9 0-2.73-2.74-2.73-7.17 0-9.9z"})],-1)]),2))],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(u).copyText)},e.toDisplayString(t.value?"Copied!":"Copy link"),3)],2))}}),qo=["href","aria-label"],Go=["href"],A=e.defineComponent({__name:"tweet-actions",props:{tweet:{}},setup(o){const t=y(o.tweet.favorite_count);return(n,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(u).actions)},[e.createElementVNode("a",{class:e.normalizeClass(e.unref(u).like),href:n.tweet.like_url,target:"_blank",rel:"noopener noreferrer","aria-label":`Like. This Tweet has ${e.unref(t)} likes`},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(u).likeIconWrapper)},[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 24 24",class:e.normalizeClass(e.unref(u).likeIcon),"aria-hidden":"true"},a[0]||(a[0]=[e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M20.884 13.19c-1.351 2.48-4.001 5.12-8.379 7.67l-.503.3-.504-.3c-4.379-2.55-7.029-5.19-8.382-7.67-1.36-2.5-1.41-4.86-.514-6.67.887-1.79 2.647-2.91 4.601-3.01 1.651-.09 3.368.56 4.798 2.01 1.429-1.45 3.146-2.1 4.796-2.01 1.954.1 3.714 1.22 4.601 3.01.896 1.81.846 4.17-.514 6.67z"})],-1)]),2))],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(u).likeCount)},e.toDisplayString(e.unref(t)),3)],10,qo),e.createElementVNode("a",{class:e.normalizeClass(e.unref(u).reply),href:n.tweet.reply_url,target:"_blank",rel:"noopener noreferrer","aria-label":"Reply to this Tweet on Twitter"},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(u).replyIconWrapper)},[(e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 24 24",class:e.normalizeClass(e.unref(u).replyIcon),"aria-hidden":"true"},a[1]||(a[1]=[e.createElementVNode("g",null,[e.createElementVNode("path",{d:"M1.751 10c0-4.42 3.584-8 8.005-8h4.366c4.49 0 8.129 3.64 8.129 8.13 0 2.96-1.607 5.68-4.196 7.11l-8.054 4.46v-3.69h-.067c-4.49.1-8.183-3.51-8.183-8.01z"})],-1)]),2))],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(u).replyText)},"Reply",2)],10,Go),e.createVNode(x,{tweet:n.tweet},null,8,["tweet"])],2))}}),Wo=["href"],Do=e.defineComponent({__name:"tweet-replies",props:{tweet:{}},setup(o){const r=o,t=e.computed(()=>r.tweet.conversation_count===0?"Read more on X":r.tweet.conversation_count===1?`Read ${y(r.tweet.conversation_count)} reply`:`Read ${y(r.tweet.conversation_count)} replies`);return(n,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.$style.replies)},[e.createElementVNode("a",{class:e.normalizeClass(n.$style.link),href:n.tweet.url,target:"_blank",rel:"noopener noreferrer"},[e.createElementVNode("span",{class:e.normalizeClass(n.$style.text)},e.toDisplayString(t.value),3)],10,Wo)],2))}}),Oo="ykg4nq_link",Fo="ykg4nq_replies",Ho="ykg4nq_text",jo={link:Oo,replies:Fo,text:Ho},Uo={$style:jo},P=i(Do,[["__cssModules",Uo]]),Y=e.defineComponent({__name:"embedded-tweet",props:{tweet:{},components:{}},setup(o){const r=o,t=e.computed(()=>W(r.tweet));return(n,a)=>(e.openBlock(),e.createBlock(w,null,{default:e.withCtx(()=>{var s;return[e.createVNode(F,{tweet:t.value,components:n.components},null,8,["tweet","components"]),t.value.in_reply_to_status_id_str?(e.openBlock(),e.createBlock(H,{key:0,tweet:t.value},null,8,["tweet"])):e.createCommentVNode("",!0),e.createVNode(U,{tweet:t.value},null,8,["tweet"]),(s=t.value.mediaDetails)!=null&&s.length?(e.openBlock(),e.createBlock(g,{key:1,tweet:t.value,components:n.components},null,8,["tweet","components"])):e.createCommentVNode("",!0),t.value.quoted_tweet?(e.openBlock(),e.createBlock(e.unref(O),{key:2,tweet:t.value.quoted_tweet},null,8,["tweet"])):e.createCommentVNode("",!0),e.createVNode(Z,{tweet:t.value},null,8,["tweet"]),e.createVNode(A,{tweet:t.value},null,8,["tweet"]),e.createVNode(P,{tweet:t.value},null,8,["tweet"])]}),_:1}))}}),Xo=e.defineComponent({__name:"skeleton",props:{style:{}},setup(o){return(r,t)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(r.$style.skeleton),style:e.normalizeStyle(r.style)},null,6))}}),Zo="l4VFjW_loading",xo="l4VFjW_skeleton",Ao={loading:Zo,skeleton:xo},Po={$style:Ao},h=i(Xo,[["__cssModules",Po]]),Yo=e.defineComponent({__name:"tweet-skeleton",setup(o){return(r,t)=>(e.openBlock(),e.createBlock(w,{class:e.normalizeClass(r.$style.root)},{default:e.withCtx(()=>[e.createVNode(h,{style:{height:"3rem",marginBottom:"0.75rem"}}),e.createVNode(h,{style:{height:"6rem",margin:"0.5rem 0"}}),t[0]||(t[0]=e.createElementVNode("div",{style:{borderTop:"var(--tweet-border)",margin:"0.5rem 0"}},null,-1)),e.createVNode(h,{style:{height:"2rem"}}),e.createVNode(h,{style:{height:"2rem",borderRadius:"9999px",marginTop:"0.5rem"}})]),_:1},8,["class"]))}}),Qo="Wi8Y9q_root",Ko={root:Qo},Jo={$style:Ko},Q=i(Yo,[["__cssModules",Jo]]);async function en(o,r){const t=await fetch(o,r),n=await t.json();if(t.ok)return n.data||null;throw new ee.TwitterApiError({message:`Failed to fetch tweet at "${o}" with "${t.status}".`,data:n,status:t.status})}function K(o,r,t){const n=e.ref(!0),a=e.ref(),s=e.ref(null),l=async()=>{if(!r&&!o){n.value=!1;return}try{const c=`${r}/${o}`,_=await en(c,t);a.value=_}catch(c){s.value=c}finally{n.value=!1}};return e.onMounted(()=>{l()}),{isLoading:n,data:a,error:s}}function tn(){const o=e.ref(!1);return e.onMounted(()=>{o.value=!0}),o}const on="https://react-tweet.vercel.app",nn=e.defineComponent({__name:"tweet",props:{id:{},apiUrl:{default:`${on}/api/tweet`},fallback:{default:Q},components:{default:()=>b},fetchOptions:{default:()=>({})},onError:{type:Function,default:o=>o}},setup(o){const r=o,{isLoading:t,data:n,error:a}=K(r.id,r.apiUrl,r.fetchOptions);return(s,l)=>{const c=e.resolveComponent("fallback");return e.unref(t)?(e.openBlock(),e.createBlock(c,{key:0})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.unref(a)||!e.unref(n)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.components.TweetNotFound),{key:0,error:s.onError(e.unref(a))},null,8,["error"])):(e.openBlock(),e.createBlock(e.unref(Y),{key:1,tweet:e.unref(n),components:s.components},null,8,["tweet","components"]))],64))}}});exports.EmbeddedTweet=Y;exports.QuotedTweet=O;exports.QuotedTweetBody=L;exports.QuotedTweetContainer=M;exports.QuotedTweetHeader=S;exports.Tweet=nn;exports.TweetActions=A;exports.TweetActionsCopy=x;exports.TweetBody=U;exports.TweetContainer=w;exports.TweetHeader=F;exports.TweetInReplyTo=H;exports.TweetInfo=Z;exports.TweetInfoCreatedAt=X;exports.TweetLink=j;exports.TweetMedia=g;exports.TweetMediaVideo=D;exports.TweetNotFound=V;exports.TweetReplies=P;exports.TweetSkeleton=Q;exports.Verified=N;exports.VerifiedBusiness=T;exports.VerifiedGovernment=z;exports.defaultTwitterComponents=b;exports.enrichTweet=W;exports.formatNumber=y;exports.getMediaUrl=$;exports.getMp4Video=G;exports.getMp4Videos=q;exports.useMounted=tn;exports.useTweet=K;