@ahmedrowaihi/8n 6.0.63 → 6.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3494,7 +3494,7 @@ async function checkSelfUpdate() {
3494
3494
  });
3495
3495
  if (!res.ok) return;
3496
3496
  const { version: latest } = await res.json();
3497
- const current = "6.0.63";
3497
+ const current = "6.0.64";
3498
3498
  if (latest !== current) console.log(pc.yellow("⚠") + pc.dim(` new version available: `) + pc.cyan(latest) + pc.dim(` (current: ${current}) — run `) + pc.cyan("npm i -g @ahmedrowaihi/8n") + pc.dim(" to update"));
3499
3499
  } catch {}
3500
3500
  }
@@ -3599,7 +3599,7 @@ async function dev() {
3599
3599
  async function build({ server = false } = {}) {
3600
3600
  const { config, contentDir } = await resolveProject();
3601
3601
  const projectDir = process.cwd();
3602
- console.log(pc.cyan("8n") + pc.dim(` v6.0.63 build → ${contentDir}`));
3602
+ console.log(pc.cyan("8n") + pc.dim(` v6.0.64 build → ${contentDir}`));
3603
3603
  if (server) await runNextFlat(projectDir, "build", buildEnv({
3604
3604
  config,
3605
3605
  contentDir,
@@ -3974,7 +3974,7 @@ async function mcp() {
3974
3974
  const mcpDir = join(getStarterDir(), "content", "mcp");
3975
3975
  const server = new McpServer({
3976
3976
  name: "8n",
3977
- version: "6.0.63"
3977
+ version: "6.0.64"
3978
3978
  });
3979
3979
  server.registerTool("read_me", {
3980
3980
  description: "Returns how to use the 8n MCP tools. Call this BEFORE documenting anything with 8n.",
@@ -4092,7 +4092,7 @@ async function generateApi({ input, output }) {
4092
4092
 
4093
4093
  //#endregion
4094
4094
  //#region src/index.ts
4095
- const program = new Command().name("8n").description("Run your 8n docs site").version("6.0.63").addOption(new Option("--debug").hideHelp()).hook("preAction", (cmd) => {
4095
+ const program = new Command().name("8n").description("Run your 8n docs site").version("6.0.64").addOption(new Option("--debug").hideHelp()).hook("preAction", (cmd) => {
4096
4096
  if (cmd.opts().debug) process.env.DEBUG_8N = "1";
4097
4097
  });
4098
4098
  program.command("init").description("Scaffold a new docs project in the current directory").action(init);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ahmedrowaihi/8n",
3
- "version": "6.0.63",
3
+ "version": "6.0.64",
4
4
  "description": "8n docs — run your docs site from your content directory",
5
5
  "bin": {
6
6
  "8n": "./dist/index.mjs"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ahmedrowaihi/8n-starter",
3
- "version": "6.0.63",
3
+ "version": "6.0.64",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -1 +1 @@
1
- export{Feedback,FeedbackBlock}from"../../features/feedback";
1
+ export{FeedbackBlock}from"../../features/feedback";
@@ -1 +1 @@
1
- export{createGitHubFeedbackAction,createGitHubBlockFeedbackAction}from"../../features/feedback";
1
+ export{createGitHubBlockFeedbackAction}from"../../features/feedback";
@@ -1 +1 @@
1
- export{blockFeedback,pageFeedback,actionResponse}from"../../features/feedback";
1
+ export{blockFeedback,actionResponse}from"../../features/feedback";
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{localeConfig as o}from"../../locale.config";import{FeedbackBlockMDX as t}from"../../features/feedback";import*as a from"fumadocs-twoslash/ui";import r from"@fumadocs/base-ui/mdx";import*as i from"./mdx/base-ui";import*as n from"./mdx/blocks";import*as s from"./mdx/openapi.js";import m from"fumadocs-core/link";let c=Object.keys(o);export function getMDXComponentsForLang(t,a,r,i){let n=(o[t]??o.en).translations;return getMDXComponents({feedbackTranslations:a?{question:n.feedbackQuestion,feedbackLabel:n.feedbackLabel,good:n.feedbackGood,bad:n.feedbackBad,placeholder:n.feedbackPlaceholder,submit:n.feedbackSubmit,thankYou:n.feedbackThankYou,viewOnGitHub:n.feedbackViewOnGitHub,submitAgain:n.feedbackSubmitAgain}:void 0,feedbackPageTitle:a,githubRepo:r},{a:({href:o,children:a,...r})=>{var i,n;return e(m,{href:o?(i=o,n=t,!i.startsWith("/")||c.some(e=>i===`/${e}`||i.startsWith(`/${e}/`))?i:`/${n}${i}`):"#",...r,children:a})},...i})}export function getMDXComponents(o,m){let{feedbackTranslations:c,feedbackPageTitle:f,githubRepo:d}=o??{};return{...r,...a,...i,...s,...n,FeedbackBlock:c&&f&&d?o=>e(t,{...o,translations:c,pageTitle:f,githubRepo:d}):()=>null,...m}}export const useMDXComponents=getMDXComponents;
1
+ import{jsx as e}from"react/jsx-runtime";import{localeConfig as t}from"../../locale.config";import{FeedbackBlockMDX as o}from"../../features/feedback";import*as a from"fumadocs-twoslash/ui";import r from"@fumadocs/base-ui/mdx";import*as i from"./mdx/base-ui";import*as n from"./mdx/blocks";import*as s from"./mdx/openapi.js";import m from"fumadocs-core/link";let c=Object.keys(t);export function getMDXComponentsForLang(o,a,r,i){let n=(t[o]??t.en).translations;return getMDXComponents({feedbackTranslations:a?{feedbackLabel:n.feedbackLabel,placeholder:n.feedbackPlaceholder,submit:n.feedbackSubmit,thankYou:n.feedbackThankYou,viewOnGitHub:n.feedbackViewOnGitHub,submitAgain:n.feedbackSubmitAgain}:void 0,feedbackPageTitle:a,githubRepo:r},{a:({href:t,children:a,...r})=>{var i,n;return e(m,{href:t?(i=t,n=o,!i.startsWith("/")||c.some(e=>i===`/${e}`||i.startsWith(`/${e}/`))?i:`/${n}${i}`):"#",...r,children:a})},...i})}export function getMDXComponents(t,m){let{feedbackTranslations:c,feedbackPageTitle:f,githubRepo:b}=t??{};return{...r,...a,...i,...s,...n,FeedbackBlock:c&&f&&b?t=>e(o,{...t,translations:c,pageTitle:f,githubRepo:b}):()=>null,...m}}export const useMDXComponents=getMDXComponents;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{jsx as e,jsxs as o}from"react/jsx-runtime";import{DocsBody as t,DocsDescription as a,DocsPage as r,DocsTitle as i,EditOnGitHub as l,PageLastUpdate as n,MarkdownCopyButton as c,ViewOptionsPopover as d}from"../../../components/fumadocs/layout/docs/page";import{DocsTOC as f}from"../../../components/fumadocs/layout/docs/page/docs-toc";import{Feedback as s,createGitHubFeedbackAction as b}from"../../feedback";import{localeConfig as m}from"../../../locale.config";export function DocsPageContent({toc:u,frontmatter:p,children:k,markdownUrl:h,github:g,path:U,lang:w,lastModified:x,neighbours:C,full:v}){let y=(m[w]??m.en).translations;return e(r,{asChild:!0,toc:u,full:v,tableOfContent:{enabled:!0,component:e(f,{toc:u,style:"clerk",translations:{toc:y.toc,aiChatTrigger:y.aiChatTrigger}})},tableOfContentPopover:{style:"clerk"},footer:{items:C},children:o("div",{children:[e(i,{children:p.title}),e(a,{children:p.description}),!v&&(h||g?.fileUrl)&&o("div",{className:"flex flex-row gap-2 items-center border-b -mt-4 pb-6",children:[h&&e(c,{markdownUrl:h}),h&&g?.fileUrl&&e(d,{markdownUrl:h,githubUrl:g.fileUrl}),g?.fileUrl&&e(l,{href:g.fileUrl})]}),e(t,{children:k}),!v&&x&&e(n,{date:new Date(x)}),!v&&g?.repo&&e(s,{onSendAction:b(p.title,g.repo),translations:{question:y.feedbackQuestion,feedbackLabel:y.feedbackLabel,good:y.feedbackGood,bad:y.feedbackBad,placeholder:y.feedbackPlaceholder,submit:y.feedbackSubmit,thankYou:y.feedbackThankYou,viewOnGitHub:y.feedbackViewOnGitHub,submitAgain:y.feedbackSubmitAgain}})]})})}
2
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{DocsBody as o,DocsDescription as r,DocsPage as l,DocsTitle as n,EditOnGitHub as i,PageLastUpdate as a,MarkdownCopyButton as c,ViewOptionsPopover as s}from"../../../components/fumadocs/layout/docs/page";import{DocsTOC as d}from"../../../components/fumadocs/layout/docs/page/docs-toc";import{localeConfig as f}from"../../../locale.config";export function DocsPageContent({toc:m,frontmatter:p,children:h,markdownUrl:g,github:u,lang:U,lastModified:b,neighbours:x,full:C}){let k=(f[U]??f.en).translations;return e(l,{asChild:!0,toc:m,full:C,tableOfContent:{enabled:!0,component:e(d,{toc:m,style:"clerk",translations:{toc:k.toc,aiChatTrigger:k.aiChatTrigger}})},tableOfContentPopover:{style:"clerk"},footer:{items:x},children:t("div",{children:[e(n,{children:p.title}),e(r,{children:p.description}),!C&&(g||u?.fileUrl)&&t("div",{className:"flex flex-row gap-2 items-center border-b -mt-4 pb-6",children:[g&&e(c,{markdownUrl:g}),g&&u?.fileUrl&&e(s,{markdownUrl:g,githubUrl:u.fileUrl}),u?.fileUrl&&e(i,{href:u.fileUrl})]}),e(o,{children:h}),!C&&b&&e(a,{date:new Date(b)})]})})}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{cn as r}from"../../../lib/cn";import{Button as a,buttonVariants as n}from"../../../components/ui/button";import{CornerDownRightIcon as o,MessageSquare as l,ThumbsDown as s,ThumbsUp as i}from"lucide-react";import{useEffect as c,useEffectEvent as d,useState as u,useTransition as m}from"react";import{Collapsible as p,CollapsibleContent as f}from"../../../components/ui/collapsible";import{cva as g}from"class-variance-authority";import{usePathname as b}from"../../../lib/navigation";import{Popover as h,PopoverContent as x,PopoverTrigger as v}from"../../../components/ui/popover";import{actionResponse as y,blockFeedback as N,pageFeedback as k}from"../schema";import{z as w}from"zod/mini";import{Textarea as C}from"../../../components/ui/textarea";let z=g("inline-flex items-center gap-2 px-3 py-2 rounded-full font-medium border text-sm [&_svg]:size-4 disabled:cursor-not-allowed",{variants:{active:{true:"bg-accent text-accent-foreground [&_svg]:fill-current",false:"text-muted-foreground"}}}),S=w.extend(k,{response:y}),O=w.extend(N,{response:y});export function Feedback({onSendAction:o,translations:l}){let c=b(),{previous:d,setPrevious:g}=D(c,e=>{let t=S.safeParse(e);return t.success?t.data:null}),[h,x]=u(null),[v,y]=u(""),[N,k]=m();function w(e){null!=h&&(k(async()=>{let e={url:c,opinion:h,message:v};g({response:await o(e),...e}),y(""),x(null)}),e?.preventDefault())}let O=d?.opinion??h;return t(p,{open:null!==h||null!==d,onOpenChange:e=>{e||x(null)},className:"border-y py-3",children:[t("div",{className:"flex flex-row items-center gap-2",children:[e("p",{className:"text-sm font-medium pe-2",children:l.question}),t("button",{disabled:null!==d,className:r(z({active:"good"===O})),onClick:()=>{x("good")},children:[e(i,{}),l.good]}),t("button",{disabled:null!==d,className:r(z({active:"bad"===O})),onClick:()=>{x("bad")},children:[e(s,{}),l.bad]})]}),e(f,{className:"mt-3",children:d?t("div",{className:"px-3 py-6 flex flex-col items-center gap-3 bg-card text-muted-foreground text-sm text-center rounded-xl",children:[e("p",{children:l.thankYou}),t("div",{className:"flex flex-row items-center gap-2",children:[d.response?.githubUrl&&e("a",{href:d.response.githubUrl,rel:"noreferrer noopener",target:"_blank",className:r(n({variant:"default"}),"text-xs"),children:l.viewOnGitHub}),e(a,{variant:"secondary",className:"text-xs",onClick:()=>{x(d.opinion),g(null)},children:l.submitAgain})]})]}):t("form",{className:"flex flex-col gap-3",onSubmit:w,children:[e(C,{autoFocus:!0,required:!0,value:v,onChange:e=>y(e.target.value),placeholder:l.placeholder,onKeyDown:e=>{e.shiftKey||"Enter"!==e.key||w(e)}}),e(a,{type:"submit",variant:"outline",className:"w-fit px-3",disabled:N,children:l.submit})]})})]})}export function FeedbackBlock({id:s,body:i,onSendAction:c,translations:d,children:p}){let f=b(),g=`${f}-${s}`,{previous:y,setPrevious:N}=D(g,e=>{let t=O.safeParse(e);return t.success?t.data:null}),[k,w]=u(""),[z,S]=m(),[F,K]=u(!1);function P(e){S(async()=>{let e={blockId:g,blockBody:i,url:f,message:k};N({response:await c(e),...e}),w("")}),e?.preventDefault()}return t(h,{open:F,onOpenChange:K,children:[t("div",{className:"relative group/feedback",children:[e("div",{className:r("absolute -inset-1 rounded-sm pointer-events-none transition-colors duration-100 z-[-1]",F?"bg-accent":"group-hover/feedback:bg-accent group-hover/feedback:delay-100")}),t(v,{className:r(n({variant:"secondary",size:"sm"}),"absolute -top-7 inset-e-0 backdrop-blur-sm text-muted-foreground gap-1.5 transition-all duration-100 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",!F&&"opacity-0 pointer-events-none group-hover/feedback:pointer-events-auto group-hover/feedback:opacity-100 group-hover/feedback:delay-100 hover:pointer-events-auto hover:opacity-100 hover:delay-100"),onClick:e=>{K(e=>!e),e.stopPropagation(),e.preventDefault()},children:[e(l,{className:"size-3.5"}),d.feedbackLabel]}),e("div",{className:"in-[.prose-no-margin]:prose-no-margin",children:p})]}),e(x,{className:"min-w-75 bg-card text-card-foreground",children:y?t("div",{className:"flex flex-col items-center py-2 gap-2 text-muted-foreground text-sm text-center rounded-xl",children:[e("p",{children:d.thankYou}),t("div",{className:"flex flex-row items-center gap-2",children:[y.response?.githubUrl&&e("a",{href:y.response.githubUrl,rel:"noreferrer noopener",target:"_blank",className:r(n({variant:"default"}),"text-xs"),children:d.viewOnGitHub}),e(a,{variant:"secondary",className:"text-xs",onClick:()=>N(null),children:d.submitAgain})]})]}):t("form",{className:"flex flex-col gap-2",onSubmit:P,children:[e(C,{autoFocus:!0,required:!0,value:k,onChange:e=>w(e.target.value),placeholder:d.placeholder,onKeyDown:e=>{e.shiftKey||"Enter"!==e.key||P(e)}}),t(a,{type:"submit",variant:"secondary",size:"sm",className:"gap-1.5",disabled:z,children:[e(o,{className:"text-muted-foreground size-4"}),d.submit]})]})})]})}function D(e,t){let r=`docs-feedback-${e}`,[a,n]=u(null),o=d(t);return c(()=>{let e=localStorage.getItem(r);if(null===e)return;let t=o(JSON.parse(e));null!==t&&n(t)},[r]),{previous:a,setPrevious(e){e?localStorage.setItem(r,JSON.stringify(e)):localStorage.removeItem(r),n(e)}}}
2
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{cn as r}from"../../../lib/cn";import{Button as o,buttonVariants as a}from"../../../components/ui/button";import{CornerDownRightIcon as n,MessageSquare as s}from"lucide-react";import{useEffect as i,useEffectEvent as l,useState as c,useTransition as d}from"react";import{usePathname as m}from"../../../lib/navigation";import{Popover as u,PopoverContent as p,PopoverTrigger as f}from"../../../components/ui/popover";import{actionResponse as g,blockFeedback as v}from"../schema";import{z as b}from"zod/mini";import{Textarea as h}from"../../../components/ui/textarea";let x=b.extend(v,{response:g});export function FeedbackBlock({id:g,body:v,onSendAction:b,translations:k,children:y}){let N=m(),z=`${N}-${g}`,{previous:S,setPrevious:w}=function(e,t){let r=`docs-feedback-${e}`,[o,a]=c(null),n=l(t);return i(()=>{let e=localStorage.getItem(r);if(null===e)return;let t=n(JSON.parse(e));null!==t&&a(t)},[r]),{previous:o,setPrevious(e){e?localStorage.setItem(r,JSON.stringify(e)):localStorage.removeItem(r),a(e)}}}(z,e=>{let t=x.safeParse(e);return t.success?t.data:null}),[C,O]=c(""),[j,D]=d(),[I,P]=c(!1);function $(e){D(async()=>{let e={blockId:z,blockBody:v,url:N,message:C};w({response:await b(e),...e}),O("")}),e?.preventDefault()}return t(u,{open:I,onOpenChange:P,children:[t("div",{className:"relative group/feedback",children:[e("div",{className:r("absolute -inset-1 rounded-sm pointer-events-none transition-colors duration-100 z-[-1]",I?"bg-accent":"group-hover/feedback:bg-accent group-hover/feedback:delay-100")}),t(f,{className:r(a({variant:"secondary",size:"sm"}),"absolute -top-7 inset-e-0 backdrop-blur-sm text-muted-foreground gap-1.5 transition-all duration-100 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",!I&&"opacity-0 pointer-events-none group-hover/feedback:pointer-events-auto group-hover/feedback:opacity-100 group-hover/feedback:delay-100 hover:pointer-events-auto hover:opacity-100 hover:delay-100"),onClick:e=>{P(e=>!e),e.stopPropagation(),e.preventDefault()},children:[e(s,{className:"size-3.5"}),k.feedbackLabel]}),e("div",{className:"in-[.prose-no-margin]:prose-no-margin",children:y})]}),e(p,{className:"min-w-75 bg-card text-card-foreground",children:S?t("div",{className:"flex flex-col items-center py-2 gap-2 text-muted-foreground text-sm text-center rounded-xl",children:[e("p",{children:k.thankYou}),t("div",{className:"flex flex-row items-center gap-2",children:[S.response?.githubUrl&&e("a",{href:S.response.githubUrl,rel:"noreferrer noopener",target:"_blank",className:r(a({variant:"default"}),"text-xs"),children:k.viewOnGitHub}),e(o,{variant:"secondary",className:"text-xs",onClick:()=>w(null),children:k.submitAgain})]})]}):t("form",{className:"flex flex-col gap-2",onSubmit:$,children:[e(h,{autoFocus:!0,required:!0,value:C,onChange:e=>O(e.target.value),placeholder:k.placeholder,onKeyDown:e=>{e.shiftKey||"Enter"!==e.key||$(e)}}),t(o,{type:"submit",variant:"secondary",size:"sm",className:"gap-1.5",disabled:j,children:[e(n,{className:"text-muted-foreground size-4"}),k.submit]})]})})]})}
@@ -1,6 +1,4 @@
1
- export function createGitHubFeedbackAction(e,o){return async n=>{if(!o)return{};let r="good"===n.opinion?"👍 Good":"👎 Bad",a=`Feedback: ${e}`,c=new URLSearchParams({title:a,body:[`**Page:** ${n.url}`,`**Rating:** ${r}`,n.message?`
2
- **Comment:**
3
- ${n.message}`:""].filter(Boolean).join("\n")}),t=`${o}/discussions/new?category=docs-feedback&${c}`;return window.open(t,"_blank","noopener,noreferrer"),{githubUrl:t}}}export function createGitHubBlockFeedbackAction(e,o){return async n=>{if(!o)return{};let r=`Block Feedback: ${e}`,a=new URLSearchParams({title:r,body:[`**Page:** ${n.url}`,n.blockBody?`**Block:**
1
+ export function createGitHubBlockFeedbackAction(e,o){return async n=>{if(!o)return{};let r=`Block Feedback: ${e}`,c=new URLSearchParams({title:r,body:[`**Page:** ${n.url}`,n.blockBody?`**Block:**
4
2
  > ${n.blockBody.slice(0,300)}`:"",n.message?`
5
3
  **Comment:**
6
- ${n.message}`:""].filter(Boolean).join("\n")}),c=`${o}/discussions/new?category=docs-feedback&${a}`;return window.open(c,"_blank","noopener,noreferrer"),{githubUrl:c}}}
4
+ ${n.message}`:""].filter(Boolean).join("\n")}),a=`${o}/issues/new?${c}`;return window.open(a,"_blank","noopener,noreferrer"),{githubUrl:a}}}
@@ -1 +1 @@
1
- export{Feedback,FeedbackBlock}from"./components/feedback";export{FeedbackBlockMDX}from"./components/feedback-block-mdx";export{createGitHubFeedbackAction,createGitHubBlockFeedbackAction}from"./github.js";export{blockFeedback,pageFeedback,actionResponse}from"./schema";
1
+ export{FeedbackBlock}from"./components/feedback";export{FeedbackBlockMDX}from"./components/feedback-block-mdx";export{createGitHubBlockFeedbackAction}from"./github.js";export{blockFeedback,actionResponse}from"./schema";
@@ -1 +1 @@
1
- import{z as o}from"zod/mini";export const blockFeedback=o.object({url:o.string(),blockId:o.string(),message:o.string(),blockBody:o.optional(o.string())});export const pageFeedback=o.object({opinion:o.enum(["good","bad"]),url:o.string(),message:o.string()});export const actionResponse=o.object({githubUrl:o.optional(o.string())});
1
+ import{z as o}from"zod/mini";export const blockFeedback=o.object({url:o.string(),blockId:o.string(),message:o.string(),blockBody:o.optional(o.string())});export const actionResponse=o.object({githubUrl:o.optional(o.string())});
@@ -1 +1 @@
1
- import{env as e}from"./config";let a=e.NEXT_PUBLIC_SITE_NAME;export const localeConfig={en:{displayName:"English",dir:"ltr",siteName:a,siteDescription:"A docs starter built with Fumadocs, TanStack Start, and Thmanyah fonts — i18n, RTL, local search, and more.",translations:{search:"Search documentation...",searchNoResult:"No results found",toc:"On this page",tocNoHeadings:"No headings found",lastUpdate:"Last updated",chooseLanguage:"Choose language",nextPage:"Next",previousPage:"Previous",chooseTheme:"Theme",editOnGithub:"Edit on GitHub",copyMarkdown:"Copy Markdown",copyCode:"Copy",copied:"Copied",openMenu:"Open",openInGithub:"Open in GitHub",viewAsMarkdown:"View as Markdown",openInScira:"Open in Scira AI",openInChatGPT:"Open in ChatGPT",openInClaude:"Open in Claude",openInCursor:"Open in Cursor",toggleTheme:"Toggle theme",themeLight:"Light",themeDark:"Dark",themeSystem:"System",openSearch:"Open search",openSidebar:"Open sidebar",collapseSidebar:"Collapse sidebar",switchLanguage:"Switch language",toggleMenu:"Toggle menu",notFoundTitle:"Page not found",notFoundDescription:"The page you're looking for doesn't exist or has been moved.",notFoundBack:"Back to home",feedbackQuestion:"How is this page?",feedbackLabel:"Feedback",feedbackGood:"Good",feedbackBad:"Bad",feedbackPlaceholder:"Leave your feedback...",feedbackSubmit:"Submit",feedbackThankYou:"Thank you for your feedback!",feedbackViewOnGitHub:"View on GitHub",feedbackSubmitAgain:"Submit Again",changelog:"Changelog",changelogTitle:"What's new?",changelogDescription:"Latest updates and changes to this project.",changelogReadMore:"Read more →",docs:"Docs",dateLocale:"en-US",aiChat:"AI Chat",aiChatDisclaimer:"AI can be inaccurate, please verify the answers.",aiChatPlaceholder:"Ask a question",aiChatAnswering:"AI is answering...",aiChatAbort:"Abort Answer",aiChatRetry:"Retry",aiChatClear:"Clear Chat",aiChatEmpty:"Start a new chat below.",aiChatTrigger:"Ask AI",aiChatRoleUser:"you",aiChatRoleAssistant:"assistant",aiChatCopy:"Copy",aiChatCopied:"Copied!",aiChatSources:"Sources",aiChatSearching:"Searching…",aiChatStarters:["What features does this docs starter include?","How does search work?","How do I add a new language?"],aiChatApiKeyTitle:"Enter your Anthropic API key",aiChatApiKeyDescription:"Your key is stored in your browser and never sent to our servers.",aiChatApiKeyPlaceholder:"sk-ant-...",aiChatApiKeySave:"Start chatting",aiChatApiKeyChange:"Change API key",aiChatModelLabel:"Model",aiChatThinking:"Thinking",aiChatPages:"Pages",aiChatBrowsingPages:"Browsing pages…",aiChatSearchFailed:"Search failed",aiChatPageLoadFailed:"Failed to load page",upstream:"Upstream",upstreamEmpty:"No items found.",upstreamCorsHint:'This feed couldn\'t be loaded due to CORS restrictions. Try a browser extension like "CORS Unblock" to enable cross-origin requests.',upstreamError:"Failed to load"}},ar:{displayName:"العربية",dir:"rtl",siteName:a,siteDescription:"قالب توثيق مبني بـ Fumadocs وTanStack Start وخطوط ثمانية — مع دعم i18n والعربية والبحث المحلي.",translations:{search:"ابحث في التوثيق...",searchNoResult:"لا توجد نتائج",toc:"في هذه الصفحة",tocNoHeadings:"لا توجد عناوين",lastUpdate:"آخر تحديث",chooseLanguage:"اختر اللغة",nextPage:"التالي",previousPage:"السابق",chooseTheme:"المظهر",editOnGithub:"عدّل على GitHub",copyMarkdown:"نسخ Markdown",copyCode:"نسخ",copied:"تم النسخ",openMenu:"فتح",openInGithub:"فتح في GitHub",viewAsMarkdown:"عرض كـ Markdown",openInScira:"فتح في Scira AI",openInChatGPT:"فتح في ChatGPT",openInClaude:"فتح في Claude",openInCursor:"فتح في Cursor",toggleTheme:"تبديل المظهر",themeLight:"فاتح",themeDark:"داكن",themeSystem:"النظام",openSearch:"فتح البحث",openSidebar:"فتح الشريط الجانبي",collapseSidebar:"طي الشريط الجانبي",switchLanguage:"تغيير اللغة",toggleMenu:"فتح القائمة",notFoundTitle:"الصفحة غير موجودة",notFoundDescription:"الصفحة التي تبحث عنها غير موجودة أو تم نقلها.",notFoundBack:"العودة إلى الرئيسية",feedbackQuestion:"ما رأيك في هذه الصفحة؟",feedbackLabel:"ملاحظة",feedbackGood:"جيدة",feedbackBad:"تحتاج تحسين",feedbackPlaceholder:"اكتب ملاحظاتك...",feedbackSubmit:"إرسال",feedbackThankYou:"شكراً على ملاحظاتك!",feedbackViewOnGitHub:"عرض على GitHub",feedbackSubmitAgain:"إرسال مجدداً",changelog:"سجل التغييرات",changelogTitle:"ما الجديد؟",changelogDescription:"أحدث التحديثات والتغييرات في هذا المشروع.",changelogReadMore:"قراءة التفاصيل ←",docs:"التوثيق",dateLocale:"ar-SA",aiChat:"محادثة الذكاء الاصطناعي",aiChatDisclaimer:"قد يكون الذكاء الاصطناعي غير دقيق، يرجى التحقق من الإجابات.",aiChatPlaceholder:"اطرح سؤالاً",aiChatAnswering:"الذكاء الاصطناعي يجيب...",aiChatAbort:"إيقاف الإجابة",aiChatRetry:"إعادة المحاولة",aiChatClear:"مسح المحادثة",aiChatEmpty:"ابدأ محادثة جديدة أدناه.",aiChatTrigger:"إسأل الذكالي",aiChatRoleUser:"أنت",aiChatRoleAssistant:"المساعد",aiChatCopy:"نسخ",aiChatCopied:"تم النسخ!",aiChatSources:"المصادر",aiChatSearching:"جارٍ البحث...",aiChatStarters:["ما المميزات التي يتضمنها هذا القالب؟","كيف يعمل البحث؟","كيف أضيف لغة جديدة؟"],aiChatApiKeyTitle:"أدخل مفتاح Anthropic API",aiChatApiKeyDescription:"يُحفظ مفتاحك في متصفحك ولا يُرسل إلى خوادمنا.",aiChatApiKeyPlaceholder:"sk-ant-...",aiChatApiKeySave:"ابدأ المحادثة",aiChatApiKeyChange:"تغيير مفتاح API",aiChatModelLabel:"النموذج",aiChatThinking:"التفكير",aiChatPages:"الصفحات",aiChatBrowsingPages:"جارٍ تصفح الصفحات…",aiChatSearchFailed:"فشل البحث",aiChatPageLoadFailed:"تعذّر تحميل الصفحة",upstream:"المصادر",upstreamEmpty:"لا توجد عناصر.",upstreamCorsHint:'تعذّر تحميل هذا المصدر بسبب قيود CORS. جرّب إضافة متصفح مثل "CORS Unblock" لتفعيل الطلبات عبر النطاقات.',upstreamError:"فشل التحميل"}}};export const defaultLocale="en";export const locales=Object.keys(localeConfig);
1
+ import{env as e}from"./config";let a=e.NEXT_PUBLIC_SITE_NAME;export const localeConfig={en:{displayName:"English",dir:"ltr",siteName:a,siteDescription:"A docs starter built with Fumadocs, TanStack Start, and Thmanyah fonts — i18n, RTL, local search, and more.",translations:{search:"Search documentation...",searchNoResult:"No results found",toc:"On this page",tocNoHeadings:"No headings found",lastUpdate:"Last updated",chooseLanguage:"Choose language",nextPage:"Next",previousPage:"Previous",chooseTheme:"Theme",editOnGithub:"Edit on GitHub",copyMarkdown:"Copy Markdown",copyCode:"Copy",copied:"Copied",openMenu:"Open",openInGithub:"Open in GitHub",viewAsMarkdown:"View as Markdown",openInScira:"Open in Scira AI",openInChatGPT:"Open in ChatGPT",openInClaude:"Open in Claude",openInCursor:"Open in Cursor",toggleTheme:"Toggle theme",themeLight:"Light",themeDark:"Dark",themeSystem:"System",openSearch:"Open search",openSidebar:"Open sidebar",collapseSidebar:"Collapse sidebar",switchLanguage:"Switch language",toggleMenu:"Toggle menu",notFoundTitle:"Page not found",notFoundDescription:"The page you're looking for doesn't exist or has been moved.",notFoundBack:"Back to home",feedbackLabel:"Feedback",feedbackPlaceholder:"Leave your feedback...",feedbackSubmit:"Submit",feedbackThankYou:"Thank you for your feedback!",feedbackViewOnGitHub:"View on GitHub",feedbackSubmitAgain:"Submit Again",changelog:"Changelog",changelogTitle:"What's new?",changelogDescription:"Latest updates and changes to this project.",changelogReadMore:"Read more →",docs:"Docs",dateLocale:"en-US",aiChat:"AI Chat",aiChatDisclaimer:"AI can be inaccurate, please verify the answers.",aiChatPlaceholder:"Ask a question",aiChatAnswering:"AI is answering...",aiChatAbort:"Abort Answer",aiChatRetry:"Retry",aiChatClear:"Clear Chat",aiChatEmpty:"Start a new chat below.",aiChatTrigger:"Ask AI",aiChatRoleUser:"you",aiChatRoleAssistant:"assistant",aiChatCopy:"Copy",aiChatCopied:"Copied!",aiChatSources:"Sources",aiChatSearching:"Searching…",aiChatStarters:["What features does this docs starter include?","How does search work?","How do I add a new language?"],aiChatApiKeyTitle:"Enter your Anthropic API key",aiChatApiKeyDescription:"Your key is stored in your browser and never sent to our servers.",aiChatApiKeyPlaceholder:"sk-ant-...",aiChatApiKeySave:"Start chatting",aiChatApiKeyChange:"Change API key",aiChatModelLabel:"Model",aiChatThinking:"Thinking",aiChatPages:"Pages",aiChatBrowsingPages:"Browsing pages…",aiChatSearchFailed:"Search failed",aiChatPageLoadFailed:"Failed to load page",upstream:"Upstream",upstreamEmpty:"No items found.",upstreamCorsHint:'This feed couldn\'t be loaded due to CORS restrictions. Try a browser extension like "CORS Unblock" to enable cross-origin requests.',upstreamError:"Failed to load"}},ar:{displayName:"العربية",dir:"rtl",siteName:a,siteDescription:"قالب توثيق مبني بـ Fumadocs وTanStack Start وخطوط ثمانية — مع دعم i18n والعربية والبحث المحلي.",translations:{search:"ابحث في التوثيق...",searchNoResult:"لا توجد نتائج",toc:"في هذه الصفحة",tocNoHeadings:"لا توجد عناوين",lastUpdate:"آخر تحديث",chooseLanguage:"اختر اللغة",nextPage:"التالي",previousPage:"السابق",chooseTheme:"المظهر",editOnGithub:"عدّل على GitHub",copyMarkdown:"نسخ Markdown",copyCode:"نسخ",copied:"تم النسخ",openMenu:"فتح",openInGithub:"فتح في GitHub",viewAsMarkdown:"عرض كـ Markdown",openInScira:"فتح في Scira AI",openInChatGPT:"فتح في ChatGPT",openInClaude:"فتح في Claude",openInCursor:"فتح في Cursor",toggleTheme:"تبديل المظهر",themeLight:"فاتح",themeDark:"داكن",themeSystem:"النظام",openSearch:"فتح البحث",openSidebar:"فتح الشريط الجانبي",collapseSidebar:"طي الشريط الجانبي",switchLanguage:"تغيير اللغة",toggleMenu:"فتح القائمة",notFoundTitle:"الصفحة غير موجودة",notFoundDescription:"الصفحة التي تبحث عنها غير موجودة أو تم نقلها.",notFoundBack:"العودة إلى الرئيسية",feedbackLabel:"ملاحظة",feedbackPlaceholder:"اكتب ملاحظاتك...",feedbackSubmit:"إرسال",feedbackThankYou:"شكراً على ملاحظاتك!",feedbackViewOnGitHub:"عرض على GitHub",feedbackSubmitAgain:"إرسال مجدداً",changelog:"سجل التغييرات",changelogTitle:"ما الجديد؟",changelogDescription:"أحدث التحديثات والتغييرات في هذا المشروع.",changelogReadMore:"قراءة التفاصيل ←",docs:"التوثيق",dateLocale:"ar-SA",aiChat:"محادثة الذكاء الاصطناعي",aiChatDisclaimer:"قد يكون الذكاء الاصطناعي غير دقيق، يرجى التحقق من الإجابات.",aiChatPlaceholder:"اطرح سؤالاً",aiChatAnswering:"الذكاء الاصطناعي يجيب...",aiChatAbort:"إيقاف الإجابة",aiChatRetry:"إعادة المحاولة",aiChatClear:"مسح المحادثة",aiChatEmpty:"ابدأ محادثة جديدة أدناه.",aiChatTrigger:"إسأل الذكالي",aiChatRoleUser:"أنت",aiChatRoleAssistant:"المساعد",aiChatCopy:"نسخ",aiChatCopied:"تم النسخ!",aiChatSources:"المصادر",aiChatSearching:"جارٍ البحث...",aiChatStarters:["ما المميزات التي يتضمنها هذا القالب؟","كيف يعمل البحث؟","كيف أضيف لغة جديدة؟"],aiChatApiKeyTitle:"أدخل مفتاح Anthropic API",aiChatApiKeyDescription:"يُحفظ مفتاحك في متصفحك ولا يُرسل إلى خوادمنا.",aiChatApiKeyPlaceholder:"sk-ant-...",aiChatApiKeySave:"ابدأ المحادثة",aiChatApiKeyChange:"تغيير مفتاح API",aiChatModelLabel:"النموذج",aiChatThinking:"التفكير",aiChatPages:"الصفحات",aiChatBrowsingPages:"جارٍ تصفح الصفحات…",aiChatSearchFailed:"فشل البحث",aiChatPageLoadFailed:"تعذّر تحميل الصفحة",upstream:"المصادر",upstreamEmpty:"لا توجد عناصر.",upstreamCorsHint:'تعذّر تحميل هذا المصدر بسبب قيود CORS. جرّب إضافة متصفح مثل "CORS Unblock" لتفعيل الطلبات عبر النطاقات.',upstreamError:"فشل التحميل"}}};export const defaultLocale="en";export const locales=Object.keys(localeConfig);