@razorwind/docgen 0.0.42 → 0.0.43

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.
@@ -1,4 +1,4 @@
1
- import { i as __exportAll, t as DocgenExtractPluginOptions } from "./types-tdksapmJ.cjs";
1
+ import { i as __exportAll, t as DocgenExtractPluginOptions } from "./types-BpS-q9GM.cjs";
2
2
  declare namespace extract_d_exports {
3
3
  export { _default as default };
4
4
  }
@@ -1,4 +1,4 @@
1
- import { t as DocgenExtractPluginOptions } from "./types-Df_Xoq3m.mjs";
1
+ import { t as DocgenExtractPluginOptions } from "./types-Cv1PDbbV.mjs";
2
2
  declare namespace extract_d_exports {
3
3
  export { _default as default };
4
4
  }
@@ -0,0 +1,65 @@
1
+ const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("@razorwind/core/plugin"),n=require("@razorwind/core/utils"),r=require("node:path");function i(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
+ `}function a(e,t={}){let r=t.cssVarPrefix??`rw`;return(0,n.flattenTokens)(e,{includeTypes:t.includeTypes,enrichToken:e=>({...e,cssVar:(0,n.toCssVar)(e.path,r)})})}function o(e){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function s(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}var c=e.t({COMPONENT_TYPES:()=>g,REGISTRY_ITEM_TYPES:()=>_,default:()=>z,extractFonts:()=>M,extractIcons:()=>D,extractRegistryItems:()=>S,generateDocs:()=>R,groupTokens:()=>d,renderFontsMdx:()=>F,renderGroupMdx:()=>m,renderIconsMdx:()=>j,renderIndexMdx:()=>h,renderInstallMd:()=>i,renderRegistryItemsMdx:()=>I,renderTokenTable:()=>p,tokenGroup:()=>u});function l(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
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):``]:[],`\`${s(e.path)}\``,e.type?`\`${s(String(e.type))}\``:`—`,`\`${s(e.cssValue)}\``,`\`${s(e.cssVar)}\``,...t?[e.theme?s(e.theme):`—`]:[],...n?[e.description?s(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...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
+
35
+ `)}\n`}function h(e){let{title:t,groups:r,hasComponents:i,componentPages:a=[],iconCount:s=0,fontCount:c=0}=e,u=[...r.values()].reduce((e,t)=>e+t.length,0),d=[...r.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=r.get(e)?.length??0;return`- [${(0,n.titleCase)(e)}](./tokens/${o(e)}.mdx) — ${t} token${t===1?``:`s`}`}),f=[l({title:t,description:`Generated reference documentation for the ${t} design tokens, components, icons, and fonts.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${u} design token${u===1?``:`s`} across ${r.size} group${r.size===1?``:`s`}.`,`## Design Tokens`,d.length>0?d.join(`
36
+ `):`_No design tokens found._`];if(i||a.length>0){let e=a.map(e=>`- [${e.title}](./registry/${e.slug}.mdx) — ${e.count} item${e.count===1?``:`s`}`);f.push(`## Components`,e.length>0?e.join(`
37
+ `):`_No components found._`)}return s>0&&f.push(`## Icons`,`- [Icons](./icons.mdx) — ${s} icon${s===1?``:`s`}`),c>0&&f.push(`## Fonts`,`- [Fonts](./fonts.mdx) — ${c} font${c===1?``:`s`}`),`${f.join(`
38
+
39
+ `)}\n`}const g={ui:{slug:`ui`,title:`UI Primitives`},component:{slug:`components`,title:`Components`},page:{slug:`pages`,title:`Pages`},block:{slug:`blocks`,title:`Blocks`}},_={"registry:ui":g.ui,"registry:component":g.component,"registry:page":g.page,"registry:block":g.block};function v(e,t){let n=e[t];return typeof n==`string`?n:void 0}function y(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function b(e,t){let r=e[t];return Array.isArray(r)?r.filter(e=>typeof e==`string`):(0,n.isObject)(r)?Object.entries(r).map(([e,t])=>typeof t==`string`&&t!==`*`?`${e}@${t}`:e):[]}function x(e){let t=y(e,`categories`);if(t.length>0)return t;let n=y(e,`tags`),r=v(e,`category`);return[...r?[r]:[],...n.filter(e=>e!==r)]}function S(e){if(!(0,n.isObject)(e))return[];let t=Object.values(e).filter(n.isObject),r=[];for(let[e,n]of Object.entries(g)){let i=t.filter(t=>t.type===e);i.length>0&&r.push({type:e,slug:n.slug,title:n.title,items:i})}return r}function C(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${s(e)}\` | — | — |`;if(!(0,n.isObject)(e))return;let t=v(e,`path`);if(!t)return;let r=v(e,`type`),i=v(e,`target`);return`| \`${s(t)}\` | ${r?`\`${s(r)}\``:`—`} | ${i?`\`${s(i)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
40
+ `)}function w(e){let t=e.split(`.`).pop()?.toLowerCase();return t?t===`md`?`markdown`:t:`tsx`}function T(e){return(Array.isArray(e.usage)?e.usage:[]).map(e=>{if(!(0,n.isObject)(e))return;let t=v(e,`path`),r=v(e,`content`);if(!r)return;let i=v(e,`name`)??(t?t.split(`/`).pop()?.replace(/\.[^.]+$/,``)??`example`:`example`),a=v(e,`title`)??(0,n.titleCase)(i),o=v(e,`description`),s=v(e,`language`)??(t?w(t):`tsx`),c=[`#### ${a}`];return o&&c.push(o),c.push(`\`\`\`${s}\n${r.trimEnd()}\n\`\`\``),c.join(`
41
+
42
+ `)}).filter(e=>e!==void 0).join(`
43
+
44
+ `)}function E(e){let t=v(e,`name`)??`unknown`,r=v(e,`title`)??(0,n.titleCase)(t),i=v(e,`description`),a=v(e,`author`),o=x(e),c=b(e,`dependencies`),l=b(e,`registryDependencies`),u=[`## ${r}`];i&&u.push(i);let d=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...a?[`- **Author:** ${s(a)}`]:[],...o.length>0?[`- **Categories:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[]];u.push(d.join(`
45
+ `)),c.length>0&&u.push(`### Dependencies`,c.map(e=>`- \`${e}\``).join(`
46
+ `)),l.length>0&&u.push(`### Registry Dependencies`,l.map(e=>`- \`${e}\``).join(`
47
+ `));let f=C(e);f&&u.push(`### Files`,f);let p=T(e);return p&&u.push(`### Usage`,p),u.join(`
48
+
49
+ `)}function D(e){return(0,n.isObject)(e)?Object.values(e).filter(n.isObject).toSorted((e,t)=>(v(e,`name`)??``).localeCompare(v(t,`name`)??``)):[]}function O(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${s(e)}\` | — | — | — |`;if(!(0,n.isObject)(e))return;let t=v(e,`path`);if(!t)return;let r=v(e,`type`),i=v(e,`theme`),a=v(e,`target`);return`| \`${s(t)}\` | ${r?`\`${s(r)}\``:`—`} | ${i?`\`${s(i)}\``:`—`} | ${a?`\`${s(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
50
+ `)}function k(e){let t=(Array.isArray(e.files)?e.files:[]).find(e=>(0,n.isObject)(e)&&v(e,`type`)===`svg`&&typeof e.content==`string`);return!(0,n.isObject)(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 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
+ `));let u=k(e);u&&c.push(u);let d=O(e);return d&&c.push(`### Files`,d),c.join(`
54
+
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
+
57
+ `)}\n`}function M(e){return(0,n.isObject)(e)?Object.values(e).filter(n.isObject).toSorted((e,t)=>(v(e,`name`)??``).localeCompare(v(t,`name`)??``)):[]}function N(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(!(0,n.isObject)(e))return;let t=v(e,`path`);if(!t)return;let r=v(e,`format`),i=typeof e.weight==`number`||typeof e.weight==`string`?String(e.weight):void 0,a=v(e,`style`);return`| \`${s(t)}\` | ${r?`\`${s(r)}\``:`—`} | ${i?`\`${s(i)}\``:`—`} | ${a?`\`${s(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Format | Weight | Style |`,`| --- | --- | --- | --- |`,...t].join(`
58
+ `)}function P(e){let t=v(e,`name`)??`unknown`,r=v(e,`title`)??(0,n.titleCase)(t),i=v(e,`description`),a=v(e,`source`)??`local`,o=v(e,`family`),s=v(e,`role`),c=y(e,`tags`),l=[`## ${r}`];i&&l.push(i);let u=[`- **Name:** \`${t}\``,`- **Source:** \`${a}\``,...o?[`- **Family:** \`${o}\``]:[],...s?[`- **Role:** \`${s}\``]:[],...c.length>0?[`- **Tags:** ${c.map(e=>`\`${e}\``).join(`, `)}`]:[]];if(l.push(u.join(`
59
+ `)),a===`local`){let t=N(e);t&&l.push(`### Files`,t)}return l.join(`
60
+
61
+ `)}function F(e,t=`design system`){let n=[l({title:`Fonts`,description:`Fonts available in the ${t}.`}),`# Fonts`,`${e.length} font${e.length===1?``:`s`} in the design system.`];for(let t of e)n.push(P(t));return`${n.join(`
62
+
63
+ `)}\n`}function I(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(`
64
+
65
+ `)}\n`}function L(e,t,r){return(0,n.createDocument)(e,t,{name:`docgen`},r)}function R(e,t={}){let s=t.outDir??`docs/design-system`,c=(0,n.resolveSchemaIdentity)(e,{title:t.title}),l=c.title??`Design System`,u=c.title??`design system`,f=a(e.tokens,t),p=d(f),g=t.skipRegistry?[]:S(e.components),_=g.length>0,v=t.skipIcons?[]:D(e.icons),y=t.skipFonts?[]:M(e.fonts),b={[(0,r.join)(s,`index.mdx`)]:L((0,r.join)(s,`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,fontCount:y.length}),`mdx`)};for(let[e,t]of p){let n=(0,r.join)(s,`tokens`,`${o(e)}.mdx`);b[n]=L(n,m(e,t,u),`mdx`)}for(let e of g){let t=(0,r.join)(s,`registry`,`${e.slug}.mdx`);b[t]=L(t,I(e,u),`mdx`)}if(v.length>0){let e=(0,r.join)(s,`icons.mdx`);b[e]=L(e,j(v,u),`mdx`)}if(y.length>0){let e=(0,r.join)(s,`fonts.mdx`);b[e]=L(e,F(y,u),`mdx`)}b[(0,r.join)(s,`tokens.json`)]=L((0,r.join)(s,`tokens.json`),`${JSON.stringify(f,null,2)}\n`,`json`);let x=t.installGuide??i({outDir:s,title:l}),C=(0,r.join)(s,`INSTALL.md`);return b[C]=L(C,x,`markdown`),b}var z=(0,t.definePlugin)(e=>({name:`docgen:generate`,generate:async t=>R(t,e??{})}));Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return F}});
@@ -1,4 +1,4 @@
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
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){let t=e.title??`Design System`;return`# Installing ${t} Docs
2
2
 
3
3
  Generated by \`@razorwind/docgen\`.
4
4
 
@@ -28,25 +28,25 @@ export default {
28
28
  ## Regenerate
29
29
 
30
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(`
31
+ `}function u(e,t={}){let n=t.cssVarPrefix??`rw`;return r(e,{includeTypes:t.includeTypes,enrichToken:e=>({...e,cssVar:s(e.path,n)})})}function d(e){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function f(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}var p=e({COMPONENT_TYPES:()=>x,REGISTRY_ITEM_TYPES:()=>S,default:()=>W,extractFonts:()=>L,extractIcons:()=>M,extractRegistryItems:()=>D,generateDocs:()=>U,groupTokens:()=>g,renderFontsMdx:()=>B,renderGroupMdx:()=>y,renderIconsMdx:()=>I,renderIndexMdx:()=>b,renderInstallMd:()=>l,renderRegistryItemsMdx:()=>V,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):``]:[],`\`${f(e.path)}\``,e.type?`\`${f(String(e.type))}\``:`—`,`\`${f(e.cssValue)}\``,`\`${f(e.cssVar)}\``,...t?[e.theme?f(e.theme):`—`]:[],...n?[e.description?f(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...a].join(`
33
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
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(`
35
+ `)}\n`}function b(e){let{title:t,groups:n,hasComponents:r,componentPages:i=[],iconCount:a=0,fontCount:s=0}=e,c=[...n.values()].reduce((e,t)=>e+t.length,0),l=[...n.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=n.get(e)?.length??0;return`- [${o(e)}](./tokens/${d(e)}.mdx) — ${t} token${t===1?``:`s`}`}),u=[m({title:t,description:`Generated reference documentation for the ${t} design tokens, components, icons, and fonts.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${c} design token${c===1?``:`s`} across ${n.size} group${n.size===1?``:`s`}.`,`## Design Tokens`,l.length>0?l.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 a>0&&u.push(`## Icons`,`- [Icons](./icons.mdx) — ${a} icon${a===1?``:`s`}`),s>0&&u.push(`## Fonts`,`- [Fonts](./fonts.mdx) — ${s} font${s===1?``:`s`}`),`${u.join(`
38
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(`
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`| \`${f(e)}\` | — | — |`;if(!i(e))return;let t=C(e,`path`);if(!t)return;let n=C(e,`type`),r=C(e,`target`);return`| \`${f(t)}\` | ${n?`\`${f(n)}\``:`—`} | ${r?`\`${f(r)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
40
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
41
 
42
42
  `)}).filter(e=>e!==void 0).join(`
43
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(`
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:** ${f(i)}`]:[],...a.length>0?[`- **Categories:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[]];l.push(u.join(`
45
45
  `)),s.length>0&&l.push(`### Dependencies`,s.map(e=>`- \`${e}\``).join(`
46
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(`
47
+ `));let d=O(e);d&&l.push(`### Files`,d);let p=A(e);return p&&l.push(`### Usage`,p),l.join(`
48
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(`
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`| \`${f(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`| \`${f(t)}\` | ${n?`\`${f(n)}\``:`—`} | ${r?`\`${f(r)}\``:`—`} | ${a?`\`${f(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
50
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
51
 
52
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(`
@@ -54,7 +54,13 @@ Docs under \`${e.outDir}/\` are generated output — edit source tokens/componen
54
54
 
55
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
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(`
57
+ `)}\n`}function L(e){return i(e)?Object.values(e).filter(i).toSorted((e,t)=>(C(e,`name`)??``).localeCompare(C(t,`name`)??``)):[]}function R(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(!i(e))return;let t=C(e,`path`);if(!t)return;let n=C(e,`format`),r=typeof e.weight==`number`||typeof e.weight==`string`?String(e.weight):void 0,a=C(e,`style`);return`| \`${f(t)}\` | ${n?`\`${f(n)}\``:`—`} | ${r?`\`${f(r)}\``:`—`} | ${a?`\`${f(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Format | Weight | Style |`,`| --- | --- | --- | --- |`,...t].join(`
58
+ `)}function z(e){let t=C(e,`name`)??`unknown`,n=C(e,`title`)??o(t),r=C(e,`description`),i=C(e,`source`)??`local`,a=C(e,`family`),s=C(e,`role`),c=w(e,`tags`),l=[`## ${n}`];r&&l.push(r);let u=[`- **Name:** \`${t}\``,`- **Source:** \`${i}\``,...a?[`- **Family:** \`${a}\``]:[],...s?[`- **Role:** \`${s}\``]:[],...c.length>0?[`- **Tags:** ${c.map(e=>`\`${e}\``).join(`, `)}`]:[]];if(l.push(u.join(`
59
+ `)),i===`local`){let t=R(e);t&&l.push(`### Files`,t)}return l.join(`
58
60
 
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
61
+ `)}function B(e,t=`design system`){let n=[m({title:`Fonts`,description:`Fonts available in the ${t}.`}),`# Fonts`,`${e.length} font${e.length===1?``:`s`} in the design system.`];for(let t of e)n.push(z(t));return`${n.join(`
62
+
63
+ `)}\n`}function V(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(`
64
+
65
+ `)}\n`}function H(e,t,r){return n(e,t,{name:`docgen`},r)}function U(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=u(e.tokens,t),f=g(s),p=t.skipRegistry?[]:D(e.components),m=p.length>0,h=t.skipIcons?[]:M(e.icons),_=t.skipFonts?[]:L(e.fonts),v={[c(n,`index.mdx`)]:H(c(n,`index.mdx`),b({title:i,groups:f,hasComponents:m,componentPages:p.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:h.length,fontCount:_.length}),`mdx`)};for(let[e,t]of f){let r=c(n,`tokens`,`${d(e)}.mdx`);v[r]=H(r,y(e,t,o),`mdx`)}for(let e of p){let t=c(n,`registry`,`${e.slug}.mdx`);v[t]=H(t,V(e,o),`mdx`)}if(h.length>0){let e=c(n,`icons.mdx`);v[e]=H(e,I(h,o),`mdx`)}if(_.length>0){let e=c(n,`fonts.mdx`);v[e]=H(e,B(_,o),`mdx`)}v[c(n,`tokens.json`)]=H(c(n,`tokens.json`),`${JSON.stringify(s,null,2)}\n`,`json`);let x=t.installGuide??l({outDir:n,title:i}),S=c(n,`INSTALL.md`);return v[S]=H(S,x,`markdown`),v}var W=t(e=>({name:`docgen:generate`,generate:async t=>U(t,e??{})}));export{l as _,D as a,p as c,y as d,I as f,h as g,v as h,M as i,g as l,V as m,S as n,U as o,b as p,L as r,W as s,x as t,B as u};
66
+ //# sourceMappingURL=generate-BOBfJmmX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-BOBfJmmX.mjs","names":[],"sources":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-Df_Xoq3m.mjs";
1
+ import { n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-Cv1PDbbV.mjs";
2
2
  import { GeneratorFunctionResult } from "@power-plant/core";
3
3
  import { Schema } from "@razorwind/core/schema";
4
4
  //#region src/install.d.ts
@@ -10,7 +10,7 @@ declare function renderInstallMd(options: {
10
10
  title?: string;
11
11
  }): string;
12
12
  declare namespace generate_d_exports {
13
- export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderInstallMd, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
13
+ export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractFonts, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderFontsMdx, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderInstallMd, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
14
14
  }
15
15
  /** Top-level path segment used to group tokens into pages. */
16
16
  declare function tokenGroup(token: FlatToken): string;
@@ -39,6 +39,7 @@ declare function renderIndexMdx(input: {
39
39
  count: number;
40
40
  }[];
41
41
  iconCount?: number;
42
+ fontCount?: number;
42
43
  }): string;
43
44
  /** Component types that receive a dedicated documentation page. */
44
45
  declare const COMPONENT_TYPES: {
@@ -102,6 +103,14 @@ declare function extractIcons(icons: unknown): Record<string, unknown>[];
102
103
  * Render an MDX documentation page for all icons.
103
104
  */
104
105
  declare function renderIconsMdx(icons: Record<string, unknown>[], systemTitle?: string): string;
106
+ /**
107
+ * Extract documented fonts from `schema.fonts`.
108
+ */
109
+ declare function extractFonts(fonts: unknown): Record<string, unknown>[];
110
+ /**
111
+ * Render an MDX documentation page for all fonts.
112
+ */
113
+ declare function renderFontsMdx(fonts: Record<string, unknown>[], systemTitle?: string): string;
105
114
  /**
106
115
  * Render an MDX documentation page for all components of a single type.
107
116
  */
@@ -129,5 +138,5 @@ declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOption
129
138
  */
130
139
  declare const _default: (options?: DocgenGeneratePluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
131
140
  //#endregion
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-Njl5pSvw.d.mts.map
141
+ export { renderRegistryItemsMdx as _, RegistryItemType as a, renderInstallMd as b, extractIcons as c, generate_d_exports as d, groupTokens as f, renderIndexMdx as g, renderIconsMdx as h, RegistryItemPage as i, extractRegistryItems as l, renderGroupMdx as m, ComponentDocType as n, _default as o, renderFontsMdx as p, REGISTRY_ITEM_TYPES as r, extractFonts as s, COMPONENT_TYPES as t, generateDocs as u, renderTokenTable as v, tokenGroup as y };
142
+ //# sourceMappingURL=generate-BOr_Y8Tw.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-BOr_Y8Tw.d.mts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { i as __exportAll, n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-tdksapmJ.cjs";
1
+ import { i as __exportAll, n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-BpS-q9GM.cjs";
2
2
  import { GeneratorFunctionResult } from "@power-plant/core";
3
3
  import { Schema } from "@razorwind/core/schema";
4
4
  //#region src/install.d.ts
@@ -10,7 +10,7 @@ declare function renderInstallMd(options: {
10
10
  title?: string;
11
11
  }): string;
12
12
  declare namespace generate_d_exports {
13
- export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderInstallMd, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
13
+ export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractFonts, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderFontsMdx, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderInstallMd, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
14
14
  }
15
15
  /** Top-level path segment used to group tokens into pages. */
16
16
  declare function tokenGroup(token: FlatToken): string;
@@ -39,6 +39,7 @@ declare function renderIndexMdx(input: {
39
39
  count: number;
40
40
  }[];
41
41
  iconCount?: number;
42
+ fontCount?: number;
42
43
  }): string;
43
44
  /** Component types that receive a dedicated documentation page. */
44
45
  declare const COMPONENT_TYPES: {
@@ -102,6 +103,14 @@ declare function extractIcons(icons: unknown): Record<string, unknown>[];
102
103
  * Render an MDX documentation page for all icons.
103
104
  */
104
105
  declare function renderIconsMdx(icons: Record<string, unknown>[], systemTitle?: string): string;
106
+ /**
107
+ * Extract documented fonts from `schema.fonts`.
108
+ */
109
+ declare function extractFonts(fonts: unknown): Record<string, unknown>[];
110
+ /**
111
+ * Render an MDX documentation page for all fonts.
112
+ */
113
+ declare function renderFontsMdx(fonts: Record<string, unknown>[], systemTitle?: string): string;
105
114
  /**
106
115
  * Render an MDX documentation page for all components of a single type.
107
116
  */
@@ -129,5 +138,5 @@ declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOption
129
138
  */
130
139
  declare const _default: (options?: DocgenGeneratePluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
131
140
  //#endregion
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-i64p6FjR.d.cts.map
141
+ export { renderRegistryItemsMdx as _, RegistryItemType as a, renderInstallMd as b, extractIcons as c, generate_d_exports as d, groupTokens as f, renderIndexMdx as g, renderIconsMdx as h, RegistryItemPage as i, extractRegistryItems as l, renderGroupMdx as m, ComponentDocType as n, _default as o, renderFontsMdx as p, REGISTRY_ITEM_TYPES as r, extractFonts as s, COMPONENT_TYPES as t, generateDocs as u, renderTokenTable as v, tokenGroup as y };
142
+ //# sourceMappingURL=generate-BivsaLP2.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-BivsaLP2.d.cts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":";;;;;;;iBAqBgB,gBAAgB;EAC9B;EACA;;;;;;iBCmBc,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;EACA;;;cAmEW;;;;;;;;;;;;;;;;;;;cAQA;;;;;;;;;;;;;;;;;;KAOD,gCAAgC;KAChC,gCAAgC;;UAG3B;EACf,MAAM;EACN;EACA;EACA,OAAO;;;;;;;;iBA4DO,qBAAqB,sBAAsB;;;;iBA+K3C,aAAa,iBAAiB;;;;iBA8G9B,eACd,OAAO,2BACP;;;;iBAqBc,aAAa,iBAAiB;;;;iBAuF9B,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-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
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-3d6KNjOd.cjs");exports.COMPONENT_TYPES=e.t,exports.REGISTRY_ITEM_TYPES=e.n,exports.default=e.s,exports.extractFonts=e.r,exports.extractIcons=e.i,exports.extractRegistryItems=e.a,exports.generateDocs=e.o,exports.groupTokens=e.l,exports.renderFontsMdx=e.u,exports.renderGroupMdx=e.d,exports.renderIconsMdx=e.f,exports.renderIndexMdx=e.p,exports.renderInstallMd=e._,exports.renderRegistryItemsMdx=e.m,exports.renderTokenTable=e.h,exports.tokenGroup=e.g;
@@ -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-i64p6FjR.cjs";
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
+ import { _ as renderRegistryItemsMdx, a as RegistryItemType, b as renderInstallMd, c as extractIcons, f as groupTokens, g as renderIndexMdx, h as renderIconsMdx, i as RegistryItemPage, l as extractRegistryItems, m as renderGroupMdx, n as ComponentDocType, o as _default, p as renderFontsMdx, r as REGISTRY_ITEM_TYPES, s as extractFonts, t as COMPONENT_TYPES, u as generateDocs, v as renderTokenTable, y as tokenGroup } from "./generate-BivsaLP2.cjs";
2
+ export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractFonts, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderFontsMdx, 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-Njl5pSvw.mjs";
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
+ import { _ as renderRegistryItemsMdx, a as RegistryItemType, b as renderInstallMd, c as extractIcons, f as groupTokens, g as renderIndexMdx, h as renderIconsMdx, i as RegistryItemPage, l as extractRegistryItems, m as renderGroupMdx, n as ComponentDocType, o as _default, p as renderFontsMdx, r as REGISTRY_ITEM_TYPES, s as extractFonts, t as COMPONENT_TYPES, u as generateDocs, v as renderTokenTable, y as tokenGroup } from "./generate-BOr_Y8Tw.mjs";
2
+ export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractFonts, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderFontsMdx, 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-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};
1
+ import{_ as e,a as t,d as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,u as h}from"./generate-BOBfJmmX.mjs";export{m as COMPONENT_TYPES,l as REGISTRY_ITEM_TYPES,p as default,f as extractFonts,o as extractIcons,t as extractRegistryItems,u as generateDocs,s as groupTokens,h as renderFontsMdx,n as renderGroupMdx,r as renderIconsMdx,d as renderIndexMdx,e as renderInstallMd,c as renderRegistryItemsMdx,a as renderTokenTable,i 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-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}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./extract.cjs"),t=require("./generate-3d6KNjOd.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.c}});
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-i64p6FjR.cjs";
2
+ import { d as generate_d_exports } from "./generate-BivsaLP2.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-Njl5pSvw.mjs";
2
+ import { d as generate_d_exports } from "./generate-BOr_Y8Tw.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-D1Vtl6ku.mjs";export{e as extract,t as generate};
1
+ import{t as e}from"./extract.mjs";import{c as t}from"./generate-BOBfJmmX.mjs";export{e as extract,t as generate};
@@ -44,6 +44,12 @@ interface DocgenGeneratePluginOptions {
44
44
  * @defaultValue `false`
45
45
  */
46
46
  skipIcons?: boolean;
47
+ /**
48
+ * Skip generating font documentation pages.
49
+ *
50
+ * @defaultValue `false`
51
+ */
52
+ skipFonts?: boolean;
47
53
  /**
48
54
  * Override body for generated `INSTALL.md`. When omitted, doc site wiring
49
55
  * steps are generated for the output directory.
@@ -71,4 +77,4 @@ interface FlatToken {
71
77
  }
72
78
  //#endregion
73
79
  export { __exportAll as i, DocgenGeneratePluginOptions as n, FlatToken as r, DocgenExtractPluginOptions as t };
74
- //# sourceMappingURL=types-tdksapmJ.d.cts.map
80
+ //# sourceMappingURL=types-BpS-q9GM.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-BpS-q9GM.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;UAuBiB;;;;UAKA;;;;;;EAMf;;;;;;EAOA;;;;;;EAOA;;;;;EAMA,eAAe;;;;;;EAOf;;;;;;EAOA;;;;;;EAOA;;;;;EAMA;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;EAEA"}
@@ -43,6 +43,12 @@ interface DocgenGeneratePluginOptions {
43
43
  * @defaultValue `false`
44
44
  */
45
45
  skipIcons?: boolean;
46
+ /**
47
+ * Skip generating font documentation pages.
48
+ *
49
+ * @defaultValue `false`
50
+ */
51
+ skipFonts?: boolean;
46
52
  /**
47
53
  * Override body for generated `INSTALL.md`. When omitted, doc site wiring
48
54
  * steps are generated for the output directory.
@@ -70,4 +76,4 @@ interface FlatToken {
70
76
  }
71
77
  //#endregion
72
78
  export { DocgenGeneratePluginOptions as n, FlatToken as r, DocgenExtractPluginOptions as t };
73
- //# sourceMappingURL=types-Df_Xoq3m.d.mts.map
79
+ //# sourceMappingURL=types-Cv1PDbbV.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-Cv1PDbbV.d.mts","names":[],"sources":["../src/types.ts"],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/docgen",
3
- "version": "0.0.42",
3
+ "version": "0.0.43",
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.90",
101
101
  "@power-plant/dtcg-schema": "^0.0.1",
102
- "@razorwind/core": "^0.0.46",
102
+ "@razorwind/core": "^0.0.47",
103
103
  "@stryke/type-checks": "^0.6.41"
104
104
  },
105
105
  "devDependencies": {
@@ -108,5 +108,5 @@
108
108
  "typescript": "^6.0.3"
109
109
  },
110
110
  "publishConfig": { "access": "public" },
111
- "gitHead": "0bfdb728cdb6c241eae5072dab7984fe48146c22"
111
+ "gitHead": "ca5955e41399f13b752e589a14338d6821b78f6c"
112
112
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-D1Vtl6ku.mjs","names":[],"sources":[],"mappings":""}
@@ -1,59 +0,0 @@
1
- const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("@razorwind/core/plugin"),n=require("@razorwind/core/utils"),r=require("node:path");function i(e,t={}){let r=t.cssVarPrefix??`rw`;return(0,n.flattenTokens)(e,{includeTypes:t.includeTypes,enrichToken:e=>({...e,cssVar:(0,n.toCssVar)(e.path,r)})})}function a(e){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function o(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}function s(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 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
- `)}\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,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
-
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
- `):`_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(`
37
- `):`_No components found._`)}return s>0&&d.push(`## Icons`,`- [Icons](./icons.mdx) — ${s} icon${s===1?``:`s`}`),`${d.join(`
38
-
39
- `)}\n`}const g={ui:{slug:`ui`,title:`UI Primitives`},component:{slug:`components`,title:`Components`},page:{slug:`pages`,title:`Pages`},block:{slug:`blocks`,title:`Blocks`}},_={"registry:ui":g.ui,"registry:component":g.component,"registry:page":g.page,"registry:block":g.block};function v(e,t){let n=e[t];return typeof n==`string`?n:void 0}function y(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function b(e,t){let r=e[t];return Array.isArray(r)?r.filter(e=>typeof e==`string`):(0,n.isObject)(r)?Object.entries(r).map(([e,t])=>typeof t==`string`&&t!==`*`?`${e}@${t}`:e):[]}function x(e){let t=y(e,`categories`);if(t.length>0)return t;let n=y(e,`tags`),r=v(e,`category`);return[...r?[r]:[],...n.filter(e=>e!==r)]}function S(e){if(!(0,n.isObject)(e))return[];let t=Object.values(e).filter(n.isObject),r=[];for(let[e,n]of Object.entries(g)){let i=t.filter(t=>t.type===e);i.length>0&&r.push({type:e,slug:n.slug,title:n.title,items:i})}return r}function C(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${o(e)}\` | — | — |`;if(!(0,n.isObject)(e))return;let t=v(e,`path`);if(!t)return;let r=v(e,`type`),i=v(e,`target`);return`| \`${o(t)}\` | ${r?`\`${o(r)}\``:`—`} | ${i?`\`${o(i)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
40
- `)}function w(e){let t=e.split(`.`).pop()?.toLowerCase();return t?t===`md`?`markdown`:t:`tsx`}function T(e){return(Array.isArray(e.usage)?e.usage:[]).map(e=>{if(!(0,n.isObject)(e))return;let t=v(e,`path`),r=v(e,`content`);if(!r)return;let i=v(e,`name`)??(t?t.split(`/`).pop()?.replace(/\.[^.]+$/,``)??`example`:`example`),a=v(e,`title`)??(0,n.titleCase)(i),o=v(e,`description`),s=v(e,`language`)??(t?w(t):`tsx`),c=[`#### ${a}`];return o&&c.push(o),c.push(`\`\`\`${s}\n${r.trimEnd()}\n\`\`\``),c.join(`
41
-
42
- `)}).filter(e=>e!==void 0).join(`
43
-
44
- `)}function E(e){let t=v(e,`name`)??`unknown`,r=v(e,`title`)??(0,n.titleCase)(t),i=v(e,`description`),a=v(e,`author`),s=x(e),c=b(e,`dependencies`),l=b(e,`registryDependencies`),u=[`## ${r}`];i&&u.push(i);let d=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...a?[`- **Author:** ${o(a)}`]:[],...s.length>0?[`- **Categories:** ${s.map(e=>`\`${e}\``).join(`, `)}`]:[]];u.push(d.join(`
45
- `)),c.length>0&&u.push(`### Dependencies`,c.map(e=>`- \`${e}\``).join(`
46
- `)),l.length>0&&u.push(`### Registry Dependencies`,l.map(e=>`- \`${e}\``).join(`
47
- `));let f=C(e);f&&u.push(`### Files`,f);let p=T(e);return p&&u.push(`### Usage`,p),u.join(`
48
-
49
- `)}function D(e){return(0,n.isObject)(e)?Object.values(e).filter(n.isObject).toSorted((e,t)=>(v(e,`name`)??``).localeCompare(v(t,`name`)??``)):[]}function O(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${o(e)}\` | — | — | — |`;if(!(0,n.isObject)(e))return;let t=v(e,`path`);if(!t)return;let r=v(e,`type`),i=v(e,`theme`),a=v(e,`target`);return`| \`${o(t)}\` | ${r?`\`${o(r)}\``:`—`} | ${i?`\`${o(i)}\``:`—`} | ${a?`\`${o(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
50
- `)}function k(e){let t=(Array.isArray(e.files)?e.files:[]).find(e=>(0,n.isObject)(e)&&v(e,`type`)===`svg`&&typeof e.content==`string`);return!(0,n.isObject)(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 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
- `));let u=k(e);u&&c.push(u);let d=O(e);return d&&c.push(`### Files`,d),c.join(`
54
-
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
-
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
-
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}});
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-Njl5pSvw.d.mts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":""}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-Df_Xoq3m.d.mts","names":[],"sources":["../src/types.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-tdksapmJ.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;UAuBiB;;;;UAKA;;;;;;EAMf;;;;;;EAOA;;;;;;EAOA;;;;;EAMA,eAAe;;;;;;EAOf;;;;;;EAOA;;;;;EAMA;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;EAEA"}