From db29937e7f28522ae0ec3954dd1ea3f011ee6f0a Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 8 Sep 2025 21:46:10 +0000 Subject: [PATCH] Deploy landing site to docs folder --- docs/api.html | 6 +++--- docs/api/undocumented.json | 7 +++++++ ...ayout-BDGdyfmi.js => DocsLayout-CwjFaNb7.js} | 2 +- .../{Window-BTa2N_kG.js => Window-BJy5jSY4.js} | 2 +- .../assets/{api-bFwG1I4T.js => api-DHYfZ7Ms.js} | 2 +- ...ngelog-DGSZ6MXL.js => changelog-DWzfAPOu.js} | 2 +- ...ing-CmtFphE8.js => contributing-CC8jrLw6.js} | 2 +- ...tion-CUktH-fa.js => diarization-7IInt4rl.js} | 2 +- ...ion-DCK86Uqj.js => installation-D_xAZIAP.js} | 2 +- .../{intro-CsxoQerG.js => intro-oOWQqgT4.js} | 2 +- docs/assets/index-CTEra42u.js | 1 + docs/assets/index-D8RF9mpR.js | 1 - docs/assets/styles-73wRgAyJ.css | 1 - docs/assets/styles-CsHvZ3hC.css | 1 + .../{styles-DAhCVYAn.js => styles-DGJLjUaE.js} | 0 docs/changelog.html | 6 +++--- docs/docs/contributing.html | 8 ++++---- docs/docs/diarization.html | 10 +++++----- docs/docs/installation.html | 8 ++++---- docs/docs/intro.html | 10 +++++----- docs/index.html | 12 ++++++++---- docs/scriberr-logo.png | Bin 0 -> 26296 bytes docs/scriberr-thumb.png | Bin 0 -> 51462 bytes 23 files changed, 49 insertions(+), 38 deletions(-) rename docs/assets/{DocsLayout-BDGdyfmi.js => DocsLayout-CwjFaNb7.js} (97%) rename docs/assets/{Window-BTa2N_kG.js => Window-BJy5jSY4.js} (88%) rename docs/assets/{api-bFwG1I4T.js => api-DHYfZ7Ms.js} (99%) rename docs/assets/{changelog-DGSZ6MXL.js => changelog-DWzfAPOu.js} (99%) rename docs/assets/docs/{contributing-CmtFphE8.js => contributing-CC8jrLw6.js} (96%) rename docs/assets/docs/{diarization-CUktH-fa.js => diarization-7IInt4rl.js} (93%) rename docs/assets/docs/{installation-DCK86Uqj.js => installation-D_xAZIAP.js} (97%) rename docs/assets/docs/{intro-CsxoQerG.js => intro-oOWQqgT4.js} (90%) create mode 100644 docs/assets/index-CTEra42u.js delete mode 100644 docs/assets/index-D8RF9mpR.js delete mode 100644 docs/assets/styles-73wRgAyJ.css create mode 100644 docs/assets/styles-CsHvZ3hC.css rename docs/assets/{styles-DAhCVYAn.js => styles-DGJLjUaE.js} (100%) create mode 100644 docs/scriberr-logo.png create mode 100644 docs/scriberr-thumb.png 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 0000000000000000000000000000000000000000..9ef5268b820112bdcc3c0836799a335792759f89 GIT binary patch literal 26296 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 literal 0 HcmV?d00001