unframer 2.25.2 → 2.25.4
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 +21 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +79 -48
- package/dist/cli.js.map +1 -1
- package/dist/example-code.test.d.ts +2 -0
- package/dist/example-code.test.d.ts.map +1 -0
- package/dist/example-code.test.js +72 -0
- package/dist/example-code.test.js.map +1 -0
- package/dist/exporter.d.ts +17 -55
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +73 -69
- package/dist/exporter.js.map +1 -1
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +99 -53
- package/dist/framer.js.map +1 -1
- package/dist/generated/api-client.js +0 -1
- package/dist/generated/api-client.js.map +1 -1
- package/dist/generated/api-client.test.js +0 -69
- package/dist/generated/api-client.test.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/esm/cli.d.ts +21 -0
- package/esm/cli.d.ts.map +1 -1
- package/esm/cli.js +78 -48
- package/esm/cli.js.map +1 -1
- package/esm/example-code.test.d.ts +2 -0
- package/esm/example-code.test.d.ts.map +1 -0
- package/esm/example-code.test.js +70 -0
- package/esm/example-code.test.js.map +1 -0
- package/esm/exporter.d.ts +17 -55
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +72 -69
- package/esm/exporter.js.map +1 -1
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +99 -53
- package/esm/framer.js.map +1 -1
- package/esm/generated/api-client.js +0 -1
- package/esm/generated/api-client.js.map +1 -1
- package/esm/generated/api-client.test.d.ts +0 -1
- package/esm/generated/api-client.test.js +1 -69
- package/esm/generated/api-client.test.js.map +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/package.json +4 -4
- package/src/{cli.tsx → cli.ts} +114 -64
- package/src/example-code.test.ts +72 -0
- package/src/exporter.ts +99 -81
- package/src/framer.js +128 -79
- package/src/generated/api-client.d.ts +1048 -682
- package/src/generated/api-client.d.ts.map +1 -1
- package/src/generated/api-client.js +5 -6
- package/src/generated/api-client.js.map +1 -1
- package/src/generated/api-client.test.d.ts +1 -1
- package/src/generated/api-client.test.js +1 -69
- package/src/version.ts +1 -1
package/dist/cli.d.ts
CHANGED
|
@@ -32,5 +32,26 @@ export type Config = {
|
|
|
32
32
|
breakpoints?: BreakpointSizes;
|
|
33
33
|
tokens?: StyleToken[];
|
|
34
34
|
outDir?: string;
|
|
35
|
+
componentInstancesInIndexPage: ComponentInstanceInPage[];
|
|
36
|
+
pageBackgroundColor?: string;
|
|
35
37
|
};
|
|
38
|
+
type ComponentInstanceInPage = {
|
|
39
|
+
pageOrdering: number;
|
|
40
|
+
componentId: string;
|
|
41
|
+
componentPathSlug: string;
|
|
42
|
+
controls: Record<string, any>;
|
|
43
|
+
nodeDepth: number;
|
|
44
|
+
webPageId: string;
|
|
45
|
+
};
|
|
46
|
+
export declare function configFromFetch({ projectId, externalPackages, allExternal, outDir, }: {
|
|
47
|
+
projectId: any;
|
|
48
|
+
externalPackages?: string[] | undefined;
|
|
49
|
+
allExternal?: boolean | undefined;
|
|
50
|
+
outDir?: string | undefined;
|
|
51
|
+
}): Promise<{
|
|
52
|
+
websiteUrl: string | null;
|
|
53
|
+
cwd: string;
|
|
54
|
+
config: Config;
|
|
55
|
+
}>;
|
|
56
|
+
export {};
|
|
36
57
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAU,UAAU,EAAE,MAAM,eAAe,CAAA;AAOlD,OAAO,EAAE,eAAe,EAA0B,MAAM,UAAU,CAAA;AAYlE,eAAO,MAAM,GAAG,mBAAkB,CAAA;AA2JlC,MAAM,MAAM,MAAM,GAAG;IACjB,UAAU,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KACzB,CAAA;IACD,oBAAoB,CAAC,EAAE;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,cAAc,EAAE,MAAM,CAAA;QACtB,KAAK,EAAE,MAAM,CAAA;KAChB,EAAE,CAAA;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,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;IAEH,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;IACf,6BAA6B,EAAE,uBAAuB,EAAE,CAAA;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAE/B,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IAEjB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAsB,eAAe,CAAC,EAClC,SAAS,EACT,gBAAiC,EACjC,WAAmB,EACnB,MAAwC,GAC3C;;;;;CAAA;;;;GAuFA"}
|
package/dist/cli.js
CHANGED
|
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.cli = void 0;
|
|
40
|
+
exports.configFromFetch = configFromFetch;
|
|
40
41
|
const events_1 = require("events");
|
|
41
42
|
const undici_1 = require("undici");
|
|
42
43
|
require("./sentry.js");
|
|
@@ -46,6 +47,7 @@ const api_client_js_1 = require("./generated/api-client.js");
|
|
|
46
47
|
const cac_1 = require("cac");
|
|
47
48
|
const fs_1 = __importDefault(require("fs"));
|
|
48
49
|
const path_1 = __importStar(require("path"));
|
|
50
|
+
const css_js_1 = require("./css.js");
|
|
49
51
|
const utils_js_1 = require("./utils.js");
|
|
50
52
|
const sentry_js_1 = require("./sentry.js");
|
|
51
53
|
const configNames = ['unframer.config.json', 'unframer.json'];
|
|
@@ -75,56 +77,14 @@ exports.cli.command('[projectId]', 'Run unframer with optional project ID')
|
|
|
75
77
|
const signal = controller.signal;
|
|
76
78
|
const watch = options.watch;
|
|
77
79
|
if (projectId) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
const { config, cwd, websiteUrl } = await configFromFetch({
|
|
81
|
+
allExternal,
|
|
82
|
+
externalPackages,
|
|
83
|
+
outDir,
|
|
84
|
+
projectId,
|
|
82
85
|
});
|
|
83
|
-
utils_js_1.spinner.start(`Fetching config for project ${projectId}`);
|
|
84
|
-
const { data, error } = await client.api.plugins.reactExportPlugin
|
|
85
|
-
.project({ projectId })
|
|
86
|
-
.get();
|
|
87
|
-
if (error) {
|
|
88
|
-
utils_js_1.spinner.error('Error fetching project data:');
|
|
89
|
-
console.error(error);
|
|
90
|
-
throw error;
|
|
91
|
-
}
|
|
92
|
-
utils_js_1.spinner.info(`Got Framer project data`);
|
|
93
|
-
const websiteUrl = data?.project?.websiteUrl;
|
|
94
|
-
const projectName = data?.project?.projectName || '';
|
|
95
|
-
if (projectName) {
|
|
96
|
-
utils_js_1.spinner.info(`Using project: ${projectName}`);
|
|
97
|
-
}
|
|
98
|
-
let cwd = path_1.default.resolve(process.cwd(), outDir || 'framer');
|
|
99
|
-
utils_js_1.logger.log('bundling', cwd);
|
|
100
86
|
const { rebuild, buildContext } = await (0, exporter_js_1.bundle)({
|
|
101
|
-
config
|
|
102
|
-
outDir,
|
|
103
|
-
externalPackages,
|
|
104
|
-
allExternal,
|
|
105
|
-
projectId: data?.project?.projectId,
|
|
106
|
-
projectName,
|
|
107
|
-
fullFramerProjectId: data?.project?.fullFramerProjectId,
|
|
108
|
-
locales: data?.locales,
|
|
109
|
-
components: Object.fromEntries(data.components.map((c) => [
|
|
110
|
-
(0, utils_js_1.componentNameToPath)(c.name),
|
|
111
|
-
c.url,
|
|
112
|
-
])),
|
|
113
|
-
componentBreakpoints: data.breakpoints
|
|
114
|
-
?.map((b) => {
|
|
115
|
-
const c = data.components.find((c) => c.id === b.componentId);
|
|
116
|
-
if (!c) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
...b,
|
|
121
|
-
componentName: (0, utils_js_1.componentNameToPath)(c.name),
|
|
122
|
-
};
|
|
123
|
-
})
|
|
124
|
-
.filter(utils_js_1.isTruthy) || [],
|
|
125
|
-
tokens: data.colorStyles,
|
|
126
|
-
framerWebPages: data.framerWebPages || [],
|
|
127
|
-
},
|
|
87
|
+
config,
|
|
128
88
|
watch,
|
|
129
89
|
cwd,
|
|
130
90
|
signal,
|
|
@@ -223,4 +183,75 @@ exports.cli.command('init', 'Init the unframer.config.json config').action(async
|
|
|
223
183
|
const p = path_1.default.resolve(process.cwd(), 'unframer.config.json');
|
|
224
184
|
console.log(`${p} file created`);
|
|
225
185
|
});
|
|
186
|
+
async function configFromFetch({ projectId, externalPackages = [], allExternal = false, outDir = undefined, }) {
|
|
187
|
+
utils_js_1.logger.log(`Fetching config for project ${projectId}`);
|
|
188
|
+
const url = process.env.UNFRAMER_SERVER_URL;
|
|
189
|
+
if (url) {
|
|
190
|
+
console.log(`using server url ${url}`);
|
|
191
|
+
}
|
|
192
|
+
const client = await (0, api_client_js_1.createClient)({
|
|
193
|
+
url: url || 'https://unframer.co',
|
|
194
|
+
});
|
|
195
|
+
utils_js_1.spinner.start(`Fetching config for project ${projectId}`);
|
|
196
|
+
const { data, error } = await client.api.plugins.reactExportPlugin
|
|
197
|
+
.project({ projectId })
|
|
198
|
+
.get();
|
|
199
|
+
if (error) {
|
|
200
|
+
utils_js_1.spinner.error('Error fetching project data:');
|
|
201
|
+
console.error(error);
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
utils_js_1.spinner.info(`Got Framer project data`);
|
|
205
|
+
const websiteUrl = data?.project?.websiteUrl;
|
|
206
|
+
const projectName = data?.project?.projectName || '';
|
|
207
|
+
if (projectName) {
|
|
208
|
+
utils_js_1.spinner.info(`Using project: ${projectName}`);
|
|
209
|
+
}
|
|
210
|
+
let cwd = path_1.default.resolve(process.cwd(), outDir || 'framer');
|
|
211
|
+
const indexPage = data?.framerWebPages?.find((x) => x.path === '/');
|
|
212
|
+
const componentInstancesInIndexPage = data.componentInstances
|
|
213
|
+
?.filter((x) => x.webPageId === indexPage?.webPageId)
|
|
214
|
+
.map((x) => {
|
|
215
|
+
const component = data.components.find((c) => {
|
|
216
|
+
return x.componentId === c.id;
|
|
217
|
+
});
|
|
218
|
+
if (!component) {
|
|
219
|
+
console.error(new Error(`cannot find component for instance ${x.componentId}`));
|
|
220
|
+
}
|
|
221
|
+
const componentPathSlug = (0, utils_js_1.componentNameToPath)(component?.name || '');
|
|
222
|
+
const res = { ...x, componentPathSlug };
|
|
223
|
+
return res;
|
|
224
|
+
})
|
|
225
|
+
.sort((a, b) => {
|
|
226
|
+
return a.pageOrdering - b.pageOrdering;
|
|
227
|
+
}) || [];
|
|
228
|
+
const config = {
|
|
229
|
+
...data,
|
|
230
|
+
breakpoints: css_js_1.defaultBreakpointSizes,
|
|
231
|
+
outDir,
|
|
232
|
+
externalPackages,
|
|
233
|
+
allExternal,
|
|
234
|
+
projectId: data?.project?.projectId,
|
|
235
|
+
projectName,
|
|
236
|
+
fullFramerProjectId: data?.project?.fullFramerProjectId,
|
|
237
|
+
locales: data?.locales,
|
|
238
|
+
components: Object.fromEntries(data.components.map((c) => [(0, utils_js_1.componentNameToPath)(c.name), c.url])),
|
|
239
|
+
componentBreakpoints: data.breakpoints
|
|
240
|
+
?.map((b) => {
|
|
241
|
+
const c = data.components.find((c) => c.id === b.componentId);
|
|
242
|
+
if (!c) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
246
|
+
...b,
|
|
247
|
+
componentName: (0, utils_js_1.componentNameToPath)(c.name),
|
|
248
|
+
};
|
|
249
|
+
})
|
|
250
|
+
.filter(utils_js_1.isTruthy) || [],
|
|
251
|
+
tokens: data.colorStyles,
|
|
252
|
+
componentInstancesInIndexPage,
|
|
253
|
+
framerWebPages: data.framerWebPages || [],
|
|
254
|
+
};
|
|
255
|
+
return { websiteUrl, cwd, config };
|
|
256
|
+
}
|
|
226
257
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example-code.test.d.ts","sourceRoot":"","sources":["../src/example-code.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const exporter_js_1 = require("./exporter.js");
|
|
5
|
+
const cli_js_1 = require("./cli.js");
|
|
6
|
+
(0, vitest_1.describe)('createExampleComponentCode', () => {
|
|
7
|
+
(0, vitest_1.test)('should create example component code', async () => {
|
|
8
|
+
const projectId = 'cf755ed7d59e0319';
|
|
9
|
+
const { config } = await (0, cli_js_1.configFromFetch)({ projectId });
|
|
10
|
+
const { exampleCode } = await (0, exporter_js_1.createExampleComponentCode)({
|
|
11
|
+
config,
|
|
12
|
+
outDir: 'src',
|
|
13
|
+
});
|
|
14
|
+
(0, vitest_1.expect)(exampleCode).toMatchInlineSnapshot(`
|
|
15
|
+
"import './src/styles.css'
|
|
16
|
+
|
|
17
|
+
import NavigationFramerComponent from './src/navigation'
|
|
18
|
+
import HeroFramerComponent from './src/hero'
|
|
19
|
+
import PricingBannerFramerComponent from './src/pricing-banner'
|
|
20
|
+
import FooterFramerComponent from './src/footer'
|
|
21
|
+
import FeatureListFramerComponent from './src/feature-list'
|
|
22
|
+
import ServiceSliderFramerComponent from './src/service-slider'
|
|
23
|
+
import SectionTitleFramerComponent from './src/section-title'
|
|
24
|
+
import ButtonFramerComponent from './src/button'
|
|
25
|
+
import BrandLogoFramerComponent from './src/brand-logo'
|
|
26
|
+
import TestmonialItemFramerComponent from './src/testmonial-item'
|
|
27
|
+
import ArticlesCardFramerComponent from './src/articles-card'
|
|
28
|
+
|
|
29
|
+
export default function App() {
|
|
30
|
+
return (
|
|
31
|
+
<div className='flex flex-col'>
|
|
32
|
+
<NavigationFramerComponent.Responsive
|
|
33
|
+
ctaVariant={"ia7uVki50"}
|
|
34
|
+
/>
|
|
35
|
+
<HeroFramerComponent.Responsive/>
|
|
36
|
+
<PricingBannerFramerComponent.Responsive/>
|
|
37
|
+
<FooterFramerComponent.Responsive
|
|
38
|
+
year={"2024"}
|
|
39
|
+
/>
|
|
40
|
+
<FeatureListFramerComponent.Responsive/>
|
|
41
|
+
<ServiceSliderFramerComponent.Responsive/>
|
|
42
|
+
<SectionTitleFramerComponent.Responsive
|
|
43
|
+
text={"We are pioneers in harnessing the power of Blockchain and Web3 technologies to drive innovation, security, and decentralization."}
|
|
44
|
+
title={"Smart Automation"}
|
|
45
|
+
tagline={"Systems and Building Web3"}
|
|
46
|
+
iconVisible={true}
|
|
47
|
+
textVisible={true}
|
|
48
|
+
/>
|
|
49
|
+
<ButtonFramerComponent.Responsive
|
|
50
|
+
link={"/news"}
|
|
51
|
+
buttonTitle={"Read all blog"}
|
|
52
|
+
iconVisibility={true}
|
|
53
|
+
/>
|
|
54
|
+
<BrandLogoFramerComponent.Responsive/>
|
|
55
|
+
<TestmonialItemFramerComponent.Responsive
|
|
56
|
+
name1={"Wade Warren"}
|
|
57
|
+
paragraph={"Security is non-negotiable in the decentralized world, and we take this aspect very seriously. Our solutions are built with a robust emphasis on security, utilizing advanced cryptographic"}
|
|
58
|
+
designation={"Flutter Developer"}
|
|
59
|
+
/>
|
|
60
|
+
<ArticlesCardFramerComponent.Responsive
|
|
61
|
+
date={"Mar 06, 2024 "}
|
|
62
|
+
link={"/news/:slug"}
|
|
63
|
+
title={"Discoveries from Our Thinkers"}
|
|
64
|
+
excerpt={"Experience seamless integration with decentralized applications (DApps)."}
|
|
65
|
+
/>
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
};"
|
|
69
|
+
`);
|
|
70
|
+
});
|
|
71
|
+
}, 1000 * 10);
|
|
72
|
+
//# sourceMappingURL=example-code.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example-code.test.js","sourceRoot":"","sources":["../src/example-code.test.ts"],"names":[],"mappings":";;AAAA,mCAA+C;AAC/C,+CAA0D;AAE1D,qCAAkD;AAElD,IAAA,iBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,IAAA,aAAI,EAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,SAAS,GAAG,kBAAkB,CAAA;QAEpC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,wBAAe,EAAC,EAAE,SAAS,EAAE,CAAC,CAAA;QACvD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,wCAA0B,EAAC;YACrD,MAAM;YACN,MAAM,EAAE,KAAK;SAChB,CAAC,CAAA;QACF,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAuDzC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA"}
|
package/dist/exporter.d.ts
CHANGED
|
@@ -14,61 +14,8 @@ export declare function bundle({ config, cwd: out, watch, signal, }: {
|
|
|
14
14
|
watch?: boolean;
|
|
15
15
|
signal?: AbortSignal;
|
|
16
16
|
}): Promise<{
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
path: string;
|
|
20
|
-
url: string;
|
|
21
|
-
name: string;
|
|
22
|
-
componentName: string;
|
|
23
|
-
propertyControls: PropertyControls<any, any> | undefined;
|
|
24
|
-
}[];
|
|
25
|
-
}>;
|
|
26
|
-
buildContext: {
|
|
27
|
-
rebuild(): Promise<BuildResult<BuildOptions>>;
|
|
28
|
-
cancel(): void;
|
|
29
|
-
dispose(): void;
|
|
30
|
-
} | import("esbuild").BuildContext<{
|
|
31
|
-
absWorkingDir: string;
|
|
32
|
-
entryPoints: {
|
|
33
|
-
in: string;
|
|
34
|
-
out: string;
|
|
35
|
-
}[];
|
|
36
|
-
jsx: "automatic";
|
|
37
|
-
bundle: true;
|
|
38
|
-
platform: "browser";
|
|
39
|
-
metafile: true;
|
|
40
|
-
format: "esm";
|
|
41
|
-
minify: false;
|
|
42
|
-
treeShaking: true;
|
|
43
|
-
splitting: true;
|
|
44
|
-
logLevel: "error";
|
|
45
|
-
pure: string[];
|
|
46
|
-
external: string[];
|
|
47
|
-
chunkNames: string;
|
|
48
|
-
plugins: import("esbuild").Plugin[];
|
|
49
|
-
write: false;
|
|
50
|
-
outdir: string;
|
|
51
|
-
}>;
|
|
52
|
-
result?: undefined;
|
|
53
|
-
} | {
|
|
54
|
-
result: {
|
|
55
|
-
components: {
|
|
56
|
-
path: string;
|
|
57
|
-
url: string;
|
|
58
|
-
name: string;
|
|
59
|
-
componentName: string;
|
|
60
|
-
propertyControls: PropertyControls<any, any> | undefined;
|
|
61
|
-
}[];
|
|
62
|
-
};
|
|
63
|
-
rebuild: () => Promise<{
|
|
64
|
-
components: {
|
|
65
|
-
path: string;
|
|
66
|
-
url: string;
|
|
67
|
-
name: string;
|
|
68
|
-
componentName: string;
|
|
69
|
-
propertyControls: PropertyControls<any, any> | undefined;
|
|
70
|
-
}[];
|
|
71
|
-
}>;
|
|
17
|
+
result: BundleResult;
|
|
18
|
+
rebuild: () => Promise<BundleResult>;
|
|
72
19
|
buildContext: {
|
|
73
20
|
rebuild(): Promise<BuildResult<BuildOptions>>;
|
|
74
21
|
cancel(): void;
|
|
@@ -126,5 +73,20 @@ type ExtractedTokenInfo = {
|
|
|
126
73
|
};
|
|
127
74
|
export declare function extractTokenInfo(code: string): ExtractedTokenInfo[];
|
|
128
75
|
export declare function componentCamelCase(str: string): string;
|
|
76
|
+
export declare function createExampleComponentCode({ outDir, config, }: {
|
|
77
|
+
outDir: string;
|
|
78
|
+
config: Config;
|
|
79
|
+
}): Promise<{
|
|
80
|
+
exampleCode: any;
|
|
81
|
+
}>;
|
|
82
|
+
type BundleResult = {
|
|
83
|
+
components: Array<{
|
|
84
|
+
componentPathSlug: string;
|
|
85
|
+
name: string;
|
|
86
|
+
url: string;
|
|
87
|
+
componentName: string;
|
|
88
|
+
propertyControls?: PropertyControls;
|
|
89
|
+
}>;
|
|
90
|
+
};
|
|
129
91
|
export {};
|
|
130
92
|
//# sourceMappingURL=exporter.d.ts.map
|
package/dist/exporter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAIxE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAU9B,OAAO,EACH,mBAAmB,EAOtB,MAAM,UAAU,CAAA;AAMjB,OAAO,EAGH,gBAAgB,EAEnB,MAAM,aAAa,CAAA;AAYpB,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
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAIxE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAU9B,OAAO,EACH,mBAAmB,EAOtB,MAAM,UAAU,CAAA;AAMjB,OAAO,EAGH,gBAAgB,EAEnB,MAAM,aAAa,CAAA;AAYpB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6fA;AAID,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;;;CAAA,+BAiC1C;AAED,wBAAsB,oBAAoB,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,iBAclE;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,UAqD5C;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,YAY7C;AA2ID,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,CAuED;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;AAsFD,wBAAsB,0BAA0B,CAAC,EAC7C,MAAM,EACN,MAAM,GACT,EAAE;IACC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACjB;;GA2DA;AAED,KAAK,YAAY,GAAG;IAChB,UAAU,EAAE,KAAK,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAA;QACzB,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,aAAa,EAAE,MAAM,CAAA;QACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;KACtC,CAAC,CAAA;CACL,CAAA"}
|
package/dist/exporter.js
CHANGED
|
@@ -14,6 +14,7 @@ exports.propControlsToType = propControlsToType;
|
|
|
14
14
|
exports.parsePropertyControls = parsePropertyControls;
|
|
15
15
|
exports.extractTokenInfo = extractTokenInfo;
|
|
16
16
|
exports.componentCamelCase = componentCamelCase;
|
|
17
|
+
exports.createExampleComponentCode = createExampleComponentCode;
|
|
17
18
|
const esbuild_1 = require("esbuild");
|
|
18
19
|
const package_json_1 = __importDefault(require("../package.json"));
|
|
19
20
|
const url_1 = __importDefault(require("url"));
|
|
@@ -358,7 +359,7 @@ async function bundle({ config, cwd: out = '', watch = false, signal = undefined
|
|
|
358
359
|
components: Object.entries(components).map(([name, v]) => {
|
|
359
360
|
const propControls = propControlsData.find((x) => x?.name === name);
|
|
360
361
|
return {
|
|
361
|
-
|
|
362
|
+
componentPathSlug: name,
|
|
362
363
|
url: v,
|
|
363
364
|
name,
|
|
364
365
|
componentName: componentCamelCase(name),
|
|
@@ -391,73 +392,13 @@ async function bundle({ config, cwd: out = '', watch = false, signal = undefined
|
|
|
391
392
|
const result = await rebuild();
|
|
392
393
|
console.log();
|
|
393
394
|
console.log();
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
return -1;
|
|
402
|
-
if (!aHasBreakpoints && bHasBreakpoints)
|
|
403
|
-
return 1;
|
|
404
|
-
// Within each group, prefer components with example properties
|
|
405
|
-
const aProp = findExampleProperty(a.propertyControls);
|
|
406
|
-
const bProp = findExampleProperty(b.propertyControls);
|
|
407
|
-
return (bProp ? 1 : 0) - (aProp ? 1 : 0);
|
|
408
|
-
})?.[0];
|
|
409
|
-
if (!exampleComponent) {
|
|
410
|
-
utils_js_1.logger.log(`No example component found with breakpoints, using random example`);
|
|
411
|
-
// Create an example component if none found with breakpoints
|
|
412
|
-
exampleComponent = {
|
|
413
|
-
path: 'hero',
|
|
414
|
-
componentName: 'HeroFramerComponent',
|
|
415
|
-
propertyControls: {
|
|
416
|
-
variant: {
|
|
417
|
-
type: framer_js_1.ControlType.Enum,
|
|
418
|
-
options: ['Desktop', 'Tablet', 'Mobile'],
|
|
419
|
-
optionTitles: ['Desktop', 'Tablet', 'Mobile'],
|
|
420
|
-
},
|
|
421
|
-
},
|
|
422
|
-
name: 'Hero',
|
|
423
|
-
url: '',
|
|
424
|
-
};
|
|
425
|
-
if (!exampleComponent) {
|
|
426
|
-
return { rebuild, buildContext };
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
const outDirForExample = path_1.default.posix
|
|
430
|
-
.relative(process.cwd(), out)
|
|
431
|
-
.replace(/^src\//, ''); // remove src so file works inside src
|
|
432
|
-
utils_js_1.logger.log('exampleComponent?.propertyControls', exampleComponent?.propertyControls);
|
|
433
|
-
const prop = findExampleProperty(exampleComponent?.propertyControls);
|
|
434
|
-
const propStr = prop ? ` ${prop}='example'` : '';
|
|
435
|
-
const responsiveComponent = (0, string_dedent_1.default) `
|
|
436
|
-
{/* use .Responsive for components with breakpoints */}
|
|
437
|
-
<${exampleComponent?.componentName}.Responsive${propStr} />
|
|
438
|
-
`;
|
|
439
|
-
const nonResponsiveComponent = (0, string_dedent_1.default) `
|
|
440
|
-
<${exampleComponent?.componentName}
|
|
441
|
-
${prop}='example'
|
|
442
|
-
style={{ width: '100%' }}
|
|
443
|
-
/>
|
|
444
|
-
`;
|
|
445
|
-
const exampleCode = (0, string_dedent_1.default) `
|
|
446
|
-
import './${outDirForExample}/styles.css'
|
|
447
|
-
// this file imported below is generated when you run \`npm run framer\`
|
|
448
|
-
import ${exampleComponent?.componentName} from './${outDirForExample}/${exampleComponent?.path}'
|
|
449
|
-
|
|
450
|
-
export default function App() {
|
|
451
|
-
return (
|
|
452
|
-
<div className='flex flex-col'>
|
|
453
|
-
${responsiveComponent
|
|
454
|
-
.split('\n')
|
|
455
|
-
.map((line, i) => (!i ? line : ' ' + line))
|
|
456
|
-
.join('\n')}
|
|
457
|
-
</div>
|
|
458
|
-
);
|
|
459
|
-
};
|
|
460
|
-
`;
|
|
395
|
+
const outDirForExample = path_1.default.posix.relative(process.cwd(), out).replace(/^src\//, '') ||
|
|
396
|
+
'framer'; // remove src so file works inside src
|
|
397
|
+
const { exampleCode } = await createExampleComponentCode({
|
|
398
|
+
outDir: out,
|
|
399
|
+
// buildResult: result,
|
|
400
|
+
config,
|
|
401
|
+
});
|
|
461
402
|
if (utils_js_1.stackblitzDemoExample) {
|
|
462
403
|
utils_js_1.logger.log(`Inside Stackblitz demo, writing App.tsx`);
|
|
463
404
|
await fs_1.default.promises.mkdir(path_1.default.dirname(utils_js_1.stackblitzDemoExample), {
|
|
@@ -1005,7 +946,11 @@ const resetCssStyles = `
|
|
|
1005
946
|
margin: 0;
|
|
1006
947
|
}
|
|
1007
948
|
|
|
1008
|
-
.unframer
|
|
949
|
+
.unframer {
|
|
950
|
+
line-height: normal;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
.unframer, .unframer input, .unframer textarea, .unframer select, .unframer button {
|
|
1009
954
|
font-size: 12px;
|
|
1010
955
|
font-family: sans-serif;
|
|
1011
956
|
}
|
|
@@ -1018,4 +963,63 @@ async function recursiveReaddir(dir) {
|
|
|
1018
963
|
}));
|
|
1019
964
|
return files.flat();
|
|
1020
965
|
}
|
|
966
|
+
function indentWithTabs(str, tabs) {
|
|
967
|
+
return str
|
|
968
|
+
.split('\n')
|
|
969
|
+
.map((line, i) => (!i ? line : tabs + line))
|
|
970
|
+
.join('\n');
|
|
971
|
+
}
|
|
972
|
+
async function createExampleComponentCode({ outDir, config, }) {
|
|
973
|
+
const outDirForExample = path_1.default.posix
|
|
974
|
+
.relative(process.cwd(), outDir)
|
|
975
|
+
.replace(/^src\//, ''); // remove src so file works inside src
|
|
976
|
+
const instances = config?.componentInstancesInIndexPage.sort((a, b) => {
|
|
977
|
+
// Order first by nodeDepth (lower is better)
|
|
978
|
+
return a.nodeDepth - b.nodeDepth || a.pageOrdering - b.pageOrdering;
|
|
979
|
+
});
|
|
980
|
+
const imports = instances.map((exampleComponent) => {
|
|
981
|
+
return `import ${componentCamelCase(exampleComponent?.componentPathSlug)} from './${outDirForExample}/${exampleComponent?.componentPathSlug}'`;
|
|
982
|
+
});
|
|
983
|
+
const jsx = instances.map((exampleComponent) => {
|
|
984
|
+
let propStr = '';
|
|
985
|
+
for (let [key, value] of Object.entries(exampleComponent.controls || {})) {
|
|
986
|
+
if (key === 'variant') {
|
|
987
|
+
continue;
|
|
988
|
+
}
|
|
989
|
+
if (typeof value === 'object') {
|
|
990
|
+
continue;
|
|
991
|
+
}
|
|
992
|
+
// TODO get property controls to render enums much better? maybe do this in plugin instead
|
|
993
|
+
propStr += '\n';
|
|
994
|
+
propStr += ` ${key}={${JSON.stringify(value)}}`;
|
|
995
|
+
}
|
|
996
|
+
if (propStr)
|
|
997
|
+
propStr += '\n';
|
|
998
|
+
const responsiveComponent = (0, string_dedent_1.default) `
|
|
999
|
+
<${componentCamelCase(exampleComponent?.componentPathSlug)}.Responsive${propStr}/>
|
|
1000
|
+
`;
|
|
1001
|
+
return responsiveComponent;
|
|
1002
|
+
});
|
|
1003
|
+
let containerClasses = '';
|
|
1004
|
+
if (config.pageBackgroundColor) {
|
|
1005
|
+
let bg = config.pageBackgroundColor?.replace(' ', '_');
|
|
1006
|
+
containerClasses += `bg-[${bg}]`;
|
|
1007
|
+
}
|
|
1008
|
+
const exampleCode = (0, string_dedent_1.default) `
|
|
1009
|
+
import './${outDirForExample}/styles.css'
|
|
1010
|
+
|
|
1011
|
+
${indentWithTabs(imports.join('\n'), '')}
|
|
1012
|
+
|
|
1013
|
+
export default function App() {
|
|
1014
|
+
return (
|
|
1015
|
+
<div className='flex flex-col items-center gap-3 ${containerClasses}'>
|
|
1016
|
+
${indentWithTabs(jsx.join('\n'), ' ')}
|
|
1017
|
+
</div>
|
|
1018
|
+
);
|
|
1019
|
+
};
|
|
1020
|
+
`;
|
|
1021
|
+
return {
|
|
1022
|
+
exampleCode,
|
|
1023
|
+
};
|
|
1024
|
+
}
|
|
1021
1025
|
//# sourceMappingURL=exporter.js.map
|