@razorwind/tamagui 0.0.56 → 0.0.57

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/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require("@razorwind/core/plugin"),t=require("@razorwind/core/utils"),n=require("node:path"),r=require("@razorwind/core/lib/fonts");function i(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`).replaceAll(`
2
- `,`\\n`).replaceAll(`\r`,`\\r`)}function a(e){return typeof e==`string`?`"${i(e)}"`:typeof e==`number`||typeof e==`boolean`?String(e):e==null?`undefined`:JSON.stringify(e)}function o(e,n){if(typeof e==`number`)return e;if(typeof e==`boolean`)return Number(e);if((0,t.isObject)(e)&&typeof e.value==`number`&&typeof e.unit==`string`){let t=e.unit.toLowerCase();return t===`px`||t===``?e.value:t===`rem`?e.value*16:`${e.value}${e.unit}`}if(typeof e==`string`){let t=/^(-?\d+(?:\.\d+)?)px$/i.exec(e.trim());if(t)return Number(t[1]);let n=/^(-?\d+(?:\.\d+)?)rem$/i.exec(e.trim());if(n)return Number(n[1])*16;let r=Number(e);return!Number.isNaN(r)&&e.trim()!==``?r:e}return(0,t.formatTokenValue)(e,n)}const s=/^(?:font-size|fontSize)(?:\.|$)/i,c=/^(?:font-weight|fontWeight)(?:\.|$)/i,l=/^shadow(?:\.|$)/i,u=/^inset-shadow(?:\.|$)/i,d=/^drop-shadow(?:\.|$)/i,f=/^text-shadow(?:\.|$)/i,p=/^(?:blur|blur-?radius)(?:\.|$)/i,m=new Set([`color`,`shadow`,`insetShadow`,`dropShadow`,`textShadow`]),h=[{prefix:/^(?:color|colours?|palette)(?:\.|$)/i,category:`color`},{prefix:s,category:`fontSize`},{prefix:c,category:`fontWeight`},{prefix:d,category:`dropShadow`},{prefix:u,category:`insetShadow`},{prefix:f,category:`textShadow`},{prefix:l,category:`shadow`},{prefix:p,category:`blur`},{prefix:/^(?:space|spacing|gap)(?:\.|$)/i,category:`space`},{prefix:/^inset(?:\.|$)/i,category:`space`},{prefix:/^(?:size|sizing)(?:\.|$)/i,category:`size`},{prefix:/^(?:radius|rounded|radii)(?:\.|$)/i,category:`radius`},{prefix:/^(?:z-?index|zindex|elevation)(?:\.|$)/i,category:`zIndex`}];function g(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function _(e){return e===!0||e===`true`||e===1}function v(e){return _(e.palette)||_(e.$palette)?!0:T(e)===`palette`}function ee(e,t){return(e===`palette`||e===`$palette`)&&(typeof t==`boolean`||typeof t==`number`||typeof t==`string`)}function y(e){return e===!0||e===`true`||e===1}function b(e){return y(e.primitive)||y(e.$primitive)?!0:T(e)===`primitive`}function x(e,t){return(e===`primitive`||e===`$primitive`)&&(typeof t==`boolean`||typeof t==`number`||typeof t==`string`)}function S(e,t){return(e===`theme`||e===`$theme`)&&typeof t==`string`}function C(e){if(typeof e.theme==`string`&&e.theme.length>0)return e.theme;if(typeof e.$theme==`string`&&e.$theme.length>0)return e.$theme}function w(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function T(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function E(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 te(e,t){for(let{prefix:t,category:n}of h)if(t.test(e))return n;if(t===`color`||t===`palette`)return`color`;if(t===`shadow`)return u.test(e)?`insetShadow`:d.test(e)?`dropShadow`:f.test(e)?`textShadow`:`shadow`;if(t===`dimension`){if(s.test(e))return`fontSize`;if(p.test(e))return`blur`;if(/(?:^|\.)(?:space|spacing|gap)(?:\.|$)/i.test(e)||/(?:^|\.)inset(?:\.|$)/i.test(e))return`space`;if(/radius|rounded/i.test(e))return`radius`;if(/z-?index|elevation/i.test(e))return`zIndex`;if(/(?:^|\.)(?:size|sizing)(?:\.|$)/i.test(e)||/(?:^|\.)(?:width|height)(?:\.|$)/i.test(e))return`size`}if(t===`number`&&/z-?index|elevation/i.test(e))return`zIndex`;if(t===`fontWeight`||c.test(e))return`fontWeight`}function D(e){return e.flatMap(e=>e.split(/[-_\s]+/)).filter(Boolean).map((e,t)=>{if(/^\d/.test(e))return e;let n=e.toLowerCase();return t===0?n:`${n.charAt(0).toUpperCase()}${n.slice(1)}`}).join(``)}function ne(e){let t=e.split(`.`).filter(Boolean),n=t[0];n&&/^(?:color|colours?|palette|primitive|space|spacing|gap|inset|shadow|inset-shadow|drop-shadow|text-shadow|font-size|fontSize|font-weight|fontWeight|size|sizing|radius|rounded|radii|z-?index|zindex|elevation|blur)$/i.test(n)&&t.shift();let r=t.length>0?t:e.split(`.`).slice(-1);return r.length===1&&/^(?:DEFAULT|default)$/i.test(r[0]??``)?`true`:D(r)}function O(e,n,r,i,a,s,c){if(!(0,t.isObject)(e))return;let l=a||b(e)||v(e),u=T(e,r),d=C(e)??s;if(g(e)){let r=E(e),a=n.join(`.`),s=te(a,u)??(l||u===`primitive`||u===`palette`?`color`:void 0),f=(0,t.formatTokenValue)(r,u),p=s&&m.has(s)||u===`color`||u===`palette`||u===`primitive`||u===`shadow`?f:o(r,u);c.push({path:a,type:u===`palette`||u===`primitive`?`color`:u,value:r,cssValue:f,tamaguiValue:p,category:s,tokenKey:s?ne(a):void 0,description:w(e),theme:i,...d?{childTheme:d}:{},...l?{primitive:!0}:{}});return}for(let[t,r]of Object.entries(e))t.startsWith(`$`)&&t!==`$palette`&&t!==`$primitive`||ee(t,r)||x(t,r)||S(t,r)||O(r,[...n,t],u,i,l,d,c)}function k(e,n={}){let r=n.includeTypes?new Set(n.includeTypes):void 0,i=[];for(let n of(0,t.resolveTokenSets)(e)){let e=n.id==="default"?void 0:n.id;O(n.tokens,[],void 0,e,!1,void 0,i)}return r?i.filter(e=>!e.type||r.has(e.type)):i}const re=/^\{([^{}]+)\}$/,ie=/^(?:typography|type|text)$/i,A=/^(?:font|fonts|font-family|fontFamily)$/i,ae=/^(?:font-size|fontSize)$/i,oe=/^(?:font-weight|fontWeight)$/i,se=/^(?:line-height|lineHeight|leading)$/i,ce=/^(?:letter-spacing|letterSpacing|tracking)$/i,le=/^(?:[a-z]{2}(?:-[A-Z]{2})?|cn|zh|jp|ja|kr|ko|ar|he|th|hi|ru|french|mandarin|chinese|japanese|korean|arabic|hebrew)$/i,ue=[`fontFamily`,`font-family`,`family`],de=[`fontSize`,`font-size`,`size`],fe=[`fontWeight`,`font-weight`,`weight`],pe=[`lineHeight`,`line-height`,`leading`],me=[`letterSpacing`,`letter-spacing`,`tracking`],he={1:12,2:14,3:16,4:18,5:20,6:24,7:28,8:32,9:40,10:48};function j(e){if(typeof e==`string`)return re.exec(e.trim())?.[1]?.trim()}function M(e,t){let n=j(e);if(!n)return e;let r=t.get(n),i=new Set([n]);for(let e=0;e<8&&r;e++){let e=j(r.value);if(!e||i.has(e))return r.value;i.add(e),r=t.get(e)}return r?.value??e}function N(e,t){for(let n of t)if(e[n]!==void 0&&e[n]!==null)return e[n]}function ge(e){return(e.split(`,`)[0]?.trim()??e).replaceAll(/^["']|["']$/g,``)}function _e(e){if(typeof e==`string`){let t=e.trim();return t.length===0||j(t)?void 0:t}if(Array.isArray(e)&&e.every(e=>typeof e==`string`)){let t=e.map(e=>e.trim()).filter(Boolean);return t.length>0?t.join(`, `):void 0}}function ve(e){return Number.isInteger(e)?e:Math.round(e*1e3)/1e3}function P(e){if(e==null)return;let t=o(e);if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=/^(-?\d+(?:\.\d+)?)%$/.exec(t.trim());if(e)return Number.parseFloat(e[1])/100}}function ye(e){if(typeof e==`number`&&Number.isFinite(e))return String(e);if(typeof e==`string`){let t=e.trim();if(t.length===0||j(t))return;let n=Number(t);return Number.isNaN(n)?t:String(n)}let t=o(e);if(typeof t==`number`&&Number.isFinite(t))return String(t);if(typeof t==`string`&&t.length>0)return t}function be(e,t){let n=P(e);if(n!=null)return ve(t!=null&&n>0&&n<=4?n*t:n)}function F(e,t){return t.test(e.split(`.`)[0]??``)}function xe(e){return e.split(`.`).filter(Boolean).at(-1)??e}function I(e,t){let n=e.split(`.`).filter(Boolean);return n[0]&&t.test(n[0])&&n.shift(),n}function L(e){let t=e.flatMap(e=>e.split(`-`)).filter(Boolean);return t.length===0?`body`:t.map((e,t)=>t===0?`${e.charAt(0).toLowerCase()}${e.slice(1)}`:`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(``)}function R(e){switch(e.toLowerCase()){case`sans`:case`body`:case`serif`:return`body`;case`monospace`:case`mono`:return`mono`;default:return L([e])}}function Se(e){return e.role?R(e.role):R(e.name)}function Ce(e){let t=I(e,ie);if(t.length===0)return`body`;let n=t.at(-1);return n&&t.length>=2&&le.test(n)&&!n.includes(`_`)?`${t.slice(0,-1).join(`-`)}_${n}`:t.join(`-`)}function we(e){return R(I(e,A)[0]??xe(e))}function Te(e,t){let n=I(e,t);return n.length===0||n.length===1&&/^(?:DEFAULT|default)$/i.test(n[0])?`true`:L(n)}function Ee(e){return e.type===`typography`&&(0,t.isObject)(e.value)}function De(e){return e.category===`fontSize`||e.category===`fontWeight`||Oe(e)||ke(e)||Ae(e)||je(e)?!1:e.type===`fontFamily`||F(e.path,A)}function Oe(e){return e.category===`fontSize`||F(e.path,ae)}function ke(e){return e.category===`fontWeight`||e.type===`fontWeight`||F(e.path,oe)}function Ae(e){return F(e.path,se)}function je(e){return F(e.path,ce)}function Me(e,t){if(!e.has(t))return t;let n=2,r=`${t}${n}`;for(;e.has(r);)n++,r=`${t}${n}`;return r}function Ne(e){let t=new Map;for(let n of Object.values(e)){let e=Se(n);t.has(e)&&(e=Me(t,L([n.name]))),t.set(e,n)}return t}function Pe(e,t,n){if(!e)return;let i=Object.values(e);if(i.length===0)return;if(n){let e=n.split(`.`).filter(Boolean).at(-1);if(e){let t=i.find(t=>t.role===e||t.name.toLowerCase()===e.toLowerCase());if(t)return t}}if(!t)return;let a=ge(t).toLowerCase();return i.find(e=>(0,r.fontFamilyName)(e).toLowerCase()===a||e.title.toLowerCase()===a||e.name.toLowerCase()===a)}function Fe(e){let t=new Map;for(let r of e.files){let e=String(r.weight??400),i=(0,n.basename)(r.path).replace(/\.[^.]+$/,``),a=t.get(e)??{};r.style===`italic`||r.style===`oblique`?a.italic=i:a.normal=i,t.set(e,a)}if(t.size!==0)return`{\n${[...t.entries()].toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0})).map(([e,t])=>{let n=[];return t.normal&&n.push(`normal: ${a(t.normal)}`),t.italic&&n.push(`italic: ${a(t.italic)}`),` ${e}: { ${n.join(`, `)} }`}).join(`,
3
- `)}\n }`}function z(e,t){return{...e,webFamily:(0,r.cssFontFamily)(t),nativeFamily:(0,r.fontFamilyName)(t),face:t.source===`local`?Fe(t):e.face}}function B(e){return{key:e,webFamily:`system-ui, sans-serif`,nativeFamily:`system-ui`,size:{},lineHeight:{},weight:{},letterSpacing:{}}}function Ie(e,t){return{...e,webFamily:t,nativeFamily:ge(t)}}const Le=/^(?:font-size|fontSize|font-weight|fontWeight|line-height|lineHeight|leading|letter-spacing|letterSpacing|tracking)$/i;function V(e,t){let n={true:e},r=j(t);if(!r)return n;let i=Te(r,Le);return i&&i!==`true`&&(n[i]=e),n}function Re(e){return Object.keys(e.size).length>0?e:{...e,size:{...he}}}function ze(e,n,r,i){if(!(0,t.isObject)(n.value))return e;let a=N(n.value,ue),o=j(a),s=_e(M(a,r)),c=Pe(i,s,o),l=e;c?l=z(l,c):s&&(l=Ie(l,s));let u=N(n.value,de),d=P(M(u,r));d!=null&&(l={...l,size:V(d,u)});let f=N(n.value,fe),p=ye(M(f,r));p&&(l={...l,weight:V(p,f)});let m=N(n.value,me),h=P(M(m,r));h!=null&&(l={...l,letterSpacing:V(h,m)});let g=N(n.value,pe),_=be(M(g,r),l.size.true??d);return _!=null&&(l={...l,lineHeight:V(_,g)}),Be(l)}function Be(e){let t=Object.keys(e.size);if(t.length===0)return e;let n=e=>{let n=e.true??Object.values(e)[0];if(n==null)return e;let r={...e};for(let e of t)r[e]??=n;return r};return{...e,lineHeight:Object.keys(e.lineHeight).length>0?n(e.lineHeight):e.lineHeight,weight:Object.keys(e.weight).length>0?n(e.weight):e.weight,letterSpacing:Object.keys(e.letterSpacing).length>0?n(e.letterSpacing):e.letterSpacing}}function Ve(e,t){let n=new Map(e.map(e=>[e.path,e])),r=new Map,i=e=>{r.set(e.key,e)};if(t)for(let[e,n]of Ne(t))i(z(B(e),n));for(let a of e){if(!De(a)||Ee(a))continue;let e=we(a.path),o=_e(M(a.value,n)),s=r.get(e)??B(e),c=Pe(t,o,a.path),l=s;c?l=z(l,c):(o&&s.webFamily===B(e).webFamily||o&&!r.has(e))&&(l=Ie(l,o)),i(l)}for(let a of e){if(!Ee(a))continue;let e=Ce(a.path);i(ze(r.get(e)??B(e),a,n,t))}return[...r.values()].map(Re).toSorted((e,t)=>e.key.localeCompare(t.key))}function He(e){return/^\d+$/.test(e)||/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}function H(e,t=4){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0)),i=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return i.length===0?`{}`:`{\n${i.map(([e,t])=>`${n}${He(e)}: ${a(t)}`).join(`,
4
- `)}\n${r}}`}function Ue(e,t){let n=`${e.split(`-`).filter(Boolean).map((e,t)=>t===0?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(``).replaceAll(/[^\w$]/g,``)||`font${t}`}Font`;return/^[A-Z_$]/i.test(n)?n:`font${t}`}function We(e,t){let n=a(e.webFamily),r=a(e.nativeFamily),i=[n===r?` family: ${n}`:` family: isWeb ? ${n} : ${r}`,` size: ${H(e.size)}`];return Object.keys(e.lineHeight).length>0&&i.push(` lineHeight: ${H(e.lineHeight)}`),Object.keys(e.weight).length>0&&i.push(` weight: ${H(e.weight)}`),Object.keys(e.letterSpacing).length>0&&i.push(` letterSpacing: ${H(e.letterSpacing)}`),e.face&&i.push(` face: ${e.face}`),`const ${t} = createFont({\n${i.join(`,
5
- `)}\n});`}function Ge(e){return`# Installing Tamagui Config
2
+ `,`\\n`).replaceAll(`\r`,`\\r`)}function a(e){return typeof e==`string`?`"${i(e)}"`:typeof e==`number`||typeof e==`boolean`?String(e):e==null?`undefined`:JSON.stringify(e)}function o(e,n){if(typeof e==`number`)return e;if(typeof e==`boolean`)return Number(e);if((0,t.isObject)(e)&&typeof e.value==`number`&&typeof e.unit==`string`){let t=e.unit.toLowerCase();return t===`px`||t===``?e.value:t===`rem`?e.value*16:`${e.value}${e.unit}`}if(typeof e==`string`){let t=/^(-?\d+(?:\.\d+)?)px$/i.exec(e.trim());if(t)return Number(t[1]);let n=/^(-?\d+(?:\.\d+)?)rem$/i.exec(e.trim());if(n)return Number(n[1])*16;let r=Number(e);return!Number.isNaN(r)&&e.trim()!==``?r:e}return(0,t.formatTokenValue)(e,n)}const s=/^(?:font-size|fontSize)(?:\.|$)/i,c=/^(?:font-weight|fontWeight)(?:\.|$)/i,l=/^shadow(?:\.|$)/i,u=/^inset-shadow(?:\.|$)/i,d=/^drop-shadow(?:\.|$)/i,f=/^text-shadow(?:\.|$)/i,p=/^(?:blur|blur-?radius)(?:\.|$)/i,m=new Set([`color`,`shadow`,`insetShadow`,`dropShadow`,`textShadow`]),h=[{prefix:/^(?:color|colours?|palette)(?:\.|$)/i,category:`color`},{prefix:s,category:`fontSize`},{prefix:c,category:`fontWeight`},{prefix:d,category:`dropShadow`},{prefix:u,category:`insetShadow`},{prefix:f,category:`textShadow`},{prefix:l,category:`shadow`},{prefix:p,category:`blur`},{prefix:/^(?:space|spacing|gap)(?:\.|$)/i,category:`space`},{prefix:/^inset(?:\.|$)/i,category:`space`},{prefix:/^(?:size|sizing)(?:\.|$)/i,category:`size`},{prefix:/^(?:radius|rounded|radii)(?:\.|$)/i,category:`radius`},{prefix:/^(?:z-?index|zindex|elevation)(?:\.|$)/i,category:`zIndex`}];function g(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function _(e){return e===!0||e===`true`||e===1}function v(e){return _(e.palette)||_(e.$palette)?!0:T(e)===`palette`}function ee(e,t){return(e===`palette`||e===`$palette`)&&(typeof t==`boolean`||typeof t==`number`||typeof t==`string`)}function y(e){return e===!0||e===`true`||e===1}function b(e){return y(e.primitive)||y(e.$primitive)?!0:T(e)===`primitive`}function x(e,t){return(e===`primitive`||e===`$primitive`)&&(typeof t==`boolean`||typeof t==`number`||typeof t==`string`)}function S(e,t){return(e===`theme`||e===`$theme`)&&typeof t==`string`}function C(e){if(typeof e.theme==`string`&&e.theme.length>0)return e.theme;if(typeof e.$theme==`string`&&e.$theme.length>0)return e.$theme}function w(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function T(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function E(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 te(e,t){for(let{prefix:t,category:n}of h)if(t.test(e))return n;if(t===`color`||t===`palette`)return`color`;if(t===`shadow`)return u.test(e)?`insetShadow`:d.test(e)?`dropShadow`:f.test(e)?`textShadow`:`shadow`;if(t===`dimension`){if(s.test(e))return`fontSize`;if(p.test(e))return`blur`;if(/(?:^|\.)(?:space|spacing|gap)(?:\.|$)/i.test(e)||/(?:^|\.)inset(?:\.|$)/i.test(e))return`space`;if(/radius|rounded/i.test(e))return`radius`;if(/z-?index|elevation/i.test(e))return`zIndex`;if(/(?:^|\.)(?:size|sizing)(?:\.|$)/i.test(e)||/(?:^|\.)(?:width|height)(?:\.|$)/i.test(e))return`size`}if(t===`number`&&/z-?index|elevation/i.test(e))return`zIndex`;if(t===`fontWeight`||c.test(e))return`fontWeight`}function D(e){return e.flatMap(e=>e.split(/[-_\s]+/)).filter(Boolean).map((e,t)=>{if(/^\d/.test(e))return e;let n=e.toLowerCase();return t===0?n:`${n.charAt(0).toUpperCase()}${n.slice(1)}`}).join(``)}function ne(e){let t=e.split(`.`).filter(Boolean),n=t[0];n&&/^(?:color|colours?|palette|primitive|space|spacing|gap|inset|shadow|inset-shadow|drop-shadow|text-shadow|font-size|fontSize|font-weight|fontWeight|size|sizing|radius|rounded|radii|z-?index|zindex|elevation|blur)$/i.test(n)&&t.shift();let r=t.length>0?t:e.split(`.`).slice(-1);return r.length===1&&/^(?:DEFAULT|default)$/i.test(r[0]??``)?`true`:D(r)}function re(e,n,r,i,a,s,c){if(!(0,t.isObject)(e))return;let l=a||b(e)||v(e),u=T(e,r),d=C(e)??s;if(g(e)){let r=E(e),a=n.join(`.`),s=te(a,u)??(l||u===`primitive`||u===`palette`?`color`:void 0),f=(0,t.formatTokenValue)(r,u),p=s&&m.has(s)||u===`color`||u===`palette`||u===`primitive`||u===`shadow`?f:o(r,u);c.push({path:a,type:u===`palette`||u===`primitive`?`color`:u,value:r,cssValue:f,tamaguiValue:p,category:s,tokenKey:s?ne(a):void 0,description:w(e),theme:i,...d?{childTheme:d}:{},...l?{primitive:!0}:{}});return}for(let[t,r]of Object.entries(e))t.startsWith(`$`)&&t!==`$palette`&&t!==`$primitive`||ee(t,r)||x(t,r)||S(t,r)||re(r,[...n,t],u,i,l,d,c)}function O(e,n={}){let r=n.includeTypes?new Set(n.includeTypes):void 0,i=[];for(let n of(0,t.resolveTokenSets)(e)){let e=n.id==="default"?void 0:n.id;re(n.tokens,[],void 0,e,!1,void 0,i)}return r?i.filter(e=>!e.type||r.has(e.type)):i}const ie=/^\{([^{}]+)\}$/,ae=/^(?:typography|type|text)$/i,k=/^(?:font|fonts|font-family|fontFamily)$/i,oe=/^(?:font-size|fontSize)$/i,se=/^(?:font-weight|fontWeight)$/i,ce=/^(?:line-height|lineHeight|leading)$/i,le=/^(?:letter-spacing|letterSpacing|tracking)$/i,ue=/^(?:[a-z]{2}(?:-[A-Z]{2})?|cn|zh|jp|ja|kr|ko|ar|he|th|hi|ru|french|mandarin|chinese|japanese|korean|arabic|hebrew)$/i,de=[`fontFamily`,`font-family`,`family`],fe=[`fontSize`,`font-size`,`size`],pe=[`fontWeight`,`font-weight`,`weight`],me=[`lineHeight`,`line-height`,`leading`],he=[`letterSpacing`,`letter-spacing`,`tracking`],ge={1:12,2:14,3:16,4:18,5:20,6:24,7:28,8:32,9:40,10:48};function A(e){if(typeof e==`string`)return ie.exec(e.trim())?.[1]?.trim()}function j(e,t){let n=A(e);if(!n)return e;let r=t.get(n),i=new Set([n]);for(let e=0;e<8&&r;e++){let e=A(r.value);if(!e||i.has(e))return r.value;i.add(e),r=t.get(e)}return r?.value??e}function M(e,t){for(let n of t)if(e[n]!==void 0&&e[n]!==null)return e[n]}function _e(e){return(e.split(`,`)[0]?.trim()??e).replaceAll(/^["']|["']$/g,``)}function ve(e){if(typeof e==`string`){let t=e.trim();return t.length===0||A(t)?void 0:t}if(Array.isArray(e)&&e.every(e=>typeof e==`string`)){let t=e.map(e=>e.trim()).filter(Boolean);return t.length>0?t.join(`, `):void 0}}function ye(e){return Number.isInteger(e)?e:Math.round(e*1e3)/1e3}function N(e){if(e==null)return;let t=o(e);if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=/^(-?\d+(?:\.\d+)?)%$/.exec(t.trim());if(e)return Number.parseFloat(e[1])/100}}function be(e){if(typeof e==`number`&&Number.isFinite(e))return String(e);if(typeof e==`string`){let t=e.trim();if(t.length===0||A(t))return;let n=Number(t);return Number.isNaN(n)?t:String(n)}let t=o(e);if(typeof t==`number`&&Number.isFinite(t))return String(t);if(typeof t==`string`&&t.length>0)return t}function xe(e,t){let n=N(e);if(n!=null)return ye(t!=null&&n>0&&n<=4?n*t:n)}function P(e,t){return t.test(e.split(`.`)[0]??``)}function Se(e){return e.split(`.`).filter(Boolean).at(-1)??e}function F(e,t){let n=e.split(`.`).filter(Boolean);return n[0]&&t.test(n[0])&&n.shift(),n}function I(e){let t=e.flatMap(e=>e.split(`-`)).filter(Boolean);return t.length===0?`body`:t.map((e,t)=>t===0?`${e.charAt(0).toLowerCase()}${e.slice(1)}`:`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(``)}function L(e){switch(e.toLowerCase()){case`sans`:case`body`:case`serif`:return`body`;case`monospace`:case`mono`:return`mono`;default:return I([e])}}function Ce(e){return e.role?L(e.role):L(e.name)}function we(e){let t=F(e,ae);if(t.length===0)return`body`;let n=t.at(-1);return n&&t.length>=2&&ue.test(n)&&!n.includes(`_`)?`${t.slice(0,-1).join(`-`)}_${n}`:t.join(`-`)}function Te(e){return L(F(e,k)[0]??Se(e))}function Ee(e,t){let n=F(e,t);return n.length===0||n.length===1&&/^(?:DEFAULT|default)$/i.test(n[0])?`true`:I(n)}function De(e){return e.type===`typography`&&(0,t.isObject)(e.value)}function Oe(e){return e.category===`fontSize`||e.category===`fontWeight`||ke(e)||Ae(e)||je(e)||Me(e)?!1:e.type===`fontFamily`||P(e.path,k)}function ke(e){return e.category===`fontSize`||P(e.path,oe)}function Ae(e){return e.category===`fontWeight`||e.type===`fontWeight`||P(e.path,se)}function je(e){return P(e.path,ce)}function Me(e){return P(e.path,le)}function Ne(e,t){if(!e.has(t))return t;let n=2,r=`${t}${n}`;for(;e.has(r);)n++,r=`${t}${n}`;return r}function Pe(e){let t=new Map;for(let n of Object.values(e)){let e=Ce(n);t.has(e)&&(e=Ne(t,I([n.name]))),t.set(e,n)}return t}function Fe(e,t,n){if(!e)return;let i=Object.values(e);if(i.length===0)return;if(n){let e=n.split(`.`).filter(Boolean).at(-1);if(e){let t=i.find(t=>t.role===e||t.name.toLowerCase()===e.toLowerCase());if(t)return t}}if(!t)return;let a=_e(t).toLowerCase();return i.find(e=>(0,r.fontFamilyName)(e).toLowerCase()===a||e.title.toLowerCase()===a||e.name.toLowerCase()===a)}function Ie(e){let t=new Map;for(let r of e.files){let e=String(r.weight??400),i=(0,n.basename)(r.path).replace(/\.[^.]+$/,``),a=t.get(e)??{};r.style===`italic`||r.style===`oblique`?a.italic=i:a.normal=i,t.set(e,a)}if(t.size!==0)return`{\n${[...t.entries()].toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0})).map(([e,t])=>{let n=[];return t.normal&&n.push(`normal: ${a(t.normal)}`),t.italic&&n.push(`italic: ${a(t.italic)}`),` ${e}: { ${n.join(`, `)} }`}).join(`,
3
+ `)}\n }`}function R(e,t){return{...e,webFamily:(0,r.cssFontFamily)(t),nativeFamily:(0,r.fontFamilyName)(t),face:t.source===`local`?Ie(t):e.face}}function z(e){return{key:e,webFamily:`system-ui, sans-serif`,nativeFamily:`system-ui`,size:{},lineHeight:{},weight:{},letterSpacing:{}}}function Le(e,t){return{...e,webFamily:t,nativeFamily:_e(t)}}const Re=/^(?:font-size|fontSize|font-weight|fontWeight|line-height|lineHeight|leading|letter-spacing|letterSpacing|tracking)$/i;function B(e,t){let n={true:e},r=A(t);if(!r)return n;let i=Ee(r,Re);return i&&i!==`true`&&(n[i]=e),n}function ze(e){return Object.keys(e.size).length>0?e:{...e,size:{...ge}}}function Be(e,n,r,i){if(!(0,t.isObject)(n.value))return e;let a=M(n.value,de),o=A(a),s=ve(j(a,r)),c=Fe(i,s,o),l=e;c?l=R(l,c):s&&(l=Le(l,s));let u=M(n.value,fe),d=N(j(u,r));d!=null&&(l={...l,size:B(d,u)});let f=M(n.value,pe),p=be(j(f,r));p&&(l={...l,weight:B(p,f)});let m=M(n.value,he),h=N(j(m,r));h!=null&&(l={...l,letterSpacing:B(h,m)});let g=M(n.value,me),_=xe(j(g,r),l.size.true??d);return _!=null&&(l={...l,lineHeight:B(_,g)}),Ve(l)}function Ve(e){let t=Object.keys(e.size);if(t.length===0)return e;let n=e=>{let n=e.true??Object.values(e)[0];if(n==null)return e;let r={...e};for(let e of t)r[e]??=n;return r};return{...e,lineHeight:Object.keys(e.lineHeight).length>0?n(e.lineHeight):e.lineHeight,weight:Object.keys(e.weight).length>0?n(e.weight):e.weight,letterSpacing:Object.keys(e.letterSpacing).length>0?n(e.letterSpacing):e.letterSpacing}}function He(e,t){let n=new Map(e.map(e=>[e.path,e])),r=new Map,i=e=>{r.set(e.key,e)};if(t)for(let[e,n]of Pe(t))i(R(z(e),n));for(let a of e){if(!Oe(a)||De(a))continue;let e=Te(a.path),o=ve(j(a.value,n)),s=r.get(e)??z(e),c=Fe(t,o,a.path),l=s;c?l=R(l,c):(o&&s.webFamily===z(e).webFamily||o&&!r.has(e))&&(l=Le(l,o)),i(l)}for(let a of e){if(!De(a))continue;let e=we(a.path);i(Be(r.get(e)??z(e),a,n,t))}return[...r.values()].map(ze).toSorted((e,t)=>e.key.localeCompare(t.key))}function Ue(e){return/^\d+$/.test(e)||/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}function V(e,t=4){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0)),i=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return i.length===0?`{}`:`{\n${i.map(([e,t])=>`${n}${Ue(e)}: ${a(t)}`).join(`,
4
+ `)}\n${r}}`}function We(e,t){let n=`${e.split(`-`).filter(Boolean).map((e,t)=>t===0?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(``).replaceAll(/[^\w$]/g,``)||`font${t}`}Font`;return/^[A-Z_$]/i.test(n)?n:`font${t}`}function Ge(e,t){let n=a(e.webFamily),r=a(e.nativeFamily),i=[n===r?` family: ${n}`:` family: isWeb ? ${n} : ${r}`,` size: ${V(e.size)}`];return Object.keys(e.lineHeight).length>0&&i.push(` lineHeight: ${V(e.lineHeight)}`),Object.keys(e.weight).length>0&&i.push(` weight: ${V(e.weight)}`),Object.keys(e.letterSpacing).length>0&&i.push(` letterSpacing: ${V(e.letterSpacing)}`),e.face&&i.push(` face: ${e.face}`),`const ${t} = createFont({\n${i.join(`,
5
+ `)}\n});`}function Ke(e){return`# Installing Tamagui Config
6
6
 
7
7
  Generated by \`@razorwind/tamagui\`.
8
8
 
@@ -48,28 +48,28 @@ export function App() {
48
48
  ## Regenerate
49
49
 
50
50
  Re-run Razorwind generate when tokens change so \`${e.outputPath}\` stays aligned with your design system.
51
- `}const Ke=new Set([`default`,`light`,`theme`]),qe=/^base(?:[A-Z]\w*|[._-].+)?$/i,Je=/^ring(?:\.|$)/i,Ye={css:`@tamagui/config/v5-css`,rn:`@tamagui/config/v5-rn`,reanimated:`@tamagui/config/v5-reanimated`,motion:`@tamagui/config/v5-motion`};function Xe(e){return Ke.has(e)}function Ze(e){return e===`dark`}function U(e,t){let n=new Map,r=t===`dark`?Ze:Xe;for(let t of e){let e=t.theme?.toLowerCase();(!e||qe.test(e))&&n.set(t.path,t)}for(let t of e){let e=t.theme?.toLowerCase();e&&r(e)&&n.set(t.path,t)}return[...n.values()]}function Qe(e){return Je.test(e.path)&&e.category===`shadow`}const $e=new Set([`shadow`,`insetShadow`,`dropShadow`,`textShadow`,`boxShadow`]);function et(e){return!e.primitive&&!!e.tokenKey&&(e.type===`shadow`||e.category!=null&&$e.has(e.category))}const tt=new Set([`fontSize`,`blur`]),nt=[`space`,`size`,`radius`,`zIndex`,`blur`,`fontSize`,`shadow`,`insetShadow`,`dropShadow`,`textShadow`,`boxShadow`,`fontWeight`];function rt(e){return/^px\(-?\d/.test(e)}function it(e){if(e.category===`radius`&&e.tokenKey?.startsWith(`borderRadius`)){let t=e.tokenKey.replace(/^borderRadius/,``);return t?D([t]):e.tokenKey}return e.tokenKey??``}function at(e,t){let n=Q(e,t.byPath,t.byCssVar).tamaguiValue;if(e.category&&tt.has(e.category)&&typeof n==`number`)return`px(${n})`;if(typeof n==`string`){let r=Et(n,t);return e.category===`dropShadow`?ot(r):r}return n}function ot(e){return e.includes(`drop-shadow(`)?e:e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.replace(/^inset\s+/i,``).split(/\s+/);if(t.length>=5){let[e,n,r]=t;return`drop-shadow(${e} ${n} ${r} ${t.slice(4).join(` `)})`}return`drop-shadow(${e.replace(/^inset\s+/i,``)})`}).join(` `)}function st(e){let t={},n=St(e);for(let r of e){if(!r.category||r.category===`color`||!r.tokenKey||Qe(r))continue;let e=it(r);if(!e)continue;let i=at(r,n);if(typeof i==`string`&&Tt(i))continue;let a=t[r.category]??{};a[e]=i,t[r.category]=a}return t}function W(e){let t=e.path.replace(/^color\./i,``).replaceAll(`.`,``);return e.theme?`${e.theme}${t[0]?.toUpperCase()??``}${t.slice(1)}`:t}function G(e){return`tokens.color.${e}.val`}const ct=[`base`,`gray`,`grey`,`neutral`],lt=[`accent`,`brand`],ut=[`"#ffffff"`,`"#000000"`],dt=[`"#000000"`,`"#ffffff"`];function ft(e){if(e.category!==`color`||!e.primitive)return;let t=e.path.replace(/^color\./i,``).split(`.`).filter(Boolean),n=t.at(-1);if(!n||t.length<2)return;let r=Number(n);if(Number.isFinite(r))return{name:t.slice(0,-1).join(`.`).toLowerCase(),step:r}}function pt(e,t){let n=W(e);if(n in t)return G(n);let r=typeof e.cssValue==`string`&&e.cssValue.length>0?e.cssValue:typeof e.tamaguiValue==`string`?e.tamaguiValue:void 0;return r?a(r):`"#000000"`}function mt(e,t,n){let r=new Map;for(let t of e){let e=ft(t);if(!e)continue;let i=r.get(e.name)??[];i.push({step:e.step,expression:pt(t,n)}),r.set(e.name,i)}for(let e of t){let t=r.get(e);if(!t||t.length===0)continue;let n=new Map;for(let e of t.toSorted((e,t)=>e.step-t.step))n.set(e.step,e.expression);return[...n.values()]}}function K(e,t){return e.length>=2?e:e.length===1?[e[0],t[1]??`"#000000"`]:[...t]}function ht(e,t,n,r,i,a){let o=mt(e,n,r),s=mt(t,n,r);if(o&&s)return{light:K(o,i),dark:K(s,a)};if(o){let e=K(o,i);return{light:e,dark:[...e].toReversed()}}if(s){let e=K(s,a);return{light:[...e].toReversed(),dark:e}}return{light:[...i],dark:[...a]}}function gt(e,t){let n={},r=(e,t)=>{let r=t.cssValue;typeof r!=`string`||r.length===0||wt(r)||r===`[object Object]`||(n[e]=r)};for(let t of e)t.tokenKey&&(t.primitive?r(W(t),t):r(t.tokenKey,t));for(let e of t)!e.tokenKey||!e.primitive||r(W(e),e);return n}function q(e,t,n,r){let i=n[r];if(typeof i!=`string`)return!1;let a=Z(e,t);return a!=null&&a===i}function _t(e,t,n){if(e.tokenKey&&q(e,t,n,e.tokenKey))return G(e.tokenKey);let r=Q(e,t.byPath,t.byCssVar);if(r.tokenKey&&q(e,t,n,r.tokenKey))return G(r.tokenKey);if(r.primitive){let i=W(r);if(q(e,t,n,i))return G(i)}let i=Z(e,t);if(i)return a(i)}function J(e,t=2){let n=` `.repeat(t),r=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return r.length===0?`{}`:`{\n${r.map(([e,t])=>{let r=typeof t==`string`&&rt(t)?t:a(t);return`${n}${/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}: ${r}`}).join(`,
51
+ `}const qe=new Set([`default`,`light`,`theme`]),Je=/^base(?:[A-Z]\w*|[._-].+)?$/i,Ye=/^ring(?:\.|$)/i,Xe={css:`@tamagui/config/v5-css`,rn:`@tamagui/config/v5-rn`,reanimated:`@tamagui/config/v5-reanimated`,motion:`@tamagui/config/v5-motion`};function Ze(e){return qe.has(e)}function Qe(e){return e===`dark`}function H(e,t){let n=new Map,r=t===`dark`?Qe:Ze;for(let t of e){let e=t.theme?.toLowerCase();(!e||Je.test(e))&&n.set(t.path,t)}for(let t of e){let e=t.theme?.toLowerCase();e&&r(e)&&n.set(t.path,t)}return[...n.values()]}function $e(e){return Ye.test(e.path)&&e.category===`shadow`}const et=new Set([`shadow`,`insetShadow`,`dropShadow`,`textShadow`,`boxShadow`]);function tt(e){return!e.primitive&&!!e.tokenKey&&(e.type===`shadow`||e.category!=null&&et.has(e.category))}const nt=new Set([`fontSize`,`blur`]),rt=[`space`,`size`,`radius`,`zIndex`,`blur`,`fontSize`,`shadow`,`insetShadow`,`dropShadow`,`textShadow`,`boxShadow`,`fontWeight`];function it(e){return/^px\(-?\d/.test(e)}function at(e){if(e.category===`radius`&&e.tokenKey?.startsWith(`borderRadius`)){let t=e.tokenKey.replace(/^borderRadius/,``);return t?D([t]):e.tokenKey}return e.tokenKey??``}function ot(e,t){let n=Q(e,t.byPath,t.byCssVar).tamaguiValue;if(e.category&&nt.has(e.category)&&typeof n==`number`)return`px(${n})`;if(typeof n==`string`){let r=Ot(n,t);return e.category===`dropShadow`?st(r):r}return n}function st(e){return e.includes(`drop-shadow(`)?e:e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.replace(/^inset\s+/i,``).split(/\s+/);if(t.length>=5){let[e,n,r]=t;return`drop-shadow(${e} ${n} ${r} ${t.slice(4).join(` `)})`}return`drop-shadow(${e.replace(/^inset\s+/i,``)})`}).join(` `)}function ct(e){let t={},n=wt(e);for(let r of e){if(!r.category||r.category===`color`||!r.tokenKey||$e(r))continue;let e=at(r);if(!e)continue;let i=ot(r,n);if(typeof i==`string`&&Dt(i))continue;let a=t[r.category]??{};a[e]=i,t[r.category]=a}return t}function U(e){let t=e.path.replace(/^color\./i,``).replaceAll(`.`,``);return e.theme?`${e.theme}${t[0]?.toUpperCase()??``}${t.slice(1)}`:t}function W(e){return`tokens.color.${e}.val`}const lt=[`base`,`gray`,`grey`,`neutral`],ut=[`accent`,`brand`],dt=[`"#ffffff"`,`"#000000"`],ft=[`"#000000"`,`"#ffffff"`];function pt(e){if(e.category!==`color`||!e.primitive)return;let t=e.path.replace(/^color\./i,``).split(`.`).filter(Boolean),n=t.at(-1);if(!n||t.length<2)return;let r=Number(n);if(Number.isFinite(r))return{name:t.slice(0,-1).join(`.`).toLowerCase(),step:r}}function mt(e,t){let n=U(e);if(n in t)return W(n);let r=typeof e.cssValue==`string`&&e.cssValue.length>0?e.cssValue:typeof e.tamaguiValue==`string`?e.tamaguiValue:void 0;return r?a(r):`"#000000"`}function ht(e){let t=e.trim(),n=/^oklch\(\s*([0-9.]+)(%?)/i.exec(t);if(n){let e=Number(n[1]);return Number.isFinite(e)?n[2]===`%`||e>1?e/100:e:void 0}let r=/^#([\da-f]{3,8})$/i.exec(t);if(!r)return;let i=r[1],a,o,s;if(i.length===3||i.length===4)a=Number.parseInt(i[0]+i[0],16),o=Number.parseInt(i[1]+i[1],16),s=Number.parseInt(i[2]+i[2],16);else if(i.length===6||i.length===8)a=Number.parseInt(i.slice(0,2),16),o=Number.parseInt(i.slice(2,4),16),s=Number.parseInt(i.slice(4,6),16);else return;return(.2126*a+.7152*o+.0722*s)/255}function gt(e,t,n){let r=new Map;for(let t of e){let e=pt(t);if(!e)continue;let i=typeof t.cssValue==`string`&&t.cssValue.length>0?t.cssValue:void 0,a=r.get(e.name)??[];a.push({step:e.step,expression:mt(t,n),lightness:i?ht(i):void 0}),r.set(e.name,a)}for(let e of t){let t=r.get(e);if(!t||t.length===0)continue;let n=new Map;for(let e of t.toSorted((e,t)=>e.step-t.step))n.set(e.step,e);return[...n.values()]}}function G(e,t){if(e.filter(e=>e.lightness!=null).length>=2)return[...e].toSorted((e,n)=>{let r=e.lightness??.5,i=n.lightness??.5;return t===`light`?i-r:r-i}).map(e=>e.expression);let n=e.toSorted((e,t)=>e.step-t.step).map(e=>e.expression);return t===`light`?n:[...n].toReversed()}function K(e,t){return e.length>=2?e:e.length===1?[e[0],t[1]??`"#000000"`]:[...t]}function _t(e,t,n,r,i,a){let o=gt(e,n,r),s=gt(t,n,r);if(o&&s)return{light:K(G(o,`light`),i),dark:K(G(s,`dark`),a)};if(o){let e=K(G(o,`light`),i);return{light:e,dark:[...e].toReversed()}}if(s){let e=K(G(s,`dark`),a);return{light:[...e].toReversed(),dark:e}}return{light:[...i],dark:[...a]}}function vt(e,t){let n={},r=(e,t)=>{let r=t.cssValue;typeof r!=`string`||r.length===0||Et(r)||r===`[object Object]`||(n[e]=r)};for(let t of e)t.tokenKey&&(t.primitive?r(U(t),t):r(t.tokenKey,t));for(let e of t)!e.tokenKey||!e.primitive||r(U(e),e);return n}function q(e,t,n,r){let i=n[r];if(typeof i!=`string`)return!1;let a=Z(e,t);return a!=null&&a===i}function yt(e,t,n){if(e.tokenKey&&q(e,t,n,e.tokenKey))return W(e.tokenKey);let r=Q(e,t.byPath,t.byCssVar);if(r.tokenKey&&q(e,t,n,r.tokenKey))return W(r.tokenKey);if(r.primitive){let i=U(r);if(q(e,t,n,i))return W(i)}let i=Z(e,t);if(i)return a(i)}function J(e,t=2){let n=` `.repeat(t),r=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return r.length===0?`{}`:`{\n${r.map(([e,t])=>{let r=typeof t==`string`&&it(t)?t:a(t);return`${n}${/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}: ${r}`}).join(`,
52
52
  `)}\n${` `.repeat(Math.max(t-2,0))}}`}function Y(e,t=2){let n=` `.repeat(t),r=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return r.length===0?`{}`:`{\n${r.map(([e,t])=>`${n}${/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}: ${t}`).join(`,
53
- `)}\n${` `.repeat(Math.max(t-2,0))}}`}const vt=/^\{([^{}]+)\}$/,yt=/\{([^{}]+)\}/g,bt=/^var\((--[^),\s]+)(?:\s*,[^)]*)?\)$/,xt=/var\((--[^),\s]+)(?:\s*,[^)]*)?\)/g;function St(e){return{byPath:new Map(e.map(e=>[e.path,e])),byCssVar:new Map(e.map(e=>[(0,t.toThemeCssVar)(e.path),e]))}}function Ct(e){if(typeof e==`string`)return vt.exec(e.trim())?.[1]?.trim()}function X(e){if(typeof e==`string`)return bt.exec(e.trim())?.[1]}function wt(e){return Ct(e)!=null||X(e)!=null}function Tt(e){return/var\(|\{[^{}]+\}/.test(e)}function Z(e,t){let n=Q(e,t.byPath,t.byCssVar);if(n.category!=null&&n.category!==`color`)return;let r=[n.cssValue,n.tamaguiValue];for(let e of r)if(typeof e==`string`&&e.length>0&&!wt(e))return e}function Et(e,t){return e.replace(yt,(e,n)=>{let r=t.byPath.get(n.trim());return r?Z(r,t)??e:e}).replace(xt,(e,n)=>{let r=t.byCssVar.get(n);return r?Z(r,t)??e:e})}function Q(e,t,n){let r=e,i=new Set;for(let e=0;e<8;e++){if(i.has(r.path))return r;i.add(r.path);let e=Ct(r.value);if(e){let n=t.get(e);if(!n||n.path===r.path)return r;r=n;continue}let a=X(r.value)??X(r.cssValue)??X(r.tamaguiValue);if(a){let e=n.get(a);if(!e||e.path===r.path)return r;r=e;continue}return r}return r}function Dt(e,t){let n=t.toLowerCase(),r=e.split(/(?=[A-Z])/).filter(Boolean).filter(e=>e.toLowerCase()!==n);if(r.length!==0)return D(r)}function Ot(e){return e.category===`color`&&!e.primitive&&!!e.tokenKey}function kt(e){return et(e)&&D(e.path.split(`.`).filter(Boolean))||e.tokenKey}function At(e){let t=e.toLowerCase();return Xe(t)||Ze(t)}function jt(e,t,n){let r=kt(t);if(!r)return;let i=t.childTheme?.trim();if(!i||At(i)){e.base[r]=n;return}let a=D([i]),o=Dt(r,a);if(!o)return;let s=e.children[a]??{};s[o]=n,e.children[a]=s}function Mt(e,t){let n=typeof e.tamaguiValue==`string`?e.tamaguiValue:e.cssValue;if(typeof n!=`string`||n.length===0)return;let r=Et(n,t);return r.length===0||Tt(r)?void 0:a(e.category===`dropShadow`?ot(r):r)}function Nt(e,t){let n=St(e),r={base:{},children:{}};for(let i of e){if(Ot(i)){let e=_t(i,n,t);e&&jt(r,i,e);continue}if(!et(i))continue;let e=Mt(i,n);if(!e)continue;let a=i.childTheme?.trim();(a&&!At(a)||Qe(i))&&jt(r,i,e)}return r}function Pt(e){let t=new Set;for(let n of e){for(let e of Object.keys(n.base))t.add(e);for(let e of Object.values(n.children))for(let n of Object.keys(e))t.add(n)}return[...t].toSorted((e,t)=>e.localeCompare(t,void 0,{numeric:!0}))}function Ft(e){return` ${/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}: string;`}function It(e,t){if(e.length!==0)return[`/**`,` * Theme values available on \`useTheme()\` and \`$\` style props for the ${t.specName||`design system`}.`,` *`," * Derived from semantic color tokens mapped by `createThemes`. Nested"," * themes (`light_primary`, `dark_danger`, …) come from each token's"," * `theme` / `$theme` property.",` *`,` * @see https://tamagui.dev/docs/intro/themes`,` */`,`export interface AppTheme {`,...e.map(Ft),`}`,``]}function Lt(e){return Object.keys(e).length>0}function Rt(e){return/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}function zt(e,t){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0));return`[\n${e.map(e=>`${n}${e}`).join(`,
54
- `)}\n${r}]`}function $(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
55
- ${r}light: ${zt(e,a)},
56
- ${r}dark: ${zt(t,a)}
57
- ${i}}`}function Bt(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
53
+ `)}\n${` `.repeat(Math.max(t-2,0))}}`}const bt=/^\{([^{}]+)\}$/,xt=/\{([^{}]+)\}/g,St=/^var\((--[^),\s]+)(?:\s*,[^)]*)?\)$/,Ct=/var\((--[^),\s]+)(?:\s*,[^)]*)?\)/g;function wt(e){return{byPath:new Map(e.map(e=>[e.path,e])),byCssVar:new Map(e.map(e=>[(0,t.toThemeCssVar)(e.path),e]))}}function Tt(e){if(typeof e==`string`)return bt.exec(e.trim())?.[1]?.trim()}function X(e){if(typeof e==`string`)return St.exec(e.trim())?.[1]}function Et(e){return Tt(e)!=null||X(e)!=null}function Dt(e){return/var\(|\{[^{}]+\}/.test(e)}function Z(e,t){let n=Q(e,t.byPath,t.byCssVar);if(n.category!=null&&n.category!==`color`)return;let r=[n.cssValue,n.tamaguiValue];for(let e of r)if(typeof e==`string`&&e.length>0&&!Et(e))return e}function Ot(e,t){return e.replace(xt,(e,n)=>{let r=t.byPath.get(n.trim());return r?Z(r,t)??e:e}).replace(Ct,(e,n)=>{let r=t.byCssVar.get(n);return r?Z(r,t)??e:e})}function Q(e,t,n){let r=e,i=new Set;for(let e=0;e<8;e++){if(i.has(r.path))return r;i.add(r.path);let e=Tt(r.value);if(e){let n=t.get(e);if(!n||n.path===r.path)return r;r=n;continue}let a=X(r.value)??X(r.cssValue)??X(r.tamaguiValue);if(a){let e=n.get(a);if(!e||e.path===r.path)return r;r=e;continue}return r}return r}function kt(e,t){let n=t.toLowerCase(),r=e.split(/(?=[A-Z])/).filter(Boolean).filter(e=>e.toLowerCase()!==n);if(r.length!==0)return D(r)}function At(e){return e.category===`color`&&!e.primitive&&!!e.tokenKey}function jt(e){return tt(e)&&D(e.path.split(`.`).filter(Boolean))||e.tokenKey}function Mt(e){let t=e.toLowerCase();return Ze(t)||Qe(t)}function Nt(e,t,n){let r=jt(t);if(!r)return;let i=t.childTheme?.trim();if(!i||Mt(i)){e.base[r]=n;return}let a=D([i]),o=kt(r,a);if(!o)return;let s=e.children[a]??{};s[o]=n,e.children[a]=s}function Pt(e,t){let n=typeof e.tamaguiValue==`string`?e.tamaguiValue:e.cssValue;if(typeof n!=`string`||n.length===0)return;let r=Ot(n,t);return r.length===0||Dt(r)?void 0:a(e.category===`dropShadow`?st(r):r)}function Ft(e,t){let n=wt(e),r={base:{},children:{}};for(let i of e){if(At(i)){let e=yt(i,n,t);e&&Nt(r,i,e);continue}if(!tt(i))continue;let e=Pt(i,n);if(!e)continue;let a=i.childTheme?.trim();(a&&!Mt(a)||$e(i))&&Nt(r,i,e)}return r}function It(e){let t=new Set;for(let n of e){for(let e of Object.keys(n.base))t.add(e);for(let e of Object.values(n.children))for(let n of Object.keys(e))t.add(n)}return[...t].toSorted((e,t)=>e.localeCompare(t,void 0,{numeric:!0}))}function Lt(e){return` ${/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}: string;`}function Rt(e,t){if(e.length!==0)return[`/**`,` * Theme values available on \`useTheme()\` and \`$\` style props for the ${t.specName||`design system`}.`,` *`," * Derived from semantic color tokens mapped by `createThemes`. Nested"," * themes (`light_primary`, `dark_danger`, …) come from each token's"," * `theme` / `$theme` property.",` *`,` * @see https://tamagui.dev/docs/intro/themes`,` */`,`export interface AppTheme {`,...e.map(Lt),`}`,``]}function zt(e){return Object.keys(e).length>0}function $(e){return/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}function Bt(e,t){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0));return`[\n${e.map(e=>`${n}${e}`).join(`,
54
+ `)}\n${r}]`}function Vt(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
55
+ ${r}light: ${Bt(e,a)},
56
+ ${r}dark: ${Bt(t,a)}
57
+ ${i}}`}function Ht(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
58
58
  ${r}light: ${Y(e,a)},
59
59
  ${r}dark: ${Y(t,a)}
60
- ${i}}`}function Vt(e,t){let n=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t));if(n.length===0)return`{}`;let r=` `.repeat(t),i=` `.repeat(Math.max(t-2,0)),a=t+2;return`{\n${n.map(([e,t])=>`${r}${Rt(e)}: ${Y(t,a)}`).join(`,
61
- `)}\n${i}}`}function Ht(e,t){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0));return`{\n${e.map(e=>`${n}${Rt(e)}: {}`).join(`,
62
- `)}\n${r}}`}function Ut(e,t){return`const childThemeExtras: {
60
+ ${i}}`}function Ut(e,t){let n=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t));if(n.length===0)return`{}`;let r=` `.repeat(t),i=` `.repeat(Math.max(t-2,0)),a=t+2;return`{\n${n.map(([e,t])=>`${r}${$(e)}: ${Y(t,a)}`).join(`,
61
+ `)}\n${i}}`}function Wt(e,t){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0));return`{\n${e.map(e=>`${n}${$(e)}: {}`).join(`,
62
+ `)}\n${r}}`}function Gt(e,t){return`const childThemeExtras: {
63
63
  light: Record<string, Record<string, string>>;
64
64
  dark: Record<string, Record<string, string>>;
65
65
  } = {
66
- light: ${Vt(e,4)},
67
- dark: ${Vt(t,4)}
68
- };`}function Wt(e,t,n){return Object.fromEntries(n.map(n=>[n,e.children[n]??t.children[n]??{}]))}function Gt(e,t,n,r,i){let a=[...new Set([...Object.keys(e.children),...Object.keys(t.children)])].toSorted((e,t)=>e.localeCompare(t)),o=a.includes(`accent`),s=a.filter(e=>e!==`accent`),c=Lt(e.base)||Lt(t.base);if(!c&&a.length===0)return{statements:[],hasThemes:!1};let l=ht(r,i,ct,n,ut,dt),u=ht(r,i,lt,n,l.light,l.dark),d=[],f=[` componentThemes: false`],p=[` palette: ${$(l.light,l.dark,6)}`];if(c&&p.push(` extra: ${Bt(e.base,t.base,6)}`),f.push(` base: {\n${p.join(`,
66
+ light: ${Ut(e,4)},
67
+ dark: ${Ut(t,4)}
68
+ };`}function Kt(e,t,n){return Object.fromEntries(n.map(n=>[n,e.children[n]??t.children[n]??{}]))}function qt(e,t,n,r,i){let a=[...new Set([...Object.keys(e.children),...Object.keys(t.children)])].toSorted((e,t)=>e.localeCompare(t)),o=a.includes(`accent`),s=a.filter(e=>e!==`accent`),c=zt(e.base)||zt(t.base);if(!c&&a.length===0)return{statements:[],hasThemes:!1};let l=_t(r,i,lt,n,dt,ft),u=_t(r,i,ut,n,l.light,l.dark),d=[],f=[` componentThemes: false`],p=[` palette: ${Vt(l.light,l.dark,6)}`];if(c&&p.push(` extra: ${Ht(e.base,t.base,6)}`),f.push(` base: {\n${p.join(`,
69
69
  `)}\n }`),o){let n=e.children.accent??t.children.accent??{},r=t.children.accent??e.children.accent??{};f.push(` accent: {
70
- palette: ${$(u.light,u.dark,6)},
71
- extra: ${Bt(n,r,6)}
72
- }`)}if(s.length>0){let n=Wt(e,t,s),r=Wt(t,e,s);d.push(Ut(n,r),``),f.push(` childrenThemes: ${Ht(s,4)}`);let i=o?` || child === "accent"`:``;f.push(` getTheme: ({ name, theme, scheme }) => {
70
+ palette: ${Vt(u.light,u.dark,6)},
71
+ extra: ${Ht(n,r,6)}
72
+ }`)}if(s.length>0){let n=Kt(e,t,s),r=Kt(t,e,s);d.push(Gt(n,r),``),f.push(` childrenThemes: ${Wt(s,4)}`);let i=o?` || child === "accent"`:``;f.push(` getTheme: ({ name, theme, scheme }) => {
73
73
  const child = name.replace(/^(?:light|dark)_/, "");
74
74
  if (child === name${i}) {
75
75
  return theme;
@@ -79,8 +79,8 @@ ${i}}`}function Vt(e,t){let n=Object.entries(e).toSorted(([e],[t])=>e.localeComp
79
79
 
80
80
  return extras ? { ...theme, ...extras } : theme;
81
81
  }`)}return d.push(`const themes = createThemes({\n${f.join(`,
82
- `)}\n});`),{statements:d,hasThemes:!0}}function Kt(e,t,n={}){let r=e.fonts??{},i=n.useDefaultConfig===!0,o=n.animations??`css`,s=n.includeTypeAugmentation!==!1,c=t.filter(e=>e.category===`color`),l=U(c,`light`),u=U(c,`dark`),d=u.length>0,f=gt(l,u),p=U(t,`light`),m=d?U(t,`dark`):p,h=Nt(p,f),g=Nt(m,f),{statements:_,hasThemes:v}=Gt(h,g,f,l,u),ee=It(Pt(d?[h,g]:[h]),{specName:e.name}),y=st(p),b=[];Object.keys(f).length>0&&b.push(` color: ${J(f,4)}`);for(let e of nt){let t=y[e];t&&Object.keys(t).length>0&&b.push(` ${e}: ${J(t,4)}`)}let x=[`import { isWeb } from '@tamagui/constants';`];i&&x.push(`import { defaultConfig } from "@tamagui/config/v5";`),o!==!1&&x.push(`import { animations } from "${Ye[o]}";`),n.importConfig&&x.push(`import userConfig from "${n.importConfig}";`),v&&x.push(`import { createThemes } from "@tamagui/theme-builder";`);let S=[`createTamagui`,`px`];b.length>0&&S.push(`createTokens`);let C=Ve(t,r);C.length>0&&S.push(`createFont`),x.push(`import { ${S.join(`, `)} } from "@tamagui/core";`);let w=[`/* eslint-disable */`,``,`/*`,` * Generated by @razorwind/tamagui — Do not edit by hand.`,` * `,` * @see https://tamagui.dev/docs/core/configuration`,` * @see https://tamagui.dev/docs/intro/themes`,` * @see https://tamagui.dev/docs/guides/theme-builder`,` */`,``,...x,``];b.length>0&&w.push(`const tokens = createTokens({`,b.join(`,
83
- `),`});`,``),_.length>0&&w.push(..._,``);let T=new Map;if(C.length>0)for(let[e,t]of C.entries()){let n=Ue(t.key,e);T.set(t.key,n),w.push(We(t,n),``)}let E=[];if(i&&E.push(` ...defaultConfig`),o!==!1&&E.push(` animations`),b.length>0&&(i?E.push(` tokens: {
82
+ `)}\n});`),{statements:d,hasThemes:!0}}function Jt(e,t,n={}){let r=e.fonts??{},i=n.useDefaultConfig===!0,o=n.animations??`css`,s=n.includeTypeAugmentation!==!1,c=t.filter(e=>e.category===`color`),l=H(c,`light`),u=H(c,`dark`),d=u.length>0,f=vt(l,u),p=H(t,`light`),m=d?H(t,`dark`):p,h=Ft(p,f),g=Ft(m,f),{statements:_,hasThemes:v}=qt(h,g,f,l,u),ee=Rt(It(d?[h,g]:[h]),{specName:e.name}),y=ct(p),b=[];Object.keys(f).length>0&&b.push(` color: ${J(f,4)}`);for(let e of rt){let t=y[e];t&&Object.keys(t).length>0&&b.push(` ${e}: ${J(t,4)}`)}let x=[`import { isWeb } from '@tamagui/constants';`];i&&x.push(`import { defaultConfig } from "@tamagui/config/v5";`),o!==!1&&x.push(`import { animations } from "${Xe[o]}";`),n.importConfig&&x.push(`import userConfig from "${n.importConfig}";`),v&&x.push(`import { createThemes } from "@tamagui/theme-builder";`);let S=[`createTamagui`,`px`];b.length>0&&S.push(`createTokens`);let C=He(t,r);C.length>0&&S.push(`createFont`),x.push(`import { ${S.join(`, `)} } from "@tamagui/core";`);let w=[`/* eslint-disable */`,``,`/*`,` * Generated by @razorwind/tamagui — Do not edit by hand.`,` * `,` * @see https://tamagui.dev/docs/core/configuration`,` * @see https://tamagui.dev/docs/intro/themes`,` * @see https://tamagui.dev/docs/guides/theme-builder`,` */`,``,...x,``];b.length>0&&w.push(`const tokens = createTokens({`,b.join(`,
83
+ `),`});`,``),_.length>0&&w.push(..._,``);let T=new Map;if(C.length>0)for(let[e,t]of C.entries()){let n=We(t.key,e);T.set(t.key,n),w.push(Ge(t,n),``)}let E=[];if(i&&E.push(` ...defaultConfig`),o!==!1&&E.push(` animations`),b.length>0&&(i?E.push(` tokens: {
84
84
  ...defaultConfig.tokens,
85
85
  ...tokens,
86
86
  space: {
@@ -113,4 +113,4 @@ ${i}}`}function Vt(e,t){let n=Object.entries(e).toSorted(([e],[t])=>e.localeComp
113
113
  */
114
114
  export const config = createTamagui({`,E.join(`,
115
115
  `),n.importConfig?`, ...userConfig `:``,`});`,``,`export type AppConfig = typeof config;`,``),s&&w.push(`declare module "@tamagui/core" {`,` // eslint-disable-next-line @typescript-eslint/no-empty-object-type`,` interface TamaguiCustomConfig extends AppConfig {}`,`}`,``),w.push(`export default config;`,``),w.join(`
116
- `)}function qt(e,r={}){let i=e.tokens&&Object.keys(e.tokens).length>0,a=e.fonts&&Object.keys(e.fonts).length>0;if(!i&&!a)return{};let o=i?k(e.tokens,r):[];if(o.length===0&&!a)return{};let s=r.outputPath??`tamagui.config.ts`,c=Kt(e,o,r),l=r.installGuide??Ge({outputPath:s}),u=(0,n.join)((0,n.dirname)(s),`INSTALL.md`);return{[s]:(0,t.createDocument)(s,c,{name:`razorwind-tamagui`},!1,`typescript`),[u]:(0,t.createDocument)(u,l,{name:`razorwind-tamagui`},!1,`markdown`)}}var Jt=(0,e.definePlugin)(e=>({name:`tamagui`,themeGeneration:`combined`,generate:async t=>qt(t,e??{})}));exports.collectTamaguiFonts=Ve,exports.default=Jt,exports.flattenTokens=k,exports.fontVarName=Ue,Object.defineProperty(exports,"formatTokenValue",{enumerable:!0,get:function(){return t.formatTokenValue}}),exports.generateTamaguiConfig=qt,exports.isPaletteGroup=v,exports.renderInstallMd=Ge,exports.renderTamaguiConfig=Kt,exports.resolveTokenCategory=te,exports.resolveTokenSets=t.resolveTokenSets,exports.tamaguiFontKeyFromRole=R,exports.toCamelCaseKey=D,Object.defineProperty(exports,"toCssVar",{enumerable:!0,get:function(){return t.toCssVar}}),exports.toTamaguiValue=o,exports.toTokenKey=ne,exports.typographyFontKey=Ce;
116
+ `)}function Yt(e,r={}){let i=e.tokens&&Object.keys(e.tokens).length>0,a=e.fonts&&Object.keys(e.fonts).length>0;if(!i&&!a)return{};let o=i?O(e.tokens,r):[];if(o.length===0&&!a)return{};let s=r.outputPath??`tamagui.config.ts`,c=Jt(e,o,r),l=r.installGuide??Ke({outputPath:s}),u=(0,n.join)((0,n.dirname)(s),`INSTALL.md`);return{[s]:(0,t.createDocument)(s,c,{name:`razorwind-tamagui`},!1,`typescript`),[u]:(0,t.createDocument)(u,l,{name:`razorwind-tamagui`},!1,`markdown`)}}var Xt=(0,e.definePlugin)(e=>({name:`tamagui`,themeGeneration:`combined`,generate:async t=>Yt(t,e??{})}));exports.collectTamaguiFonts=He,exports.default=Xt,exports.flattenTokens=O,exports.fontVarName=We,Object.defineProperty(exports,"formatTokenValue",{enumerable:!0,get:function(){return t.formatTokenValue}}),exports.generateTamaguiConfig=Yt,exports.isPaletteGroup=v,exports.renderInstallMd=Ke,exports.renderTamaguiConfig=Jt,exports.resolveTokenCategory=te,exports.resolveTokenSets=t.resolveTokenSets,exports.tamaguiFontKeyFromRole=L,exports.toCamelCaseKey=D,Object.defineProperty(exports,"toCssVar",{enumerable:!0,get:function(){return t.toCssVar}}),exports.toTamaguiValue=o,exports.toTokenKey=ne,exports.typographyFontKey=we;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/flatten.ts","../src/fonts.ts","../src/format.ts","../src/install.ts","../src/generate.ts","../src/index.ts"],"mappings":";;;;;;;;;;;KA0BY;;;;KAMA;;;;UAkBK;;;;;;;;;EASf;;;;;;;EAQA,aAAa;;;;;;EAOb,aAAa;;;;;;EAOb,QAAQ;;;;EAKR;;;;EAKA;;;;;;;;EASA;;;;;EAMA,eAAe;;;;;;;EAQf;;;;;EAMA;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA,WAAW;;EAEX;;EAEA;;EAEA;;;;;EAKA;;;;EAIA;;;;;;;;;iBChEc,eAAe,MAAM;;;;iBAyGrB,qBACd,cACA,gBACC;;;;;;;iBAoEa,eAAe;;;;;;;;iBA0Bf,WAAW;;;;iBA2GX,cACd,QAAQ,SAAS,eAAe,SAChC,UAAS,KAAK,wCACb;;;;;;;;;UCrUc;;EAEf;;EAEA;;EAEA;EACA,MAAM;EACN,YAAY;EACZ,QAAQ;EACR,eAAe;;EAEf;;;;;;;;;iBA4Lc,uBAAuB;;;;;;;;;iBAiCvB,kBAAkB;;;;;;;iBA2WlB,oBACd,QAAQ,aACR,QAAQ,QACP;;;;;;iBAsFa,YAAY,aAAa;;;;;;;;;iBC/rBzB,eAAe,gBAAgB;;;;;;;;iBCnC/B,gBAAgB;EAAW;;;;;;;;;;;;;;;;;iBC6kC3B,oBACd,MAAM,QACN,QAAQ,aACR,UAAS;;;;iBAgOK,sBACd,MAAM,QACN,UAAS,uBACR,wBAAwB,QAAQ"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/flatten.ts","../src/fonts.ts","../src/format.ts","../src/install.ts","../src/generate.ts","../src/index.ts"],"mappings":";;;;;;;;;;;KA0BY;;;;KAMA;;;;UAkBK;;;;;;;;;EASf;;;;;;;EAQA,aAAa;;;;;;EAOb,aAAa;;;;;;EAOb,QAAQ;;;;EAKR;;;;EAKA;;;;;;;;EASA;;;;;EAMA,eAAe;;;;;;;EAQf;;;;;EAMA;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA,WAAW;;EAEX;;EAEA;;EAEA;;;;;EAKA;;;;EAIA;;;;;;;;;iBChEc,eAAe,MAAM;;;;iBAyGrB,qBACd,cACA,gBACC;;;;;;;iBAoEa,eAAe;;;;;;;;iBA0Bf,WAAW;;;;iBA2GX,cACd,QAAQ,SAAS,eAAe,SAChC,UAAS,KAAK,wCACb;;;;;;;;;UCrUc;;EAEf;;EAEA;;EAEA;EACA,MAAM;EACN,YAAY;EACZ,QAAQ;EACR,eAAe;;EAEf;;;;;;;;;iBA4Lc,uBAAuB;;;;;;;;;iBAiCvB,kBAAkB;;;;;;;iBA2WlB,oBACd,QAAQ,aACR,QAAQ,QACP;;;;;;iBAsFa,YAAY,aAAa;;;;;;;;;iBC/rBzB,eAAe,gBAAgB;;;;;;;;iBCnC/B,gBAAgB;EAAW;;;;;;;;;;;;;;;;;iBCirC3B,oBACd,MAAM,QACN,QAAQ,aACR,UAAS;;;;iBAgOK,sBACd,MAAM,QACN,UAAS,uBACR,wBAAwB,QAAQ"}
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import{definePlugin as e}from"@razorwind/core/plugin";import{createDocument as t,formatTokenValue as n,formatTokenValue as r,isObject as i,resolveTokenSets as a,toCssVar as o,toThemeCssVar as s}from"@razorwind/core/utils";import{basename as c,dirname as l,join as u}from"node:path";import{cssFontFamily as d,fontFamilyName as f}from"@razorwind/core/lib/fonts";function p(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`).replaceAll(`
2
- `,`\\n`).replaceAll(`\r`,`\\r`)}function m(e){return typeof e==`string`?`"${p(e)}"`:typeof e==`number`||typeof e==`boolean`?String(e):e==null?`undefined`:JSON.stringify(e)}function h(e,t){if(typeof e==`number`)return e;if(typeof e==`boolean`)return Number(e);if(i(e)&&typeof e.value==`number`&&typeof e.unit==`string`){let t=e.unit.toLowerCase();return t===`px`||t===``?e.value:t===`rem`?e.value*16:`${e.value}${e.unit}`}if(typeof e==`string`){let t=/^(-?\d+(?:\.\d+)?)px$/i.exec(e.trim());if(t)return Number(t[1]);let n=/^(-?\d+(?:\.\d+)?)rem$/i.exec(e.trim());if(n)return Number(n[1])*16;let r=Number(e);return!Number.isNaN(r)&&e.trim()!==``?r:e}return r(e,t)}const g=/^(?:font-size|fontSize)(?:\.|$)/i,_=/^(?:font-weight|fontWeight)(?:\.|$)/i,v=/^shadow(?:\.|$)/i,y=/^inset-shadow(?:\.|$)/i,b=/^drop-shadow(?:\.|$)/i,x=/^text-shadow(?:\.|$)/i,S=/^(?:blur|blur-?radius)(?:\.|$)/i,C=new Set([`color`,`shadow`,`insetShadow`,`dropShadow`,`textShadow`]),w=[{prefix:/^(?:color|colours?|palette)(?:\.|$)/i,category:`color`},{prefix:g,category:`fontSize`},{prefix:_,category:`fontWeight`},{prefix:b,category:`dropShadow`},{prefix:y,category:`insetShadow`},{prefix:x,category:`textShadow`},{prefix:v,category:`shadow`},{prefix:S,category:`blur`},{prefix:/^(?:space|spacing|gap)(?:\.|$)/i,category:`space`},{prefix:/^inset(?:\.|$)/i,category:`space`},{prefix:/^(?:size|sizing)(?:\.|$)/i,category:`size`},{prefix:/^(?:radius|rounded|radii)(?:\.|$)/i,category:`radius`},{prefix:/^(?:z-?index|zindex|elevation)(?:\.|$)/i,category:`zIndex`}];function T(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function E(e){return e===!0||e===`true`||e===1}function D(e){return E(e.palette)||E(e.$palette)?!0:k(e)===`palette`}function ee(e,t){return(e===`palette`||e===`$palette`)&&(typeof t==`boolean`||typeof t==`number`||typeof t==`string`)}function O(e){return e===!0||e===`true`||e===1}function te(e){return O(e.primitive)||O(e.$primitive)?!0:k(e)===`primitive`}function ne(e,t){return(e===`primitive`||e===`$primitive`)&&(typeof t==`boolean`||typeof t==`number`||typeof t==`string`)}function re(e,t){return(e===`theme`||e===`$theme`)&&typeof t==`string`}function ie(e){if(typeof e.theme==`string`&&e.theme.length>0)return e.theme;if(typeof e.$theme==`string`&&e.$theme.length>0)return e.$theme}function ae(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function k(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function oe(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 se(e,t){for(let{prefix:t,category:n}of w)if(t.test(e))return n;if(t===`color`||t===`palette`)return`color`;if(t===`shadow`)return y.test(e)?`insetShadow`:b.test(e)?`dropShadow`:x.test(e)?`textShadow`:`shadow`;if(t===`dimension`){if(g.test(e))return`fontSize`;if(S.test(e))return`blur`;if(/(?:^|\.)(?:space|spacing|gap)(?:\.|$)/i.test(e)||/(?:^|\.)inset(?:\.|$)/i.test(e))return`space`;if(/radius|rounded/i.test(e))return`radius`;if(/z-?index|elevation/i.test(e))return`zIndex`;if(/(?:^|\.)(?:size|sizing)(?:\.|$)/i.test(e)||/(?:^|\.)(?:width|height)(?:\.|$)/i.test(e))return`size`}if(t===`number`&&/z-?index|elevation/i.test(e))return`zIndex`;if(t===`fontWeight`||_.test(e))return`fontWeight`}function A(e){return e.flatMap(e=>e.split(/[-_\s]+/)).filter(Boolean).map((e,t)=>{if(/^\d/.test(e))return e;let n=e.toLowerCase();return t===0?n:`${n.charAt(0).toUpperCase()}${n.slice(1)}`}).join(``)}function ce(e){let t=e.split(`.`).filter(Boolean),n=t[0];n&&/^(?:color|colours?|palette|primitive|space|spacing|gap|inset|shadow|inset-shadow|drop-shadow|text-shadow|font-size|fontSize|font-weight|fontWeight|size|sizing|radius|rounded|radii|z-?index|zindex|elevation|blur)$/i.test(n)&&t.shift();let r=t.length>0?t:e.split(`.`).slice(-1);return r.length===1&&/^(?:DEFAULT|default)$/i.test(r[0]??``)?`true`:A(r)}function le(e,t,r,a,o,s,c){if(!i(e))return;let l=o||te(e)||D(e),u=k(e,r),d=ie(e)??s;if(T(e)){let r=oe(e),i=t.join(`.`),o=se(i,u)??(l||u===`primitive`||u===`palette`?`color`:void 0),s=n(r,u),f=o&&C.has(o)||u===`color`||u===`palette`||u===`primitive`||u===`shadow`?s:h(r,u);c.push({path:i,type:u===`palette`||u===`primitive`?`color`:u,value:r,cssValue:s,tamaguiValue:f,category:o,tokenKey:o?ce(i):void 0,description:ae(e),theme:a,...d?{childTheme:d}:{},...l?{primitive:!0}:{}});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)&&n!==`$palette`&&n!==`$primitive`||ee(n,r)||ne(n,r)||re(n,r)||le(r,[...t,n],u,a,l,d,c)}function ue(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let t of a(e)){let e=t.id==="default"?void 0:t.id;le(t.tokens,[],void 0,e,!1,void 0,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}const de=/^\{([^{}]+)\}$/,fe=/^(?:typography|type|text)$/i,pe=/^(?:font|fonts|font-family|fontFamily)$/i,me=/^(?:font-size|fontSize)$/i,he=/^(?:font-weight|fontWeight)$/i,ge=/^(?:line-height|lineHeight|leading)$/i,_e=/^(?:letter-spacing|letterSpacing|tracking)$/i,ve=/^(?:[a-z]{2}(?:-[A-Z]{2})?|cn|zh|jp|ja|kr|ko|ar|he|th|hi|ru|french|mandarin|chinese|japanese|korean|arabic|hebrew)$/i,ye=[`fontFamily`,`font-family`,`family`],be=[`fontSize`,`font-size`,`size`],xe=[`fontWeight`,`font-weight`,`weight`],Se=[`lineHeight`,`line-height`,`leading`],Ce=[`letterSpacing`,`letter-spacing`,`tracking`],we={1:12,2:14,3:16,4:18,5:20,6:24,7:28,8:32,9:40,10:48};function j(e){if(typeof e==`string`)return de.exec(e.trim())?.[1]?.trim()}function M(e,t){let n=j(e);if(!n)return e;let r=t.get(n),i=new Set([n]);for(let e=0;e<8&&r;e++){let e=j(r.value);if(!e||i.has(e))return r.value;i.add(e),r=t.get(e)}return r?.value??e}function N(e,t){for(let n of t)if(e[n]!==void 0&&e[n]!==null)return e[n]}function P(e){return(e.split(`,`)[0]?.trim()??e).replaceAll(/^["']|["']$/g,``)}function Te(e){if(typeof e==`string`){let t=e.trim();return t.length===0||j(t)?void 0:t}if(Array.isArray(e)&&e.every(e=>typeof e==`string`)){let t=e.map(e=>e.trim()).filter(Boolean);return t.length>0?t.join(`, `):void 0}}function Ee(e){return Number.isInteger(e)?e:Math.round(e*1e3)/1e3}function F(e){if(e==null)return;let t=h(e);if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=/^(-?\d+(?:\.\d+)?)%$/.exec(t.trim());if(e)return Number.parseFloat(e[1])/100}}function De(e){if(typeof e==`number`&&Number.isFinite(e))return String(e);if(typeof e==`string`){let t=e.trim();if(t.length===0||j(t))return;let n=Number(t);return Number.isNaN(n)?t:String(n)}let t=h(e);if(typeof t==`number`&&Number.isFinite(t))return String(t);if(typeof t==`string`&&t.length>0)return t}function Oe(e,t){let n=F(e);if(n!=null)return Ee(t!=null&&n>0&&n<=4?n*t:n)}function I(e,t){return t.test(e.split(`.`)[0]??``)}function ke(e){return e.split(`.`).filter(Boolean).at(-1)??e}function L(e,t){let n=e.split(`.`).filter(Boolean);return n[0]&&t.test(n[0])&&n.shift(),n}function R(e){let t=e.flatMap(e=>e.split(`-`)).filter(Boolean);return t.length===0?`body`:t.map((e,t)=>t===0?`${e.charAt(0).toLowerCase()}${e.slice(1)}`:`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(``)}function z(e){switch(e.toLowerCase()){case`sans`:case`body`:case`serif`:return`body`;case`monospace`:case`mono`:return`mono`;default:return R([e])}}function Ae(e){return e.role?z(e.role):z(e.name)}function je(e){let t=L(e,fe);if(t.length===0)return`body`;let n=t.at(-1);return n&&t.length>=2&&ve.test(n)&&!n.includes(`_`)?`${t.slice(0,-1).join(`-`)}_${n}`:t.join(`-`)}function Me(e){return z(L(e,pe)[0]??ke(e))}function Ne(e,t){let n=L(e,t);return n.length===0||n.length===1&&/^(?:DEFAULT|default)$/i.test(n[0])?`true`:R(n)}function Pe(e){return e.type===`typography`&&i(e.value)}function Fe(e){return e.category===`fontSize`||e.category===`fontWeight`||Ie(e)||Le(e)||Re(e)||ze(e)?!1:e.type===`fontFamily`||I(e.path,pe)}function Ie(e){return e.category===`fontSize`||I(e.path,me)}function Le(e){return e.category===`fontWeight`||e.type===`fontWeight`||I(e.path,he)}function Re(e){return I(e.path,ge)}function ze(e){return I(e.path,_e)}function Be(e,t){if(!e.has(t))return t;let n=2,r=`${t}${n}`;for(;e.has(r);)n++,r=`${t}${n}`;return r}function Ve(e){let t=new Map;for(let n of Object.values(e)){let e=Ae(n);t.has(e)&&(e=Be(t,R([n.name]))),t.set(e,n)}return t}function He(e,t,n){if(!e)return;let r=Object.values(e);if(r.length===0)return;if(n){let e=n.split(`.`).filter(Boolean).at(-1);if(e){let t=r.find(t=>t.role===e||t.name.toLowerCase()===e.toLowerCase());if(t)return t}}if(!t)return;let i=P(t).toLowerCase();return r.find(e=>f(e).toLowerCase()===i||e.title.toLowerCase()===i||e.name.toLowerCase()===i)}function Ue(e){let t=new Map;for(let n of e.files){let e=String(n.weight??400),r=c(n.path).replace(/\.[^.]+$/,``),i=t.get(e)??{};n.style===`italic`||n.style===`oblique`?i.italic=r:i.normal=r,t.set(e,i)}if(t.size!==0)return`{\n${[...t.entries()].toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0})).map(([e,t])=>{let n=[];return t.normal&&n.push(`normal: ${m(t.normal)}`),t.italic&&n.push(`italic: ${m(t.italic)}`),` ${e}: { ${n.join(`, `)} }`}).join(`,
3
- `)}\n }`}function B(e,t){return{...e,webFamily:d(t),nativeFamily:f(t),face:t.source===`local`?Ue(t):e.face}}function V(e){return{key:e,webFamily:`system-ui, sans-serif`,nativeFamily:`system-ui`,size:{},lineHeight:{},weight:{},letterSpacing:{}}}function We(e,t){return{...e,webFamily:t,nativeFamily:P(t)}}const Ge=/^(?:font-size|fontSize|font-weight|fontWeight|line-height|lineHeight|leading|letter-spacing|letterSpacing|tracking)$/i;function H(e,t){let n={true:e},r=j(t);if(!r)return n;let i=Ne(r,Ge);return i&&i!==`true`&&(n[i]=e),n}function Ke(e){return Object.keys(e.size).length>0?e:{...e,size:{...we}}}function qe(e,t,n,r){if(!i(t.value))return e;let a=N(t.value,ye),o=j(a),s=Te(M(a,n)),c=He(r,s,o),l=e;c?l=B(l,c):s&&(l=We(l,s));let u=N(t.value,be),d=F(M(u,n));d!=null&&(l={...l,size:H(d,u)});let f=N(t.value,xe),p=De(M(f,n));p&&(l={...l,weight:H(p,f)});let m=N(t.value,Ce),h=F(M(m,n));h!=null&&(l={...l,letterSpacing:H(h,m)});let g=N(t.value,Se),_=Oe(M(g,n),l.size.true??d);return _!=null&&(l={...l,lineHeight:H(_,g)}),Je(l)}function Je(e){let t=Object.keys(e.size);if(t.length===0)return e;let n=e=>{let n=e.true??Object.values(e)[0];if(n==null)return e;let r={...e};for(let e of t)r[e]??=n;return r};return{...e,lineHeight:Object.keys(e.lineHeight).length>0?n(e.lineHeight):e.lineHeight,weight:Object.keys(e.weight).length>0?n(e.weight):e.weight,letterSpacing:Object.keys(e.letterSpacing).length>0?n(e.letterSpacing):e.letterSpacing}}function Ye(e,t){let n=new Map(e.map(e=>[e.path,e])),r=new Map,i=e=>{r.set(e.key,e)};if(t)for(let[e,n]of Ve(t))i(B(V(e),n));for(let a of e){if(!Fe(a)||Pe(a))continue;let e=Me(a.path),o=Te(M(a.value,n)),s=r.get(e)??V(e),c=He(t,o,a.path),l=s;c?l=B(l,c):(o&&s.webFamily===V(e).webFamily||o&&!r.has(e))&&(l=We(l,o)),i(l)}for(let a of e){if(!Pe(a))continue;let e=je(a.path);i(qe(r.get(e)??V(e),a,n,t))}return[...r.values()].map(Ke).toSorted((e,t)=>e.key.localeCompare(t.key))}function Xe(e){return/^\d+$/.test(e)||/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}function U(e,t=4){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0)),i=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return i.length===0?`{}`:`{\n${i.map(([e,t])=>`${n}${Xe(e)}: ${m(t)}`).join(`,
4
- `)}\n${r}}`}function Ze(e,t){let n=`${e.split(`-`).filter(Boolean).map((e,t)=>t===0?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(``).replaceAll(/[^\w$]/g,``)||`font${t}`}Font`;return/^[A-Z_$]/i.test(n)?n:`font${t}`}function Qe(e,t){let n=m(e.webFamily),r=m(e.nativeFamily),i=[n===r?` family: ${n}`:` family: isWeb ? ${n} : ${r}`,` size: ${U(e.size)}`];return Object.keys(e.lineHeight).length>0&&i.push(` lineHeight: ${U(e.lineHeight)}`),Object.keys(e.weight).length>0&&i.push(` weight: ${U(e.weight)}`),Object.keys(e.letterSpacing).length>0&&i.push(` letterSpacing: ${U(e.letterSpacing)}`),e.face&&i.push(` face: ${e.face}`),`const ${t} = createFont({\n${i.join(`,
5
- `)}\n});`}function $e(e){return`# Installing Tamagui Config
2
+ `,`\\n`).replaceAll(`\r`,`\\r`)}function m(e){return typeof e==`string`?`"${p(e)}"`:typeof e==`number`||typeof e==`boolean`?String(e):e==null?`undefined`:JSON.stringify(e)}function h(e,t){if(typeof e==`number`)return e;if(typeof e==`boolean`)return Number(e);if(i(e)&&typeof e.value==`number`&&typeof e.unit==`string`){let t=e.unit.toLowerCase();return t===`px`||t===``?e.value:t===`rem`?e.value*16:`${e.value}${e.unit}`}if(typeof e==`string`){let t=/^(-?\d+(?:\.\d+)?)px$/i.exec(e.trim());if(t)return Number(t[1]);let n=/^(-?\d+(?:\.\d+)?)rem$/i.exec(e.trim());if(n)return Number(n[1])*16;let r=Number(e);return!Number.isNaN(r)&&e.trim()!==``?r:e}return r(e,t)}const g=/^(?:font-size|fontSize)(?:\.|$)/i,_=/^(?:font-weight|fontWeight)(?:\.|$)/i,v=/^shadow(?:\.|$)/i,y=/^inset-shadow(?:\.|$)/i,b=/^drop-shadow(?:\.|$)/i,x=/^text-shadow(?:\.|$)/i,S=/^(?:blur|blur-?radius)(?:\.|$)/i,C=new Set([`color`,`shadow`,`insetShadow`,`dropShadow`,`textShadow`]),w=[{prefix:/^(?:color|colours?|palette)(?:\.|$)/i,category:`color`},{prefix:g,category:`fontSize`},{prefix:_,category:`fontWeight`},{prefix:b,category:`dropShadow`},{prefix:y,category:`insetShadow`},{prefix:x,category:`textShadow`},{prefix:v,category:`shadow`},{prefix:S,category:`blur`},{prefix:/^(?:space|spacing|gap)(?:\.|$)/i,category:`space`},{prefix:/^inset(?:\.|$)/i,category:`space`},{prefix:/^(?:size|sizing)(?:\.|$)/i,category:`size`},{prefix:/^(?:radius|rounded|radii)(?:\.|$)/i,category:`radius`},{prefix:/^(?:z-?index|zindex|elevation)(?:\.|$)/i,category:`zIndex`}];function T(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function E(e){return e===!0||e===`true`||e===1}function D(e){return E(e.palette)||E(e.$palette)?!0:O(e)===`palette`}function ee(e,t){return(e===`palette`||e===`$palette`)&&(typeof t==`boolean`||typeof t==`number`||typeof t==`string`)}function te(e){return e===!0||e===`true`||e===1}function ne(e){return te(e.primitive)||te(e.$primitive)?!0:O(e)===`primitive`}function re(e,t){return(e===`primitive`||e===`$primitive`)&&(typeof t==`boolean`||typeof t==`number`||typeof t==`string`)}function ie(e,t){return(e===`theme`||e===`$theme`)&&typeof t==`string`}function ae(e){if(typeof e.theme==`string`&&e.theme.length>0)return e.theme;if(typeof e.$theme==`string`&&e.$theme.length>0)return e.$theme}function oe(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function O(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function se(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 ce(e,t){for(let{prefix:t,category:n}of w)if(t.test(e))return n;if(t===`color`||t===`palette`)return`color`;if(t===`shadow`)return y.test(e)?`insetShadow`:b.test(e)?`dropShadow`:x.test(e)?`textShadow`:`shadow`;if(t===`dimension`){if(g.test(e))return`fontSize`;if(S.test(e))return`blur`;if(/(?:^|\.)(?:space|spacing|gap)(?:\.|$)/i.test(e)||/(?:^|\.)inset(?:\.|$)/i.test(e))return`space`;if(/radius|rounded/i.test(e))return`radius`;if(/z-?index|elevation/i.test(e))return`zIndex`;if(/(?:^|\.)(?:size|sizing)(?:\.|$)/i.test(e)||/(?:^|\.)(?:width|height)(?:\.|$)/i.test(e))return`size`}if(t===`number`&&/z-?index|elevation/i.test(e))return`zIndex`;if(t===`fontWeight`||_.test(e))return`fontWeight`}function k(e){return e.flatMap(e=>e.split(/[-_\s]+/)).filter(Boolean).map((e,t)=>{if(/^\d/.test(e))return e;let n=e.toLowerCase();return t===0?n:`${n.charAt(0).toUpperCase()}${n.slice(1)}`}).join(``)}function le(e){let t=e.split(`.`).filter(Boolean),n=t[0];n&&/^(?:color|colours?|palette|primitive|space|spacing|gap|inset|shadow|inset-shadow|drop-shadow|text-shadow|font-size|fontSize|font-weight|fontWeight|size|sizing|radius|rounded|radii|z-?index|zindex|elevation|blur)$/i.test(n)&&t.shift();let r=t.length>0?t:e.split(`.`).slice(-1);return r.length===1&&/^(?:DEFAULT|default)$/i.test(r[0]??``)?`true`:k(r)}function ue(e,t,r,a,o,s,c){if(!i(e))return;let l=o||ne(e)||D(e),u=O(e,r),d=ae(e)??s;if(T(e)){let r=se(e),i=t.join(`.`),o=ce(i,u)??(l||u===`primitive`||u===`palette`?`color`:void 0),s=n(r,u),f=o&&C.has(o)||u===`color`||u===`palette`||u===`primitive`||u===`shadow`?s:h(r,u);c.push({path:i,type:u===`palette`||u===`primitive`?`color`:u,value:r,cssValue:s,tamaguiValue:f,category:o,tokenKey:o?le(i):void 0,description:oe(e),theme:a,...d?{childTheme:d}:{},...l?{primitive:!0}:{}});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)&&n!==`$palette`&&n!==`$primitive`||ee(n,r)||re(n,r)||ie(n,r)||ue(r,[...t,n],u,a,l,d,c)}function de(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let t of a(e)){let e=t.id==="default"?void 0:t.id;ue(t.tokens,[],void 0,e,!1,void 0,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}const fe=/^\{([^{}]+)\}$/,pe=/^(?:typography|type|text)$/i,me=/^(?:font|fonts|font-family|fontFamily)$/i,he=/^(?:font-size|fontSize)$/i,ge=/^(?:font-weight|fontWeight)$/i,_e=/^(?:line-height|lineHeight|leading)$/i,ve=/^(?:letter-spacing|letterSpacing|tracking)$/i,ye=/^(?:[a-z]{2}(?:-[A-Z]{2})?|cn|zh|jp|ja|kr|ko|ar|he|th|hi|ru|french|mandarin|chinese|japanese|korean|arabic|hebrew)$/i,be=[`fontFamily`,`font-family`,`family`],xe=[`fontSize`,`font-size`,`size`],Se=[`fontWeight`,`font-weight`,`weight`],Ce=[`lineHeight`,`line-height`,`leading`],we=[`letterSpacing`,`letter-spacing`,`tracking`],Te={1:12,2:14,3:16,4:18,5:20,6:24,7:28,8:32,9:40,10:48};function A(e){if(typeof e==`string`)return fe.exec(e.trim())?.[1]?.trim()}function j(e,t){let n=A(e);if(!n)return e;let r=t.get(n),i=new Set([n]);for(let e=0;e<8&&r;e++){let e=A(r.value);if(!e||i.has(e))return r.value;i.add(e),r=t.get(e)}return r?.value??e}function M(e,t){for(let n of t)if(e[n]!==void 0&&e[n]!==null)return e[n]}function Ee(e){return(e.split(`,`)[0]?.trim()??e).replaceAll(/^["']|["']$/g,``)}function De(e){if(typeof e==`string`){let t=e.trim();return t.length===0||A(t)?void 0:t}if(Array.isArray(e)&&e.every(e=>typeof e==`string`)){let t=e.map(e=>e.trim()).filter(Boolean);return t.length>0?t.join(`, `):void 0}}function Oe(e){return Number.isInteger(e)?e:Math.round(e*1e3)/1e3}function N(e){if(e==null)return;let t=h(e);if(typeof t==`number`&&Number.isFinite(t))return t;if(typeof t==`string`){let e=/^(-?\d+(?:\.\d+)?)%$/.exec(t.trim());if(e)return Number.parseFloat(e[1])/100}}function ke(e){if(typeof e==`number`&&Number.isFinite(e))return String(e);if(typeof e==`string`){let t=e.trim();if(t.length===0||A(t))return;let n=Number(t);return Number.isNaN(n)?t:String(n)}let t=h(e);if(typeof t==`number`&&Number.isFinite(t))return String(t);if(typeof t==`string`&&t.length>0)return t}function Ae(e,t){let n=N(e);if(n!=null)return Oe(t!=null&&n>0&&n<=4?n*t:n)}function P(e,t){return t.test(e.split(`.`)[0]??``)}function je(e){return e.split(`.`).filter(Boolean).at(-1)??e}function F(e,t){let n=e.split(`.`).filter(Boolean);return n[0]&&t.test(n[0])&&n.shift(),n}function I(e){let t=e.flatMap(e=>e.split(`-`)).filter(Boolean);return t.length===0?`body`:t.map((e,t)=>t===0?`${e.charAt(0).toLowerCase()}${e.slice(1)}`:`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(``)}function L(e){switch(e.toLowerCase()){case`sans`:case`body`:case`serif`:return`body`;case`monospace`:case`mono`:return`mono`;default:return I([e])}}function Me(e){return e.role?L(e.role):L(e.name)}function Ne(e){let t=F(e,pe);if(t.length===0)return`body`;let n=t.at(-1);return n&&t.length>=2&&ye.test(n)&&!n.includes(`_`)?`${t.slice(0,-1).join(`-`)}_${n}`:t.join(`-`)}function Pe(e){return L(F(e,me)[0]??je(e))}function Fe(e,t){let n=F(e,t);return n.length===0||n.length===1&&/^(?:DEFAULT|default)$/i.test(n[0])?`true`:I(n)}function Ie(e){return e.type===`typography`&&i(e.value)}function Le(e){return e.category===`fontSize`||e.category===`fontWeight`||Re(e)||ze(e)||Be(e)||Ve(e)?!1:e.type===`fontFamily`||P(e.path,me)}function Re(e){return e.category===`fontSize`||P(e.path,he)}function ze(e){return e.category===`fontWeight`||e.type===`fontWeight`||P(e.path,ge)}function Be(e){return P(e.path,_e)}function Ve(e){return P(e.path,ve)}function He(e,t){if(!e.has(t))return t;let n=2,r=`${t}${n}`;for(;e.has(r);)n++,r=`${t}${n}`;return r}function Ue(e){let t=new Map;for(let n of Object.values(e)){let e=Me(n);t.has(e)&&(e=He(t,I([n.name]))),t.set(e,n)}return t}function We(e,t,n){if(!e)return;let r=Object.values(e);if(r.length===0)return;if(n){let e=n.split(`.`).filter(Boolean).at(-1);if(e){let t=r.find(t=>t.role===e||t.name.toLowerCase()===e.toLowerCase());if(t)return t}}if(!t)return;let i=Ee(t).toLowerCase();return r.find(e=>f(e).toLowerCase()===i||e.title.toLowerCase()===i||e.name.toLowerCase()===i)}function Ge(e){let t=new Map;for(let n of e.files){let e=String(n.weight??400),r=c(n.path).replace(/\.[^.]+$/,``),i=t.get(e)??{};n.style===`italic`||n.style===`oblique`?i.italic=r:i.normal=r,t.set(e,i)}if(t.size!==0)return`{\n${[...t.entries()].toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0})).map(([e,t])=>{let n=[];return t.normal&&n.push(`normal: ${m(t.normal)}`),t.italic&&n.push(`italic: ${m(t.italic)}`),` ${e}: { ${n.join(`, `)} }`}).join(`,
3
+ `)}\n }`}function R(e,t){return{...e,webFamily:d(t),nativeFamily:f(t),face:t.source===`local`?Ge(t):e.face}}function z(e){return{key:e,webFamily:`system-ui, sans-serif`,nativeFamily:`system-ui`,size:{},lineHeight:{},weight:{},letterSpacing:{}}}function Ke(e,t){return{...e,webFamily:t,nativeFamily:Ee(t)}}const qe=/^(?:font-size|fontSize|font-weight|fontWeight|line-height|lineHeight|leading|letter-spacing|letterSpacing|tracking)$/i;function B(e,t){let n={true:e},r=A(t);if(!r)return n;let i=Fe(r,qe);return i&&i!==`true`&&(n[i]=e),n}function Je(e){return Object.keys(e.size).length>0?e:{...e,size:{...Te}}}function Ye(e,t,n,r){if(!i(t.value))return e;let a=M(t.value,be),o=A(a),s=De(j(a,n)),c=We(r,s,o),l=e;c?l=R(l,c):s&&(l=Ke(l,s));let u=M(t.value,xe),d=N(j(u,n));d!=null&&(l={...l,size:B(d,u)});let f=M(t.value,Se),p=ke(j(f,n));p&&(l={...l,weight:B(p,f)});let m=M(t.value,we),h=N(j(m,n));h!=null&&(l={...l,letterSpacing:B(h,m)});let g=M(t.value,Ce),_=Ae(j(g,n),l.size.true??d);return _!=null&&(l={...l,lineHeight:B(_,g)}),Xe(l)}function Xe(e){let t=Object.keys(e.size);if(t.length===0)return e;let n=e=>{let n=e.true??Object.values(e)[0];if(n==null)return e;let r={...e};for(let e of t)r[e]??=n;return r};return{...e,lineHeight:Object.keys(e.lineHeight).length>0?n(e.lineHeight):e.lineHeight,weight:Object.keys(e.weight).length>0?n(e.weight):e.weight,letterSpacing:Object.keys(e.letterSpacing).length>0?n(e.letterSpacing):e.letterSpacing}}function V(e,t){let n=new Map(e.map(e=>[e.path,e])),r=new Map,i=e=>{r.set(e.key,e)};if(t)for(let[e,n]of Ue(t))i(R(z(e),n));for(let a of e){if(!Le(a)||Ie(a))continue;let e=Pe(a.path),o=De(j(a.value,n)),s=r.get(e)??z(e),c=We(t,o,a.path),l=s;c?l=R(l,c):(o&&s.webFamily===z(e).webFamily||o&&!r.has(e))&&(l=Ke(l,o)),i(l)}for(let a of e){if(!Ie(a))continue;let e=Ne(a.path);i(Ye(r.get(e)??z(e),a,n,t))}return[...r.values()].map(Je).toSorted((e,t)=>e.key.localeCompare(t.key))}function Ze(e){return/^\d+$/.test(e)||/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}function H(e,t=4){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0)),i=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return i.length===0?`{}`:`{\n${i.map(([e,t])=>`${n}${Ze(e)}: ${m(t)}`).join(`,
4
+ `)}\n${r}}`}function Qe(e,t){let n=`${e.split(`-`).filter(Boolean).map((e,t)=>t===0?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`).join(``).replaceAll(/[^\w$]/g,``)||`font${t}`}Font`;return/^[A-Z_$]/i.test(n)?n:`font${t}`}function $e(e,t){let n=m(e.webFamily),r=m(e.nativeFamily),i=[n===r?` family: ${n}`:` family: isWeb ? ${n} : ${r}`,` size: ${H(e.size)}`];return Object.keys(e.lineHeight).length>0&&i.push(` lineHeight: ${H(e.lineHeight)}`),Object.keys(e.weight).length>0&&i.push(` weight: ${H(e.weight)}`),Object.keys(e.letterSpacing).length>0&&i.push(` letterSpacing: ${H(e.letterSpacing)}`),e.face&&i.push(` face: ${e.face}`),`const ${t} = createFont({\n${i.join(`,
5
+ `)}\n});`}function et(e){return`# Installing Tamagui Config
6
6
 
7
7
  Generated by \`@razorwind/tamagui\`.
8
8
 
@@ -48,28 +48,28 @@ export function App() {
48
48
  ## Regenerate
49
49
 
50
50
  Re-run Razorwind generate when tokens change so \`${e.outputPath}\` stays aligned with your design system.
51
- `}const et=new Set([`default`,`light`,`theme`]),tt=/^base(?:[A-Z]\w*|[._-].+)?$/i,nt=/^ring(?:\.|$)/i,rt={css:`@tamagui/config/v5-css`,rn:`@tamagui/config/v5-rn`,reanimated:`@tamagui/config/v5-reanimated`,motion:`@tamagui/config/v5-motion`};function it(e){return et.has(e)}function at(e){return e===`dark`}function W(e,t){let n=new Map,r=t===`dark`?at:it;for(let t of e){let e=t.theme?.toLowerCase();(!e||tt.test(e))&&n.set(t.path,t)}for(let t of e){let e=t.theme?.toLowerCase();e&&r(e)&&n.set(t.path,t)}return[...n.values()]}function ot(e){return nt.test(e.path)&&e.category===`shadow`}const st=new Set([`shadow`,`insetShadow`,`dropShadow`,`textShadow`,`boxShadow`]);function ct(e){return!e.primitive&&!!e.tokenKey&&(e.type===`shadow`||e.category!=null&&st.has(e.category))}const lt=new Set([`fontSize`,`blur`]),ut=[`space`,`size`,`radius`,`zIndex`,`blur`,`fontSize`,`shadow`,`insetShadow`,`dropShadow`,`textShadow`,`boxShadow`,`fontWeight`];function dt(e){return/^px\(-?\d/.test(e)}function ft(e){if(e.category===`radius`&&e.tokenKey?.startsWith(`borderRadius`)){let t=e.tokenKey.replace(/^borderRadius/,``);return t?A([t]):e.tokenKey}return e.tokenKey??``}function pt(e,t){let n=$(e,t.byPath,t.byCssVar).tamaguiValue;if(e.category&&lt.has(e.category)&&typeof n==`number`)return`px(${n})`;if(typeof n==`string`){let r=Pt(n,t);return e.category===`dropShadow`?mt(r):r}return n}function mt(e){return e.includes(`drop-shadow(`)?e:e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.replace(/^inset\s+/i,``).split(/\s+/);if(t.length>=5){let[e,n,r]=t;return`drop-shadow(${e} ${n} ${r} ${t.slice(4).join(` `)})`}return`drop-shadow(${e.replace(/^inset\s+/i,``)})`}).join(` `)}function ht(e){let t={},n=At(e);for(let r of e){if(!r.category||r.category===`color`||!r.tokenKey||ot(r))continue;let e=ft(r);if(!e)continue;let i=pt(r,n);if(typeof i==`string`&&Nt(i))continue;let a=t[r.category]??{};a[e]=i,t[r.category]=a}return t}function G(e){let t=e.path.replace(/^color\./i,``).replaceAll(`.`,``);return e.theme?`${e.theme}${t[0]?.toUpperCase()??``}${t.slice(1)}`:t}function K(e){return`tokens.color.${e}.val`}const gt=[`base`,`gray`,`grey`,`neutral`],_t=[`accent`,`brand`],vt=[`"#ffffff"`,`"#000000"`],yt=[`"#000000"`,`"#ffffff"`];function bt(e){if(e.category!==`color`||!e.primitive)return;let t=e.path.replace(/^color\./i,``).split(`.`).filter(Boolean),n=t.at(-1);if(!n||t.length<2)return;let r=Number(n);if(Number.isFinite(r))return{name:t.slice(0,-1).join(`.`).toLowerCase(),step:r}}function xt(e,t){let n=G(e);if(n in t)return K(n);let r=typeof e.cssValue==`string`&&e.cssValue.length>0?e.cssValue:typeof e.tamaguiValue==`string`?e.tamaguiValue:void 0;return r?m(r):`"#000000"`}function St(e,t,n){let r=new Map;for(let t of e){let e=bt(t);if(!e)continue;let i=r.get(e.name)??[];i.push({step:e.step,expression:xt(t,n)}),r.set(e.name,i)}for(let e of t){let t=r.get(e);if(!t||t.length===0)continue;let n=new Map;for(let e of t.toSorted((e,t)=>e.step-t.step))n.set(e.step,e.expression);return[...n.values()]}}function q(e,t){return e.length>=2?e:e.length===1?[e[0],t[1]??`"#000000"`]:[...t]}function Ct(e,t,n,r,i,a){let o=St(e,n,r),s=St(t,n,r);if(o&&s)return{light:q(o,i),dark:q(s,a)};if(o){let e=q(o,i);return{light:e,dark:[...e].toReversed()}}if(s){let e=q(s,a);return{light:[...e].toReversed(),dark:e}}return{light:[...i],dark:[...a]}}function wt(e,t){let n={},r=(e,t)=>{let r=t.cssValue;typeof r!=`string`||r.length===0||Mt(r)||r===`[object Object]`||(n[e]=r)};for(let t of e)t.tokenKey&&(t.primitive?r(G(t),t):r(t.tokenKey,t));for(let e of t)!e.tokenKey||!e.primitive||r(G(e),e);return n}function J(e,t,n,r){let i=n[r];if(typeof i!=`string`)return!1;let a=Q(e,t);return a!=null&&a===i}function Tt(e,t,n){if(e.tokenKey&&J(e,t,n,e.tokenKey))return K(e.tokenKey);let r=$(e,t.byPath,t.byCssVar);if(r.tokenKey&&J(e,t,n,r.tokenKey))return K(r.tokenKey);if(r.primitive){let i=G(r);if(J(e,t,n,i))return K(i)}let i=Q(e,t);if(i)return m(i)}function Y(e,t=2){let n=` `.repeat(t),r=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return r.length===0?`{}`:`{\n${r.map(([e,t])=>{let r=typeof t==`string`&&dt(t)?t:m(t);return`${n}${/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}: ${r}`}).join(`,
51
+ `}const tt=new Set([`default`,`light`,`theme`]),nt=/^base(?:[A-Z]\w*|[._-].+)?$/i,rt=/^ring(?:\.|$)/i,it={css:`@tamagui/config/v5-css`,rn:`@tamagui/config/v5-rn`,reanimated:`@tamagui/config/v5-reanimated`,motion:`@tamagui/config/v5-motion`};function at(e){return tt.has(e)}function ot(e){return e===`dark`}function U(e,t){let n=new Map,r=t===`dark`?ot:at;for(let t of e){let e=t.theme?.toLowerCase();(!e||nt.test(e))&&n.set(t.path,t)}for(let t of e){let e=t.theme?.toLowerCase();e&&r(e)&&n.set(t.path,t)}return[...n.values()]}function st(e){return rt.test(e.path)&&e.category===`shadow`}const ct=new Set([`shadow`,`insetShadow`,`dropShadow`,`textShadow`,`boxShadow`]);function lt(e){return!e.primitive&&!!e.tokenKey&&(e.type===`shadow`||e.category!=null&&ct.has(e.category))}const ut=new Set([`fontSize`,`blur`]),dt=[`space`,`size`,`radius`,`zIndex`,`blur`,`fontSize`,`shadow`,`insetShadow`,`dropShadow`,`textShadow`,`boxShadow`,`fontWeight`];function ft(e){return/^px\(-?\d/.test(e)}function pt(e){if(e.category===`radius`&&e.tokenKey?.startsWith(`borderRadius`)){let t=e.tokenKey.replace(/^borderRadius/,``);return t?k([t]):e.tokenKey}return e.tokenKey??``}function mt(e,t){let n=$(e,t.byPath,t.byCssVar).tamaguiValue;if(e.category&&ut.has(e.category)&&typeof n==`number`)return`px(${n})`;if(typeof n==`string`){let r=It(n,t);return e.category===`dropShadow`?ht(r):r}return n}function ht(e){return e.includes(`drop-shadow(`)?e:e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.replace(/^inset\s+/i,``).split(/\s+/);if(t.length>=5){let[e,n,r]=t;return`drop-shadow(${e} ${n} ${r} ${t.slice(4).join(` `)})`}return`drop-shadow(${e.replace(/^inset\s+/i,``)})`}).join(` `)}function gt(e){let t={},n=Mt(e);for(let r of e){if(!r.category||r.category===`color`||!r.tokenKey||st(r))continue;let e=pt(r);if(!e)continue;let i=mt(r,n);if(typeof i==`string`&&Ft(i))continue;let a=t[r.category]??{};a[e]=i,t[r.category]=a}return t}function W(e){let t=e.path.replace(/^color\./i,``).replaceAll(`.`,``);return e.theme?`${e.theme}${t[0]?.toUpperCase()??``}${t.slice(1)}`:t}function G(e){return`tokens.color.${e}.val`}const _t=[`base`,`gray`,`grey`,`neutral`],vt=[`accent`,`brand`],yt=[`"#ffffff"`,`"#000000"`],bt=[`"#000000"`,`"#ffffff"`];function xt(e){if(e.category!==`color`||!e.primitive)return;let t=e.path.replace(/^color\./i,``).split(`.`).filter(Boolean),n=t.at(-1);if(!n||t.length<2)return;let r=Number(n);if(Number.isFinite(r))return{name:t.slice(0,-1).join(`.`).toLowerCase(),step:r}}function St(e,t){let n=W(e);if(n in t)return G(n);let r=typeof e.cssValue==`string`&&e.cssValue.length>0?e.cssValue:typeof e.tamaguiValue==`string`?e.tamaguiValue:void 0;return r?m(r):`"#000000"`}function Ct(e){let t=e.trim(),n=/^oklch\(\s*([0-9.]+)(%?)/i.exec(t);if(n){let e=Number(n[1]);return Number.isFinite(e)?n[2]===`%`||e>1?e/100:e:void 0}let r=/^#([\da-f]{3,8})$/i.exec(t);if(!r)return;let i=r[1],a,o,s;if(i.length===3||i.length===4)a=Number.parseInt(i[0]+i[0],16),o=Number.parseInt(i[1]+i[1],16),s=Number.parseInt(i[2]+i[2],16);else if(i.length===6||i.length===8)a=Number.parseInt(i.slice(0,2),16),o=Number.parseInt(i.slice(2,4),16),s=Number.parseInt(i.slice(4,6),16);else return;return(.2126*a+.7152*o+.0722*s)/255}function wt(e,t,n){let r=new Map;for(let t of e){let e=xt(t);if(!e)continue;let i=typeof t.cssValue==`string`&&t.cssValue.length>0?t.cssValue:void 0,a=r.get(e.name)??[];a.push({step:e.step,expression:St(t,n),lightness:i?Ct(i):void 0}),r.set(e.name,a)}for(let e of t){let t=r.get(e);if(!t||t.length===0)continue;let n=new Map;for(let e of t.toSorted((e,t)=>e.step-t.step))n.set(e.step,e);return[...n.values()]}}function K(e,t){if(e.filter(e=>e.lightness!=null).length>=2)return[...e].toSorted((e,n)=>{let r=e.lightness??.5,i=n.lightness??.5;return t===`light`?i-r:r-i}).map(e=>e.expression);let n=e.toSorted((e,t)=>e.step-t.step).map(e=>e.expression);return t===`light`?n:[...n].toReversed()}function q(e,t){return e.length>=2?e:e.length===1?[e[0],t[1]??`"#000000"`]:[...t]}function Tt(e,t,n,r,i,a){let o=wt(e,n,r),s=wt(t,n,r);if(o&&s)return{light:q(K(o,`light`),i),dark:q(K(s,`dark`),a)};if(o){let e=q(K(o,`light`),i);return{light:e,dark:[...e].toReversed()}}if(s){let e=q(K(s,`dark`),a);return{light:[...e].toReversed(),dark:e}}return{light:[...i],dark:[...a]}}function Et(e,t){let n={},r=(e,t)=>{let r=t.cssValue;typeof r!=`string`||r.length===0||Pt(r)||r===`[object Object]`||(n[e]=r)};for(let t of e)t.tokenKey&&(t.primitive?r(W(t),t):r(t.tokenKey,t));for(let e of t)!e.tokenKey||!e.primitive||r(W(e),e);return n}function J(e,t,n,r){let i=n[r];if(typeof i!=`string`)return!1;let a=Q(e,t);return a!=null&&a===i}function Dt(e,t,n){if(e.tokenKey&&J(e,t,n,e.tokenKey))return G(e.tokenKey);let r=$(e,t.byPath,t.byCssVar);if(r.tokenKey&&J(e,t,n,r.tokenKey))return G(r.tokenKey);if(r.primitive){let i=W(r);if(J(e,t,n,i))return G(i)}let i=Q(e,t);if(i)return m(i)}function Y(e,t=2){let n=` `.repeat(t),r=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return r.length===0?`{}`:`{\n${r.map(([e,t])=>{let r=typeof t==`string`&&ft(t)?t:m(t);return`${n}${/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}: ${r}`}).join(`,
52
52
  `)}\n${` `.repeat(Math.max(t-2,0))}}`}function X(e,t=2){let n=` `.repeat(t),r=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t,void 0,{numeric:!0}));return r.length===0?`{}`:`{\n${r.map(([e,t])=>`${n}${/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}: ${t}`).join(`,
53
- `)}\n${` `.repeat(Math.max(t-2,0))}}`}const Et=/^\{([^{}]+)\}$/,Dt=/\{([^{}]+)\}/g,Ot=/^var\((--[^),\s]+)(?:\s*,[^)]*)?\)$/,kt=/var\((--[^),\s]+)(?:\s*,[^)]*)?\)/g;function At(e){return{byPath:new Map(e.map(e=>[e.path,e])),byCssVar:new Map(e.map(e=>[s(e.path),e]))}}function jt(e){if(typeof e==`string`)return Et.exec(e.trim())?.[1]?.trim()}function Z(e){if(typeof e==`string`)return Ot.exec(e.trim())?.[1]}function Mt(e){return jt(e)!=null||Z(e)!=null}function Nt(e){return/var\(|\{[^{}]+\}/.test(e)}function Q(e,t){let n=$(e,t.byPath,t.byCssVar);if(n.category!=null&&n.category!==`color`)return;let r=[n.cssValue,n.tamaguiValue];for(let e of r)if(typeof e==`string`&&e.length>0&&!Mt(e))return e}function Pt(e,t){return e.replace(Dt,(e,n)=>{let r=t.byPath.get(n.trim());return r?Q(r,t)??e:e}).replace(kt,(e,n)=>{let r=t.byCssVar.get(n);return r?Q(r,t)??e:e})}function $(e,t,n){let r=e,i=new Set;for(let e=0;e<8;e++){if(i.has(r.path))return r;i.add(r.path);let e=jt(r.value);if(e){let n=t.get(e);if(!n||n.path===r.path)return r;r=n;continue}let a=Z(r.value)??Z(r.cssValue)??Z(r.tamaguiValue);if(a){let e=n.get(a);if(!e||e.path===r.path)return r;r=e;continue}return r}return r}function Ft(e,t){let n=t.toLowerCase(),r=e.split(/(?=[A-Z])/).filter(Boolean).filter(e=>e.toLowerCase()!==n);if(r.length!==0)return A(r)}function It(e){return e.category===`color`&&!e.primitive&&!!e.tokenKey}function Lt(e){return ct(e)&&A(e.path.split(`.`).filter(Boolean))||e.tokenKey}function Rt(e){let t=e.toLowerCase();return it(t)||at(t)}function zt(e,t,n){let r=Lt(t);if(!r)return;let i=t.childTheme?.trim();if(!i||Rt(i)){e.base[r]=n;return}let a=A([i]),o=Ft(r,a);if(!o)return;let s=e.children[a]??{};s[o]=n,e.children[a]=s}function Bt(e,t){let n=typeof e.tamaguiValue==`string`?e.tamaguiValue:e.cssValue;if(typeof n!=`string`||n.length===0)return;let r=Pt(n,t);return r.length===0||Nt(r)?void 0:m(e.category===`dropShadow`?mt(r):r)}function Vt(e,t){let n=At(e),r={base:{},children:{}};for(let i of e){if(It(i)){let e=Tt(i,n,t);e&&zt(r,i,e);continue}if(!ct(i))continue;let e=Bt(i,n);if(!e)continue;let a=i.childTheme?.trim();(a&&!Rt(a)||ot(i))&&zt(r,i,e)}return r}function Ht(e){let t=new Set;for(let n of e){for(let e of Object.keys(n.base))t.add(e);for(let e of Object.values(n.children))for(let n of Object.keys(e))t.add(n)}return[...t].toSorted((e,t)=>e.localeCompare(t,void 0,{numeric:!0}))}function Ut(e){return` ${/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}: string;`}function Wt(e,t){if(e.length!==0)return[`/**`,` * Theme values available on \`useTheme()\` and \`$\` style props for the ${t.specName||`design system`}.`,` *`," * Derived from semantic color tokens mapped by `createThemes`. Nested"," * themes (`light_primary`, `dark_danger`, …) come from each token's"," * `theme` / `$theme` property.",` *`,` * @see https://tamagui.dev/docs/intro/themes`,` */`,`export interface AppTheme {`,...e.map(Ut),`}`,``]}function Gt(e){return Object.keys(e).length>0}function Kt(e){return/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}function qt(e,t){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0));return`[\n${e.map(e=>`${n}${e}`).join(`,
54
- `)}\n${r}]`}function Jt(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
55
- ${r}light: ${qt(e,a)},
56
- ${r}dark: ${qt(t,a)}
57
- ${i}}`}function Yt(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
53
+ `)}\n${` `.repeat(Math.max(t-2,0))}}`}const Ot=/^\{([^{}]+)\}$/,kt=/\{([^{}]+)\}/g,At=/^var\((--[^),\s]+)(?:\s*,[^)]*)?\)$/,jt=/var\((--[^),\s]+)(?:\s*,[^)]*)?\)/g;function Mt(e){return{byPath:new Map(e.map(e=>[e.path,e])),byCssVar:new Map(e.map(e=>[s(e.path),e]))}}function Nt(e){if(typeof e==`string`)return Ot.exec(e.trim())?.[1]?.trim()}function Z(e){if(typeof e==`string`)return At.exec(e.trim())?.[1]}function Pt(e){return Nt(e)!=null||Z(e)!=null}function Ft(e){return/var\(|\{[^{}]+\}/.test(e)}function Q(e,t){let n=$(e,t.byPath,t.byCssVar);if(n.category!=null&&n.category!==`color`)return;let r=[n.cssValue,n.tamaguiValue];for(let e of r)if(typeof e==`string`&&e.length>0&&!Pt(e))return e}function It(e,t){return e.replace(kt,(e,n)=>{let r=t.byPath.get(n.trim());return r?Q(r,t)??e:e}).replace(jt,(e,n)=>{let r=t.byCssVar.get(n);return r?Q(r,t)??e:e})}function $(e,t,n){let r=e,i=new Set;for(let e=0;e<8;e++){if(i.has(r.path))return r;i.add(r.path);let e=Nt(r.value);if(e){let n=t.get(e);if(!n||n.path===r.path)return r;r=n;continue}let a=Z(r.value)??Z(r.cssValue)??Z(r.tamaguiValue);if(a){let e=n.get(a);if(!e||e.path===r.path)return r;r=e;continue}return r}return r}function Lt(e,t){let n=t.toLowerCase(),r=e.split(/(?=[A-Z])/).filter(Boolean).filter(e=>e.toLowerCase()!==n);if(r.length!==0)return k(r)}function Rt(e){return e.category===`color`&&!e.primitive&&!!e.tokenKey}function zt(e){return lt(e)&&k(e.path.split(`.`).filter(Boolean))||e.tokenKey}function Bt(e){let t=e.toLowerCase();return at(t)||ot(t)}function Vt(e,t,n){let r=zt(t);if(!r)return;let i=t.childTheme?.trim();if(!i||Bt(i)){e.base[r]=n;return}let a=k([i]),o=Lt(r,a);if(!o)return;let s=e.children[a]??{};s[o]=n,e.children[a]=s}function Ht(e,t){let n=typeof e.tamaguiValue==`string`?e.tamaguiValue:e.cssValue;if(typeof n!=`string`||n.length===0)return;let r=It(n,t);return r.length===0||Ft(r)?void 0:m(e.category===`dropShadow`?ht(r):r)}function Ut(e,t){let n=Mt(e),r={base:{},children:{}};for(let i of e){if(Rt(i)){let e=Dt(i,n,t);e&&Vt(r,i,e);continue}if(!lt(i))continue;let e=Ht(i,n);if(!e)continue;let a=i.childTheme?.trim();(a&&!Bt(a)||st(i))&&Vt(r,i,e)}return r}function Wt(e){let t=new Set;for(let n of e){for(let e of Object.keys(n.base))t.add(e);for(let e of Object.values(n.children))for(let n of Object.keys(e))t.add(n)}return[...t].toSorted((e,t)=>e.localeCompare(t,void 0,{numeric:!0}))}function Gt(e){return` ${/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}: string;`}function Kt(e,t){if(e.length!==0)return[`/**`,` * Theme values available on \`useTheme()\` and \`$\` style props for the ${t.specName||`design system`}.`,` *`," * Derived from semantic color tokens mapped by `createThemes`. Nested"," * themes (`light_primary`, `dark_danger`, …) come from each token's"," * `theme` / `$theme` property.",` *`,` * @see https://tamagui.dev/docs/intro/themes`,` */`,`export interface AppTheme {`,...e.map(Gt),`}`,``]}function qt(e){return Object.keys(e).length>0}function Jt(e){return/^[A-Z_$][\w$]*$/i.test(e)?e:m(e)}function Yt(e,t){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0));return`[\n${e.map(e=>`${n}${e}`).join(`,
54
+ `)}\n${r}]`}function Xt(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
55
+ ${r}light: ${Yt(e,a)},
56
+ ${r}dark: ${Yt(t,a)}
57
+ ${i}}`}function Zt(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
58
58
  ${r}light: ${X(e,a)},
59
59
  ${r}dark: ${X(t,a)}
60
- ${i}}`}function Xt(e,t){let n=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t));if(n.length===0)return`{}`;let r=` `.repeat(t),i=` `.repeat(Math.max(t-2,0)),a=t+2;return`{\n${n.map(([e,t])=>`${r}${Kt(e)}: ${X(t,a)}`).join(`,
61
- `)}\n${i}}`}function Zt(e,t){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0));return`{\n${e.map(e=>`${n}${Kt(e)}: {}`).join(`,
62
- `)}\n${r}}`}function Qt(e,t){return`const childThemeExtras: {
60
+ ${i}}`}function Qt(e,t){let n=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t));if(n.length===0)return`{}`;let r=` `.repeat(t),i=` `.repeat(Math.max(t-2,0)),a=t+2;return`{\n${n.map(([e,t])=>`${r}${Jt(e)}: ${X(t,a)}`).join(`,
61
+ `)}\n${i}}`}function $t(e,t){let n=` `.repeat(t),r=` `.repeat(Math.max(t-2,0));return`{\n${e.map(e=>`${n}${Jt(e)}: {}`).join(`,
62
+ `)}\n${r}}`}function en(e,t){return`const childThemeExtras: {
63
63
  light: Record<string, Record<string, string>>;
64
64
  dark: Record<string, Record<string, string>>;
65
65
  } = {
66
- light: ${Xt(e,4)},
67
- dark: ${Xt(t,4)}
68
- };`}function $t(e,t,n){return Object.fromEntries(n.map(n=>[n,e.children[n]??t.children[n]??{}]))}function en(e,t,n,r,i){let a=[...new Set([...Object.keys(e.children),...Object.keys(t.children)])].toSorted((e,t)=>e.localeCompare(t)),o=a.includes(`accent`),s=a.filter(e=>e!==`accent`),c=Gt(e.base)||Gt(t.base);if(!c&&a.length===0)return{statements:[],hasThemes:!1};let l=Ct(r,i,gt,n,vt,yt),u=Ct(r,i,_t,n,l.light,l.dark),d=[],f=[` componentThemes: false`],p=[` palette: ${Jt(l.light,l.dark,6)}`];if(c&&p.push(` extra: ${Yt(e.base,t.base,6)}`),f.push(` base: {\n${p.join(`,
66
+ light: ${Qt(e,4)},
67
+ dark: ${Qt(t,4)}
68
+ };`}function tn(e,t,n){return Object.fromEntries(n.map(n=>[n,e.children[n]??t.children[n]??{}]))}function nn(e,t,n,r,i){let a=[...new Set([...Object.keys(e.children),...Object.keys(t.children)])].toSorted((e,t)=>e.localeCompare(t)),o=a.includes(`accent`),s=a.filter(e=>e!==`accent`),c=qt(e.base)||qt(t.base);if(!c&&a.length===0)return{statements:[],hasThemes:!1};let l=Tt(r,i,_t,n,yt,bt),u=Tt(r,i,vt,n,l.light,l.dark),d=[],f=[` componentThemes: false`],p=[` palette: ${Xt(l.light,l.dark,6)}`];if(c&&p.push(` extra: ${Zt(e.base,t.base,6)}`),f.push(` base: {\n${p.join(`,
69
69
  `)}\n }`),o){let n=e.children.accent??t.children.accent??{},r=t.children.accent??e.children.accent??{};f.push(` accent: {
70
- palette: ${Jt(u.light,u.dark,6)},
71
- extra: ${Yt(n,r,6)}
72
- }`)}if(s.length>0){let n=$t(e,t,s),r=$t(t,e,s);d.push(Qt(n,r),``),f.push(` childrenThemes: ${Zt(s,4)}`);let i=o?` || child === "accent"`:``;f.push(` getTheme: ({ name, theme, scheme }) => {
70
+ palette: ${Xt(u.light,u.dark,6)},
71
+ extra: ${Zt(n,r,6)}
72
+ }`)}if(s.length>0){let n=tn(e,t,s),r=tn(t,e,s);d.push(en(n,r),``),f.push(` childrenThemes: ${$t(s,4)}`);let i=o?` || child === "accent"`:``;f.push(` getTheme: ({ name, theme, scheme }) => {
73
73
  const child = name.replace(/^(?:light|dark)_/, "");
74
74
  if (child === name${i}) {
75
75
  return theme;
@@ -79,8 +79,8 @@ ${i}}`}function Xt(e,t){let n=Object.entries(e).toSorted(([e],[t])=>e.localeComp
79
79
 
80
80
  return extras ? { ...theme, ...extras } : theme;
81
81
  }`)}return d.push(`const themes = createThemes({\n${f.join(`,
82
- `)}\n});`),{statements:d,hasThemes:!0}}function tn(e,t,n={}){let r=e.fonts??{},i=n.useDefaultConfig===!0,a=n.animations??`css`,o=n.includeTypeAugmentation!==!1,s=t.filter(e=>e.category===`color`),c=W(s,`light`),l=W(s,`dark`),u=l.length>0,d=wt(c,l),f=W(t,`light`),p=u?W(t,`dark`):f,h=Vt(f,d),g=Vt(p,d),{statements:_,hasThemes:v}=en(h,g,d,c,l),y=Wt(Ht(u?[h,g]:[h]),{specName:e.name}),b=ht(f),x=[];Object.keys(d).length>0&&x.push(` color: ${Y(d,4)}`);for(let e of ut){let t=b[e];t&&Object.keys(t).length>0&&x.push(` ${e}: ${Y(t,4)}`)}let S=[`import { isWeb } from '@tamagui/constants';`];i&&S.push(`import { defaultConfig } from "@tamagui/config/v5";`),a!==!1&&S.push(`import { animations } from "${rt[a]}";`),n.importConfig&&S.push(`import userConfig from "${n.importConfig}";`),v&&S.push(`import { createThemes } from "@tamagui/theme-builder";`);let C=[`createTamagui`,`px`];x.length>0&&C.push(`createTokens`);let w=Ye(t,r);w.length>0&&C.push(`createFont`),S.push(`import { ${C.join(`, `)} } from "@tamagui/core";`);let T=[`/* eslint-disable */`,``,`/*`,` * Generated by @razorwind/tamagui — Do not edit by hand.`,` * `,` * @see https://tamagui.dev/docs/core/configuration`,` * @see https://tamagui.dev/docs/intro/themes`,` * @see https://tamagui.dev/docs/guides/theme-builder`,` */`,``,...S,``];x.length>0&&T.push(`const tokens = createTokens({`,x.join(`,
83
- `),`});`,``),_.length>0&&T.push(..._,``);let E=new Map;if(w.length>0)for(let[e,t]of w.entries()){let n=Ze(t.key,e);E.set(t.key,n),T.push(Qe(t,n),``)}let D=[];if(i&&D.push(` ...defaultConfig`),a!==!1&&D.push(` animations`),x.length>0&&(i?D.push(` tokens: {
82
+ `)}\n});`),{statements:d,hasThemes:!0}}function rn(e,t,n={}){let r=e.fonts??{},i=n.useDefaultConfig===!0,a=n.animations??`css`,o=n.includeTypeAugmentation!==!1,s=t.filter(e=>e.category===`color`),c=U(s,`light`),l=U(s,`dark`),u=l.length>0,d=Et(c,l),f=U(t,`light`),p=u?U(t,`dark`):f,h=Ut(f,d),g=Ut(p,d),{statements:_,hasThemes:v}=nn(h,g,d,c,l),y=Kt(Wt(u?[h,g]:[h]),{specName:e.name}),b=gt(f),x=[];Object.keys(d).length>0&&x.push(` color: ${Y(d,4)}`);for(let e of dt){let t=b[e];t&&Object.keys(t).length>0&&x.push(` ${e}: ${Y(t,4)}`)}let S=[`import { isWeb } from '@tamagui/constants';`];i&&S.push(`import { defaultConfig } from "@tamagui/config/v5";`),a!==!1&&S.push(`import { animations } from "${it[a]}";`),n.importConfig&&S.push(`import userConfig from "${n.importConfig}";`),v&&S.push(`import { createThemes } from "@tamagui/theme-builder";`);let C=[`createTamagui`,`px`];x.length>0&&C.push(`createTokens`);let w=V(t,r);w.length>0&&C.push(`createFont`),S.push(`import { ${C.join(`, `)} } from "@tamagui/core";`);let T=[`/* eslint-disable */`,``,`/*`,` * Generated by @razorwind/tamagui — Do not edit by hand.`,` * `,` * @see https://tamagui.dev/docs/core/configuration`,` * @see https://tamagui.dev/docs/intro/themes`,` * @see https://tamagui.dev/docs/guides/theme-builder`,` */`,``,...S,``];x.length>0&&T.push(`const tokens = createTokens({`,x.join(`,
83
+ `),`});`,``),_.length>0&&T.push(..._,``);let E=new Map;if(w.length>0)for(let[e,t]of w.entries()){let n=Qe(t.key,e);E.set(t.key,n),T.push($e(t,n),``)}let D=[];if(i&&D.push(` ...defaultConfig`),a!==!1&&D.push(` animations`),x.length>0&&(i?D.push(` tokens: {
84
84
  ...defaultConfig.tokens,
85
85
  ...tokens,
86
86
  space: {
@@ -113,5 +113,5 @@ ${i}}`}function Xt(e,t){let n=Object.entries(e).toSorted(([e],[t])=>e.localeComp
113
113
  */
114
114
  export const config = createTamagui({`,D.join(`,
115
115
  `),n.importConfig?`, ...userConfig `:``,`});`,``,`export type AppConfig = typeof config;`,``),o&&T.push(`declare module "@tamagui/core" {`,` // eslint-disable-next-line @typescript-eslint/no-empty-object-type`,` interface TamaguiCustomConfig extends AppConfig {}`,`}`,``),T.push(`export default config;`,``),T.join(`
116
- `)}function nn(e,n={}){let r=e.tokens&&Object.keys(e.tokens).length>0,i=e.fonts&&Object.keys(e.fonts).length>0;if(!r&&!i)return{};let a=r?ue(e.tokens,n):[];if(a.length===0&&!i)return{};let o=n.outputPath??`tamagui.config.ts`,s=tn(e,a,n),c=n.installGuide??$e({outputPath:o}),d=u(l(o),`INSTALL.md`);return{[o]:t(o,s,{name:`razorwind-tamagui`},!1,`typescript`),[d]:t(d,c,{name:`razorwind-tamagui`},!1,`markdown`)}}var rn=e(e=>({name:`tamagui`,themeGeneration:`combined`,generate:async t=>nn(t,e??{})}));export{Ye as collectTamaguiFonts,rn as default,ue as flattenTokens,Ze as fontVarName,n as formatTokenValue,nn as generateTamaguiConfig,D as isPaletteGroup,$e as renderInstallMd,tn as renderTamaguiConfig,se as resolveTokenCategory,a as resolveTokenSets,z as tamaguiFontKeyFromRole,A as toCamelCaseKey,o as toCssVar,h as toTamaguiValue,ce as toTokenKey,je as typographyFontKey};
116
+ `)}function an(e,n={}){let r=e.tokens&&Object.keys(e.tokens).length>0,i=e.fonts&&Object.keys(e.fonts).length>0;if(!r&&!i)return{};let a=r?de(e.tokens,n):[];if(a.length===0&&!i)return{};let o=n.outputPath??`tamagui.config.ts`,s=rn(e,a,n),c=n.installGuide??et({outputPath:o}),d=u(l(o),`INSTALL.md`);return{[o]:t(o,s,{name:`razorwind-tamagui`},!1,`typescript`),[d]:t(d,c,{name:`razorwind-tamagui`},!1,`markdown`)}}var on=e(e=>({name:`tamagui`,themeGeneration:`combined`,generate:async t=>an(t,e??{})}));export{V as collectTamaguiFonts,on as default,de as flattenTokens,Qe as fontVarName,n as formatTokenValue,an as generateTamaguiConfig,D as isPaletteGroup,et as renderInstallMd,rn as renderTamaguiConfig,ce as resolveTokenCategory,a as resolveTokenSets,L as tamaguiFontKeyFromRole,k as toCamelCaseKey,o as toCssVar,h as toTamaguiValue,le as toTokenKey,Ne as typographyFontKey};
117
117
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@razorwind/tamagui",
3
- "version": "0.0.56",
3
+ "version": "0.0.57",
4
4
  "type": "module",
5
5
  "description": "Razorwind plugin that creates Tamagui theme tokens from Razorwind design tokens.",
6
6
  "repository": {
@@ -108,5 +108,5 @@
108
108
  "typescript": "^6.0.3"
109
109
  },
110
110
  "publishConfig": { "access": "public" },
111
- "gitHead": "43b57170fcf1f25a7e928100915a6fcb58330db5"
111
+ "gitHead": "6e999219a9c5a2e7393bad76dca80d6a7b92ea08"
112
112
  }