@razorwind/tamagui 0.0.37 → 0.0.39
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 +18 -18
- package/dist/index.d.cts +18 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +18 -1
- package/dist/index.mjs +20 -20
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require("@razorwind/core/plugin"),t=require("@razorwind/core/lib/fonts"),n=require("@razorwind/core/utils"),r=require("node:path");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,t){if(typeof e==`number`)return e;if(typeof e==`boolean`)return Number(e);if((0,n.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 String(e)}const s=[{prefix:/^(?:color|colours?|palette)\b/i,category:`color`},{prefix:/^(?:space|spacing|gap|inset)\b/i,category:`space`},{prefix:/^(?:size|sizing)\b/i,category:`size`},{prefix:/^(?:radius|rounded|radii)\b/i,category:`radius`},{prefix:/^(?:z-?index|zindex|elevation)\b/i,category:`zIndex`}];function c(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function l(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function u(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function d(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function f(e,t){for(let{prefix:t,category:n}of s)if(t.test(e))return n;if(t===`color`)return`color`;if(t===`dimension`){if(/space|spacing|gap|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|width|height/i.test(e))return`size`}if(t===`number`&&/z-?index|elevation/i.test(e))return`zIndex`}function p(e){let t=e.split(`.`).filter(Boolean),n=t[0];n&&/^(?:color|colours?|palette|space|spacing|gap|inset|size|sizing|radius|rounded|radii|z-?index|zindex|elevation)$/i.test(n)&&t.shift();let r=t.
|
|
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,t){if(typeof e==`number`)return e;if(typeof e==`boolean`)return Number(e);if((0,n.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 String(e)}const s=[{prefix:/^(?:color|colours?|palette)\b/i,category:`color`},{prefix:/^(?:space|spacing|gap|inset)\b/i,category:`space`},{prefix:/^(?:size|sizing)\b/i,category:`size`},{prefix:/^(?:radius|rounded|radii)\b/i,category:`radius`},{prefix:/^(?:z-?index|zindex|elevation)\b/i,category:`zIndex`}];function c(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function l(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function u(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function d(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function f(e,t){for(let{prefix:t,category:n}of s)if(t.test(e))return n;if(t===`color`)return`color`;if(t===`dimension`){if(/space|spacing|gap|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|width|height/i.test(e))return`size`}if(t===`number`&&/z-?index|elevation/i.test(e))return`zIndex`}function p(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 m(e){let t=e.split(`.`).filter(Boolean),n=t[0];n&&/^(?:color|colours?|palette|space|spacing|gap|inset|size|sizing|radius|rounded|radii|z-?index|zindex|elevation)$/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`:p(r)}function h(e,t,r,i,a){if(!(0,n.isObject)(e))return;let s=u(e,r);if(c(e)){let r=d(e),c=t.join(`.`),u=f(c,s),p=(0,n.formatTokenValue)(r,s),h=u===`color`||s===`color`?p:o(r,s);a.push({path:c,type:s,value:r,cssValue:p,tamaguiValue:h,category:u,tokenKey:u?m(c):void 0,description:l(e),theme:i});return}for(let[n,r]of Object.entries(e))n.startsWith(`$`)||h(r,[...t,n],s,i,a)}function g(e,t={}){let r=t.includeTypes?new Set(t.includeTypes):void 0,i=[];for(let t of(0,n.resolveTokenSets)(e)){let e=t.id==="default"?void 0:t.id;h(t.tokens,[],void 0,e,i)}return r?i.filter(e=>!e.type||r.has(e.type)):i}function _(e){return`# Installing Tamagui Config
|
|
3
3
|
|
|
4
4
|
Generated by \`@razorwind/tamagui\`.
|
|
5
5
|
|
|
6
6
|
## Files
|
|
7
7
|
|
|
8
|
-
- \`${e.outputPath}\` — Tamagui v5 config (\`createTamagui\` +
|
|
8
|
+
- \`${e.outputPath}\` — Tamagui v5 config (\`createTamagui\` + \`createV5Theme\` with light and dark)
|
|
9
9
|
|
|
10
10
|
## Setup
|
|
11
11
|
|
|
@@ -17,7 +17,7 @@ import config from "./${e.outputPath}";
|
|
|
17
17
|
export default config;
|
|
18
18
|
\`\`\`
|
|
19
19
|
|
|
20
|
-
2. Wrap your app with Tamagui
|
|
20
|
+
2. Wrap your app with Tamagui. The generated file includes both \`light\` and \`dark\` themes:
|
|
21
21
|
|
|
22
22
|
\`\`\`tsx
|
|
23
23
|
import { TamaguiProvider } from "tamagui";
|
|
@@ -37,21 +37,21 @@ export function App() {
|
|
|
37
37
|
## Regenerate
|
|
38
38
|
|
|
39
39
|
Re-run Razorwind generate when tokens change so \`${e.outputPath}\` stays aligned with your design system.
|
|
40
|
-
`}const
|
|
41
|
-
`)}\n${` `.repeat(Math.max(t-2,0))}}`}function
|
|
42
|
-
light: ${
|
|
43
|
-
dark: ${
|
|
40
|
+
`}const v=new Set([`default`,`light`,`theme`]),y=/^base(?:[A-Z]\w*|[._-].+)?$/i,b=new Set([`gray`,`grey`,`neutral`,`slate`,`zinc`,`stone`,`palette`,`base`]),x={css:`@tamagui/config/v5-css`,rn:`@tamagui/config/v5-rn`,reanimated:`@tamagui/config/v5-reanimated`,motion:`@tamagui/config/v5-motion`};function S(e){return v.has(e)}function C(e){return e===`dark`}function w(e,t){let n=new Map,r=t===`dark`?C:S;for(let t of e){let e=t.theme?.toLowerCase();(!e||y.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 T(e){let t={};for(let n of e){if(!n.category||!n.tokenKey)continue;let e=t[n.category]??{};e[n.tokenKey]=n.tamaguiValue,t[n.category]=e}return t}function E(e,t=2){let n=` `.repeat(t),r=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t));return r.length===0?`{}`:`{\n${r.map(([e,t])=>{let r=/^[A-Z_$][\w$]*$/i.test(e)?e:a(e);return`${n}${r}: ${a(t)}`}).join(`,
|
|
41
|
+
`)}\n${` `.repeat(Math.max(t-2,0))}}`}function D(e){let t={},n=new Map;for(let t of e)!t.tokenKey||typeof t.tamaguiValue!=`string`||n.set(t.tokenKey,t.tamaguiValue);let r=/^([A-Z]+)(\d{1,2})$/i;for(let[e,i]of n){let n=r.exec(e);if(!n)continue;let[,a=``,o=``]=n,s=Number(o);if(s<0||s>12)continue;let c=t[a]??{};c[`${a}${s}`]=i,t[a]=c}return Object.fromEntries(Object.entries(t).filter(([,e])=>Object.keys(e).length>=3))}function O(e,t){let n=[];for(let r=1;r<=12;r++){let i=e[`${t}${r}`];if(!i)return;n.push(i)}return n}function k(e){let t=e.filter(e=>e.category===`color`),n=D(w(t,`light`)),r=D(w(t,`dark`)),i,a;for(let e of Object.keys(n))if(b.has(e.toLowerCase())&&(i=O(n[e],e),i))break;for(let e of Object.keys(r))if(b.has(e.toLowerCase())&&(a=O(r[e],e),a))break;return{lightPalette:i,darkPalette:a}}function A(e){let t=D(e),n={};for(let r of e)r.category!==`color`||!r.tokenKey||typeof r.tamaguiValue!=`string`||/^[A-Z]+\d{1,2}$/i.test(r.tokenKey)&&t[r.tokenKey.replace(/\d{1,2}$/,``)]||(n[r.tokenKey]=r.tamaguiValue);return n}function j(e,t){let n=new Set([...Object.keys(e),...Object.keys(t)]);if(n.size===0)return;let r=[];for(let i of[...n].toSorted((e,t)=>e.localeCompare(t))){if(b.has(i.toLowerCase()))continue;let n=e[i]??t[i],a=t[i]??e[i];!n||!a||r.push(` ${i}: {
|
|
42
|
+
light: ${E(n,8)},
|
|
43
|
+
dark: ${E(a,8)}
|
|
44
44
|
}`)}if(r.length!==0)return`{\n${r.join(`,
|
|
45
|
-
`)}\n }`}function
|
|
46
|
-
`)}\n }`}function
|
|
47
|
-
`)}function
|
|
45
|
+
`)}\n }`}function M(e){switch(e.role){case`heading`:case`display`:return`heading`;case`mono`:case`code`:return`mono`;case`sans`:case`body`:case`serif`:return`body`;case void 0:default:return e.name?.replaceAll(/\W/g,``)||`body`}}function N(e){let t=new Map;for(let n of Object.values(e)){let e=M(n),r=t.get(e);(!r||n.role===e&&r.role!==e)&&t.set(e,n)}return t}function P(e){let t=new Map;for(let n of e.files){let e=String(n.weight??400),i=(0,r.basename)(n.path).replace(/\.[^.]+$/,``),a=t.get(e)??{};n.style===`italic`||n.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(`,
|
|
46
|
+
`)}\n }`}function F(e,n){let r=e.source===`local`?P(e):void 0,i=[`const ${n} = createFont({`,` family: isWeb ? ${a((0,t.cssFontFamily)(e))} : ${a((0,t.fontFamilyName)(e))},`,` size: {`,` 1: 12,`,` 2: 14,`,` 3: 16,`,` 4: 18,`,` 5: 20,`,` 6: 24,`,` 7: 28,`,` 8: 32,`,` 9: 40,`,` 10: 48`,` }${r?`,`:``}`];return r&&i.push(` face: ${r}`),i.push(`});`),i.join(`
|
|
47
|
+
`)}function I(e,t={},n){let r=t.useDefaultConfig!==!1,i=t.animations??`css`,o=t.includeTypeAugmentation!==!1,s=T(w(e,`light`)),c=e.filter(e=>e.category===`color`),l=w(c,`light`),u=w(c,`dark`),d=D(l),f=D(u.length>0?u:l),{lightPalette:p,darkPalette:m}=k(e),h=j(d,f),g=A(l),_=A(u.length>0?u:l),v=Object.keys(g).length>0||Object.keys(_).length>0,y=[];for(let e of[`color`,`space`,`size`,`radius`,`zIndex`]){let t=s[e];t&&Object.keys(t).length>0&&y.push(` ${e}: ${E(t,4)}`)}let b=[];p&&b.push(` lightPalette: ${a(p)}`),m&&b.push(` darkPalette: ${a(m)}`),h&&b.push(` childrenThemes: ${h}`),v&&b.push(` getTheme: ({ scheme }) => {
|
|
48
48
|
const semantic = scheme === "dark"
|
|
49
|
-
? ${
|
|
50
|
-
: ${
|
|
49
|
+
? ${E(_,8)}
|
|
50
|
+
: ${E(g,8)};
|
|
51
51
|
return semantic;
|
|
52
|
-
}`);let
|
|
53
|
-
`),`});`,``);let
|
|
54
|
-
`)}\n})`:`createV5Theme()`;
|
|
52
|
+
}`);let S=[];r?S.push(`import { createV5Theme, defaultConfig } from "@tamagui/config/v5";`):S.push(`import { createV5Theme } from "@tamagui/config/v5";`),i!==!1&&S.push(`import { animations } from "${x[i]}";`);let C=[`createTamagui`];y.length>0&&C.push(`createTokens`);let O=n?N(n):new Map;O.size>0&&C.push(`createFont`,`isWeb`),S.push(`import { ${C.join(`, `)} } from "tamagui";`);let M=[`/* eslint-disable */`,`/*`,` * Generated by @razorwind/tamagui — do not edit by hand.`,` * @see https://tamagui.dev/docs/core/config-v5`,` */`,``,...S,``];y.length>0&&M.push(`const tokens = createTokens({`,y.join(`,
|
|
53
|
+
`),`});`,``);let P=b.length>0?`createV5Theme({\n${b.join(`,
|
|
54
|
+
`)}\n})`:`createV5Theme()`;M.push(`const themes = ${P};`,``);let I=new Map;if(O.size>0){let e=0;for(let[t,n]of O){let r=`${t}Font`.replaceAll(/\W/g,``)||`font${e}`;I.set(t,r),M.push(F(n,r),``),e+=1}}let L=[];if(r&&L.push(` ...defaultConfig`),i!==!1&&L.push(` animations`),y.length>0&&(r?L.push(` tokens: {
|
|
55
55
|
...defaultConfig.tokens,
|
|
56
56
|
...tokens,
|
|
57
57
|
color: {
|
|
@@ -81,6 +81,6 @@ ${e.join(`,
|
|
|
81
81
|
}`):L.push(` fonts: {
|
|
82
82
|
${e.join(`,
|
|
83
83
|
`)}
|
|
84
|
-
}`)}return
|
|
85
|
-
`),`});`,``,`export type AppConfig = typeof config;`,``),o&&
|
|
86
|
-
`)}function
|
|
84
|
+
}`)}return M.push(`export const config = createTamagui({`,L.join(`,
|
|
85
|
+
`),`});`,``,`export type AppConfig = typeof config;`,``),o&&M.push(`declare module "tamagui" {`,` // eslint-disable-next-line @typescript-eslint/no-empty-object-type`,` interface TamaguiCustomConfig extends AppConfig {}`,`}`,``),M.push(`export default config;`,``),M.join(`
|
|
86
|
+
`)}function L(e,t={}){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?g(e.tokens,t):[];if(o.length===0&&!a)return{};let s=t.outputPath??`tamagui.config.ts`,c=I(o,t,e.fonts),l=t.installGuide??_({outputPath:s}),u=(0,r.join)((0,r.dirname)(s),`INSTALL.md`);return{[s]:(0,n.createDocument)(s,c,{name:`razorwind-tamagui`},!1,`typescript`),[u]:(0,n.createDocument)(u,l,{name:`razorwind-tamagui`},!1,`markdown`)}}var R=(0,e.definePlugin)(e=>({name:`tamagui`,themeGeneration:`combined`,generate:async t=>L(t,e??{})}));exports.collectColorScales=D,exports.default=R,exports.flattenTokens=g,Object.defineProperty(exports,"formatTokenValue",{enumerable:!0,get:function(){return n.formatTokenValue}}),exports.generateTamaguiConfig=L,exports.renderInstallMd=_,exports.renderTamaguiConfig=I,exports.resolveTokenCategory=f,exports.resolveTokenSets=n.resolveTokenSets,exports.toCamelCaseKey=p,Object.defineProperty(exports,"toCssVar",{enumerable:!0,get:function(){return n.toCssVar}}),exports.toTamaguiValue=o,exports.toTokenKey=m;
|
package/dist/index.d.cts
CHANGED
|
@@ -20,6 +20,9 @@ interface TamaguiPluginOptions {
|
|
|
20
20
|
/**
|
|
21
21
|
* Output path written relative to the execution cwd.
|
|
22
22
|
*
|
|
23
|
+
* Light and dark schemes are always written to this single file — Tamagui
|
|
24
|
+
* `createV5Theme` encodes both palettes in one config.
|
|
25
|
+
*
|
|
23
26
|
* @defaultValue `"tamagui.config.ts"`
|
|
24
27
|
*/
|
|
25
28
|
outputPath?: string;
|
|
@@ -85,11 +88,19 @@ interface FlatToken {
|
|
|
85
88
|
* Map a DTCG token path + type onto a Tamagui `createTokens` category.
|
|
86
89
|
*/
|
|
87
90
|
declare function resolveTokenCategory(path: string, type?: string): TamaguiTokenCategory | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Join path/kebab segments into a camelCase Tamagui token key.
|
|
93
|
+
*
|
|
94
|
+
* `background` + `accent-subtle` → `backgroundAccentSubtle`.
|
|
95
|
+
* Numeric steps stay attached (`blue` + `1` → `blue1`).
|
|
96
|
+
*/
|
|
97
|
+
declare function toCamelCaseKey(parts: string[]): string;
|
|
88
98
|
/**
|
|
89
99
|
* Derive the Tamagui token key from a DTCG path (strip category prefix).
|
|
90
100
|
*
|
|
91
101
|
* `radius.DEFAULT` → `true` (Tamagui default token convention).
|
|
92
102
|
* `color.blue.1` → `blue1`.
|
|
103
|
+
* `color.background.accent-subtle` → `backgroundAccentSubtle`.
|
|
93
104
|
*/
|
|
94
105
|
declare function toTokenKey(path: string): string;
|
|
95
106
|
/**
|
|
@@ -126,6 +137,8 @@ declare function collectColorScales(colorTokens: FlatToken[]): Record<string, Re
|
|
|
126
137
|
/**
|
|
127
138
|
* Render a Tamagui v5 config module from flattened design tokens.
|
|
128
139
|
*
|
|
140
|
+
* Light and dark token sets are combined into one `createV5Theme` call.
|
|
141
|
+
*
|
|
129
142
|
* @see https://tamagui.dev/docs/core/config-v5
|
|
130
143
|
*/
|
|
131
144
|
declare function renderTamaguiConfig(tokens: FlatToken[], options?: TamaguiPluginOptions, fonts?: Fonts): string;
|
|
@@ -139,6 +152,10 @@ declare function generateTamaguiConfig(spec: Schema, options?: TamaguiPluginOpti
|
|
|
139
152
|
* Razorwind plugin that turns design tokens into a Tamagui v5 config
|
|
140
153
|
* (`createTamagui` + `createTokens` + `createV5Theme`).
|
|
141
154
|
*
|
|
155
|
+
* Light and dark token sets are emitted as a single config: `createV5Theme`
|
|
156
|
+
* receives both `lightPalette` / `darkPalette` and `childrenThemes` with
|
|
157
|
+
* `{ light, dark }` palettes.
|
|
158
|
+
*
|
|
142
159
|
* @see https://tamagui.dev/docs/core/config-v5
|
|
143
160
|
*
|
|
144
161
|
* @example
|
|
@@ -153,5 +170,5 @@ declare function generateTamaguiConfig(spec: Schema, options?: TamaguiPluginOpti
|
|
|
153
170
|
*/
|
|
154
171
|
declare const _default: (options?: TamaguiPluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
|
|
155
172
|
//#endregion
|
|
156
|
-
export { type FlatToken, type TamaguiAnimationDriver, type TamaguiPluginOptions, type TamaguiTokenCategory, collectColorScales, _default as default, flattenTokens, formatTokenValue, generateTamaguiConfig, renderInstallMd, renderTamaguiConfig, resolveTokenCategory, resolveTokenSets, toCssVar, toTamaguiValue, toTokenKey };
|
|
173
|
+
export { type FlatToken, type TamaguiAnimationDriver, type TamaguiPluginOptions, type TamaguiTokenCategory, collectColorScales, _default as default, flattenTokens, formatTokenValue, generateTamaguiConfig, renderInstallMd, renderTamaguiConfig, resolveTokenCategory, resolveTokenSets, toCamelCaseKey, toCssVar, toTamaguiValue, toTokenKey };
|
|
157
174
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/flatten.ts","../src/format.ts","../src/install.ts","../src/generate.ts","../src/index.ts"],"mappings":";;;;;;;;;;KAyBY;;;;KAMA;;;;UAMK
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/flatten.ts","../src/format.ts","../src/install.ts","../src/generate.ts","../src/index.ts"],"mappings":";;;;;;;;;;KAyBY;;;;KAMA;;;;UAMK;;;;;;;;;EASf;;;;;;;EAQA,aAAa;;;;;;;;EASb;;;;;EAMA,eAAe;;;;;;;EAQf;;;;;EAMA;;;;;UAMe;;EAEf;;EAEA,OAAO;;EAEP;;EAEA;;EAEA;;EAEA,WAAW;;EAEX;;EAEA;;EAEA;;;;;;;iBCjBc,qBACd,cACA,gBACC;;;;;;;iBAuCa,eAAe;;;;;;;;iBA0Bf,WAAW;;;;iBA0EX,cACd,QAAQ,SAAS,eAAe,SAChC,UAAS,KAAK,wCACb;;;;;;;;;iBCjLa,eAAe,gBAAgB;;;;;;;;iBCnC/B,gBAAgB;EAAW;;;;;;;;;iBCwH3B,mBACd,aAAa,cACZ,eAAe;;;;;;;;iBA2PF,oBACd,QAAQ,aACR,UAAS,sBACT,QAAQ;;;;iBAuNM,sBACd,MAAM,QACN,UAAS,uBACR,wBAAwB,QAAQ"}
|
package/dist/index.d.mts
CHANGED
|
@@ -20,6 +20,9 @@ interface TamaguiPluginOptions {
|
|
|
20
20
|
/**
|
|
21
21
|
* Output path written relative to the execution cwd.
|
|
22
22
|
*
|
|
23
|
+
* Light and dark schemes are always written to this single file — Tamagui
|
|
24
|
+
* `createV5Theme` encodes both palettes in one config.
|
|
25
|
+
*
|
|
23
26
|
* @defaultValue `"tamagui.config.ts"`
|
|
24
27
|
*/
|
|
25
28
|
outputPath?: string;
|
|
@@ -85,11 +88,19 @@ interface FlatToken {
|
|
|
85
88
|
* Map a DTCG token path + type onto a Tamagui `createTokens` category.
|
|
86
89
|
*/
|
|
87
90
|
declare function resolveTokenCategory(path: string, type?: string): TamaguiTokenCategory | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Join path/kebab segments into a camelCase Tamagui token key.
|
|
93
|
+
*
|
|
94
|
+
* `background` + `accent-subtle` → `backgroundAccentSubtle`.
|
|
95
|
+
* Numeric steps stay attached (`blue` + `1` → `blue1`).
|
|
96
|
+
*/
|
|
97
|
+
declare function toCamelCaseKey(parts: string[]): string;
|
|
88
98
|
/**
|
|
89
99
|
* Derive the Tamagui token key from a DTCG path (strip category prefix).
|
|
90
100
|
*
|
|
91
101
|
* `radius.DEFAULT` → `true` (Tamagui default token convention).
|
|
92
102
|
* `color.blue.1` → `blue1`.
|
|
103
|
+
* `color.background.accent-subtle` → `backgroundAccentSubtle`.
|
|
93
104
|
*/
|
|
94
105
|
declare function toTokenKey(path: string): string;
|
|
95
106
|
/**
|
|
@@ -126,6 +137,8 @@ declare function collectColorScales(colorTokens: FlatToken[]): Record<string, Re
|
|
|
126
137
|
/**
|
|
127
138
|
* Render a Tamagui v5 config module from flattened design tokens.
|
|
128
139
|
*
|
|
140
|
+
* Light and dark token sets are combined into one `createV5Theme` call.
|
|
141
|
+
*
|
|
129
142
|
* @see https://tamagui.dev/docs/core/config-v5
|
|
130
143
|
*/
|
|
131
144
|
declare function renderTamaguiConfig(tokens: FlatToken[], options?: TamaguiPluginOptions, fonts?: Fonts): string;
|
|
@@ -139,6 +152,10 @@ declare function generateTamaguiConfig(spec: Schema, options?: TamaguiPluginOpti
|
|
|
139
152
|
* Razorwind plugin that turns design tokens into a Tamagui v5 config
|
|
140
153
|
* (`createTamagui` + `createTokens` + `createV5Theme`).
|
|
141
154
|
*
|
|
155
|
+
* Light and dark token sets are emitted as a single config: `createV5Theme`
|
|
156
|
+
* receives both `lightPalette` / `darkPalette` and `childrenThemes` with
|
|
157
|
+
* `{ light, dark }` palettes.
|
|
158
|
+
*
|
|
142
159
|
* @see https://tamagui.dev/docs/core/config-v5
|
|
143
160
|
*
|
|
144
161
|
* @example
|
|
@@ -153,5 +170,5 @@ declare function generateTamaguiConfig(spec: Schema, options?: TamaguiPluginOpti
|
|
|
153
170
|
*/
|
|
154
171
|
declare const _default: (options?: TamaguiPluginOptions | undefined) => import("@razorwind/core/plugin").Plugin;
|
|
155
172
|
//#endregion
|
|
156
|
-
export { type FlatToken, type TamaguiAnimationDriver, type TamaguiPluginOptions, type TamaguiTokenCategory, collectColorScales, _default as default, flattenTokens, formatTokenValue, generateTamaguiConfig, renderInstallMd, renderTamaguiConfig, resolveTokenCategory, resolveTokenSets, toCssVar, toTamaguiValue, toTokenKey };
|
|
173
|
+
export { type FlatToken, type TamaguiAnimationDriver, type TamaguiPluginOptions, type TamaguiTokenCategory, collectColorScales, _default as default, flattenTokens, formatTokenValue, generateTamaguiConfig, renderInstallMd, renderTamaguiConfig, resolveTokenCategory, resolveTokenSets, toCamelCaseKey, toCssVar, toTamaguiValue, toTokenKey };
|
|
157
174
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import{definePlugin as e}from"@razorwind/core/plugin";import{cssFontFamily as t,fontFamilyName as n}from"@razorwind/core/lib/fonts";import{createDocument as r,formatTokenValue as i,isObject as a,resolveTokenSets as o,toCssVar as s}from"@razorwind/core/utils";import{basename as c,dirname as l,join as u}from"node:path";function d(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`).replaceAll(`
|
|
2
|
-
`,`\\n`).replaceAll(`\r`,`\\r`)}function f(e){return typeof e==`string`?`"${d(e)}"`:typeof e==`number`||typeof e==`boolean`?String(e):e==null?`undefined`:JSON.stringify(e)}function p(e,t){if(typeof e==`number`)return e;if(typeof e==`boolean`)return Number(e);if(a(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 String(e)}const m=[{prefix:/^(?:color|colours?|palette)\b/i,category:`color`},{prefix:/^(?:space|spacing|gap|inset)\b/i,category:`space`},{prefix:/^(?:size|sizing)\b/i,category:`size`},{prefix:/^(?:radius|rounded|radii)\b/i,category:`radius`},{prefix:/^(?:z-?index|zindex|elevation)\b/i,category:`zIndex`}];function h(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function g(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function _(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function v(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 y(e,t){for(let{prefix:t,category:n}of m)if(t.test(e))return n;if(t===`color`)return`color`;if(t===`dimension`){if(/space|spacing|gap|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|width|height/i.test(e))return`size`}if(t===`number`&&/z-?index|elevation/i.test(e))return`zIndex`}function b(e){let t=e.split(`.`).filter(Boolean),n=t[0];n&&/^(?:color|colours?|palette|space|spacing|gap|inset|size|sizing|radius|rounded|radii|z-?index|zindex|elevation)$/i.test(n)&&t.shift();let r=t.
|
|
2
|
+
`,`\\n`).replaceAll(`\r`,`\\r`)}function f(e){return typeof e==`string`?`"${d(e)}"`:typeof e==`number`||typeof e==`boolean`?String(e):e==null?`undefined`:JSON.stringify(e)}function p(e,t){if(typeof e==`number`)return e;if(typeof e==`boolean`)return Number(e);if(a(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 String(e)}const m=[{prefix:/^(?:color|colours?|palette)\b/i,category:`color`},{prefix:/^(?:space|spacing|gap|inset)\b/i,category:`space`},{prefix:/^(?:size|sizing)\b/i,category:`size`},{prefix:/^(?:radius|rounded|radii)\b/i,category:`radius`},{prefix:/^(?:z-?index|zindex|elevation)\b/i,category:`zIndex`}];function h(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function g(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function _(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function v(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 y(e,t){for(let{prefix:t,category:n}of m)if(t.test(e))return n;if(t===`color`)return`color`;if(t===`dimension`){if(/space|spacing|gap|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|width|height/i.test(e))return`size`}if(t===`number`&&/z-?index|elevation/i.test(e))return`zIndex`}function b(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 x(e){let t=e.split(`.`).filter(Boolean),n=t[0];n&&/^(?:color|colours?|palette|space|spacing|gap|inset|size|sizing|radius|rounded|radii|z-?index|zindex|elevation)$/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`:b(r)}function S(e,t,n,r,o){if(!a(e))return;let s=_(e,n);if(h(e)){let n=v(e),a=t.join(`.`),c=y(a,s),l=i(n,s),u=c===`color`||s===`color`?l:p(n,s);o.push({path:a,type:s,value:n,cssValue:l,tamaguiValue:u,category:c,tokenKey:c?x(a):void 0,description:g(e),theme:r});return}for(let[n,i]of Object.entries(e))n.startsWith(`$`)||S(i,[...t,n],s,r,o)}function C(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let t of o(e)){let e=t.id==="default"?void 0:t.id;S(t.tokens,[],void 0,e,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function w(e){return`# Installing Tamagui Config
|
|
3
3
|
|
|
4
4
|
Generated by \`@razorwind/tamagui\`.
|
|
5
5
|
|
|
6
6
|
## Files
|
|
7
7
|
|
|
8
|
-
- \`${e.outputPath}\` — Tamagui v5 config (\`createTamagui\` +
|
|
8
|
+
- \`${e.outputPath}\` — Tamagui v5 config (\`createTamagui\` + \`createV5Theme\` with light and dark)
|
|
9
9
|
|
|
10
10
|
## Setup
|
|
11
11
|
|
|
@@ -17,7 +17,7 @@ import config from "./${e.outputPath}";
|
|
|
17
17
|
export default config;
|
|
18
18
|
\`\`\`
|
|
19
19
|
|
|
20
|
-
2. Wrap your app with Tamagui
|
|
20
|
+
2. Wrap your app with Tamagui. The generated file includes both \`light\` and \`dark\` themes:
|
|
21
21
|
|
|
22
22
|
\`\`\`tsx
|
|
23
23
|
import { TamaguiProvider } from "tamagui";
|
|
@@ -37,21 +37,21 @@ export function App() {
|
|
|
37
37
|
## Regenerate
|
|
38
38
|
|
|
39
39
|
Re-run Razorwind generate when tokens change so \`${e.outputPath}\` stays aligned with your design system.
|
|
40
|
-
`}const
|
|
41
|
-
`)}\n${` `.repeat(Math.max(t-2,0))}}`}function
|
|
42
|
-
light: ${
|
|
43
|
-
dark: ${
|
|
40
|
+
`}const T=new Set([`default`,`light`,`theme`]),E=/^base(?:[A-Z]\w*|[._-].+)?$/i,D=new Set([`gray`,`grey`,`neutral`,`slate`,`zinc`,`stone`,`palette`,`base`]),O={css:`@tamagui/config/v5-css`,rn:`@tamagui/config/v5-rn`,reanimated:`@tamagui/config/v5-reanimated`,motion:`@tamagui/config/v5-motion`};function k(e){return T.has(e)}function A(e){return e===`dark`}function j(e,t){let n=new Map,r=t===`dark`?A:k;for(let t of e){let e=t.theme?.toLowerCase();(!e||E.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 M(e){let t={};for(let n of e){if(!n.category||!n.tokenKey)continue;let e=t[n.category]??{};e[n.tokenKey]=n.tamaguiValue,t[n.category]=e}return t}function N(e,t=2){let n=` `.repeat(t),r=Object.entries(e).toSorted(([e],[t])=>e.localeCompare(t));return r.length===0?`{}`:`{\n${r.map(([e,t])=>{let r=/^[A-Z_$][\w$]*$/i.test(e)?e:f(e);return`${n}${r}: ${f(t)}`}).join(`,
|
|
41
|
+
`)}\n${` `.repeat(Math.max(t-2,0))}}`}function P(e){let t={},n=new Map;for(let t of e)!t.tokenKey||typeof t.tamaguiValue!=`string`||n.set(t.tokenKey,t.tamaguiValue);let r=/^([A-Z]+)(\d{1,2})$/i;for(let[e,i]of n){let n=r.exec(e);if(!n)continue;let[,a=``,o=``]=n,s=Number(o);if(s<0||s>12)continue;let c=t[a]??{};c[`${a}${s}`]=i,t[a]=c}return Object.fromEntries(Object.entries(t).filter(([,e])=>Object.keys(e).length>=3))}function F(e,t){let n=[];for(let r=1;r<=12;r++){let i=e[`${t}${r}`];if(!i)return;n.push(i)}return n}function I(e){let t=e.filter(e=>e.category===`color`),n=P(j(t,`light`)),r=P(j(t,`dark`)),i,a;for(let e of Object.keys(n))if(D.has(e.toLowerCase())&&(i=F(n[e],e),i))break;for(let e of Object.keys(r))if(D.has(e.toLowerCase())&&(a=F(r[e],e),a))break;return{lightPalette:i,darkPalette:a}}function L(e){let t=P(e),n={};for(let r of e)r.category!==`color`||!r.tokenKey||typeof r.tamaguiValue!=`string`||/^[A-Z]+\d{1,2}$/i.test(r.tokenKey)&&t[r.tokenKey.replace(/\d{1,2}$/,``)]||(n[r.tokenKey]=r.tamaguiValue);return n}function R(e,t){let n=new Set([...Object.keys(e),...Object.keys(t)]);if(n.size===0)return;let r=[];for(let i of[...n].toSorted((e,t)=>e.localeCompare(t))){if(D.has(i.toLowerCase()))continue;let n=e[i]??t[i],a=t[i]??e[i];!n||!a||r.push(` ${i}: {
|
|
42
|
+
light: ${N(n,8)},
|
|
43
|
+
dark: ${N(a,8)}
|
|
44
44
|
}`)}if(r.length!==0)return`{\n${r.join(`,
|
|
45
|
-
`)}\n }`}function
|
|
46
|
-
`)}\n }`}function
|
|
47
|
-
`)}function
|
|
45
|
+
`)}\n }`}function z(e){switch(e.role){case`heading`:case`display`:return`heading`;case`mono`:case`code`:return`mono`;case`sans`:case`body`:case`serif`:return`body`;case void 0:default:return e.name?.replaceAll(/\W/g,``)||`body`}}function B(e){let t=new Map;for(let n of Object.values(e)){let e=z(n),r=t.get(e);(!r||n.role===e&&r.role!==e)&&t.set(e,n)}return t}function V(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: ${f(t.normal)}`),t.italic&&n.push(`italic: ${f(t.italic)}`),` ${e}: { ${n.join(`, `)} }`}).join(`,
|
|
46
|
+
`)}\n }`}function H(e,r){let i=e.source===`local`?V(e):void 0,a=[`const ${r} = createFont({`,` family: isWeb ? ${f(t(e))} : ${f(n(e))},`,` size: {`,` 1: 12,`,` 2: 14,`,` 3: 16,`,` 4: 18,`,` 5: 20,`,` 6: 24,`,` 7: 28,`,` 8: 32,`,` 9: 40,`,` 10: 48`,` }${i?`,`:``}`];return i&&a.push(` face: ${i}`),a.push(`});`),a.join(`
|
|
47
|
+
`)}function U(e,t={},n){let r=t.useDefaultConfig!==!1,i=t.animations??`css`,a=t.includeTypeAugmentation!==!1,o=M(j(e,`light`)),s=e.filter(e=>e.category===`color`),c=j(s,`light`),l=j(s,`dark`),u=P(c),d=P(l.length>0?l:c),{lightPalette:p,darkPalette:m}=I(e),h=R(u,d),g=L(c),_=L(l.length>0?l:c),v=Object.keys(g).length>0||Object.keys(_).length>0,y=[];for(let e of[`color`,`space`,`size`,`radius`,`zIndex`]){let t=o[e];t&&Object.keys(t).length>0&&y.push(` ${e}: ${N(t,4)}`)}let b=[];p&&b.push(` lightPalette: ${f(p)}`),m&&b.push(` darkPalette: ${f(m)}`),h&&b.push(` childrenThemes: ${h}`),v&&b.push(` getTheme: ({ scheme }) => {
|
|
48
48
|
const semantic = scheme === "dark"
|
|
49
|
-
? ${
|
|
50
|
-
: ${
|
|
49
|
+
? ${N(_,8)}
|
|
50
|
+
: ${N(g,8)};
|
|
51
51
|
return semantic;
|
|
52
|
-
}`);let
|
|
53
|
-
`),`});`,``);let
|
|
54
|
-
`)}\n})`:`createV5Theme()`;
|
|
52
|
+
}`);let x=[];r?x.push(`import { createV5Theme, defaultConfig } from "@tamagui/config/v5";`):x.push(`import { createV5Theme } from "@tamagui/config/v5";`),i!==!1&&x.push(`import { animations } from "${O[i]}";`);let S=[`createTamagui`];y.length>0&&S.push(`createTokens`);let C=n?B(n):new Map;C.size>0&&S.push(`createFont`,`isWeb`),x.push(`import { ${S.join(`, `)} } from "tamagui";`);let w=[`/* eslint-disable */`,`/*`,` * Generated by @razorwind/tamagui — do not edit by hand.`,` * @see https://tamagui.dev/docs/core/config-v5`,` */`,``,...x,``];y.length>0&&w.push(`const tokens = createTokens({`,y.join(`,
|
|
53
|
+
`),`});`,``);let T=b.length>0?`createV5Theme({\n${b.join(`,
|
|
54
|
+
`)}\n})`:`createV5Theme()`;w.push(`const themes = ${T};`,``);let E=new Map;if(C.size>0){let e=0;for(let[t,n]of C){let r=`${t}Font`.replaceAll(/\W/g,``)||`font${e}`;E.set(t,r),w.push(H(n,r),``),e+=1}}let D=[];if(r&&D.push(` ...defaultConfig`),i!==!1&&D.push(` animations`),y.length>0&&(r?D.push(` tokens: {
|
|
55
55
|
...defaultConfig.tokens,
|
|
56
56
|
...tokens,
|
|
57
57
|
color: {
|
|
@@ -74,14 +74,14 @@ Re-run Razorwind generate when tokens change so \`${e.outputPath}\` stays aligne
|
|
|
74
74
|
...defaultConfig.tokens.zIndex,
|
|
75
75
|
...tokens.zIndex
|
|
76
76
|
}
|
|
77
|
-
}`):
|
|
77
|
+
}`):D.push(` tokens`)),D.push(` themes`),E.size>0){let e=[...E.entries()].map(([e,t])=>` ${e}: ${t}`);r?D.push(` fonts: {
|
|
78
78
|
...defaultConfig.fonts,
|
|
79
79
|
${e.join(`,
|
|
80
80
|
`)}
|
|
81
|
-
}`):
|
|
81
|
+
}`):D.push(` fonts: {
|
|
82
82
|
${e.join(`,
|
|
83
83
|
`)}
|
|
84
|
-
}`)}return
|
|
85
|
-
`),`});`,``,`export type AppConfig = typeof config;`,``),a&&
|
|
86
|
-
`)}function
|
|
84
|
+
}`)}return w.push(`export const config = createTamagui({`,D.join(`,
|
|
85
|
+
`),`});`,``,`export type AppConfig = typeof config;`,``),a&&w.push(`declare module "tamagui" {`,` // eslint-disable-next-line @typescript-eslint/no-empty-object-type`,` interface TamaguiCustomConfig extends AppConfig {}`,`}`,``),w.push(`export default config;`,``),w.join(`
|
|
86
|
+
`)}function W(e,t={}){let n=e.tokens&&Object.keys(e.tokens).length>0,i=e.fonts&&Object.keys(e.fonts).length>0;if(!n&&!i)return{};let a=n?C(e.tokens,t):[];if(a.length===0&&!i)return{};let o=t.outputPath??`tamagui.config.ts`,s=U(a,t,e.fonts),c=t.installGuide??w({outputPath:o}),d=u(l(o),`INSTALL.md`);return{[o]:r(o,s,{name:`razorwind-tamagui`},!1,`typescript`),[d]:r(d,c,{name:`razorwind-tamagui`},!1,`markdown`)}}var G=e(e=>({name:`tamagui`,themeGeneration:`combined`,generate:async t=>W(t,e??{})}));export{P as collectColorScales,G as default,C as flattenTokens,i as formatTokenValue,W as generateTamaguiConfig,w as renderInstallMd,U as renderTamaguiConfig,y as resolveTokenCategory,o as resolveTokenSets,b as toCamelCaseKey,s as toCssVar,p as toTamaguiValue,x as toTokenKey};
|
|
87
87
|
//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@razorwind/tamagui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.39",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Razorwind plugin that creates Tamagui theme tokens from Razorwind design tokens.",
|
|
6
6
|
"repository": {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"dependencies": {
|
|
86
86
|
"@power-plant/core": "^0.0.90",
|
|
87
87
|
"@power-plant/dtcg-schema": "^0.0.1",
|
|
88
|
-
"@razorwind/core": "^0.0.
|
|
88
|
+
"@razorwind/core": "^0.0.51",
|
|
89
89
|
"@stryke/type-checks": "^0.6.41"
|
|
90
90
|
},
|
|
91
91
|
"peerDependencies": {
|
|
@@ -104,5 +104,5 @@
|
|
|
104
104
|
"typescript": "^6.0.3"
|
|
105
105
|
},
|
|
106
106
|
"publishConfig": { "access": "public" },
|
|
107
|
-
"gitHead": "
|
|
107
|
+
"gitHead": "3a51456206724861cda83c344cb35ffcb8b3b8f1"
|
|
108
108
|
}
|