1import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{i as t,r as n,t as r}from"./react-B_hkAARH.js";import{t as i}from"./utils-CrJOQCAS.js";import{T as a,n as o}from"./MIcon-BWaAUHtV.js";import{t as s}from"./circle-alert-DEicVsAF.js";import{n as c,r as l}from"./triangle-alert-DktphxFd.js";var u=e(t()),d=e(n()),f=r(),p=(0,u.createContext)(null),m={success:{icon:l,tint:`text-emerald-600 dark:text-emerald-400`,rail:`bg-emerald-500`},error:{icon:a,tint:`text-red-600 dark:text-red-400`,rail:`bg-red-500`},warning:{icon:s,tint:`text-amber-600 dark:text-amber-400`,rail:`bg-amber-500`},info:{icon:c,tint:`text-blue-600 dark:text-blue-400`,rail:`bg-blue-500`},default:{icon:c,tint:`text-foreground/70`,rail:`bg-foreground/30`}},h=0,g=()=>`t_${Date.now().toString(36)}_${++h}`;function _({children:e,duration:t=4e3}){let[n,r]=(0,u.useState)([]),a=(0,u.useRef)(new Map),s=(0,u.useCallback)(e=>{r(t=>t.filter(t=>t.id!==e));let t=a.current.get(e);t&&(clearTimeout(t),a.current.delete(e))},[]),c=(0,u.useCallback)(e=>{let n=g(),i={id:n,variant:e.variant||`default`,title:e.title,description:e.description,action:e.action||null,duration:e.duration??t};if(r(e=>[...e,i]),i.duration>0){let e=setTimeout(()=>s(n),i.duration);a.current.set(n,e)}return n},[t,s]),l=(0,u.useMemo)(()=>({show:e=>c(typeof e==`string`?{description:e}:e),success:(e,t={})=>c({variant:`success`,...typeof e==`string`?{description:e}:e,...t}),error:(e,t={})=>c({variant:`error`,...typeof e==`string`?{description:e}:e,...t}),warning:(e,t={})=>c({variant:`warning`,...typeof e==`string`?{description:e}:e,...t}),info:(e,t={})=>c({variant:`info`,...typeof e==`string`?{description:e}:e,...t}),dismiss:s}),[c,s]);return(0,u.useEffect)(()=>()=>{a.current.forEach(e=>clearTimeout(e)),a.current.clear()},[]),(0,f.jsxs)(p.Provider,{value:l,children:[e,(0,f.jsx)(`style`,{children:` 2 @keyframes toast-rail { from { transform: scaleX(1) } to { transform: scaleX(0) } } 3 @media (prefers-reduced-motion: reduce) { 4 @keyframes toast-rail { from { transform: scaleX(1) } to { transform: scaleX(1) } } 5 } 6 `}),typeof document<`u`&&(0,d.createPortal)((0,f.jsx)(`div`,{className:i(`fixed z-[200] flex flex-col items-stretch sm:items-end gap-2 pointer-events-none`,`inset-x-3 bottom-20 sm:inset-x-auto sm:right-5 sm:bottom-5`,`pb-[env(safe-area-inset-bottom)] sm:pb-0`),children:n.map(e=>{let t=m[e.variant]||m.default,n=t.icon;return(0,f.jsxs)(`div`,{role:`status`,"aria-live":`polite`,className:i(`group pointer-events-auto relative overflow-hidden w-full sm:w-auto sm:min-w-[300px] sm:max-w-[380px]`,`flex items-start gap-2.5 rounded-xl border border-border bg-card sh-elev-2 px-3.5 py-3`,`animate-in fade-in slide-in-from-bottom-3 duration-200 ease-out`),children:[(0,f.jsx)(n,{className:i(`shrink-0 size-[17px] mt-[1px]`,t.tint),"aria-hidden":`true`}),(0,f.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[e.title&&(0,f.jsx)(`p`,{className:`text-[13px] font-semibold text-foreground leading-snug`,children:e.title}),e.description&&(0,f.jsx)(`p`,{className:i(`text-[13px] leading-snug`,e.title?`mt-0.5 text-muted-foreground`:`text-foreground`),children:e.description}),e.action&&(0,f.jsx)(`div`,{className:`mt-2`,children:e.action})]}),(0,f.jsx)(`button`,{type:`button`,onClick:()=>s(e.id),className:i(`shrink-0 -mr-1 -mt-0.5 rounded-md p-1 text-muted-foreground/50 transition-all`,`opacity-0 group-hover:opacity-100 focus-visible:opacity-100`,`hover:text-foreground hover:bg-foreground
6/5`),"aria-label":`Dismiss`,children:(0,f.jsx)(o,{className:`size-3.5`})}),e.duration>0&&(0,f.jsx)(`span`,{className:i(`absolute left-0 bottom-0 h-[2px] w-full origin-left`,t.rail),style:{animation:`toast-rail ${e.duration}ms linear forwards`},"aria-hidden":`true`})]},e.id)})}),document.body)]})}function v(){return(0,u.useContext)(p)||{show:()=>{},success:()=>{},error:()=>{},warning:()=>{},info:()=>{},dismiss:()=>{}}}export{v as n,_ as t};
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.