@razorwind/design-md 0.0.47 → 0.0.48

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.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("@power-plant/core"),n=require("@razorwind/core/plugin"),r=require("@razorwind/core"),i=require("@stryke/fs/exists"),a=require("@stryke/fs/read-file"),o=require("@stryke/path/join"),s=require("@stryke/type-checks/is-empty-object"),c=require("yaml"),l=require("@stryke/type-checks/is-object");var u=e.t({DESIGN_MD_FILE_PATTERN:()=>d,DESIGN_MD_PATH_CANDIDATES:()=>f,default:()=>A,designMdToTokens:()=>T,extractDesignMdFrontMatter:()=>w,isDesignMdFile:()=>D,loadDesignMdTokens:()=>k,parseDesignMdTokens:()=>E,resolveDesignMdPath:()=>O});const d=/(?:^|[/\\])design\.md$/i,f=[`DESIGN.md`,`design.md`,`docs/DESIGN.md`],p=/^\uFEFF?---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/,m=/^\{[^{}]+\}$/,h=new Set([`version`,`name`,`description`]),g=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`,`fontFeature`,`fontVariation`],_={backgroundColor:`color`,textColor:`color`,typography:`typography`,rounded:`dimension`,padding:`dimension`,size:`dimension`,height:`dimension`,width:`dimension`};function v(e){return typeof e==`string`&&m.test(e.trim())}function y(e){return typeof e==`number`?`${e}px`:e}function b(e){let t={};for(let n of g){let r=e[n];r!=null&&(t[n]=r)}for(let[n,r]of Object.entries(e))!(n in t)&&r!=null&&(typeof r==`string`||typeof r==`number`)&&(t[n]=r);return t}function x(e,t,n=!1){let r={};for(let[i,a]of Object.entries(e))a!=null&&(r[i]={$type:t,$value:v(a)?a.trim():n?y(a):a});return r}function S(e){let t={};for(let[n,r]of Object.entries(e))v(r)?t[n]={$type:`typography`,$value:r.trim()}:(0,l.isObject)(r)&&(t[n]={$type:`typography`,$value:b(r)});return t}function C(e){let t={};for(let[n,r]of Object.entries(e)){if(!(0,l.isObject)(r))continue;let e={};for(let[t,n]of Object.entries(r)){if(n==null)continue;let r=_[t];e[t]={...r?{$type:r}:{},$value:v(n)?n.trim():r===`typography`&&(0,l.isObject)(n)?b(n):y(n)}}Object.keys(e).length>0&&(t[n]=e)}return t}function w(e){let t=p.exec(e);if(!t?.[1])return;let n;try{n=(0,c.parse)(t[1])}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse DESIGN.md front matter as YAML: ${t}`)}return(0,l.isObject)(n)?n:void 0}function T(e){let t={};for(let[n,r]of Object.entries(e))if(!(h.has(n)||!(0,l.isObject)(r)))switch(n){case`colors`:t[n]=x(r,`color`);break;case`typography`:t[n]=S(r);break;case`rounded`:case`spacing`:t[n]=x(r,`dimension`,!0);break;case`components`:t[n]=C(r);break;default:t[n]=r}return(0,r.normalizeTokenTree)(t)}function E(e){let t=w(e);return t?T(t):{}}function D(e){return d.test(e)}function O(e){for(let t of f){let n=(0,o.joinPaths)(e,t);if((0,i.existsSync)(n))return n}}async function k(e){let t=O(e);if(t)return E(await(0,a.readFile)(t))}var A=(0,n.definePlugin)(e=>({name:`design-md:extract`,parsers:[{name:`design-md`,pattern:d,parser:e=>E(e)}],extract:async n=>{if(n.tokens&&!(0,s.isEmptyObject)(n.tokens))return n;let r=e?.path;if(!r){let{cwd:e}=(0,t.useExecution)();if(r=O(e),!r)return n}let i=E(await(0,a.readFile)(r));return!i||(0,s.isEmptyObject)(i)?n:{...n,tokens:i}}}));exports.DESIGN_MD_FILE_PATTERN=d,exports.DESIGN_MD_PATH_CANDIDATES=f,exports.default=A,exports.designMdToTokens=T,exports.extractDesignMdFrontMatter=w,exports.isDesignMdFile=D,exports.loadDesignMdTokens=k,exports.parseDesignMdTokens=E,exports.resolveDesignMdPath=O,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return u}});
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("@power-plant/core"),n=require("@razorwind/core"),r=require("@razorwind/core/plugin"),i=require("@stryke/fs/exists"),a=require("@stryke/fs/read-file"),o=require("@stryke/path/join"),s=require("@stryke/type-checks/is-empty-object"),c=require("@stryke/type-checks/is-object"),l=require("yaml");var u=e.t({DESIGN_MD_FILE_PATTERN:()=>d,DESIGN_MD_PATH_CANDIDATES:()=>f,default:()=>A,designMdToTokens:()=>T,extractDesignMdFrontMatter:()=>w,isDesignMdFile:()=>D,loadDesignMdTokens:()=>k,parseDesignMdTokens:()=>E,resolveDesignMdPath:()=>O});const d=/(?:^|[/\\])design\.md$/i,f=[`DESIGN.md`,`design.md`,`docs/DESIGN.md`],p=/^\uFEFF?---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/,m=/^\{[^{}]+\}$/,h=new Set([`version`,`name`,`description`]),g=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`,`fontFeature`,`fontVariation`],_={backgroundColor:`color`,textColor:`color`,typography:`typography`,rounded:`dimension`,padding:`dimension`,size:`dimension`,height:`dimension`,width:`dimension`};function v(e){return typeof e==`string`&&m.test(e.trim())}function y(e){return typeof e==`number`?`${e}px`:e}function b(e){let t={};for(let n of g){let r=e[n];r!=null&&(t[n]=r)}for(let[n,r]of Object.entries(e))!(n in t)&&r!=null&&(typeof r==`string`||typeof r==`number`)&&(t[n]=r);return t}function x(e,t,n=!1){let r={};for(let[i,a]of Object.entries(e))a!=null&&(r[i]={$type:t,$value:v(a)?a.trim():n?y(a):a});return r}function S(e){let t={};for(let[n,r]of Object.entries(e))v(r)?t[n]={$type:`typography`,$value:r.trim()}:(0,c.isObject)(r)&&(t[n]={$type:`typography`,$value:b(r)});return t}function C(e){let t={};for(let[n,r]of Object.entries(e)){if(!(0,c.isObject)(r))continue;let e={};for(let[t,n]of Object.entries(r)){if(n==null)continue;let r=_[t];e[t]={...r?{$type:r}:{},$value:v(n)?n.trim():r===`typography`&&(0,c.isObject)(n)?b(n):y(n)}}Object.keys(e).length>0&&(t[n]=e)}return t}function w(e){let t=p.exec(e);if(!t?.[1])return;let n;try{n=(0,l.parse)(t[1])}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse DESIGN.md front matter as YAML: ${t}`)}return(0,c.isObject)(n)?n:void 0}function T(e){let t={};for(let[n,r]of Object.entries(e))if(!(h.has(n)||!(0,c.isObject)(r)))switch(n){case`colors`:t[n]=x(r,`color`);break;case`typography`:t[n]=S(r);break;case`rounded`:case`spacing`:t[n]=x(r,`dimension`,!0);break;case`components`:t[n]=C(r);break;default:t[n]=r}return(0,n.normalizeTokenTree)(t)}function E(e){let t=w(e);return t?T(t):{}}function D(e){return d.test(e)}function O(e){for(let t of f){let n=(0,o.joinPaths)(e,t);if((0,i.existsSync)(n))return n}}async function k(e){let t=O(e);if(t)return E(await(0,a.readFile)(t))}var A=(0,r.definePlugin)(e=>({name:`design-md:extract`,parsers:[{name:`design-md`,pattern:d,parser:e=>E(e)}],extract:async n=>{if(n.tokens&&!(0,s.isEmptyObject)(n.tokens))return n;let r=e?.path;if(!r){let{cwd:e}=(0,t.useExecution)();if(r=O(e),!r)return n}let i=E(await(0,a.readFile)(r));return!i||(0,s.isEmptyObject)(i)?n:{...n,tokens:i}}}));exports.DESIGN_MD_FILE_PATTERN=d,exports.DESIGN_MD_PATH_CANDIDATES=f,exports.default=A,exports.designMdToTokens=T,exports.extractDesignMdFrontMatter=w,exports.isDesignMdFile=D,exports.loadDesignMdTokens=k,exports.parseDesignMdTokens=E,exports.resolveDesignMdPath=O,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return u}});
@@ -1,4 +1,4 @@
1
- import { a as __exportAll, n as DesignMdExtractPluginOptions } from "./types-CYDjNc8P.cjs";
1
+ import { a as __exportAll, n as DesignMdExtractPluginOptions } from "./types-DBJXb23_.cjs";
2
2
  import { DesignTokens } from "style-dictionary/types";
