@razorwind/design-md 0.0.5 → 0.0.6
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 +1 -1
- package/dist/extract.d.cts +1 -1
- package/dist/extract.d.cts.map +1 -1
- package/dist/extract.d.mts +1 -1
- package/dist/extract.mjs +1 -1
- package/dist/{generate-BvP-cKvD.d.cts → generate-BPhbyvvs.d.cts} +2 -2
- package/dist/generate-BPhbyvvs.d.cts.map +1 -0
- package/dist/{generate-BvP-cKvD.d.mts → generate-BPhbyvvs.d.mts} +2 -2
- package/dist/generate-BPhbyvvs.d.mts.map +1 -0
- package/dist/generate-DFy3tlPT.mjs +10 -0
- package/dist/generate-DFy3tlPT.mjs.map +1 -0
- package/dist/generate-DQw2tVYc.cjs +9 -0
- package/dist/generate.cjs +1 -1
- package/dist/generate.d.cts +1 -1
- package/dist/generate.d.mts +1 -1
- package/dist/generate.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +5 -5
- package/dist/generate-BIFtSW2h.cjs +0 -9
- package/dist/generate-BvP-cKvD.d.cts.map +0 -1
- package/dist/generate-BvP-cKvD.d.mts.map +0 -1
- package/dist/generate-C7bCox0_.mjs +0 -10
- package/dist/generate-C7bCox0_.mjs.map +0 -1
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("@
|
|
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/tokens"),i=require("@razorwind/core/utils"),a=require("@stryke/fs/exists"),o=require("@stryke/fs/read-file"),s=require("@stryke/path/join"),c=require("@stryke/type-checks/is-empty-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,i.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,i.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,i.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,i.isObject)(n)?n:void 0}function T(e){let t={};for(let[n,r]of Object.entries(e))if(!(h.has(n)||!(0,i.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;break}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,s.joinPaths)(e,t);if((0,a.existsSync)(n))return n}}async function k(e){let t=O(e);if(t)return E(await(0,o.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,c.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,o.readFile)(r));return!i||(0,c.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}});
|
package/dist/extract.d.cts
CHANGED
|
@@ -75,7 +75,7 @@ declare function loadDesignMdTokens(cwd: string): Promise<DesignTokens | undefin
|
|
|
75
75
|
* });
|
|
76
76
|
* ```
|
|
77
77
|
*/
|
|
78
|
-
declare const _default: any;
|
|
78
|
+
declare const _default: (options: any) => import("@razorwind/core/plugin").Plugin;
|
|
79
79
|
//#endregion
|
|
80
80
|
export { DESIGN_MD_FILE_PATTERN, DESIGN_MD_PATH_CANDIDATES, _default as default, designMdToTokens, extractDesignMdFrontMatter, isDesignMdFile, loadDesignMdTokens, parseDesignMdTokens, resolveDesignMdPath, extract_d_exports as t };
|
|
81
81
|
//# sourceMappingURL=extract.d.cts.map
|
package/dist/extract.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.d.cts","names":[],"sources":["../src/extract.ts"],"mappings":";;;;;;;;cAkCa,wBAAsB;;cAGtB;;;;;;;;
|
|
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"}
|
package/dist/extract.d.mts
CHANGED
|
@@ -75,7 +75,7 @@ declare function loadDesignMdTokens(cwd: string): Promise<DesignTokens | undefin
|
|
|
75
75
|
* });
|
|
76
76
|
* ```
|
|
77
77
|
*/
|
|
78
|
-
declare const _default: any;
|
|
78
|
+
declare const _default: (options: any) => import("@razorwind/core/plugin").Plugin;
|
|
79
79
|
//#endregion
|
|
80
80
|
export { DESIGN_MD_FILE_PATTERN, DESIGN_MD_PATH_CANDIDATES, _default as default, designMdToTokens, extractDesignMdFrontMatter, isDesignMdFile, loadDesignMdTokens, parseDesignMdTokens, resolveDesignMdPath, extract_d_exports as t };
|
|
81
81
|
//# sourceMappingURL=extract.d.mts.map
|
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{
|
|
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/tokens";import{isObject as i}from"@razorwind/core/utils";import{existsSync as a}from"@stryke/fs/exists";import{readFile as o}from"@stryke/fs/read-file";import{joinPaths as s}from"@stryke/path/join";import{isEmptyObject as c}from"@stryke/type-checks/is-empty-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()}:i(r)&&(t[n]={$type:`typography`,$value:b(r)});return t}function C(e){let t={};for(let[n,r]of Object.entries(e)){if(!i(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`&&i(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 i(n)?n:void 0}function T(e){let t={};for(let[n,r]of Object.entries(e))if(!(h.has(n)||!i(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;break}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=s(e,t);if(a(n))return n}}async function k(e){let t=O(e);if(t)return E(await o(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&&!c(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 o(r));return!i||c(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
|
|
@@ -41,7 +41,7 @@ declare function selectPrimaryTheme(flat: FlatToken[]): FlatToken[];
|
|
|
41
41
|
* });
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
|
-
declare const _default: any;
|
|
44
|
+
declare const _default: (options: any) => import("@razorwind/core/plugin").Plugin;
|
|
45
45
|
//#endregion
|
|
46
46
|
export { generate_d_exports as n, selectPrimaryTheme as r, _default as t };
|
|
47
|
-
//# sourceMappingURL=generate-
|
|
47
|
+
//# sourceMappingURL=generate-BPhbyvvs.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-BPhbyvvs.d.cts","names":[],"sources":["../src/types.ts","../src/generate.ts"],"mappings":";;;;;UAkEiB;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;;;;;;;;;iBCMc,mBAAmB,MAAM,cAAc"}
|
|
@@ -41,7 +41,7 @@ declare function selectPrimaryTheme(flat: FlatToken[]): FlatToken[];
|
|
|
41
41
|
* });
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
|
-
declare const _default: any;
|
|
44
|
+
declare const _default: (options: any) => import("@razorwind/core/plugin").Plugin;
|
|
45
45
|
//#endregion
|
|
46
46
|
export { generate_d_exports as n, selectPrimaryTheme as r, _default as t };
|
|
47
|
-
//# sourceMappingURL=generate-
|
|
47
|
+
//# sourceMappingURL=generate-BPhbyvvs.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-BPhbyvvs.d.mts","names":[],"sources":["../src/types.ts","../src/generate.ts"],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{definePlugin as t}from"@razorwind/core/plugin";import{formatTokenValue as n,isObject as r}from"@razorwind/core/utils";function i(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 a(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 o(e){return e.split(/[-_.]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const s=/^(?:light|dark|dim|high-contrast|hc|default|base|theme)(?:[._-].+)?$/i;function c(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function l(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function u(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function d(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 f(e,t,i,a,o){if(!r(e))return;let s=u(e,i);if(c(e)){let r=d(e);o.push({path:t.join(`.`),type:s,value:r,cssValue:n(r,s),description:l(e),theme:a});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||f(r,[...t,n],s,a,o)}function p(e){if(!r(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));return t.length>0&&t.every(e=>s.test(e))?t.map(t=>({id:t,tokens:e[t]})):[{id:`default`,tokens:e}]}function m(e,t){let n=t?new Set(t):void 0,r=[];for(let t of p(e)){let e=t.id==="default"?void 0:t.id;f(t.tokens,[],void 0,e,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}var h=e({default:()=>z,selectPrimaryTheme:()=>T});const g=new Set([`backgroundColor`,`textColor`,`typography`,`rounded`,`padding`,`size`,`height`,`width`]),_={background:`backgroundColor`,backgroundcolor:`backgroundColor`,bg:`backgroundColor`,fill:`backgroundColor`,color:`textColor`,foreground:`textColor`,text:`textColor`,textcolor:`textColor`,font:`typography`,radius:`rounded`,borderradius:`rounded`,corner:`rounded`},v=[`color`,`colors`,`palette`],y=[`typography`,`type`,`text`,`font`,`fonts`],b=/(?:^|\.)(?:radius|radii|rounded|corner)(?:\.|$)/i,x=/(?:^|\.)(?:spacing|space|gap)(?:\.|$)/i,S=/^components?$/i,C=/^\{([^}]+)\}$/,w=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`];function T(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 E(e){if(typeof e==`string`)return C.exec(e.trim())?.[1]}function D(e,t){let n=e;for(let e=0;e<8;e++){let e=E(n.value);if(!e)return n;let r=t.get(e);if(!r)return n;n=r}return n}function O(e){return e.split(/[-_.\s]+/).filter(Boolean).map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}function k(e){let t=O(e);return g.has(t)?t:_[t.toLowerCase()]}function A(e,t){let i={};if(!r(e))return i;for(let r of w){let a=e[r];if(a==null)continue;let o=E(a),s=o?t.get(o):void 0,c=s?D(s,t).cssValue:void 0;if(typeof a==`number`){i[r]=a;continue}i[r]=c??n(a)}return i}function j(e){let t=T(m(e.tokens)),n=new Map(t.map(e=>[e.path,e])),r={colors:{},colorDescriptions:{},typography:{},rounded:{},spacing:{},components:{}},a=new Map,o=[];for(let e of t){let t=e.path.split(`.`);if(t[0]&&S.test(t[0])){o.push(e);continue}if(e.type===`color`){let t=i(e.path,v),o=D(e,n);r.colors[t]=o.cssValue,e.description&&(r.colorDescriptions[t]=e.description),a.set(e.path,`colors.${t}`);continue}if(e.type===`typography`){let t=i(e.path,y);r.typography[t]=A(e.value,n),a.set(e.path,`typography.${t}`);continue}if(e.type===`fontFamily`){let t=i(e.path,y);r.typography[t]??={},r.typography[t].fontFamily=e.cssValue,a.set(e.path,`typography.${t}`);continue}let s=e.type===`dimension`||e.type===`number`||typeof e.value==`number`;if(s&&b.test(e.path)){let i=t.at(-1);r.rounded[i]=D(e,n).cssValue,a.set(e.path,`rounded.${i}`);continue}if(s&&x.test(e.path)){let i=t.at(-1);r.spacing[i]=D(e,n).cssValue,a.set(e.path,`spacing.${i}`)}}for(let e of o){let t=e.path.split(`.`).slice(1);if(t.length<2)continue;let i=k(t.at(-1));if(!i)continue;let o=t.slice(0,-1).join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase(),s=E(e.value),c=s?a.get(s):void 0,l=c?`{${c}}`:D(e,n).cssValue;r.components[o]??={},r.components[o][i]=l}return r}function M(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}: ${a(r)}`);continue}n.push(` ${e}: ${a(t)}`)}}}function N(e){let t=[`---`];return e.version&&t.push(`version: ${a(e.version)}`),t.push(`name: ${a(e.name)}`),e.description&&t.push(`description: ${a(e.description)}`),M(`colors`,e.colors,t),M(`typography`,e.typography,t),M(`rounded`,e.rounded,t),M(`spacing`,e.spacing,t),M(`components`,e.components,t),t.push(`---`),`${t.join(`
|
|
2
|
+
`)}\n`}function P(e,...t){return`## ${e}\n\n${t.filter(Boolean).join(`
|
|
3
|
+
`)}\n`}function F(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 I(e,t={}){let n=[P(`Overview`,t.overview??F(e))],r=Object.entries(e.colors);r.length>0&&n.push(P(`Colors`,r.map(([t,n])=>{let r=e.colorDescriptions[t];return`- **${o(t)} (${n}):**${r?` ${r}`:``}`}).join(`
|
|
4
|
+
`)));let i=Object.entries(e.typography);i.length>0&&n.push(P(`Typography`,i.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`, `)}`).join(`
|
|
5
|
+
`)));let a=Object.entries(e.spacing);a.length>0&&n.push(P(`Layout`,`Spacing scale:`,``,a.map(([e,t])=>`- **${e}:** ${t}`).join(`
|
|
6
|
+
`)));let s=Object.entries(e.rounded);s.length>0&&n.push(P(`Shapes`,`Corner radius scale:`,``,s.map(([e,t])=>`- **${e}:** ${t}`).join(`
|
|
7
|
+
`)));let c=Object.entries(e.components);return c.length>0&&n.push(P(`Components`,c.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: \`${t}\``).join(`, `)}`).join(`
|
|
8
|
+
`))),n.join(`
|
|
9
|
+
`)}function L(e,t={}){return`${N(e)}\n${I(e,t)}`}function R(e,t={}){let n=j(e);return{[t.outputPath??`DESIGN.md`]:{path:t.outputPath??`DESIGN.md`,language:`markdown`,chunks:[{content:L(n,t),meta:{name:`razorwind-design-md`}}]}}}var z=t((e={})=>({name:`design-md:generate`,generate:async t=>R(t,e)}));export{h as n,T as r,z as t};
|
|
10
|
+
//# sourceMappingURL=generate-DFy3tlPT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-DFy3tlPT.mjs","names":[],"sources":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("@razorwind/core/plugin"),n=require("@razorwind/core/utils");function r(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 i(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 a(e){return e.split(/[-_.]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}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){if(!(0,n.isObject)(e))return;let o=l(e,r);if(s(e)){let r=u(e);a.push({path:t.join(`.`),type:o,value:r,cssValue:(0,n.formatTokenValue)(r,o),description:c(e),theme:i});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||d(r,[...t,n],o,i,a)}function f(e){if(!(0,n.isObject)(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));return t.length>0&&t.every(e=>o.test(e))?t.map(t=>({id:t,tokens:e[t]})):[{id:`default`,tokens:e}]}function p(e,t){let n=t?new Set(t):void 0,r=[];for(let t of f(e)){let e=t.id==="default"?void 0:t.id;d(t.tokens,[],void 0,e,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}var m=e.t({default:()=>R,selectPrimaryTheme:()=>w});const h=new Set([`backgroundColor`,`textColor`,`typography`,`rounded`,`padding`,`size`,`height`,`width`]),g={background:`backgroundColor`,backgroundcolor:`backgroundColor`,bg:`backgroundColor`,fill:`backgroundColor`,color:`textColor`,foreground:`textColor`,text:`textColor`,textcolor:`textColor`,font:`typography`,radius:`rounded`,borderradius:`rounded`,corner:`rounded`},_=[`color`,`colors`,`palette`],v=[`typography`,`type`,`text`,`font`,`fonts`],y=/(?:^|\.)(?:radius|radii|rounded|corner)(?:\.|$)/i,b=/(?:^|\.)(?:spacing|space|gap)(?:\.|$)/i,x=/^components?$/i,S=/^\{([^}]+)\}$/,C=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`];function w(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 T(e){if(typeof e==`string`)return S.exec(e.trim())?.[1]}function E(e,t){let n=e;for(let e=0;e<8;e++){let e=T(n.value);if(!e)return n;let r=t.get(e);if(!r)return n;n=r}return n}function D(e){return e.split(/[-_.\s]+/).filter(Boolean).map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}function O(e){let t=D(e);return h.has(t)?t:g[t.toLowerCase()]}function k(e,t){let r={};if(!(0,n.isObject)(e))return r;for(let i of C){let a=e[i];if(a==null)continue;let o=T(a),s=o?t.get(o):void 0,c=s?E(s,t).cssValue:void 0;if(typeof a==`number`){r[i]=a;continue}r[i]=c??(0,n.formatTokenValue)(a)}return r}function A(e){let t=w(p(e.tokens)),n=new Map(t.map(e=>[e.path,e])),i={colors:{},colorDescriptions:{},typography:{},rounded:{},spacing:{},components:{}},a=new Map,o=[];for(let e of t){let t=e.path.split(`.`);if(t[0]&&x.test(t[0])){o.push(e);continue}if(e.type===`color`){let t=r(e.path,_),o=E(e,n);i.colors[t]=o.cssValue,e.description&&(i.colorDescriptions[t]=e.description),a.set(e.path,`colors.${t}`);continue}if(e.type===`typography`){let t=r(e.path,v);i.typography[t]=k(e.value,n),a.set(e.path,`typography.${t}`);continue}if(e.type===`fontFamily`){let t=r(e.path,v);i.typography[t]??={},i.typography[t].fontFamily=e.cssValue,a.set(e.path,`typography.${t}`);continue}let s=e.type===`dimension`||e.type===`number`||typeof e.value==`number`;if(s&&y.test(e.path)){let r=t.at(-1);i.rounded[r]=E(e,n).cssValue,a.set(e.path,`rounded.${r}`);continue}if(s&&b.test(e.path)){let r=t.at(-1);i.spacing[r]=E(e,n).cssValue,a.set(e.path,`spacing.${r}`)}}for(let e of o){let t=e.path.split(`.`).slice(1);if(t.length<2)continue;let r=O(t.at(-1));if(!r)continue;let o=t.slice(0,-1).join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase(),s=T(e.value),c=s?a.get(s):void 0,l=c?`{${c}}`:E(e,n).cssValue;i.components[o]??={},i.components[o][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}: ${i(r)}`);continue}n.push(` ${e}: ${i(t)}`)}}}function M(e){let t=[`---`];return e.version&&t.push(`version: ${i(e.version)}`),t.push(`name: ${i(e.name)}`),e.description&&t.push(`description: ${i(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(`
|
|
2
|
+
`)}\n`}function N(e,...t){return`## ${e}\n\n${t.filter(Boolean).join(`
|
|
3
|
+
`)}\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`- **${a(t)} (${n}):**${r?` ${r}`:``}`}).join(`
|
|
4
|
+
`)));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(`
|
|
5
|
+
`)));let o=Object.entries(e.spacing);o.length>0&&n.push(N(`Layout`,`Spacing scale:`,``,o.map(([e,t])=>`- **${e}:** ${t}`).join(`
|
|
6
|
+
`)));let s=Object.entries(e.rounded);s.length>0&&n.push(N(`Shapes`,`Corner radius scale:`,``,s.map(([e,t])=>`- **${e}:** ${t}`).join(`
|
|
7
|
+
`)));let c=Object.entries(e.components);return c.length>0&&n.push(N(`Components`,c.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: \`${t}\``).join(`, `)}`).join(`
|
|
8
|
+
`))),n.join(`
|
|
9
|
+
`)}function I(e,t={}){return`${M(e)}\n${F(e,t)}`}function L(e,t={}){let n=A(e);return{[t.outputPath??`DESIGN.md`]:{path:t.outputPath??`DESIGN.md`,language:`markdown`,chunks:[{content:I(n,t),meta:{name:`razorwind-design-md`}}]}}}var R=(0,t.definePlugin)((e={})=>({name:`design-md:generate`,generate:async t=>L(t,e)}));Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"t",{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-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./generate-DQw2tVYc.cjs");exports.default=e.t,exports.selectPrimaryTheme=e.r;
|
package/dist/generate.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as selectPrimaryTheme, t as _default } from "./generate-
|
|
1
|
+
import { r as selectPrimaryTheme, t as _default } from "./generate-BPhbyvvs.cjs";
|
|
2
2
|
export { _default as default, selectPrimaryTheme };
|
package/dist/generate.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as selectPrimaryTheme, t as _default } from "./generate-
|
|
1
|
+
import { r as selectPrimaryTheme, t as _default } from "./generate-BPhbyvvs.mjs";
|
|
2
2
|
export { _default as default, selectPrimaryTheme };
|
package/dist/generate.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,t}from"./generate-
|
|
1
|
+
import{r as e,t}from"./generate-DFy3tlPT.mjs";export{t as default,e 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-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./extract.cjs"),t=require("./generate-DQw2tVYc.cjs");Object.defineProperty(exports,"extract",{enumerable:!0,get:function(){return e.t}}),Object.defineProperty(exports,"generate",{enumerable:!0,get:function(){return t.n}});
|
package/dist/index.d.cts
CHANGED
package/dist/index.d.mts
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./extract.mjs";import{n as t}from"./generate-
|
|
1
|
+
import{t as e}from"./extract.mjs";import{n as t}from"./generate-DFy3tlPT.mjs";export{e as extract,t as generate};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@razorwind/design-md",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
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": {
|
|
@@ -78,9 +78,9 @@
|
|
|
78
78
|
"types": "./dist/index.d.cts",
|
|
79
79
|
"typings": "dist/index.d.mts",
|
|
80
80
|
"dependencies": {
|
|
81
|
-
"@power-plant/core": "^0.0.
|
|
81
|
+
"@power-plant/core": "^0.0.40",
|
|
82
82
|
"@power-plant/dtcg-schema": "^0.0.1",
|
|
83
|
-
"@razorwind/core": "^0.0.
|
|
83
|
+
"@razorwind/core": "^0.0.10",
|
|
84
84
|
"@stryke/fs": "^0.33.99",
|
|
85
85
|
"@stryke/path": "^0.29.25",
|
|
86
86
|
"@stryke/type-checks": "^0.6.31",
|
|
@@ -88,10 +88,10 @@
|
|
|
88
88
|
"yaml": "^2.9.0"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
|
-
"@powerlines/plugin-tsdown": "^0.1.
|
|
91
|
+
"@powerlines/plugin-tsdown": "^0.1.561",
|
|
92
92
|
"@types/node": "^25.9.5",
|
|
93
93
|
"typescript": "^6.0.3"
|
|
94
94
|
},
|
|
95
95
|
"publishConfig": { "access": "public" },
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "35f5d31c337fdedeb003c0d9eca72949d4305437"
|
|
97
97
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-BIInC43l.cjs");let t=require("@razorwind/core/plugin"),n=require("@razorwind/core/utils");function r(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 i(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 a(e){return e.split(/[-_.]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const o=/^(?:light|dark|dim|high-contrast|hc|default|base|theme)(?:[._-].+)?$/i;function s(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function c(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function l(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function u(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function d(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 f(e,t,r,i,a){if(!s(e))return;let o=u(e,r);if(c(e)){let r=d(e);a.push({path:t.join(`.`),type:o,value:r,cssValue:(0,n.formatTokenValue)(r,o),description:l(e),theme:i});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||f(r,[...t,n],o,i,a)}function p(e){if(!s(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));return t.length>0&&t.every(e=>o.test(e))?t.map(t=>({id:t,tokens:e[t]})):[{id:`default`,tokens:e}]}function m(e,t){let n=t?new Set(t):void 0,r=[];for(let t of p(e)){let e=t.id==="default"?void 0:t.id;f(t.tokens,[],void 0,e,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}var h=e.t({default:()=>B,selectPrimaryTheme:()=>E});const g=new Set([`backgroundColor`,`textColor`,`typography`,`rounded`,`padding`,`size`,`height`,`width`]),_={background:`backgroundColor`,backgroundcolor:`backgroundColor`,bg:`backgroundColor`,fill:`backgroundColor`,color:`textColor`,foreground:`textColor`,text:`textColor`,textcolor:`textColor`,font:`typography`,radius:`rounded`,borderradius:`rounded`,corner:`rounded`},v=[`color`,`colors`,`palette`],y=[`typography`,`type`,`text`,`font`,`fonts`],b=/(?:^|\.)(?:radius|radii|rounded|corner)(?:\.|$)/i,x=/(?:^|\.)(?:spacing|space|gap)(?:\.|$)/i,S=/^components?$/i,C=/^\{([^}]+)\}$/,w=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`];function T(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function E(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 D(e){if(typeof e==`string`)return C.exec(e.trim())?.[1]}function O(e,t){let n=e;for(let e=0;e<8;e++){let e=D(n.value);if(!e)return n;let r=t.get(e);if(!r)return n;n=r}return n}function k(e){return e.split(/[-_.\s]+/).filter(Boolean).map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}function A(e){let t=k(e);return g.has(t)?t:_[t.toLowerCase()]}function j(e,t){let r={};if(!T(e))return r;for(let i of w){let a=e[i];if(a==null)continue;let o=D(a),s=o?t.get(o):void 0,c=s?O(s,t).cssValue:void 0;if(typeof a==`number`){r[i]=a;continue}r[i]=c??(0,n.formatTokenValue)(a)}return r}function M(e){let t=E(m(e.tokens)),n=new Map(t.map(e=>[e.path,e])),i={colors:{},colorDescriptions:{},typography:{},rounded:{},spacing:{},components:{}},a=new Map,o=[];for(let e of t){let t=e.path.split(`.`);if(t[0]&&S.test(t[0])){o.push(e);continue}if(e.type===`color`){let t=r(e.path,v),o=O(e,n);i.colors[t]=o.cssValue,e.description&&(i.colorDescriptions[t]=e.description),a.set(e.path,`colors.${t}`);continue}if(e.type===`typography`){let t=r(e.path,y);i.typography[t]=j(e.value,n),a.set(e.path,`typography.${t}`);continue}if(e.type===`fontFamily`){let t=r(e.path,y);i.typography[t]??={},i.typography[t].fontFamily=e.cssValue,a.set(e.path,`typography.${t}`);continue}let s=e.type===`dimension`||e.type===`number`||typeof e.value==`number`;if(s&&b.test(e.path)){let r=t.at(-1);i.rounded[r]=O(e,n).cssValue,a.set(e.path,`rounded.${r}`);continue}if(s&&x.test(e.path)){let r=t.at(-1);i.spacing[r]=O(e,n).cssValue,a.set(e.path,`spacing.${r}`)}}for(let e of o){let t=e.path.split(`.`).slice(1);if(t.length<2)continue;let r=A(t.at(-1));if(!r)continue;let o=t.slice(0,-1).join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase(),s=D(e.value),c=s?a.get(s):void 0,l=c?`{${c}}`:O(e,n).cssValue;i.components[o]??={},i.components[o][r]=l}return i}function N(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}: ${i(r)}`);continue}n.push(` ${e}: ${i(t)}`)}}}function P(e){let t=[`---`];return e.version&&t.push(`version: ${i(e.version)}`),t.push(`name: ${i(e.name)}`),e.description&&t.push(`description: ${i(e.description)}`),N(`colors`,e.colors,t),N(`typography`,e.typography,t),N(`rounded`,e.rounded,t),N(`spacing`,e.spacing,t),N(`components`,e.components,t),t.push(`---`),`${t.join(`
|
|
2
|
-
`)}\n`}function F(e,...t){return`## ${e}\n\n${t.filter(Boolean).join(`
|
|
3
|
-
`)}\n`}function I(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 L(e,t={}){let n=[F(`Overview`,t.overview??I(e))],r=Object.entries(e.colors);r.length>0&&n.push(F(`Colors`,r.map(([t,n])=>{let r=e.colorDescriptions[t];return`- **${a(t)} (${n}):**${r?` ${r}`:``}`}).join(`
|
|
4
|
-
`)));let i=Object.entries(e.typography);i.length>0&&n.push(F(`Typography`,i.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`, `)}`).join(`
|
|
5
|
-
`)));let o=Object.entries(e.spacing);o.length>0&&n.push(F(`Layout`,`Spacing scale:`,``,o.map(([e,t])=>`- **${e}:** ${t}`).join(`
|
|
6
|
-
`)));let s=Object.entries(e.rounded);s.length>0&&n.push(F(`Shapes`,`Corner radius scale:`,``,s.map(([e,t])=>`- **${e}:** ${t}`).join(`
|
|
7
|
-
`)));let c=Object.entries(e.components);return c.length>0&&n.push(F(`Components`,c.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: \`${t}\``).join(`, `)}`).join(`
|
|
8
|
-
`))),n.join(`
|
|
9
|
-
`)}function R(e,t={}){return`${P(e)}\n${L(e,t)}`}function z(e,t={}){let n=M(e);return{[t.outputPath??`DESIGN.md`]:{path:t.outputPath??`DESIGN.md`,language:`markdown`,chunks:[{content:R(n,t),meta:{name:`razorwind-design-md`}}]}}}var B=(0,t.definePlugin)((e={})=>({name:`design-md:generate`,generate:async t=>z(t,e)}));Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return B}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-BvP-cKvD.d.cts","names":[],"sources":["../src/types.ts","../src/generate.ts"],"mappings":";;;;;UAkEiB;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA;;;;;;;;;;iBCSc,mBAAmB,MAAM,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-BvP-cKvD.d.mts","names":[],"sources":["../src/types.ts","../src/generate.ts"],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{definePlugin as t}from"@razorwind/core/plugin";import{formatTokenValue as n}from"@razorwind/core/utils";function r(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 i(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 a(e){return e.split(/[-_.]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const o=/^(?:light|dark|dim|high-contrast|hc|default|base|theme)(?:[._-].+)?$/i;function s(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function c(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function l(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function u(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function d(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 f(e,t,r,i,a){if(!s(e))return;let o=u(e,r);if(c(e)){let r=d(e);a.push({path:t.join(`.`),type:o,value:r,cssValue:n(r,o),description:l(e),theme:i});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||f(r,[...t,n],o,i,a)}function p(e){if(!s(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));return t.length>0&&t.every(e=>o.test(e))?t.map(t=>({id:t,tokens:e[t]})):[{id:`default`,tokens:e}]}function m(e,t){let n=t?new Set(t):void 0,r=[];for(let t of p(e)){let e=t.id==="default"?void 0:t.id;f(t.tokens,[],void 0,e,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}var h=e({default:()=>B,selectPrimaryTheme:()=>E});const g=new Set([`backgroundColor`,`textColor`,`typography`,`rounded`,`padding`,`size`,`height`,`width`]),_={background:`backgroundColor`,backgroundcolor:`backgroundColor`,bg:`backgroundColor`,fill:`backgroundColor`,color:`textColor`,foreground:`textColor`,text:`textColor`,textcolor:`textColor`,font:`typography`,radius:`rounded`,borderradius:`rounded`,corner:`rounded`},v=[`color`,`colors`,`palette`],y=[`typography`,`type`,`text`,`font`,`fonts`],b=/(?:^|\.)(?:radius|radii|rounded|corner)(?:\.|$)/i,x=/(?:^|\.)(?:spacing|space|gap)(?:\.|$)/i,S=/^components?$/i,C=/^\{([^}]+)\}$/,w=[`fontFamily`,`fontSize`,`fontWeight`,`lineHeight`,`letterSpacing`];function T(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function E(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 D(e){if(typeof e==`string`)return C.exec(e.trim())?.[1]}function O(e,t){let n=e;for(let e=0;e<8;e++){let e=D(n.value);if(!e)return n;let r=t.get(e);if(!r)return n;n=r}return n}function k(e){return e.split(/[-_.\s]+/).filter(Boolean).map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``)}function A(e){let t=k(e);return g.has(t)?t:_[t.toLowerCase()]}function j(e,t){let r={};if(!T(e))return r;for(let i of w){let a=e[i];if(a==null)continue;let o=D(a),s=o?t.get(o):void 0,c=s?O(s,t).cssValue:void 0;if(typeof a==`number`){r[i]=a;continue}r[i]=c??n(a)}return r}function M(e){let t=E(m(e.tokens)),n=new Map(t.map(e=>[e.path,e])),i={colors:{},colorDescriptions:{},typography:{},rounded:{},spacing:{},components:{}},a=new Map,o=[];for(let e of t){let t=e.path.split(`.`);if(t[0]&&S.test(t[0])){o.push(e);continue}if(e.type===`color`){let t=r(e.path,v),o=O(e,n);i.colors[t]=o.cssValue,e.description&&(i.colorDescriptions[t]=e.description),a.set(e.path,`colors.${t}`);continue}if(e.type===`typography`){let t=r(e.path,y);i.typography[t]=j(e.value,n),a.set(e.path,`typography.${t}`);continue}if(e.type===`fontFamily`){let t=r(e.path,y);i.typography[t]??={},i.typography[t].fontFamily=e.cssValue,a.set(e.path,`typography.${t}`);continue}let s=e.type===`dimension`||e.type===`number`||typeof e.value==`number`;if(s&&b.test(e.path)){let r=t.at(-1);i.rounded[r]=O(e,n).cssValue,a.set(e.path,`rounded.${r}`);continue}if(s&&x.test(e.path)){let r=t.at(-1);i.spacing[r]=O(e,n).cssValue,a.set(e.path,`spacing.${r}`)}}for(let e of o){let t=e.path.split(`.`).slice(1);if(t.length<2)continue;let r=A(t.at(-1));if(!r)continue;let o=t.slice(0,-1).join(`-`).replaceAll(/[^\w-]+/g,`-`).toLowerCase(),s=D(e.value),c=s?a.get(s):void 0,l=c?`{${c}}`:O(e,n).cssValue;i.components[o]??={},i.components[o][r]=l}return i}function N(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}: ${i(r)}`);continue}n.push(` ${e}: ${i(t)}`)}}}function P(e){let t=[`---`];return e.version&&t.push(`version: ${i(e.version)}`),t.push(`name: ${i(e.name)}`),e.description&&t.push(`description: ${i(e.description)}`),N(`colors`,e.colors,t),N(`typography`,e.typography,t),N(`rounded`,e.rounded,t),N(`spacing`,e.spacing,t),N(`components`,e.components,t),t.push(`---`),`${t.join(`
|
|
2
|
-
`)}\n`}function F(e,...t){return`## ${e}\n\n${t.filter(Boolean).join(`
|
|
3
|
-
`)}\n`}function I(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 L(e,t={}){let n=[F(`Overview`,t.overview??I(e))],r=Object.entries(e.colors);r.length>0&&n.push(F(`Colors`,r.map(([t,n])=>{let r=e.colorDescriptions[t];return`- **${a(t)} (${n}):**${r?` ${r}`:``}`}).join(`
|
|
4
|
-
`)));let i=Object.entries(e.typography);i.length>0&&n.push(F(`Typography`,i.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: ${t}`).join(`, `)}`).join(`
|
|
5
|
-
`)));let o=Object.entries(e.spacing);o.length>0&&n.push(F(`Layout`,`Spacing scale:`,``,o.map(([e,t])=>`- **${e}:** ${t}`).join(`
|
|
6
|
-
`)));let s=Object.entries(e.rounded);s.length>0&&n.push(F(`Shapes`,`Corner radius scale:`,``,s.map(([e,t])=>`- **${e}:** ${t}`).join(`
|
|
7
|
-
`)));let c=Object.entries(e.components);return c.length>0&&n.push(F(`Components`,c.map(([e,t])=>`- **${e}:** ${Object.entries(t).map(([e,t])=>`${e}: \`${t}\``).join(`, `)}`).join(`
|
|
8
|
-
`))),n.join(`
|
|
9
|
-
`)}function R(e,t={}){return`${P(e)}\n${L(e,t)}`}function z(e,t={}){let n=M(e);return{[t.outputPath??`DESIGN.md`]:{path:t.outputPath??`DESIGN.md`,language:`markdown`,chunks:[{content:R(n,t),meta:{name:`razorwind-design-md`}}]}}}var B=t((e={})=>({name:`design-md:generate`,generate:async t=>z(t,e)}));export{h as n,E as r,B as t};
|
|
10
|
-
//# sourceMappingURL=generate-C7bCox0_.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-C7bCox0_.mjs","names":[],"sources":[],"mappings":""}
|