unframer 2.11.2 → 2.13.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/exporter.d.ts +3 -0
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +70 -32
- package/dist/exporter.js.map +1 -1
- package/dist/exporter.test.js +3 -0
- package/dist/exporter.test.js.map +1 -1
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +876 -507
- package/dist/framer.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +16 -6
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +70 -3
- package/dist/react.js.map +1 -1
- package/dist/utils.d.ts +3 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +27 -2
- package/dist/utils.js.map +1 -1
- package/esm/exporter.d.ts +3 -0
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +72 -35
- package/esm/exporter.js.map +1 -1
- package/esm/exporter.test.js +4 -1
- package/esm/exporter.test.js.map +1 -1
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +873 -507
- package/esm/framer.js.map +1 -1
- package/esm/index.d.ts +3 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -1
- package/esm/index.js.map +1 -1
- package/esm/react.d.ts +16 -6
- package/esm/react.d.ts.map +1 -1
- package/esm/react.js +69 -5
- package/esm/react.js.map +1 -1
- package/esm/utils.d.ts +3 -2
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +26 -2
- package/esm/utils.js.map +1 -1
- package/package.json +3 -4
- package/src/exporter.test.ts +6 -1
- package/src/exporter.ts +85 -42
- package/src/framer.js +925 -513
- package/src/index.ts +7 -1
- package/src/react.tsx +104 -16
- package/src/utils.ts +30 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export * from './framer.js';
|
|
2
|
-
|
|
2
|
+
import { AdaptedLink as Link, ResolveLinksAdapted as ResolveLinks } from './react.js';
|
|
3
|
+
export { FramerStyles, UnframerBreakpoint, WithFramerBreakpoints, ContextProviders, AdaptedLink, } from './react.js';
|
|
4
|
+
export { Link, ResolveLinks };
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
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;AAC3B,OAAO,EACH,WAAW,IAAI,IAAI,EACnB,mBAAmB,IAAI,YAAY,EACtC,MAAM,YAAY,CAAA;AACnB,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,GACd,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,10 +14,14 @@ 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.ContextProviders = exports.WithFramerBreakpoints = exports.FramerStyles = void 0;
|
|
17
|
+
exports.ResolveLinks = exports.Link = exports.AdaptedLink = exports.ContextProviders = exports.WithFramerBreakpoints = exports.FramerStyles = void 0;
|
|
18
18
|
__exportStar(require("./framer.js"), exports);
|
|
19
|
-
|
|
20
|
-
Object.defineProperty(exports, "
|
|
21
|
-
Object.defineProperty(exports, "
|
|
22
|
-
|
|
19
|
+
const react_js_1 = require("./react.js");
|
|
20
|
+
Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return react_js_1.AdaptedLink; } });
|
|
21
|
+
Object.defineProperty(exports, "ResolveLinks", { enumerable: true, get: function () { return react_js_1.ResolveLinksAdapted; } });
|
|
22
|
+
var react_js_2 = require("./react.js");
|
|
23
|
+
Object.defineProperty(exports, "FramerStyles", { enumerable: true, get: function () { return react_js_2.FramerStyles; } });
|
|
24
|
+
Object.defineProperty(exports, "WithFramerBreakpoints", { enumerable: true, get: function () { return react_js_2.WithFramerBreakpoints; } });
|
|
25
|
+
Object.defineProperty(exports, "ContextProviders", { enumerable: true, get: function () { return react_js_2.ContextProviders; } });
|
|
26
|
+
Object.defineProperty(exports, "AdaptedLink", { enumerable: true, get: function () { return react_js_2.AdaptedLink; } });
|
|
23
27
|
//# 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;AAC3B,yCAGmB;AASV,qFAXU,sBAAI,OAWV;AAAE,6FAVY,8BAAY,OAUZ;AAR3B,uCAMmB;AALf,wGAAA,YAAY,OAAA;AAEZ,iHAAA,qBAAqB,OAAA;AACrB,4GAAA,gBAAgB,OAAA;AAChB,uGAAA,WAAW,OAAA"}
|
package/dist/react.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type UnframerBreakpoint = keyof typeof defaultBreakpointSizes;
|
|
|
7
7
|
export declare function FramerStyles({ Components }: {
|
|
8
8
|
Components?: any[] | undefined;
|
|
9
9
|
}): any;
|
|
10
|
-
export declare const WithFramerBreakpoints:
|
|
10
|
+
export declare const WithFramerBreakpoints: React.ForwardRefExoticComponent<{
|
|
11
11
|
Component: ComponentType<{
|
|
12
12
|
variant?: any;
|
|
13
13
|
className?: string;
|
|
@@ -16,15 +16,25 @@ export declare const WithFramerBreakpoints: import("react").ForwardRefExoticComp
|
|
|
16
16
|
} & Omit<{
|
|
17
17
|
variant?: any;
|
|
18
18
|
className?: string;
|
|
19
|
-
}, "variant"> &
|
|
20
|
-
|
|
19
|
+
}, "variant"> & React.RefAttributes<unknown>>;
|
|
20
|
+
import React from 'react';
|
|
21
|
+
export declare function ResolveLinksAdapted({ links, children }: {
|
|
22
|
+
links: any;
|
|
23
|
+
children: any;
|
|
24
|
+
}): any;
|
|
25
|
+
export declare function AdaptedLink({ href, nodeId, openInNewTab, smoothScroll, children, ...rest }: {
|
|
26
|
+
[x: string]: any;
|
|
27
|
+
href: any;
|
|
28
|
+
nodeId: any;
|
|
29
|
+
openInNewTab: any;
|
|
30
|
+
smoothScroll: any;
|
|
31
|
+
children: any;
|
|
32
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export declare function ContextProviders({ locale, children, framerSiteId, routes, locales, }: {
|
|
21
34
|
locale: any;
|
|
22
35
|
children: any;
|
|
23
36
|
framerSiteId: any;
|
|
24
37
|
routes: any;
|
|
25
|
-
routeId: any;
|
|
26
|
-
pathVariables: any;
|
|
27
|
-
collectionUtils: any;
|
|
28
38
|
locales: any;
|
|
29
39
|
}): import("react/jsx-runtime").JSX.Element;
|
|
30
40
|
//# 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;
|
|
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;6CAuF7D,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,2CAgCA;AAED,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,MAAM,EAEN,OAAO,GACV;;;;;;CAAA,2CAsCA"}
|
package/dist/react.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
7
|
exports.WithFramerBreakpoints = void 0;
|
|
5
8
|
exports.FramerStyles = FramerStyles;
|
|
9
|
+
exports.ResolveLinksAdapted = ResolveLinksAdapted;
|
|
10
|
+
exports.AdaptedLink = AdaptedLink;
|
|
6
11
|
exports.ContextProviders = ContextProviders;
|
|
7
12
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
13
|
const framer_js_1 = require("./framer.js");
|
|
@@ -116,8 +121,70 @@ const onResizeWithDebounce = (callback) => {
|
|
|
116
121
|
};
|
|
117
122
|
};
|
|
118
123
|
const framer_js_2 = require("./framer.js");
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
124
|
+
const react_2 = __importDefault(require("react"));
|
|
125
|
+
const routesContext = react_2.default.createContext({});
|
|
126
|
+
function replacePathParams(path, params) {
|
|
127
|
+
const paramRegex = /:[a-zA-Z]+/g;
|
|
128
|
+
const matches = path.match(paramRegex);
|
|
129
|
+
// If there is only one match
|
|
130
|
+
if (matches?.length === 1) {
|
|
131
|
+
const paramValue = Object.values(params)[0];
|
|
132
|
+
let res = path.replace(paramRegex, paramValue);
|
|
133
|
+
// console.log({ matches, params, paramValue, res })
|
|
134
|
+
return res;
|
|
135
|
+
}
|
|
136
|
+
return path.replace(paramRegex, (match) => {
|
|
137
|
+
const param = match.slice(1); // Remove the : prefix
|
|
138
|
+
return params[param] || match; // Replace with param value or keep original if not found
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
function ResolveLinksAdapted({ links, children }) {
|
|
142
|
+
// TODO add ref
|
|
143
|
+
return children(links.map((x) => x.href));
|
|
144
|
+
}
|
|
145
|
+
function AdaptedLink({ href, nodeId, openInNewTab, smoothScroll, children, ...rest }) {
|
|
146
|
+
const onlyForFramer = { children, nodeId, openInNewTab, smoothScroll };
|
|
147
|
+
const routes = react_2.default.useContext(routesContext);
|
|
148
|
+
const webPageId = href?.webPageId;
|
|
149
|
+
const pathVariables = href?.pathVariables;
|
|
150
|
+
const route = routes?.[webPageId];
|
|
151
|
+
const target = openInNewTab ? '_blank' : undefined;
|
|
152
|
+
// console.log({ href, pathVariables, path: route?.path, ...rest })
|
|
153
|
+
if (href?.startsWith && href.startsWith('/')) {
|
|
154
|
+
return react_2.default.cloneElement(children, { ...rest, href, target });
|
|
155
|
+
}
|
|
156
|
+
if (!webPageId) {
|
|
157
|
+
return (0, jsx_runtime_1.jsx)(framer_js_2.FramerLink, { href: href, ...rest, ...onlyForFramer });
|
|
158
|
+
}
|
|
159
|
+
if (!route || !route.path) {
|
|
160
|
+
return (0, jsx_runtime_1.jsx)(framer_js_2.FramerLink, { href: href, ...rest, ...onlyForFramer });
|
|
161
|
+
}
|
|
162
|
+
let path = route.path;
|
|
163
|
+
if (pathVariables) {
|
|
164
|
+
path = replacePathParams(path, pathVariables);
|
|
165
|
+
}
|
|
166
|
+
if (path?.startsWith?.('/')) {
|
|
167
|
+
return react_2.default.cloneElement(children, {
|
|
168
|
+
...rest,
|
|
169
|
+
href: path,
|
|
170
|
+
target,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
return (0, jsx_runtime_1.jsx)(framer_js_2.FramerLink, { href: path, ...rest, ...onlyForFramer });
|
|
174
|
+
}
|
|
175
|
+
function ContextProviders({ locale, children, framerSiteId, routes,
|
|
176
|
+
// collectionUtils,
|
|
177
|
+
locales, }) {
|
|
178
|
+
const activeLocale = locales?.find((l) => l.slug === locale || l.code === locale || l.id === locale);
|
|
179
|
+
const localeInfo = (0, react_1.useMemo)(() => {
|
|
180
|
+
return {
|
|
181
|
+
activeLocale,
|
|
182
|
+
locales,
|
|
183
|
+
setLocale: async (localeOrLocaleId) => {
|
|
184
|
+
console.log('setLocale', localeOrLocaleId);
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}, [activeLocale, locales]);
|
|
188
|
+
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.LocaleInfoContext, { value: localeInfo, children: (0, jsx_runtime_1.jsx)(routesContext.Provider, { value: routes, children: children }) }) }) }) }));
|
|
122
189
|
}
|
|
123
190
|
//# 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
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const spinner:
|
|
1
|
+
export declare const spinner: import("nanospinner").Spinner;
|
|
2
2
|
export declare function terminalMarkdown(markdown: string): string | Promise<string>;
|
|
3
3
|
export declare const logger: {
|
|
4
4
|
debug: boolean;
|
|
@@ -6,6 +6,7 @@ export declare const logger: {
|
|
|
6
6
|
green(...args: any[]): void;
|
|
7
7
|
error(...args: any[]): void;
|
|
8
8
|
};
|
|
9
|
-
export declare function componentNameToPath(name: string):
|
|
9
|
+
export declare function componentNameToPath(name: string): string;
|
|
10
10
|
export declare function sleep(ms: number): Promise<unknown>;
|
|
11
|
+
export declare function kebabCase(str: string): string;
|
|
11
12
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,+BAAiD,CAAA;AAIrE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,4BAEhD;AAKD,eAAO,MAAM,MAAM;;;;;CAclB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAM/C;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,oBAE/B;AAUD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UAkBpC"}
|
package/dist/utils.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.logger = exports.spinner = void 0;
|
|
|
7
7
|
exports.terminalMarkdown = terminalMarkdown;
|
|
8
8
|
exports.componentNameToPath = componentNameToPath;
|
|
9
9
|
exports.sleep = sleep;
|
|
10
|
+
exports.kebabCase = kebabCase;
|
|
10
11
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
11
12
|
const marked_1 = require("marked");
|
|
12
13
|
const marked_terminal_1 = require("marked-terminal");
|
|
@@ -33,8 +34,7 @@ exports.logger = {
|
|
|
33
34
|
console.error([prefix, ...args].map((x) => picocolors_1.default.red(x)).join(' '));
|
|
34
35
|
},
|
|
35
36
|
};
|
|
36
|
-
|
|
37
|
-
const { default: kebabCase } = await import('just-kebab-case');
|
|
37
|
+
function componentNameToPath(name) {
|
|
38
38
|
return name
|
|
39
39
|
.split('/')
|
|
40
40
|
.filter(Boolean)
|
|
@@ -44,4 +44,29 @@ async function componentNameToPath(name) {
|
|
|
44
44
|
function sleep(ms) {
|
|
45
45
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
46
46
|
}
|
|
47
|
+
// https://www.npmjs.com/package/just-kebab-case?activeTab=readme
|
|
48
|
+
// any combination of spaces and punctuation characters
|
|
49
|
+
// thanks to http://stackoverflow.com/a/25575009
|
|
50
|
+
var wordSeparators = /[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/;
|
|
51
|
+
var capital_plus_lower = /[A-ZÀ-Ý\u00C0-\u00D6\u00D9-\u00DD][a-zà-ÿ]/g;
|
|
52
|
+
var capitals = /[A-ZÀ-Ý\u00C0-\u00D6\u00D9-\u00DD]+/g;
|
|
53
|
+
function kebabCase(str) {
|
|
54
|
+
// replace word starts with space + lower case equivalent for later parsing
|
|
55
|
+
// 1) treat cap + lower as start of new word
|
|
56
|
+
str = str.replace(capital_plus_lower, function (match) {
|
|
57
|
+
// match is one caps followed by one non-cap
|
|
58
|
+
return ' ' + (match[0].toLowerCase() || match[0]) + match[1];
|
|
59
|
+
});
|
|
60
|
+
// 2) treat all remaining capitals as words
|
|
61
|
+
str = str.replace(capitals, function (match) {
|
|
62
|
+
// match is a series of caps
|
|
63
|
+
return ' ' + match.toLowerCase();
|
|
64
|
+
});
|
|
65
|
+
return str
|
|
66
|
+
.trim()
|
|
67
|
+
.split(wordSeparators)
|
|
68
|
+
.join('-')
|
|
69
|
+
.replace(/^-/, '')
|
|
70
|
+
.replace(/-\s*$/, '');
|
|
71
|
+
}
|
|
47
72
|
//# 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":";;;;;;AAUA,4CAEC;AAqBD,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/esm/exporter.d.ts
CHANGED
|
@@ -85,6 +85,9 @@ export declare function bundle({ config, cwd: out, watch, signal, }: {
|
|
|
85
85
|
outdir: string;
|
|
86
86
|
}>;
|
|
87
87
|
}>;
|
|
88
|
+
export declare function checkUnframerVersion({ cwd }: {
|
|
89
|
+
cwd: any;
|
|
90
|
+
}): void;
|
|
88
91
|
export declare function getDarkModeSelector(opts: {
|
|
89
92
|
darkModeType?: 'class' | 'media';
|
|
90
93
|
content: 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":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAW9B,OAAO,EACH,mBAAmB,EAKtB,MAAM,UAAU,CAAA;AAOjB,OAAO,EAGH,gBAAgB,EAEnB,MAAM,aAAa,CAAA;AAWpB,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8gBA;AAED,wBAAgB,oBAAoB,CAAC,EAAE,GAAG,EAAE;;CAAA,QAwB3C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACtC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;CAClB,UAaA;AACD,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,UAAU,EAAE,EACpB,YAAY,GAAE,OAAO,GAAG,OAAiB,UAsC5C;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
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { context } from 'esbuild';
|
|
2
|
+
import packageJson from '../package.json';
|
|
2
3
|
import url from 'url';
|
|
3
4
|
import { Sema } from 'async-sema';
|
|
4
5
|
import dprint from 'dprint-node';
|
|
5
6
|
import { nodeModulesPolyfillPlugin } from 'esbuild-plugins-node-modules-polyfill';
|
|
6
|
-
import { exec } from 'child_process';
|
|
7
|
+
import { exec, execSync } from 'child_process';
|
|
7
8
|
import fs from 'fs';
|
|
8
9
|
import path from 'path';
|
|
9
10
|
import dedent from 'string-dedent';
|
|
10
11
|
import { breakpointsStyles, getFontsStyles, groupBy, logFontsUsage, } from './css.js';
|
|
11
|
-
import { esbuildPluginBundleDependencies, externalPackages,
|
|
12
|
+
import { esbuildPluginBundleDependencies, externalPackages, resolveRedirect, } from './esbuild';
|
|
12
13
|
import { ControlType, combinedCSSRules, } from './framer.js';
|
|
13
|
-
import { logger, spinner, terminalMarkdown } from './utils.js';
|
|
14
|
+
import { kebabCase, logger, spinner, terminalMarkdown } from './utils.js';
|
|
14
15
|
function validateUrl(url) {
|
|
15
16
|
try {
|
|
16
17
|
const u = new URL(url);
|
|
@@ -28,6 +29,10 @@ export async function bundle({ config, cwd: out = '', watch = false, signal = un
|
|
|
28
29
|
}
|
|
29
30
|
catch (e) { }
|
|
30
31
|
spinner.start();
|
|
32
|
+
const otherRoutes = Object.fromEntries((config.framerWebPages || []).map((page) => [
|
|
33
|
+
page.webPageId,
|
|
34
|
+
{ path: page.path },
|
|
35
|
+
]));
|
|
31
36
|
const buildContext = await context({
|
|
32
37
|
absWorkingDir: out,
|
|
33
38
|
entryPoints: Object.keys(components).map((name) => {
|
|
@@ -76,20 +81,15 @@ export async function bundle({ config, cwd: out = '', watch = false, signal = un
|
|
|
76
81
|
import { WithFramerBreakpoints } from 'unframer'
|
|
77
82
|
const locales = ${JSON.stringify(config.locales) || '[]'}
|
|
78
83
|
|
|
79
|
-
Component.Responsive = ({ locale, ...
|
|
84
|
+
Component.Responsive = ({ locale, ...rest }) => {
|
|
80
85
|
return (
|
|
81
86
|
<ContextProviders
|
|
82
87
|
routeId="x"
|
|
83
|
-
routes={{
|
|
84
|
-
|
|
85
|
-
elements: {},
|
|
86
|
-
page: <WithFramerBreakpoints
|
|
88
|
+
routes={${JSON.stringify(otherRoutes)}}
|
|
89
|
+
children={<WithFramerBreakpoints
|
|
87
90
|
Component={Component}
|
|
88
|
-
{...
|
|
89
|
-
|
|
90
|
-
path: '/',
|
|
91
|
-
},
|
|
92
|
-
}}
|
|
91
|
+
{...rest}
|
|
92
|
+
/>}
|
|
93
93
|
framerSiteId={${JSON.stringify(config.fullFramerProjectId)}}
|
|
94
94
|
locale={locale}
|
|
95
95
|
locales={locales}
|
|
@@ -101,13 +101,8 @@ export async function bundle({ config, cwd: out = '', watch = false, signal = un
|
|
|
101
101
|
return (
|
|
102
102
|
<ContextProviders
|
|
103
103
|
routeId="x"
|
|
104
|
-
routes={{
|
|
105
|
-
|
|
106
|
-
elements: {},
|
|
107
|
-
page: <Component {...rest} />,
|
|
108
|
-
path: '/',
|
|
109
|
-
},
|
|
110
|
-
}}
|
|
104
|
+
routes={${JSON.stringify(otherRoutes, null, 2)}}
|
|
105
|
+
children={<Component {...rest} />}
|
|
111
106
|
framerSiteId={${JSON.stringify(config.fullFramerProjectId)}}
|
|
112
107
|
locale={locale}
|
|
113
108
|
locales={locales}
|
|
@@ -163,19 +158,21 @@ export async function bundle({ config, cwd: out = '', watch = false, signal = un
|
|
|
163
158
|
`/* eslint-disable */\n` +
|
|
164
159
|
doNotEditComment +
|
|
165
160
|
formatted;
|
|
166
|
-
if (framerWebPages?.length) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
const lines = findRelativeLinks(codeNew)
|
|
173
|
-
if (lines.length) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
161
|
+
// if (framerWebPages?.length) {
|
|
162
|
+
// codeNew = replaceWebPageIds({
|
|
163
|
+
// code: codeNew,
|
|
164
|
+
// elements: framerWebPages,
|
|
165
|
+
// })
|
|
166
|
+
// }
|
|
167
|
+
// const lines = findRelativeLinks(codeNew)
|
|
168
|
+
// if (lines.length) {
|
|
169
|
+
// spinner.error(
|
|
170
|
+
// `found broken links for ${path.relative(out, file.path)}`,
|
|
171
|
+
// )
|
|
172
|
+
// lines.forEach((line) => {
|
|
173
|
+
// logger.log(`${path.resolve(out, file.path)}:${line + 1}`)
|
|
174
|
+
// })
|
|
175
|
+
// }
|
|
179
176
|
if (existing === codeNew) {
|
|
180
177
|
continue;
|
|
181
178
|
}
|
|
@@ -301,11 +298,15 @@ export async function bundle({ config, cwd: out = '', watch = false, signal = un
|
|
|
301
298
|
}
|
|
302
299
|
// when user press ctrl+c dispose
|
|
303
300
|
process.on('SIGINT', async () => {
|
|
301
|
+
spinner.stop();
|
|
302
|
+
console.log();
|
|
304
303
|
await buildContext.cancel();
|
|
305
304
|
buildContext.dispose();
|
|
306
305
|
process.exit(0); // Ensure process exits
|
|
307
306
|
});
|
|
308
307
|
process.on('SIGABRT', async () => {
|
|
308
|
+
spinner.stop();
|
|
309
|
+
console.log();
|
|
309
310
|
await buildContext.cancel();
|
|
310
311
|
buildContext.dispose();
|
|
311
312
|
process.exit(0); // Ensure process exits
|
|
@@ -413,6 +414,8 @@ export async function bundle({ config, cwd: out = '', watch = false, signal = un
|
|
|
413
414
|
Read more on GitHub: https://github.com/remorses/unframer
|
|
414
415
|
|
|
415
416
|
`));
|
|
417
|
+
checkUnframerVersion({ cwd: out });
|
|
418
|
+
console.log();
|
|
416
419
|
return { result, rebuild, buildContext };
|
|
417
420
|
// // when user press ctrl+c dispose
|
|
418
421
|
// process.on('SIGINT', async () => {
|
|
@@ -458,6 +461,26 @@ export async function bundle({ config, cwd: out = '', watch = false, signal = un
|
|
|
458
461
|
// }
|
|
459
462
|
// return res
|
|
460
463
|
}
|
|
464
|
+
export function checkUnframerVersion({ cwd }) {
|
|
465
|
+
const currentVersion = packageJson.version;
|
|
466
|
+
try {
|
|
467
|
+
const code = `import('unframer/package.json', { with: { type: 'json' } }).then(pkg => console.log(pkg.version || pkg.default?.version));`;
|
|
468
|
+
const command = [nodePath, '-e', JSON.stringify(code)].join(' ');
|
|
469
|
+
const installedVersion = execSync(command, {
|
|
470
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
471
|
+
cwd,
|
|
472
|
+
})
|
|
473
|
+
.toString()
|
|
474
|
+
.trim();
|
|
475
|
+
if (installedVersion !== currentVersion) {
|
|
476
|
+
spinner.error(`Unframer version mismatch. Please run: npm update unframer@latest`);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
catch (e) {
|
|
480
|
+
// console.error(e.stderr.toString())
|
|
481
|
+
spinner.error('Unframer is not installed in your project. Please run: npm install unframer');
|
|
482
|
+
}
|
|
483
|
+
}
|
|
461
484
|
export function getDarkModeSelector(opts) {
|
|
462
485
|
const { darkModeType = 'class', content } = opts;
|
|
463
486
|
if (darkModeType === 'media') {
|
|
@@ -475,10 +498,24 @@ export function getStyleTokensCss(tokens, darkModeType = 'class') {
|
|
|
475
498
|
return '';
|
|
476
499
|
}
|
|
477
500
|
const lightTokens = tokens
|
|
478
|
-
.
|
|
501
|
+
.flatMap((token) => [
|
|
502
|
+
' --token-' + token.id + ': ' + token.lightColor + ';',
|
|
503
|
+
' --unframer-' +
|
|
504
|
+
kebabCase(token.name || token.id) +
|
|
505
|
+
': ' +
|
|
506
|
+
token.lightColor +
|
|
507
|
+
';',
|
|
508
|
+
])
|
|
479
509
|
.join('\n');
|
|
480
510
|
const darkTokens = tokens
|
|
481
|
-
.
|
|
511
|
+
.flatMap((token) => [
|
|
512
|
+
' --token-' + token.id + ': ' + token.darkColor + ';',
|
|
513
|
+
' --unframer-' +
|
|
514
|
+
kebabCase(token.name || token.id) +
|
|
515
|
+
': ' +
|
|
516
|
+
token.darkColor +
|
|
517
|
+
';',
|
|
518
|
+
])
|
|
482
519
|
.join('\n');
|
|
483
520
|
return (':root {\n' +
|
|
484
521
|
lightTokens +
|