3
3
  declare namespace extract_d_exports {
4
4
  export { DESIGN_MD_FILE_PATTERN, DESIGN_MD_PATH_CANDIDATES, _default as default, designMdToTokens, extractDesignMdFrontMatter, isDesignMdFile, loadDesignMdTokens, parseDesignMdTokens, resolveDesignMdPath };
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.cts","names":[],"sources":["../src/extract.ts"],"mappings":";;;;;;;;;cAkCa,wBAAsB;;cAGtB;;;;;;;;iBA6KG,2BACd,mBACC;;;;;;;;;;;;;;iBAgCa,iBACd,aAAa,0BACZ;;;;;;;;iBAwCa,oBAAoB,mBAAmB;;;;;;;iBAevC,eAAe;;;;;;;iBAUf,oBAAoB;;;;;;;iBAiBd,mBACpB,cACC,QAAQ"}
1
+ {"version":3,"file":"extract.d.cts","names":[],"sources":["../src/extract.ts"],"mappings":";;;;;;;;;cAkCa,wBAAsB;;cAGtB;;;;;;;;iBA6KG,2BACd,mBACC;;;;;;;;;;;;;;iBAgCa,iBACd,aAAa,0BACZ;;;;;;;;iBA+Ca,oBAAoB,mBAAmB;;;;;;;iBAevC,eAAe;;;;;;;iBAUf,oBAAoB;;;;;;;iBAiBd,mBACpB,cACC,QAAQ"}
@@ -1,4 +1,4 @@
1
- import { n as DesignMdExtractPluginOptions } from "./types-Bh1zZG6z.mjs";
1
+ import { n as DesignMdExtractPluginOptions } from "./types-B8UoL9-h.mjs";
2
2
  import { DesignTokens } from "style-dictionary/types";
3
3
  declare namespace extract_d_exports {
4
4
  export { DESIGN_MD_FILE_PATTERN, DESIGN_MD_PATH_CANDIDATES, _default as default, designMdToTokens, extractDesignMdFrontMatter, isDesignMdFile, loadDesignMdTokens, parseDesignMdTokens, resolveDesignMdPath };
package/dist/extract.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{useExecution as t}from"@power-plant/core";import{definePlugin as n}from"@razorwind/core/plugin";import{normalizeTokenTree as r}from"@razorwind/core";import{existsSync as i}from"@stryke/fs/exists";import{readFile as a}from"@stryke/fs/read-file";import{joinPaths as o}from"@stryke/path/join";import{isEmptyObject as s}from"@stryke/type-checks/is-empty-object";import{parse as c}from"yaml";import{isObject as l}from"@stryke/type-checks/is-object";var u=e({DESIGN_MD_FILE_PATTERN:()=>d,DESIGN_MD_PATH_CANDIDATES:()=>f,default:()=>A,designMdToTokens:()=>T,extractDesignMdFrontMatter:()=>w,isDesignMdFile:()=>D,loadDesignMdTokens:()=>k,parseDesignMdTokens:()=>E,resolveDesignMdPath:()=>O});const d=/(?:^|[/\\])design\.md$/i,f=[`DESIGN.md`,`design.md`,`docs/DESIGN.md`],p=/^\uFEFF?---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/,m=/^\{[^{}]+\}$/,h=new Set([`version`,`name`,`description`]),g=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`,`fontFeature`,`fontVariation`],_={backgroundColor:`color`,textColor:`color`,typography:`typography`,rounded:`dimension`,padding:`dimension`,size:`dimension`,height:`dimension`,width:`dimension`};function v(e){return typeof e==`string`&&m.test(e.trim())}function y(e){return typeof e==`number`?`${e}px`:e}function b(e){let t={};for(let n of g){let r=e[n];r!=null&&(t[n]=r)}for(let[n,r]of Object.entries(e))!(n in t)&&r!=null&&(typeof r==`string`||typeof r==`number`)&&(t[n]=r);return t}function x(e,t,n=!1){let r={};for(let[i,a]of Object.entries(e))a!=null&&(r[i]={$type:t,$value:v(a)?a.trim():n?y(a):a});return r}function S(e){let t={};for(let[n,r]of Object.entries(e))v(r)?t[n]={$type:`typography`,$value:r.trim()}:l(r)&&(t[n]={$type:`typography`,$value:b(r)});return t}function C(e){let t={};for(let[n,r]of Object.entries(e)){if(!l(r))continue;let e={};for(let[t,n]of Object.entries(r)){if(n==null)continue;let r=_[t];e[t]={...r?{$type:r}:{},$value:v(n)?n.trim():r===`typography`&&l(n)?b(n):y(n)}}Object.keys(e).length>0&&(t[n]=e)}return t}function w(e){let t=p.exec(e);if(!t?.[1])return;let n;try{n=c(t[1])}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse DESIGN.md front matter as YAML: ${t}`)}return l(n)?n:void 0}function T(e){let t={};for(let[n,r]of Object.entries(e))if(!(h.has(n)||!l(r)))switch(n){case`colors`:t[n]=x(r,`color`);break;case`typography`:t[n]=S(r);break;case`rounded`:case`spacing`:t[n]=x(r,`dimension`,!0);break;case`components`:t[n]=C(r);break;default:t[n]=r}return r(t)}function E(e){let t=w(e);return t?T(t):{}}function D(e){return d.test(e)}function O(e){for(let t of f){let n=o(e,t);if(i(n))return n}}async function k(e){let t=O(e);if(t)return E(await a(t))}var A=n(e=>({name:`design-md:extract`,parsers:[{name:`design-md`,pattern:d,parser:e=>E(e)}],extract:async n=>{if(n.tokens&&!s(n.tokens))return n;let r=e?.path;if(!r){let{cwd:e}=t();if(r=O(e),!r)return n}let i=E(await a(r));return!i||s(i)?n:{...n,tokens:i}}}));export{d as DESIGN_MD_FILE_PATTERN,f as DESIGN_MD_PATH_CANDIDATES,A as default,T as designMdToTokens,w as extractDesignMdFrontMatter,D as isDesignMdFile,k as loadDesignMdTokens,E as parseDesignMdTokens,O as resolveDesignMdPath,u as t};
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{useExecution as t}from"@power-plant/core";import{normalizeTokenTree as n}from"@razorwind/core";import{definePlugin as r}from"@razorwind/core/plugin";import{existsSync as i}from"@stryke/fs/exists";import{readFile as a}from"@stryke/fs/read-file";import{joinPaths as o}from"@stryke/path/join";import{isEmptyObject as s}from"@stryke/type-checks/is-empty-object";import{isObject as c}from"@stryke/type-checks/is-object";import{parse as l}from"yaml";var u=e({DESIGN_MD_FILE_PATTERN:()=>d,DESIGN_MD_PATH_CANDIDATES:()=>f,default:()=>A,designMdToTokens:()=>T,extractDesignMdFrontMatter:()=>w,isDesignMdFile:()=>D,loadDesignMdTokens:()=>k,parseDesignMdTokens:()=>E,resolveDesignMdPath:()=>O});const d=/(?:^|[/\\])design\.md$/i,f=[`DESIGN.md`,`design.md`,`docs/DESIGN.md`],p=/^\uFEFF?---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/,m=/^\{[^{}]+\}$/,h=new Set([`version`,`name`,`description`]),g=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`,`fontFeature`,`fontVariation`],_={backgroundColor:`color`,textColor:`color`,typography:`typography`,rounded:`dimension`,padding:`dimension`,size:`dimension`,height:`dimension`,width:`dimension`};function v(e){return typeof e==`string`&&m.test(e.trim())}function y(e){return typeof e==`number`?`${e}px`:e}function b(e){let t={};for(let n of g){let r=e[n];r!=null&&(t[n]=r)}for(let[n,r]of Object.entries(e))!(n in t)&&r!=null&&(typeof r==`string`||typeof r==`number`)&&(t[n]=r);return t}function x(e,t,n=!1){let r={};for(let[i,a]of Object.entries(e))a!=null&&(r[i]={$type:t,$value:v(a)?a.trim():n?y(a):a});return r}function S(e){let t={};for(let[n,r]of Object.entries(e))v(r)?t[n]={$type:`typography`,$value:r.trim()}:c(r)&&(t[n]={$type:`typography`,$value:b(r)});return t}function C(e){let t={};for(let[n,r]of Object.entries(e)){if(!c(r))continue;let e={};for(let[t,n]of Object.entries(r)){if(n==null)continue;let r=_[t];e[t]={...r?{$type:r}:{},$value:v(n)?n.trim():r===`typography`&&c(n)?b(n):y(n)}}Object.keys(e).length>0&&(t[n]=e)}return t}function w(e){let t=p.exec(e);if(!t?.[1])return;let n;try{n=l(t[1])}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse DESIGN.md front matter as YAML: ${t}`)}return c(n)?n:void 0}function T(e){let t={};for(let[n,r]of Object.entries(e))if(!(h.has(n)||!c(r)))switch(n){case`colors`:t[n]=x(r,`color`);break;case`typography`:t[n]=S(r);break;case`rounded`:case`spacing`:t[n]=x(r,`dimension`,!0);break;case`components`:t[n]=C(r);break;default:t[n]=r}return n(t)}function E(e){let t=w(e);return t?T(t):{}}function D(e){return d.test(e)}function O(e){for(let t of f){let n=o(e,t);if(i(n))return n}}async function k(e){let t=O(e);if(t)return E(await a(t))}var A=r(e=>({name:`design-md:extract`,parsers:[{name:`design-md`,pattern:d,parser:e=>E(e)}],extract:async n=>{if(n.tokens&&!s(n.tokens))return n;let r=e?.path;if(!r){let{cwd:e}=t();if(r=O(e),!r)return n}let i=E(await a(r));return!i||s(i)?n:{...n,tokens:i}}}));export{d as DESIGN_MD_FILE_PATTERN,f as DESIGN_MD_PATH_CANDIDATES,A as default,T as designMdToTokens,w as extractDesignMdFrontMatter,D as isDesignMdFile,k as loadDesignMdTokens,E as parseDesignMdTokens,O as resolveDesignMdPath,u as t};
2
2
  //# sourceMappingURL=extract.mjs.map
