@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.
- package/dist/extract.d.cts +1 -1
- package/dist/extract.d.mts +1 -1
- package/dist/generate-BJNDnj2G.mjs +66 -0
- package/dist/generate-BJNDnj2G.mjs.map +1 -0
- package/dist/{generate-BivsaLP2.d.cts → generate-DWmiBwhR.d.cts} +3 -3
- package/dist/{generate-BivsaLP2.d.cts.map → generate-DWmiBwhR.d.cts.map} +1 -1
- package/dist/generate-Db8p5crQ.cjs +65 -0
- package/dist/{generate-BOr_Y8Tw.d.mts → generate-DslIc1Up.d.mts} +3 -3
- package/dist/generate-DslIc1Up.d.mts.map +1 -0
- package/dist/generate.cjs +1 -1
- package/dist/generate.d.cts +1 -1
- package/dist/generate.d.mts +1 -1
- package/dist/generate.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{types-BpS-q9GM.d.cts → types-Bmv3WG5V.d.cts} +2 -2
- package/dist/{types-BpS-q9GM.d.cts.map → types-Bmv3WG5V.d.cts.map} +1 -1
- package/dist/{types-Cv1PDbbV.d.mts → types-zjTWanwB.d.mts} +2 -2
- package/dist/types-zjTWanwB.d.mts.map +1 -0
- package/package.json +4 -3
- package/dist/generate-3d6KNjOd.cjs +0 -65
- package/dist/generate-BOBfJmmX.mjs +0 -66
- package/dist/generate-BOBfJmmX.mjs.map +0 -1
- package/dist/generate-BOr_Y8Tw.d.mts.map +0 -1
- package/dist/types-Cv1PDbbV.d.mts.map +0 -1
package/dist/extract.d.cts
CHANGED
package/dist/extract.d.mts
CHANGED
|
@@ -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-
|
|
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
|
-
|
|
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-
|
|
142
|
+
//# sourceMappingURL=generate-DWmiBwhR.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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;
|
package/dist/generate.d.cts
CHANGED
|
@@ -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-
|
|
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 };
|
package/dist/generate.d.mts
CHANGED
|
@@ -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-
|
|
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-
|
|
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-
|
|
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
package/dist/index.d.mts
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./extract.mjs";import{c as t}from"./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
|
-
|
|
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-
|
|
80
|
+
//# sourceMappingURL=types-Bmv3WG5V.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
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
|
-
|
|
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-
|
|
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.
|
|
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.
|
|
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": "
|
|
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":""}
|