@razorwind/tamagui 0.0.61 → 0.0.63
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 +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +8 -8
package/dist/index.cjs
CHANGED
|
@@ -48,7 +48,7 @@ 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 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=$(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=Tt(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`&&Z(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){return e.category===`color`&&!e.primitive&&!!e.tokenKey}function yt(e,t){let n={},r=(e,t)=>{let r=t.cssValue;typeof r!=`string`||r.length===0||Dt(r)||r===`[object Object]`||(n[e]=r)};for(let t of e)
|
|
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=$(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=Tt(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`&&Z(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){return e.category===`color`&&!e.primitive&&!!e.tokenKey}function yt(e,t){let n={},r=(e,t)=>{let r=t.cssValue;typeof r!=`string`||r.length===0||Dt(r)||r===`[object Object]`||(n[e]=r)};for(let t of e)t.tokenKey&&!vt(t)&&r(U(t),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=Q(e,t);return a!=null&&a===i}function bt(e,t,n){if(e.tokenKey&&q(e,t,n,e.tokenKey))return W(e.tokenKey);let r=$(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=Q(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
53
|
`)}\n${` `.repeat(Math.max(t-2,0))}}`}const xt=/^\{([^{}]+)\}$/,St=/\{([^{}]+)\}/g,Ct=/^var\((--[^),\s]+)(?:\s*,[^)]*)?\)$/,wt=/var\((--[^),\s]+)(?:\s*,[^)]*)?\)/g;function Tt(e){return{byPath:new Map(e.map(e=>[e.path,e])),byCssVar:new Map(e.map(e=>[(0,t.toThemeCssVar)(e.path),e]))}}function Et(e){if(typeof e==`string`)return xt.exec(e.trim())?.[1]?.trim()}function X(e){if(typeof e==`string`)return Ct.exec(e.trim())?.[1]}function Dt(e){return Et(e)!=null||X(e)!=null}function Z(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&&!Dt(e))return e}function Ot(e,t){return e.replace(St,(e,n)=>{let r=t.byPath.get(n.trim());return r?Q(r,t)??e:e}).replace(wt,(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=Et(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 tt(e)&&D(e.path.split(`.`).filter(Boolean))||e.tokenKey}function jt(e){let t=e.toLowerCase();return Ze(t)||Qe(t)}function Mt(e,t,n){let r=At(t);if(!r)return;let i=t.childTheme?.trim();if(!i||jt(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 Nt(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||Z(r)?void 0:a(e.category===`dropShadow`?st(r):r)}function Pt(e,t){let n=Tt(e),r={base:{},children:{}};for(let i of e){if(vt(i)){let e=bt(i,n,t);e&&Mt(r,i,e);continue}if(!tt(i))continue;let e=Nt(i,n);if(!e)continue;let a=i.childTheme?.trim();(a&&!jt(a)||$e(i))&&Mt(r,i,e)}return r}function Ft(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 It(e){return` ${/^[A-Z_$][\w$]*$/i.test(e)?e:a(e)}: string;`}function Lt(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(It),`}`,``]}function Rt(e){return Object.keys(e).length>0}function zt(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
54
|
`)}\n${r}]`}function Vt(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
|
package/dist/index.mjs
CHANGED
|
@@ -48,7 +48,7 @@ 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 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=Lt(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=Nt(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`&&It(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){return e.category===`color`&&!e.primitive&&!!e.tokenKey}function Dt(e,t){let n={},r=(e,t)=>{let r=t.cssValue;typeof r!=`string`||r.length===0||Ft(r)||r===`[object Object]`||(n[e]=r)};for(let t of e)
|
|
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=Lt(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=Nt(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`&&It(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){return e.category===`color`&&!e.primitive&&!!e.tokenKey}function Dt(e,t){let n={},r=(e,t)=>{let r=t.cssValue;typeof r!=`string`||r.length===0||Ft(r)||r===`[object Object]`||(n[e]=r)};for(let t of e)t.tokenKey&&!Et(t)&&r(W(t),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 Ot(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
53
|
`)}\n${` `.repeat(Math.max(t-2,0))}}`}const kt=/^\{([^{}]+)\}$/,At=/\{([^{}]+)\}/g,jt=/^var\((--[^),\s]+)(?:\s*,[^)]*)?\)$/,Mt=/var\((--[^),\s]+)(?:\s*,[^)]*)?\)/g;function Nt(e){return{byPath:new Map(e.map(e=>[e.path,e])),byCssVar:new Map(e.map(e=>[s(e.path),e]))}}function Pt(e){if(typeof e==`string`)return kt.exec(e.trim())?.[1]?.trim()}function Z(e){if(typeof e==`string`)return jt.exec(e.trim())?.[1]}function Ft(e){return Pt(e)!=null||Z(e)!=null}function It(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&&!Ft(e))return e}function Lt(e,t){return e.replace(At,(e,n)=>{let r=t.byPath.get(n.trim());return r?Q(r,t)??e:e}).replace(Mt,(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=Pt(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 Rt(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 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=Rt(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=Lt(n,t);return r.length===0||It(r)?void 0:m(e.category===`dropShadow`?ht(r):r)}function Ut(e,t){let n=Nt(e),r={base:{},children:{}};for(let i of e){if(Et(i)){let e=Ot(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
54
|
`)}\n${r}]`}function Xt(e,t,n){let r=` `.repeat(n),i=` `.repeat(Math.max(n-2,0)),a=n+2;return`{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@razorwind/tamagui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.63",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Razorwind plugin that creates Tamagui theme tokens from Razorwind design tokens.",
|
|
6
6
|
"repository": {
|
|
@@ -83,12 +83,12 @@
|
|
|
83
83
|
"types": "./dist/index.d.cts",
|
|
84
84
|
"typings": "dist/index.d.mts",
|
|
85
85
|
"dependencies": {
|
|
86
|
-
"@power-plant/core": "^0.0.
|
|
86
|
+
"@power-plant/core": "^0.0.92",
|
|
87
87
|
"@power-plant/dtcg-schema": "^0.0.1",
|
|
88
|
-
"@razorwind/core": "^0.0.
|
|
89
|
-
"@stryke/type-checks": "^0.6.
|
|
90
|
-
"@stryke/helpers": "^0.10.
|
|
91
|
-
"@stryke/string-format": "^0.17.
|
|
88
|
+
"@razorwind/core": "^0.0.64",
|
|
89
|
+
"@stryke/type-checks": "^0.6.47",
|
|
90
|
+
"@stryke/helpers": "^0.10.54",
|
|
91
|
+
"@stryke/string-format": "^0.17.56"
|
|
92
92
|
},
|
|
93
93
|
"peerDependencies": {
|
|
94
94
|
"@tamagui/config": ">=1.120.0",
|
|
@@ -103,10 +103,10 @@
|
|
|
103
103
|
"tamagui": { "optional": true }
|
|
104
104
|
},
|
|
105
105
|
"devDependencies": {
|
|
106
|
-
"@powerlines/plugin-tsdown": "^0.1.
|
|
106
|
+
"@powerlines/plugin-tsdown": "^0.1.613",
|
|
107
107
|
"@types/node": "^25.9.5",
|
|
108
108
|
"typescript": "^6.0.3"
|
|
109
109
|
},
|
|
110
110
|
"publishConfig": { "access": "public" },
|
|
111
|
-
"gitHead": "
|
|
111
|
+
"gitHead": "49873beaca1bec96f7d6869f9dcd8c20efd2be41"
|
|
112
112
|
}
|