@@ -17,7 +17,7 @@ Generated by \`@razorwind/design-md\`.
17
17
  ## Usage
18
18
 
19
19
  Reference token names, component rules, and layout guidance from \`${e.outputPath}\` when implementing UI. Regenerate rather than hand-editing generated sections.
20
- `}function l(e,t){return r(e,{includeTypes:t})}function u(e,t){let n=e.split(`.`).filter(Boolean);for(;n.length>1&&t.includes(n[0].toLowerCase());)n.shift();return n.join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase()}function d(e){if(typeof e==`number`||typeof e==`boolean`)return String(e);let t=String(e);return/^[a-z][\w-]*$/i.test(t)?t:JSON.stringify(t)}function f(e){return e.split(/[-_.]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}var p=e({default:()=>R,extractDesignMd:()=>A,generateDesignMd:()=>L,renderDesignMd:()=>I,renderInstallMd:()=>c,selectPrimaryTheme:()=>C});const m=new Set([`backgroundColor`,`textColor`,`typography`,`rounded`,`padding`,`size`,`height`,`width`]),h={background:`backgroundColor`,backgroundcolor:`backgroundColor`,bg:`backgroundColor`,fill:`backgroundColor`,color:`textColor`,foreground:`textColor`,text:`textColor`,textcolor:`textColor`,font:`typography`,radius:`rounded`,borderradius:`rounded`,corner:`rounded`},g=[`color`,`colors`,`palette`],_=[`typography`,`type`,`text`,`font`,`fonts`],v=/(?:^|\.)(?:radius|radii|rounded|corner)(?:\.|$)/i,y=/(?:^|\.)(?:spacing|space|gap)(?:\.|$)/i,b=/^components?$/i,x=/^\{([^}]+)\}$/,S=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`];function C(e){let t=[...new Set(e.map(e=>e.theme))],n=t.find(e=>e===void 0)??t.find(e=>/^light/i.test(e??``))??t.find(e=>/^(?:default|base)/i.test(e??``))??t[0];return e.filter(e=>e.theme===n)}function w(e){if(typeof e==`string`)return x.exec(e.trim())?.[1]}function T(e,t){let n=e;for(let e=0;e<8;e++){let e=w(n.value);if(!e)return n;let r=t.get(e);if(!r)return n;n=r}return n}function E(e){return e.split(/[-_.\s]+/).filter(Boolean).map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}function D(e){let t=E(e);return m.has(t)?t:h[t.toLowerCase()]}function O(e,t){let r={};if(!n(e))return r;for(let n of S){let a=e[n];if(a==null)continue;let o=w(a),s=o?t.get(o):void 0,c=s?T(s,t).cssValue:void 0;if(typeof a==`number`){r[n]=n===`fontWeight`||n===`lineHeight`?a:i(a);continue}r[n]=c??i(a)}return r}function k(e,t){return{...e,...t.name!==void 0&&{name:t.name},...t.description!==void 0&&{description:t.description},...t.version!==void 0&&{version:t.version}}}function A(e){let t=C(l(e.tokens)),n=new Map(t.map(e=>[e.path,e])),r=a(e),i={...r.title||r.name?{name:r.title??r.name}:{},...r.description?{description:r.description}:{},colors:{},colorDescriptions:{},typography:{},rounded:{},spacing:{},components:{}},o=new Map,s=[];for(let e of t){let t=e.path.split(`.`);if(t[0]&&b.test(t[0])){s.push(e);continue}if(e.type===`color`){let t=u(e.path,g),r=T(e,n);i.colors[t]=r.cssValue,e.description&&(i.colorDescriptions[t]=e.description),o.set(e.path,`colors.${t}`);continue}if(e.type===`typography`){let t=u(e.path,_);i.typography[t]=O(e.value,n),o.set(e.path,`typography.${t}`);continue}if(e.type===`fontFamily`){let t=u(e.path,_);i.typography[t]??={},i.typography[t].fontFamily=e.cssValue,o.set(e.path,`typography.${t}`);continue}let r=e.type===`dimension`||e.type===`number`||typeof e.value==`number`;if(r&&v.test(e.path)){let r=t.at(-1);i.rounded[r]=T(e,n).cssValue,o.set(e.path,`rounded.${r}`);continue}if(r&&y.test(e.path)){let r=t.at(-1);i.spacing[r]=T(e,n).cssValue,o.set(e.path,`spacing.${r}`)}}for(let e of s){let t=e.path.split(`.`).slice(1);if(t.length<2)continue;let r=D(t.at(-1));if(!r)continue;let a=t.slice(0,-1).join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase(),s=w(e.value),c=s?o.get(s):void 0,l=c?`{${c}}`:T(e,n).cssValue;i.components[a]??={},i.components[a][r]=l}return i}function j(e,t,n){let r=Object.entries(t);if(r.length!==0){n.push(`${e}:`);for(let[e,t]of r){if(typeof t==`object`&&t){n.push(` ${e}:`);for(let[e,r]of Object.entries(t))n.push(` ${e}: ${d(r)}`);continue}n.push(` ${e}: ${d(t)}`)}}}function M(e){let t=[`---`];return e.version?t.push(`version: ${d(e.version)}`):t.push(`version: alpha`),t.push(`name: ${d(e.name)}`),e.description&&t.push(`description: ${d(e.description)}`),j(`colors`,e.colors,t),j(`typography`,e.typography,t),j(`rounded`,e.rounded,t),j(`spacing`,e.spacing,t),j(`components`,e.components,t),t.push(`---`),`${t.join(`
20
+ `}function l(e,t){return r(e,{includeTypes:t})}function u(e,t){let n=e.split(`.`).filter(Boolean);for(;n.length>1&&t.includes(n[0].toLowerCase());)n.shift();return n.join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase()}function d(e){if(typeof e==`number`||typeof e==`boolean`)return String(e);let t=String(e);return/^[a-z][\w-]*$/i.test(t)?t:JSON.stringify(t)}function f(e){return e.split(/[-_.]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}var p=e({default:()=>R,extractDesignMd:()=>A,generateDesignMd:()=>L,renderDesignMd:()=>I,renderInstallMd:()=>c,selectPrimaryTheme:()=>C});const m=new Set([`backgroundColor`,`textColor`,`typography`,`rounded`,`padding`,`size`,`height`,`width`]),h={background:`backgroundColor`,backgroundcolor:`backgroundColor`,bg:`backgroundColor`,fill:`backgroundColor`,color:`textColor`,foreground:`textColor`,text:`textColor`,textcolor:`textColor`,font:`typography`,radius:`rounded`,borderradius:`rounded`,corner:`rounded`},g=[`color`,`colors`,`palette`],_=[`typography`,`type`,`text`,`font`,`fonts`],v=/(?:^|\.)(?:radius|radii|rounded|corner)(?:\.|$)/i,y=/(?:^|\.)(?:spacing|space|gap)(?:\.|$)/i,b=/^components?$/i,x=/^\{([^}]+)\}$/,S=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`];function C(e){let t=[...new Set(e.map(e=>e.theme))],n=t.find(e=>e===void 0)??t.find(e=>/^light/i.test(e??``))??t.find(e=>/^(?:default|base)/i.test(e??``))??t[0];return e.filter(e=>e.theme===n)}function w(e){if(typeof e==`string`)return x.exec(e.trim())?.[1]}function T(e,t){let n=e;for(let e=0;e<8;e++){let e=w(n.value);if(!e)return n;let r=t.get(e);if(!r)return n;n=r}return n}function E(e){return e.split(/[-_.\s]+/).filter(Boolean).map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}function D(e){let t=E(e);return m.has(t)?t:h[t.toLowerCase()]}function O(e,t){let r={};if(!n(e))return r;for(let n of S){let a=e[n];if(a==null)continue;let o=w(a),s=o?t.get(o):void 0,c=s?T(s,t).cssValue:void 0;if(typeof a==`number`){r[n]=n===`fontWeight`||n===`lineHeight`?a:i(a);continue}r[n]=c??i(a)}return r}function k(e,t){return{...e,...t.name!==void 0&&{name:t.name},...t.description!==void 0&&{description:t.description},...t.version!==void 0&&{version:t.version}}}function A(e){let t=C(l(e.tokens)),n=new Map(t.map(e=>[e.path,e])),r=a(e),i={...r.title||r.name?{name:r.title??r.name}:{},...r.description?{description:r.description}:{},colors:{},colorDescriptions:{},typography:{},rounded:{},spacing:{},components:{}},o=new Map,s=[];for(let e of t){let t=e.path.split(`.`);if(t[0]&&b.test(t[0])){s.push(e);continue}if(e.type===`color`&&!e.palette){let t=u(e.path,g),r=T(e,n);r.palette||(i.colors[t]=r.cssValue,e.description&&(i.colorDescriptions[t]=e.description),o.set(e.path,`colors.${t}`));continue}if(e.type===`typography`){let t=u(e.path,_);i.typography[t]=O(e.value,n),o.set(e.path,`typography.${t}`);continue}if(e.type===`fontFamily`){let t=u(e.path,_);i.typography[t]??={},i.typography[t].fontFamily=e.cssValue,o.set(e.path,`typography.${t}`);continue}let r=e.type===`dimension`||e.type===`number`||typeof e.value==`number`;if(r&&v.test(e.path)){let r=t.at(-1);i.rounded[r]=T(e,n).cssValue,o.set(e.path,`rounded.${r}`);continue}if(r&&y.test(e.path)){let r=t.at(-1);i.spacing[r]=T(e,n).cssValue,o.set(e.path,`spacing.${r}`)}}for(let e of s){let t=e.path.split(`.`).slice(1);if(t.length<2)continue;let r=D(t.at(-1));if(!r)continue;let a=t.slice(0,-1).join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase(),s=w(e.value),c=s?o.get(s):void 0,l=c?`{${c}}`:T(e,n).cssValue;i.components[a]??={},i.components[a][r]=l}return i}function j(e,t,n){let r=Object.entries(t);if(r.length!==0){n.push(`${e}:`);for(let[e,t]of r){if(typeof t==`object`&&t){n.push(` ${e}:`);for(let[e,r]of Object.entries(t))n.push(` ${e}: ${d(r)}`);continue}n.push(` ${e}: ${d(t)}`)}}}function M(e){let t=[`---`];return e.version?t.push(`version: ${d(e.version)}`):t.push(`version: alpha`),t.push(`name: ${d(e.name)}`),e.description&&t.push(`description: ${d(e.description)}`),j(`colors`,e.colors,t),j(`typography`,e.typography,t),j(`rounded`,e.rounded,t),j(`spacing`,e.spacing,t),j(`components`,e.components,t),t.push(`---`),`${t.join(`
21
21
  `)}\n`}function N(e,...t){return`## ${e}\n\n${t.filter(Boolean).join(`
22
22
  `)}\n`}function P(e){let t=[[Object.keys(e.colors).length,`color`],[Object.keys(e.typography).length,`typography`],[Object.keys(e.rounded).length,`shape`],[Object.keys(e.spacing).length,`spacing`],[Object.keys(e.components).length,`component`]].filter(([e])=>e>0).map(([e,t])=>`${e} ${t} token${e===1?``:`s`}`).join(`, `);return`${e.name} design tokens${t?` — ${t}`:``}. The YAML front matter above is the normative source; the prose below explains how to apply it.`}function F(e,t={}){let n=[N(`Overview`,t.overview??P(e))],r=Object.entries(e.colors);r.length>0&&n.push(N(`Colors`,r.map(([t,n])=>{let r=e.colorDescriptions[t];return`- **${f(t)} (${n}):**${r?` ${r}`:``}`}).join(`
23
23
  `)));let i=Object.entries(e.typography);i.length>0&&n.push(N(`Typography`,i.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`, `)}`).join(`
@@ -26,4 +26,4 @@ Reference token names, component rules, and layout guidance from \`${e.outputPat
26
26
  `)));let s=Object.entries(e.components);return s.length>0&&n.push(N(`Components`,s.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: \`${t}\``).join(`, `)}`).join(`
