1import{n as e}from"./QueryClientProvider-CVXxMI2K.js";import{t}from"./useQuery-CnmfvLvV.js";import{At as n,Zt as r,wt as i}from"./index-Cdnc4EdP.js";var a=e=>e.toLowerCase().trim().replace(/[^a-z0-9\s-]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),o=()=>t({queryKey:[`blog-categories`],queryFn:async()=>{let{data:e,error:t}=await i.from(`blog_categories`).select(`*`).order(`sort_order`);if(t)throw t;return e}}),s=()=>t({queryKey:[`admin-blog-posts`],queryFn:async()=>{let{data:e,error:t}=await i.from(`blog_posts`).select(`*`).order(`updated_at`,{ascending:!1});if(t)throw t;return e}}),c=e=>t({queryKey:[`admin-blog-post`,e],queryFn:async()=>{if(!e||e===`new`)return null;let{data:t,error:n}=await i.from(`blog_posts`).select(`*`).eq(`id`,e).maybeSingle();if(n)throw n;return t},enabled:e!==void 0}),l=e=>t({queryKey:[`blog-posts`,e?.categorySlug??`all`],queryFn:async()=>{let t;if(e?.categorySlug){let{data:n}=await i.from(`blog_categories`).select(`id`).eq(`slug`,e.categorySlug).maybeSingle();n&&(t=n.id)}let n=i.from(`blog_posts`).select(`*`).eq(`status`,`published`).order(`published_at`,{ascending:!1});t&&(n=n.eq(`category_id`,t));let{data:r,error:a}=await n;if(a)throw a;return r}}),u=e=>t({queryKey:[`blog-post`,e],queryFn:async()=>{if(!e)return null;let{data:t,error:n}=await i.from(`blog_posts`).select(`*`).eq(`slug`,e).eq(`status`,`published`).maybeSingle();if(n)throw n;return t},enabled:!!e}),d=()=>{let t=e();return r({mutationFn:async e=>{let{id:t,...n}=e,r={...n};if(r.status===`published`&&!r.published_at&&(r.published_at=new Date().toISOString()),t){let{data:e,error:n}=await i.from(`blog_posts`).update(r).eq(`id`,t).select().single();if(n)throw n;return e}let{data:a,error:o}=await i.from(`blog_posts`).insert(r).select().single();if(o)throw o;return a},onSuccess:()=>{t.invalidateQueries({queryKey:[`admin-blog-posts`]}),t.invalidateQueries({queryKey:[`admin-blog-post`]}),t.invalidateQueries({queryKey:[`blog-posts`]}),n.success(`Saved`)},onError:e=>n.error(e.message||`Save failed`)})},f=()=>{let t=e();return r({mutationFn:async e=>{let{error:t}=await i.from(`blog_posts`).delete().eq(`id`,e);if(t)throw t},onSuccess:()=>{t.invalidateQueries({queryKey:[`admin-blog-posts`]}),n.success(`Post deleted`)},onError:e=>n.error(e.message||`Delete failed`)})},p=(e,n=3)=>t({queryKey:[`blog-related`,e?.id,e?.category_id,n],queryFn:async()=>{if(!e)return[];let t=i.from(`blog_posts`).select(`*`).eq(`status`,`published`).neq(`id`,e.id).order(`published_at`,{ascending:!1}).limit(n);e.category_id&&(t=t.eq(`category_id`,e.category_id));let{data:r,error:a}=await t;if(a)throw a;let o=r??[];if(o.length>=n)return o;let s=[e.id,...o.map(e=>e.id)],{data:c}=await i.from(`blog_posts`).select(`*`).eq(`status`,`published`).not(`id`,`in`,`(${s.join(`,`)})`).order(`published_at`,{ascending:!1}).limit(n-o.length);return[...o,...c??[]]},enabled:!!e});export{f as a,p as c,o as i,d as l,c as n,u as o,s as r,l as s,a 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.