unframer 2.25.3 → 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.
Files changed (55) hide show
  1. package/dist/cli.d.ts +21 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +79 -48
  4. package/dist/cli.js.map +1 -1
  5. package/dist/example-code.test.d.ts +2 -0
  6. package/dist/example-code.test.d.ts.map +1 -0
  7. package/dist/example-code.test.js +72 -0
  8. package/dist/example-code.test.js.map +1 -0
  9. package/dist/exporter.d.ts +17 -55
  10. package/dist/exporter.d.ts.map +1 -1
  11. package/dist/exporter.js +68 -68
  12. package/dist/exporter.js.map +1 -1
  13. package/dist/framer.d.ts.map +1 -1
  14. package/dist/framer.js +99 -53
  15. package/dist/framer.js.map +1 -1
  16. package/dist/generated/api-client.js +0 -1
  17. package/dist/generated/api-client.js.map +1 -1
  18. package/dist/generated/api-client.test.js +0 -69
  19. package/dist/generated/api-client.test.js.map +1 -1
  20. package/dist/version.d.ts +1 -1
  21. package/dist/version.js +1 -1
  22. package/esm/cli.d.ts +21 -0
  23. package/esm/cli.d.ts.map +1 -1
  24. package/esm/cli.js +78 -48
  25. package/esm/cli.js.map +1 -1
  26. package/esm/example-code.test.d.ts +2 -0
  27. package/esm/example-code.test.d.ts.map +1 -0
  28. package/esm/example-code.test.js +70 -0
  29. package/esm/example-code.test.js.map +1 -0
  30. package/esm/exporter.d.ts +17 -55
  31. package/esm/exporter.d.ts.map +1 -1
  32. package/esm/exporter.js +67 -68
  33. package/esm/exporter.js.map +1 -1
  34. package/esm/framer.d.ts.map +1 -1
  35. package/esm/framer.js +99 -53
  36. package/esm/framer.js.map +1 -1
  37. package/esm/generated/api-client.js +0 -1
  38. package/esm/generated/api-client.js.map +1 -1
  39. package/esm/generated/api-client.test.d.ts +0 -1
  40. package/esm/generated/api-client.test.js +1 -69
  41. package/esm/generated/api-client.test.js.map +1 -1
  42. package/esm/version.d.ts +1 -1
  43. package/esm/version.js +1 -1
  44. package/package.json +4 -4
  45. package/src/{cli.tsx → cli.ts} +114 -64
  46. package/src/example-code.test.ts +72 -0
  47. package/src/exporter.ts +94 -80
  48. package/src/framer.js +128 -79
  49. package/src/generated/api-client.d.ts +1048 -682
  50. package/src/generated/api-client.d.ts.map +1 -1
  51. package/src/generated/api-client.js +5 -6
  52. package/src/generated/api-client.js.map +1 -1
  53. package/src/generated/api-client.test.d.ts +1 -1
  54. package/src/generated/api-client.test.js +1 -69
  55. 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.tsx"],"names":[],"mappings":"AAEA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAU,UAAU,EAAE,MAAM,eAAe,CAAA;AAOlD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAY1C,eAAO,MAAM,GAAG,mBAAkB,CAAA;AAoNlC,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;CAClB,CAAA"}
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
- utils_js_1.logger.log(`Fetching config for project ${projectId}`);
79
- const client = await (0, api_client_js_1.createClient)({
80
- url: process.env.UNFRAMER_SERVER_URL ||
81
- 'https://unframer.co',
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.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=example-code.test.d.ts.map
@@ -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"}
@@ -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
- rebuild: () => Promise<{
18
- components: {
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
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkkBA;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"}
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
- path: name,
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
- let exampleComponent = result?.components?.sort((a, b) => {
395
- const aVariants = getVariantsFromPropControls(a.propertyControls);
396
- const bVariants = getVariantsFromPropControls(b.propertyControls);
397
- const aHasBreakpoints = (aVariants?.breakpoints?.length || 0) >= 2;
398
- const bHasBreakpoints = (bVariants?.breakpoints?.length || 0) >= 2;
399
- // Sort components with breakpoints first
400
- if (aHasBreakpoints && !bHasBreakpoints)
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), {
@@ -1022,4 +963,63 @@ async function recursiveReaddir(dir) {
1022
963
  }));
1023
964
  return files.flat();
1024
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
+ }
1025
1025
  //# sourceMappingURL=exporter.js.map