27
27
  `))),n.join(`
28
28
  `)}function I(e,t={}){return`${M(e)}\n${F(e,t)}`}function L(e,t={}){let n=k(A(e),t),r=t.outputPath??`DESIGN.md`,i=I(n,t),a=t.installGuide??c({outputPath:r,name:t.name??n.name}),l=s(o(r),`INSTALL.md`);return{[r]:{path:r,language:`markdown`,chunks:[{content:i,meta:{name:`razorwind-design-md`}}]},[l]:{path:l,language:`markdown`,chunks:[{content:a,meta:{name:`razorwind-design-md`}}]}}}var R=t(e=>({name:`design-md:generate`,generate:async t=>L(t,e??{})}));export{I as a,p as i,L as n,C as o,R as r,c as s,A as t};
29
- //# sourceMappingURL=generate-BI0Qt52j.mjs.map
29
+ //# sourceMappingURL=generate-CW_Snubi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-CW_Snubi.mjs","names":[],"sources":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { i as FlatToken, r as DesignMdGeneratePluginOptions, t as DesignMdDocument } from "./types-Bh1zZG6z.mjs";
1
+ import { i as FlatToken, r as DesignMdGeneratePluginOptions, t as DesignMdDocument } from "./types-B8UoL9-h.mjs";
2
2
  import { GeneratorFunctionResult } from "@power-plant/core";
3
3
  import { Schema } from "@razorwind/core/schema";
4
4
  //#region src/install.d.ts
@@ -61,4 +61,4 @@ declare function generateDesignMd(spec: Schema, options?: DesignMdGeneratePlugin
61
61
  declare const _default: (options?: DesignMdGeneratePluginOptions | undefined) => import("@razorwind/core").Plugin;
62
62
  //#endregion
63
63
  export { renderDesignMd as a, generate_d_exports as i, extractDesignMd as n, selectPrimaryTheme as o, generateDesignMd as r, renderInstallMd as s, _default as t };
64
- //# sourceMappingURL=generate-4IceWWHl.d.mts.map
64
+ //# sourceMappingURL=generate-DHLrMD5g.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-DHLrMD5g.d.mts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { a as __exportAll, i as FlatToken, r as DesignMdGeneratePluginOptions, t as DesignMdDocument } from "./types-CYDjNc8P.cjs";
1
+ import { a as __exportAll, i as FlatToken, r as DesignMdGeneratePluginOptions, t as DesignMdDocument } from "./types-DBJXb23_.cjs";
2
2
  import { GeneratorFunctionResult } from "@power-plant/core";
3
3
  import { Schema } from "@razorwind/core/schema";
4
4
  //#region src/install.d.ts
@@ -61,4 +61,4 @@ declare function generateDesignMd(spec: Schema, options?: DesignMdGeneratePlugin
61
61
  declare const _default: (options?: DesignMdGeneratePluginOptions | undefined) => import("@razorwind/core").Plugin;
62
62
  //#endregion
63
63
  export { renderDesignMd as a, generate_d_exports as i, extractDesignMd as n, selectPrimaryTheme as o, generateDesignMd as r, renderInstallMd as s, _default as t };
64
- //# sourceMappingURL=generate-D-aW7d_O.d.cts.map
64
+ //# sourceMappingURL=generate-DYuHhQcQ.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-DYuHhQcQ.d.cts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":";;;;;;;;;iBAuBgB,gBAAgB;EAC9B;EACA;;;;;;;;;;iBC8Dc,mBAAmB,MAAM,cAAc;;;;;;;;;iBA+HvC,gBAAgB,MAAM,SAAS;;;;;;;iBA2R/B,eACd,UAAU,kBACV,UAAS;;;;;;;iBAaK,iBACd,MAAM,QACN,UAAS,gCACR,wBAAwB,QAAQ"}
@@ -17,7 +17,7 @@ Generated by \`@razorwind/design-md\`.
17
17
  ## Usage
18
18
 
19
19
  Reference token names, component rules, and layout guidance from \`${e.outputPath}\` when implementing UI. Regenerate rather than hand-editing generated sections.
20
- `}function o(e,t){return(0,r.flattenTokens)(e,{includeTypes:t})}function s(e,t){let n=e.split(`.`).filter(Boolean);for(;n.length>1&&t.includes(n[0].toLowerCase());)n.shift();return n.join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase()}function c(e){if(typeof e==`number`||typeof e==`boolean`)return String(e);let t=String(e);return/^[a-z][\w-]*$/i.test(t)?t:JSON.stringify(t)}function l(e){return e.split(/[-_.]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}var u=e.t({default:()=>F,extractDesignMd:()=>D,generateDesignMd:()=>P,renderDesignMd:()=>N,renderInstallMd:()=>a,selectPrimaryTheme:()=>b});const d=new Set([`backgroundColor`,`textColor`,`typography`,`rounded`,`padding`,`size`,`height`,`width`]),f={background:`backgroundColor`,backgroundcolor:`backgroundColor`,bg:`backgroundColor`,fill:`backgroundColor`,color:`textColor`,foreground:`textColor`,text:`textColor`,textcolor:`textColor`,font:`typography`,radius:`rounded`,borderradius:`rounded`,corner:`rounded`},p=[`color`,`colors`,`palette`],m=[`typography`,`type`,`text`,`font`,`fonts`],h=/(?:^|\.)(?:radius|radii|rounded|corner)(?:\.|$)/i,g=/(?:^|\.)(?:spacing|space|gap)(?:\.|$)/i,_=/^components?$/i,v=/^\{([^}]+)\}$/,y=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`];function b(e){let t=[...new Set(e.map(e=>e.theme))],n=t.find(e=>e===void 0)??t.find(e=>/^light/i.test(e??``))??t.find(e=>/^(?:default|base)/i.test(e??``))??t[0];return e.filter(e=>e.theme===n)}function x(e){if(typeof e==`string`)return v.exec(e.trim())?.[1]}function S(e,t){let n=e;for(let e=0;e<8;e++){let e=x(n.value);if(!e)return n;let r=t.get(e);if(!r)return n;n=r}return n}function C(e){return e.split(/[-_.\s]+/).filter(Boolean).map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}function w(e){let t=C(e);return d.has(t)?t:f[t.toLowerCase()]}function T(e,t){let i={};if(!(0,n.isObject)(e))return i;for(let n of y){let a=e[n];if(a==null)continue;let o=x(a),s=o?t.get(o):void 0,c=s?S(s,t).cssValue:void 0;if(typeof a==`number`){i[n]=n===`fontWeight`||n===`lineHeight`?a:(0,r.formatTokenValue)(a);continue}i[n]=c??(0,r.formatTokenValue)(a)}return i}function E(e,t){return{...e,...t.name!==void 0&&{name:t.name},...t.description!==void 0&&{description:t.description},...t.version!==void 0&&{version:t.version}}}function D(e){let t=b(o(e.tokens)),n=new Map(t.map(e=>[e.path,e])),i=(0,r.resolveSchemaIdentity)(e),a={...i.title||i.name?{name:i.title??i.name}:{},...i.description?{description:i.description}:{},colors:{},colorDescriptions:{},typography:{},rounded:{},spacing:{},components:{}},c=new Map,l=[];for(let e of t){let t=e.path.split(`.`);if(t[0]&&_.test(t[0])){l.push(e);continue}if(e.type===`color`){let t=s(e.path,p),r=S(e,n);a.colors[t]=r.cssValue,e.description&&(a.colorDescriptions[t]=e.description),c.set(e.path,`colors.${t}`);continue}if(e.type===`typography`){let t=s(e.path,m);a.typography[t]=T(e.value,n),c.set(e.path,`typography.${t}`);continue}if(e.type===`fontFamily`){let t=s(e.path,m);a.typography[t]??={},a.typography[t].fontFamily=e.cssValue,c.set(e.path,`typography.${t}`);continue}let r=e.type===`dimension`||e.type===`number`||typeof e.value==`number`;if(r&&h.test(e.path)){let r=t.at(-1);a.rounded[r]=S(e,n).cssValue,c.set(e.path,`rounded.${r}`);continue}if(r&&g.test(e.path)){let r=t.at(-1);a.spacing[r]=S(e,n).cssValue,c.set(e.path,`spacing.${r}`)}}for(let e of l){let t=e.path.split(`.`).slice(1);if(t.length<2)continue;let r=w(t.at(-1));if(!r)continue;let i=t.slice(0,-1).join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase(),o=x(e.value),s=o?c.get(o):void 0,l=s?`{${s}}`:S(e,n).cssValue;a.components[i]??={},a.components[i][r]=l}return a}function O(e,t,n){let r=Object.entries(t);if(r.length!==0){n.push(`${e}:`);for(let[e,t]of r){if(typeof t==`object`&&t){n.push(` ${e}:`);for(let[e,r]of Object.entries(t))n.push(` ${e}: ${c(r)}`);continue}n.push(` ${e}: ${c(t)}`)}}}function k(e){let t=[`---`];return e.version?t.push(`version: ${c(e.version)}`):t.push(`version: alpha`),t.push(`name: ${c(e.name)}`),e.description&&t.push(`description: ${c(e.description)}`),O(`colors`,e.colors,t),O(`typography`,e.typography,t),O(`rounded`,e.rounded,t),O(`spacing`,e.spacing,t),O(`components`,e.components,t),t.push(`---`),`${t.join(`
20
+ `}function o(e,t){return(0,r.flattenTokens)(e,{includeTypes:t})}function s(e,t){let n=e.split(`.`).filter(Boolean);for(;n.length>1&&t.includes(n[0].toLowerCase());)n.shift();return n.join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase()}function c(e){if(typeof e==`number`||typeof e==`boolean`)return String(e);let t=String(e);return/^[a-z][\w-]*$/i.test(t)?t:JSON.stringify(t)}function l(e){return e.split(/[-_.]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}var u=e.t({default:()=>F,extractDesignMd:()=>D,generateDesignMd:()=>P,renderDesignMd:()=>N,renderInstallMd:()=>a,selectPrimaryTheme:()=>b});const d=new Set([`backgroundColor`,`textColor`,`typography`,`rounded`,`padding`,`size`,`height`,`width`]),f={background:`backgroundColor`,backgroundcolor:`backgroundColor`,bg:`backgroundColor`,fill:`backgroundColor`,color:`textColor`,foreground:`textColor`,text:`textColor`,textcolor:`textColor`,font:`typography`,radius:`rounded`,borderradius:`rounded`,corner:`rounded`},p=[`color`,`colors`,`palette`],m=[`typography`,`type`,`text`,`font`,`fonts`],h=/(?:^|\.)(?:radius|radii|rounded|corner)(?:\.|$)/i,g=/(?:^|\.)(?:spacing|space|gap)(?:\.|$)/i,_=/^components?$/i,v=/^\{([^}]+)\}$/,y=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`];function b(e){let t=[...new Set(e.map(e=>e.theme))],n=t.find(e=>e===void 0)??t.find(e=>/^light/i.test(e??``))??t.find(e=>/^(?:default|base)/i.test(e??``))??t[0];return e.filter(e=>e.theme===n)}function x(e){if(typeof e==`string`)return v.exec(e.trim())?.[1]}function S(e,t){let n=e;for(let e=0;e<8;e++){let e=x(n.value);if(!e)return n;let r=t.get(e);if(!r)return n;n=r}return n}function C(e){return e.split(/[-_.\s]+/).filter(Boolean).map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}function w(e){let t=C(e);return d.has(t)?t:f[t.toLowerCase()]}function T(e,t){let i={};if(!(0,n.isObject)(e))return i;for(let n of y){let a=e[n];if(a==null)continue;let o=x(a),s=o?t.get(o):void 0,c=s?S(s,t).cssValue:void 0;if(typeof a==`number`){i[n]=n===`fontWeight`||n===`lineHeight`?a:(0,r.formatTokenValue)(a);continue}i[n]=c??(0,r.formatTokenValue)(a)}return i}function E(e,t){return{...e,...t.name!==void 0&&{name:t.name},...t.description!==void 0&&{description:t.description},...t.version!==void 0&&{version:t.version}}}function D(e){let t=b(o(e.tokens)),n=new Map(t.map(e=>[e.path,e])),i=(0,r.resolveSchemaIdentity)(e),a={...i.title||i.name?{name:i.title??i.name}:{},...i.description?{description:i.description}:{},colors:{},colorDescriptions:{},typography:{},rounded:{},spacing:{},components:{}},c=new Map,l=[];for(let e of t){let t=e.path.split(`.`);if(t[0]&&_.test(t[0])){l.push(e);continue}if(e.type===`color`&&!e.palette){let t=s(e.path,p),r=S(e,n);r.palette||(a.colors[t]=r.cssValue,e.description&&(a.colorDescriptions[t]=e.description),c.set(e.path,`colors.${t}`));continue}if(e.type===`typography`){let t=s(e.path,m);a.typography[t]=T(e.value,n),c.set(e.path,`typography.${t}`);continue}if(e.type===`fontFamily`){let t=s(e.path,m);a.typography[t]??={},a.typography[t].fontFamily=e.cssValue,c.set(e.path,`typography.${t}`);continue}let r=e.type===`dimension`||e.type===`number`||typeof e.value==`number`;if(r&&h.test(e.path)){let r=t.at(-1);a.rounded[r]=S(e,n).cssValue,c.set(e.path,`rounded.${r}`);continue}if(r&&g.test(e.path)){let r=t.at(-1);a.spacing[r]=S(e,n).cssValue,c.set(e.path,`spacing.${r}`)}}for(let e of l){let t=e.path.split(`.`).slice(1);if(t.length<2)continue;let r=w(t.at(-1));if(!r)continue;let i=t.slice(0,-1).join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase(),o=x(e.value),s=o?c.get(o):void 0,l=s?`{${s}}`:S(e,n).cssValue;a.components[i]??={},a.components[i][r]=l}return a}function O(e,t,n){let r=Object.entries(t);if(r.length!==0){n.push(`${e}:`);for(let[e,t]of r){if(typeof t==`object`&&t){n.push(` ${e}:`);for(let[e,r]of Object.entries(t))n.push(` ${e}: ${c(r)}`);continue}n.push(` ${e}: ${c(t)}`)}}}function k(e){let t=[`---`];return e.version?t.push(`version: ${c(e.version)}`):t.push(`version: alpha`),t.push(`name: ${c(e.name)}`),e.description&&t.push(`description: ${c(e.description)}`),O(`colors`,e.colors,t),O(`typography`,e.typography,t),O(`rounded`,e.rounded,t),O(`spacing`,e.spacing,t),O(`components`,e.components,t),t.push(`---`),`${t.join(`
21
21
  `)}\n`}function A(e,...t){return`## ${e}\n\n${t.filter(Boolean).join(`
22
22
  `)}\n`}function j(e){let t=[[Object.keys(e.colors).length,`color`],[Object.keys(e.typography).length,`typography`],[Object.keys(e.rounded).length,`shape`],[Object.keys(e.spacing).length,`spacing`],[Object.keys(e.components).length,`component`]].filter(([e])=>e>0).map(([e,t])=>`${e} ${t} token${e===1?``:`s`}`).join(`, `);return`${e.name} design tokens${t?` — ${t}`:``}. The YAML front matter above is the normative source; the prose below explains how to apply it.`}function M(e,t={}){let n=[A(`Overview`,t.overview??j(e))],r=Object.entries(e.colors);r.length>0&&n.push(A(`Colors`,r.map(([t,n])=>{let r=e.colorDescriptions[t];return`- **${l(t)} (${n}):**${r?` ${r}`:``}`}).join(`
23
23
  `)));let i=Object.entries(e.typography);i.length>0&&n.push(A(`Typography`,i.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`, `)}`).join(`
package/dist/generate.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-BH8u-RdP.cjs");exports.default=e.r,exports.extractDesignMd=e.t,exports.generateDesignMd=e.n,exports.renderDesignMd=e.a,exports.renderInstallMd=e.s,exports.selectPrimaryTheme=e.o;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-NaC6MBGt.cjs");exports.default=e.r,exports.extractDesignMd=e.t,exports.generateDesignMd=e.n,exports.renderDesignMd=e.a,exports.renderInstallMd=e.s,exports.selectPrimaryTheme=e.o;
@@ -1,2 +1,2 @@
1
- import { a as renderDesignMd, n as extractDesignMd, o as selectPrimaryTheme, r as generateDesignMd, s as renderInstallMd, t as _default } from "./generate-D-aW7d_O.cjs";
1
+ import { a as renderDesignMd, n as extractDesignMd, o as selectPrimaryTheme, r as generateDesignMd, s as renderInstallMd, t as _default } from "./generate-DYuHhQcQ.cjs";
2
2
  export { _default as default, extractDesignMd, generateDesignMd, renderDesignMd, renderInstallMd, selectPrimaryTheme };
