@razorwind/docgen 0.0.29 → 0.0.30

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.
@@ -0,0 +1,60 @@
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{definePlugin as t}from"@razorwind/core/plugin";import{createDocument as n,flattenTokens as r,isObject as i,resolveSchemaIdentity as a,titleCase as o,toCssVar as s}from"@razorwind/core/utils";import{join as c}from"node:path";function l(e,t={}){let n=t.cssVarPrefix??`rw`;return r(e,{includeTypes:t.includeTypes,enrichToken:e=>({...e,cssVar:s(e.path,n)})})}function u(e){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function d(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}function f(e){let t=e.title??`Design System`;return`# Installing ${t} Docs
2
+
3
+ Generated by \`@razorwind/docgen\`.
4
+
5
+ ## Files
6
+
7
+ - \`${e.outDir}/index.mdx\` — documentation index
8
+ - \`${e.outDir}/tokens/\` — per-group token pages
9
+ - \`${e.outDir}/tokens.json\` — flattened token manifest
10
+
11
+ ## Setup
12
+
13
+ 1. Wire generated MDX into your docs site (Storybook, Nextra, Docusaurus, etc.).
14
+
15
+ Example for Storybook:
16
+
17
+ \`\`\`ts
18
+ // .storybook/main.ts
19
+ export default {
20
+ stories: ["../${e.outDir}/**/*.mdx"]
21
+ };
22
+ \`\`\`
23
+
24
+ 2. Open \`${e.outDir}/index.mdx\` as the **${t}** entry point.
25
+
26
+ 3. Re-run Razorwind generate when tokens or registry items change.
27
+
28
+ ## Regenerate
29
+
30
+ Docs under \`${e.outDir}/\` are generated output — edit source tokens/components instead of hand-editing MDX.
31
+ `}var p=e({COMPONENT_TYPES:()=>x,REGISTRY_ITEM_TYPES:()=>S,default:()=>B,extractIcons:()=>M,extractRegistryItems:()=>D,generateDocs:()=>z,groupTokens:()=>g,renderGroupMdx:()=>y,renderIconsMdx:()=>I,renderIndexMdx:()=>b,renderInstallMd:()=>f,renderRegistryItemsMdx:()=>L,renderTokenTable:()=>v,tokenGroup:()=>h});function m(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
32
+ `)}\n---`}function h(e){return e.path.split(`.`)[0]||`tokens`}function g(e){let t=new Map;for(let n of e){let e=h(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return t}function _(e){return`<span style={{ display: "inline-block", width: "1.25em", height: "1.25em", borderRadius: "4px", verticalAlign: "middle", border: "1px solid rgba(128, 128, 128, 0.35)", background: ${JSON.stringify(e)} }} />`}function v(e){let t=e.some(e=>e.theme),n=e.some(e=>e.description),r=e.some(e=>e.type===`color`),i=[...r?[`Preview`]:[],`Token`,`Type`,`Value`,`CSS Variable`,...t?[`Theme`]:[],...n?[`Description`]:[]],a=e.toSorted((e,t)=>(e.theme??``).localeCompare(t.theme??``)||e.path.localeCompare(t.path)).map(e=>`| ${[...r?[e.type===`color`?_(e.cssValue):``]:[],`\`${d(e.path)}\``,e.type?`\`${d(String(e.type))}\``:`—`,`\`${d(e.cssValue)}\``,`\`${d(e.cssVar)}\``,...t?[e.theme?d(e.theme):`—`]:[],...n?[e.description?d(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...a].join(`
33
+ `)}function y(e,t,n=`design system`){let r=o(e),i=[...new Set(t.map(e=>e.theme).filter(Boolean))],a=[m({title:r,description:`${r} design tokens for the ${n}.`}),`# ${r}`,`${t.length} token${t.length===1?``:`s`} in the \`${e}\` group.`];if(i.length>1)for(let e of i.toSorted((e,t)=>e.localeCompare(t))){let n=t.filter(t=>t.theme===e);a.push(`## ${o(e)}`,v(n))}else a.push(v(t));return`${a.join(`
34
+
35
+ `)}\n`}function b(e){let{title:t,groups:n,hasComponents:r,componentPages:i=[],iconCount:a=0}=e,s=[...n.values()].reduce((e,t)=>e+t.length,0),c=[...n.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=n.get(e)?.length??0;return`- [${o(e)}](./tokens/${u(e)}.mdx) — ${t} token${t===1?``:`s`}`}),l=[m({title:t,description:`Generated reference documentation for the ${t} design tokens, components, and icons.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${s} design token${s===1?``:`s`} across ${n.size} group${n.size===1?``:`s`}.`,`## Design Tokens`,c.length>0?c.join(`
36
+ `):`_No design tokens found._`];if(r||i.length>0){let e=i.map(e=>`- [${e.title}](./registry/${e.slug}.mdx) — ${e.count} item${e.count===1?``:`s`}`);l.push(`## Components`,e.length>0?e.join(`
37
+ `):`_No components found._`)}return a>0&&l.push(`## Icons`,`- [Icons](./icons.mdx) — ${a} icon${a===1?``:`s`}`),`${l.join(`
38
+
39
+ `)}\n`}const x={ui:{slug:`ui`,title:`UI Primitives`},component:{slug:`components`,title:`Components`},page:{slug:`pages`,title:`Pages`},block:{slug:`blocks`,title:`Blocks`}},S={"registry:ui":x.ui,"registry:component":x.component,"registry:page":x.page,"registry:block":x.block};function C(e,t){let n=e[t];return typeof n==`string`?n:void 0}function w(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function T(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):i(n)?Object.entries(n).map(([e,t])=>typeof t==`string`&&t!==`*`?`${e}@${t}`:e):[]}function E(e){let t=w(e,`categories`);if(t.length>0)return t;let n=w(e,`tags`),r=C(e,`category`);return[...r?[r]:[],...n.filter(e=>e!==r)]}function D(e){if(!i(e))return[];let t=Object.values(e).filter(i),n=[];for(let[e,r]of Object.entries(x)){let i=t.filter(t=>t.type===e);i.length>0&&n.push({type:e,slug:r.slug,title:r.title,items:i})}return n}function O(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${d(e)}\` | — | — |`;if(!i(e))return;let t=C(e,`path`);if(!t)return;let n=C(e,`type`),r=C(e,`target`);return`| \`${d(t)}\` | ${n?`\`${d(n)}\``:`—`} | ${r?`\`${d(r)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
40
+ `)}function k(e){let t=e.split(`.`).pop()?.toLowerCase();return t?t===`md`?`markdown`:t:`tsx`}function A(e){return(Array.isArray(e.usage)?e.usage:[]).map(e=>{if(!i(e))return;let t=C(e,`path`),n=C(e,`content`);if(!n)return;let r=C(e,`name`)??(t?t.split(`/`).pop()?.replace(/\.[^.]+$/,``)??`example`:`example`),a=C(e,`title`)??o(r),s=C(e,`description`),c=C(e,`language`)??(t?k(t):`tsx`),l=[`#### ${a}`];return s&&l.push(s),l.push(`\`\`\`${c}\n${n.trimEnd()}\n\`\`\``),l.join(`
41
+
42
+ `)}).filter(e=>e!==void 0).join(`
43
+
44
+ `)}function j(e){let t=C(e,`name`)??`unknown`,n=C(e,`title`)??o(t),r=C(e,`description`),i=C(e,`author`),a=E(e),s=T(e,`dependencies`),c=T(e,`registryDependencies`),l=[`## ${n}`];r&&l.push(r);let u=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...i?[`- **Author:** ${d(i)}`]:[],...a.length>0?[`- **Categories:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[]];l.push(u.join(`
45
+ `)),s.length>0&&l.push(`### Dependencies`,s.map(e=>`- \`${e}\``).join(`
46
+ `)),c.length>0&&l.push(`### Registry Dependencies`,c.map(e=>`- \`${e}\``).join(`
47
+ `));let f=O(e);f&&l.push(`### Files`,f);let p=A(e);return p&&l.push(`### Usage`,p),l.join(`
48
+
49
+ `)}function M(e){return i(e)?Object.values(e).filter(i).toSorted((e,t)=>(C(e,`name`)??``).localeCompare(C(t,`name`)??``)):[]}function N(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${d(e)}\` | — | — | — |`;if(!i(e))return;let t=C(e,`path`);if(!t)return;let n=C(e,`type`),r=C(e,`theme`),a=C(e,`target`);return`| \`${d(t)}\` | ${n?`\`${d(n)}\``:`—`} | ${r?`\`${d(r)}\``:`—`} | ${a?`\`${d(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
50
+ `)}function P(e){let t=(Array.isArray(e.files)?e.files:[]).find(e=>i(e)&&C(e,`type`)===`svg`&&typeof e.content==`string`);return!i(t)||typeof t.content!=`string`?``:[`### Preview`,`<div style={{ display: "inline-flex", width: "2rem", height: "2rem" }} dangerouslySetInnerHTML={{ __html: ${JSON.stringify(t.content)} }} />`].join(`
51
+
52
+ `)}function F(e){let t=C(e,`name`)??`unknown`,n=C(e,`title`)??o(t),r=C(e,`description`),i=C(e,`category`),a=w(e,`tags`),s=w(e,`aliases`),c=[`## ${n}`];r&&c.push(r);let l=[`- **Name:** \`${t}\``,...i?[`- **Category:** \`${i}\``]:[],...a.length>0?[`- **Tags:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[],...s.length>0?[`- **Aliases:** ${s.map(e=>`\`${e}\``).join(`, `)}`]:[]];c.push(l.join(`
53
+ `));let u=P(e);u&&c.push(u);let d=N(e);return d&&c.push(`### Files`,d),c.join(`
54
+
55
+ `)}function I(e,t=`design system`){let n=[m({title:`Icons`,description:`Icons available in the ${t}.`}),`# Icons`,`${e.length} icon${e.length===1?``:`s`} in the design system.`];for(let t of e)n.push(F(t));return`${n.join(`
56
+
57
+ `)}\n`}function L(e,t=`component registry`){let n=[m({title:e.title,description:`${e.title} available in the ${t}.`}),`# ${e.title}`,`${e.items.length} \`${e.type}\` item${e.items.length===1?``:`s`} in the component registry.`],r=e.items.toSorted((e,t)=>(C(e,`name`)??``).localeCompare(C(t,`name`)??``));for(let e of r)n.push(j(e));return`${n.join(`
58
+
59
+ `)}\n`}function R(e,t,r){return n(e,t,{name:`docgen`},r)}function z(e,t={}){let n=t.outDir??`docs/design-system`,r=a(e,{title:t.title}),i=r.title??`Design System`,o=r.title??`design system`,s=l(e.tokens,t),d=g(s),p=t.skipRegistry?[]:D(e.components),m=p.length>0,h=t.skipIcons?[]:M(e.icons),_={[c(n,`index.mdx`)]:R(c(n,`index.mdx`),b({title:i,groups:d,hasComponents:m,componentPages:p.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:h.length}),`mdx`)};for(let[e,t]of d){let r=c(n,`tokens`,`${u(e)}.mdx`);_[r]=R(r,y(e,t,o),`mdx`)}for(let e of p){let t=c(n,`registry`,`${e.slug}.mdx`);_[t]=R(t,L(e,o),`mdx`)}if(h.length>0){let e=c(n,`icons.mdx`);_[e]=R(e,I(h,o),`mdx`)}_[c(n,`tokens.json`)]=R(c(n,`tokens.json`),`${JSON.stringify(s,null,2)}\n`,`json`);let v=t.installGuide??f({outDir:n,title:i}),x=c(n,`INSTALL.md`);return _[x]=R(x,v,`markdown`),_}var B=t(e=>({name:`docgen:generate`,generate:async t=>z(t,e??{})}));export{z as a,g as c,b as d,L as f,f as h,D as i,y as l,h as m,S as n,B as o,v as p,M as r,p as s,x as t,I as u};
60
+ //# sourceMappingURL=generate-D1Vtl6ku.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-D1Vtl6ku.mjs","names":[],"sources":[],"mappings":""}
@@ -30,7 +30,7 @@ export default {
30
30
  Docs under \`${e.outDir}/\` are generated output — edit source tokens/components instead of hand-editing MDX.
31
31
  `}var c=e.t({COMPONENT_TYPES:()=>g,REGISTRY_ITEM_TYPES:()=>_,default:()=>F,extractIcons:()=>D,extractRegistryItems:()=>S,generateDocs:()=>P,groupTokens:()=>d,renderGroupMdx:()=>m,renderIconsMdx:()=>j,renderIndexMdx:()=>h,renderInstallMd:()=>s,renderRegistryItemsMdx:()=>M,renderTokenTable:()=>p,tokenGroup:()=>u});function l(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
32
32
  `)}\n---`}function u(e){return e.path.split(`.`)[0]||`tokens`}function d(e){let t=new Map;for(let n of e){let e=u(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return t}function f(e){return`<span style={{ display: "inline-block", width: "1.25em", height: "1.25em", borderRadius: "4px", verticalAlign: "middle", border: "1px solid rgba(128, 128, 128, 0.35)", background: ${JSON.stringify(e)} }} />`}function p(e){let t=e.some(e=>e.theme),n=e.some(e=>e.description),r=e.some(e=>e.type===`color`),i=[...r?[`Preview`]:[],`Token`,`Type`,`Value`,`CSS Variable`,...t?[`Theme`]:[],...n?[`Description`]:[]],a=e.toSorted((e,t)=>(e.theme??``).localeCompare(t.theme??``)||e.path.localeCompare(t.path)).map(e=>`| ${[...r?[e.type===`color`?f(e.cssValue):``]:[],`\`${o(e.path)}\``,e.type?`\`${o(String(e.type))}\``:`—`,`\`${o(e.cssValue)}\``,`\`${o(e.cssVar)}\``,...t?[e.theme?o(e.theme):`—`]:[],...n?[e.description?o(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...a].join(`
33
- `)}function m(e,t){let r=(0,n.titleCase)(e),i=[...new Set(t.map(e=>e.theme).filter(Boolean))],a=[l({title:r,description:`${r} design tokens for the Razorwind design system.`}),`# ${r}`,`${t.length} token${t.length===1?``:`s`} in the \`${e}\` group.`];if(i.length>1)for(let e of i.toSorted((e,t)=>e.localeCompare(t))){let r=t.filter(t=>t.theme===e);a.push(`## ${(0,n.titleCase)(e)}`,p(r))}else a.push(p(t));return`${a.join(`
33
+ `)}function m(e,t,r=`design system`){let i=(0,n.titleCase)(e),a=[...new Set(t.map(e=>e.theme).filter(Boolean))],o=[l({title:i,description:`${i} design tokens for the ${r}.`}),`# ${i}`,`${t.length} token${t.length===1?``:`s`} in the \`${e}\` group.`];if(a.length>1)for(let e of a.toSorted((e,t)=>e.localeCompare(t))){let r=t.filter(t=>t.theme===e);o.push(`## ${(0,n.titleCase)(e)}`,p(r))}else o.push(p(t));return`${o.join(`
34
34
 
35
35
  `)}\n`}function h(e){let{title:t,groups:r,hasComponents:i,componentPages:o=[],iconCount:s=0}=e,c=[...r.values()].reduce((e,t)=>e+t.length,0),u=[...r.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=r.get(e)?.length??0;return`- [${(0,n.titleCase)(e)}](./tokens/${a(e)}.mdx) — ${t} token${t===1?``:`s`}`}),d=[l({title:t,description:`Generated reference documentation for the ${t} design tokens, components, and icons.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${c} design token${c===1?``:`s`} across ${r.size} group${r.size===1?``:`s`}.`,`## Design Tokens`,u.length>0?u.join(`
36
36
  `):`_No design tokens found._`];if(i||o.length>0){let e=o.map(e=>`- [${e.title}](./registry/${e.slug}.mdx) — ${e.count} item${e.count===1?``:`s`}`);d.push(`## Components`,e.length>0?e.join(`
@@ -52,8 +52,8 @@ Docs under \`${e.outDir}/\` are generated output — edit source tokens/componen
52
52
  `)}function A(e){let t=v(e,`name`)??`unknown`,r=v(e,`title`)??(0,n.titleCase)(t),i=v(e,`description`),a=v(e,`category`),o=y(e,`tags`),s=y(e,`aliases`),c=[`## ${r}`];i&&c.push(i);let l=[`- **Name:** \`${t}\``,...a?[`- **Category:** \`${a}\``]:[],...o.length>0?[`- **Tags:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[],...s.length>0?[`- **Aliases:** ${s.map(e=>`\`${e}\``).join(`, `)}`]:[]];c.push(l.join(`
53
53
  `));let u=k(e);u&&c.push(u);let d=O(e);return d&&c.push(`### Files`,d),c.join(`
54
54
 
55
- `)}function j(e){let t=[l({title:`Icons`,description:`Icons available in the Razorwind design system.`}),`# Icons`,`${e.length} icon${e.length===1?``:`s`} in the design system.`];for(let n of e)t.push(A(n));return`${t.join(`
55
+ `)}function j(e,t=`design system`){let n=[l({title:`Icons`,description:`Icons available in the ${t}.`}),`# Icons`,`${e.length} icon${e.length===1?``:`s`} in the design system.`];for(let t of e)n.push(A(t));return`${n.join(`
56
56
 
57
- `)}\n`}function M(e){let t=[l({title:e.title,description:`${e.title} available in the Razorwind component registry.`}),`# ${e.title}`,`${e.items.length} \`${e.type}\` item${e.items.length===1?``:`s`} in the component registry.`],n=e.items.toSorted((e,t)=>(v(e,`name`)??``).localeCompare(v(t,`name`)??``));for(let e of n)t.push(E(e));return`${t.join(`
57
+ `)}\n`}function M(e,t=`component registry`){let n=[l({title:e.title,description:`${e.title} available in the ${t}.`}),`# ${e.title}`,`${e.items.length} \`${e.type}\` item${e.items.length===1?``:`s`} in the component registry.`],r=e.items.toSorted((e,t)=>(v(e,`name`)??``).localeCompare(v(t,`name`)??``));for(let e of r)n.push(E(e));return`${n.join(`
58
58
 
59
- `)}\n`}function N(e,t,r){return(0,n.createDocument)(e,t,{name:`docgen`},r)}function P(e,t={}){let n=t.outDir??`docs/design-system`,o=t.title??`Design System`,c=i(e.tokens,t),l=d(c),u=t.skipRegistry?[]:S(e.components),f=u.length>0,p=t.skipIcons?[]:D(e.icons),g={[(0,r.join)(n,`index.mdx`)]:N((0,r.join)(n,`index.mdx`),h({title:o,groups:l,hasComponents:f,componentPages:u.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:p.length}),`mdx`)};for(let[e,t]of l){let i=(0,r.join)(n,`tokens`,`${a(e)}.mdx`);g[i]=N(i,m(e,t),`mdx`)}for(let e of u){let t=(0,r.join)(n,`registry`,`${e.slug}.mdx`);g[t]=N(t,M(e),`mdx`)}if(p.length>0){let e=(0,r.join)(n,`icons.mdx`);g[e]=N(e,j(p),`mdx`)}g[(0,r.join)(n,`tokens.json`)]=N((0,r.join)(n,`tokens.json`),`${JSON.stringify(c,null,2)}\n`,`json`);let _=t.installGuide??s({outDir:n,title:o}),v=(0,r.join)(n,`INSTALL.md`);return g[v]=N(v,_,`markdown`),g}var F=(0,t.definePlugin)(e=>({name:`docgen:generate`,generate:async t=>P(t,e??{})}));Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return j}});
59
+ `)}\n`}function N(e,t,r){return(0,n.createDocument)(e,t,{name:`docgen`},r)}function P(e,t={}){let o=t.outDir??`docs/design-system`,c=(0,n.resolveSchemaIdentity)(e,{title:t.title}),l=c.title??`Design System`,u=c.title??`design system`,f=i(e.tokens,t),p=d(f),g=t.skipRegistry?[]:S(e.components),_=g.length>0,v=t.skipIcons?[]:D(e.icons),y={[(0,r.join)(o,`index.mdx`)]:N((0,r.join)(o,`index.mdx`),h({title:l,groups:p,hasComponents:_,componentPages:g.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:v.length}),`mdx`)};for(let[e,t]of p){let n=(0,r.join)(o,`tokens`,`${a(e)}.mdx`);y[n]=N(n,m(e,t,u),`mdx`)}for(let e of g){let t=(0,r.join)(o,`registry`,`${e.slug}.mdx`);y[t]=N(t,M(e,u),`mdx`)}if(v.length>0){let e=(0,r.join)(o,`icons.mdx`);y[e]=N(e,j(v,u),`mdx`)}y[(0,r.join)(o,`tokens.json`)]=N((0,r.join)(o,`tokens.json`),`${JSON.stringify(f,null,2)}\n`,`json`);let b=t.installGuide??s({outDir:o,title:l}),x=(0,r.join)(o,`INSTALL.md`);return y[x]=N(x,b,`markdown`),y}var F=(0,t.definePlugin)(e=>({name:`docgen:generate`,generate:async t=>P(t,e??{})}));Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return j}});
@@ -25,7 +25,7 @@ declare function renderTokenTable(tokens: FlatToken[]): string;
25
25
  /**
26
26
  * Render an MDX documentation page for a single token group.
27
27
  */
28
- declare function renderGroupMdx(group: string, tokens: FlatToken[]): string;
28
+ declare function renderGroupMdx(group: string, tokens: FlatToken[], systemTitle?: string): string;
29
29
  /**
30
30
  * Render the documentation index page linking to every generated page.
31
31
  */
@@ -101,11 +101,11 @@ declare function extractIcons(icons: unknown): Record<string, unknown>[];
101
101
  /**
102
102
  * Render an MDX documentation page for all icons.
103
103
  */
104
- declare function renderIconsMdx(icons: Record<string, unknown>[]): string;
104
+ declare function renderIconsMdx(icons: Record<string, unknown>[], systemTitle?: string): string;
105
105
  /**
106
106
  * Render an MDX documentation page for all components of a single type.
107
107
  */
108
- declare function renderRegistryItemsMdx(page: RegistryItemPage): string;
108
+ declare function renderRegistryItemsMdx(page: RegistryItemPage, systemTitle?: string): string;
109
109
  /**
110
110
  * Generate MDX documentation pages from a Razorwind schema.
111
111
  *
@@ -130,4 +130,4 @@ declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOption
130
130
  declare const _default: (options?: DocgenGeneratePluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
131
131
  //#endregion
132
132
  export { tokenGroup as _, RegistryItemType as a, extractRegistryItems as c, groupTokens as d, renderGroupMdx as f, renderTokenTable as g, renderRegistryItemsMdx as h, RegistryItemPage as i, generateDocs as l, renderIndexMdx as m, ComponentDocType as n, _default as o, renderIconsMdx as p, REGISTRY_ITEM_TYPES as r, extractIcons as s, COMPONENT_TYPES as t, generate_d_exports as u, renderInstallMd as v };
133
- //# sourceMappingURL=generate-tgHJ7N42.d.mts.map
133
+ //# sourceMappingURL=generate-Njl5pSvw.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-Njl5pSvw.d.mts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":""}
@@ -25,7 +25,7 @@ declare function renderTokenTable(tokens: FlatToken[]): string;
25
25
  /**
26
26
  * Render an MDX documentation page for a single token group.
27
27
  */
28
- declare function renderGroupMdx(group: string, tokens: FlatToken[]): string;
28
+ declare function renderGroupMdx(group: string, tokens: FlatToken[], systemTitle?: string): string;
29
29
  /**
30
30
  * Render the documentation index page linking to every generated page.
31
31
  */
@@ -101,11 +101,11 @@ declare function extractIcons(icons: unknown): Record<string, unknown>[];
101
101
  /**
102
102
  * Render an MDX documentation page for all icons.
103
103
  */
104
- declare function renderIconsMdx(icons: Record<string, unknown>[]): string;
104
+ declare function renderIconsMdx(icons: Record<string, unknown>[], systemTitle?: string): string;
105
105
  /**
106
106
  * Render an MDX documentation page for all components of a single type.
107
107
  */
108
- declare function renderRegistryItemsMdx(page: RegistryItemPage): string;
108
+ declare function renderRegistryItemsMdx(page: RegistryItemPage, systemTitle?: string): string;
109
109
  /**
110
110
  * Generate MDX documentation pages from a Razorwind schema.
111
111
  *
@@ -130,4 +130,4 @@ declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOption
130
130
  declare const _default: (options?: DocgenGeneratePluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
131
131
  //#endregion
132
132
  export { tokenGroup as _, RegistryItemType as a, extractRegistryItems as c, groupTokens as d, renderGroupMdx as f, renderTokenTable as g, renderRegistryItemsMdx as h, RegistryItemPage as i, generateDocs as l, renderIndexMdx as m, ComponentDocType as n, _default as o, renderIconsMdx as p, REGISTRY_ITEM_TYPES as r, extractIcons as s, COMPONENT_TYPES as t, generate_d_exports as u, renderInstallMd as v };
133
- //# sourceMappingURL=generate-Bl-XjHVv.d.cts.map
133
+ //# sourceMappingURL=generate-i64p6FjR.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-i64p6FjR.d.cts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":";;;;;;;iBAqBgB,gBAAgB;EAC9B;EACA;;;;;;iBCcc,WAAW,OAAO;;;;iBAOlB,YAAY,QAAQ,cAAc,YAAY;;;;iBAoB9C,iBAAiB,QAAQ;;;;iBAiDzB,eACd,eACA,QAAQ,aACR;;;;iBA+Bc,eAAe;EAC7B;EACA,QAAQ,YAAY;EACpB;EACA;IAAmB;IAAc;IAAe;;EAChD;;;cA2DW;;;;;;;;;;;;;;;;;;;cAQA;;;;;;;;;;;;;;;;;;KAOD,gCAAgC;KAChC,gCAAgC;;UAG3B;EACf,MAAM;EACN;EACA;EACA,OAAO;;;;;;;;iBA4DO,qBAAqB,sBAAsB;;;;iBA4K3C,aAAa,iBAAiB;;;;iBA8G9B,eACd,OAAO,2BACP;;;;iBAqBc,uBACd,MAAM,kBACN;;;;;;;;iBA4Cc,aACd,MAAM,QACN,UAAS,8BACR,wBAAwB,QAAQ"}
package/dist/generate.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-ZyNHz9gq.cjs");exports.COMPONENT_TYPES=e.t,exports.REGISTRY_ITEM_TYPES=e.n,exports.default=e.o,exports.extractIcons=e.r,exports.extractRegistryItems=e.i,exports.generateDocs=e.a,exports.groupTokens=e.c,exports.renderGroupMdx=e.l,exports.renderIconsMdx=e.u,exports.renderIndexMdx=e.d,exports.renderInstallMd=e.h,exports.renderRegistryItemsMdx=e.f,exports.renderTokenTable=e.p,exports.tokenGroup=e.m;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-DN-_Tn66.cjs");exports.COMPONENT_TYPES=e.t,exports.REGISTRY_ITEM_TYPES=e.n,exports.default=e.o,exports.extractIcons=e.r,exports.extractRegistryItems=e.i,exports.generateDocs=e.a,exports.groupTokens=e.c,exports.renderGroupMdx=e.l,exports.renderIconsMdx=e.u,exports.renderIndexMdx=e.d,exports.renderInstallMd=e.h,exports.renderRegistryItemsMdx=e.f,exports.renderTokenTable=e.p,exports.tokenGroup=e.m;
@@ -1,2 +1,2 @@
1
- import { _ as tokenGroup, a as RegistryItemType, c as extractRegistryItems, d as groupTokens, f as renderGroupMdx, g as renderTokenTable, h as renderRegistryItemsMdx, i as RegistryItemPage, l as generateDocs, m as renderIndexMdx, n as ComponentDocType, o as _default, p as renderIconsMdx, r as REGISTRY_ITEM_TYPES, s as extractIcons, t as COMPONENT_TYPES, v as renderInstallMd } from "./generate-Bl-XjHVv.cjs";
1
+ import { _ as tokenGroup, a as RegistryItemType, c as extractRegistryItems, d as groupTokens, f as renderGroupMdx, g as renderTokenTable, h as renderRegistryItemsMdx, i as RegistryItemPage, l as generateDocs, m as renderIndexMdx, n as ComponentDocType, o as _default, p as renderIconsMdx, r as REGISTRY_ITEM_TYPES, s as extractIcons, t as COMPONENT_TYPES, v as renderInstallMd } from "./generate-i64p6FjR.cjs";
2
2
  export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderInstallMd, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
@@ -1,2 +1,2 @@
1
- import { _ as tokenGroup, a as RegistryItemType, c as extractRegistryItems, d as groupTokens, f as renderGroupMdx, g as renderTokenTable, h as renderRegistryItemsMdx, i as RegistryItemPage, l as generateDocs, m as renderIndexMdx, n as ComponentDocType, o as _default, p as renderIconsMdx, r as REGISTRY_ITEM_TYPES, s as extractIcons, t as COMPONENT_TYPES, v as renderInstallMd } from "./generate-tgHJ7N42.mjs";
1
+ import { _ as tokenGroup, a as RegistryItemType, c as extractRegistryItems, d as groupTokens, f as renderGroupMdx, g as renderTokenTable, h as renderRegistryItemsMdx, i as RegistryItemPage, l as generateDocs, m as renderIndexMdx, n as ComponentDocType, o as _default, p as renderIconsMdx, r as REGISTRY_ITEM_TYPES, s as extractIcons, t as COMPONENT_TYPES, v as renderInstallMd } from "./generate-Njl5pSvw.mjs";
2
2
  export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderInstallMd, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
package/dist/generate.mjs CHANGED
@@ -1 +1 @@
1
- import{a as e,c as t,d as n,f as r,h as i,i as a,l as o,m as s,n as c,o as l,p as u,r as d,t as f,u as p}from"./generate-CXRg2yXU.mjs";export{f as COMPONENT_TYPES,c as REGISTRY_ITEM_TYPES,l as default,d as extractIcons,a as extractRegistryItems,e as generateDocs,t as groupTokens,o as renderGroupMdx,p as renderIconsMdx,n as renderIndexMdx,i as renderInstallMd,r as renderRegistryItemsMdx,u as renderTokenTable,s as tokenGroup};
1
+ import{a as e,c as t,d as n,f as r,h as i,i as a,l as o,m as s,n as c,o as l,p as u,r as d,t as f,u as p}from"./generate-D1Vtl6ku.mjs";export{f as COMPONENT_TYPES,c as REGISTRY_ITEM_TYPES,l as default,d as extractIcons,a as extractRegistryItems,e as generateDocs,t as groupTokens,o as renderGroupMdx,p as renderIconsMdx,n as renderIndexMdx,i as renderInstallMd,r as renderRegistryItemsMdx,u as renderTokenTable,s as tokenGroup};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./extract.cjs"),t=require("./generate-ZyNHz9gq.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.s}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./extract.cjs"),t=require("./generate-DN-_Tn66.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.s}});
package/dist/index.d.cts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { t as extract_d_exports } from "./extract.cjs";
2
- import { u as generate_d_exports } from "./generate-Bl-XjHVv.cjs";
2
+ import { u as generate_d_exports } from "./generate-i64p6FjR.cjs";
3
3
  export { extract_d_exports as extract, generate_d_exports as generate };
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { t as extract_d_exports } from "./extract.mjs";
2
- import { u as generate_d_exports } from "./generate-tgHJ7N42.mjs";
2
+ import { u as generate_d_exports } from "./generate-Njl5pSvw.mjs";
3
3
  export { extract_d_exports as extract, generate_d_exports as generate };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./extract.mjs";import{s as t}from"./generate-CXRg2yXU.mjs";export{e as extract,t as generate};
1
+ import{t as e}from"./extract.mjs";import{s as t}from"./generate-D1Vtl6ku.mjs";export{e as extract,t as generate};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/docgen",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "type": "module",
5
5
  "description": "Razorwind plugin that creates MDX documentation for the tokens/components defined in the design system.",
6
6
  "repository": {
@@ -99,7 +99,7 @@
99
99
  "dependencies": {
100
100
  "@power-plant/core": "^0.0.81",
101
101
  "@power-plant/dtcg-schema": "^0.0.1",
102
- "@razorwind/core": "0.0.33",
102
+ "@razorwind/core": "0.0.34",
103
103
  "@stryke/type-checks": "^0.6.35"
104
104
  },
105
105
  "devDependencies": {
@@ -108,5 +108,5 @@
108
108
  "typescript": "^6.0.3"
109
109
  },
110
110
  "publishConfig": { "access": "public" },
111
- "gitHead": "0e442417dc50da19a63dd5ce6bafb9fe8b432d8f"
111
+ "gitHead": "2e9d53ceff13e46fdd225eff5f9ac32bc661814a"
112
112
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-Bl-XjHVv.d.cts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":";;;;;;;iBAqBgB,gBAAgB;EAC9B;EACA;;;;;;iBCcc,WAAW,OAAO;;;;iBAOlB,YAAY,QAAQ,cAAc,YAAY;;;;iBAoB9C,iBAAiB,QAAQ;;;;iBAiDzB,eAAe,eAAe,QAAQ;;;;iBA8BtC,eAAe;EAC7B;EACA,QAAQ,YAAY;EACpB;EACA;IAAmB;IAAc;IAAe;;EAChD;;;cA2DW;;;;;;;;;;;;;;;;;;;cAQA;;;;;;;;;;;;;;;;;;KAOD,gCAAgC;KAChC,gCAAgC;;UAG3B;EACf,MAAM;EACN;EACA;EACA,OAAO;;;;;;;;iBA4DO,qBAAqB,sBAAsB;;;;iBA4K3C,aAAa,iBAAiB;;;;iBA8G9B,eAAe,OAAO;;;;iBAoBtB,uBAAuB,MAAM;;;;;;;;iBA2C7B,aACd,MAAM,QACN,UAAS,8BACR,wBAAwB,QAAQ"}
@@ -1,60 +0,0 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{definePlugin as t}from"@razorwind/core/plugin";import{createDocument as n,flattenTokens as r,isObject as i,titleCase as a,toCssVar as o}from"@razorwind/core/utils";import{join as s}from"node:path";function c(e,t={}){let n=t.cssVarPrefix??`rw`;return r(e,{includeTypes:t.includeTypes,enrichToken:e=>({...e,cssVar:o(e.path,n)})})}function l(e){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function u(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}function d(e){let t=e.title??`Design System`;return`# Installing ${t} Docs
2
-
3
- Generated by \`@razorwind/docgen\`.
4
-
5
- ## Files
6
-
7
- - \`${e.outDir}/index.mdx\` — documentation index
8
- - \`${e.outDir}/tokens/\` — per-group token pages
9
- - \`${e.outDir}/tokens.json\` — flattened token manifest
10
-
11
- ## Setup
12
-
13
- 1. Wire generated MDX into your docs site (Storybook, Nextra, Docusaurus, etc.).
14
-
15
- Example for Storybook:
16
-
17
- \`\`\`ts
18
- // .storybook/main.ts
19
- export default {
20
- stories: ["../${e.outDir}/**/*.mdx"]
21
- };
22
- \`\`\`
23
-
24
- 2. Open \`${e.outDir}/index.mdx\` as the **${t}** entry point.
25
-
26
- 3. Re-run Razorwind generate when tokens or registry items change.
27
-
28
- ## Regenerate
29
-
30
- Docs under \`${e.outDir}/\` are generated output — edit source tokens/components instead of hand-editing MDX.
31
- `}var f=e({COMPONENT_TYPES:()=>b,REGISTRY_ITEM_TYPES:()=>x,default:()=>z,extractIcons:()=>j,extractRegistryItems:()=>E,generateDocs:()=>R,groupTokens:()=>h,renderGroupMdx:()=>v,renderIconsMdx:()=>F,renderIndexMdx:()=>y,renderInstallMd:()=>d,renderRegistryItemsMdx:()=>I,renderTokenTable:()=>_,tokenGroup:()=>m});function p(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
32
- `)}\n---`}function m(e){return e.path.split(`.`)[0]||`tokens`}function h(e){let t=new Map;for(let n of e){let e=m(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return t}function g(e){return`<span style={{ display: "inline-block", width: "1.25em", height: "1.25em", borderRadius: "4px", verticalAlign: "middle", border: "1px solid rgba(128, 128, 128, 0.35)", background: ${JSON.stringify(e)} }} />`}function _(e){let t=e.some(e=>e.theme),n=e.some(e=>e.description),r=e.some(e=>e.type===`color`),i=[...r?[`Preview`]:[],`Token`,`Type`,`Value`,`CSS Variable`,...t?[`Theme`]:[],...n?[`Description`]:[]],a=e.toSorted((e,t)=>(e.theme??``).localeCompare(t.theme??``)||e.path.localeCompare(t.path)).map(e=>`| ${[...r?[e.type===`color`?g(e.cssValue):``]:[],`\`${u(e.path)}\``,e.type?`\`${u(String(e.type))}\``:`—`,`\`${u(e.cssValue)}\``,`\`${u(e.cssVar)}\``,...t?[e.theme?u(e.theme):`—`]:[],...n?[e.description?u(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...a].join(`
33
- `)}function v(e,t){let n=a(e),r=[...new Set(t.map(e=>e.theme).filter(Boolean))],i=[p({title:n,description:`${n} design tokens for the Razorwind design system.`}),`# ${n}`,`${t.length} token${t.length===1?``:`s`} in the \`${e}\` group.`];if(r.length>1)for(let e of r.toSorted((e,t)=>e.localeCompare(t))){let n=t.filter(t=>t.theme===e);i.push(`## ${a(e)}`,_(n))}else i.push(_(t));return`${i.join(`
34
-
35
- `)}\n`}function y(e){let{title:t,groups:n,hasComponents:r,componentPages:i=[],iconCount:o=0}=e,s=[...n.values()].reduce((e,t)=>e+t.length,0),c=[...n.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=n.get(e)?.length??0;return`- [${a(e)}](./tokens/${l(e)}.mdx) — ${t} token${t===1?``:`s`}`}),u=[p({title:t,description:`Generated reference documentation for the ${t} design tokens, components, and icons.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${s} design token${s===1?``:`s`} across ${n.size} group${n.size===1?``:`s`}.`,`## Design Tokens`,c.length>0?c.join(`
36
- `):`_No design tokens found._`];if(r||i.length>0){let e=i.map(e=>`- [${e.title}](./registry/${e.slug}.mdx) — ${e.count} item${e.count===1?``:`s`}`);u.push(`## Components`,e.length>0?e.join(`
37
- `):`_No components found._`)}return o>0&&u.push(`## Icons`,`- [Icons](./icons.mdx) — ${o} icon${o===1?``:`s`}`),`${u.join(`
38
-
39
- `)}\n`}const b={ui:{slug:`ui`,title:`UI Primitives`},component:{slug:`components`,title:`Components`},page:{slug:`pages`,title:`Pages`},block:{slug:`blocks`,title:`Blocks`}},x={"registry:ui":b.ui,"registry:component":b.component,"registry:page":b.page,"registry:block":b.block};function S(e,t){let n=e[t];return typeof n==`string`?n:void 0}function C(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function w(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):i(n)?Object.entries(n).map(([e,t])=>typeof t==`string`&&t!==`*`?`${e}@${t}`:e):[]}function T(e){let t=C(e,`categories`);if(t.length>0)return t;let n=C(e,`tags`),r=S(e,`category`);return[...r?[r]:[],...n.filter(e=>e!==r)]}function E(e){if(!i(e))return[];let t=Object.values(e).filter(i),n=[];for(let[e,r]of Object.entries(b)){let i=t.filter(t=>t.type===e);i.length>0&&n.push({type:e,slug:r.slug,title:r.title,items:i})}return n}function D(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${u(e)}\` | — | — |`;if(!i(e))return;let t=S(e,`path`);if(!t)return;let n=S(e,`type`),r=S(e,`target`);return`| \`${u(t)}\` | ${n?`\`${u(n)}\``:`—`} | ${r?`\`${u(r)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
40
- `)}function O(e){let t=e.split(`.`).pop()?.toLowerCase();return t?t===`md`?`markdown`:t:`tsx`}function k(e){return(Array.isArray(e.usage)?e.usage:[]).map(e=>{if(!i(e))return;let t=S(e,`path`),n=S(e,`content`);if(!n)return;let r=S(e,`name`)??(t?t.split(`/`).pop()?.replace(/\.[^.]+$/,``)??`example`:`example`),o=S(e,`title`)??a(r),s=S(e,`description`),c=S(e,`language`)??(t?O(t):`tsx`),l=[`#### ${o}`];return s&&l.push(s),l.push(`\`\`\`${c}\n${n.trimEnd()}\n\`\`\``),l.join(`
41
-
42
- `)}).filter(e=>e!==void 0).join(`
43
-
44
- `)}function A(e){let t=S(e,`name`)??`unknown`,n=S(e,`title`)??a(t),r=S(e,`description`),i=S(e,`author`),o=T(e),s=w(e,`dependencies`),c=w(e,`registryDependencies`),l=[`## ${n}`];r&&l.push(r);let d=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...i?[`- **Author:** ${u(i)}`]:[],...o.length>0?[`- **Categories:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[]];l.push(d.join(`
45
- `)),s.length>0&&l.push(`### Dependencies`,s.map(e=>`- \`${e}\``).join(`
46
- `)),c.length>0&&l.push(`### Registry Dependencies`,c.map(e=>`- \`${e}\``).join(`
47
- `));let f=D(e);f&&l.push(`### Files`,f);let p=k(e);return p&&l.push(`### Usage`,p),l.join(`
48
-
49
- `)}function j(e){return i(e)?Object.values(e).filter(i).toSorted((e,t)=>(S(e,`name`)??``).localeCompare(S(t,`name`)??``)):[]}function M(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${u(e)}\` | — | — | — |`;if(!i(e))return;let t=S(e,`path`);if(!t)return;let n=S(e,`type`),r=S(e,`theme`),a=S(e,`target`);return`| \`${u(t)}\` | ${n?`\`${u(n)}\``:`—`} | ${r?`\`${u(r)}\``:`—`} | ${a?`\`${u(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
50
- `)}function N(e){let t=(Array.isArray(e.files)?e.files:[]).find(e=>i(e)&&S(e,`type`)===`svg`&&typeof e.content==`string`);return!i(t)||typeof t.content!=`string`?``:[`### Preview`,`<div style={{ display: "inline-flex", width: "2rem", height: "2rem" }} dangerouslySetInnerHTML={{ __html: ${JSON.stringify(t.content)} }} />`].join(`
51
-
52
- `)}function P(e){let t=S(e,`name`)??`unknown`,n=S(e,`title`)??a(t),r=S(e,`description`),i=S(e,`category`),o=C(e,`tags`),s=C(e,`aliases`),c=[`## ${n}`];r&&c.push(r);let l=[`- **Name:** \`${t}\``,...i?[`- **Category:** \`${i}\``]:[],...o.length>0?[`- **Tags:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[],...s.length>0?[`- **Aliases:** ${s.map(e=>`\`${e}\``).join(`, `)}`]:[]];c.push(l.join(`
53
- `));let u=N(e);u&&c.push(u);let d=M(e);return d&&c.push(`### Files`,d),c.join(`
54
-
55
- `)}function F(e){let t=[p({title:`Icons`,description:`Icons available in the Razorwind design system.`}),`# Icons`,`${e.length} icon${e.length===1?``:`s`} in the design system.`];for(let n of e)t.push(P(n));return`${t.join(`
56
-
57
- `)}\n`}function I(e){let t=[p({title:e.title,description:`${e.title} available in the Razorwind component registry.`}),`# ${e.title}`,`${e.items.length} \`${e.type}\` item${e.items.length===1?``:`s`} in the component registry.`],n=e.items.toSorted((e,t)=>(S(e,`name`)??``).localeCompare(S(t,`name`)??``));for(let e of n)t.push(A(e));return`${t.join(`
58
-
59
- `)}\n`}function L(e,t,r){return n(e,t,{name:`docgen`},r)}function R(e,t={}){let n=t.outDir??`docs/design-system`,r=t.title??`Design System`,i=c(e.tokens,t),a=h(i),o=t.skipRegistry?[]:E(e.components),u=o.length>0,f=t.skipIcons?[]:j(e.icons),p={[s(n,`index.mdx`)]:L(s(n,`index.mdx`),y({title:r,groups:a,hasComponents:u,componentPages:o.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:f.length}),`mdx`)};for(let[e,t]of a){let r=s(n,`tokens`,`${l(e)}.mdx`);p[r]=L(r,v(e,t),`mdx`)}for(let e of o){let t=s(n,`registry`,`${e.slug}.mdx`);p[t]=L(t,I(e),`mdx`)}if(f.length>0){let e=s(n,`icons.mdx`);p[e]=L(e,F(f),`mdx`)}p[s(n,`tokens.json`)]=L(s(n,`tokens.json`),`${JSON.stringify(i,null,2)}\n`,`json`);let m=t.installGuide??d({outDir:n,title:r}),g=s(n,`INSTALL.md`);return p[g]=L(g,m,`markdown`),p}var z=t(e=>({name:`docgen:generate`,generate:async t=>R(t,e??{})}));export{R as a,h as c,y as d,I as f,d as h,E as i,v as l,m,x as n,z as o,_ as p,j as r,f as s,b as t,F as u};
60
- //# sourceMappingURL=generate-CXRg2yXU.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-CXRg2yXU.mjs","names":[],"sources":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-tgHJ7N42.d.mts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":""}