diff --git a/docs/api.html b/docs/api.html index 185c329b..f26d5531 100644 --- a/docs/api.html +++ b/docs/api.html @@ -7,9 +7,9 @@ - - - + + +
diff --git a/docs/api/undocumented.json b/docs/api/undocumented.json index 363c1f35..0d0871a4 100644 --- a/docs/api/undocumented.json +++ b/docs/api/undocumented.json @@ -63,6 +63,13 @@ "description": "Upload an audio file without starting transcription", "tag": "transcription" }, + { + "method": "POST", + "path": "/api/v1/transcription/upload-video", + "summary": "Upload video file for transcription", + "description": "Upload a video file, extract audio from it using ffmpeg, and create a transcription job", + "tag": "transcription" + }, { "method": "POST", "path": "/api/v1/transcription/submit", diff --git a/docs/assets/DocsLayout-BDGdyfmi.js b/docs/assets/DocsLayout-CwjFaNb7.js similarity index 97% rename from docs/assets/DocsLayout-BDGdyfmi.js rename to docs/assets/DocsLayout-CwjFaNb7.js index beebe9a3..77861c30 100644 --- a/docs/assets/DocsLayout-BDGdyfmi.js +++ b/docs/assets/DocsLayout-CwjFaNb7.js @@ -1 +1 @@ -import{r as t,j as s,G as c}from"./styles-DAhCVYAn.js";function h({active:e="intro",children:i}){const[n,r]=t.useState(!1);return s.jsxs("div",{className:"min-h-screen bg-white",children:[s.jsx("header",{className:"api-topbar",children:s.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[s.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none min-w-0",children:[s.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),s.jsx("span",{className:"text-gray-300",children:"/"}),s.jsx("span",{className:"text-sm text-gray-600",children:"Docs"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Toggle sidebar",onClick:()=>r(l=>!l),children:s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:s.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),s.jsx("div",{className:"hidden md:block",children:s.jsx(c,{})})]})]})}),s.jsxs("main",{className:"container-narrow py-10",children:[n&&s.jsx("div",{className:"md:hidden mb-4 border border-gray-200 rounded-lg p-3",children:s.jsx(d,{active:e,onClick:()=>r(!1)})}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[240px_minmax(0,1fr)] gap-8",children:[s.jsx("aside",{className:"api-sidebar",children:s.jsxs("div",{className:"sticky top-24 pr-6",children:[s.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Docs"}),s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"space-y-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:a(e==="intro"),children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:a(e==="installation"),children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/diarization.html",className:a(e==="diarization"),children:"Diarization"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/contributing.html",className:a(e==="contributing"),children:"Contributing"})})]})})]})}),s.jsx("section",{className:"space-y-8 docs-prose",children:i})]})]})]})}function a(e){return`block rounded px-2 py-1 ${e?"bg-gray-100 text-gray-900":"text-gray-600 hover:text-gray-900"}`}function d({active:e,onClick:i}){return s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"grid grid-cols-2 gap-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:a(e==="intro"),onClick:i,children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:a(e==="installation"),onClick:i,children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/diarization.html",className:a(e==="diarization"),onClick:i,children:"Diarization"})}),s.jsx("li",{className:"col-span-2",children:s.jsx("a",{href:"/docs/contributing.html",className:a(e==="contributing"),onClick:i,children:"Contributing"})})]})})}export{h as D}; +import{r as t,j as s,G as c}from"./styles-DGJLjUaE.js";function h({active:e="intro",children:i}){const[n,r]=t.useState(!1);return s.jsxs("div",{className:"min-h-screen bg-white",children:[s.jsx("header",{className:"api-topbar",children:s.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[s.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none min-w-0",children:[s.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),s.jsx("span",{className:"text-gray-300",children:"/"}),s.jsx("span",{className:"text-sm text-gray-600",children:"Docs"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Toggle sidebar",onClick:()=>r(l=>!l),children:s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:s.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),s.jsx("div",{className:"hidden md:block",children:s.jsx(c,{})})]})]})}),s.jsxs("main",{className:"container-narrow py-10",children:[n&&s.jsx("div",{className:"md:hidden mb-4 border border-gray-200 rounded-lg p-3",children:s.jsx(d,{active:e,onClick:()=>r(!1)})}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[240px_minmax(0,1fr)] gap-8",children:[s.jsx("aside",{className:"api-sidebar",children:s.jsxs("div",{className:"sticky top-24 pr-6",children:[s.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Docs"}),s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"space-y-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:a(e==="intro"),children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:a(e==="installation"),children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/diarization.html",className:a(e==="diarization"),children:"Diarization"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/contributing.html",className:a(e==="contributing"),children:"Contributing"})})]})})]})}),s.jsx("section",{className:"space-y-8 docs-prose",children:i})]})]})]})}function a(e){return`block rounded px-2 py-1 ${e?"bg-gray-100 text-gray-900":"text-gray-600 hover:text-gray-900"}`}function d({active:e,onClick:i}){return s.jsx("nav",{className:"text-sm",children:s.jsxs("ul",{className:"grid grid-cols-2 gap-2",children:[s.jsx("li",{children:s.jsx("a",{href:"/docs/intro.html",className:a(e==="intro"),onClick:i,children:"Introduction"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/installation.html",className:a(e==="installation"),onClick:i,children:"Installation"})}),s.jsx("li",{children:s.jsx("a",{href:"/docs/diarization.html",className:a(e==="diarization"),onClick:i,children:"Diarization"})}),s.jsx("li",{className:"col-span-2",children:s.jsx("a",{href:"/docs/contributing.html",className:a(e==="contributing"),onClick:i,children:"Contributing"})})]})})}export{h as D}; diff --git a/docs/assets/Window-BTa2N_kG.js b/docs/assets/Window-BJy5jSY4.js similarity index 88% rename from docs/assets/Window-BTa2N_kG.js rename to docs/assets/Window-BJy5jSY4.js index da189404..ad19c371 100644 --- a/docs/assets/Window-BTa2N_kG.js +++ b/docs/assets/Window-BJy5jSY4.js @@ -1 +1 @@ -import{j as s}from"./styles-DAhCVYAn.js";function o({src:e,alt:l,className:a}){return s.jsxs("div",{className:`rounded-2xl shadow-soft overflow-hidden bg-white hover-lift ${a??""}`,children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[s.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),s.jsx("img",{src:e,alt:l,className:"w-full object-cover"})]})}export{o as W}; +import{j as s}from"./styles-DGJLjUaE.js";function o({src:e,alt:l,className:a}){return s.jsxs("div",{className:`rounded-2xl shadow-soft overflow-hidden bg-white hover-lift ${a??""}`,children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[s.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),s.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),s.jsx("img",{src:e,alt:l,className:"w-full object-cover"})]})}export{o as W}; diff --git a/docs/assets/api-bFwG1I4T.js b/docs/assets/api-DHYfZ7Ms.js similarity index 99% rename from docs/assets/api-bFwG1I4T.js rename to docs/assets/api-DHYfZ7Ms.js index 1694cc99..7b0e35b3 100644 --- a/docs/assets/api-bFwG1I4T.js +++ b/docs/assets/api-DHYfZ7Ms.js @@ -1,4 +1,4 @@ -import{r as p,j as e,G as Z,c as ee,R as te}from"./styles-DAhCVYAn.js";function se(){var T,$;const[t,s]=p.useState(null),[n,i]=p.useState(null),[r,c]=p.useState(""),[d,u]=p.useState(null),[f,m]=p.useState(!1);p.useEffect(()=>{fetch("/api/swagger.json").then(a=>a.ok?a.json():Promise.reject(a.statusText)).then(a=>s(a)).catch(a=>i(String(a)))},[]),p.useEffect(()=>{fetch("/api/undocumented.json").then(a=>a.ok?a.json():null).then(a=>a&&u(a)).catch(()=>{})},[]);const N=p.useMemo(()=>{var o;if(!(t!=null&&t.paths))return{};const a=[];for(const[h,v]of Object.entries(t.paths))for(const[b,w]of Object.entries(v)){const S=b.toUpperCase();if(!["GET","POST","PUT","PATCH","DELETE"].includes(S))continue;const E=Array.isArray(w.tags)?w.tags[0]:void 0;a.push({method:S,path:h,summary:w.summary||w.operationId,description:w.description,tag:E,meta:w})}const l={};for(const h of a){const v=h.tag||"General";l[v]||(l[v]=[]),l[v].push(h)}if((o=d==null?void 0:d.endpoints)!=null&&o.length){const h=b=>`${b.method}:${b.path}`,v=new Set(a.map(h));for(const b of d.endpoints){const w=h(b);if(v.has(w))continue;const S=b.tag||"Undocumented";l[S]||(l[S]=[]),l[S].push({...b,meta:{}})}}for(const h of Object.keys(l))l[h].sort((v,b)=>v.path.localeCompare(b.path));return l},[t,d]),x=p.useMemo(()=>{const a=Object.keys(N);if(!(t!=null&&t.tags))return a;const l=t.tags.map(o=>o.name);return[...l.filter(o=>a.includes(o)),...a.filter(o=>!l.includes(o))]},[t,N]);return e.jsxs("div",{className:"min-h-screen bg-white",children:[e.jsx("header",{className:"api-topbar",children:e.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[e.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none min-w-0",children:[e.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),e.jsx("span",{className:"text-gray-300",children:"/"}),e.jsx("span",{className:"text-sm text-gray-600",children:"API Reference"})]}),e.jsxs("div",{className:"flex items-center gap-2 w-full sm:w-auto",children:[e.jsx("input",{placeholder:"Search endpoints",value:r,onChange:a=>c(a.target.value),className:"w-full sm:w-56 rounded-md border border-gray-300 bg-white px-3 py-1.5 text-sm outline-none focus:ring-2 focus:ring-gray-300"}),e.jsx("button",{className:"sm:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50",onClick:()=>m(a=>!a),"aria-label":"Toggle tags",children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx("div",{className:"hidden md:block",children:e.jsx(Z,{})})]})]})}),e.jsxs("main",{className:"container-narrow py-10",children:[f&&e.jsxs("div",{className:"sm:hidden mb-4 border border-gray-200 rounded-lg p-3",children:[e.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Tags"}),e.jsx("ul",{className:"grid grid-cols-2 gap-2 text-sm",children:x.length>0?x.map(a=>e.jsx("li",{children:e.jsx("a",{href:`#tag-${encodeURIComponent(a)}`,className:"text-gray-700 hover:text-gray-900",onClick:()=>m(!1),children:a})},`m-${a}`)):e.jsx("li",{className:"text-gray-400",children:"Loading tags…"})})]}),n&&e.jsxs("p",{className:"text-red-600",children:["Failed to load: ",n]}),e.jsxs("div",{className:"mb-10",children:[e.jsx("h1",{className:"text-[28px] font-semibold tracking-tight text-gray-900",children:((T=t==null?void 0:t.info)==null?void 0:T.title)||"Scriberr API"}),e.jsxs("div",{className:"mt-1 text-sm text-gray-600",children:["Version ",(($=t==null?void 0:t.info)==null?void 0:$.version)||"1.0.0"]}),t&&e.jsx(re,{doc:t})]}),e.jsx(ne,{}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[240px_minmax(0,1fr)] gap-8 mt-10",children:[e.jsx("aside",{className:"api-sidebar",children:e.jsxs("div",{className:"sticky top-24 pr-6",children:[e.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Tags"}),e.jsx("ul",{className:"space-y-2 text-sm min-h-[200px]",children:x.length>0?x.map(a=>e.jsx("li",{children:e.jsx("a",{href:`#tag-${encodeURIComponent(a)}`,className:"text-gray-600 hover:text-gray-900",children:a})},a)):e.jsx("li",{className:"text-gray-400",children:"Loading tags…"})})]})}),e.jsx("div",{children:e.jsx("section",{className:"space-y-12",children:t?x.map(a=>{const l=(N[a]||[]).filter(o=>{const h=r.trim().toLowerCase();return h?o.path.toLowerCase().includes(h)||o.method.toLowerCase().includes(h)||(o.summary||"").toLowerCase().includes(h)||(o.description||"").toLowerCase().includes(h):!0});return l.length?e.jsxs("div",{id:`tag-${a}`,children:[e.jsx("h2",{className:"text-base font-semibold mb-3 text-gray-900",children:a}),e.jsx("div",{className:"space-y-4",children:l.map(o=>e.jsx(ae,{ep:o,doc:t},`${o.method}-${o.path}`))})]},a):null}):e.jsx("div",{className:"text-gray-500",children:"Loading API…"})})})]})]})]})}function re({doc:t}){var r;const s=typeof window<"u"?window.location:{protocol:"http:",host:"localhost:8080"},n=t.basePath||"",i=t.openapi?Array.isArray(t.servers)&&((r=t.servers[0])==null?void 0:r.url)||`${s.protocol}//${s.host}`:`${s.protocol}//${t.host||s.host}${n}`;return e.jsxs("div",{className:"mt-2 text-sm text-gray-600",children:["Base URL: ",e.jsx("code",{className:"text-gray-900",children:i})]})}function ne(){const s=`${typeof window<"u"?window.location.origin:"http://localhost:8080"}/api/v1`,n=["curl -X POST",`'${s}/auth/login'`,"-H 'Content-Type: application/json'",`-d '{"username":"alice","password":"your-password"}'`].join(" "),i=["curl -X GET",`'${s}/transcription/list'`,"-H 'Authorization: Bearer YOUR_JWT'"].join(" "),r=["curl -X GET",`'${s}/transcription/list'`,"-H 'X-API-Key: YOUR_API_KEY'"].join(" ");return e.jsx("section",{className:"container-narrow",children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-6",children:[e.jsxs("article",{className:"api-card",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"Authentication"}),e.jsxs("p",{className:"text-sm text-gray-600 mt-2",children:["Protected endpoints accept either a Bearer JWT in the ",e.jsx("code",{children:"Authorization"})," header or an API key via the ",e.jsx("code",{children:"X-API-Key"})," header. Some endpoints require JWT specifically (user account and LLM config)."]}),e.jsxs("ul",{className:"list-disc pl-5 text-sm text-gray-600 mt-2",children:[e.jsxs("li",{children:["JWT-only: ",e.jsx("code",{children:"/auth/change-password"}),", ",e.jsx("code",{children:"/auth/change-username"}),", ",e.jsx("code",{children:"/api-keys"}),", ",e.jsx("code",{children:"/llm/config"})]}),e.jsx("li",{children:"API key or JWT: transcription, chat, notes, summaries, summarize, admin"})]})]}),e.jsxs("article",{className:"api-card",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"Get a JWT"}),e.jsx("p",{className:"text-sm text-gray-600 mt-2",children:"Authenticate and use the token with the Authorization header."}),e.jsx("div",{className:"mt-3",children:e.jsx(B,{curl:n,js:I(n),wrap:!0})})]}),e.jsxs("article",{className:"api-card md:col-span-1",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"Use JWT"}),e.jsx("div",{className:"mt-3",children:e.jsx(B,{curl:i,js:I(i),wrap:!0})})]}),e.jsxs("article",{className:"api-card md:col-span-1",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"Use API Key"}),e.jsx("div",{className:"mt-3",children:e.jsx(B,{curl:r,js:I(r),wrap:!0})})]})]})})}function ae({ep:t,doc:s}){var S,E,J,M,q;const n=p.useMemo(()=>oe(`${t.method}-${t.path}`),[t.method,t.path]),[i,r]=p.useState(!1),[c,d]=p.useState(!1),[u,f]=p.useState(!1),m=Array.isArray((S=t.meta)==null?void 0:S.parameters)?t.meta.parameters:[],N=(E=t.meta)==null?void 0:E.requestBody,x=((J=t.meta)==null?void 0:J.responses)||{},T=p.useMemo(()=>{var R;const y=Array.isArray((R=t.meta)==null?void 0:R.security)?t.meta.security:[],A=[];for(const k of y)k&&typeof k=="object"&&A.push(...Object.keys(k));return[...new Set(A)]},[t.meta]),$=s.securityDefinitions||((M=s.components)==null?void 0:M.securitySchemes)||{},a=le(N,s)||de(t.meta),l=a&&Object.keys(a.content||{})[0],o=l?(q=a.content[l])==null?void 0:q.schema:void 0,h=o?O(o,s.components):void 0,v=T[0],b=ue(v,$),w=me(t.method,t.path,l,h,b,m);return e.jsxs("article",{id:n,className:"api-card",children:[e.jsx("button",{onClick:()=>r(y=>!y),className:"w-full text-left",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(ie,{method:t.method}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("code",{className:"text-sm text-gray-900 truncate",children:t.path}),e.jsx("a",{href:`#${n}`,title:"Permalink",className:"ml-auto text-gray-400 hover:text-gray-700",children:"#"})]}),t.summary&&e.jsx("div",{className:"text-[13px] text-gray-600 mt-0.5 truncate",children:t.summary})]})]})}),i&&e.jsxs("div",{className:"pt-4",children:[t.description&&e.jsx("p",{className:"text-sm text-gray-600",children:t.description}),!!T.length&&e.jsxs("div",{className:"mt-3 text-xs text-gray-600 flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-gray-500",children:"Auth:"}),T.map(y=>e.jsx(pe,{name:y,def:$==null?void 0:$[y]},y))]}),!!m.length&&e.jsxs("div",{className:"mt-4",children:[e.jsx("h4",{className:"api-section-title mb-2",children:"Parameters"}),e.jsx(ce,{params:c?m:m.slice(0,8)}),m.length>8&&e.jsx("button",{onClick:()=>d(y=>!y),className:"mt-2 text-xs text-gray-600 hover:text-gray-900",children:c?"Show less":`Show all ${m.length} parameters`})]}),o&&e.jsxs("div",{className:"mt-3",children:[e.jsxs("h4",{className:"api-section-title mb-2",children:["Request Body ",e.jsxs("span",{className:"text-gray-500",children:["(",l,")"]})]}),e.jsx(P,{text:L(h)})]}),x&&Object.keys(x).length>0&&e.jsxs("div",{className:"mt-3",children:[e.jsx("h4",{className:"api-section-title mb-2",children:"Response"}),(()=>{var W;const y=Object.entries(x),A=y.findIndex(([C])=>C==="200"),R=y[A>=0?A:0],k=y.filter((C,g)=>g!==(A>=0?A:0)),[D,j]=R,z=(j==null?void 0:j.content)||{},G=Object.keys(z)[0],H=G?(W=z[G])==null?void 0:W.schema:j==null?void 0:j.schema,V=H?O(H,s.components):(j==null?void 0:j.description)||"";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rounded-md border border-gray-200 p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-gray-600 mb-2",children:[e.jsxs("span",{className:"status-pill",children:["HTTP ",D]}),(j==null?void 0:j.description)&&e.jsx("span",{children:j.description})]}),e.jsx(P,{text:L(V)})]}),k.length>0&&e.jsx("button",{onClick:()=>f(C=>!C),className:"mt-2 text-xs text-gray-600 hover:text-gray-900",children:u?"Hide other responses":`Show ${k.length} more`}),u&&e.jsx("div",{className:"space-y-2 mt-2",children:k.map(([C,g])=>{var F;const K=(g==null?void 0:g.content)||{},_=Object.keys(K)[0],X=_?(F=K[_])==null?void 0:F.schema:g==null?void 0:g.schema,Q=X?O(X,s.components):(g==null?void 0:g.description)||"";return e.jsxs("div",{className:"rounded-md border border-gray-200 p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-gray-600 mb-2",children:[e.jsxs("span",{className:"status-pill",children:["HTTP ",C]}),(g==null?void 0:g.description)&&e.jsx("span",{children:g.description})]}),e.jsx(P,{text:L(Q)})]},C)})})]})})()]}),e.jsxs("div",{className:"mt-3",children:[e.jsx("h4",{className:"api-section-title mb-2",children:"Examples"}),e.jsx(B,{curl:w,js:I(w)})]})]})]})}function P({text:t,wrap:s}){const n=typeof t=="string"?t:JSON.stringify(t,null,2),[i,r]=p.useState(!1);return e.jsxs("div",{className:"relative",children:[e.jsx("pre",{className:`codeblock ${s?"codeblock-wrap":""}`,children:e.jsx("code",{children:n})}),e.jsx("button",{onClick:()=>{navigator.clipboard.writeText(n).then(()=>{r(!0),setTimeout(()=>r(!1),1200)})},className:"absolute top-2 right-2 inline-flex items-center gap-2 rounded-md border border-gray-300 bg-white text-gray-700 px-2 py-1 text-[11px] hover:bg-gray-50",children:i?"Copied":"Copy"})]})}function B({curl:t,js:s,wrap:n}){const[i,r]=p.useState("curl");return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 inline-flex rounded-md border border-gray-200 bg-white p-0.5 text-xs",children:[e.jsx("button",{onClick:()=>r("curl"),className:`px-2 py-1 rounded ${i==="curl"?"bg-gray-100 text-gray-900":"text-gray-600"}`,children:"cURL"}),e.jsx("button",{onClick:()=>r("js"),className:`px-2 py-1 rounded ${i==="js"?"bg-gray-100 text-gray-900":"text-gray-600"}`,children:"JavaScript"})]}),i==="curl"?e.jsx(P,{text:t,wrap:n}):e.jsx(P,{text:s,wrap:n})]})}function ie({method:t}){const n={GET:"bg-emerald-50 text-emerald-700 ring-emerald-200",POST:"bg-blue-50 text-blue-700 ring-blue-200",PUT:"bg-amber-50 text-amber-700 ring-amber-200",PATCH:"bg-cyan-50 text-cyan-700 ring-cyan-200",DELETE:"bg-rose-50 text-rose-700 ring-rose-200"}[t]||"bg-gray-100 text-gray-700 ring-gray-200";return e.jsx("span",{className:`pill ${n} min-w-[54px] text-center`,children:t})}function ce({params:t}){const s={path:[],query:[],header:[],cookie:[],body:[]};for(const i of t){const r=(i.in||"other").toLowerCase();s[r]||(s[r]=[]),s[r].push(i)}const n=["path","query","header","cookie"];return e.jsx("div",{className:"space-y-3",children:n.map(i=>s[i]&&s[i].length?e.jsxs("div",{children:[e.jsxs("div",{className:"text-[11px] font-medium text-gray-500 mb-1",children:[i.charAt(0).toUpperCase()+i.slice(1)," parameters"]}),e.jsx("ul",{className:"space-y-1",children:s[i].map(r=>{const c=r.schema||{},d=c.type||(c.$ref?U(c.$ref):r.type||""),u=[];(c.default!==void 0||r.default!==void 0)&&u.push(`default: ${c.default??r.default}`),c.enum&&u.push(`enum: ${(c.enum||[]).join(", ")}`);const f=[r.description,...u].filter(Boolean).join(" — ");return e.jsxs("li",{className:"text-xs text-gray-700",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("code",{className:"px-1 py-0.5 rounded bg-gray-100 border border-gray-200 text-gray-900",children:r.name}),e.jsx("span",{className:"text-gray-500",children:d}),r.required&&e.jsx("span",{className:"text-gray-500",children:"• required"})]}),f&&e.jsxs("span",{className:"text-gray-600",children:[" — ",f]})]},`${r.name}-${r.in}`)})})]},i):null)})}function oe(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")}function U(t){const s=t.match(/#\/components\/(schemas|requestBodies)\/(.+)$/);return s?s[2]:t}function Y(t,s){var i,r;if(!t||!t.$ref)return t;const n=U(t.$ref);return((i=s==null?void 0:s.schemas)==null?void 0:i[n])||((r=s==null?void 0:s.requestBodies)==null?void 0:r[n])||t}function le(t,s){if(t)return t.$ref?Y(t,s.components):t}function de(t){if(!(t!=null&&t.parameters))return;const s=t.parameters.find(n=>n.in==="body");if(s)return{content:{"application/json":{schema:s.schema||{}}}}}function O(t,s,n=0,i=new Set){if(!t)return"";if(n>8)return"…";if(t.example!==void 0)return t.example;if(t.$ref){const c=t.$ref,d=U(c);return i.has(d)?`{circular:${d}}`:(i.add(d),O(Y(t,s),s,n+1,i))}const r=t.type;if(t.examples&&Array.isArray(t.examples)&&t.examples.length)return t.examples[0];if(r==="object"||t.properties&&typeof t.properties=="object"){const c={},d=t.properties||{};let u=0;for(const[f,m]of Object.entries(d))if(c[f]=O(m,s,n+1,new Set(i)),++u>15)break;return c}if(r==="array")return[O(t.items||{},s,n+1,new Set(i))];if(t.enum&&Array.isArray(t.enum))return t.enum[0];switch(r){case"integer":case"number":return 123;case"boolean":return!0;case"string":default:return(t==null?void 0:t.format)==="date-time"?new Date().toISOString():"string"}}function L(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}function me(t,s,n,i,r,c){const d=typeof window<"u"?window.location.origin:"http://localhost:8080",u=(c||[]).filter(x=>x.in==="query"),f=t==="GET"&&u.length?"?"+u.map(x=>`${encodeURIComponent(x.name)}=${encodeURIComponent(ge(x))}`).join("&"):"",m=`${d}${s}${f}`,N=["curl","-X",t,`'${m}'`];if(r&&r.length)for(const x of r)N.push("-H",`'${x}'`);return n&&N.push("-H",`'Content-Type: ${n}'`),i!==void 0&&N.push("-d",`'${JSON.stringify(i)}'`),N.join(" ")}function I(t){try{const s=t.match(/-X\s+(GET|POST|PUT|PATCH|DELETE)/i),n=t.match(/'https?:[^']+'/),i=/-H\s+'([^']+)'/g,r=t.match(/-d\s+'([^']+)'/),c=s?s[1].toUpperCase():"GET",d=n?n[0].slice(1,-1):"",u={};let f;for(;(f=i.exec(t))!==null;){const[x,...T]=f[1].split(":"),$=T.join(":").trim();u[x.trim()]=$}const m=r?r[1]:void 0;return[`const res = await fetch('${d}', {`,` method: '${c}',`,Object.keys(u).length?` headers: ${JSON.stringify(u,null,2).replace(/\n/g,` +import{r as p,j as e,G as Z,c as ee,R as te}from"./styles-DGJLjUaE.js";function se(){var T,$;const[t,s]=p.useState(null),[n,i]=p.useState(null),[r,c]=p.useState(""),[d,u]=p.useState(null),[f,m]=p.useState(!1);p.useEffect(()=>{fetch("/api/swagger.json").then(a=>a.ok?a.json():Promise.reject(a.statusText)).then(a=>s(a)).catch(a=>i(String(a)))},[]),p.useEffect(()=>{fetch("/api/undocumented.json").then(a=>a.ok?a.json():null).then(a=>a&&u(a)).catch(()=>{})},[]);const N=p.useMemo(()=>{var o;if(!(t!=null&&t.paths))return{};const a=[];for(const[h,v]of Object.entries(t.paths))for(const[b,w]of Object.entries(v)){const S=b.toUpperCase();if(!["GET","POST","PUT","PATCH","DELETE"].includes(S))continue;const E=Array.isArray(w.tags)?w.tags[0]:void 0;a.push({method:S,path:h,summary:w.summary||w.operationId,description:w.description,tag:E,meta:w})}const l={};for(const h of a){const v=h.tag||"General";l[v]||(l[v]=[]),l[v].push(h)}if((o=d==null?void 0:d.endpoints)!=null&&o.length){const h=b=>`${b.method}:${b.path}`,v=new Set(a.map(h));for(const b of d.endpoints){const w=h(b);if(v.has(w))continue;const S=b.tag||"Undocumented";l[S]||(l[S]=[]),l[S].push({...b,meta:{}})}}for(const h of Object.keys(l))l[h].sort((v,b)=>v.path.localeCompare(b.path));return l},[t,d]),x=p.useMemo(()=>{const a=Object.keys(N);if(!(t!=null&&t.tags))return a;const l=t.tags.map(o=>o.name);return[...l.filter(o=>a.includes(o)),...a.filter(o=>!l.includes(o))]},[t,N]);return e.jsxs("div",{className:"min-h-screen bg-white",children:[e.jsx("header",{className:"api-topbar",children:e.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[e.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none min-w-0",children:[e.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),e.jsx("span",{className:"text-gray-300",children:"/"}),e.jsx("span",{className:"text-sm text-gray-600",children:"API Reference"})]}),e.jsxs("div",{className:"flex items-center gap-2 w-full sm:w-auto",children:[e.jsx("input",{placeholder:"Search endpoints",value:r,onChange:a=>c(a.target.value),className:"w-full sm:w-56 rounded-md border border-gray-300 bg-white px-3 py-1.5 text-sm outline-none focus:ring-2 focus:ring-gray-300"}),e.jsx("button",{className:"sm:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50",onClick:()=>m(a=>!a),"aria-label":"Toggle tags",children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx("div",{className:"hidden md:block",children:e.jsx(Z,{})})]})]})}),e.jsxs("main",{className:"container-narrow py-10",children:[f&&e.jsxs("div",{className:"sm:hidden mb-4 border border-gray-200 rounded-lg p-3",children:[e.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Tags"}),e.jsx("ul",{className:"grid grid-cols-2 gap-2 text-sm",children:x.length>0?x.map(a=>e.jsx("li",{children:e.jsx("a",{href:`#tag-${encodeURIComponent(a)}`,className:"text-gray-700 hover:text-gray-900",onClick:()=>m(!1),children:a})},`m-${a}`)):e.jsx("li",{className:"text-gray-400",children:"Loading tags…"})})]}),n&&e.jsxs("p",{className:"text-red-600",children:["Failed to load: ",n]}),e.jsxs("div",{className:"mb-10",children:[e.jsx("h1",{className:"text-[28px] font-semibold tracking-tight text-gray-900",children:((T=t==null?void 0:t.info)==null?void 0:T.title)||"Scriberr API"}),e.jsxs("div",{className:"mt-1 text-sm text-gray-600",children:["Version ",(($=t==null?void 0:t.info)==null?void 0:$.version)||"1.0.0"]}),t&&e.jsx(re,{doc:t})]}),e.jsx(ne,{}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[240px_minmax(0,1fr)] gap-8 mt-10",children:[e.jsx("aside",{className:"api-sidebar",children:e.jsxs("div",{className:"sticky top-24 pr-6",children:[e.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Tags"}),e.jsx("ul",{className:"space-y-2 text-sm min-h-[200px]",children:x.length>0?x.map(a=>e.jsx("li",{children:e.jsx("a",{href:`#tag-${encodeURIComponent(a)}`,className:"text-gray-600 hover:text-gray-900",children:a})},a)):e.jsx("li",{className:"text-gray-400",children:"Loading tags…"})})]})}),e.jsx("div",{children:e.jsx("section",{className:"space-y-12",children:t?x.map(a=>{const l=(N[a]||[]).filter(o=>{const h=r.trim().toLowerCase();return h?o.path.toLowerCase().includes(h)||o.method.toLowerCase().includes(h)||(o.summary||"").toLowerCase().includes(h)||(o.description||"").toLowerCase().includes(h):!0});return l.length?e.jsxs("div",{id:`tag-${a}`,children:[e.jsx("h2",{className:"text-base font-semibold mb-3 text-gray-900",children:a}),e.jsx("div",{className:"space-y-4",children:l.map(o=>e.jsx(ae,{ep:o,doc:t},`${o.method}-${o.path}`))})]},a):null}):e.jsx("div",{className:"text-gray-500",children:"Loading API…"})})})]})]})]})}function re({doc:t}){var r;const s=typeof window<"u"?window.location:{protocol:"http:",host:"localhost:8080"},n=t.basePath||"",i=t.openapi?Array.isArray(t.servers)&&((r=t.servers[0])==null?void 0:r.url)||`${s.protocol}//${s.host}`:`${s.protocol}//${t.host||s.host}${n}`;return e.jsxs("div",{className:"mt-2 text-sm text-gray-600",children:["Base URL: ",e.jsx("code",{className:"text-gray-900",children:i})]})}function ne(){const s=`${typeof window<"u"?window.location.origin:"http://localhost:8080"}/api/v1`,n=["curl -X POST",`'${s}/auth/login'`,"-H 'Content-Type: application/json'",`-d '{"username":"alice","password":"your-password"}'`].join(" "),i=["curl -X GET",`'${s}/transcription/list'`,"-H 'Authorization: Bearer YOUR_JWT'"].join(" "),r=["curl -X GET",`'${s}/transcription/list'`,"-H 'X-API-Key: YOUR_API_KEY'"].join(" ");return e.jsx("section",{className:"container-narrow",children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-6",children:[e.jsxs("article",{className:"api-card",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"Authentication"}),e.jsxs("p",{className:"text-sm text-gray-600 mt-2",children:["Protected endpoints accept either a Bearer JWT in the ",e.jsx("code",{children:"Authorization"})," header or an API key via the ",e.jsx("code",{children:"X-API-Key"})," header. Some endpoints require JWT specifically (user account and LLM config)."]}),e.jsxs("ul",{className:"list-disc pl-5 text-sm text-gray-600 mt-2",children:[e.jsxs("li",{children:["JWT-only: ",e.jsx("code",{children:"/auth/change-password"}),", ",e.jsx("code",{children:"/auth/change-username"}),", ",e.jsx("code",{children:"/api-keys"}),", ",e.jsx("code",{children:"/llm/config"})]}),e.jsx("li",{children:"API key or JWT: transcription, chat, notes, summaries, summarize, admin"})]})]}),e.jsxs("article",{className:"api-card",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"Get a JWT"}),e.jsx("p",{className:"text-sm text-gray-600 mt-2",children:"Authenticate and use the token with the Authorization header."}),e.jsx("div",{className:"mt-3",children:e.jsx(B,{curl:n,js:I(n),wrap:!0})})]}),e.jsxs("article",{className:"api-card md:col-span-1",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"Use JWT"}),e.jsx("div",{className:"mt-3",children:e.jsx(B,{curl:i,js:I(i),wrap:!0})})]}),e.jsxs("article",{className:"api-card md:col-span-1",children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-900",children:"Use API Key"}),e.jsx("div",{className:"mt-3",children:e.jsx(B,{curl:r,js:I(r),wrap:!0})})]})]})})}function ae({ep:t,doc:s}){var S,E,J,M,q;const n=p.useMemo(()=>oe(`${t.method}-${t.path}`),[t.method,t.path]),[i,r]=p.useState(!1),[c,d]=p.useState(!1),[u,f]=p.useState(!1),m=Array.isArray((S=t.meta)==null?void 0:S.parameters)?t.meta.parameters:[],N=(E=t.meta)==null?void 0:E.requestBody,x=((J=t.meta)==null?void 0:J.responses)||{},T=p.useMemo(()=>{var R;const y=Array.isArray((R=t.meta)==null?void 0:R.security)?t.meta.security:[],A=[];for(const k of y)k&&typeof k=="object"&&A.push(...Object.keys(k));return[...new Set(A)]},[t.meta]),$=s.securityDefinitions||((M=s.components)==null?void 0:M.securitySchemes)||{},a=le(N,s)||de(t.meta),l=a&&Object.keys(a.content||{})[0],o=l?(q=a.content[l])==null?void 0:q.schema:void 0,h=o?O(o,s.components):void 0,v=T[0],b=ue(v,$),w=me(t.method,t.path,l,h,b,m);return e.jsxs("article",{id:n,className:"api-card",children:[e.jsx("button",{onClick:()=>r(y=>!y),className:"w-full text-left",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(ie,{method:t.method}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("code",{className:"text-sm text-gray-900 truncate",children:t.path}),e.jsx("a",{href:`#${n}`,title:"Permalink",className:"ml-auto text-gray-400 hover:text-gray-700",children:"#"})]}),t.summary&&e.jsx("div",{className:"text-[13px] text-gray-600 mt-0.5 truncate",children:t.summary})]})]})}),i&&e.jsxs("div",{className:"pt-4",children:[t.description&&e.jsx("p",{className:"text-sm text-gray-600",children:t.description}),!!T.length&&e.jsxs("div",{className:"mt-3 text-xs text-gray-600 flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-gray-500",children:"Auth:"}),T.map(y=>e.jsx(pe,{name:y,def:$==null?void 0:$[y]},y))]}),!!m.length&&e.jsxs("div",{className:"mt-4",children:[e.jsx("h4",{className:"api-section-title mb-2",children:"Parameters"}),e.jsx(ce,{params:c?m:m.slice(0,8)}),m.length>8&&e.jsx("button",{onClick:()=>d(y=>!y),className:"mt-2 text-xs text-gray-600 hover:text-gray-900",children:c?"Show less":`Show all ${m.length} parameters`})]}),o&&e.jsxs("div",{className:"mt-3",children:[e.jsxs("h4",{className:"api-section-title mb-2",children:["Request Body ",e.jsxs("span",{className:"text-gray-500",children:["(",l,")"]})]}),e.jsx(P,{text:L(h)})]}),x&&Object.keys(x).length>0&&e.jsxs("div",{className:"mt-3",children:[e.jsx("h4",{className:"api-section-title mb-2",children:"Response"}),(()=>{var W;const y=Object.entries(x),A=y.findIndex(([C])=>C==="200"),R=y[A>=0?A:0],k=y.filter((C,g)=>g!==(A>=0?A:0)),[D,j]=R,z=(j==null?void 0:j.content)||{},G=Object.keys(z)[0],H=G?(W=z[G])==null?void 0:W.schema:j==null?void 0:j.schema,V=H?O(H,s.components):(j==null?void 0:j.description)||"";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rounded-md border border-gray-200 p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-gray-600 mb-2",children:[e.jsxs("span",{className:"status-pill",children:["HTTP ",D]}),(j==null?void 0:j.description)&&e.jsx("span",{children:j.description})]}),e.jsx(P,{text:L(V)})]}),k.length>0&&e.jsx("button",{onClick:()=>f(C=>!C),className:"mt-2 text-xs text-gray-600 hover:text-gray-900",children:u?"Hide other responses":`Show ${k.length} more`}),u&&e.jsx("div",{className:"space-y-2 mt-2",children:k.map(([C,g])=>{var F;const K=(g==null?void 0:g.content)||{},_=Object.keys(K)[0],X=_?(F=K[_])==null?void 0:F.schema:g==null?void 0:g.schema,Q=X?O(X,s.components):(g==null?void 0:g.description)||"";return e.jsxs("div",{className:"rounded-md border border-gray-200 p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[11px] text-gray-600 mb-2",children:[e.jsxs("span",{className:"status-pill",children:["HTTP ",C]}),(g==null?void 0:g.description)&&e.jsx("span",{children:g.description})]}),e.jsx(P,{text:L(Q)})]},C)})})]})})()]}),e.jsxs("div",{className:"mt-3",children:[e.jsx("h4",{className:"api-section-title mb-2",children:"Examples"}),e.jsx(B,{curl:w,js:I(w)})]})]})]})}function P({text:t,wrap:s}){const n=typeof t=="string"?t:JSON.stringify(t,null,2),[i,r]=p.useState(!1);return e.jsxs("div",{className:"relative",children:[e.jsx("pre",{className:`codeblock ${s?"codeblock-wrap":""}`,children:e.jsx("code",{children:n})}),e.jsx("button",{onClick:()=>{navigator.clipboard.writeText(n).then(()=>{r(!0),setTimeout(()=>r(!1),1200)})},className:"absolute top-2 right-2 inline-flex items-center gap-2 rounded-md border border-gray-300 bg-white text-gray-700 px-2 py-1 text-[11px] hover:bg-gray-50",children:i?"Copied":"Copy"})]})}function B({curl:t,js:s,wrap:n}){const[i,r]=p.useState("curl");return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 inline-flex rounded-md border border-gray-200 bg-white p-0.5 text-xs",children:[e.jsx("button",{onClick:()=>r("curl"),className:`px-2 py-1 rounded ${i==="curl"?"bg-gray-100 text-gray-900":"text-gray-600"}`,children:"cURL"}),e.jsx("button",{onClick:()=>r("js"),className:`px-2 py-1 rounded ${i==="js"?"bg-gray-100 text-gray-900":"text-gray-600"}`,children:"JavaScript"})]}),i==="curl"?e.jsx(P,{text:t,wrap:n}):e.jsx(P,{text:s,wrap:n})]})}function ie({method:t}){const n={GET:"bg-emerald-50 text-emerald-700 ring-emerald-200",POST:"bg-blue-50 text-blue-700 ring-blue-200",PUT:"bg-amber-50 text-amber-700 ring-amber-200",PATCH:"bg-cyan-50 text-cyan-700 ring-cyan-200",DELETE:"bg-rose-50 text-rose-700 ring-rose-200"}[t]||"bg-gray-100 text-gray-700 ring-gray-200";return e.jsx("span",{className:`pill ${n} min-w-[54px] text-center`,children:t})}function ce({params:t}){const s={path:[],query:[],header:[],cookie:[],body:[]};for(const i of t){const r=(i.in||"other").toLowerCase();s[r]||(s[r]=[]),s[r].push(i)}const n=["path","query","header","cookie"];return e.jsx("div",{className:"space-y-3",children:n.map(i=>s[i]&&s[i].length?e.jsxs("div",{children:[e.jsxs("div",{className:"text-[11px] font-medium text-gray-500 mb-1",children:[i.charAt(0).toUpperCase()+i.slice(1)," parameters"]}),e.jsx("ul",{className:"space-y-1",children:s[i].map(r=>{const c=r.schema||{},d=c.type||(c.$ref?U(c.$ref):r.type||""),u=[];(c.default!==void 0||r.default!==void 0)&&u.push(`default: ${c.default??r.default}`),c.enum&&u.push(`enum: ${(c.enum||[]).join(", ")}`);const f=[r.description,...u].filter(Boolean).join(" — ");return e.jsxs("li",{className:"text-xs text-gray-700",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("code",{className:"px-1 py-0.5 rounded bg-gray-100 border border-gray-200 text-gray-900",children:r.name}),e.jsx("span",{className:"text-gray-500",children:d}),r.required&&e.jsx("span",{className:"text-gray-500",children:"• required"})]}),f&&e.jsxs("span",{className:"text-gray-600",children:[" — ",f]})]},`${r.name}-${r.in}`)})})]},i):null)})}function oe(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")}function U(t){const s=t.match(/#\/components\/(schemas|requestBodies)\/(.+)$/);return s?s[2]:t}function Y(t,s){var i,r;if(!t||!t.$ref)return t;const n=U(t.$ref);return((i=s==null?void 0:s.schemas)==null?void 0:i[n])||((r=s==null?void 0:s.requestBodies)==null?void 0:r[n])||t}function le(t,s){if(t)return t.$ref?Y(t,s.components):t}function de(t){if(!(t!=null&&t.parameters))return;const s=t.parameters.find(n=>n.in==="body");if(s)return{content:{"application/json":{schema:s.schema||{}}}}}function O(t,s,n=0,i=new Set){if(!t)return"";if(n>8)return"…";if(t.example!==void 0)return t.example;if(t.$ref){const c=t.$ref,d=U(c);return i.has(d)?`{circular:${d}}`:(i.add(d),O(Y(t,s),s,n+1,i))}const r=t.type;if(t.examples&&Array.isArray(t.examples)&&t.examples.length)return t.examples[0];if(r==="object"||t.properties&&typeof t.properties=="object"){const c={},d=t.properties||{};let u=0;for(const[f,m]of Object.entries(d))if(c[f]=O(m,s,n+1,new Set(i)),++u>15)break;return c}if(r==="array")return[O(t.items||{},s,n+1,new Set(i))];if(t.enum&&Array.isArray(t.enum))return t.enum[0];switch(r){case"integer":case"number":return 123;case"boolean":return!0;case"string":default:return(t==null?void 0:t.format)==="date-time"?new Date().toISOString():"string"}}function L(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}function me(t,s,n,i,r,c){const d=typeof window<"u"?window.location.origin:"http://localhost:8080",u=(c||[]).filter(x=>x.in==="query"),f=t==="GET"&&u.length?"?"+u.map(x=>`${encodeURIComponent(x.name)}=${encodeURIComponent(ge(x))}`).join("&"):"",m=`${d}${s}${f}`,N=["curl","-X",t,`'${m}'`];if(r&&r.length)for(const x of r)N.push("-H",`'${x}'`);return n&&N.push("-H",`'Content-Type: ${n}'`),i!==void 0&&N.push("-d",`'${JSON.stringify(i)}'`),N.join(" ")}function I(t){try{const s=t.match(/-X\s+(GET|POST|PUT|PATCH|DELETE)/i),n=t.match(/'https?:[^']+'/),i=/-H\s+'([^']+)'/g,r=t.match(/-d\s+'([^']+)'/),c=s?s[1].toUpperCase():"GET",d=n?n[0].slice(1,-1):"",u={};let f;for(;(f=i.exec(t))!==null;){const[x,...T]=f[1].split(":"),$=T.join(":").trim();u[x.trim()]=$}const m=r?r[1]:void 0;return[`const res = await fetch('${d}', {`,` method: '${c}',`,Object.keys(u).length?` headers: ${JSON.stringify(u,null,2).replace(/\n/g,` `).replace(/^/gm," ")},`:"",m?` body: ${xe(m)?`JSON.stringify(${he(m)})`:`'${m}'`},`:"","});","const data = await res.json();","console.log(data);"].filter(Boolean).join(` `)}catch{return`// Could not convert to fetch. // Original: diff --git a/docs/assets/changelog-DGSZ6MXL.js b/docs/assets/changelog-DWzfAPOu.js similarity index 99% rename from docs/assets/changelog-DGSZ6MXL.js rename to docs/assets/changelog-DWzfAPOu.js index acae1acb..cd09a7a1 100644 --- a/docs/assets/changelog-DGSZ6MXL.js +++ b/docs/assets/changelog-DWzfAPOu.js @@ -1 +1 @@ -import{c as l,j as e,R as x,r,G as m}from"./styles-DAhCVYAn.js";const g=[{version:"1.1.0",date:"2025-09-05",tag:"Latest",notes:[{type:"Added",text:"Donation link to README and ko-fi badge for project support."},{type:"Added",text:"Table for storing transcription statistics."},{type:"Added",text:"Animation during summary generation to indicate processing."},{type:"Added",text:"Default transcription profiles."},{type:"Added",text:"Info to transcripts to view parameters and stats."},{type:"Added",text:"Optional auto-transcription on upload."},{type:"Added",text:"Support for renaming speakers."},{type:"Added",text:"Transcription report in transcript section."},{type:"Added",text:"Sponsors section."},{type:"Changed",text:"Increase timeout to query OpenAI from 30 to 300 seconds."},{type:"Changed",text:"Makes summary template dialogue larger to provide more space for text input."},{type:"Changed",text:"Makes summary template text input scrollable."},{type:"Changed",text:"Moves auto transcription settings to transcription tab."},{type:"Changed",text:"Update README with Nvidia GPU support and Docker example."},{type:"Changed",text:"Updates Dockerfile for CUDA and compose files."},{type:"Fixed",text:"Chat with GPT-5 models support (fixes #173)."},{type:"Fixed",text:"Mobile transcript view toolbar for better visibility and UX."},{type:"Fixed",text:"CI/CD for project website - API and changelog pages not being updated."},{type:"Fixed",text:"Go releaser syscall related errors during packaging."},{type:"Fixed",text:"Incorrect persistence of old speaker data when re-transcribed."},{type:"Fixed",text:"Job termination issues."},{type:"Fixed",text:"Missing parameters in transcription info."},{type:"Fixed",text:"Project page issues."},{type:"Removed",text:"Build files from git repository."},{type:"Removed",text:"Data tracking files."}]},{version:"1.0.4",date:"2025-09-01",notes:[{type:"Fixed",text:"Fix Homebrew package."}]},{version:"1.0.3",date:"2025-08-31",notes:[{type:"Fixed",text:"Fixes #163."}]},{version:"1.0.2",date:"2025-08-31",notes:[{type:"Fixed",text:"Fix translate issues on Arch Linux and Ubuntu."}]},{version:"1.0.1",date:"2025-08-30",notes:[{type:"Changed",text:"Default container UID/GID to 1000."},{type:"Fixed",text:"Docker now respects environment-provided UID/GID."},{type:"Fixed",text:"Resolve permission errors for Docker bind mounts."},{type:"Changed",text:"Diarization uses whisperX-cli instead of Python script (fixes #158, #160)."},{type:"Removed",text:"Remove Python scripts no longer used (fixes #161)."}]},{version:"1.0.0",date:"2025-08-29",notes:[{type:"Changed",text:"Migrated to React for the frontend and Go for the backend — improves responsiveness and enables simple single-binary packaging."},{type:"Changed",text:"Revamped frontend, designed from scratch."},{type:"Changed",text:"Major UI and UX improvements across the app."},{type:"Added",text:"Dedicated settings page to manage all settings."},{type:"Added",text:"Transcription profiles — save specific configurations for reuse."},{type:"Added",text:"Ability to stop running jobs."},{type:"Added",text:"Chat with your transcript — supports multiple chat sessions."},{type:"Added",text:"Summary profiles — save custom prompts."},{type:"Added",text:"Automatic titling of chat sessions."},{type:"Added",text:"Highlights and note taking — jump from note to audio and transcript segment."},{type:"Added",text:"Playback follow-along — highlights the current word being played."},{type:"Added",text:"Seek from text — Cmd + click a word to jump to the corresponding audio timestamp."},{type:"Added",text:"Support for controlling and fine-tuning advanced transcription parameters."},{type:"Added",text:"REST API endpoints for all app features."},{type:"Added",text:"Secure management of API keys."},{type:"Added",text:"YouTube video transcription."},{type:"Added",text:"Quick transcribe — transcribe without saving audio or transcript to the database."},{type:"Added",text:"Batch upload audio files."},{type:"Added",text:"Search audio files."},{type:"Added",text:"Sort by column."},{type:"Added",text:"Admin user credentials management."},{type:"Added",text:"Download transcripts in JSON/SRT/TXT formats."}]}],h=["Added","Changed","Fixed","Deprecated","Removed","Security"];function y(){const s=r.useMemo(()=>g,[]),[a,i]=r.useState(!1);return e.jsxs("div",{className:"min-h-screen bg-white",children:[e.jsx("header",{className:"api-topbar",children:e.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[e.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none",children:[e.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),e.jsx("span",{className:"text-gray-300",children:"/"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Changelog"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Toggle versions",onClick:()=>i(t=>!t),children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx("div",{className:"hidden md:block",children:e.jsx(m,{})})]})]})}),e.jsxs("main",{className:"container-narrow py-10",children:[a&&e.jsxs("div",{className:"md:hidden mb-4 border border-gray-200 rounded-lg p-3",children:[e.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Versions"}),e.jsx("ul",{className:"grid grid-cols-3 gap-2 text-sm",children:s.map(t=>e.jsx("li",{children:e.jsx("a",{href:`#v${t.version}`,className:"text-gray-700 hover:text-gray-900",onClick:()=>i(!1),children:t.tag?`${t.version} (${t.tag})`:t.version})},`m-${t.version}`))})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[260px_minmax(0,1fr)] gap-8",children:[e.jsx("aside",{className:"api-sidebar",children:e.jsxs("div",{className:"sticky top-24 pr-6",children:[e.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Versions"}),e.jsx("ul",{className:"space-y-2",children:s.map(t=>e.jsxs("li",{children:[e.jsxs("a",{href:`#v${t.version}`,className:"text-gray-600 hover:text-gray-900 flex items-center gap-2",children:[e.jsx("span",{className:"font-medium",children:t.version}),t.tag&&e.jsx("span",{className:"status-pill",children:t.tag})]}),e.jsx("div",{className:"text-[11px] text-gray-500 ml-0.5",children:d(t.date)})]},t.version))})]})}),e.jsx("section",{className:"space-y-6 changelog-prose",children:s.map(t=>e.jsxs("article",{id:`v${t.version}`,className:"api-card",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("h2",{children:["v",t.version]}),e.jsxs("div",{className:"mt-0.5 text-gray-600",children:["Released ",d(t.date)]})]}),t.tag&&e.jsx("span",{className:"status-pill",children:t.tag})]}),e.jsx("div",{className:"mt-4 space-y-5",children:u(t.notes).map(([n,o])=>e.jsxs("section",{children:[e.jsx("div",{className:"api-section-title mb-2",children:n}),e.jsx("ul",{className:"list-disc pl-5 text-gray-700 space-y-1",children:o.map((c,p)=>e.jsx("li",{children:c.text},p))})]},n))})]},t.version))})]})]})]})}function u(s){var i;const a=new Map;for(const t of h)a.set(t,[]);for(const t of s)(i=a.get(t.type))==null||i.push(t);return Array.from(a.entries()).filter(([,t])=>t.length>0)}function d(s){try{return new Date(s+"T00:00:00Z").toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return s}}const f=l(document.getElementById("root"));f.render(e.jsx(x.StrictMode,{children:e.jsx(y,{})})); +import{c as l,j as e,R as x,r,G as m}from"./styles-DGJLjUaE.js";const g=[{version:"1.1.0",date:"2025-09-05",tag:"Latest",notes:[{type:"Added",text:"Donation link to README and ko-fi badge for project support."},{type:"Added",text:"Table for storing transcription statistics."},{type:"Added",text:"Animation during summary generation to indicate processing."},{type:"Added",text:"Default transcription profiles."},{type:"Added",text:"Info to transcripts to view parameters and stats."},{type:"Added",text:"Optional auto-transcription on upload."},{type:"Added",text:"Support for renaming speakers."},{type:"Added",text:"Transcription report in transcript section."},{type:"Added",text:"Sponsors section."},{type:"Changed",text:"Increase timeout to query OpenAI from 30 to 300 seconds."},{type:"Changed",text:"Makes summary template dialogue larger to provide more space for text input."},{type:"Changed",text:"Makes summary template text input scrollable."},{type:"Changed",text:"Moves auto transcription settings to transcription tab."},{type:"Changed",text:"Update README with Nvidia GPU support and Docker example."},{type:"Changed",text:"Updates Dockerfile for CUDA and compose files."},{type:"Fixed",text:"Chat with GPT-5 models support (fixes #173)."},{type:"Fixed",text:"Mobile transcript view toolbar for better visibility and UX."},{type:"Fixed",text:"CI/CD for project website - API and changelog pages not being updated."},{type:"Fixed",text:"Go releaser syscall related errors during packaging."},{type:"Fixed",text:"Incorrect persistence of old speaker data when re-transcribed."},{type:"Fixed",text:"Job termination issues."},{type:"Fixed",text:"Missing parameters in transcription info."},{type:"Fixed",text:"Project page issues."},{type:"Removed",text:"Build files from git repository."},{type:"Removed",text:"Data tracking files."}]},{version:"1.0.4",date:"2025-09-01",notes:[{type:"Fixed",text:"Fix Homebrew package."}]},{version:"1.0.3",date:"2025-08-31",notes:[{type:"Fixed",text:"Fixes #163."}]},{version:"1.0.2",date:"2025-08-31",notes:[{type:"Fixed",text:"Fix translate issues on Arch Linux and Ubuntu."}]},{version:"1.0.1",date:"2025-08-30",notes:[{type:"Changed",text:"Default container UID/GID to 1000."},{type:"Fixed",text:"Docker now respects environment-provided UID/GID."},{type:"Fixed",text:"Resolve permission errors for Docker bind mounts."},{type:"Changed",text:"Diarization uses whisperX-cli instead of Python script (fixes #158, #160)."},{type:"Removed",text:"Remove Python scripts no longer used (fixes #161)."}]},{version:"1.0.0",date:"2025-08-29",notes:[{type:"Changed",text:"Migrated to React for the frontend and Go for the backend — improves responsiveness and enables simple single-binary packaging."},{type:"Changed",text:"Revamped frontend, designed from scratch."},{type:"Changed",text:"Major UI and UX improvements across the app."},{type:"Added",text:"Dedicated settings page to manage all settings."},{type:"Added",text:"Transcription profiles — save specific configurations for reuse."},{type:"Added",text:"Ability to stop running jobs."},{type:"Added",text:"Chat with your transcript — supports multiple chat sessions."},{type:"Added",text:"Summary profiles — save custom prompts."},{type:"Added",text:"Automatic titling of chat sessions."},{type:"Added",text:"Highlights and note taking — jump from note to audio and transcript segment."},{type:"Added",text:"Playback follow-along — highlights the current word being played."},{type:"Added",text:"Seek from text — Cmd + click a word to jump to the corresponding audio timestamp."},{type:"Added",text:"Support for controlling and fine-tuning advanced transcription parameters."},{type:"Added",text:"REST API endpoints for all app features."},{type:"Added",text:"Secure management of API keys."},{type:"Added",text:"YouTube video transcription."},{type:"Added",text:"Quick transcribe — transcribe without saving audio or transcript to the database."},{type:"Added",text:"Batch upload audio files."},{type:"Added",text:"Search audio files."},{type:"Added",text:"Sort by column."},{type:"Added",text:"Admin user credentials management."},{type:"Added",text:"Download transcripts in JSON/SRT/TXT formats."}]}],h=["Added","Changed","Fixed","Deprecated","Removed","Security"];function y(){const s=r.useMemo(()=>g,[]),[a,i]=r.useState(!1);return e.jsxs("div",{className:"min-h-screen bg-white",children:[e.jsx("header",{className:"api-topbar",children:e.jsxs("div",{className:"container-narrow py-3 flex items-center justify-between gap-3",children:[e.jsxs("a",{href:"/",className:"flex items-center gap-2 select-none",children:[e.jsx("span",{className:"logo-font-poiret text-lg text-gray-900",children:"Scriberr"}),e.jsx("span",{className:"text-gray-300",children:"/"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Changelog"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Toggle versions",onClick:()=>i(t=>!t),children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx("div",{className:"hidden md:block",children:e.jsx(m,{})})]})]})}),e.jsxs("main",{className:"container-narrow py-10",children:[a&&e.jsxs("div",{className:"md:hidden mb-4 border border-gray-200 rounded-lg p-3",children:[e.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Versions"}),e.jsx("ul",{className:"grid grid-cols-3 gap-2 text-sm",children:s.map(t=>e.jsx("li",{children:e.jsx("a",{href:`#v${t.version}`,className:"text-gray-700 hover:text-gray-900",onClick:()=>i(!1),children:t.tag?`${t.version} (${t.tag})`:t.version})},`m-${t.version}`))})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[260px_minmax(0,1fr)] gap-8",children:[e.jsx("aside",{className:"api-sidebar",children:e.jsxs("div",{className:"sticky top-24 pr-6",children:[e.jsx("div",{className:"text-[11px] font-medium text-gray-500 mb-2",children:"Versions"}),e.jsx("ul",{className:"space-y-2",children:s.map(t=>e.jsxs("li",{children:[e.jsxs("a",{href:`#v${t.version}`,className:"text-gray-600 hover:text-gray-900 flex items-center gap-2",children:[e.jsx("span",{className:"font-medium",children:t.version}),t.tag&&e.jsx("span",{className:"status-pill",children:t.tag})]}),e.jsx("div",{className:"text-[11px] text-gray-500 ml-0.5",children:d(t.date)})]},t.version))})]})}),e.jsx("section",{className:"space-y-6 changelog-prose",children:s.map(t=>e.jsxs("article",{id:`v${t.version}`,className:"api-card",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("h2",{children:["v",t.version]}),e.jsxs("div",{className:"mt-0.5 text-gray-600",children:["Released ",d(t.date)]})]}),t.tag&&e.jsx("span",{className:"status-pill",children:t.tag})]}),e.jsx("div",{className:"mt-4 space-y-5",children:u(t.notes).map(([n,o])=>e.jsxs("section",{children:[e.jsx("div",{className:"api-section-title mb-2",children:n}),e.jsx("ul",{className:"list-disc pl-5 text-gray-700 space-y-1",children:o.map((c,p)=>e.jsx("li",{children:c.text},p))})]},n))})]},t.version))})]})]})]})}function u(s){var i;const a=new Map;for(const t of h)a.set(t,[]);for(const t of s)(i=a.get(t.type))==null||i.push(t);return Array.from(a.entries()).filter(([,t])=>t.length>0)}function d(s){try{return new Date(s+"T00:00:00Z").toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return s}}const f=l(document.getElementById("root"));f.render(e.jsx(x.StrictMode,{children:e.jsx(y,{})})); diff --git a/docs/assets/docs/contributing-CmtFphE8.js b/docs/assets/docs/contributing-CC8jrLw6.js similarity index 96% rename from docs/assets/docs/contributing-CmtFphE8.js rename to docs/assets/docs/contributing-CC8jrLw6.js index b2f6b4d8..0e6dd26f 100644 --- a/docs/assets/docs/contributing-CmtFphE8.js +++ b/docs/assets/docs/contributing-CC8jrLw6.js @@ -1,4 +1,4 @@ -import{c as s,j as e,R as n}from"../styles-DAhCVYAn.js";import{D as r}from"../DocsLayout-BDGdyfmi.js";function t(){return e.jsxs(r,{active:"contributing",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Contributing"}),e.jsx("p",{className:"mt-2",children:"Thanks for your interest in improving Scriberr! Here’s how to get set up and contribute."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Guidelines"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Open an issue first for large changes to discuss scope and approach."}),e.jsx("li",{children:"Keep pull requests focused and small; write clear descriptions."}),e.jsxs("li",{children:["Use conventional, imperative commit messages (e.g., ",e.jsx("code",{children:"add docs sidebar link"}),", ",e.jsx("code",{children:"fix queue status endpoint"}),")."]}),e.jsxs("li",{children:["Follow coding styles: run ",e.jsx("code",{children:"go fmt ./..."}),", ",e.jsx("code",{children:"go vet ./..."})," and ",e.jsx("code",{children:"npm run lint"})," in the frontend."]}),e.jsxs("li",{children:["Add tests where appropriate (Go tests live under ",e.jsx("code",{children:"tests/"})," or next to packages)."]}),e.jsx("li",{children:"Update docs (README, swagger) when you change API shapes."})]})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Prerequisites"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Node.js 18+ and npm"}),e.jsx("li",{children:"Go 1.24+"}),e.jsxs("li",{children:["Python 3.11+ and ",e.jsx("a",{href:"https://docs.astral.sh/uv/",target:"_blank",rel:"noopener noreferrer",children:"uv"})," (for transcription features)"]})]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:e.jsx("pre",{children:`# macOS (Homebrew) +import{c as s,j as e,R as n}from"../styles-DGJLjUaE.js";import{D as r}from"../DocsLayout-CwjFaNb7.js";function t(){return e.jsxs(r,{active:"contributing",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Contributing"}),e.jsx("p",{className:"mt-2",children:"Thanks for your interest in improving Scriberr! Here’s how to get set up and contribute."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Guidelines"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Open an issue first for large changes to discuss scope and approach."}),e.jsx("li",{children:"Keep pull requests focused and small; write clear descriptions."}),e.jsxs("li",{children:["Use conventional, imperative commit messages (e.g., ",e.jsx("code",{children:"add docs sidebar link"}),", ",e.jsx("code",{children:"fix queue status endpoint"}),")."]}),e.jsxs("li",{children:["Follow coding styles: run ",e.jsx("code",{children:"go fmt ./..."}),", ",e.jsx("code",{children:"go vet ./..."})," and ",e.jsx("code",{children:"npm run lint"})," in the frontend."]}),e.jsxs("li",{children:["Add tests where appropriate (Go tests live under ",e.jsx("code",{children:"tests/"})," or next to packages)."]}),e.jsx("li",{children:"Update docs (README, swagger) when you change API shapes."})]})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Prerequisites"}),e.jsxs("ul",{className:"list-disc pl-5 mt-2 space-y-1",children:[e.jsx("li",{children:"Node.js 18+ and npm"}),e.jsx("li",{children:"Go 1.24+"}),e.jsxs("li",{children:["Python 3.11+ and ",e.jsx("a",{href:"https://docs.astral.sh/uv/",target:"_blank",rel:"noopener noreferrer",children:"uv"})," (for transcription features)"]})]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:e.jsx("pre",{children:`# macOS (Homebrew) brew install node go python curl -LsSf https://astral.sh/uv/install.sh | sh diff --git a/docs/assets/docs/diarization-CUktH-fa.js b/docs/assets/docs/diarization-7IInt4rl.js similarity index 93% rename from docs/assets/docs/diarization-CUktH-fa.js rename to docs/assets/docs/diarization-7IInt4rl.js index 319aaf6e..58273dbc 100644 --- a/docs/assets/docs/diarization-CUktH-fa.js +++ b/docs/assets/docs/diarization-7IInt4rl.js @@ -1 +1 @@ -import{c as n,j as e,R as a}from"../styles-DAhCVYAn.js";import{D as t}from"../DocsLayout-BDGdyfmi.js";import{W as r}from"../Window-BTa2N_kG.js";function s(){return e.jsxs(t,{active:"diarization",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Setting up diarization"}),e.jsx("p",{className:"mt-2",children:"Enable local speaker diarization using pyannote models."})]}),e.jsxs("section",{children:[e.jsx("p",{className:"mt-2",children:"Diarization uses the open‑source pyannote models for speaker segmentation. These models are hosted on Hugging Face. To access them, you will need a Hugging Face account. The access token is only used to download the models — diarization runs locally and does NOT use any third‑party cloud services. Follow the steps below to enable diarization."}),e.jsxs("p",{className:"mt-4",children:["Create an account on ",e.jsx("a",{href:"https://huggingface.co",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co"})]}),e.jsx("p",{className:"mt-2",children:"Navigate to the following repositories:"}),e.jsxs("ul",{className:"list-disc pl-5 mt-1 space-y-1",children:[e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-3.0",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization-3.0"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-3.1",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization-3.1"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/segmentation-3.0",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/segmentation-3.0"})})]}),e.jsxs("p",{className:"mt-3",children:["Accept their user conditions. Navigate to ",e.jsx("a",{href:"https://huggingface.co/settings/gated-repos",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/settings/gated-repos"})," to ensure these repos show up on that page as gated repos."]}),e.jsx("p",{className:"mt-2",children:'Then navigate to Settings -> Access Tokens and create a new token. Under permissions, enable all under the "Repositories" section. Copy and save the token somewhere securely. You will need this access token for using diarization.'}),e.jsx("p",{className:"mt-3",children:"In the app, to enable diarization — either when creating a new profile or using the Transcribe+ action — open the Diarization tab in the dialog and paste your token into the Hugging Face Token field."})]}),e.jsx("div",{className:"mt-6",children:e.jsx(r,{className:"w-[300px] mx-auto",src:"/screenshots/scriberr-diarization-setup.png",alt:"Diarization setup in Scriberr"})})]})}const i=n(document.getElementById("root"));i.render(e.jsx(a.StrictMode,{children:e.jsx(s,{})})); +import{c as n,j as e,R as a}from"../styles-DGJLjUaE.js";import{D as t}from"../DocsLayout-CwjFaNb7.js";import{W as r}from"../Window-BJy5jSY4.js";function s(){return e.jsxs(t,{active:"diarization",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Setting up diarization"}),e.jsx("p",{className:"mt-2",children:"Enable local speaker diarization using pyannote models."})]}),e.jsxs("section",{children:[e.jsx("p",{className:"mt-2",children:"Diarization uses the open‑source pyannote models for speaker segmentation. These models are hosted on Hugging Face. To access them, you will need a Hugging Face account. The access token is only used to download the models — diarization runs locally and does NOT use any third‑party cloud services. Follow the steps below to enable diarization."}),e.jsxs("p",{className:"mt-4",children:["Create an account on ",e.jsx("a",{href:"https://huggingface.co",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co"})]}),e.jsx("p",{className:"mt-2",children:"Navigate to the following repositories:"}),e.jsxs("ul",{className:"list-disc pl-5 mt-1 space-y-1",children:[e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-3.0",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization-3.0"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/speaker-diarization-3.1",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/speaker-diarization-3.1"})}),e.jsx("li",{children:e.jsx("a",{href:"https://huggingface.co/pyannote/segmentation-3.0",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/pyannote/segmentation-3.0"})})]}),e.jsxs("p",{className:"mt-3",children:["Accept their user conditions. Navigate to ",e.jsx("a",{href:"https://huggingface.co/settings/gated-repos",target:"_blank",rel:"noopener noreferrer",children:"https://huggingface.co/settings/gated-repos"})," to ensure these repos show up on that page as gated repos."]}),e.jsx("p",{className:"mt-2",children:'Then navigate to Settings -> Access Tokens and create a new token. Under permissions, enable all under the "Repositories" section. Copy and save the token somewhere securely. You will need this access token for using diarization.'}),e.jsx("p",{className:"mt-3",children:"In the app, to enable diarization — either when creating a new profile or using the Transcribe+ action — open the Diarization tab in the dialog and paste your token into the Hugging Face Token field."})]}),e.jsx("div",{className:"mt-6",children:e.jsx(r,{className:"w-[300px] mx-auto",src:"/screenshots/scriberr-diarization-setup.png",alt:"Diarization setup in Scriberr"})})]})}const i=n(document.getElementById("root"));i.render(e.jsx(a.StrictMode,{children:e.jsx(s,{})})); diff --git a/docs/assets/docs/installation-DCK86Uqj.js b/docs/assets/docs/installation-D_xAZIAP.js similarity index 97% rename from docs/assets/docs/installation-DCK86Uqj.js rename to docs/assets/docs/installation-D_xAZIAP.js index 1e057dab..8bbb8c5c 100644 --- a/docs/assets/docs/installation-DCK86Uqj.js +++ b/docs/assets/docs/installation-D_xAZIAP.js @@ -1,4 +1,4 @@ -import{c as s,j as e,R as r}from"../styles-DAhCVYAn.js";import{D as a}from"../DocsLayout-BDGdyfmi.js";function t(){return e.jsxs(a,{active:"installation",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Installation"}),e.jsx("p",{className:"mt-2",children:"Get Scriberr running on your system in a few minutes."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Install with Homebrew (macOS & Linux)"}),e.jsxs("p",{className:"mt-2",children:["The easiest way to install Scriberr is using Homebrew. If you don’t have Homebrew installed,",e.jsx("a",{href:"https://brew.sh",target:"_blank",rel:"noopener noreferrer",className:"ml-1",children:"get it here first"}),"."]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-3",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Add the Scriberr tap"}),e.jsx("br",{}),"brew tap rishikanthc/scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Install Scriberr (automatically installs UV dependency)"}),e.jsx("br",{}),"brew install scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Start the server"}),e.jsx("br",{}),"scriberr"]})}),e.jsxs("p",{className:"mt-3",children:["Open ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"http://localhost:8080"})," in your browser."]}),e.jsx("h3",{className:"mt-8",children:"Configuration"}),e.jsxs("p",{className:"mt-2",children:["Scriberr works out of the box. To customize settings, create a ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:".env"})," file:"]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Server settings"}),e.jsx("br",{}),"HOST=localhost",e.jsx("br",{}),"PORT=8080",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Data storage (optional)"}),e.jsx("br",{}),"DATABASE_PATH=./data/scriberr.db",e.jsx("br",{}),"UPLOAD_DIR=./data/uploads",e.jsx("br",{}),"WHISPERX_ENV=./data/whisperx-env",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Custom paths (if needed)"}),e.jsx("br",{}),"UV_PATH=/custom/path/to/uv"]})}),e.jsx("h3",{className:"mt-8",children:"Troubleshooting"}),e.jsxs("div",{className:"space-y-3 mt-2",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Command not found"}),e.jsxs("p",{className:"mt-1",children:["Make sure the binary is in your PATH or run it with the full path: ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"./scriberr"})]})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Transcription not working"}),e.jsx("p",{className:"mt-1",children:"Ensure Python 3.11+ and UV are installed. Check logs on start for Python environment issues."})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Port already in use"}),e.jsxs("p",{className:"mt-1",children:["Set a different port with ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"PORT=8081 scriberr"})," or add it to your .env file."]})]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"mt-12",children:"Install with Docker"}),e.jsx("p",{className:"mt-2",children:"Run Scriberr in a container with all dependencies included."}),e.jsx("h3",{className:"mt-4",children:"Quick start"}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:[e.jsx("span",{className:"text-green-600",children:"# Run with Docker (data persisted in volume)"}),e.jsx("pre",{className:"mt-2",children:`docker run -d \\ +import{c as s,j as e,R as r}from"../styles-DGJLjUaE.js";import{D as a}from"../DocsLayout-CwjFaNb7.js";function t(){return e.jsxs(a,{active:"installation",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Installation"}),e.jsx("p",{className:"mt-2",children:"Get Scriberr running on your system in a few minutes."})]}),e.jsxs("section",{children:[e.jsx("h2",{children:"Install with Homebrew (macOS & Linux)"}),e.jsxs("p",{className:"mt-2",children:["The easiest way to install Scriberr is using Homebrew. If you don’t have Homebrew installed,",e.jsx("a",{href:"https://brew.sh",target:"_blank",rel:"noopener noreferrer",className:"ml-1",children:"get it here first"}),"."]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-3",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Add the Scriberr tap"}),e.jsx("br",{}),"brew tap rishikanthc/scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Install Scriberr (automatically installs UV dependency)"}),e.jsx("br",{}),"brew install scriberr",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Start the server"}),e.jsx("br",{}),"scriberr"]})}),e.jsxs("p",{className:"mt-3",children:["Open ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"http://localhost:8080"})," in your browser."]}),e.jsx("h3",{className:"mt-8",children:"Configuration"}),e.jsxs("p",{className:"mt-2",children:["Scriberr works out of the box. To customize settings, create a ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:".env"})," file:"]}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2",children:e.jsxs("div",{className:"text-gray-800",children:[e.jsx("span",{className:"text-green-600",children:"# Server settings"}),e.jsx("br",{}),"HOST=localhost",e.jsx("br",{}),"PORT=8080",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Data storage (optional)"}),e.jsx("br",{}),"DATABASE_PATH=./data/scriberr.db",e.jsx("br",{}),"UPLOAD_DIR=./data/uploads",e.jsx("br",{}),"WHISPERX_ENV=./data/whisperx-env",e.jsx("br",{}),e.jsx("br",{}),e.jsx("span",{className:"text-green-600",children:"# Custom paths (if needed)"}),e.jsx("br",{}),"UV_PATH=/custom/path/to/uv"]})}),e.jsx("h3",{className:"mt-8",children:"Troubleshooting"}),e.jsxs("div",{className:"space-y-3 mt-2",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Command not found"}),e.jsxs("p",{className:"mt-1",children:["Make sure the binary is in your PATH or run it with the full path: ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"./scriberr"})]})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Transcription not working"}),e.jsx("p",{className:"mt-1",children:"Ensure Python 3.11+ and UV are installed. Check logs on start for Python environment issues."})]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Port already in use"}),e.jsxs("p",{className:"mt-1",children:["Set a different port with ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"PORT=8081 scriberr"})," or add it to your .env file."]})]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"mt-12",children:"Install with Docker"}),e.jsx("p",{className:"mt-2",children:"Run Scriberr in a container with all dependencies included."}),e.jsx("h3",{className:"mt-4",children:"Quick start"}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4 font-mono text-sm mt-2 overflow-x-auto",children:[e.jsx("span",{className:"text-green-600",children:"# Run with Docker (data persisted in volume)"}),e.jsx("pre",{className:"mt-2",children:`docker run -d \\ --name scriberr \\ -p 8080:8080 \\ -v scriberr_data:/app/data \\ diff --git a/docs/assets/docs/intro-CsxoQerG.js b/docs/assets/docs/intro-oOWQqgT4.js similarity index 90% rename from docs/assets/docs/intro-CsxoQerG.js rename to docs/assets/docs/intro-oOWQqgT4.js index cf6302c7..1ad4b5b3 100644 --- a/docs/assets/docs/intro-CsxoQerG.js +++ b/docs/assets/docs/intro-oOWQqgT4.js @@ -1 +1 @@ -import{c as r,j as e,R as i}from"../styles-DAhCVYAn.js";import{D as n}from"../DocsLayout-BDGdyfmi.js";import{W as s}from"../Window-BTa2N_kG.js";function t(){return e.jsxs(n,{active:"intro",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Introduction"}),e.jsx("p",{className:"mt-2",children:"A quick overview of Scriberr and what you can do with it."})]}),e.jsxs("article",{children:[e.jsx("h2",{children:"What is Scriberr?"}),e.jsx("p",{className:"mt-2",children:"Scriberr is a self-hosted, offline transcription app for converting audio files into text. Record or upload audio, get it transcribed, and quickly summarize or chat using your preferred LLM provider. Scriberr doesn’t require GPUs (although GPUs can be used for acceleration) and runs on modern CPUs, offering a range of trade-offs between speed and transcription quality."}),e.jsx("p",{className:"mt-2",children:"Scriberr is built with React on the frontend and Go on the backend, compiled into a single binary. It uses the WhisperX engine and open-source Whisper models for transcription. Some key features include:"}),e.jsxs("ul",{className:"mt-2 list-disc pl-5 space-y-1",children:[e.jsx("li",{children:"Fine-tune advanced transcription parameters for precise control over quality"}),e.jsx("li",{children:"Built-in recorder to capture audio directly in‑app"}),e.jsx("li",{children:"Speaker diarization to identify and label different speakers"}),e.jsx("li",{children:"Summarize & chat with your audio using LLMs"}),e.jsx("li",{children:"Highlight, annotate, and tag notes"}),e.jsx("li",{children:"Save configurations as profiles for different audio scenarios"}),e.jsx("li",{children:"API endpoints for building your own automations and applications"})]}),e.jsx("div",{className:"mt-5",children:e.jsx(s,{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage"})}),e.jsxs("p",{className:"mt-4",children:["To install Scriberr, check the ",e.jsx("a",{href:"/docs/installation.html",children:"installation page"})," for setup instructions."]})]})]})}const o=r(document.getElementById("root"));o.render(e.jsx(i.StrictMode,{children:e.jsx(t,{})})); +import{c as r,j as e,R as i}from"../styles-DGJLjUaE.js";import{D as n}from"../DocsLayout-CwjFaNb7.js";import{W as s}from"../Window-BJy5jSY4.js";function t(){return e.jsxs(n,{active:"intro",children:[e.jsxs("header",{children:[e.jsx("h1",{children:"Introduction"}),e.jsx("p",{className:"mt-2",children:"A quick overview of Scriberr and what you can do with it."})]}),e.jsxs("article",{children:[e.jsx("h2",{children:"What is Scriberr?"}),e.jsx("p",{className:"mt-2",children:"Scriberr is a self-hosted, offline transcription app for converting audio files into text. Record or upload audio, get it transcribed, and quickly summarize or chat using your preferred LLM provider. Scriberr doesn’t require GPUs (although GPUs can be used for acceleration) and runs on modern CPUs, offering a range of trade-offs between speed and transcription quality."}),e.jsx("p",{className:"mt-2",children:"Scriberr is built with React on the frontend and Go on the backend, compiled into a single binary. It uses the WhisperX engine and open-source Whisper models for transcription. Some key features include:"}),e.jsxs("ul",{className:"mt-2 list-disc pl-5 space-y-1",children:[e.jsx("li",{children:"Fine-tune advanced transcription parameters for precise control over quality"}),e.jsx("li",{children:"Built-in recorder to capture audio directly in‑app"}),e.jsx("li",{children:"Speaker diarization to identify and label different speakers"}),e.jsx("li",{children:"Summarize & chat with your audio using LLMs"}),e.jsx("li",{children:"Highlight, annotate, and tag notes"}),e.jsx("li",{children:"Save configurations as profiles for different audio scenarios"}),e.jsx("li",{children:"API endpoints for building your own automations and applications"})]}),e.jsx("div",{className:"mt-5",children:e.jsx(s,{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage"})}),e.jsxs("p",{className:"mt-4",children:["To install Scriberr, check the ",e.jsx("a",{href:"/docs/installation.html",children:"installation page"})," for setup instructions."]})]})]})}const o=r(document.getElementById("root"));o.render(e.jsx(i.StrictMode,{children:e.jsx(t,{})})); diff --git a/docs/assets/index-CTEra42u.js b/docs/assets/index-CTEra42u.js new file mode 100644 index 00000000..bbce048e --- /dev/null +++ b/docs/assets/index-CTEra42u.js @@ -0,0 +1 @@ +import{j as e,r as i,G as n,c as o,R as l}from"./styles-DGJLjUaE.js";import{W as c}from"./Window-BJy5jSY4.js";function a({className:s=""}){return e.jsx("img",{src:"/scriberr-logo.png",alt:"Scriberr",className:`w-auto select-none ${s}`})}function d(){const[s,r]=i.useState(!1);return e.jsxs("header",{className:"sticky top-0 z-40 bg-white/80 backdrop-blur shadow-soft",children:[e.jsxs("div",{className:"container-narrow py-4 flex items-center justify-between",children:[e.jsx("a",{href:"#",className:"flex items-center gap-3",children:e.jsx(a,{className:"h-8 sm:h-10"})}),e.jsxs("nav",{className:"hidden md:flex items-center gap-6 text-sm text-gray-600",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",children:"API"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Menu",onClick:()=>r(t=>!t),children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx(n,{})]})]}),s&&e.jsx("div",{className:"md:hidden border-t border-gray-200 bg-white",children:e.jsxs("div",{className:"container-narrow py-3 flex flex-col gap-2 text-sm text-gray-700",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",onClick:()=>r(!1),children:"API"})]})})]})}function m(){return e.jsx("section",{className:"relative",children:e.jsxs("div",{className:"container-narrow section text-center",children:[e.jsx("span",{className:"eyebrow mb-3 inline-block",children:"Self-hosted offline audio transcription"}),e.jsx("h1",{className:"headline flex justify-center mb-4",children:e.jsx(a,{className:"h-16 sm:h-20 md:h-24 lg:h-28 xl:h-32"})}),e.jsx("p",{className:"subcopy mt-3 mx-auto max-w-2xl",children:"Transcribe audio locally into text - Summarize and Chat with your audio. No GPU Required."}),e.jsxs("div",{className:"mt-8 flex items-center justify-center gap-3",children:[e.jsx("a",{href:"/docs/installation.html",className:"button-primary",children:"Get Started"}),e.jsx("a",{href:"#features",className:"button-ghost",children:"Learn more"})]}),e.jsx("div",{className:"mt-6 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),window.open("https://ko-fi.com/H2H41KQZA3","_blank","noopener,noreferrer")},children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})}),e.jsx("div",{className:"mt-12 max-w-5xl mx-auto",children:e.jsxs("div",{className:"rounded-3xl shadow-soft overflow-hidden bg-white hover-lift",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[e.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),e.jsx("img",{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage",className:"w-full object-cover"})]})}),e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-4 text-xs text-gray-500",children:[e.jsx("span",{children:"Privacy preserving"}),e.jsx("span",{children:"Mobile ready"}),e.jsx("span",{children:"Fast and responsive"})]})]})})}const h=[{title:"Precise transcription",desc:"Tweak advanced transcription parameters to get the best quality output"},{title:"Built-in recorder",desc:"Capture audio directly in-app and transcribe instantly."},{title:"Summarize & chat",desc:"Extract key points or chat over transcripts using LLMs."},{title:"Lightweight notes",desc:"Highlight, annotate, and tag important moments as you listen/read."},{title:"Speaker diarization",desc:"Identify and label distinct speakers in your audio."},{title:"Profiles & presets",desc:"Save configurations for different audio scenarios."}];function x({name:s}){const r="size-4";switch(s){case"Precise transcription":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M12 3v10a3 3 0 1 1-6 0V8"}),e.jsx("path",{d:"M19 10v3a7 7 0 0 1-14 0"})]});case"Built-in recorder":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"3"}),e.jsx("circle",{cx:"12",cy:"12",r:"9"})]});case"Summarize & chat":return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M21 15a4 4 0 0 1-4 4H7l-4 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"})});case"Lightweight notes":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M9 7h6M9 12h6M9 17h6"}),e.jsx("rect",{x:"5",y:"3",width:"14",height:"18",rx:"2"})]});case"Speaker diarization":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("circle",{cx:"7",cy:"8",r:"3"}),e.jsx("path",{d:"M2 19a5 5 0 0 1 10 0"}),e.jsx("circle",{cx:"17",cy:"10",r:"2.5"}),e.jsx("path",{d:"M13 19c.5-2.5 2.5-4 5-4"})]});case"Profiles & presets":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:[e.jsx("path",{d:"M6 3v12"}),e.jsx("path",{d:"M12 3v18"}),e.jsx("path",{d:"M18 3v8"})]});default:return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:r,children:e.jsx("path",{d:"M12 6v12m6-6H6"})})}}function p(){return e.jsxs("section",{id:"features",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Capabilities"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"Key Features"}),e.jsx("p",{className:"subcopy mt-2",children:"Curated set of features to manage and work with transcripts."})]}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:h.map(s=>e.jsxs("article",{className:"rounded-2xl p-6 bg-gray-50 shadow-soft hover-lift",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center size-9 rounded-xl bg-gray-100 text-gray-600 shadow-subtle",children:e.jsx(x,{name:s.title})}),e.jsx("h3",{className:"font-medium text-base md:text-lg text-gray-900",children:s.title})]}),e.jsx("p",{className:"subcopy",children:s.desc})]},s.title))})]})}const u=[{title:"Transcript view",desc:"Minimal reading experience with timestamps with playback follow along that highlights currently playing word.",img:"scriberr-transcript page.png",bullets:["Jump from audio timestamp to corresponding word","Jump from text to corresponding audio segment","View transcript as paragraph or as timestamped/speaker segments"]},{title:"Record right in Scriberr",desc:"Capture audio directly in-app and transcribe",img:"scriberr-inbuilt audio recorder for directly recording and transcribing audio within the app.png",bullets:[]},{title:"Summaries at a glance",desc:"Turn long recordings into brief, actionable summaries you can scan in seconds.",img:"scriberr-summarize transcripts.png",bullets:["Write your own custom prompts for summarization","Supports both Ollama/OpenAI (needs API Key) LLM providers","Save multiple summarization presets to reuse quickly"]},{title:"Annotate transcripts",desc:"Highlight important moments, jot down concise notes, and keep insights attached to the exact timestamp.",img:"scriberr-annotate transcript and take notes.png",bullets:["Highlight text to add a note","Timestamped notes allow jumping to exact segment"]},{title:"Advanced controls",desc:"Fine-tune model settings, language, and diarization for optimal results",img:"scriberr-fine tune advanced transcription parameters as you see fit to improve transcription quality.png",bullets:["Language hints and temperature","Diarization and VAD options","Profiles for repeatable setups"]},{title:"Bring your own providers",desc:"Use OpenAI or local models via Ollama for summaries and chat — your keys, your choice.",img:"scriberr-Ollama:openAI llm providers for chat and summarization.png",bullets:["Works with OpenAI or Ollama"]},{title:"Export transcripts",desc:"Download your transcripts in multiple formats",img:"scriberr-download-transcript-in-different-formats.png",bullets:["Export to TXT, Markdown, JSON","Keep timestamps and speaker info"]},{title:"Chat with your transcript",desc:"Ask questions about your recording, extract insights, and clarify details without scrubbing through audio.",img:"scriberr-chat-with-your-recording-transcript.png",bullets:["Works with OpenAI or Ollama"]},{title:"API keys and REST API",desc:"Manage API keys and use the full REST API to build automations or integrate Scriberr into your own applications.",img:"scriberr-api-key-management.png",bullets:["Secure API key management","Endpoints for transcription, chat, notes and more"]},{title:"Transcribe YouTube videos",desc:"Paste a YouTube link to transcribe the audio directly — no downloads required.",img:"scriberr-youtube-video.png",bullets:["Grab insights from talks, podcasts and lectures","Works with summarization and notes"]}];function g(){return e.jsxs("section",{id:"details",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Details"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"A closer look"})]}),e.jsx("div",{className:"space-y-16 md:space-y-24",children:u.map((s,r)=>e.jsxs("div",{className:"grid md:grid-cols-2 gap-8 md:gap-10 items-center",children:[e.jsx("div",{className:r%2===0?"order-1 md:order-1":"order-2 md:order-2",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl md:text-2xl font-semibold text-gray-900",children:s.title}),e.jsx("p",{className:"subcopy mt-2",children:s.desc}),s.bullets&&e.jsx("ul",{className:"mt-4 space-y-2 text-sm text-gray-600 list-disc list-inside",children:s.bullets.map(t=>e.jsx("li",{children:t},t))})]})}),e.jsx("div",{className:r%2===0?"order-2 md:order-2":"order-1 md:order-1",children:e.jsx(c,{src:`/screenshots/${s.img}`,alt:s.title})})]},s.title))})]})}function f(){return e.jsx("footer",{className:"mt-8 bg-gray-50",children:e.jsxs("div",{className:"container-narrow py-10 text-center text-sm text-gray-700",children:[e.jsxs("p",{children:["If you like Scriberr, consider giving the project a star on"," ",e.jsx("a",{href:"https://github.com/rishikanthc/scriberr",target:"_blank",rel:"noreferrer",className:"text-blue-600 hover:text-blue-700 underline-offset-2 hover:underline",children:"GitHub"}),"."]}),e.jsx("div",{className:"mt-4 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})})]})})}function j(){return e.jsxs("div",{className:"min-h-screen flex flex-col",children:[e.jsx(d,{}),e.jsxs("main",{className:"flex-1",children:[e.jsx(m,{}),e.jsx(p,{}),e.jsx(g,{})]}),e.jsx(f,{})]})}const b=o(document.getElementById("root"));b.render(e.jsx(l.StrictMode,{children:e.jsx(j,{})})); diff --git a/docs/assets/index-D8RF9mpR.js b/docs/assets/index-D8RF9mpR.js deleted file mode 100644 index 2f4123f5..00000000 --- a/docs/assets/index-D8RF9mpR.js +++ /dev/null @@ -1 +0,0 @@ -import{j as e,r as i,G as n,c as o,R as l}from"./styles-DAhCVYAn.js";import{W as c}from"./Window-BTa2N_kG.js";function a({className:s=""}){return e.jsx("span",{className:`logo-font-poiret text-2xl sm:text-3xl bg-clip-text text-transparent bg-gradient-to-r from-blue-600 to-purple-400 select-none ${s}`,"aria-label":"Scriberr",children:"Scriberr"})}function d(){const[s,t]=i.useState(!1);return e.jsxs("header",{className:"sticky top-0 z-40 bg-white/80 backdrop-blur shadow-soft",children:[e.jsxs("div",{className:"container-narrow py-4 flex items-center justify-between",children:[e.jsx("a",{href:"#",className:"flex items-center gap-3",children:e.jsx(a,{className:"text-2xl sm:text-3xl font-semibold"})}),e.jsxs("nav",{className:"hidden md:flex items-center gap-6 text-sm text-gray-600",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",children:"API"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{className:"md:hidden inline-flex items-center justify-center rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-gray-700 hover:bg-gray-50","aria-label":"Menu",onClick:()=>t(r=>!r),children:e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:"size-5",children:e.jsx("path",{d:"M4 7h16M4 12h16M4 17h16"})})}),e.jsx(n,{})]})]}),s&&e.jsx("div",{className:"md:hidden border-t border-gray-200 bg-white",children:e.jsxs("div",{className:"container-narrow py-3 flex flex-col gap-2 text-sm text-gray-700",children:[e.jsx("a",{href:"/docs/intro.html",className:"hover:text-gray-900",onClick:()=>t(!1),children:"Docs"}),e.jsx("a",{href:"/changelog.html",className:"hover:text-gray-900",onClick:()=>t(!1),children:"Changelog"}),e.jsx("a",{href:"/api.html",className:"hover:text-gray-900",onClick:()=>t(!1),children:"API"})]})})]})}function m(){return e.jsx("section",{className:"relative",children:e.jsxs("div",{className:"container-narrow section text-center",children:[e.jsx("span",{className:"eyebrow mb-3 inline-block",children:"Self-hosted offline audio transcription"}),e.jsx("h1",{className:"headline",children:e.jsx(a,{className:"text-5xl sm:text-6xl md:text-7xl font-normal"})}),e.jsx("p",{className:"subcopy mt-3 mx-auto max-w-2xl",children:"Transcribe audio locally into text - Summarize and Chat with your audio. No GPU Required."}),e.jsxs("div",{className:"mt-8 flex items-center justify-center gap-3",children:[e.jsx("a",{href:"/docs/installation.html",className:"button-primary",children:"Get Started"}),e.jsx("a",{href:"#features",className:"button-ghost",children:"Learn more"})]}),e.jsx("div",{className:"mt-6 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",onClick:s=>{s.preventDefault(),window.open("https://ko-fi.com/H2H41KQZA3","_blank","noopener,noreferrer")},children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})}),e.jsx("div",{className:"mt-12 max-w-5xl mx-auto",children:e.jsxs("div",{className:"rounded-3xl shadow-soft overflow-hidden bg-white hover-lift",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-100",children:[e.jsx("span",{className:"size-3 rounded-full bg-red-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-yellow-400/80"}),e.jsx("span",{className:"size-3 rounded-full bg-green-400/80"})]}),e.jsx("img",{src:"/screenshots/scriberr-homepage.png",alt:"Scriberr homepage",className:"w-full object-cover"})]})}),e.jsxs("div",{className:"mt-6 flex items-center justify-center gap-4 text-xs text-gray-500",children:[e.jsx("span",{children:"Privacy preserving"}),e.jsx("span",{children:"Mobile ready"}),e.jsx("span",{children:"Fast and responsive"})]})]})})}const h=[{title:"Precise transcription",desc:"Tweak advanced transcription parameters to get the best quality output"},{title:"Built-in recorder",desc:"Capture audio directly in-app and transcribe instantly."},{title:"Summarize & chat",desc:"Extract key points or chat over transcripts using LLMs."},{title:"Lightweight notes",desc:"Highlight, annotate, and tag important moments as you listen/read."},{title:"Speaker diarization",desc:"Identify and label distinct speakers in your audio."},{title:"Profiles & presets",desc:"Save configurations for different audio scenarios."}];function x({name:s}){const t="size-4";switch(s){case"Precise transcription":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:t,children:[e.jsx("path",{d:"M12 3v10a3 3 0 1 1-6 0V8"}),e.jsx("path",{d:"M19 10v3a7 7 0 0 1-14 0"})]});case"Built-in recorder":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:t,children:[e.jsx("rect",{x:"9",y:"9",width:"6",height:"6",rx:"3"}),e.jsx("circle",{cx:"12",cy:"12",r:"9"})]});case"Summarize & chat":return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:t,children:e.jsx("path",{d:"M21 15a4 4 0 0 1-4 4H7l-4 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"})});case"Lightweight notes":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:t,children:[e.jsx("path",{d:"M9 7h6M9 12h6M9 17h6"}),e.jsx("rect",{x:"5",y:"3",width:"14",height:"18",rx:"2"})]});case"Speaker diarization":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:t,children:[e.jsx("circle",{cx:"7",cy:"8",r:"3"}),e.jsx("path",{d:"M2 19a5 5 0 0 1 10 0"}),e.jsx("circle",{cx:"17",cy:"10",r:"2.5"}),e.jsx("path",{d:"M13 19c.5-2.5 2.5-4 5-4"})]});case"Profiles & presets":return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:t,children:[e.jsx("path",{d:"M6 3v12"}),e.jsx("path",{d:"M12 3v18"}),e.jsx("path",{d:"M18 3v8"})]});default:return e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",className:t,children:e.jsx("path",{d:"M12 6v12m6-6H6"})})}}function p(){return e.jsxs("section",{id:"features",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Capabilities"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"Key Features"}),e.jsx("p",{className:"subcopy mt-2",children:"Curated set of features to manage and work with transcripts."})]}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:h.map(s=>e.jsxs("article",{className:"rounded-2xl p-6 bg-gray-50 shadow-soft hover-lift",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center size-9 rounded-xl bg-gray-100 text-gray-600 shadow-subtle",children:e.jsx(x,{name:s.title})}),e.jsx("h3",{className:"font-medium text-base md:text-lg text-gray-900",children:s.title})]}),e.jsx("p",{className:"subcopy",children:s.desc})]},s.title))})]})}const u=[{title:"Transcript view",desc:"Minimal reading experience with timestamps with playback follow along that highlights currently playing word.",img:"scriberr-transcript page.png",bullets:["Jump from audio timestamp to corresponding word","Jump from text to corresponding audio segment","View transcript as paragraph or as timestamped/speaker segments"]},{title:"Record right in Scriberr",desc:"Capture audio directly in-app and transcribe",img:"scriberr-inbuilt audio recorder for directly recording and transcribing audio within the app.png",bullets:[]},{title:"Summaries at a glance",desc:"Turn long recordings into brief, actionable summaries you can scan in seconds.",img:"scriberr-summarize transcripts.png",bullets:["Write your own custom prompts for summarization","Supports both Ollama/OpenAI (needs API Key) LLM providers","Save multiple summarization presets to reuse quickly"]},{title:"Annotate transcripts",desc:"Highlight important moments, jot down concise notes, and keep insights attached to the exact timestamp.",img:"scriberr-annotate transcript and take notes.png",bullets:["Highlight text to add a note","Timestamped notes allow jumping to exact segment"]},{title:"Advanced controls",desc:"Fine-tune model settings, language, and diarization for optimal results",img:"scriberr-fine tune advanced transcription parameters as you see fit to improve transcription quality.png",bullets:["Language hints and temperature","Diarization and VAD options","Profiles for repeatable setups"]},{title:"Bring your own providers",desc:"Use OpenAI or local models via Ollama for summaries and chat — your keys, your choice.",img:"scriberr-Ollama:openAI llm providers for chat and summarization.png",bullets:["Works with OpenAI or Ollama"]},{title:"Export transcripts",desc:"Download your transcripts in multiple formats",img:"scriberr-download-transcript-in-different-formats.png",bullets:["Export to TXT, Markdown, JSON","Keep timestamps and speaker info"]},{title:"Chat with your transcript",desc:"Ask questions about your recording, extract insights, and clarify details without scrubbing through audio.",img:"scriberr-chat-with-your-recording-transcript.png",bullets:["Works with OpenAI or Ollama"]},{title:"API keys and REST API",desc:"Manage API keys and use the full REST API to build automations or integrate Scriberr into your own applications.",img:"scriberr-api-key-management.png",bullets:["Secure API key management","Endpoints for transcription, chat, notes and more"]},{title:"Transcribe YouTube videos",desc:"Paste a YouTube link to transcribe the audio directly — no downloads required.",img:"scriberr-youtube-video.png",bullets:["Grab insights from talks, podcasts and lectures","Works with summarization and notes"]}];function g(){return e.jsxs("section",{id:"details",className:"container-narrow section",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("span",{className:"eyebrow",children:"Details"}),e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold mt-2",children:"A closer look"})]}),e.jsx("div",{className:"space-y-16 md:space-y-24",children:u.map((s,t)=>e.jsxs("div",{className:"grid md:grid-cols-2 gap-8 md:gap-10 items-center",children:[e.jsx("div",{className:t%2===0?"order-1 md:order-1":"order-2 md:order-2",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl md:text-2xl font-semibold text-gray-900",children:s.title}),e.jsx("p",{className:"subcopy mt-2",children:s.desc}),s.bullets&&e.jsx("ul",{className:"mt-4 space-y-2 text-sm text-gray-600 list-disc list-inside",children:s.bullets.map(r=>e.jsx("li",{children:r},r))})]})}),e.jsx("div",{className:t%2===0?"order-2 md:order-2":"order-1 md:order-1",children:e.jsx(c,{src:`/screenshots/${s.img}`,alt:s.title})})]},s.title))})]})}function f(){return e.jsx("footer",{className:"mt-8 bg-gray-50",children:e.jsxs("div",{className:"container-narrow py-10 text-center text-sm text-gray-700",children:[e.jsxs("p",{children:["If you like Scriberr, consider giving the project a star on"," ",e.jsx("a",{href:"https://github.com/rishikanthc/scriberr",target:"_blank",rel:"noreferrer",className:"text-blue-600 hover:text-blue-700 underline-offset-2 hover:underline",children:"GitHub"}),"."]}),e.jsx("div",{className:"mt-4 flex justify-center",children:e.jsx("a",{href:"https://ko-fi.com/H2H41KQZA3",target:"_blank",rel:"noopener noreferrer",children:e.jsx("img",{height:"36",style:{border:"0px",height:"36px"},src:"https://storage.ko-fi.com/cdn/kofi6.png?v=6",alt:"Buy Me a Coffee at ko-fi.com"})})})]})})}function j(){return e.jsxs("div",{className:"min-h-screen flex flex-col",children:[e.jsx(d,{}),e.jsxs("main",{className:"flex-1",children:[e.jsx(m,{}),e.jsx(p,{}),e.jsx(g,{})]}),e.jsx(f,{})]})}const b=o(document.getElementById("root"));b.render(e.jsx(l.StrictMode,{children:e.jsx(j,{})})); diff --git a/docs/assets/styles-73wRgAyJ.css b/docs/assets/styles-73wRgAyJ.css deleted file mode 100644 index 9434a557..00000000 --- a/docs/assets/styles-73wRgAyJ.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter var,Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.right-2{right:.5rem}.top-0{top:0}.top-2{top:.5rem}.top-24{top:6rem}.z-40{z-index:40}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-3{width:.75rem;height:.75rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-9{width:2.25rem;height:2.25rem}.min-h-\[200px\]{min-height:200px}.min-h-screen{min-height:100vh}.w-\[300px\]{width:300px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[54px\]{min-width:54px}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.flex-1{flex:1 1 0%}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-cyan-50{--tw-bg-opacity: 1;background-color:rgb(236 254 255 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-green-400\/80{background-color:#4ade80cc}.bg-red-400\/80{background-color:#f87171cc}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/80{background-color:#fffc}.bg-yellow-400\/80{background-color:#facc15cc}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-600{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-purple-400{--tw-gradient-to: #c084fc var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0\.5{padding:.125rem}.p-12{padding:3rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[28px\]{font-size:28px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.underline-offset-2{text-underline-offset:2px}.shadow-soft{--tw-shadow: 0 2px 10px rgba(0,0,0,.04);--tw-shadow-colored: 0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-subtle{--tw-shadow: 0 1px 0 rgba(17,24,39,.04) inset;--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-amber-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.ring-blue-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.ring-cyan-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity, 1))}.ring-emerald-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity, 1))}.ring-gray-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1))}.ring-rose-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity, 1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}html,body,#root{height:100%}body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-y:scroll}html{scrollbar-gutter:stable both-edges}.container-narrow{margin-left:auto;margin-right:auto;max-width:80rem;padding-left:1rem;padding-right:1rem}@media (min-width: 640px){.container-narrow{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1024px){.container-narrow{padding-left:2rem;padding-right:2rem}}.card{border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.badge{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-primary:hover{opacity:.95}.button-primary:active{opacity:.9}.button-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-ghost:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.headline{font-size:2.25rem;line-height:2.5rem;font-weight:600;line-height:1.25;letter-spacing:-.025em}@media (min-width: 640px){.headline{font-size:3rem;line-height:1}}@media (min-width: 768px){.headline{font-size:3.75rem;line-height:1}}.subcopy{font-size:1rem;line-height:1.5rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.subcopy{font-size:1.125rem;line-height:1.75rem}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.section{padding-top:6rem;padding-bottom:6rem}.divider{border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.eyebrow{font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.hover-lift{transition-property:transform;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.hover-lift:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow: 0 6px 24px rgba(0,0,0,.06);--tw-shadow-colored: 0 6px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.logo-font-poiret{font-family:Poiret One,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;letter-spacing:.04em}.api-topbar{position:sticky;top:0;z-index:40;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));background-color:#fffc;--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.api-sidebar{display:none;border-right-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}@media (min-width: 768px){.api-sidebar{display:block}}.api-card{border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:1rem}.api-section-title{font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.kbd{display:inline-block;border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:.125rem .375rem;font-size:11px;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.codeblock{overflow-x:auto;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:.75rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.codeblock-wrap{white-space:pre-wrap;word-break:break-word}.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.125rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset}.status-pill{display:inline-flex;align-items:center;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));padding:.125rem .5rem;font-size:11px;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.docs-prose{font-family:Noto Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.docs-prose h1{font-size:32px;font-weight:600;letter-spacing:-.025em;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.docs-prose h1{font-size:36px}}.docs-prose h2{font-size:1.25rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.docs-prose h2{font-size:1.5rem;line-height:2rem}}.docs-prose p{font-size:15px;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.docs-prose p{font-size:1rem;line-height:1.5rem}}.docs-prose ul{font-size:15px;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.docs-prose ul{font-size:1rem;line-height:1.5rem}}.docs-prose li{margin-top:.125rem;margin-bottom:.125rem}.docs-prose a{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1));text-underline-offset:2px}.docs-prose a:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1));text-decoration-line:underline}.changelog-prose h2{font-size:1.25rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.changelog-prose h2{font-size:1.5rem;line-height:2rem}}.changelog-prose p,.changelog-prose li,.changelog-prose ul,.changelog-prose div{font-size:15px;line-height:1.75rem}@media (min-width: 768px){.changelog-prose p,.changelog-prose li,.changelog-prose ul,.changelog-prose div{font-size:1rem;line-height:1.5rem}}.changelog-prose li{margin-top:.125rem;margin-bottom:.125rem}.changelog-prose a{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1));text-underline-offset:2px}.changelog-prose a:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1));text-decoration-line:underline}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-gray-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1))}.active\:bg-gray-100:active{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}@media (min-width: 640px){.sm\:hidden{display:none}.sm\:w-56{width:14rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width: 768px){.md\:order-1{order:1}.md\:order-2{order:2}.md\:col-span-1{grid-column:span 1 / span 1}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[240px_minmax\(0\,1fr\)\]{grid-template-columns:240px minmax(0,1fr)}.md\:grid-cols-\[260px_minmax\(0\,1fr\)\]{grid-template-columns:260px minmax(0,1fr)}.md\:gap-10{gap:2.5rem}.md\:space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(6rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(6rem * var(--tw-space-y-reverse))}.md\:p-16{padding:4rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} diff --git a/docs/assets/styles-CsHvZ3hC.css b/docs/assets/styles-CsHvZ3hC.css new file mode 100644 index 00000000..913cb24b --- /dev/null +++ b/docs/assets/styles-CsHvZ3hC.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter var,Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.right-2{right:.5rem}.top-0{top:0}.top-2{top:.5rem}.top-24{top:6rem}.z-40{z-index:40}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-3{width:.75rem;height:.75rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-9{width:2.25rem;height:2.25rem}.h-16{height:4rem}.h-8{height:2rem}.min-h-\[200px\]{min-height:200px}.min-h-screen{min-height:100vh}.w-\[300px\]{width:300px}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[54px\]{min-width:54px}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.flex-1{flex:1 1 0%}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-cyan-50{--tw-bg-opacity: 1;background-color:rgb(236 254 255 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-green-400\/80{background-color:#4ade80cc}.bg-red-400\/80{background-color:#f87171cc}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/80{background-color:#fffc}.bg-yellow-400\/80{background-color:#facc15cc}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0\.5{padding:.125rem}.p-12{padding:3rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[28px\]{font-size:28px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-cyan-700{--tw-text-opacity: 1;color:rgb(14 116 144 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.underline-offset-2{text-underline-offset:2px}.shadow-soft{--tw-shadow: 0 2px 10px rgba(0,0,0,.04);--tw-shadow-colored: 0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-subtle{--tw-shadow: 0 1px 0 rgba(17,24,39,.04) inset;--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-amber-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.ring-blue-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.ring-cyan-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity, 1))}.ring-emerald-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity, 1))}.ring-gray-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1))}.ring-rose-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity, 1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}html,body,#root{height:100%}body{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-y:scroll}html{scrollbar-gutter:stable both-edges}.container-narrow{margin-left:auto;margin-right:auto;max-width:80rem;padding-left:1rem;padding-right:1rem}@media (min-width: 640px){.container-narrow{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1024px){.container-narrow{padding-left:2rem;padding-right:2rem}}.card{border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.badge{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-primary:hover{opacity:.95}.button-primary:active{opacity:.9}.button-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-ghost:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.headline{font-size:2.25rem;line-height:2.5rem;font-weight:600;line-height:1.25;letter-spacing:-.025em}@media (min-width: 640px){.headline{font-size:3rem;line-height:1}}@media (min-width: 768px){.headline{font-size:3.75rem;line-height:1}}.subcopy{font-size:1rem;line-height:1.5rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.subcopy{font-size:1.125rem;line-height:1.75rem}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.section{padding-top:6rem;padding-bottom:6rem}.divider{border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.eyebrow{font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.hover-lift{transition-property:transform;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.hover-lift:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow: 0 6px 24px rgba(0,0,0,.06);--tw-shadow-colored: 0 6px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.logo-font-poiret{font-family:Poiret One,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;letter-spacing:.04em}.api-topbar{position:sticky;top:0;z-index:40;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));background-color:#fffc;--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.api-sidebar{display:none;border-right-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}@media (min-width: 768px){.api-sidebar{display:block}}.api-card{border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:1rem}.api-section-title{font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.kbd{display:inline-block;border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:.125rem .375rem;font-size:11px;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.codeblock{overflow-x:auto;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:.75rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.codeblock-wrap{white-space:pre-wrap;word-break:break-word}.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.125rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset}.status-pill{display:inline-flex;align-items:center;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));padding:.125rem .5rem;font-size:11px;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.docs-prose{font-family:Noto Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.docs-prose h1{font-size:32px;font-weight:600;letter-spacing:-.025em;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.docs-prose h1{font-size:36px}}.docs-prose h2{font-size:1.25rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.docs-prose h2{font-size:1.5rem;line-height:2rem}}.docs-prose p{font-size:15px;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.docs-prose p{font-size:1rem;line-height:1.5rem}}.docs-prose ul{font-size:15px;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.docs-prose ul{font-size:1rem;line-height:1.5rem}}.docs-prose li{margin-top:.125rem;margin-bottom:.125rem}.docs-prose a{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1));text-underline-offset:2px}.docs-prose a:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1));text-decoration-line:underline}.changelog-prose h2{font-size:1.25rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.changelog-prose h2{font-size:1.5rem;line-height:2rem}}.changelog-prose p,.changelog-prose li,.changelog-prose ul,.changelog-prose div{font-size:15px;line-height:1.75rem}@media (min-width: 768px){.changelog-prose p,.changelog-prose li,.changelog-prose ul,.changelog-prose div{font-size:1rem;line-height:1.5rem}}.changelog-prose li{margin-top:.125rem;margin-bottom:.125rem}.changelog-prose a{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1));text-underline-offset:2px}.changelog-prose a:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1));text-decoration-line:underline}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-gray-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1))}.active\:bg-gray-100:active{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}@media (min-width: 640px){.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-20{height:5rem}.sm\:w-56{width:14rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:order-1{order:1}.md\:order-2{order:2}.md\:col-span-1{grid-column:span 1 / span 1}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-24{height:6rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[240px_minmax\(0\,1fr\)\]{grid-template-columns:240px minmax(0,1fr)}.md\:grid-cols-\[260px_minmax\(0\,1fr\)\]{grid-template-columns:260px minmax(0,1fr)}.md\:gap-10{gap:2.5rem}.md\:space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(6rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(6rem * var(--tw-space-y-reverse))}.md\:p-16{padding:4rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width: 1024px){.lg\:h-28{height:7rem}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:h-32{height:8rem}} diff --git a/docs/assets/styles-DAhCVYAn.js b/docs/assets/styles-DGJLjUaE.js similarity index 100% rename from docs/assets/styles-DAhCVYAn.js rename to docs/assets/styles-DGJLjUaE.js diff --git a/docs/changelog.html b/docs/changelog.html index f341e608..66201841 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -7,9 +7,9 @@ - - - + + +
diff --git a/docs/docs/contributing.html b/docs/docs/contributing.html index 62d7e691..d7a10da3 100644 --- a/docs/docs/contributing.html +++ b/docs/docs/contributing.html @@ -7,10 +7,10 @@ - - - - + + + +
diff --git a/docs/docs/diarization.html b/docs/docs/diarization.html index cda5d989..13a420a1 100644 --- a/docs/docs/diarization.html +++ b/docs/docs/diarization.html @@ -7,11 +7,11 @@ - - - - - + + + + +
diff --git a/docs/docs/installation.html b/docs/docs/installation.html index 6dd95987..68fee0a6 100644 --- a/docs/docs/installation.html +++ b/docs/docs/installation.html @@ -7,10 +7,10 @@ - - - - + + + +
diff --git a/docs/docs/intro.html b/docs/docs/intro.html index 01a0f857..ce1dc813 100644 --- a/docs/docs/intro.html +++ b/docs/docs/intro.html @@ -7,11 +7,11 @@ - - - - - + + + + +
diff --git a/docs/index.html b/docs/index.html index 169bef26..d5150899 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,16 +2,20 @@ + + + + Scriberr — Transcribe audio. Summarize. Annotate. - - - - + + + +
diff --git a/docs/scriberr-logo.png b/docs/scriberr-logo.png new file mode 100644 index 00000000..9ef5268b Binary files /dev/null and b/docs/scriberr-logo.png differ diff --git a/docs/scriberr-thumb.png b/docs/scriberr-thumb.png new file mode 100644 index 00000000..3c02ae6d Binary files /dev/null and b/docs/scriberr-thumb.png differ