@@ -1,2 +1,2 @@
1
- import { a as renderDesignMd, n as extractDesignMd, o as selectPrimaryTheme, r as generateDesignMd, s as renderInstallMd, t as _default } from "./generate-4IceWWHl.mjs";
1
+ import { a as renderDesignMd, n as extractDesignMd, o as selectPrimaryTheme, r as generateDesignMd, s as renderInstallMd, t as _default } from "./generate-DHLrMD5g.mjs";
2
2
  export { _default as default, extractDesignMd, generateDesignMd, renderDesignMd, renderInstallMd, selectPrimaryTheme };
package/dist/generate.mjs CHANGED
@@ -1 +1 @@
1
- import{a as e,n as t,o as n,r,s as i,t as a}from"./generate-BI0Qt52j.mjs";export{r as default,a as extractDesignMd,t as generateDesignMd,e as renderDesignMd,i as renderInstallMd,n as selectPrimaryTheme};
1
+ import{a as e,n as t,o as n,r,s as i,t as a}from"./generate-CW_Snubi.mjs";export{r as default,a as extractDesignMd,t as generateDesignMd,e as renderDesignMd,i as renderInstallMd,n as selectPrimaryTheme};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./extract.cjs"),t=require("./generate-BH8u-RdP.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.i}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./extract.cjs"),t=require("./generate-NaC6MBGt.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.i}});
package/dist/index.d.cts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { t as extract_d_exports } from "./extract.cjs";
2
- import { i as generate_d_exports } from "./generate-D-aW7d_O.cjs";
2
+ import { i as generate_d_exports } from "./generate-DYuHhQcQ.cjs";
3
3
  export { extract_d_exports as extract, generate_d_exports as generate };
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { t as extract_d_exports } from "./extract.mjs";
2
- import { i as generate_d_exports } from "./generate-4IceWWHl.mjs";
2
+ import { i as generate_d_exports } from "./generate-DHLrMD5g.mjs";
3
3
  export { extract_d_exports as extract, generate_d_exports as generate };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./extract.mjs";import{i as t}from"./generate-BI0Qt52j.mjs";export{e as extract,t as generate};
