unframer 2.16.2 → 2.17.1
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/README.md +3 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -4
- package/dist/cli.js.map +1 -1
- package/dist/esbuild.d.ts.map +1 -1
- package/dist/esbuild.js +5 -2
- package/dist/esbuild.js.map +1 -1
- package/dist/exporter.d.ts +11 -3
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +62 -85
- package/dist/exporter.js.map +1 -1
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +255 -190
- package/dist/framer.js.map +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +2 -2
- package/dist/react.js.map +1 -1
- package/esm/cli.d.ts.map +1 -1
- package/esm/cli.js +4 -3
- package/esm/cli.js.map +1 -1
- package/esm/esbuild.d.ts.map +1 -1
- package/esm/esbuild.js +5 -2
- package/esm/esbuild.js.map +1 -1
- package/esm/exporter.d.ts +11 -3
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +64 -86
- package/esm/exporter.js.map +1 -1
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +249 -187
- package/esm/framer.js.map +1 -1
- package/esm/react.d.ts.map +1 -1
- package/esm/react.js +2 -2
- package/esm/react.js.map +1 -1
- package/package.json +18 -18
- package/src/cli.tsx +7 -5
- package/src/esbuild.ts +5 -2
- package/src/exporter.ts +86 -103
- package/src/framer.js +265 -205
- package/src/react.tsx +3 -5
package/esm/react.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,aAAa,EAKhB,MAAM,OAAO,CAAA;AACd,OAAO,EAEH,sBAAsB,EAEzB,MAAM,UAAU,CAAA;AAWjB,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,sBAAsB,CAAA;AA8BpE;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,UAAwB,EAAE;;CAAA,GAAG,GAAG,CAmD9D;AAED,eAAO,MAAM,qBAAqB;;kBACM,GAAG;oBAAc,MAAM;;;;cAAvB,GAAG;gBAAc,MAAM;
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,aAAa,EAKhB,MAAM,OAAO,CAAA;AACd,OAAO,EAEH,sBAAsB,EAEzB,MAAM,UAAU,CAAA;AAWjB,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,sBAAsB,CAAA;AA8BpE;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,UAAwB,EAAE;;CAAA,GAAG,GAAG,CAmD9D;AAED,eAAO,MAAM,qBAAqB;;kBACM,GAAG;oBAAc,MAAM;;;;cAAvB,GAAG;gBAAc,MAAM;6CAsF7D,CAAA;AAoCF,OAAO,KAAK,MAAM,OAAO,CAAA;AA0BzB,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;;;CAAA,OAGtD;AAED,wBAAgB,WAAW,CAAC,EACxB,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,GAAG,IAAI,EACV;;;;;;;CAAA,8CA+BA;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,MAAM,EAEN,OAAO,GACV;;;;;;CAAA,8CAsCA"}
|
package/esm/react.js
CHANGED
|
@@ -81,14 +81,14 @@ export const WithFramerBreakpoints = forwardRef(function WithFramerBreakpoints({
|
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
const parts = [...variants.values()].map(({ className, breakpoints, variant }) => {
|
|
84
|
+
const parts = [...variants.values()].map(({ className, breakpoints, variant }, i) => {
|
|
85
85
|
const shouldShow = !currentBreakpoint || breakpoints.includes(currentBreakpoint);
|
|
86
86
|
if (!shouldShow) {
|
|
87
87
|
return null;
|
|
88
88
|
}
|
|
89
89
|
return (_jsx("div", { className: className, children: _jsx(Component, { ref: ref,
|
|
90
90
|
// LayoutGroup is used internally
|
|
91
|
-
layoutId:
|
|
91
|
+
layoutId: variant, ...rest, variant: variant }) }, i));
|
|
92
92
|
});
|
|
93
93
|
return parts;
|
|
94
94
|
});
|
package/esm/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,EAAE,gBAAgB,EAA6B,MAAM,aAAa,CAAA;AAEzE,OAAO,EAGH,UAAU,EACV,KAAK,EACL,OAAO,EACP,oBAAoB,GACvB,MAAM,OAAO,CAAA;AACd,OAAO,EACH,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,GACjB,MAAM,UAAU,CAAA;AAEjB,SAAS,UAAU,CAAC,GAAG,IAAI;IACvB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzC,CAAC;AAED,2CAA2C;AAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAClC,sBAAsB,CACzB,CAAC,OAAO,EAA0B,CAAA;AAInC,SAAS,gCAAgC,CAAC,WAAmB;IACzD,OAAO,kBAAkB,CAAC,IAAI,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,sBAAsB,CAAC,IAAI,CAAC,CACxD,CAAA;AACL,CAAC;AAID,SAAS,eAAe,CAAC,WAAwB;IAC7C,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAChE,MAAM,iBAAiB,GAAgB,EAAE,GAAG,WAAW,EAAE,CAAA;IAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAElD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxC,iBAAiB,CAAC,iBAAiB,CAAC;gBAChC,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;QAC7C,CAAC;IACL,CAAC;IACD,OAAO,iBAAiB,CAAA;AAC5B,CAAC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE;IACjB,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;AACnB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,UAAU,GAAG,EAAW,EAAE;IACrD,MAAM,QAAQ,GAAG,oBAAoB,CACjC,OAAO,EACP,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACd,CAAA;IACD,MAAM,WAAW,GAAG,CAChB,gBACI,uBAAuB,EAAE;YACrB,MAAM,EAAE,iBAAiB,CAAC,sBAAsB,CAAC;SACpD,EAED,wBAAwB,QACxB,MAAM,UAFF,mBAAmB,CAGzB,CACL,CAAA;IACD,MAAM,KAAK,GAAG,CACV,gBACI,uBAAuB,EAAE;YACrB,MAAM,EAAE,cAAc,CAClB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAC9C;SACJ,EACD,wBAAwB,QAExB,MAAM,UADF,OAAO,CAEb,CACL,CAAA;IACD,kBAAkB;IAClB,uDAAuD;IACvD,eAAe;IACf,aAAa;IACb,4BAA4B;IAC5B,sBAAsB;IACtB,cAAc;IACd,QAAQ;IACR,IAAI;IACJ,OAAO,CACH,8BACK,WAAW,EACX,KAAK,EACN,gBACI,uBAAuB,EAAE;oBACrB,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;iBACtC,EAED,wBAAwB,QACxB,MAAM,UAFF,kBAAkB,CAGxB,IACH,CACN,CAAA;AACL,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,qBAAqB,CAG1E,EACI,SAAS,EACT,QAAQ,EAAE,eAAe,EACzB,GAAG,IAAI,EAOqC,EAChD,GAAG;IAEH,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,iBAAiB,GAAG,oBAAoB,CAC1C,QAAQ,EACR,GAAG,EAAE;QACD,sDAAsD;QACtD,MAAM,UAAU,GAAG,gCAAgC,CAC/C,MAAM,CAAC,UAAU,CACpB,CAAA;QACD,OAAO,UAAU,CAAA;IACrB,CAAC,EACD,GAAG,EAAE;QACD,iCAAiC;QAEjC,OAAO,EAAE,CAAA;IACb,CAAC,CACJ,CAAA;IACD,MAAM,cAAc,GAAG,eAAe,CAAC,eAAe,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAA;IACH,KAAK,IAAI,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;QAClD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,SAAQ;QACZ,CAAC;QAED,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACjD,IAAI,eAAe,EAAE,CAAC;YAClB,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAChD,eAAe,CAAC,SAAS,GAAG,UAAU,CAClC,eAAe,CAAC,SAAS,EACzB,YAAY,cAAc,EAAE,CAC/B,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE;gBACtB,SAAS,EAAE,UAAU,CACjB,iBAAiB,EACjB,YAAY,cAAc,EAAE,CAC/B;gBACD,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,CAAC,cAAc,CAAC;aAChC,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CACpC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,UAAU,GACZ,CAAC,iBAAiB,IAAI,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;QACjE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,IAAI,CAAA;QACf,CAAC;QACD,OAAO,CACH,cAAa,SAAS,EAAE,SAAS,YAE7B,KAAC,SAAS,IACN,GAAG,EAAE,GAAG;gBACR,iCAAiC;gBACjC,QAAQ,EAAE,OAAO,KAIb,IAAI,EACR,OAAO,EAAE,OAAc,GACzB,IAXI,CAAC,CAYL,CACT,CAAA;IACL,CAAC,CACJ,CAAA;IAED,OAAO,KAAK,CAAA;AAChB,CAAC,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,EAAE;IAC1B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC3C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE;IACtC,IAAI,SAAS,CAAA;IACb,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,QAAQ,EAAE,CAAA;QACd,CAAC,EAAE,EAAE,CAAC,CAAA;IACV,CAAC,CAAA;IACD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IACpD,OAAO,GAAG,EAAE;QACR,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IAC3D,CAAC,CAAA;AACL,CAAC,CAAA;AAED,OAAO;AACH,aAAa;AACb,gBAAgB;AAChB,aAAa;AACb,mBAAmB;AACnB,aAAa;AACb,WAAW;AAGX,aAAa;AACb,iBAAiB;AACjB,aAAa;AACb,UAAU,IAAI,IAAI,GACrB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAS,EAAE,CAAC,CAAA;AAErD,SAAS,iBAAiB,CAAC,IAAY,EAAE,MAA8B;IACnE,MAAM,UAAU,GAAG,aAAa,CAAA;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAEtC,6BAA6B;IAC7B,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAE3C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAC9C,oDAAoD;QAEpD,OAAO,GAAG,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,sBAAsB;QACnD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA,CAAC,yDAAyD;IAC3F,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACnD,eAAe;IACf,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EACxB,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,GAAG,IAAI,EACV;IACG,MAAM,aAAa,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA;IACtE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,EAAE,SAAmB,CAAA;IAC3C,MAAM,aAAa,GAAG,IAAI,EAAE,aAAuC,CAAA;IACnE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IAClD,mEAAmE;IACnE,IAAI,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,KAAM,IAAI,KAAM,aAAa,GAAI,CAAA;IAC5D,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,KAAM,IAAI,KAAM,aAAa,GAAI,CAAA;IAC5D,CAAC;IACD,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACrB,IAAI,aAAa,EAAE,CAAC;QAChB,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;IACjD,CAAC;IACD,IAAI,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;YAChC,GAAG,IAAI;YACP,IAAI,EAAE,IAAI;YACV,MAAM;SACT,CAAC,CAAA;IACN,CAAC;IAED,OAAO,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,KAAM,IAAI,KAAM,aAAa,GAAI,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC7B,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,MAAM;AACN,mBAAmB;AACnB,OAAO,GACV;IACG,MAAM,YAAY,GAAG,OAAO,EAAE,IAAI,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CACnE,CAAA;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,OAAO;YACH,YAAY;YACZ,OAAO;YACP,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE;gBAClC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;YAC9C,CAAC;SACJ,CAAA;IACL,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3B,OAAO,CACH,KAAC,mBAAmB,cAChB,KAAC,gBAAgB,cACb,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YACrC,KAAC,iBAAiB,IAAC,KAAK,EAAE,UAAU,YAChC,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YAYhC,QAAQ,GACY,GACT,GACD,GACR,GACD,CACzB,CAAA;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unframer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.17.1",
|
|
4
4
|
"description": "Import Framer components directly in your React app, type safe and customizable",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"repository": "https://github.com/remorses/unframer",
|
|
@@ -47,37 +47,37 @@
|
|
|
47
47
|
"dprint-node": "^1.0.8",
|
|
48
48
|
"esbuild": "^0.24.2",
|
|
49
49
|
"esbuild-plugins-node-modules-polyfill": "^1.6.8",
|
|
50
|
-
"find-up": "^
|
|
50
|
+
"find-up": "^7.0.0",
|
|
51
51
|
"json5": "^2.2.3",
|
|
52
|
-
"marked": "^15.0.
|
|
52
|
+
"marked": "^15.0.6",
|
|
53
53
|
"marked-terminal": "^7.2.1",
|
|
54
54
|
"nanospinner": "^1.2.2",
|
|
55
|
-
"picocolors": "^1.
|
|
56
|
-
"real-framer-motion": "npm:framer-motion@
|
|
57
|
-
"spiceflow": "^1.
|
|
55
|
+
"picocolors": "^1.1.1",
|
|
56
|
+
"real-framer-motion": "npm:framer-motion@12.0.6",
|
|
57
|
+
"spiceflow": "^1.5.1",
|
|
58
58
|
"string-dedent": "^3.0.1"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@babel/core": "^7.
|
|
62
|
-
"@babel/helper-annotate-as-pure": "^7.
|
|
61
|
+
"@babel/core": "^7.26.7",
|
|
62
|
+
"@babel/helper-annotate-as-pure": "^7.25.9",
|
|
63
63
|
"@babel/helper-environment-visitor": "^7.24.7",
|
|
64
64
|
"@babel/helper-split-export-declaration": "^7.24.7",
|
|
65
|
-
"@babel/plugin-transform-react-pure-annotations": "^7.
|
|
66
|
-
"@babel/traverse": "^7.
|
|
67
|
-
"@babel/types": "^7.
|
|
65
|
+
"@babel/plugin-transform-react-pure-annotations": "^7.25.9",
|
|
66
|
+
"@babel/traverse": "^7.26.7",
|
|
67
|
+
"@babel/types": "^7.26.7",
|
|
68
68
|
"@types/babel__core": "^7.20.5",
|
|
69
69
|
"@types/babel__traverse": "^7.20.6",
|
|
70
|
-
"@types/bun": "^1.1
|
|
71
|
-
"@types/node": "^22.
|
|
72
|
-
"@types/react": "^
|
|
70
|
+
"@types/bun": "^1.2.1",
|
|
71
|
+
"@types/node": "^22.12.0",
|
|
72
|
+
"@types/react": "^19.0.8",
|
|
73
73
|
"@xmorse/deployment-utils": "^0.2.19",
|
|
74
|
-
"concurrently": "^
|
|
75
|
-
"openai": "^4.
|
|
74
|
+
"concurrently": "^9.1.2",
|
|
75
|
+
"openai": "^4.80.1",
|
|
76
76
|
"posthtml": "^0.16.6",
|
|
77
77
|
"react": "19.0.0",
|
|
78
78
|
"react-dom": "19.0.0",
|
|
79
|
-
"tiktoken": "^1.0.
|
|
80
|
-
"typescript": "^5.7.
|
|
79
|
+
"tiktoken": "^1.0.18",
|
|
80
|
+
"typescript": "^5.7.3"
|
|
81
81
|
},
|
|
82
82
|
"scripts": {
|
|
83
83
|
"build": "rm -rf dist && pnpm concurrently \"pnpm tsc -m esnext --moduleResolution node --outDir esm\" \"pnpm tsc\" && echo copying && cp ../README.md ./README.md && cp ./src/framer.d.ts ./dist/framer.d.ts && cp ./src/framer.d.ts ./esm/framer.d.ts",
|
package/src/cli.tsx
CHANGED
|
@@ -4,7 +4,7 @@ import { bundle, StyleToken } from './exporter.js'
|
|
|
4
4
|
import { createClient } from './generated/api-client.js'
|
|
5
5
|
|
|
6
6
|
import { cac } from 'cac'
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
import fs from 'fs'
|
|
9
9
|
import path, { basename } from 'path'
|
|
10
10
|
import { BreakpointSizes } from './css.js'
|
|
@@ -38,8 +38,8 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
38
38
|
const externalPackages: string[] = Array.isArray(external_)
|
|
39
39
|
? external_.filter((x) => x.trim())
|
|
40
40
|
: typeof external_ === 'string'
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
? [external_]
|
|
42
|
+
: []
|
|
43
43
|
try {
|
|
44
44
|
if (options.debug) {
|
|
45
45
|
logger.debug = true
|
|
@@ -47,6 +47,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
47
47
|
const outDir = options.outDir
|
|
48
48
|
const controller = new AbortController()
|
|
49
49
|
const signal = controller.signal
|
|
50
|
+
const watch = options.watch
|
|
50
51
|
if (projectId) {
|
|
51
52
|
logger.log(`Fetching config for project ${projectId}`)
|
|
52
53
|
|
|
@@ -110,7 +111,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
110
111
|
tokens: data.colorStyles,
|
|
111
112
|
framerWebPages: data.framerWebPages || [],
|
|
112
113
|
},
|
|
113
|
-
watch
|
|
114
|
+
watch,
|
|
114
115
|
|
|
115
116
|
cwd,
|
|
116
117
|
signal,
|
|
@@ -154,6 +155,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
154
155
|
fixOldUnframerPath()
|
|
155
156
|
const cwd = process.cwd()
|
|
156
157
|
logger.log(`Looking for ${configNames.join(', ')} in ${cwd}`)
|
|
158
|
+
const { findUp } = await import('find-up')
|
|
157
159
|
const configPath = await findUp(configNames, { cwd })
|
|
158
160
|
if (!configPath) {
|
|
159
161
|
logger.log(`No ${configNames.join(', ')} found`)
|
|
@@ -173,7 +175,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
173
175
|
setMaxListeners(0, controller.signal)
|
|
174
176
|
const { buildContext } = await bundle({
|
|
175
177
|
config: { ...config, externalPackages, allExternal },
|
|
176
|
-
watch
|
|
178
|
+
watch,
|
|
177
179
|
signal: controller.signal,
|
|
178
180
|
cwd: path.resolve(process.cwd(), config.outDir || 'framer'),
|
|
179
181
|
})
|
package/src/esbuild.ts
CHANGED
|
@@ -98,7 +98,7 @@ export function esbuildPluginBundleDependencies({
|
|
|
98
98
|
}).catch(() => '')
|
|
99
99
|
if (!installedVersion) {
|
|
100
100
|
spinner.error(
|
|
101
|
-
`${pkg} not found: install it with \`npm i ${pkg}
|
|
101
|
+
`${pkg} not found: install it with \`npm i ${pkg}\` then run \`unframer\` again to generate the types`,
|
|
102
102
|
)
|
|
103
103
|
}
|
|
104
104
|
return {
|
|
@@ -124,7 +124,7 @@ export function esbuildPluginBundleDependencies({
|
|
|
124
124
|
}).catch(() => '')
|
|
125
125
|
if (!installedVersion) {
|
|
126
126
|
spinner.error(
|
|
127
|
-
`${pkg} not found: install it with \`npm i ${pkg}
|
|
127
|
+
`${pkg} not found: install it with \`npm i ${pkg}\` then run \`unframer\` again to generate the types`,
|
|
128
128
|
)
|
|
129
129
|
}
|
|
130
130
|
return {
|
|
@@ -193,6 +193,9 @@ export function esbuildPluginBundleDependencies({
|
|
|
193
193
|
/(\/\* webpackIgnore: true \*\/)/g,
|
|
194
194
|
'$1 /* @vite-ignore */',
|
|
195
195
|
)
|
|
196
|
+
// if (!text.includes('import.meta.url')) {
|
|
197
|
+
// return text
|
|
198
|
+
// }
|
|
196
199
|
|
|
197
200
|
const transformed = await transform(text, {
|
|
198
201
|
define: {
|
package/src/exporter.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { build, BuildResult, context } from 'esbuild'
|
|
1
|
+
import { build, BuildResult, context, type BuildOptions } from 'esbuild'
|
|
2
2
|
import packageJson from '../package.json'
|
|
3
3
|
|
|
4
4
|
import url from 'url'
|
|
@@ -57,7 +57,7 @@ export async function bundle({
|
|
|
57
57
|
out ||= path.resolve(process.cwd(), 'example')
|
|
58
58
|
out = path.resolve(out)
|
|
59
59
|
try {
|
|
60
|
-
fs.
|
|
60
|
+
await fs.promises.mkdir(out, { recursive: true })
|
|
61
61
|
} catch (e) {}
|
|
62
62
|
|
|
63
63
|
spinner.start()
|
|
@@ -72,7 +72,17 @@ export async function bundle({
|
|
|
72
72
|
const breakpointSizes = Object.entries(
|
|
73
73
|
config.breakpoints || defaultBreakpointSizes,
|
|
74
74
|
).sort(([, a], [, b]) => a - b)
|
|
75
|
-
|
|
75
|
+
function fakeContext(args: BuildOptions) {
|
|
76
|
+
return {
|
|
77
|
+
rebuild() {
|
|
78
|
+
return build(args)
|
|
79
|
+
},
|
|
80
|
+
cancel() {},
|
|
81
|
+
dispose() {},
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const fn = watch ? context : fakeContext
|
|
85
|
+
const buildContext = await fn({
|
|
76
86
|
absWorkingDir: out,
|
|
77
87
|
|
|
78
88
|
entryPoints: Object.keys(components).map((name) => {
|
|
@@ -223,7 +233,7 @@ export async function bundle({
|
|
|
223
233
|
} "${config.projectName}", do not edit manually */\n`
|
|
224
234
|
|
|
225
235
|
async function rebuild() {
|
|
226
|
-
const prevFiles = recursiveReaddir(out)
|
|
236
|
+
const prevFiles = await recursiveReaddir(out)
|
|
227
237
|
const buildResult = await buildContext.rebuild().catch((e) => {
|
|
228
238
|
if (e.message.includes('No matching export ')) {
|
|
229
239
|
spinner.error(
|
|
@@ -237,6 +247,8 @@ export async function bundle({
|
|
|
237
247
|
throw e
|
|
238
248
|
})
|
|
239
249
|
|
|
250
|
+
spinner.update('Finished build')
|
|
251
|
+
|
|
240
252
|
for (let file of buildResult.outputFiles!) {
|
|
241
253
|
const resultPathAbs = path.resolve(out, file.path)
|
|
242
254
|
const existing = await fs.promises
|
|
@@ -256,24 +268,28 @@ export async function bundle({
|
|
|
256
268
|
// })
|
|
257
269
|
// let inputCode = res!.code!
|
|
258
270
|
|
|
259
|
-
const
|
|
271
|
+
const tooBigSize = 1 * 1024 * 1024
|
|
260
272
|
|
|
261
273
|
let formatted = file.text
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
274
|
+
// let tooBig = file.text.length >= tooBigSize
|
|
275
|
+
// let shouldFormat = !tooBig && !file.path.includes('chunks')
|
|
276
|
+
// if (shouldFormat) {
|
|
277
|
+
// spinner.update(`Formatting ${path.relative(out, file.path)}`)
|
|
278
|
+
// formatted = dprint.format('file.jsx', file.text, {
|
|
279
|
+
// lineWidth: 140,
|
|
280
|
+
// quoteStyle: 'alwaysSingle',
|
|
281
|
+
// trailingCommas: 'always',
|
|
282
|
+
// semiColons: 'always',
|
|
283
|
+
// })
|
|
284
|
+
// }
|
|
285
|
+
// if (tooBig) {
|
|
286
|
+
// spinner.info(
|
|
287
|
+
// `skipping formatting ${path.relative(
|
|
288
|
+
// out,
|
|
289
|
+
// file.path,
|
|
290
|
+
// )}, too big`,
|
|
291
|
+
// )
|
|
292
|
+
// }
|
|
277
293
|
|
|
278
294
|
let codeNew =
|
|
279
295
|
`// @ts-nocheck\n` +
|
|
@@ -300,25 +316,32 @@ export async function bundle({
|
|
|
300
316
|
continue
|
|
301
317
|
}
|
|
302
318
|
logger.log(`writing`, path.relative(out, file.path))
|
|
303
|
-
fs.
|
|
304
|
-
|
|
319
|
+
await fs.promises.mkdir(path.dirname(resultPathAbs), {
|
|
320
|
+
recursive: true,
|
|
321
|
+
})
|
|
322
|
+
await fs.promises.writeFile(resultPathAbs, codeNew, 'utf-8')
|
|
305
323
|
}
|
|
306
324
|
spinner.stop()
|
|
325
|
+
await fs.promises.writeFile(
|
|
326
|
+
path.resolve(out, '.cursorignore'),
|
|
327
|
+
`**/*.js\nchunks\n`,
|
|
328
|
+
'utf-8',
|
|
329
|
+
)
|
|
307
330
|
|
|
308
|
-
|
|
309
|
-
|
|
331
|
+
if (!buildResult?.outputFiles) {
|
|
332
|
+
throw new Error('Failed to generate result')
|
|
333
|
+
}
|
|
310
334
|
const packageJson = path.resolve(out, 'package.json')
|
|
311
|
-
fs.
|
|
335
|
+
await fs.promises.writeFile(
|
|
312
336
|
packageJson,
|
|
313
337
|
JSON.stringify({ type: 'module' }),
|
|
314
338
|
'utf-8',
|
|
315
339
|
)
|
|
316
|
-
|
|
317
|
-
throw new Error('Failed to generate result')
|
|
318
|
-
}
|
|
340
|
+
|
|
319
341
|
const sema = new Sema(10)
|
|
320
|
-
spinner.
|
|
342
|
+
spinner.update('Extracting types')
|
|
321
343
|
logger.log(`using node path`, nodePath)
|
|
344
|
+
let allFonts = [] as ComponentFontBundle[]
|
|
322
345
|
const propControlsData = await Promise.all(
|
|
323
346
|
buildResult?.outputFiles.map(async (file) => {
|
|
324
347
|
try {
|
|
@@ -349,8 +372,11 @@ export async function bundle({
|
|
|
349
372
|
fileName: name,
|
|
350
373
|
config,
|
|
351
374
|
})
|
|
352
|
-
fs.
|
|
353
|
-
fs.
|
|
375
|
+
await fs.promises.mkdir(out, { recursive: true })
|
|
376
|
+
await fs.promises.writeFile(
|
|
377
|
+
path.resolve(out, `${name}.d.ts`),
|
|
378
|
+
types,
|
|
379
|
+
)
|
|
354
380
|
return {
|
|
355
381
|
propertyControls,
|
|
356
382
|
fonts,
|
|
@@ -360,9 +386,9 @@ export async function bundle({
|
|
|
360
386
|
sema.release()
|
|
361
387
|
}
|
|
362
388
|
}),
|
|
363
|
-
).finally(() => {
|
|
389
|
+
).finally(async () => {
|
|
364
390
|
try {
|
|
365
|
-
fs.
|
|
391
|
+
await fs.promises.rm(packageJson)
|
|
366
392
|
} catch (error) {
|
|
367
393
|
// Ignore error if file doesn't exist or can't be deleted
|
|
368
394
|
}
|
|
@@ -381,10 +407,9 @@ export async function bundle({
|
|
|
381
407
|
.map((x) => (x?.startsWith(' ') ? dedent(x) : x))
|
|
382
408
|
.join('\n') +
|
|
383
409
|
getFontsStyles(allFonts)
|
|
384
|
-
fs.
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
`**/*.js\nchunks\n`,
|
|
410
|
+
await fs.promises.writeFile(
|
|
411
|
+
path.resolve(out, 'styles.css'),
|
|
412
|
+
cssString,
|
|
388
413
|
'utf-8',
|
|
389
414
|
)
|
|
390
415
|
|
|
@@ -397,6 +422,7 @@ export async function bundle({
|
|
|
397
422
|
.concat([
|
|
398
423
|
path.resolve(out, 'meta.json'),
|
|
399
424
|
path.resolve(out, 'tokens.css'),
|
|
425
|
+
path.resolve(out, '.cursorignore'),
|
|
400
426
|
path.resolve(out, 'styles.css'),
|
|
401
427
|
])
|
|
402
428
|
.concat(
|
|
@@ -408,13 +434,13 @@ export async function bundle({
|
|
|
408
434
|
for (let file of filesToDelete) {
|
|
409
435
|
logger.log('deleting', path.relative(out, file))
|
|
410
436
|
try {
|
|
411
|
-
fs.
|
|
437
|
+
await fs.promises.rm(file)
|
|
412
438
|
} catch (error) {
|
|
413
439
|
// Ignore error if file doesn't exist or can't be deleted
|
|
414
440
|
}
|
|
415
441
|
}
|
|
416
442
|
|
|
417
|
-
fs.
|
|
443
|
+
await fs.promises.writeFile(
|
|
418
444
|
path.resolve(out, 'meta.json'),
|
|
419
445
|
JSON.stringify(buildResult.metafile, null, 2),
|
|
420
446
|
'utf-8',
|
|
@@ -432,7 +458,7 @@ export async function bundle({
|
|
|
432
458
|
"/* This css file contains your color variables, sometimes these get desynced when updated in Framer so it's good that you copy and paste this snippet into your app css */\n" +
|
|
433
459
|
'/* Bug: https://www.framer.community/c/bugs/color-style-unlinks-when-copying-component-between-projects-resulting-in-potential-value-discrepancy */\n' +
|
|
434
460
|
getTokensCss({ out, result: buildResult })
|
|
435
|
-
fs.
|
|
461
|
+
await fs.promises.writeFile(
|
|
436
462
|
path.resolve(out, 'tokens.css'),
|
|
437
463
|
tokensCss,
|
|
438
464
|
'utf-8',
|
|
@@ -594,52 +620,6 @@ export async function bundle({
|
|
|
594
620
|
await checkUnframerVersion({ cwd: out })
|
|
595
621
|
console.log()
|
|
596
622
|
return { result, rebuild, buildContext }
|
|
597
|
-
|
|
598
|
-
// // when user press ctrl+c dispose
|
|
599
|
-
// process.on('SIGINT', async () => {
|
|
600
|
-
// await buildContext.cancel()
|
|
601
|
-
// buildContext.dispose()
|
|
602
|
-
// })
|
|
603
|
-
// process.on('SIGABRT', async () => {
|
|
604
|
-
// await buildContext.cancel()
|
|
605
|
-
// buildContext.dispose()
|
|
606
|
-
// })
|
|
607
|
-
// signal?.addEventListener('abort', async () => {
|
|
608
|
-
// await buildContext.cancel()
|
|
609
|
-
// buildContext.dispose()
|
|
610
|
-
// })
|
|
611
|
-
|
|
612
|
-
// const res = await rebuild()
|
|
613
|
-
|
|
614
|
-
// /**
|
|
615
|
-
// * Get resolved URLs for all components and also wait for 1 second if it took less time than that
|
|
616
|
-
// */
|
|
617
|
-
// const getResolvedUrls = () =>
|
|
618
|
-
// Promise.all([
|
|
619
|
-
// ...Object.values(components).map((u) => {
|
|
620
|
-
// const url = new URL(u)
|
|
621
|
-
// url.searchParams.set('ts', Date.now().toString())
|
|
622
|
-
// return resolveRedirect({ url: url.toString(), signal })
|
|
623
|
-
// }),
|
|
624
|
-
// new Promise((res) => setTimeout(res, 5000)),
|
|
625
|
-
// ])
|
|
626
|
-
// let prevUrls = await getResolvedUrls()
|
|
627
|
-
// while (!signal?.aborted) {
|
|
628
|
-
// const urls = await getResolvedUrls()
|
|
629
|
-
// const changed = urls
|
|
630
|
-
// .map((x, i) => (x !== prevUrls[i] ? i : null))
|
|
631
|
-
// .filter(Boolean)
|
|
632
|
-
// if (!changed?.length) {
|
|
633
|
-
// continue
|
|
634
|
-
// }
|
|
635
|
-
// const changedNames = Object.keys(components).filter((_, i) =>
|
|
636
|
-
// changed.includes(i),
|
|
637
|
-
// )
|
|
638
|
-
// logger.log(`found new component URLs for ${changedNames.join(', ')}`)
|
|
639
|
-
// prevUrls = urls
|
|
640
|
-
// await rebuild()
|
|
641
|
-
// }
|
|
642
|
-
// return res
|
|
643
623
|
}
|
|
644
624
|
|
|
645
625
|
const packageVersionCache = new Map<string, string>()
|
|
@@ -768,7 +748,7 @@ export function findRelativeLinks(text: string) {
|
|
|
768
748
|
return [...lineNumbers]
|
|
769
749
|
}
|
|
770
750
|
|
|
771
|
-
|
|
751
|
+
async function extractPropControlsSafe(text, name) {
|
|
772
752
|
try {
|
|
773
753
|
const propControlsCode = await parsePropertyControls(text)
|
|
774
754
|
// console.log('propControlsCode', propControlsCode)
|
|
@@ -778,17 +758,17 @@ export async function extractPropControlsSafe(text, name) {
|
|
|
778
758
|
const ivm = require('isolated-vm')
|
|
779
759
|
const vm = new ivm.Isolate({ memoryLimit: 128 })
|
|
780
760
|
|
|
781
|
-
const
|
|
761
|
+
const vmContext = vm.createContextSync()
|
|
782
762
|
|
|
783
|
-
const jail =
|
|
763
|
+
const jail = vmContext.global
|
|
784
764
|
|
|
785
765
|
let result = undefined
|
|
786
|
-
|
|
766
|
+
vmContext.global.setSync('__return', (x) => {
|
|
787
767
|
result = x
|
|
788
768
|
})
|
|
789
769
|
|
|
790
770
|
const mod = vm.compileModuleSync(`${text}`)
|
|
791
|
-
await mod.instantiateSync(
|
|
771
|
+
await mod.instantiateSync(vmContext, (spec, mod) => {
|
|
792
772
|
// TODO instantiate framer, react, framer-motion etc
|
|
793
773
|
return
|
|
794
774
|
})
|
|
@@ -927,13 +907,14 @@ export async function extractPropControlsUnsafe(
|
|
|
927
907
|
).href,
|
|
928
908
|
})
|
|
929
909
|
let stdout = await new Promise<string>((res, rej) => {
|
|
910
|
+
const cmd = `"${
|
|
911
|
+
nodePath
|
|
912
|
+
}" --no-warnings --input-type=module --loader ${require.resolve(
|
|
913
|
+
'../dist/unframer-loader.js',
|
|
914
|
+
)} -e ${JSON.stringify(code)}`
|
|
915
|
+
|
|
930
916
|
let childProcess = exec(
|
|
931
|
-
|
|
932
|
-
nodePath,
|
|
933
|
-
)} --no-warnings --input-type=module --loader ${
|
|
934
|
-
url.pathToFileURL(require.resolve('../dist/unframer-loader.js'))
|
|
935
|
-
.href
|
|
936
|
-
} -e ${JSON.stringify(code)}`,
|
|
917
|
+
cmd,
|
|
937
918
|
{
|
|
938
919
|
env: {
|
|
939
920
|
// ...process.env,
|
|
@@ -1298,11 +1279,13 @@ h1, h2, h3, h4, h5, h6, p, figure {
|
|
|
1298
1279
|
|
|
1299
1280
|
`
|
|
1300
1281
|
|
|
1301
|
-
function recursiveReaddir(dir: string) {
|
|
1302
|
-
const dirents = fs.
|
|
1303
|
-
const files =
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1282
|
+
async function recursiveReaddir(dir: string): Promise<string[]> {
|
|
1283
|
+
const dirents = await fs.promises.readdir(dir, { withFileTypes: true })
|
|
1284
|
+
const files = await Promise.all(
|
|
1285
|
+
dirents.map((dirent) => {
|
|
1286
|
+
const res = path.resolve(dir, dirent.name)
|
|
1287
|
+
return dirent.isDirectory() ? recursiveReaddir(res) : res
|
|
1288
|
+
}),
|
|
1289
|
+
)
|
|
1307
1290
|
return files.flat()
|
|
1308
1291
|
}
|