unframer 2.7.11 → 2.9.0
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/cli.d.ts +10 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -4
- package/dist/cli.js.map +1 -1
- package/dist/cli.test.js +8 -0
- package/dist/cli.test.js.map +1 -1
- package/dist/exporter.d.ts +5 -1
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +75 -14
- package/dist/exporter.js.map +1 -1
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +116 -92
- package/dist/framer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +10 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +7 -0
- package/dist/react.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +9 -0
- package/dist/utils.js.map +1 -1
- package/esm/cli.d.ts +10 -0
- package/esm/cli.d.ts.map +1 -1
- package/esm/cli.js +11 -5
- package/esm/cli.js.map +1 -1
- package/esm/cli.test.js +9 -1
- package/esm/cli.test.js.map +1 -1
- package/esm/exporter.d.ts +5 -1
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +75 -14
- package/esm/exporter.js.map +1 -1
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +113 -92
- package/esm/framer.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/react.d.ts +10 -0
- package/esm/react.d.ts.map +1 -1
- package/esm/react.js +14 -0
- package/esm/react.js.map +1 -1
- package/esm/utils.d.ts +1 -0
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +8 -0
- package/esm/utils.js.map +1 -1
- package/package.json +7 -4
- package/src/cli.test.ts +20 -3
- package/src/cli.tsx +25 -5
- package/src/exporter.ts +94 -18
- package/src/framer.js +122 -93
- package/src/index.ts +1 -1
- package/src/react.tsx +46 -1
- package/src/utils.ts +9 -0
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAE3B,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACnB,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,9 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.WithFramerBreakpoints = exports.FramerStyles = void 0;
|
|
17
|
+
exports.ContextProviders = exports.WithFramerBreakpoints = exports.FramerStyles = void 0;
|
|
18
18
|
__exportStar(require("./framer.js"), exports);
|
|
19
19
|
var react_js_1 = require("./react.js");
|
|
20
20
|
Object.defineProperty(exports, "FramerStyles", { enumerable: true, get: function () { return react_js_1.FramerStyles; } });
|
|
21
21
|
Object.defineProperty(exports, "WithFramerBreakpoints", { enumerable: true, get: function () { return react_js_1.WithFramerBreakpoints; } });
|
|
22
|
+
Object.defineProperty(exports, "ContextProviders", { enumerable: true, get: function () { return react_js_1.ContextProviders; } });
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA2B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA2B;AAE3B,uCAKmB;AAJf,wGAAA,YAAY,OAAA;AAEZ,iHAAA,qBAAqB,OAAA;AACrB,4GAAA,gBAAgB,OAAA"}
|
package/dist/react.d.ts
CHANGED
|
@@ -17,4 +17,14 @@ export declare const WithFramerBreakpoints: import("react").ForwardRefExoticComp
|
|
|
17
17
|
variant?: any;
|
|
18
18
|
className?: string;
|
|
19
19
|
}, "variant"> & import("react").RefAttributes<unknown>>;
|
|
20
|
+
export declare function ContextProviders({ locale, children, framerSiteId, routes, routeId, pathVariables, collectionUtils, locales, }: {
|
|
21
|
+
locale: any;
|
|
22
|
+
children: any;
|
|
23
|
+
framerSiteId: any;
|
|
24
|
+
routes: any;
|
|
25
|
+
routeId: any;
|
|
26
|
+
pathVariables: any;
|
|
27
|
+
collectionUtils: any;
|
|
28
|
+
locales: any;
|
|
29
|
+
}): import("react/jsx-runtime.js").JSX.Element;
|
|
20
30
|
//# sourceMappingURL=react.d.ts.map
|
package/dist/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;uDA2E7D,CAAA"}
|
|
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;uDA2E7D,CAAA;AAkBF,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,OAAO,EACP,aAAa,EACb,eAAe,EACf,OAAO,GACV;;;;;;;;;CAAA,8CAuBA"}
|
package/dist/react.js
CHANGED
|
@@ -14,6 +14,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.WithFramerBreakpoints = void 0;
|
|
16
16
|
exports.FramerStyles = FramerStyles;
|
|
17
|
+
exports.ContextProviders = ContextProviders;
|
|
17
18
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
19
|
const framer_js_1 = require("./framer.js");
|
|
19
20
|
const react_1 = require("react");
|
|
@@ -104,4 +105,10 @@ const onResize = (callback) => {
|
|
|
104
105
|
window.addEventListener('resize', callback);
|
|
105
106
|
return () => window.removeEventListener('resize', callback);
|
|
106
107
|
};
|
|
108
|
+
const framer_js_2 = require("./framer.js");
|
|
109
|
+
function ContextProviders({ locale, children, framerSiteId, routes, routeId, pathVariables, collectionUtils, locales, }) {
|
|
110
|
+
var _a;
|
|
111
|
+
const localeId = (_a = locales === null || locales === void 0 ? void 0 : locales.find((l) => l.slug === locale || l.code === locale || l.id === locale)) === null || _a === void 0 ? void 0 : _a.id;
|
|
112
|
+
return ((0, jsx_runtime_1.jsx)(framer_js_2.FetchClientProvider, { children: (0, jsx_runtime_1.jsx)(framer_js_2.CustomCursorHost, { children: (0, jsx_runtime_1.jsx)(framer_js_2.FormContext.Provider, { value: framerSiteId, children: (0, jsx_runtime_1.jsx)(framer_js_2.Router, { initialRoute: routeId, initialPathVariables: pathVariables, initialLocaleId: localeId, enableImproveInpDuringHydration: true, routes: routes, collectionUtils: collectionUtils, locales: locales, children: children }) }) }) }));
|
|
113
|
+
}
|
|
107
114
|
//# sourceMappingURL=react.js.map
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;;;;;;;;;;;AA2DZ,oCAmDC;;
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO,EAAqD,GAAG,CAAA;AAI5E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,4BAEhD;AAKD,eAAO,MAAM,MAAM;;;;CAalB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAM/C"}
|
package/dist/utils.js
CHANGED
|
@@ -5,10 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.logger = exports.spinner = void 0;
|
|
7
7
|
exports.terminalMarkdown = terminalMarkdown;
|
|
8
|
+
exports.componentNameToPath = componentNameToPath;
|
|
8
9
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
9
10
|
const marked_1 = require("marked");
|
|
10
11
|
const marked_terminal_1 = require("marked-terminal");
|
|
11
12
|
const nanospinner_1 = require("nanospinner");
|
|
13
|
+
const just_kebab_case_1 = __importDefault(require("just-kebab-case"));
|
|
12
14
|
exports.spinner = (0, nanospinner_1.createSpinner)('Downloading Framer Components');
|
|
13
15
|
marked_1.marked.use((0, marked_terminal_1.markedTerminal)());
|
|
14
16
|
function terminalMarkdown(markdown) {
|
|
@@ -30,4 +32,11 @@ exports.logger = {
|
|
|
30
32
|
console.error([prefix, ...args].map((x) => picocolors_1.default.red(x)).join(' '));
|
|
31
33
|
},
|
|
32
34
|
};
|
|
35
|
+
function componentNameToPath(name) {
|
|
36
|
+
return name
|
|
37
|
+
.split('/')
|
|
38
|
+
.filter(Boolean)
|
|
39
|
+
.map((part) => (0, just_kebab_case_1.default)(part))
|
|
40
|
+
.join('/');
|
|
41
|
+
}
|
|
33
42
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAWA,4CAEC;AAoBD,kDAMC;AAvCD,4DAA6B;AAE7B,mCAA+B;AAC/B,qDAAgD;AAChD,6CAA2C;AAC3C,sEAAuC;AAE1B,QAAA,OAAO,GAAG,IAAA,2BAAa,EAAC,+BAA+B,CAAQ,CAAA;AAE5E,eAAM,CAAC,GAAG,CAAC,IAAA,gCAAc,GAAE,CAAC,CAAA;AAE5B,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,OAAO,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;AAExD,MAAM,MAAM,GAAG,YAAY,CAAA;AACd,QAAA,MAAM,GAAG;IAClB,GAAG,CAAC,GAAG,IAAI;QACP,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACvB,OAAM;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;IAChC,CAAC;IACD,KAAK,CAAC,GAAG,IAAI;QACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACtE,CAAC;IACD,KAAK,CAAC,GAAG,IAAI;QACT,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACtE,CAAC;CACJ,CAAA;AAED,SAAgB,mBAAmB,CAAC,IAAY;IAC5C,OAAO,IAAI;SACN,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,CAAC;SAC9B,IAAI,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC"}
|
package/esm/cli.d.ts
CHANGED
|
@@ -5,10 +5,20 @@ export type Config = {
|
|
|
5
5
|
components: {
|
|
6
6
|
[name: string]: string;
|
|
7
7
|
};
|
|
8
|
+
projectId?: string;
|
|
9
|
+
fullFramerProjectId?: string;
|
|
10
|
+
projectName?: string;
|
|
8
11
|
framerWebPages?: {
|
|
9
12
|
webPageId: string;
|
|
13
|
+
components?: string[];
|
|
10
14
|
path: string;
|
|
11
15
|
}[];
|
|
16
|
+
locales?: {
|
|
17
|
+
code: string;
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
slug: string;
|
|
21
|
+
}[];
|
|
12
22
|
breakpoints?: BreakpointSizes;
|
|
13
23
|
tokens?: StyleToken[];
|
|
14
24
|
outDir?: string;
|
package/esm/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,UAAU,EAAE,MAAM,eAAe,CAAA;AAMlD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK1C,eAAO,MAAM,GAAG,mBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,UAAU,EAAE,MAAM,eAAe,CAAA;AAMlD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAK1C,eAAO,MAAM,GAAG,mBAAkB,CAAA;AAmJlC,MAAM,MAAM,MAAM,GAAG;IACjB,UAAU,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KACzB,CAAA;IACD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE;QACb,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;KACf,EAAE,CAAA;IACH,OAAO,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACf,EAAE,CAAA;IACH,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA"}
|
package/esm/cli.js
CHANGED
|
@@ -14,16 +14,15 @@ import { cac } from 'cac';
|
|
|
14
14
|
import findUp from 'find-up';
|
|
15
15
|
import fs from 'fs-extra';
|
|
16
16
|
import path, { basename } from 'path';
|
|
17
|
-
import { logger, spinner } from './utils.js';
|
|
17
|
+
import { componentNameToPath, logger, spinner } from './utils.js';
|
|
18
18
|
const configNames = ['unframer.config.json', 'unframer.json'];
|
|
19
|
-
import kebabCase from 'just-kebab-case';
|
|
20
19
|
export const cli = cac('unframer');
|
|
21
20
|
let defaultOutDir = 'framer';
|
|
22
21
|
cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
23
22
|
.option('--outDir <dir>', 'Output directory', { default: defaultOutDir })
|
|
24
23
|
.action(function main(projectId, options) {
|
|
25
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
var _a;
|
|
25
|
+
var _a, _b, _c;
|
|
27
26
|
const outDir = options.outDir;
|
|
28
27
|
if (projectId) {
|
|
29
28
|
logger.log(`Fetching config for project ${projectId}`);
|
|
@@ -43,7 +42,14 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
43
42
|
return yield bundle({
|
|
44
43
|
config: {
|
|
45
44
|
outDir,
|
|
46
|
-
|
|
45
|
+
projectId: (_b = data === null || data === void 0 ? void 0 : data.project) === null || _b === void 0 ? void 0 : _b.id,
|
|
46
|
+
projectName,
|
|
47
|
+
fullFramerProjectId: (_c = data === null || data === void 0 ? void 0 : data.project) === null || _c === void 0 ? void 0 : _c.fullFramerProjectId,
|
|
48
|
+
locales: data === null || data === void 0 ? void 0 : data.locales,
|
|
49
|
+
components: Object.fromEntries(data.components.map((c) => [
|
|
50
|
+
componentNameToPath(c.name),
|
|
51
|
+
c.url,
|
|
52
|
+
])),
|
|
47
53
|
tokens: data.colorStyles,
|
|
48
54
|
framerWebPages: data.framerWebPages || [],
|
|
49
55
|
},
|
|
@@ -76,7 +82,7 @@ cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
76
82
|
config,
|
|
77
83
|
watch: false,
|
|
78
84
|
signal: controller.signal,
|
|
79
|
-
cwd: path.resolve(process.cwd(), outDir || 'framer'),
|
|
85
|
+
cwd: path.resolve(process.cwd(), config.outDir || 'framer'),
|
|
80
86
|
});
|
|
81
87
|
});
|
|
82
88
|
});
|
package/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,IAAI,MAAM,OAAO,CAAA;AACxB,OAAO,EAAE,MAAM,EAAc,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
|
package/esm/cli.test.js
CHANGED
|
@@ -8,13 +8,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { expect, test } from 'vitest';
|
|
11
|
-
import { componentCamelCase, extractTokenInfo, findRelativeLinks } from './exporter.js';
|
|
11
|
+
import { componentCamelCase, extractTokenInfo, findRelativeLinks, } from './exporter.js';
|
|
12
|
+
import { componentNameToPath } from './utils.js';
|
|
13
|
+
test('componentNameToPath', () => {
|
|
14
|
+
expect(componentNameToPath('LogoTicker')).toMatchInlineSnapshot(`"logo-ticker"`);
|
|
15
|
+
expect(componentNameToPath('NavBar')).toMatchInlineSnapshot(`"nav-bar"`);
|
|
16
|
+
expect(componentNameToPath('components/HeroSection')).toMatchInlineSnapshot(`"components/hero-section"`);
|
|
17
|
+
expect(componentNameToPath('shared/nav/framerNav')).toMatchInlineSnapshot(`"shared/nav/framer-nav"`);
|
|
18
|
+
});
|
|
12
19
|
test('componentCamelCase', () => {
|
|
13
20
|
expect(componentCamelCase('logo-ticker')).toMatchInlineSnapshot(`"LogoTickerFramerComponent"`);
|
|
14
21
|
expect(componentCamelCase('Logo-Ticker')).toMatchInlineSnapshot(`"LogoTickerFramerComponent"`);
|
|
15
22
|
expect(componentCamelCase('logo')).toMatchInlineSnapshot(`"LogoFramerComponent"`);
|
|
16
23
|
expect(componentCamelCase('nav')).toMatchInlineSnapshot(`"NavFramerComponent"`);
|
|
17
24
|
expect(componentCamelCase('framer_nav')).toMatchInlineSnapshot(`"FramerNavFramerComponent"`);
|
|
25
|
+
expect(componentCamelCase('shared/nav/framer-nav')).toMatchInlineSnapshot(`"FramerNavFramerComponent"`);
|
|
18
26
|
});
|
|
19
27
|
test('findRelativeLinks', () => {
|
|
20
28
|
expect(findRelativeLinks(`
|
package/esm/cli.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EACH,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC7B,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAC3D,eAAe,CAClB,CAAA;IACD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAA;IACxE,MAAM,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB,CACvE,2BAA2B,CAC9B,CAAA;IACD,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CACrE,yBAAyB,CAC5B,CAAA;AACL,CAAC,CAAC,CAAA;AACF,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAC3D,6BAA6B,CAChC,CAAA;IACD,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAC3D,6BAA6B,CAChC,CAAA;IACD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CACpD,uBAAuB,CAC1B,CAAA;IACD,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CACnD,sBAAsB,CACzB,CAAA;IACD,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAC1D,4BAA4B,CAC/B,CAAA;IACD,MAAM,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC,CAAC,qBAAqB,CACrE,4BAA4B,CAC/B,CAAA;AACL,CAAC,CAAC,CAAA;AACF,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC3B,MAAM,CACF,iBAAiB,CAAC;;;;;KAKrB,CAAC,CACD,CAAC,qBAAqB,CAAC;;;;;KAKvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,IAAI,CACA,kBAAkB,EAClB,GAAS,EAAE;IACP,MAAM,GAAG,GAAG;;;;;;;;;;SAUX,CAAA;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAqCpC,CAAC,CAAA;AACN,CAAC,CAAA,EACD,IAAI,GAAG,EAAE,CACZ,CAAA"}
|
package/esm/exporter.d.ts
CHANGED
|
@@ -32,7 +32,11 @@ export declare function extractPropControlsUnsafe(filename: any, name: any): Pro
|
|
|
32
32
|
propertyControls?: PropertyControls;
|
|
33
33
|
fonts?: ComponentFontBundle[];
|
|
34
34
|
}>;
|
|
35
|
-
export declare function propControlsToType(
|
|
35
|
+
export declare function propControlsToType({ config, fileName, controls, }: {
|
|
36
|
+
controls: PropertyControls;
|
|
37
|
+
fileName: any;
|
|
38
|
+
config: any;
|
|
39
|
+
}): string;
|
|
36
40
|
export declare function parsePropertyControls(code: string): string | null;
|
|
37
41
|
type ExtractedTokenInfo = {
|
|
38
42
|
tokenName: string;
|
package/esm/exporter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAY9B,OAAO,EAEH,mBAAmB,EAKtB,MAAM,UAAU,CAAA;AAOjB,OAAO,EAGH,gBAAgB,EAEnB,MAAM,aAAa,CAAA;AAYpB,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAsB,MAAM,CAAC,EACzB,MAAM,EACN,GAAG,EAAE,GAAQ,EACb,KAAa,EACb,MAA6C,GAChD,EAAE;IACC,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,CAAA;CACvB;;;;;;;;eA8eA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACtC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;CAClB,UAaA;AAED,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,UAAU,EAAE,EACpB,YAAY,GAAE,OAAO,GAAG,OAAiB,UA6B5C;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,YAY7C;AAED,wBAAsB,uBAAuB,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,mDAmCvD;AAqGD,wBAAsB,yBAAyB,CAC3C,QAAQ,KAAA,EACR,IAAI,KAAA,GACL,OAAO,CAAC;IACP,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAChC,CAAC,CAiED;AAWD,wBAAgB,kBAAkB,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,QAAQ,GACX,EAAE;IACC,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,QAAQ,MAAA;IACR,MAAM,MAAA;CACT,UAoGA;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,iBAqCjD;AAED,KAAK,kBAAkB,GAAG;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE9B,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE,CA2DnE;AASD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAY7C;AAwCD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAiBxC"}
|
package/esm/exporter.js
CHANGED
|
@@ -82,16 +82,56 @@ export function bundle(_a) {
|
|
|
82
82
|
const name = args.path;
|
|
83
83
|
const url = components[name];
|
|
84
84
|
return {
|
|
85
|
-
contents: /** js
|
|
85
|
+
contents: /** js **/ `
|
|
86
|
+
'use client'
|
|
87
|
+
import { Fragment } from 'react'
|
|
88
|
+
import { ContextProviders } from 'unframer'
|
|
86
89
|
import Component from '${yield resolveRedirect({
|
|
87
90
|
url,
|
|
88
91
|
signal,
|
|
89
92
|
})}'
|
|
90
93
|
import { WithFramerBreakpoints } from 'unframer'
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
|
|
95
|
+
function WithRoot({ children, locale }) {
|
|
96
|
+
return (
|
|
97
|
+
<ContextProviders
|
|
98
|
+
routeId="x"
|
|
99
|
+
routes={{
|
|
100
|
+
x: {
|
|
101
|
+
elements: {},
|
|
102
|
+
page: children,
|
|
103
|
+
path: '/',
|
|
104
|
+
},
|
|
105
|
+
}}
|
|
106
|
+
framerSiteId={${JSON.stringify(config.fullFramerProjectId)}}
|
|
107
|
+
locale={locale}
|
|
108
|
+
locales={locales}
|
|
109
|
+
children={children}
|
|
110
|
+
/>
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const locales = ${JSON.stringify(config.locales) || '[]'}
|
|
115
|
+
|
|
116
|
+
Component.Responsive = ({ locale, ...props }) => {
|
|
117
|
+
return (
|
|
118
|
+
<WithRoot locale={locale}>
|
|
119
|
+
<WithFramerBreakpoints
|
|
120
|
+
Component={Component}
|
|
121
|
+
{...props}
|
|
122
|
+
/>
|
|
123
|
+
</WithRoot>
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export default function ComponentWithRoot({ locale, ...rest }) {
|
|
128
|
+
return (
|
|
129
|
+
<WithRoot locale={locale}>
|
|
130
|
+
<Component {...rest} />
|
|
131
|
+
</WithRoot>
|
|
132
|
+
)
|
|
93
133
|
}
|
|
94
|
-
|
|
134
|
+
Object.assign(ComponentWithRoot, Component)
|
|
95
135
|
`,
|
|
96
136
|
loader: 'jsx',
|
|
97
137
|
};
|
|
@@ -104,9 +144,10 @@ export function bundle(_a) {
|
|
|
104
144
|
outdir: out,
|
|
105
145
|
// outfile: path.resolve(cwd, sourcefile),
|
|
106
146
|
});
|
|
147
|
+
const doNotEditComment = `/* This file was generated by Unframer for Framer project ${config.projectId || ''} "${config.projectName}", do not edit manually */\n`;
|
|
107
148
|
function rebuild() {
|
|
108
149
|
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
-
const prevFiles =
|
|
150
|
+
const prevFiles = recursiveReaddir(out);
|
|
110
151
|
const result = yield buildContext.rebuild();
|
|
111
152
|
for (let file of result.outputFiles) {
|
|
112
153
|
const resultPathAbs = path.resolve(out, file.path);
|
|
@@ -128,7 +169,7 @@ export function bundle(_a) {
|
|
|
128
169
|
let inputCode = file.text;
|
|
129
170
|
let codeNew = `// @ts-nocheck\n` +
|
|
130
171
|
`/* eslint-disable */\n` +
|
|
131
|
-
|
|
172
|
+
doNotEditComment +
|
|
132
173
|
dprint.format('file.jsx', inputCode, {
|
|
133
174
|
lineWidth: 140,
|
|
134
175
|
quoteStyle: 'alwaysSingle',
|
|
@@ -152,6 +193,7 @@ export function bundle(_a) {
|
|
|
152
193
|
continue;
|
|
153
194
|
}
|
|
154
195
|
logger.log(`writing`, path.relative(out, file.path));
|
|
196
|
+
fs.mkdirSync(path.dirname(resultPathAbs), { recursive: true });
|
|
155
197
|
fs.writeFileSync(resultPathAbs, codeNew, 'utf-8');
|
|
156
198
|
}
|
|
157
199
|
spinner.stop();
|
|
@@ -167,7 +209,9 @@ export function bundle(_a) {
|
|
|
167
209
|
const propControlsData = yield Promise.all(result === null || result === void 0 ? void 0 : result.outputFiles.map((file) => __awaiter(this, void 0, void 0, function* () {
|
|
168
210
|
try {
|
|
169
211
|
yield sema.acquire();
|
|
170
|
-
const name = path
|
|
212
|
+
const name = path
|
|
213
|
+
.relative(out, file.path)
|
|
214
|
+
.replace(/\.js$/, '');
|
|
171
215
|
const resultPathAbs = path.resolve(out, file.path);
|
|
172
216
|
if (!components[name]) {
|
|
173
217
|
return;
|
|
@@ -179,9 +223,14 @@ export function bundle(_a) {
|
|
|
179
223
|
logger.log(`no property controls found for ${name}`);
|
|
180
224
|
}
|
|
181
225
|
allFonts.push(...(fonts || []).map((x) => (Object.assign(Object.assign({}, x), { fileName: path.basename(file.path) }))));
|
|
182
|
-
const types = propControlsToType(
|
|
226
|
+
const types = propControlsToType({
|
|
227
|
+
controls: propertyControls,
|
|
228
|
+
fileName: name,
|
|
229
|
+
config,
|
|
230
|
+
});
|
|
183
231
|
// name = 'framer-' + name
|
|
184
232
|
// logger.log('name', name)
|
|
233
|
+
fs.mkdirSync(out, { recursive: true });
|
|
185
234
|
fs.writeFileSync(path.resolve(out, `${name}.d.ts`), types);
|
|
186
235
|
return {
|
|
187
236
|
propertyControls,
|
|
@@ -195,7 +244,7 @@ export function bundle(_a) {
|
|
|
195
244
|
}
|
|
196
245
|
}))).finally(() => fs.rmSync(packageJson));
|
|
197
246
|
spinner.stop();
|
|
198
|
-
const cssString =
|
|
247
|
+
const cssString = doNotEditComment +
|
|
199
248
|
'/* This css file has all the necessary styles to run all your components */\n' +
|
|
200
249
|
'\n' +
|
|
201
250
|
resetCssStyles +
|
|
@@ -411,7 +460,7 @@ export function getDarkModeSelector(opts) {
|
|
|
411
460
|
' }\n' +
|
|
412
461
|
'}');
|
|
413
462
|
}
|
|
414
|
-
return '.dark
|
|
463
|
+
return '.dark {\n' + content + '\n' + '}';
|
|
415
464
|
}
|
|
416
465
|
export function getStyleTokensCss(tokens, darkModeType = 'class') {
|
|
417
466
|
if (!(tokens === null || tokens === void 0 ? void 0 : tokens.length)) {
|
|
@@ -604,7 +653,8 @@ function safeJsonParse(text) {
|
|
|
604
653
|
return null;
|
|
605
654
|
}
|
|
606
655
|
}
|
|
607
|
-
export function propControlsToType(controls,
|
|
656
|
+
export function propControlsToType({ config, fileName, controls, }) {
|
|
657
|
+
var _a;
|
|
608
658
|
try {
|
|
609
659
|
const types = Object.entries(controls || {})
|
|
610
660
|
.map(([key, value]) => {
|
|
@@ -669,6 +719,7 @@ export function propControlsToType(controls, fileName) {
|
|
|
669
719
|
const componentName = componentCamelCase(fileName);
|
|
670
720
|
const defaultPropsTypes = [
|
|
671
721
|
'children?: React.ReactNode',
|
|
722
|
+
'locale?: Locale',
|
|
672
723
|
'style?: React.CSSProperties',
|
|
673
724
|
'className?: string',
|
|
674
725
|
'id?: string',
|
|
@@ -682,6 +733,9 @@ export function propControlsToType(controls, fileName) {
|
|
|
682
733
|
t += '/* This file was generated by Unframer, do not edit manually */\n';
|
|
683
734
|
t += 'import * as React from "react"\n\n';
|
|
684
735
|
t += 'import { UnframerBreakpoint } from "unframer"\n\n';
|
|
736
|
+
t += `type Locale = ${((_a = config.locales) === null || _a === void 0 ? void 0 : _a.length)
|
|
737
|
+
? config.locales.map((l) => `'${l.code}'`).join(' | ')
|
|
738
|
+
: 'string'}\n`;
|
|
685
739
|
t += `export interface Props {\n${defaultPropsTypes}${types}\n}\n\n`;
|
|
686
740
|
t += `const ${componentName} = (props: Props) => any\n\n`;
|
|
687
741
|
t += `type VariantsMap = Partial<Record<UnframerBreakpoint, Props['variant']>> & { base: Props['variant'] }\n\n`;
|
|
@@ -798,6 +852,8 @@ export function componentCamelCase(str) {
|
|
|
798
852
|
if (!str) {
|
|
799
853
|
return 'FramerComponent';
|
|
800
854
|
}
|
|
855
|
+
// Take last part after slashes
|
|
856
|
+
str = str.split('/').filter(Boolean).pop() || '';
|
|
801
857
|
str = str.replace(/-([\w])/g, (g) => g[1].toUpperCase());
|
|
802
858
|
str = str.replace(/_([a-z])/g, (g) => g[1].toUpperCase());
|
|
803
859
|
str = str[0].toUpperCase() + str.slice(1);
|
|
@@ -852,7 +908,6 @@ export function propCamelCase(str) {
|
|
|
852
908
|
return str;
|
|
853
909
|
}
|
|
854
910
|
const resetCssStyles = `
|
|
855
|
-
|
|
856
911
|
:root {
|
|
857
912
|
-webkit-font-smoothing: antialiased;
|
|
858
913
|
-moz-osx-font-smoothing: grayscale;
|
|
@@ -864,8 +919,14 @@ const resetCssStyles = `
|
|
|
864
919
|
h1, h2, h3, h4, h5, h6, p, figure {
|
|
865
920
|
margin: 0;
|
|
866
921
|
}
|
|
867
|
-
/ * body, input, textarea, select, button { font-size: 12px; font-family: sans-serif; } */
|
|
868
|
-
|
|
869
922
|
|
|
870
923
|
`;
|
|
924
|
+
function recursiveReaddir(dir) {
|
|
925
|
+
const dirents = fs.readdirSync(dir, { withFileTypes: true });
|
|
926
|
+
const files = dirents.map((dirent) => {
|
|
927
|
+
const res = path.resolve(dir, dirent.name);
|
|
928
|
+
return dirent.isDirectory() ? recursiveReaddir(res) : res;
|
|
929
|
+
});
|
|
930
|
+
return files.flat();
|
|
931
|
+
}
|
|
871
932
|
//# sourceMappingURL=exporter.js.map
|