1
+ import{t as e}from"./extract.mjs";import{i as t}from"./generate-CW_Snubi.mjs";export{e as extract,t as generate};
@@ -58,6 +58,8 @@ interface FlatToken {
58
58
  description?: string;
59
59
  /** Theme / set id when tokens are a `Record<string, Tokens>`. */
60
60
  theme?: string;
61
+ /** Whether the token is part of a palette primitive. */
62
+ palette?: boolean;
61
63
  }
62
64
  /**
63
65
  * A DESIGN.md typography token
@@ -94,4 +96,4 @@ interface DesignMdDocument {
94
96
  }
95
97
  //#endregion
96
98
  export { FlatToken as i, DesignMdExtractPluginOptions as n, DesignMdGeneratePluginOptions as r, DesignMdDocument as t };
97
- //# sourceMappingURL=types-Bh1zZG6z.d.mts.map
99
+ //# sourceMappingURL=types-B8UoL9-h.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-B8UoL9-h.d.mts","names":[],"sources":["../src/types.ts"],"mappings":""}
@@ -59,6 +59,8 @@ interface FlatToken {
59
59
  description?: string;
60
60
  /** Theme / set id when tokens are a `Record<string, Tokens>`. */
61
61
  theme?: string;
62
+ /** Whether the token is part of a palette primitive. */
63
+ palette?: boolean;
62
64
  }
