@razorwind/docgen 0.0.22 → 0.0.23

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-BIi5hVjx.cjs";
1
+ import { i as __exportAll, t as DocgenExtractPluginOptions } from "./types-CW5pdxOV.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-L9_4rtz5.mjs";
1
+ import { t as DocgenExtractPluginOptions } from "./types-Br4Cf9rf.mjs";
2
2
  declare namespace extract_d_exports {
3
3
  export { _default as default };
4
4
  }
@@ -1,18 +1,30 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{definePlugin as t}from"@razorwind/core/plugin";import{createDocument as n,formatTokenValue as r,isObject as i,toCssVar as a}from"@razorwind/core/utils";import{join as o}from"node:path";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,` `)}const l=/^(?:light|dark|dim|high-contrast|hc|default|base|theme)(?:[._-].+)?$/i;function u(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function d(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function f(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function p(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function m(e,t,n,o,s,c){if(!i(e))return;let l=f(e,n);if(u(e)){let n=p(e),i=t.join(`.`);c.push({path:i,type:l,value:n,cssValue:r(n,l),cssVar:a(i,s),description:d(e),theme:o});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||m(r,[...t,n],l,o,s,c)}function h(e){if(!i(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>l.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function g(e,t={}){let n=t.cssVarPrefix??`rw`,r=t.includeTypes?new Set(t.includeTypes):void 0,i=[];for(let t of h(e)){let e=t.id==="default"?void 0:t.id;m(t.tokens,[],void 0,e,n,i)}return r?i.filter(e=>!e.type||r.has(e.type)):i}var _=e({COMPONENT_TYPES:()=>E,REGISTRY_ITEM_TYPES:()=>D,default:()=>R,extractRegistryItems:()=>M,generateDocs:()=>L,groupTokens:()=>x,renderGroupMdx:()=>w,renderIndexMdx:()=>T,renderRegistryItemsMdx:()=>F,renderTokenTable:()=>C,tokenGroup:()=>b});function v(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{definePlugin as t}from"@razorwind/core/plugin";import{createDocument as n,formatTokenValue as r,isObject as i,toCssVar as a}from"@razorwind/core/utils";import{join as o}from"node:path";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,` `)}const l=/^(?:light|dark|dim|high-contrast|hc|default|base|theme)(?:[._-].+)?$/i;function u(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function d(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function f(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function p(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function m(e,t,n,o,s,c){if(!i(e))return;let l=f(e,n);if(u(e)){let n=p(e),i=t.join(`.`);c.push({path:i,type:l,value:n,cssValue:r(n,l),cssVar:a(i,s),description:d(e),theme:o});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||m(r,[...t,n],l,o,s,c)}function h(e){if(!i(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>l.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function g(e,t={}){let n=t.cssVarPrefix??`rw`,r=t.includeTypes?new Set(t.includeTypes):void 0,i=[];for(let t of h(e)){let e=t.id==="default"?void 0:t.id;m(t.tokens,[],void 0,e,n,i)}return r?i.filter(e=>!e.type||r.has(e.type)):i}var _=e({COMPONENT_TYPES:()=>E,REGISTRY_ITEM_TYPES:()=>D,default:()=>G,extractIcons:()=>L,extractRegistryItems:()=>M,generateDocs:()=>W,groupTokens:()=>x,renderGroupMdx:()=>w,renderIconsMdx:()=>V,renderIndexMdx:()=>T,renderRegistryItemsMdx:()=>H,renderTokenTable:()=>C,tokenGroup:()=>b});function v(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
2
2
  `)}\n---`}function y(e){return e.split(/[._-]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function b(e){return e.path.split(`.`)[0]||`tokens`}function x(e){let t=new Map;for(let n of e){let e=b(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return t}function S(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 C(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`?S(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(`
3
3
  `)}function w(e,t){let n=y(e),r=[...new Set(t.map(e=>e.theme).filter(Boolean))],i=[v({title:n,description:`${n} design tokens for the Razorwind design system.`}),`# ${n}`,`${t.length} token${t.length===1?``:`s`} in the \`${e}\` group.`];if(r.length>1)for(let e of r.toSorted((e,t)=>e.localeCompare(t))){let n=t.filter(t=>t.theme===e);i.push(`## ${y(e)}`,C(n))}else i.push(C(t));return`${i.join(`
4
4
 
5
- `)}\n`}function T(e){let{title:t,groups:n,hasComponents:r,componentPages:i=[]}=e,a=[...n.values()].reduce((e,t)=>e+t.length,0),o=[...n.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=n.get(e)?.length??0;return`- [${y(e)}](./tokens/${s(e)}.mdx) — ${t} token${t===1?``:`s`}`}),c=[v({title:t,description:`Generated reference documentation for the ${t} design tokens and components.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${a} design token${a===1?``:`s`} across ${n.size} group${n.size===1?``:`s`}.`,`## Design Tokens`,o.length>0?o.join(`
6
- `):`_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`}`);c.push(`## Components`,e.length>0?e.join(`
7
- `):`_No components found._`)}return`${c.join(`
5
+ `)}\n`}function T(e){let{title:t,groups:n,hasComponents:r,componentPages:i=[],iconCount:a=0}=e,o=[...n.values()].reduce((e,t)=>e+t.length,0),c=[...n.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=n.get(e)?.length??0;return`- [${y(e)}](./tokens/${s(e)}.mdx) — ${t} token${t===1?``:`s`}`}),l=[v({title:t,description:`Generated reference documentation for the ${t} design tokens, components, and icons.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${o} design token${o===1?``:`s`} across ${n.size} group${n.size===1?``:`s`}.`,`## Design Tokens`,c.length>0?c.join(`
6
+ `):`_No design tokens found._`];if(r||i.length>0){let e=i.map(e=>`- [${e.title}](./registry/${e.slug}.mdx) — ${e.count} item${e.count===1?``:`s`}`);l.push(`## Components`,e.length>0?e.join(`
7
+ `):`_No components found._`)}return a>0&&l.push(`## Icons`,`- [Icons](./icons.mdx) — ${a} icon${a===1?``:`s`}`),`${l.join(`
8
8
 
9
9
  `)}\n`}const E={ui:{slug:`ui`,title:`UI Primitives`},component:{slug:`components`,title:`Components`},page:{slug:`pages`,title:`Pages`},block:{slug:`blocks`,title:`Blocks`}},D={"registry:ui":E.ui,"registry:component":E.component,"registry:page":E.page,"registry:block":E.block};function O(e,t){let n=e[t];return typeof n==`string`?n:void 0}function k(e,t){let n=e[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function A(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 j(e){let t=k(e,`categories`);if(t.length>0)return t;let n=k(e,`tags`),r=O(e,`category`);return[...r?[r]:[],...n.filter(e=>e!==r)]}function M(e){if(!i(e))return[];let t=Object.values(e).filter(i),n=[];for(let[e,r]of Object.entries(E)){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 N(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${c(e)}\` | — | — |`;if(!i(e))return;let t=O(e,`path`);if(!t)return;let n=O(e,`type`),r=O(e,`target`);return`| \`${c(t)}\` | ${n?`\`${c(n)}\``:`—`} | ${r?`\`${c(r)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
10
- `)}function P(e){let t=O(e,`name`)??`unknown`,n=O(e,`title`)??y(t),r=O(e,`description`),i=O(e,`author`),a=j(e),o=A(e,`dependencies`),s=A(e,`registryDependencies`),l=[`## ${n}`];r&&l.push(r);let u=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...i?[`- **Author:** ${c(i)}`]:[],...a.length>0?[`- **Categories:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[]];l.push(u.join(`
10
+ `)}function P(e){let t=e.split(`.`).pop()?.toLowerCase();return t?t===`md`?`markdown`:t:`tsx`}function F(e){return(Array.isArray(e.usage)?e.usage:[]).map(e=>{if(!i(e))return;let t=O(e,`path`),n=O(e,`content`);if(!n)return;let r=O(e,`name`)??(t?t.split(`/`).pop()?.replace(/\.[^.]+$/,``)??`example`:`example`),a=O(e,`title`)??y(r),o=O(e,`description`),s=O(e,`language`)??(t?P(t):`tsx`),c=[`#### ${a}`];return o&&c.push(o),c.push(`\`\`\`${s}\n${n.trimEnd()}\n\`\`\``),c.join(`
11
+
12
+ `)}).filter(e=>e!==void 0).join(`
13
+
14
+ `)}function I(e){let t=O(e,`name`)??`unknown`,n=O(e,`title`)??y(t),r=O(e,`description`),i=O(e,`author`),a=j(e),o=A(e,`dependencies`),s=A(e,`registryDependencies`),l=[`## ${n}`];r&&l.push(r);let u=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...i?[`- **Author:** ${c(i)}`]:[],...a.length>0?[`- **Categories:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[]];l.push(u.join(`
11
15
  `)),o.length>0&&l.push(`### Dependencies`,o.map(e=>`- \`${e}\``).join(`
12
16
  `)),s.length>0&&l.push(`### Registry Dependencies`,s.map(e=>`- \`${e}\``).join(`
13
- `));let d=N(e);return d&&l.push(`### Files`,d),l.join(`
17
+ `));let d=N(e);d&&l.push(`### Files`,d);let f=F(e);return f&&l.push(`### Usage`,f),l.join(`
18
+
19
+ `)}function L(e){return i(e)?Object.values(e).filter(i).toSorted((e,t)=>(O(e,`name`)??``).localeCompare(O(t,`name`)??``)):[]}function R(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${c(e)}\` | — | — | — |`;if(!i(e))return;let t=O(e,`path`);if(!t)return;let n=O(e,`type`),r=O(e,`theme`),a=O(e,`target`);return`| \`${c(t)}\` | ${n?`\`${c(n)}\``:`—`} | ${r?`\`${c(r)}\``:`—`} | ${a?`\`${c(a)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
20
+ `)}function z(e){let t=(Array.isArray(e.files)?e.files:[]).find(e=>i(e)&&O(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(`
21
+
22
+ `)}function B(e){let t=O(e,`name`)??`unknown`,n=O(e,`title`)??y(t),r=O(e,`description`),i=O(e,`category`),a=k(e,`tags`),o=k(e,`aliases`),s=[`## ${n}`];r&&s.push(r);let c=[`- **Name:** \`${t}\``,...i?[`- **Category:** \`${i}\``]:[],...a.length>0?[`- **Tags:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[],...o.length>0?[`- **Aliases:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[]];s.push(c.join(`
23
+ `));let l=z(e);l&&s.push(l);let u=R(e);return u&&s.push(`### Files`,u),s.join(`
24
+
25
+ `)}function V(e){let t=[v({title:`Icons`,description:`Icons available in the Razorwind design system.`}),`# Icons`,`${e.length} icon${e.length===1?``:`s`} in the design system.`];for(let n of e)t.push(B(n));return`${t.join(`
14
26
 
15
- `)}function F(e){let t=[v({title:e.title,description:`${e.title} available in the Razorwind component registry.`}),`# ${e.title}`,`${e.items.length} \`${e.type}\` item${e.items.length===1?``:`s`} in the component registry.`],n=e.items.toSorted((e,t)=>(O(e,`name`)??``).localeCompare(O(t,`name`)??``));for(let e of n)t.push(P(e));return`${t.join(`
27
+ `)}\n`}function H(e){let t=[v({title:e.title,description:`${e.title} available in the Razorwind component registry.`}),`# ${e.title}`,`${e.items.length} \`${e.type}\` item${e.items.length===1?``:`s`} in the component registry.`],n=e.items.toSorted((e,t)=>(O(e,`name`)??``).localeCompare(O(t,`name`)??``));for(let e of n)t.push(I(e));return`${t.join(`
16
28
 
17
- `)}\n`}function I(e,t,r){return n(e,t,{name:`docgen`},r)}function L(e,t={}){let n=t.outDir??`docs/design-system`,r=t.title??`Design System`,i=g(e.tokens,t),a=x(i),c=t.skipRegistry?[]:M(e.components),l=c.length>0,u={[o(n,`index.mdx`)]:I(o(n,`index.mdx`),T({title:r,groups:a,hasComponents:l,componentPages:c.map(e=>({slug:e.slug,title:e.title,count:e.items.length}))}),`mdx`)};for(let[e,t]of a){let r=o(n,`tokens`,`${s(e)}.mdx`);u[r]=I(r,w(e,t),`mdx`)}for(let e of c){let t=o(n,`registry`,`${e.slug}.mdx`);u[t]=I(t,F(e),`mdx`)}return u[o(n,`tokens.json`)]=I(o(n,`tokens.json`),`${JSON.stringify(i,null,2)}\n`,`json`),u}var R=t(e=>({name:`docgen:generate`,generate:async t=>L(t,e??{})}));export{R as a,w as c,C as d,b as f,L as i,T as l,D as n,_ as o,M as r,x as s,E as t,F as u};
18
- //# sourceMappingURL=generate-CASp9YNu.mjs.map
29
+ `)}\n`}function U(e,t,r){return n(e,t,{name:`docgen`},r)}function W(e,t={}){let n=t.outDir??`docs/design-system`,r=t.title??`Design System`,i=g(e.tokens,t),a=x(i),c=t.skipRegistry?[]:M(e.components),l=c.length>0,u=t.skipIcons?[]:L(e.icons),d={[o(n,`index.mdx`)]:U(o(n,`index.mdx`),T({title:r,groups:a,hasComponents:l,componentPages:c.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:u.length}),`mdx`)};for(let[e,t]of a){let r=o(n,`tokens`,`${s(e)}.mdx`);d[r]=U(r,w(e,t),`mdx`)}for(let e of c){let t=o(n,`registry`,`${e.slug}.mdx`);d[t]=U(t,H(e),`mdx`)}if(u.length>0){let e=o(n,`icons.mdx`);d[e]=U(e,V(u),`mdx`)}return d[o(n,`tokens.json`)]=U(o(n,`tokens.json`),`${JSON.stringify(i,null,2)}\n`,`json`),d}var G=t(e=>({name:`docgen:generate`,generate:async t=>W(t,e??{})}));export{W as a,x as c,T as d,H as f,M as i,w as l,b as m,D as n,G as o,C as p,L as r,_ as s,E as t,V as u};
30
+ //# sourceMappingURL=generate-DHTLF9jO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-DHTLF9jO.mjs","names":[],"sources":[],"mappings":""}
@@ -0,0 +1,29 @@
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){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function a(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}const o=/^(?:light|dark|dim|high-contrast|hc|default|base|theme)(?:[._-].+)?$/i;function s(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function c(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function l(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function u(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function d(e,t,r,i,a,o){if(!(0,n.isObject)(e))return;let f=l(e,r);if(s(e)){let r=u(e),s=t.join(`.`);o.push({path:s,type:f,value:r,cssValue:(0,n.formatTokenValue)(r,f),cssVar:(0,n.toCssVar)(s,a),description:c(e),theme:i});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||d(r,[...t,n],f,i,a,o)}function f(e){if(!(0,n.isObject)(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>o.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function p(e,t={}){let n=t.cssVarPrefix??`rw`,r=t.includeTypes?new Set(t.includeTypes):void 0,i=[];for(let t of f(e)){let e=t.id==="default"?void 0:t.id;d(t.tokens,[],void 0,e,n,i)}return r?i.filter(e=>!e.type||r.has(e.type)):i}var m=e.t({COMPONENT_TYPES:()=>C,REGISTRY_ITEM_TYPES:()=>w,default:()=>H,extractIcons:()=>P,extractRegistryItems:()=>k,generateDocs:()=>V,groupTokens:()=>v,renderGroupMdx:()=>x,renderIconsMdx:()=>R,renderIndexMdx:()=>S,renderRegistryItemsMdx:()=>z,renderTokenTable:()=>b,tokenGroup:()=>_});function h(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
2
+ `)}\n---`}function g(e){return e.split(/[._-]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}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`]:[]],o=e.toSorted((e,t)=>(e.theme??``).localeCompare(t.theme??``)||e.path.localeCompare(t.path)).map(e=>`| ${[...r?[e.type===`color`?y(e.cssValue):``]:[],`\`${a(e.path)}\``,e.type?`\`${a(String(e.type))}\``:`—`,`\`${a(e.cssValue)}\``,`\`${a(e.cssVar)}\``,...t?[e.theme?a(e.theme):`—`]:[],...n?[e.description?a(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...o].join(`
3
+ `)}function x(e,t){let n=g(e),r=[...new Set(t.map(e=>e.theme).filter(Boolean))],i=[h({title:n,description:`${n} design tokens for the Razorwind design system.`}),`# ${n}`,`${t.length} token${t.length===1?``:`s`} in the \`${e}\` group.`];if(r.length>1)for(let e of r.toSorted((e,t)=>e.localeCompare(t))){let n=t.filter(t=>t.theme===e);i.push(`## ${g(e)}`,b(n))}else i.push(b(t));return`${i.join(`
4
+
5
+ `)}\n`}function S(e){let{title:t,groups:n,hasComponents:r,componentPages:a=[],iconCount:o=0}=e,s=[...n.values()].reduce((e,t)=>e+t.length,0),c=[...n.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=n.get(e)?.length??0;return`- [${g(e)}](./tokens/${i(e)}.mdx) — ${t} token${t===1?``:`s`}`}),l=[h({title:t,description:`Generated reference documentation for the ${t} design tokens, components, and icons.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${s} design token${s===1?``:`s`} across ${n.size} group${n.size===1?``:`s`}.`,`## Design Tokens`,c.length>0?c.join(`
6
+ `):`_No design tokens found._`];if(r||a.length>0){let e=a.map(e=>`- [${e.title}](./registry/${e.slug}.mdx) — ${e.count} item${e.count===1?``:`s`}`);l.push(`## Components`,e.length>0?e.join(`
7
+ `):`_No components found._`)}return o>0&&l.push(`## Icons`,`- [Icons](./icons.mdx) — ${o} icon${o===1?``:`s`}`),`${l.join(`
8
+
9
+ `)}\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 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 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(!(0,n.isObject)(e))return[];let t=Object.values(e).filter(n.isObject),r=[];for(let[e,n]of Object.entries(C)){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 A(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${a(e)}\` | — | — |`;if(!(0,n.isObject)(e))return;let t=T(e,`path`);if(!t)return;let r=T(e,`type`),i=T(e,`target`);return`| \`${a(t)}\` | ${r?`\`${a(r)}\``:`—`} | ${i?`\`${a(i)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
10
+ `)}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(!(0,n.isObject)(e))return;let t=T(e,`path`),r=T(e,`content`);if(!r)return;let i=T(e,`name`)??(t?t.split(`/`).pop()?.replace(/\.[^.]+$/,``)??`example`:`example`),a=T(e,`title`)??g(i),o=T(e,`description`),s=T(e,`language`)??(t?j(t):`tsx`),c=[`#### ${a}`];return o&&c.push(o),c.push(`\`\`\`${s}\n${r.trimEnd()}\n\`\`\``),c.join(`
11
+
12
+ `)}).filter(e=>e!==void 0).join(`
13
+
14
+ `)}function N(e){let t=T(e,`name`)??`unknown`,n=T(e,`title`)??g(t),r=T(e,`description`),i=T(e,`author`),o=O(e),s=D(e,`dependencies`),c=D(e,`registryDependencies`),l=[`## ${n}`];r&&l.push(r);let u=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...i?[`- **Author:** ${a(i)}`]:[],...o.length>0?[`- **Categories:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[]];l.push(u.join(`
15
+ `)),s.length>0&&l.push(`### Dependencies`,s.map(e=>`- \`${e}\``).join(`
16
+ `)),c.length>0&&l.push(`### Registry Dependencies`,c.map(e=>`- \`${e}\``).join(`
17
+ `));let d=A(e);d&&l.push(`### Files`,d);let f=M(e);return f&&l.push(`### Usage`,f),l.join(`
18
+
19
+ `)}function P(e){return(0,n.isObject)(e)?Object.values(e).filter(n.isObject).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`| \`${a(e)}\` | — | — | — |`;if(!(0,n.isObject)(e))return;let t=T(e,`path`);if(!t)return;let r=T(e,`type`),i=T(e,`theme`),o=T(e,`target`);return`| \`${a(t)}\` | ${r?`\`${a(r)}\``:`—`} | ${i?`\`${a(i)}\``:`—`} | ${o?`\`${a(o)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Theme | Target |`,`| --- | --- | --- | --- |`,...t].join(`
20
+ `)}function I(e){let t=(Array.isArray(e.files)?e.files:[]).find(e=>(0,n.isObject)(e)&&T(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(`
21
+
22
+ `)}function L(e){let t=T(e,`name`)??`unknown`,n=T(e,`title`)??g(t),r=T(e,`description`),i=T(e,`category`),a=E(e,`tags`),o=E(e,`aliases`),s=[`## ${n}`];r&&s.push(r);let c=[`- **Name:** \`${t}\``,...i?[`- **Category:** \`${i}\``]:[],...a.length>0?[`- **Tags:** ${a.map(e=>`\`${e}\``).join(`, `)}`]:[],...o.length>0?[`- **Aliases:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[]];s.push(c.join(`
23
+ `));let l=I(e);l&&s.push(l);let u=F(e);return u&&s.push(`### Files`,u),s.join(`
24
+
25
+ `)}function R(e){let t=[h({title:`Icons`,description:`Icons available in the Razorwind design system.`}),`# Icons`,`${e.length} icon${e.length===1?``:`s`} in the design system.`];for(let n of e)t.push(L(n));return`${t.join(`
26
+
27
+ `)}\n`}function z(e){let t=[h({title:e.title,description:`${e.title} available in the Razorwind component registry.`}),`# ${e.title}`,`${e.items.length} \`${e.type}\` item${e.items.length===1?``:`s`} in the component registry.`],n=e.items.toSorted((e,t)=>(T(e,`name`)??``).localeCompare(T(t,`name`)??``));for(let e of n)t.push(N(e));return`${t.join(`
28
+
29
+ `)}\n`}function B(e,t,r){return(0,n.createDocument)(e,t,{name:`docgen`},r)}function V(e,t={}){let n=t.outDir??`docs/design-system`,a=t.title??`Design System`,o=p(e.tokens,t),s=v(o),c=t.skipRegistry?[]:k(e.components),l=c.length>0,u=t.skipIcons?[]:P(e.icons),d={[(0,r.join)(n,`index.mdx`)]:B((0,r.join)(n,`index.mdx`),S({title:a,groups:s,hasComponents:l,componentPages:c.map(e=>({slug:e.slug,title:e.title,count:e.items.length})),iconCount:u.length}),`mdx`)};for(let[e,t]of s){let a=(0,r.join)(n,`tokens`,`${i(e)}.mdx`);d[a]=B(a,x(e,t),`mdx`)}for(let e of c){let t=(0,r.join)(n,`registry`,`${e.slug}.mdx`);d[t]=B(t,z(e),`mdx`)}if(u.length>0){let e=(0,r.join)(n,`icons.mdx`);d[e]=B(e,R(u),`mdx`)}return d[(0,r.join)(n,`tokens.json`)]=B((0,r.join)(n,`tokens.json`),`${JSON.stringify(o,null,2)}\n`,`json`),d}var H=(0,t.definePlugin)(e=>({name:`docgen:generate`,generate:async t=>V(t,e??{})}));Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return R}});
package/dist/generate.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-CZoSXXKv.cjs");exports.COMPONENT_TYPES=e.t,exports.REGISTRY_ITEM_TYPES=e.n,exports.default=e.a,exports.extractRegistryItems=e.r,exports.generateDocs=e.i,exports.groupTokens=e.s,exports.renderGroupMdx=e.c,exports.renderIndexMdx=e.l,exports.renderRegistryItemsMdx=e.u,exports.renderTokenTable=e.d,exports.tokenGroup=e.f;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-ZUMEoeQ7.cjs");exports.COMPONENT_TYPES=e.t,exports.REGISTRY_ITEM_TYPES=e.n,exports.default=e.o,exports.extractIcons=e.r,exports.extractRegistryItems=e.i,exports.generateDocs=e.a,exports.groupTokens=e.c,exports.renderGroupMdx=e.l,exports.renderIconsMdx=e.u,exports.renderIndexMdx=e.d,exports.renderRegistryItemsMdx=e.f,exports.renderTokenTable=e.p,exports.tokenGroup=e.m;
@@ -1,8 +1,8 @@
1
- import { i as __exportAll, n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-BIi5hVjx.cjs";
1
+ import { i as __exportAll, n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-CW5pdxOV.cjs";
2
2
  import { GeneratorFunctionResult } from "@power-plant/core";
3
3
  import { Schema } from "@razorwind/core/schema";
4
4
  declare namespace generate_d_exports {
5
- export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIndexMdx, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
5
+ export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
6
6
  }
7
7
  /** Top-level path segment used to group tokens into pages. */
8
8
  declare function tokenGroup(token: FlatToken): string;
@@ -30,6 +30,7 @@ declare function renderIndexMdx(input: {
30
30
  title: string;
31
31
  count: number;
32
32
  }[];
33
+ iconCount?: number;
33
34
  }): string;
34
35
  /** Component types that receive a dedicated documentation page. */
35
36
  declare const COMPONENT_TYPES: {
@@ -85,6 +86,14 @@ interface RegistryItemPage {
85
86
  * per type.
86
87
  */
87
88
  declare function extractRegistryItems(components: unknown): RegistryItemPage[];
89
+ /**
90
+ * Extract documented icons from `schema.icons`.
91
+ */
92
+ declare function extractIcons(icons: unknown): Record<string, unknown>[];
93
+ /**
94
+ * Render an MDX documentation page for all icons.
95
+ */
96
+ declare function renderIconsMdx(icons: Record<string, unknown>[]): string;
88
97
  /**
89
98
  * Render an MDX documentation page for all components of a single type.
90
99
  */
@@ -93,7 +102,8 @@ declare function renderRegistryItemsMdx(page: RegistryItemPage): string;
93
102
  * Generate MDX documentation pages from a Razorwind schema.
94
103
  *
95
104
  * Produces an index page, one page per top-level token group, component
96
- * pages grouped by type, and a flattened `tokens.json` manifest.
105
+ * pages grouped by type, icon documentation, and a flattened `tokens.json`
106
+ * manifest.
97
107
  */
98
108
  declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOptions): GeneratorFunctionResult<Schema, DocgenGeneratePluginOptions>;
99
109
  /**
@@ -111,5 +121,5 @@ declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOption
111
121
  */
112
122
  declare const _default: (options?: DocgenGeneratePluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
113
123
  //#endregion
114
- export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIndexMdx, renderRegistryItemsMdx, renderTokenTable, generate_d_exports as t, tokenGroup };
124
+ export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderRegistryItemsMdx, renderTokenTable, generate_d_exports as t, tokenGroup };
115
125
  //# sourceMappingURL=generate.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.cts","names":[],"sources":["../src/generate.ts"],"mappings":";;;;;;;iBA4CgB,WAAW,OAAO;;;;iBAOlB,YAAY,QAAQ,cAAc,YAAY;;;;iBAoB9C,iBAAiB,QAAQ;;;;iBAiDzB,eAAe,eAAe,QAAQ;;;;iBA8BtC,eAAe;EAC7B;EACA,QAAQ,YAAY;EACpB;EACA;IAAmB;IAAc;IAAe;;;;cA8CrC;;;;;;;;;;;;;;;;;;;cAQA;;;;;;;;;;;;;;;;;;KAOD,gCAAgC;KAChC,gCAAgC;;UAG3B;EACf,MAAM;EACN;EACA;EACA,OAAO;;;;;;;;iBA4DO,qBAAqB,sBAAsB;;;;iBAmH3C,uBAAuB,MAAM;;;;;;;iBAwC7B,aACd,MAAM,QACN,UAAS,8BACR,wBAAwB,QAAQ"}
1
+ {"version":3,"file":"generate.d.cts","names":[],"sources":["../src/generate.ts"],"mappings":";;;;;;;iBA4CgB,WAAW,OAAO;;;;iBAOlB,YAAY,QAAQ,cAAc,YAAY;;;;iBAoB9C,iBAAiB,QAAQ;;;;iBAiDzB,eAAe,eAAe,QAAQ;;;;iBA8BtC,eAAe;EAC7B;EACA,QAAQ,YAAY;EACpB;EACA;IAAmB;IAAc;IAAe;;EAChD;;;cA2DW;;;;;;;;;;;;;;;;;;;cAQA;;;;;;;;;;;;;;;;;;KAOD,gCAAgC;KAChC,gCAAgC;;UAG3B;EACf,MAAM;EACN;EACA;EACA,OAAO;;;;;;;;iBA4DO,qBAAqB,sBAAsB;;;;iBA4K3C,aAAa,iBAAiB;;;;iBA8G9B,eAAe,OAAO;;;;iBAoBtB,uBAAuB,MAAM;;;;;;;;iBAyC7B,aACd,MAAM,QACN,UAAS,8BACR,wBAAwB,QAAQ"}
@@ -1,8 +1,8 @@
1
- import { n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-L9_4rtz5.mjs";
1
+ import { n as DocgenGeneratePluginOptions, r as FlatToken } from "./types-Br4Cf9rf.mjs";
2
2
  import { GeneratorFunctionResult } from "@power-plant/core";
3
3
  import { Schema } from "@razorwind/core/schema";
4
4
  declare namespace generate_d_exports {
5
- export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIndexMdx, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
5
+ export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderRegistryItemsMdx, renderTokenTable, tokenGroup };
6
6
  }
7
7
  /** Top-level path segment used to group tokens into pages. */
8
8
  declare function tokenGroup(token: FlatToken): string;
@@ -30,6 +30,7 @@ declare function renderIndexMdx(input: {
30
30
  title: string;
31
31
  count: number;
32
32
  }[];
33
+ iconCount?: number;
33
34
  }): string;
34
35
  /** Component types that receive a dedicated documentation page. */
35
36
  declare const COMPONENT_TYPES: {
@@ -85,6 +86,14 @@ interface RegistryItemPage {
85
86
  * per type.
86
87
  */
87
88
  declare function extractRegistryItems(components: unknown): RegistryItemPage[];
89
+ /**
90
+ * Extract documented icons from `schema.icons`.
91
+ */
92
+ declare function extractIcons(icons: unknown): Record<string, unknown>[];
93
+ /**
94
+ * Render an MDX documentation page for all icons.
95
+ */
96
+ declare function renderIconsMdx(icons: Record<string, unknown>[]): string;
88
97
  /**
89
98
  * Render an MDX documentation page for all components of a single type.
90
99
  */
@@ -93,7 +102,8 @@ declare function renderRegistryItemsMdx(page: RegistryItemPage): string;
93
102
  * Generate MDX documentation pages from a Razorwind schema.
94
103
  *
95
104
  * Produces an index page, one page per top-level token group, component
96
- * pages grouped by type, and a flattened `tokens.json` manifest.
105
+ * pages grouped by type, icon documentation, and a flattened `tokens.json`
106
+ * manifest.
97
107
  */
98
108
  declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOptions): GeneratorFunctionResult<Schema, DocgenGeneratePluginOptions>;
99
109
  /**
@@ -111,5 +121,5 @@ declare function generateDocs(spec: Schema, options?: DocgenGeneratePluginOption
111
121
  */
112
122
  declare const _default: (options?: DocgenGeneratePluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
113
123
  //#endregion
114
- export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIndexMdx, renderRegistryItemsMdx, renderTokenTable, generate_d_exports as t, tokenGroup };
124
+ export { COMPONENT_TYPES, ComponentDocType, REGISTRY_ITEM_TYPES, RegistryItemPage, RegistryItemType, _default as default, extractIcons, extractRegistryItems, generateDocs, groupTokens, renderGroupMdx, renderIconsMdx, renderIndexMdx, renderRegistryItemsMdx, renderTokenTable, generate_d_exports as t, tokenGroup };
115
125
  //# sourceMappingURL=generate.d.mts.map
package/dist/generate.mjs CHANGED
@@ -1 +1 @@
1
- import{a as e,c as t,d as n,f as r,i,l as a,n as o,r as s,s as c,t as l,u}from"./generate-CASp9YNu.mjs";export{l as COMPONENT_TYPES,o as REGISTRY_ITEM_TYPES,e as default,s as extractRegistryItems,i as generateDocs,c as groupTokens,t as renderGroupMdx,a as renderIndexMdx,u as renderRegistryItemsMdx,n as renderTokenTable,r as tokenGroup};
1
+ import{a as e,c as t,d as n,f as r,i,l as a,m as o,n as s,o as c,p as l,r as u,t as d,u as f}from"./generate-DHTLF9jO.mjs";export{d as COMPONENT_TYPES,s as REGISTRY_ITEM_TYPES,c as default,u as extractIcons,i as extractRegistryItems,e as generateDocs,t as groupTokens,a as renderGroupMdx,f as renderIconsMdx,n as renderIndexMdx,r as renderRegistryItemsMdx,l as renderTokenTable,o 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-CZoSXXKv.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.o}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./extract.cjs"),t=require("./generate-ZUMEoeQ7.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.s}});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./extract.mjs";import{o as t}from"./generate-CASp9YNu.mjs";export{e as extract,t as generate};
1
+ import{t as e}from"./extract.mjs";import{s as t}from"./generate-DHTLF9jO.mjs";export{e as extract,t as generate};
@@ -37,6 +37,12 @@ interface DocgenGeneratePluginOptions {
37
37
  * @defaultValue `false`
38
38
  */
39
39
  skipRegistry?: boolean;
40
+ /**
41
+ * Skip generating icon documentation pages.
42
+ *
43
+ * @defaultValue `false`
44
+ */
45
+ skipIcons?: boolean;
40
46
  }
41
47
  /**
42
48
  * A flattened design token ready for documentation rendering.
@@ -59,4 +65,4 @@ interface FlatToken {
59
65
  }
60
66
  //#endregion
61
67
  export { DocgenGeneratePluginOptions as n, FlatToken as r, DocgenExtractPluginOptions as t };
62
- //# sourceMappingURL=types-L9_4rtz5.d.mts.map
68
+ //# sourceMappingURL=types-Br4Cf9rf.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-Br4Cf9rf.d.mts","names":[],"sources":["../src/types.ts"],"mappings":""}
@@ -38,6 +38,12 @@ interface DocgenGeneratePluginOptions {
38
38
  * @defaultValue `false`
39
39
  */
40
40
  skipRegistry?: boolean;
41
+ /**
42
+ * Skip generating icon documentation pages.
43
+ *
44
+ * @defaultValue `false`
45
+ */
46
+ skipIcons?: boolean;
41
47
  }
42
48
  /**
43
49
  * A flattened design token ready for documentation rendering.
@@ -60,4 +66,4 @@ interface FlatToken {
60
66
  }
61
67
  //#endregion
62
68
  export { __exportAll as i, DocgenGeneratePluginOptions as n, FlatToken as r, DocgenExtractPluginOptions as t };
63
- //# sourceMappingURL=types-BIi5hVjx.d.cts.map
69
+ //# sourceMappingURL=types-CW5pdxOV.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-CW5pdxOV.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;UAuBiB;;;;UAKA;;;;;;EAMf;;;;;;EAOA;;;;;;EAOA;;;;;EAMA,eAAe;;;;;;EAOf;;;;;;EAOA;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;EAEA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/docgen",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
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": {
@@ -97,16 +97,16 @@
97
97
  "types": "./dist/index.d.cts",
98
98
  "typings": "dist/index.d.mts",
99
99
  "dependencies": {
100
- "@power-plant/core": "^0.0.70",
100
+ "@power-plant/core": "^0.0.75",
101
101
  "@power-plant/dtcg-schema": "^0.0.1",
102
- "@razorwind/core": "^0.0.26",
102
+ "@razorwind/core": "0.0.27",
103
103
  "@stryke/type-checks": "^0.6.35"
104
104
  },
105
105
  "devDependencies": {
106
- "@powerlines/plugin-tsdown": "^0.1.587",
106
+ "@powerlines/plugin-tsdown": "^0.1.589",
107
107
  "@types/node": "^25.9.5",
108
108
  "typescript": "^6.0.3"
109
109
  },
110
110
  "publishConfig": { "access": "public" },
111
- "gitHead": "506b6e31e696fe7dd6f4c78fec9c298ac7a4b603"
111
+ "gitHead": "556f2499e0ef94c0463e86c2d8f9b42bbdb0bc08"
112
112
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-CASp9YNu.mjs","names":[],"sources":[],"mappings":""}
@@ -1,17 +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){return e.trim().replaceAll(/[^\w-]+/g,`-`).replaceAll(/-{2,}/g,`-`).replaceAll(/^-|-$/g,``).toLowerCase()}function a(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`|`,`\\|`).replaceAll(`<`,`\\<`).replaceAll(`{`,`\\{`).replaceAll(/\r?\n/g,` `)}const o=/^(?:light|dark|dim|high-contrast|hc|default|base|theme)(?:[._-].+)?$/i;function s(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function c(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function l(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function u(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function d(e,t,r,i,a,o){if(!(0,n.isObject)(e))return;let f=l(e,r);if(s(e)){let r=u(e),s=t.join(`.`);o.push({path:s,type:f,value:r,cssValue:(0,n.formatTokenValue)(r,f),cssVar:(0,n.toCssVar)(s,a),description:c(e),theme:i});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||d(r,[...t,n],f,i,a,o)}function f(e){if(!(0,n.isObject)(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>o.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function p(e,t={}){let n=t.cssVarPrefix??`rw`,r=t.includeTypes?new Set(t.includeTypes):void 0,i=[];for(let t of f(e)){let e=t.id==="default"?void 0:t.id;d(t.tokens,[],void 0,e,n,i)}return r?i.filter(e=>!e.type||r.has(e.type)):i}var m=e.t({COMPONENT_TYPES:()=>C,REGISTRY_ITEM_TYPES:()=>w,default:()=>F,extractRegistryItems:()=>k,generateDocs:()=>P,groupTokens:()=>v,renderGroupMdx:()=>x,renderIndexMdx:()=>S,renderRegistryItemsMdx:()=>M,renderTokenTable:()=>b,tokenGroup:()=>_});function h(e){return`---\n${Object.entries(e).map(([e,t])=>`${e}: ${JSON.stringify(t)}`).join(`
2
- `)}\n---`}function g(e){return e.split(/[._-]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}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`]:[]],o=e.toSorted((e,t)=>(e.theme??``).localeCompare(t.theme??``)||e.path.localeCompare(t.path)).map(e=>`| ${[...r?[e.type===`color`?y(e.cssValue):``]:[],`\`${a(e.path)}\``,e.type?`\`${a(String(e.type))}\``:`—`,`\`${a(e.cssValue)}\``,`\`${a(e.cssVar)}\``,...t?[e.theme?a(e.theme):`—`]:[],...n?[e.description?a(e.description):`—`]:[]].join(` | `)} |`);return[`| ${i.join(` | `)} |`,`| ${i.map(()=>`---`).join(` | `)} |`,...o].join(`
3
- `)}function x(e,t){let n=g(e),r=[...new Set(t.map(e=>e.theme).filter(Boolean))],i=[h({title:n,description:`${n} design tokens for the Razorwind design system.`}),`# ${n}`,`${t.length} token${t.length===1?``:`s`} in the \`${e}\` group.`];if(r.length>1)for(let e of r.toSorted((e,t)=>e.localeCompare(t))){let n=t.filter(t=>t.theme===e);i.push(`## ${g(e)}`,b(n))}else i.push(b(t));return`${i.join(`
4
-
5
- `)}\n`}function S(e){let{title:t,groups:n,hasComponents:r,componentPages:a=[]}=e,o=[...n.values()].reduce((e,t)=>e+t.length,0),s=[...n.keys()].toSorted((e,t)=>e.localeCompare(t)).map(e=>{let t=n.get(e)?.length??0;return`- [${g(e)}](./tokens/${i(e)}.mdx) — ${t} token${t===1?``:`s`}`}),c=[h({title:t,description:`Generated reference documentation for the ${t} design tokens and components.`}),`# ${t}`,`This documentation is generated from the design system specification. It covers ${o} design token${o===1?``:`s`} across ${n.size} group${n.size===1?``:`s`}.`,`## Design Tokens`,s.length>0?s.join(`
6
- `):`_No design tokens found._`];if(r||a.length>0){let e=a.map(e=>`- [${e.title}](./registry/${e.slug}.mdx) — ${e.count} item${e.count===1?``:`s`}`);c.push(`## Components`,e.length>0?e.join(`
7
- `):`_No components found._`)}return`${c.join(`
8
-
9
- `)}\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 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 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(!(0,n.isObject)(e))return[];let t=Object.values(e).filter(n.isObject),r=[];for(let[e,n]of Object.entries(C)){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 A(e){let t=(Array.isArray(e.files)?e.files:[]).map(e=>{if(typeof e==`string`)return`| \`${a(e)}\` | — | — |`;if(!(0,n.isObject)(e))return;let t=T(e,`path`);if(!t)return;let r=T(e,`type`),i=T(e,`target`);return`| \`${a(t)}\` | ${r?`\`${a(r)}\``:`—`} | ${i?`\`${a(i)}\``:`—`} |`}).filter(e=>e!==void 0);return t.length===0?``:[`| Path | Type | Target |`,`| --- | --- | --- |`,...t].join(`
10
- `)}function j(e){let t=T(e,`name`)??`unknown`,n=T(e,`title`)??g(t),r=T(e,`description`),i=T(e,`author`),o=O(e),s=D(e,`dependencies`),c=D(e,`registryDependencies`),l=[`## ${n}`];r&&l.push(r);let u=[`- **Name:** \`${t}\``,`- **Type:** \`${String(e.type)}\``,...i?[`- **Author:** ${a(i)}`]:[],...o.length>0?[`- **Categories:** ${o.map(e=>`\`${e}\``).join(`, `)}`]:[]];l.push(u.join(`
11
- `)),s.length>0&&l.push(`### Dependencies`,s.map(e=>`- \`${e}\``).join(`
12
- `)),c.length>0&&l.push(`### Registry Dependencies`,c.map(e=>`- \`${e}\``).join(`
13
- `));let d=A(e);return d&&l.push(`### Files`,d),l.join(`
14
-
15
- `)}function M(e){let t=[h({title:e.title,description:`${e.title} available in the Razorwind component registry.`}),`# ${e.title}`,`${e.items.length} \`${e.type}\` item${e.items.length===1?``:`s`} in the component registry.`],n=e.items.toSorted((e,t)=>(T(e,`name`)??``).localeCompare(T(t,`name`)??``));for(let e of n)t.push(j(e));return`${t.join(`
16
-
17
- `)}\n`}function N(e,t,r){return(0,n.createDocument)(e,t,{name:`docgen`},r)}function P(e,t={}){let n=t.outDir??`docs/design-system`,a=t.title??`Design System`,o=p(e.tokens,t),s=v(o),c=t.skipRegistry?[]:k(e.components),l=c.length>0,u={[(0,r.join)(n,`index.mdx`)]:N((0,r.join)(n,`index.mdx`),S({title:a,groups:s,hasComponents:l,componentPages:c.map(e=>({slug:e.slug,title:e.title,count:e.items.length}))}),`mdx`)};for(let[e,t]of s){let a=(0,r.join)(n,`tokens`,`${i(e)}.mdx`);u[a]=N(a,x(e,t),`mdx`)}for(let e of c){let t=(0,r.join)(n,`registry`,`${e.slug}.mdx`);u[t]=N(t,M(e),`mdx`)}return u[(0,r.join)(n,`tokens.json`)]=N((0,r.join)(n,`tokens.json`),`${JSON.stringify(o,null,2)}\n`,`json`),u}var F=(0,t.definePlugin)(e=>({name:`docgen:generate`,generate:async t=>P(t,e??{})}));Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return M}});
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-BIi5hVjx.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;UAuBiB;;;;UAKA;;;;;;EAMf;;;;;;EAOA;;;;;;EAOA;;;;;EAMA,eAAe;;;;;;EAOf;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;EAEA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-L9_4rtz5.d.mts","names":[],"sources":["../src/types.ts"],"mappings":""}