1import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t,t as n}from"./jsx-runtime-D3F0h15I.js";import{a as r,c as i,n as a,s as o}from"./react-intl-CZJDGRhA.js";import{F as s,d as ee}from"./initial_state-CQfWVRE7.js";import{o as c}from"./locales-m7YlbOxC.js";import{k as l}from"./chevron_right-D4gnplrj.js";import{Xt as u}from"./detect-it.esm-DVND6rlI.js";import{Dr as d,Er as f,wr as p}from"./time-CBgvXNUv.js";import{s as m}from"./react-router-D0L-bsDO.js";import{U as h}from"./accounts_typed-CjliyoRM.js";import{o as g,s as _}from"./typed_functions--Rew8955.js";import{$t as v,Xt as y,qt as b}from"./collection_preview_card-CKqYJ3tn.js";import{t as x}from"./classnames-CfLRLWYq.js";import{H as S,z as C}from"./poll-BtLD4E-D.js";import{t as w}from"./useMergedRefs-CKvDylbq.js";import{x as T}from"./bookmark-CtUZgtUD.js";import{t as E}from"./search-ChptxC0m.js";var D=e(t()),O=e(x()),k=n(),A=o({placeholder:{id:`search.placeholder`,defaultMessage:`Search`},clearSearch:{id:`search.clear`,defaultMessage:`Clear search`},placeholderSignedIn:{id:`search.search_or_paste`,defaultMessage:`Search or paste URL`}}),j=e=>{switch(e.type){case`account`:return`@${e.q}`;case`hashtag`:return`#${e.q}`;default:return e.q}},M=({onClick:e,hasValue:t})=>{let n=i();return(0,k.jsxs)(`div`,{className:(0,O.default)(`search__icon-wrapper`,{"has-value":t}),children:[(0,k.jsx)(S,{id:`search`,icon:E,className:`search__icon`}),(0,k.jsx)(`button`,{type:`button`,onClick:e,className:`search__icon search__icon--clear-button`,tabIndex:t?void 0:-1,"aria-hidden":!t,children:(0,k.jsx)(S,{id:`times-circle`,icon:T,"aria-label":n.formatMessage(A.clearSearch)})})]})},N=({singleColumn:e,initialValue:t})=>{let n=i(),o=_(e=>e.search.recent),{signedIn:x}=C(),T=g(),E=m(),N=(0,D.useRef)(null),[P,F]=(0,D.useState)(t??``),I=P.length>0,[L,R]=(0,D.useState)(!1),[z,B]=(0,D.useState)(-1),[V,H]=(0,D.useState)([]),U=v(y.SEARCH),W=(0,D.useCallback)(()=>{document.querySelector(`.ui`)?.parentElement?.focus(),R(!1)},[]),G=(0,D.useCallback)(e=>{F(t=>t===``?e:t.endsWith(` `)?`${t}${e}`:`${t} ${e}`)},[]),K=(0,D.useMemo)(()=>s?[{key:`prompt-has`,label:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`mark`,{children:`has:`}),` `,(0,k.jsx)(a,{type:`disjunction`,value:[`media`,`poll`,`embed`]})]}),action:e=>{e.preventDefault(),G(`has:`)}},{key:`prompt-is`,label:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`mark`,{children:`is:`}),` `,(0,k.jsx)(a,{type:`disjunction`,value:[`reply`,`sensitive`]})]}),action:e=>{e.preventDefault(),G(`is:`)}},{key:`prompt-language`,label:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`mark`,{children:`language:`}),` `,(0,k.jsx)(r,{id:`search_popout.language_code`,defaultMessage:`ISO language code`})]}),action:e=>{e.preventDefault(),G(`language:`)}},{key:`prompt-from`,label:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`mark`,{children:`from:`}),` `,(0,k.jsx)(r,{id:`search_popout.user`,defaultMessage:`user`})]}),action:e=>{e.preventDefault(),G(`from:`)}},{key:`prompt-before`,label:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`mark`,{children:`before:`}),` `,(0,k.jsx)(r,{id:`search_popout.specific_date`,defaultMessage:`specific date`})]}),action:e=>{e.preventDefault(),G(`before:`)}},{key:`prompt-during`,label:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`mark`,{children:`during:`}),` `,(0,k.jsx)(r,{id:`search_popout.specific_date`,defaultMessage:`specific date`})]}),action:e=>{e.preventDefault(),G(`during:`)}},{key:`prompt-after`,label:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`mark`,{children:`after:`}),` `,(0,k.jsx)(r,{id:`search_popout.specific_date`,defaultMessage:`specific date`})]}),action:e=>{e.preventDefault(),G(`after:`)}},{key:`prompt-in`,label:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`mark`,{children:`in:`}),` `,(0,k.jsx)(a,{type:`disjunction`,value:[`all`,`library`,`public`]})]}),action:e=>{e.preventDefault(),G(`in:`)}}]:[],[G]),q=(0,D.useMemo)(()=>o.map(e=>({key:`${e.type}/${e.q}`,label:j(e),action:()=>{if(F(e.q),e.type===`account`)E.push(`/@${e.q}`);else if(e.type===`hashtag`)E.push(`/tags/${e.q}`);else{let t=new URLSearchParams({q:e.q});e.type&&t.set(`type`,e.type),E.push({pathname:`/search`,search:t.toString()})}W()},forget:t=>{t.stopPropagation(),T(f(e))}})),[T,E,o,W]),J=(0,D.useMemo)(()=>I?V.concat(K):q.concat(V,K),[I,V,q,K]),Y=(0,D.useCallback)((e,t)=>{T(p({q:e,type:t}));let n=new URLSearchParams({q:e});t&&n.set(`type`,t),E.push({pathname:`/search`,search:n.toString()}),W()},[T,E,W]),te=(0,D.useCallback)(({target:{value:e}})=>{F(e);let t=e.trim(),n=[];t.length>0&&(t.startsWith(`https://`)&&!t.includes(` `)&&n.push({key:`open-url`,label:(0,k.jsx)(r,{id:`search.quick_action.open_url`,defaultMessage:`Open URL in Mastodon`}),action:async()=>{let e=await T(d({url:t}));u(e)&&(e.payload.accounts[0]?E.push(`/@${e.payload.accounts[0].acct}`):e.payload.statuses[0]?E.push(`/@${e.payload.statuses[0].account.acct}/${e.payload.statuses[0].id}`):e.payload.collections[0]&&E.push(b(e.payload.collections[0].id))),W()}}),(t.startsWith(`#`)&&t.length>1||t.match(h))&&n.push({key:`go-to-hashtag`,label:(0,k.jsx)(r,{id:`search.quick_action.go_to_hashtag`,defaultMessage:`Go to hashtag {x}`,values:{x:(0,k.jsxs)(`mark`,{children:[`#`,t.replace(/^#/,``)]})}}),action:()=>{let e=t.replace(/^#/,``);E.push(`/tags/${e}`),T(p({q:e,type:`hashtag`})),W()}}),/^@?[a-z0-9_-]+(@[^\s]+)?$/i.exec(t)&&n.push({key:`go-to-account`,label:(0,k.jsx)(r,{id:`search.quick_action.go_to_account`,defaultMessage:`Go to profile {x}`,values:{x:(0,k.jsxs)(`mark`,{children:[`@`,t.replace(/^@/,``)]})}}),action:()=>{let e=t.replace(/^@/,``);E.push(`/@${e}`),T(p({q:e,type:`account`})),W()}}),s&&x&&n.push({key:`status-search`,label:(0,k.jsx)(r,{id:`search.quick_action.status_search`,defaultMessage:`Posts matching {x}`,values:{x:(0,k.jsx)(`mark`,{children:t})}}),action:()=>{Y(t,`statuses`)}}),n.push({key:`account-search`,label:(0,k.jsx)(r,{id:`search.quick_action.account_search`,defaultMessage:`Profiles matching {x}`,values:{x:(0,k.jsx)(`mark`,{children:t})}}),action:()=>{Y(t,`accounts`)}})),H(n)},[x,T,W,E,Y]),ne=(0,D.useCallback)(()=>{F(``),H([]),B(-1),W()},[W]),X=(0,D.useCallback)(e=>{switch(e.key){case`Escape`:e.preventDefault(),N.current?.focus(),R(!1);break;case`ArrowDown`:e.preventDefault(),L||R(!0),J.length>0&&B(Math.min(z+1,J.length-1));break;case`ArrowUp`:e.preventDefault(),J.length>0&&B(Math.max(z-1,-1));break;case`Enter`:e.preventDefault(),z===-1?Y(P):J.length>0&&J[z]?.action(e);break;case`Delete`:if(z>-1&&J.length>0){let t=J[z];typeof t?.forget==`function`&&(e.preventDefault(),t.forget(e))}}},[L,J,z,Y,P]),re=(0,D.useCallback)(()=>
1{if(R(!0),B(-1),N.current&&!e){let{left:e,right:t}=N.current.getBoundingClientRect();(e<0||t>(window.innerWidth||document.documentElement.clientWidth))&&N.current.scrollIntoView()}},[R,B,e]),ie=(0,D.useCallback)(()=>{B(-1)},[B]),Z=(0,D.useCallback)(e=>()=>{B(e)},[]),Q=(0,D.useRef)(null);(0,D.useEffect)(()=>{if(L){function e(e){let t=Q.current;(!t||t!==e.target&&!t.contains(e.target))&&R(!1)}return document.addEventListener(`focusin`,e),document.addEventListener(`click`,e),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`click`,e)}}return()=>null},[L]);let $=(0,D.useId)();return(0,k.jsxs)(`form`,{role:`search`,ref:Q,className:(0,O.default)(`search`,{active:L}),children:[(0,k.jsx)(`input`,{ref:w(N,c()?U:null),className:`search__input`,type:`text`,inputMode:`search`,placeholder:n.formatMessage(x?A.placeholderSignedIn:A.placeholder),"aria-label":n.formatMessage(x?A.placeholderSignedIn:A.placeholder),value:P,onChange:te,onKeyDown:X,onFocus:re,onBlur:ie}),(0,k.jsx)(M,{hasValue:I,onClick:ne}),(0,k.jsxs)(`div`,{className:`search__popout`,role:`dialog`,tabIndex:-1,"aria-labelledby":$,onKeyDown:X,children:[!I&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`h4`,{children:(0,k.jsx)(r,{id:`search_popout.recent`,defaultMessage:`Recent searches`})}),(0,k.jsx)(`div`,{className:`search__popout__menu`,children:q.length>0?q.map(({label:e,key:t,action:n,forget:r},i)=>(0,k.jsxs)(`div`,{tabIndex:0,role:`button`,onMouseDown:n,onFocus:Z(i),className:(0,O.default)(`search__popout__menu__item search__popout__menu__item--flex`,{selected:z===i}),children:[(0,k.jsx)(`span`,{children:e}),(0,k.jsx)(`button`,{className:`icon-button`,onMouseDown:r,type:`button`,children:(0,k.jsx)(S,{id:`times`,icon:l})})]},t)):(0,k.jsx)(`div`,{className:`search__popout__menu__message`,children:(0,k.jsx)(r,{id:`search.no_recent_searches`,defaultMessage:`No recent searches`})})})]}),V.length>0&&(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(`h4`,{children:(0,k.jsx)(r,{id:`search_popout.quick_actions`,defaultMessage:`Quick actions`})}),(0,k.jsx)(`div`,{className:`search__popout__menu`,children:V.map(({key:e,label:t,action:n},r)=>(0,k.jsx)(`button`,{onMouseDown:n,onFocus:Z(r),className:(0,O.default)(`search__popout__menu__item`,{selected:z===r}),type:`button`,children:t},e))})]}),(0,k.jsx)(`h4`,{id:$,children:(0,k.jsx)(r,{id:`search_popout.options`,defaultMessage:`Search options`})}),s&&x?(0,k.jsx)(`div`,{className:`search__popout__menu`,children:K.map(({key:e,label:t,action:n},r)=>{let i=(V.length||o.length)+r;return(0,k.jsx)(`button`,{onMouseDown:n,onFocus:Z(i),className:(0,O.default)(`search__popout__menu__item`,{selected:z===i}),type:`button`,children:t},e)})}):(0,k.jsx)(`div`,{className:`search__popout__menu__message`,children:s?(0,k.jsx)(r,{id:`search_popout.full_text_search_logged_out_message`,defaultMessage:`Only available when logged in.`}):(0,k.jsx)(r,{id:`search_popout.full_text_search_disabled_message`,defaultMessage:`Not available on {domain}.`,values:{domain:ee}})})]})]})};export{N as t}; 2//# sourceMappingURL=search-BrkIxJr8.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.