63
65
  /**
64
66
  * A DESIGN.md typography token
@@ -95,4 +97,4 @@ interface DesignMdDocument {
95
97
  }
96
98
  //#endregion
97
99
  export { __exportAll as a, FlatToken as i, DesignMdExtractPluginOptions as n, DesignMdGeneratePluginOptions as r, DesignMdDocument as t };
98
- //# sourceMappingURL=types-CYDjNc8P.d.cts.map
100
+ //# sourceMappingURL=types-DBJXb23_.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-DBJXb23_.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;UAoBiB;;;;;;EAMf;;UAGe;;;;;;EAMf;;;;;;EAOA;;;;EAKA;;;;;;EAOA;;;;;EAMA;;;;;EAMA;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;UAOe;EACf;EACA;EACA;EACA;EACA;;;;;;;KAQU,iBAAiB;;;;;UAMZ;EACf;EACA;EACA;EACA,QAAQ;;EAER,mBAAmB;EACnB,YAAY,eAAe;EAC3B,SAAS;EACT,SAAS;EACT,YAAY,eAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/design-md",
3
- "version": "0.0.47",
3
+ "version": "0.0.48",
4
4
  "type": "module",
5
5
  "description": "Razorwind DESIGN.md plugin that can create a DESIGN.md design-system specification file from design tokens or read a DESIGN.md file and return the design-system specification.",
6
6
  "repository": {
@@ -80,7 +80,7 @@
80
80
  "dependencies": {
81
81
  "@power-plant/core": "^0.0.90",
82
82
  "@power-plant/dtcg-schema": "^0.0.1",
83
- "@razorwind/core": "^0.0.51",
83
+ "@razorwind/core": "^0.0.52",
84
84
  "@stryke/fs": "^0.33.110",
85
85
  "@stryke/path": "^0.29.35",
86
86
  "@stryke/type-checks": "^0.6.41",
@@ -93,5 +93,5 @@
93
93
  "typescript": "^6.0.3"
94
94
  },
95
95
  "publishConfig": { "access": "public" },
96
- "gitHead": "3a51456206724861cda83c344cb35ffcb8b3b8f1"
96
+ "gitHead": "a72e2fb9b29f96e4f2c2241f622e56e6929f6dc9"
97
97
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-4IceWWHl.d.mts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-BI0Qt52j.mjs","names":[],"sources":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-D-aW7d_O.d.cts","names":[],"sources":["../src/install.ts","../src/generate.ts"],"mappings":";;;;;;;;;iBAuBgB,gBAAgB;EAC9B;EACA;;;;;;;;;;iBC8Dc,mBAAmB,MAAM,cAAc;;;;;;;;;iBA+HvC,gBAAgB,MAAM,SAAS;;;;;;;iBA0R/B,eACd,UAAU,kBACV,UAAS;;;;;;;iBAaK,iBACd,MAAM,QACN,UAAS,gCACR,wBAAwB,QAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-Bh1zZG6z.d.mts","names":[],"sources":["../src/types.ts"],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-CYDjNc8P.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;UAoBiB;;;;;;EAMf;;UAGe;;;;;;EAMf;;;;;;EAOA;;;;EAKA;;;;;;EAOA;;;;;EAMA;;;;;EAMA;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;;;;;UAOe;EACf;EACA;EACA;EACA;EACA;;;;;;;KAQU,iBAAiB;;;;;UAMZ;EACf;EACA;EACA;EACA,QAAQ;;EAER,mBAAmB;EACnB,YAAY,eAAe;EAC3B,SAAS;EACT,SAAS;EACT,YAAY,eAAe"}