@razorwind/docgen 0.0.43 → 0.0.45

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-BpS-q9GM.cjs";
1
+ import { i as __exportAll, t as DocgenExtractPluginOptions } from "./types-Bmv3WG5V.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-Cv1PDbbV.mjs";
1
+ import { t as DocgenExtractPluginOptions } from "./types-zjTWanwB.mjs";
2
2
  declare namespace extract_d_exports {
3
3
  export { _default as default };
4
4
  }
@@ -0,0 +1,66 @@
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,slugifyThemeName as o,titleCase as s,toCssVar as c}from"@razorwind/core/utils";import{joinPaths as l}from"@stryke/path";import{join as u}from"node:path";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.outputPath}/index.mdx\` — documentation index
8
+ - \`${e.outputPath}/tokens/\` — per-group token pages
9
+ - \`${e.outputPath}/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.outputPath}/**/*.mdx"]
21
+ };
22
+ \`\`\`
23
+
24
+ 2. Open \`${e.outputPath}/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.outputPath}/\` are generated output — edit source tokens/components instead of hand-editing MDX.
31
+ `}function f(e,t={}){let n=t.cssVarPrefix??`rw`;return r(e,{includeTypes:t.includeTypes,enrichToken:e=>({...e,cssVar:c(e.path,n)})})}function p(e){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function m(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}var h=e({COMPONENT_TYPES:()=>C,REGISTRY_ITEM_TYPES:()=>w,default:()=>K,extractFonts:()=>z,extractIcons:()=>P,extractRegistryItems:()=>k,generateDocs:()=>G,groupTokens:()=>v,renderFontsMdx:()=>H,renderGroupMdx:()=>x,renderIconsMdx:()=>R,renderIndexMdx:()=>S,renderInstallMd:()=>d,renderRegistryItemsMdx:()=>U,renderTokenTable:()=>b,tokenGroup:()=>_});function g(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
32
+ `)}\n---`}function _(e){return e.path.split(`.`)[0]||`tokens`}function v(e){let t=new Map;for(let n of e){let e=_(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return t}function y(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 b(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`?y(e.cssValue):``]:[],`\`${m(e.path)}\``,e.type?`\`${m(String(e.type))}\``:`—`,`\`${m(e.cssValue)}\``,`\`${m(e.cssVar)}\``,...t?[e.theme?m(e.theme):`—`]:[],...n?[e.description?m(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...a].join(`
33
+ `)}function x(e,t,n=`design system`){let r=s(e),i=[...new Set(t.map(e=>e.theme).filter(Boolean))],a=[g({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(`## ${s(e)}`,b(n))}else a.push(b(t));return`${a.join(`
34
+
35
+ `)}\n`}function S(e){let{title:t,groups:n,hasComponents:r,componentPages:i=[],iconCount:a=0,fontCount:o=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`- [${s(e)}](./tokens/${p(e)}.mdx) — ${t} token${t===1?``:`s`}`}),u=[g({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`}`),o>0&&u.push(`## Fonts`,`- [Fonts](./fonts.mdx) — ${o} font${o===1?``:`s`}`),`${u.join(`
38
+
39
+ `)}\n`}const C={ui:{slug:`ui`,title:`UI Primitives`},component:{slug:`components`,title:`Components`},page:{slug:`pages`,title:`Pages`},block:{slug:`blocks`,title:`Blocks`}},w={"registry:ui":C.ui,"registry:component":C.component,"registry:page":C.page,"registry:block":C.block};function T(e,t){let n=e[t];return typeof n==`string`?n:void 0}function E(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function D(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 O(e){let t=E(e,`categories`);if(t.length>0)return t;let n=E(e,`tags`),r=T(e,`category`);return[...r?[r]:[],...n.filter(e=>e!==r)]}function k(e){if(!i(e))return[];let t=Object.values(e).filter(i),n=[];for(let[e,r]of Object.entries(C)){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 A(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${m(e)}\` | — | — |`;if(!i(e))return;let t=T(e,`path`);if(!t)return;let n=T(e,`type`),r=T(e,`target`);return`| \`${m(t)}\` | ${n?`\`${m(n)}\``:`—`} | ${r?`\`${m(r)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
40
+ `)}function j(e){let t=e.split(`.`).pop()?.toLowerCase();return t?t===`md`?`markdown`:t:`tsx`}function M(e){return(Array.isArray(e.usage)?e.usage:[]).map(e=>{if(!i(e))return;let t=T(e,`path`),n=T(e,`content`);if(!n)return;let r=T(e,`name`)??(t?t.split(`/`).pop()?.replace(/\.[^.]+$/,``)??`example`:`example`),a=T(e,`title`)??s(r),o=T(e,`description`),c=T(e,`language`)??(t?j(t):`tsx`),l=[`#### ${a}`];return o&&l.push(o),l.push(`\`\`\`${c}\n${n.trimEnd()}\n\`\`\``),l.join(`
41
+
42
+ `)}).filter(e=>e!==void 0).join(`
43
+
44
+ `)}function N(e){let t=T(e,`name`)??`unknown`,n=T(e,`title`)??s(t),r=T(e,`description`),i=T(e,`author`),a=O(e),o=D(e,`dependencies`),c=D(e,`registryDependencies`),l=[`## ${n}`];r&&l.push(r);let u=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...i?[`- **Author:** ${m(i)}`]:[],...a.length>0?[`- **Categories:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[]];l.push(u.join(`
45
+ `)),o.length>0&&l.push(`### Dependencies`,o.map(e=>`- \`${e}\``).join(`
46
+ `)),c.length>0&&l.push(`### Registry Dependencies`,c.map(e=>`- \`${e}\``).join(`
47
+ `));let d=A(e);d&&l.push(`### Files`,d);let f=M(e);return f&&l.push(`### Usage`,f),l.join(`
48
+
49
+ `)}function P(e){return i(e)?Object.values(e).filter(i).toSorted((e,t)=>(T(e,`name`)??``).localeCompare(T(t,`name`)??``)):[]}function F(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${m(e)}\` | — | — | — |`;if(!i(e))return;let t=T(e,`path`);if(!t)return;let n=T(e,`type`),r=T(e,`theme`),a=T(e,`target`);return`| \`${m(t)}\` | ${n?`\`${m(n)}\``:`—`} | ${r?`\`${m(r)}\``:`—`} | ${a?`\`${m(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
50
+ `)}function I(e){let t=(Array.isArray(e.files)?e.files:[]).find(e=>i(e)&&T(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 L(e){let t=T(e,`name`)??`unknown`,n=T(e,`title`)??s(t),r=T(e,`description`),i=T(e,`category`),a=E(e,`tags`),o=E(e,`aliases`),c=[`## ${n}`];r&&c.push(r);let l=[`- **Name:** \`${t}\``,...i?[`- **Category:** \`${i}\``]:[],...a.length>0?[`- **Tags:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[],...o.length>0?[`- **Aliases:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[]];c.push(l.join(`
53
+ `));let u=I(e);u&&c.push(u);let d=F(e);return d&&c.push(`### Files`,d),c.join(`
54
+
55
+ `)}function R(e,t=`design system`){let n=[g({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(L(t));return`${n.join(`
56
+
57
+ `)}\n`}function z(e){return i(e)?Object.values(e).filter(i).toSorted((e,t)=>(T(e,`name`)??``).localeCompare(T(t,`name`)??``)):[]}function B(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(!i(e))return;let t=T(e,`path`);if(!t)return;let n=T(e,`format`),r=typeof e.weight==`number`||typeof e.weight==`string`?String(e.weight):void 0,a=T(e,`style`);return`| \`${m(t)}\` | ${n?`\`${m(n)}\``:`—`} | ${r?`\`${m(r)}\``:`—`} | ${a?`\`${m(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Format | Weight | Style |`,`| --- | --- | --- | --- |`,...t].join(`
58
+ `)}function V(e){let t=T(e,`name`)??`unknown`,n=T(e,`title`)??s(t),r=T(e,`description`),i=T(e,`source`)??`local`,a=T(e,`family`),o=T(e,`role`),c=E(e,`tags`),l=[`## ${n}`];r&&l.push(r);let u=[`- **Name:** \`${t}\``,`- **Source:** \`${i}\``,...a?[`- **Family:** \`${a}\``]:[],...o?[`- **Role:** \`${o}\``]:[],...c.length>0?[`- **Tags:** ${c.map(e=>`\`${e}\``).join(`, `)}`]:[]];if(l.push(u.join(`
59
+ `)),i===`local`){let t=B(e);t&&l.push(`### Files`,t)}return l.join(`
60
+
61
+ `)}function H(e,t=`design system`){let n=[g({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(V(t));return`${n.join(`
62
+
63
+ `)}\n`}function U(e,t=`component registry`){let n=[g({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)=>(T(e,`name`)??``).localeCompare(T(t,`name`)??``));for(let e of r)n.push(N(e));return`${n.join(`
64
+
65
+ `)}\n`}const W=e=>(t,r,i)=>n(l(e,t),r,{name:`docgen`},(n,r)=>l(e,o(r),t),i);function G(e,t={}){let n=t.outputPath??`docs/design-system`,r=a(e,{title:t.title}),i=r.title??`Design System`,o=r.title??`design system`,s=f(e.tokens,t),c=v(s),m=t.skipRegistry?[]:k(e.components),h=m.length>0,g=t.skipIcons?[]:P(e.icons),_=t.skipFonts?[]:z(e.fonts),y=W(n),b={[u(n,`index.mdx`)]:y(`index.mdx`,S({title:i,groups:c,hasComponents:h,componentPages:m.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:g.length,fontCount:_.length}),`mdx`)};for(let[e,t]of c){let r=l(`tokens`,`${p(e)}.mdx`);b[l(n,r)]=y(r,x(e,t,o),`mdx`)}for(let e of m){let t=l(`registry`,`${e.slug}.mdx`);b[l(n,t)]=y(t,U(e,o),`mdx`)}if(g.length>0){let e=`icons.mdx`;b[l(n,e)]=y(e,R(g,o),`mdx`)}if(_.length>0){let e=`fonts.mdx`;b[l(n,e)]=y(e,H(_,o),`mdx`)}b[l(n,`tokens.json`)]=y(`tokens.json`,`${JSON.stringify(s,null,2)}\n`,`json`);let C=t.installGuide??d({outputPath:n,title:i}),w=`INSTALL.md`;return b[l(n,w)]=y(w,C,`markdown`),b}var K=t(e=>({name:`docgen:generate`,generate:async t=>G(t,e??{})}));export{d as _,k as a,h as c,x as d,R as f,_ as g,b as h,P as i,v as l,U as m,w as n,G as o,S as p,z as r,K as s,C as t,H as u};
66
+ //# sourceMappingURL=generate-BJNDnj2G.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-BJNDnj2G.mjs","names":[],"sources":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { i as __exportAll, n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-BpS-q9GM.cjs";
1
+ import { i as __exportAll, n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-Bmv3WG5V.cjs";
2
2
  import { GeneratorFunctionResult } from "@power-plant/core";
3
3
  import { Schema } from "@razorwind/core/schema";
4
4
  //#region src/install.d.ts
@@ -6,7 +6,7 @@ import { Schema } from "@razorwind/core/schema";
6
6
  * Build docgen INSTALL.md for generated MDX documentation.
7
7
  */
8
8
  declare function renderInstallMd(options: {
9
- outDir: string;
9
+ outputPath: string;
10
10
  title?: string;
11
11
  }): string;
12
12
  declare namespace generate_d_exports {
@@ -139,4 +139,4 @@ declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOption
139
139
  declare const _default: (options?: DocgenGeneratePluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
140
140
  //#endregion
141
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
142
+ //# sourceMappingURL=generate-DWmiBwhR.d.cts.map
@@ -1 +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"}
1
+ {"version":3,"file":"generate-DWmiBwhR.d.cts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":";;;;;;;iBAqBgB,gBAAgB;EAC9B;EACA;;;;;;iBCqBc,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;;;;;;;;iBAiDc,aACd,MAAM,QACN,UAAS,8BACR,wBAAwB,QAAQ"}
@@ -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("@stryke/path"),i=require("node:path");function a(e){let t=e.title??`Design System`;return`# Installing ${t} Docs
2
+
3
+ Generated by \`@razorwind/docgen\`.
4
+
5
+ ## Files
6
+
7
+ - \`${e.outputPath}/index.mdx\` — documentation index
8
+ - \`${e.outputPath}/tokens/\` — per-group token pages
9
+ - \`${e.outputPath}/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.outputPath}/**/*.mdx"]
21
+ };
22
+ \`\`\`
23
+
24
+ 2. Open \`${e.outputPath}/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.outputPath}/\` are generated output — edit source tokens/components instead of hand-editing MDX.
31
+ `}function o(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 s(e){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function c(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}var l=e.t({COMPONENT_TYPES:()=>_,REGISTRY_ITEM_TYPES:()=>v,default:()=>B,extractFonts:()=>N,extractIcons:()=>O,extractRegistryItems:()=>C,generateDocs:()=>z,groupTokens:()=>f,renderFontsMdx:()=>I,renderGroupMdx:()=>h,renderIconsMdx:()=>M,renderIndexMdx:()=>g,renderInstallMd:()=>a,renderRegistryItemsMdx:()=>L,renderTokenTable:()=>m,tokenGroup:()=>d});function u(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
32
+ `)}\n---`}function d(e){return e.path.split(`.`)[0]||`tokens`}function f(e){let t=new Map;for(let n of e){let e=d(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return t}function p(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 m(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`?p(e.cssValue):``]:[],`\`${c(e.path)}\``,e.type?`\`${c(String(e.type))}\``:`—`,`\`${c(e.cssValue)}\``,`\`${c(e.cssVar)}\``,...t?[e.theme?c(e.theme):`—`]:[],...n?[e.description?c(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...a].join(`
33
+ `)}function h(e,t,r=`design system`){let i=(0,n.titleCase)(e),a=[...new Set(t.map(e=>e.theme).filter(Boolean))],o=[u({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)}`,m(r))}else o.push(m(t));return`${o.join(`
34
+
35
+ `)}\n`}function g(e){let{title:t,groups:r,hasComponents:i,componentPages:a=[],iconCount:o=0,fontCount:c=0}=e,l=[...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/${s(e)}.mdx) — ${t} token${t===1?``:`s`}`}),f=[u({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 ${l} design token${l===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 o>0&&f.push(`## Icons`,`- [Icons](./icons.mdx) — ${o} icon${o===1?``:`s`}`),c>0&&f.push(`## Fonts`,`- [Fonts](./fonts.mdx) — ${c} font${c===1?``:`s`}`),`${f.join(`
38
+
39
+ `)}\n`}const _={ui:{slug:`ui`,title:`UI Primitives`},component:{slug:`components`,title:`Components`},page:{slug:`pages`,title:`Pages`},block:{slug:`blocks`,title:`Blocks`}},v={"registry:ui":_.ui,"registry:component":_.component,"registry:page":_.page,"registry:block":_.block};function y(e,t){let n=e[t];return typeof n==`string`?n:void 0}function b(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function x(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 S(e){let t=b(e,`categories`);if(t.length>0)return t;let n=b(e,`tags`),r=y(e,`category`);return[...r?[r]:[],...n.filter(e=>e!==r)]}function C(e){if(!(0,n.isObject)(e))return[];let t=Object.values(e).filter(n.isObject),r=[];for(let[e,n]of Object.entries(_)){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 w(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${c(e)}\` | — | — |`;if(!(0,n.isObject)(e))return;let t=y(e,`path`);if(!t)return;let r=y(e,`type`),i=y(e,`target`);return`| \`${c(t)}\` | ${r?`\`${c(r)}\``:`—`} | ${i?`\`${c(i)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
40
+ `)}function T(e){let t=e.split(`.`).pop()?.toLowerCase();return t?t===`md`?`markdown`:t:`tsx`}function E(e){return(Array.isArray(e.usage)?e.usage:[]).map(e=>{if(!(0,n.isObject)(e))return;let t=y(e,`path`),r=y(e,`content`);if(!r)return;let i=y(e,`name`)??(t?t.split(`/`).pop()?.replace(/\.[^.]+$/,``)??`example`:`example`),a=y(e,`title`)??(0,n.titleCase)(i),o=y(e,`description`),s=y(e,`language`)??(t?T(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 D(e){let t=y(e,`name`)??`unknown`,r=y(e,`title`)??(0,n.titleCase)(t),i=y(e,`description`),a=y(e,`author`),o=S(e),s=x(e,`dependencies`),l=x(e,`registryDependencies`),u=[`## ${r}`];i&&u.push(i);let d=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...a?[`- **Author:** ${c(a)}`]:[],...o.length>0?[`- **Categories:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[]];u.push(d.join(`
45
+ `)),s.length>0&&u.push(`### Dependencies`,s.map(e=>`- \`${e}\``).join(`
46
+ `)),l.length>0&&u.push(`### Registry Dependencies`,l.map(e=>`- \`${e}\``).join(`
47
+ `));let f=w(e);f&&u.push(`### Files`,f);let p=E(e);return p&&u.push(`### Usage`,p),u.join(`
48
+
49
+ `)}function O(e){return(0,n.isObject)(e)?Object.values(e).filter(n.isObject).toSorted((e,t)=>(y(e,`name`)??``).localeCompare(y(t,`name`)??``)):[]}function k(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${c(e)}\` | — | — | — |`;if(!(0,n.isObject)(e))return;let t=y(e,`path`);if(!t)return;let r=y(e,`type`),i=y(e,`theme`),a=y(e,`target`);return`| \`${c(t)}\` | ${r?`\`${c(r)}\``:`—`} | ${i?`\`${c(i)}\``:`—`} | ${a?`\`${c(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
50
+ `)}function A(e){let t=(Array.isArray(e.files)?e.files:[]).find(e=>(0,n.isObject)(e)&&y(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 j(e){let t=y(e,`name`)??`unknown`,r=y(e,`title`)??(0,n.titleCase)(t),i=y(e,`description`),a=y(e,`category`),o=b(e,`tags`),s=b(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=A(e);u&&c.push(u);let d=k(e);return d&&c.push(`### Files`,d),c.join(`
54
+
55
+ `)}function M(e,t=`design system`){let n=[u({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(j(t));return`${n.join(`
56
+
57
+ `)}\n`}function N(e){return(0,n.isObject)(e)?Object.values(e).filter(n.isObject).toSorted((e,t)=>(y(e,`name`)??``).localeCompare(y(t,`name`)??``)):[]}function P(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(!(0,n.isObject)(e))return;let t=y(e,`path`);if(!t)return;let r=y(e,`format`),i=typeof e.weight==`number`||typeof e.weight==`string`?String(e.weight):void 0,a=y(e,`style`);return`| \`${c(t)}\` | ${r?`\`${c(r)}\``:`—`} | ${i?`\`${c(i)}\``:`—`} | ${a?`\`${c(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Format | Weight | Style |`,`| --- | --- | --- | --- |`,...t].join(`
58
+ `)}function F(e){let t=y(e,`name`)??`unknown`,r=y(e,`title`)??(0,n.titleCase)(t),i=y(e,`description`),a=y(e,`source`)??`local`,o=y(e,`family`),s=y(e,`role`),c=b(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=P(e);t&&l.push(`### Files`,t)}return l.join(`
60
+
61
+ `)}function I(e,t=`design system`){let n=[u({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(F(t));return`${n.join(`
62
+
63
+ `)}\n`}function L(e,t=`component registry`){let n=[u({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)=>(y(e,`name`)??``).localeCompare(y(t,`name`)??``));for(let e of r)n.push(D(e));return`${n.join(`
64
+
65
+ `)}\n`}const R=e=>(t,i,a)=>(0,n.createDocument)((0,r.joinPaths)(e,t),i,{name:`docgen`},(i,a)=>(0,r.joinPaths)(e,(0,n.slugifyThemeName)(a),t),a);function z(e,t={}){let c=t.outputPath??`docs/design-system`,l=(0,n.resolveSchemaIdentity)(e,{title:t.title}),u=l.title??`Design System`,d=l.title??`design system`,p=o(e.tokens,t),m=f(p),_=t.skipRegistry?[]:C(e.components),v=_.length>0,y=t.skipIcons?[]:O(e.icons),b=t.skipFonts?[]:N(e.fonts),x=R(c),S={[(0,i.join)(c,`index.mdx`)]:x(`index.mdx`,g({title:u,groups:m,hasComponents:v,componentPages:_.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:y.length,fontCount:b.length}),`mdx`)};for(let[e,t]of m){let n=(0,r.joinPaths)(`tokens`,`${s(e)}.mdx`);S[(0,r.joinPaths)(c,n)]=x(n,h(e,t,d),`mdx`)}for(let e of _){let t=(0,r.joinPaths)(`registry`,`${e.slug}.mdx`);S[(0,r.joinPaths)(c,t)]=x(t,L(e,d),`mdx`)}if(y.length>0){let e=`icons.mdx`;S[(0,r.joinPaths)(c,e)]=x(e,M(y,d),`mdx`)}if(b.length>0){let e=`fonts.mdx`;S[(0,r.joinPaths)(c,e)]=x(e,I(b,d),`mdx`)}S[(0,r.joinPaths)(c,`tokens.json`)]=x(`tokens.json`,`${JSON.stringify(p,null,2)}\n`,`json`);let w=t.installGuide??a({outputPath:c,title:u}),T=`INSTALL.md`;return S[(0,r.joinPaths)(c,T)]=x(T,w,`markdown`),S}var B=(0,t.definePlugin)(e=>({name:`docgen:generate`,generate:async t=>z(t,e??{})}));Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return I}});
@@ -1,4 +1,4 @@
1
- import { n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-Cv1PDbbV.mjs";
1
+ import { n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-zjTWanwB.mjs";
2
2
  import { GeneratorFunctionResult } from "@power-plant/core";
3
3
  import { Schema } from "@razorwind/core/schema";
4
4
  //#region src/install.d.ts
@@ -6,7 +6,7 @@ import { Schema } from "@razorwind/core/schema";
6
6
  * Build docgen INSTALL.md for generated MDX documentation.
7
7
  */
8
8
  declare function renderInstallMd(options: {
9
- outDir: string;
9
+ outputPath: string;
10
10
  title?: string;
11
11
  }): string;
12
12
  declare namespace generate_d_exports {
@@ -139,4 +139,4 @@ declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOption
139
139
  declare const _default: (options?: DocgenGeneratePluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
140
140
  //#endregion
141
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
142
+ //# sourceMappingURL=generate-DslIc1Up.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-DslIc1Up.d.mts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":""}
package/dist/generate.cjs CHANGED
@@ -1 +1 @@
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
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-Db8p5crQ.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 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";
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-DWmiBwhR.cjs";
2
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 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";
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-DslIc1Up.mjs";
2
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{_ 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};
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-BJNDnj2G.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-3d6KNjOd.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.c}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./extract.cjs"),t=require("./generate-Db8p5crQ.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 { d as generate_d_exports } from "./generate-BivsaLP2.cjs";
2
+ import { d as generate_d_exports } from "./generate-DWmiBwhR.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 { d as generate_d_exports } from "./generate-BOr_Y8Tw.mjs";
2
+ import { d as generate_d_exports } from "./generate-DslIc1Up.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{c as t}from"./generate-BOBfJmmX.mjs";export{e as extract,t as generate};
1
+ import{t as e}from"./extract.mjs";import{c as t}from"./generate-BJNDnj2G.mjs";export{e as extract,t as generate};
@@ -14,7 +14,7 @@ interface DocgenGeneratePluginOptions {
14
14
  *
15
15
  * @defaultValue `"docs/design-system"`
16
16
  */
17
- outDir?: string;
17
+ outputPath?: string;
18
18
  /**
19
19
  * Title used on the generated documentation index page.
20
20
  *
@@ -77,4 +77,4 @@ interface FlatToken {
77
77
  }
78
78
  //#endregion
79
79
  export { __exportAll as i, DocgenGeneratePluginOptions as n, FlatToken as r, DocgenExtractPluginOptions as t };
80
- //# sourceMappingURL=types-BpS-q9GM.d.cts.map
80
+ //# sourceMappingURL=types-Bmv3WG5V.d.cts.map
@@ -1 +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"}
1
+ {"version":3,"file":"types-Bmv3WG5V.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"}
@@ -13,7 +13,7 @@ interface DocgenGeneratePluginOptions {
13
13
  *
14
14
  * @defaultValue `"docs/design-system"`
15
15
  */
16
- outDir?: string;
16
+ outputPath?: string;
17
17
  /**
18
18
  * Title used on the generated documentation index page.
19
19
  *
@@ -76,4 +76,4 @@ interface FlatToken {
76
76
  }
77
77
  //#endregion
78
78
  export { DocgenGeneratePluginOptions as n, FlatToken as r, DocgenExtractPluginOptions as t };
79
- //# sourceMappingURL=types-Cv1PDbbV.d.mts.map
79
+ //# sourceMappingURL=types-zjTWanwB.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-zjTWanwB.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.43",
3
+ "version": "0.0.45",
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,8 @@
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.47",
102
+ "@razorwind/core": "^0.0.49",
103
+ "@stryke/path": "^0.29.35",
103
104
  "@stryke/type-checks": "^0.6.41"
104
105
  },
105
106
  "devDependencies": {
@@ -108,5 +109,5 @@
108
109
  "typescript": "^6.0.3"
109
110
  },
110
111
  "publishConfig": { "access": "public" },
111
- "gitHead": "ca5955e41399f13b752e589a14338d6821b78f6c"
112
+ "gitHead": "8dc94fb22937f30d41e97f3c6ecff7f45eb81202"
112
113
  }
@@ -1,65 +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){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,66 +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,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
-
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 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
- `)}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,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
-
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
- `)}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:** ${f(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 d=O(e);d&&l.push(`### Files`,d);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`| \`${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
- `)}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){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(`
60
-
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-BOBfJmmX.mjs","names":[],"sources":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-BOr_Y8Tw.d.mts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-Cv1PDbbV.d.mts","names":[],"sources":["../src/types.ts"],"mappings":""}