vue-tweet-pure
Version:
A Vue 3 component for embedding tweets in your Vue.js applications.
1 lines • 32.1 kB
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./api.cjs.js`);let t=require(`vue`);var n=(0,t.defineComponent)({__name:`tweet-container`,setup(e){let n=(0,t.useAttrs)();return(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`vue-tweet-theme`,e.$style.root,(0,t.unref)(n).class])},[(0,t.createElementVNode)(`article`,{class:(0,t.normalizeClass)(e.$style.article)},[(0,t.renderSlot)(e.$slots,`default`)],2)],2))}}),r={article:`JrPdna_article`,root:`JrPdna_root`},i=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},a=i(n,[[`__cssModules`,{$style:r}]]),o=i((0,t.defineComponent)({__name:`tweet-not-found`,props:{error:{}},setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(a,null,{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(e.$style.root)},[...n[0]||=[(0,t.createElementVNode)(`h3`,null,`Tweet not found`,-1),(0,t.createElementVNode)(`p`,null,`The embedded tweet could not be found…`,-1)]],2)]),_:1}))}}),[[`__cssModules`,{$style:{root:`nN86_W_root`}}]]),s=[`src`,`alt`,`width`,`height`],c=(0,t.defineComponent)({__name:`avatar-img`,props:{src:{},alt:{},width:{},height:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{src:e.src,alt:e.alt,width:e.width,height:e.height},null,8,s))}}),l=[`src`,`alt`,`draggable`],u=(0,t.defineComponent)({__name:`media-img`,props:{src:{},alt:{},draggable:{type:Boolean}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`img`,(0,t.mergeProps)(n.$attrs,{src:e.src,alt:e.alt,draggable:e.draggable}),null,16,l))}}),d={TweetNotFound:o,AvatarImg:c,MediaImg:u},f={verified:`_81i5Cq_verified`},p=(0,t.defineComponent)({__name:`verified`,setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 24 24`,"aria-label":`Verified account`,role:`img`,class:(0,t.normalizeClass)((0,t.unref)(f).verified)},[...n[0]||=[(0,t.createElementVNode)(`g`,null,[(0,t.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))}}),m=(0,t.defineComponent)({__name:`verified-business`,setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 22 22`,"aria-label":`Verified account`,role:`img`,class:(0,t.normalizeClass)((0,t.unref)(f).verified)},[...n[0]||=[(0,t.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))}}),h=(0,t.defineComponent)({__name:`verified-government`,setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 22 22`,"aria-label":`Verified account`,role:`img`,class:(0,t.normalizeClass)((0,t.unref)(f).verified)},[...n[0]||=[(0,t.createElementVNode)(`g`,null,[(0,t.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))}}),g=i((0,t.defineComponent)({__name:`quoted-tweet-container`,props:{tweet:{}},setup(e){let n=e=>{window.open(e,`_blank`)};return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r.$style.root),onClick:i[0]||=(0,t.withModifiers)(t=>n(e.tweet.url),[`prevent`])},[(0,t.createElementVNode)(`article`,{class:(0,t.normalizeClass)(r.$style.article)},[(0,t.renderSlot)(r.$slots,`default`)],2)],2))}}),[[`__cssModules`,{$style:{article:`RsfEUq_article`,root:`RsfEUq_root`}}]]),_=i((0,t.defineComponent)({__name:`verified-badge`,props:{user:{}},setup(e){let n=(0,t.useCssModule)(),r=(0,t.useAttrs)(),i=e,a=(0,t.computed)(()=>i.user.verified||i.user.is_blue_verified||i.user.verified_type),o=(0,t.computed)(()=>a.value?i.user.verified_type===`Government`?h:i.user.verified_type===`Business`?m:p:null),s=(0,t.computed)(()=>a.value?i.user.verified_type===`Government`?n.verifiedGovernment:i.user.verified_type===`Business`?null:i.user.is_blue_verified?n.verifiedBlue:n.verifiedOld:null);return(e,n)=>a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([(0,t.unref)(r).class,s.value])},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(o.value)))],2)):(0,t.createCommentVNode)(``,!0)}}),[[`__cssModules`,{$style:{verifiedBlue:`dT-upq_verifiedBlue`,verifiedGovernment:`dT-upq_verifiedGovernment`,verifiedOld:`dT-upq_verifiedOld`}}]]),ee=[`href`],te=[`title`],ne=[`title`],v=i((0,t.defineComponent)({__name:`quoted-tweet-header`,props:{tweet:{}},setup(e){let{user:n}=e.tweet;return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r.$style.header)},[(0,t.createElementVNode)(`a`,{href:e.tweet.url,class:(0,t.normalizeClass)(r.$style.avatar),target:`_blank`,rel:`noopener noreferrer`},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([r.$style.avatarOverflow,{[r.$style.avatarSquare]:(0,t.unref)(n).profile_image_shape===`Square`}])},[(0,t.createVNode)(c,{src:(0,t.unref)(n).profile_image_url_https,alt:(0,t.unref)(n).name,width:20,height:20},null,8,[`src`,`alt`])],2)],10,ee),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(r.$style.author)},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(r.$style.authorText)},[(0,t.createElementVNode)(`span`,{title:(0,t.unref)(n).name},(0,t.toDisplayString)((0,t.unref)(n).name),9,te)],2),(0,t.createVNode)(_,{user:(0,t.unref)(n)},null,8,[`user`]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(r.$style.username)},[(0,t.createElementVNode)(`span`,{title:`@${(0,t.unref)(n).screen_name}`},`@`+(0,t.toDisplayString)((0,t.unref)(n).screen_name),9,ne)],2)],2)],2))}}),[[`__cssModules`,{$style:{author:`_2tBG3G_author`,authorText:`_2tBG3G_authorText`,avatar:`_2tBG3G_avatar`,avatarSquare:`_2tBG3G_avatarSquare`,header:`_2tBG3G_header`,username:`_2tBG3G_username`}}]]),re=[`lang`],ie=[`innerHTML`],y=i((0,t.defineComponent)({__name:`quoted-tweet-body`,props:{tweet:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{class:(0,t.normalizeClass)(n.$style.root),lang:e.tweet.lang,dir:`auto`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tweet.entities,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:n,innerHTML:e.text},null,8,ie))),128))],10,re))}}),[[`__cssModules`,{$style:{root:`_3hXyqa_root`}}]]),b=e=>`https://x.com/${e.user.screen_name}/status/${e.id_str}`,x=e=>`https://x.com/${typeof e==`string`?e:e.user.screen_name}`,ae=e=>`https://x.com/intent/like?tweet_id=${e.id_str}`,oe=e=>`https://x.com/intent/tweet?in_reply_to=${e.id_str}`,se=e=>`https://x.com/intent/follow?screen_name=${e.user.screen_name}`,ce=e=>`https://x.com/hashtag/${e.text}`,le=e=>`https://x.com/search?q=%24${e.text}`,ue=e=>`https://x.com/${e.in_reply_to_screen_name}/status/${e.in_reply_to_status_id_str}`,S=(e,t)=>{let n=new URL(e.media_url_https),r=n.pathname.split(`.`).pop();return r?(n.pathname=n.pathname.replace(`.${r}`,``),n.searchParams.set(`format`,r),n.searchParams.set(`name`,t),n.toString()):e.media_url_https},C=e=>{let{variants:t}=e.video_info;return t.filter(e=>e.content_type===`video/mp4`).sort((e,t)=>(t.bitrate??0)-(e.bitrate??0))},w=e=>{let t=C(e);return t.length>1?t[1]:t[0]},T=e=>e>999999?`${(e/1e6).toFixed(1)}M`:e>999?`${(e/1e3).toFixed(1)}K`:e.toString();function E(e){let t=Array.from(e.text),n=[{indices:e.display_text_range,type:`text`}];return D(n,`hashtag`,e.entities.hashtags),D(n,`mention`,e.entities.user_mentions),D(n,`url`,e.entities.urls),D(n,`symbol`,e.entities.symbols),e.entities.media&&D(n,`media`,e.entities.media),de(e,n),n.map(e=>{let n=t.slice(e.indices[0],e.indices[1]).join(``);switch(e.type){case`hashtag`:return Object.assign(e,{href:ce(e),text:n});case`mention`:return Object.assign(e,{href:x(e.screen_name),text:n});case`url`:case`media`:return Object.assign(e,{href:e.expanded_url,text:e.display_url});case`symbol`:return Object.assign(e,{href:le(e),text:n});default:return Object.assign(e,{text:n})}})}function D(e,t,n){for(let r of n)for(let[n,i]of e.entries()){if(i.indices[0]>r.indices[0]||i.indices[1]<r.indices[1])continue;let a=[{...r,type:t}];i.indices[0]<r.indices[0]&&a.unshift({indices:[i.indices[0],r.indices[0]],type:`text`}),i.indices[1]>r.indices[1]&&a.push({indices:[r.indices[1],i.indices[1]],type:`text`}),e.splice(n,1,...a);break}}function de(e,t){let n=e.entities.media?.[0];n&&n.indices[0]<e.display_text_range[1]&&(e.display_text_range[1]=n.indices[0]);let r=t.at(-1);r&&r.indices[1]>e.display_text_range[1]&&(r.indices[1]=e.display_text_range[1])}var O=e=>({...e,url:b(e),user:{...e.user,url:x(e),follow_url:se(e)},like_url:ae(e),reply_url:oe(e),in_reply_to_url:e.in_reply_to_screen_name?ue(e):void 0,entities:E(e),quoted_tweet:e.quoted_tweet?{...e.quoted_tweet,url:b(e.quoted_tweet),entities:E(e.quoted_tweet)}:void 0}),k={grid2Columns:`nYjDHW_grid2Columns`,grid2x2:`nYjDHW_grid2x2`,grid3:`nYjDHW_grid3`,image:`nYjDHW_image`,mediaContainer:`nYjDHW_mediaContainer`,mediaLink:`nYjDHW_mediaLink`,mediaWrapper:`nYjDHW_mediaWrapper`,root:`nYjDHW_root`,rounded:`nYjDHW_rounded`,skeleton:`nYjDHW_skeleton`},fe=[`poster`,`controls`,`tabindex`],pe=[`src`,`type`],me=[`href`],he=[`href`],A=i((0,t.defineComponent)({__name:`tweet-media-video`,props:{tweet:{},media:{}},setup(e){let n=e,r=(0,t.ref)(!0),i=(0,t.ref)(!1),a=(0,t.ref)(!1),o=w(n.media),s=0,c=()=>{s&&window.clearTimeout(s),i.value||=!0,a.value&&=!1},l=()=>{s&&window.clearTimeout(s),s=window.setTimeout(()=>{i.value&&=!1,s=0},100)},u=e=>{let t=e.currentTarget.previousElementSibling;e.preventDefault(),r.value=!1,i.value=!0,t.play(),t.focus()};return(n,s)=>(0,t.unref)(o)?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`video`,{class:(0,t.normalizeClass)((0,t.unref)(k).image),poster:(0,t.unref)(S)(e.media,`small`),controls:!r.value,muted:``,preload:`none`,tabindex:r.value?-1:0,onPlay:c,onPause:l,onEnded:s[0]||=e=>a.value=!0},[(0,t.createElementVNode)(`source`,{src:(0,t.unref)(o).url,type:(0,t.unref)(o).content_type},null,8,pe)],42,fe),r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:(0,t.normalizeClass)(n.$style.videoButton),"aria-label":`View video on X`,onClick:u},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 24 24`,class:(0,t.normalizeClass)(n.$style.videoButtonIcon),"aria-hidden":`true`},[...s[1]||=[(0,t.createElementVNode)(`g`,null,[(0,t.createElementVNode)(`path`,{d:`M21 12L4 2v20l17-10z`})],-1)]],2))],2)):(0,t.createCommentVNode)(``,!0),!i.value&&!a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)(n.$style.watchOnTwitter)},[(0,t.createElementVNode)(`a`,{href:e.tweet.url,class:(0,t.normalizeClass)(n.$style.anchor),target:`_blank`,rel:`noopener noreferrer`},(0,t.toDisplayString)(r.value?`Watch on X`:`Continue watching on X`),11,me)],2)):(0,t.createCommentVNode)(``,!0),a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:2,href:e.tweet.url,class:(0,t.normalizeClass)([n.$style.anchor,n.$style.viewReplies]),target:`_blank`,rel:`noopener noreferrer`},` View replies `,10,he)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)}}),[[`__cssModules`,{$style:{anchor:`rnM63W_anchor`,videoButton:`rnM63W_videoButton`,videoButtonIcon:`rnM63W_videoButtonIcon`,viewReplies:`rnM63W_viewReplies`,watchOnTwitter:`rnM63W_watchOnTwitter`}}]]),ge=[`href`],j=(0,t.defineComponent)({__name:`tweet-media`,props:{tweet:{},components:{},quoted:{type:Boolean}},setup(e){let n=e,r=(e,t)=>{let n=56.25;return t===1&&(n=100/e.original_info.width*e.original_info.height),t===2&&(n*=2),{width:e.type===`photo`?void 0:`unset`,paddingBottom:`${n}%`}},i=(0,t.computed)(()=>n.tweet.mediaDetails?.length??0),a=(0,t.computed)(()=>n.components?.MediaImg??u);return(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([(0,t.unref)(k).root,!e.quoted&&(0,t.unref)(k).rounded])},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([(0,t.unref)(k).mediaWrapper,i.value>1&&(0,t.unref)(k).grid2Columns,i.value===3&&(0,t.unref)(k).grid3,i.value>4&&(0,t.unref)(k).grid2x2])},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tweet.mediaDetails,n=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n.media_url_https},[n.type===`photo`?((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:0,href:e.tweet.url,class:(0,t.normalizeClass)([(0,t.unref)(k).mediaContainer,(0,t.unref)(k).mediaLink]),target:`_blank`,rel:`noopener noreferrer`},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(k).skeleton),style:(0,t.normalizeStyle)(r(n,i.value))},null,6),((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(a.value),{src:(0,t.unref)(S)(n,`small`),alt:n.ext_alt_text||`Image`,class:(0,t.normalizeClass)((0,t.unref)(k).image),draggable:``},null,8,[`src`,`alt`,`class`]))],10,ge)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)((0,t.unref)(k).mediaContainer)},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(k).skeleton),style:(0,t.normalizeStyle)(r(n,i.value))},null,6),(0,t.createVNode)(A,{tweet:e.tweet,media:n},null,8,[`tweet`,`media`])],2))],64))),128))],2)],2))}}),M=(0,t.defineComponent)({__name:`quoted-tweet`,props:{tweet:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(g,{tweet:e.tweet},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(v,{tweet:e.tweet},null,8,[`tweet`]),(0,t.createVNode)(y,{tweet:e.tweet},null,8,[`tweet`]),e.tweet.mediaDetails?.length?((0,t.openBlock)(),(0,t.createBlock)(j,{key:0,tweet:e.tweet,quoted:``},null,8,[`tweet`])):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`tweet`]))}}),_e=[`href`],N=[`href`],P=[`title`],F=[`href`],I=[`title`],ve=[`href`],ye=[`href`],L=i((0,t.defineComponent)({__name:`tweet-header`,props:{tweet:{},components:{}},setup(e){let n=e,r=n.components?.AvatarImg??c,{user:i}=n.tweet;return(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(n.$style.header)},[(0,t.createElementVNode)(`a`,{href:e.tweet.url,class:(0,t.normalizeClass)(n.$style.avatar),target:`_blank`,rel:`noopener noreferrer`},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([n.$style.avatarOverflow,{[n.$style.avatarSquare]:(0,t.unref)(i).profile_image_shape===`Square`}])},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(r)),{src:(0,t.unref)(i).profile_image_url_https,alt:(0,t.unref)(i).name,width:48,height:48},null,8,[`src`,`alt`]))],2),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(n.$style.avatarOverflow)},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(n.$style.avatarShadow)},null,2)],2)],10,_e),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(n.$style.author)},[(0,t.createElementVNode)(`a`,{href:e.tweet.url,class:(0,t.normalizeClass)(n.$style.authorLink),target:`_blank`,rel:`noopener noreferrer`},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(n.$style.authorLinkText)},[(0,t.createElementVNode)(`span`,{title:(0,t.unref)(i).name},(0,t.toDisplayString)((0,t.unref)(i).name),9,P)],2),(0,t.createVNode)(_,{user:(0,t.unref)(i),class:(0,t.normalizeClass)(n.$style.authorVerified)},null,8,[`user`,`class`])],10,N),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(n.$style.authorMeta)},[(0,t.createElementVNode)(`a`,{href:e.tweet.url,class:(0,t.normalizeClass)(n.$style.username),target:`_blank`,rel:`noopener noreferrer`},[(0,t.createElementVNode)(`span`,{title:`@${(0,t.unref)(i).screen_name}`},`@`+(0,t.toDisplayString)((0,t.unref)(i).screen_name),9,I)],10,F),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)(n.$style.authorFollow)},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)(n.$style.separator)},`·`,2),(0,t.createElementVNode)(`a`,{href:(0,t.unref)(i).follow_url,class:(0,t.normalizeClass)(n.$style.follow),target:`_blank`,rel:`noopener noreferrer`},` Follow `,10,ve)],2)],2)],2),(0,t.createElementVNode)(`a`,{href:e.tweet.url,class:(0,t.normalizeClass)(n.$style.brand),target:`_blank`,rel:`noopener noreferrer`,"aria-label":`View on Twitter`},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,class:(0,t.normalizeClass)(n.$style.twitterIcon)},[...a[0]||=[(0,t.createElementVNode)(`g`,null,[(0,t.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,ye)],2))}}),[[`__cssModules`,{$style:{author:`ZbIw1a_author`,authorFollow:`ZbIw1a_authorFollow`,authorLink:`ZbIw1a_authorLink`,authorLinkText:`ZbIw1a_authorLinkText`,authorMeta:`ZbIw1a_authorMeta`,authorVerified:`ZbIw1a_authorVerified`,avatar:`ZbIw1a_avatar`,avatarOverflow:`ZbIw1a_avatarOverflow`,avatarShadow:`ZbIw1a_avatarShadow`,avatarSquare:`ZbIw1a_avatarSquare`,brand:`ZbIw1a_brand`,follow:`ZbIw1a_follow`,header:`ZbIw1a_header`,separator:`ZbIw1a_separator`,twitterIcon:`ZbIw1a_twitterIcon`,username:`ZbIw1a_username`}}]]),be=[`href`],R=i((0,t.defineComponent)({__name:`tweet-in-reply-to`,props:{tweet:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{href:e.tweet.in_reply_to_url,class:(0,t.normalizeClass)(n.$style.root),target:`_blank`,rel:`noopener noreferrer`},` Replying to @`+(0,t.toDisplayString)(e.tweet.in_reply_to_screen_name),11,be))}}),[[`__cssModules`,{$style:{root:`_5nZaGq_root`}}]]),xe=[`href`],z=i((0,t.defineComponent)({__name:`tweet-link`,props:{href:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{href:e.href,class:(0,t.normalizeClass)(n.$style.root),target:`_blank`,rel:`noopener noreferrer nofollow`},[(0,t.renderSlot)(n.$slots,`default`)],10,xe))}}),[[`__cssModules`,{$style:{root:`KevUKq_root`}}]]),Se=[`lang`],Ce=[`innerHTML`],B=i((0,t.defineComponent)({__name:`tweet-body`,props:{tweet:{}},setup(e){let n=e=>[`hashtag`,`mention`,`url`,`symbol`].includes(e.type);return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{class:(0,t.normalizeClass)(r.$style.root),lang:e.tweet.lang,dir:`auto`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.tweet.entities,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:r},[n(e)?((0,t.openBlock)(),(0,t.createBlock)(z,{key:0,href:e.href},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)]),_:2},1032,[`href`])):e.type===`text`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,innerHTML:e.text},null,8,Ce)):(0,t.createCommentVNode)(``,!0)],64))),128))],10,Se))}}),[[`__cssModules`,{$style:{root:`b5eIca_root`}}]]),we=new Intl.DateTimeFormat(navigator.language,{hour:`numeric`,minute:`2-digit`,hour12:!0,weekday:`short`,month:`short`,day:`numeric`,year:`numeric`}),Te=e=>{let t={};for(let n of e)t[n.type]=n.value;return t},Ee=e=>{let t=Te(we.formatToParts(e));return`${`${t.hour}:${t.minute} ${t.dayPeriod}`} · ${`${t.month} ${t.day}, ${t.year}`}`},De=[`href`,`aria-label`],Oe=[`datetime`],V=i((0,t.defineComponent)({__name:`tweet-info-created-at`,props:{tweet:{}},setup(e){let n=new Date(e.tweet.created_at),r=Ee(n);return(i,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{class:(0,t.normalizeClass)(i.$style.root),href:e.tweet.url,target:`_blank`,rel:`noopener noreferrer`,"aria-label":(0,t.unref)(r)},[(0,t.createElementVNode)(`time`,{datetime:(0,t.unref)(n).toISOString()},(0,t.toDisplayString)((0,t.unref)(r)),9,Oe)],10,De))}}),[[`__cssModules`,{$style:{root:`Oh6FCq_root`}}]]),H=i((0,t.defineComponent)({__name:`tweet-info`,props:{tweet:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(n.$style.info)},[(0,t.createVNode)(V,{tweet:e.tweet},null,8,[`tweet`]),(0,t.createElementVNode)(`a`,{class:(0,t.normalizeClass)(n.$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`},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,class:(0,t.normalizeClass)(n.$style.infoIcon)},[...r[0]||=[(0,t.createElementVNode)(`g`,null,[(0,t.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))}}),[[`__cssModules`,{$style:{info:`Mff3nG_info`,infoIcon:`Mff3nG_infoIcon`,infoLink:`Mff3nG_infoLink`}}]]),U={actions:`aX6RRG_actions`,copy:`aX6RRG_copy`,copyIcon:`aX6RRG_copyIcon`,copyIconWrapper:`aX6RRG_copyIconWrapper`,copyText:`aX6RRG_copyText`,like:`aX6RRG_like`,likeCount:`aX6RRG_likeCount`,likeIcon:`aX6RRG_likeIcon`,likeIconWrapper:`aX6RRG_likeIconWrapper`,reply:`aX6RRG_reply`,replyIcon:`aX6RRG_replyIcon`,replyIconWrapper:`aX6RRG_replyIconWrapper`,replyText:`aX6RRG_replyText`},W=(0,t.defineComponent)({__name:`tweet-actions-copy`,props:{tweet:{}},setup(e){let n=e,r=(0,t.ref)(!1),i=()=>{navigator.clipboard.writeText(n.tweet.url),r.value=!0},a;return(0,t.watch)(r,e=>{e&&(clearTimeout(a),a=setTimeout(()=>{r.value=!1},6e3))}),(0,t.onBeforeUnmount)(()=>clearTimeout(a)),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)((0,t.unref)(U).copy),"aria-label":`Copy link`,onClick:i},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(U).copyIconWrapper)},[r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{key:0,viewBox:`0 0 24 24`,class:(0,t.normalizeClass)((0,t.unref)(U).copyIcon),"aria-hidden":`true`},[...n[0]||=[(0,t.createElementVNode)(`g`,null,[(0,t.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)):((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{key:1,viewBox:`0 0 24 24`,class:(0,t.normalizeClass)((0,t.unref)(U).copyIcon),"aria-hidden":`true`},[...n[1]||=[(0,t.createElementVNode)(`g`,null,[(0,t.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),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)((0,t.unref)(U).copyText)},(0,t.toDisplayString)(r.value?`Copied!`:`Copy link`),3)],2))}}),ke=[`href`,`aria-label`],Ae=[`href`],G=(0,t.defineComponent)({__name:`tweet-actions`,props:{tweet:{}},setup(e){let n=T(e.tweet.favorite_count);return(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(U).actions)},[(0,t.createElementVNode)(`a`,{class:(0,t.normalizeClass)((0,t.unref)(U).like),href:e.tweet.like_url,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`Like. This Tweet has ${(0,t.unref)(n)} likes`},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(U).likeIconWrapper)},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 24 24`,class:(0,t.normalizeClass)((0,t.unref)(U).likeIcon),"aria-hidden":`true`},[...i[0]||=[(0,t.createElementVNode)(`g`,null,[(0,t.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),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)((0,t.unref)(U).likeCount)},(0,t.toDisplayString)((0,t.unref)(n)),3)],10,ke),(0,t.createElementVNode)(`a`,{class:(0,t.normalizeClass)((0,t.unref)(U).reply),href:e.tweet.reply_url,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`Reply to this Tweet on Twitter`},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)((0,t.unref)(U).replyIconWrapper)},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 24 24`,class:(0,t.normalizeClass)((0,t.unref)(U).replyIcon),"aria-hidden":`true`},[...i[1]||=[(0,t.createElementVNode)(`g`,null,[(0,t.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),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)((0,t.unref)(U).replyText)},`Reply`,2)],10,Ae),(0,t.createVNode)(W,{tweet:e.tweet},null,8,[`tweet`])],2))}}),je=[`href`],K=i((0,t.defineComponent)({__name:`tweet-replies`,props:{tweet:{}},setup(e){let n=e,r=(0,t.computed)(()=>n.tweet.conversation_count===0?`Read more on X`:n.tweet.conversation_count===1?`Read ${T(n.tweet.conversation_count)} reply`:`Read ${T(n.tweet.conversation_count)} replies`);return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(n.$style.replies)},[(0,t.createElementVNode)(`a`,{class:(0,t.normalizeClass)(n.$style.link),href:e.tweet.url,target:`_blank`,rel:`noopener noreferrer`},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)(n.$style.text)},(0,t.toDisplayString)(r.value),3)],10,je)],2))}}),[[`__cssModules`,{$style:{link:`ykg4nq_link`,replies:`ykg4nq_replies`,text:`ykg4nq_text`}}]]),q=(0,t.defineComponent)({__name:`embedded-tweet`,props:{tweet:{},components:{}},setup(e){let n=e,r=(0,t.computed)(()=>O(n.tweet));return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)(a,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(L,{tweet:r.value,components:e.components},null,8,[`tweet`,`components`]),r.value.in_reply_to_status_id_str?((0,t.openBlock)(),(0,t.createBlock)(R,{key:0,tweet:r.value},null,8,[`tweet`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(B,{tweet:r.value},null,8,[`tweet`]),r.value.mediaDetails?.length?((0,t.openBlock)(),(0,t.createBlock)(j,{key:1,tweet:r.value,components:e.components},null,8,[`tweet`,`components`])):(0,t.createCommentVNode)(``,!0),r.value.quoted_tweet?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(M),{key:2,tweet:r.value.quoted_tweet},null,8,[`tweet`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(H,{tweet:r.value},null,8,[`tweet`]),(0,t.createVNode)(G,{tweet:r.value},null,8,[`tweet`]),(0,t.createVNode)(K,{tweet:r.value},null,8,[`tweet`])]),_:1}))}}),J=i((0,t.defineComponent)({__name:`skeleton`,props:{style:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)(n.$style.skeleton),style:(0,t.normalizeStyle)(e.style)},null,6))}}),[[`__cssModules`,{$style:{loading:`l4VFjW_loading`,skeleton:`l4VFjW_skeleton`}}]]),Y=i((0,t.defineComponent)({__name:`tweet-skeleton`,setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(a,{class:(0,t.normalizeClass)(e.$style.root)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(J,{style:{height:`3rem`,marginBottom:`0.75rem`}}),(0,t.createVNode)(J,{style:{height:`6rem`,margin:`0.5rem 0`}}),n[0]||=(0,t.createElementVNode)(`div`,{style:{borderTop:`var(--tweet-border)`,margin:`0.5rem 0`}},null,-1),(0,t.createVNode)(J,{style:{height:`2rem`}}),(0,t.createVNode)(J,{style:{height:`2rem`,borderRadius:`9999px`,marginTop:`0.5rem`}})]),_:1},8,[`class`]))}}),[[`__cssModules`,{$style:{root:`Wi8Y9q_root`}}]]);async function Me(t,n){let r=await fetch(t,n),i=await r.json();if(r.ok)return i.data||null;throw new e.TwitterApiError({message:`Failed to fetch tweet at "${t}" with "${r.status}".`,data:i,status:r.status})}var X=new Map;function Z(){X.clear()}function Q(e,t){let n=X.get(e);if(n)return n;let r=Me(e,t).catch(t=>{throw X.delete(e),t});return X.set(e,r),r}function $(e,n,r){let i=(0,t.ref)(!0),a=(0,t.ref)(),o=(0,t.ref)(null),s=async()=>{if(!n&&!e){i.value=!1;return}try{a.value=await Q(`${n}/${e}`,r)}catch(e){o.value=e}finally{i.value=!1}};return(0,t.onMounted)(()=>{s()}),{isLoading:i,data:a,error:o}}function Ne(){let e=(0,t.ref)(!1);return(0,t.onMounted)(()=>{e.value=!0}),e}var Pe=(0,t.defineComponent)({__name:`tweet`,props:{id:{},apiUrl:{default:`https://react-tweet.vercel.app/api/tweet`},fallback:{default:Y},components:{default:()=>d},fetchOptions:{default:()=>({})},onError:{type:Function,default:e=>e}},setup(e){let n=e,{isLoading:r,data:i,error:a}=$(n.id,n.apiUrl,n.fetchOptions);return(n,o)=>(0,t.unref)(r)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(e.fallback),{key:0})):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.unref)(a)||!(0,t.unref)(i)?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.components.TweetNotFound),{key:0,error:e.onError((0,t.unref)(a))},null,8,[`error`])):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(q),{key:1,tweet:(0,t.unref)(i),components:e.components},null,8,[`tweet`,`components`]))],64))}});exports.EmbeddedTweet=q,exports.QuotedTweet=M,exports.QuotedTweetBody=y,exports.QuotedTweetContainer=g,exports.QuotedTweetHeader=v,exports.Tweet=Pe,exports.TweetActions=G,exports.TweetActionsCopy=W,exports.TweetBody=B,exports.TweetContainer=a,exports.TweetHeader=L,exports.TweetInReplyTo=R,exports.TweetInfo=H,exports.TweetInfoCreatedAt=V,exports.TweetLink=z,exports.TweetMedia=j,exports.TweetMediaVideo=A,exports.TweetNotFound=o,exports.TweetReplies=K,exports.TweetSkeleton=Y,exports.Verified=p,exports.VerifiedBusiness=m,exports.VerifiedGovernment=h,exports.cachedFetcher=Q,exports.clearCache=Z,exports.defaultTwitterComponents=d,exports.enrichTweet=O,exports.formatNumber=T,exports.getMediaUrl=S,exports.getMp4Video=w,exports.getMp4Videos=C,exports.useMounted=Ne,exports.useTweet=$;