unframer 1.4.0 → 1.6.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/README.md +33 -10
- package/dist/cli.test.js +8 -1
- package/dist/cli.test.js.map +1 -1
- package/dist/css.d.ts +24 -0
- package/dist/css.d.ts.map +1 -0
- package/dist/css.js +98 -0
- package/dist/css.js.map +1 -0
- package/dist/exporter.d.ts +7 -3
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +31 -19
- package/dist/exporter.js.map +1 -1
- package/dist/react.d.ts +2 -10
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +4 -89
- package/dist/react.js.map +1 -1
- package/framer-fixed/dist/framer.js +2 -2
- package/package.json +1 -1
- package/src/cli.test.ts +9 -1
- package/src/css.ts +131 -0
- package/src/exporter.ts +49 -21
- package/src/react.tsx +6 -108
package/README.md
CHANGED
|
@@ -46,14 +46,12 @@ Download framer components as simple files
|
|
|
46
46
|
1. Import the component inside your `jsx` files, for example
|
|
47
47
|
|
|
48
48
|
```tsx
|
|
49
|
+
import './framer/styles.cs' // load base Framer styles
|
|
49
50
|
import Menu from './framer/menus'
|
|
50
|
-
import { FramerStyles } from 'unframer'
|
|
51
51
|
|
|
52
52
|
export default function App() {
|
|
53
53
|
return (
|
|
54
54
|
<div>
|
|
55
|
-
{/* Injects fonts and other framer utility styles */}
|
|
56
|
-
<FramerStyles Components={[Menu]} />
|
|
57
55
|
<Menu componentVariable='some variable' />
|
|
58
56
|
</div>
|
|
59
57
|
)
|
|
@@ -63,14 +61,12 @@ export default function App() {
|
|
|
63
61
|
## Using responsive variants
|
|
64
62
|
|
|
65
63
|
```tsx
|
|
64
|
+
import './framer/styles.cs'
|
|
66
65
|
import Logos from './framer/logos'
|
|
67
|
-
import { FramerStyles } from 'unframer'
|
|
68
66
|
|
|
69
67
|
export default function App() {
|
|
70
68
|
return (
|
|
71
69
|
<div>
|
|
72
|
-
{/* Injects fonts and other framer utility styles */}
|
|
73
|
-
<FramerStyles Components={[Logos]} />
|
|
74
70
|
{/* Changes component variant based on breakpoint */}
|
|
75
71
|
<Logos.Responsive
|
|
76
72
|
variants={{
|
|
@@ -91,14 +87,12 @@ You can use `className` or `style` props to style your components
|
|
|
91
87
|
Notice that you will often need to use `!important` to override styles already defined in framer like `width` and `height`
|
|
92
88
|
|
|
93
89
|
```tsx
|
|
90
|
+
import './framer/styles.cs'
|
|
94
91
|
import Logos from './framer/logos'
|
|
95
|
-
import { FramerStyles } from 'unframer'
|
|
96
92
|
|
|
97
93
|
export default function App() {
|
|
98
94
|
return (
|
|
99
95
|
<div>
|
|
100
|
-
{/* Injects fonts and other framer utility styles */}
|
|
101
|
-
<FramerStyles Components={[Logos]} />
|
|
102
96
|
{/* Changes component variant based on breakpoint */}
|
|
103
97
|
<Logos.responsive
|
|
104
98
|
className='!w-full'
|
|
@@ -113,6 +107,31 @@ export default function App() {
|
|
|
113
107
|
}
|
|
114
108
|
```
|
|
115
109
|
|
|
110
|
+
## Sizing components
|
|
111
|
+
|
|
112
|
+
Framer components can have a fixed size, this comes from the root element in the Framer component editor. To override this size you will need to use the `style` prop or use a class with high specificity.
|
|
113
|
+
|
|
114
|
+
```tsx
|
|
115
|
+
import './framer/styles.cs'
|
|
116
|
+
import Logos from './framer/logos'
|
|
117
|
+
|
|
118
|
+
export default function App() {
|
|
119
|
+
return (
|
|
120
|
+
<div>
|
|
121
|
+
<Logos.responsive
|
|
122
|
+
className='!w-full' // use !important to override framer default size
|
|
123
|
+
style={{ width: '100%' }} // or use style prop, which has higher specificity than the Framer class
|
|
124
|
+
variants={{
|
|
125
|
+
lg: 'Desktop',
|
|
126
|
+
md: 'Tablet',
|
|
127
|
+
base: 'Mobile',
|
|
128
|
+
}}
|
|
129
|
+
/>
|
|
130
|
+
</div>
|
|
131
|
+
)
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
116
135
|
## Supported component props
|
|
117
136
|
|
|
118
137
|
`unframer` will add TypeScript definitions for your Framer components props and variables, some example variables you can use are:
|
|
@@ -136,7 +155,11 @@ Known limitations:
|
|
|
136
155
|
}
|
|
137
156
|
```
|
|
138
157
|
|
|
139
|
-
-
|
|
158
|
+
- Links to Framer pages won't work, this is because links to Framer pages are encoded with opaque ids. Instead you should
|
|
159
|
+
|
|
160
|
+
1. use link variables
|
|
161
|
+
1. absolute links (starting with https://, not links to other Framer pages).
|
|
162
|
+
1. append a query when creating a link (for example instead of writing `/home` you write `/home?` and don't press enter, this will preserve the link as it is)
|
|
140
163
|
|
|
141
164
|
- Internationalization is not supported
|
|
142
165
|
|
package/dist/cli.test.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import tmp from 'tmp';
|
|
2
2
|
import { test, expect } from 'vitest';
|
|
3
|
-
import { bundle, extractTokenInfo } from './exporter.js';
|
|
3
|
+
import { bundle, componentCamelCase, extractTokenInfo } from './exporter.js';
|
|
4
|
+
test('componentCamelCase', () => {
|
|
5
|
+
expect(componentCamelCase('logo-ticker')).toMatchInlineSnapshot(`"LogoTickerFramerComponent"`);
|
|
6
|
+
expect(componentCamelCase('Logo-Ticker')).toMatchInlineSnapshot(`"LogoTickerFramerComponent"`);
|
|
7
|
+
expect(componentCamelCase('logo')).toMatchInlineSnapshot(`"LogoFramerComponent"`);
|
|
8
|
+
expect(componentCamelCase('nav')).toMatchInlineSnapshot(`"NavFramerComponent"`);
|
|
9
|
+
expect(componentCamelCase('framer_nav')).toMatchInlineSnapshot(`"FramerNavFramerComponent"`);
|
|
10
|
+
});
|
|
4
11
|
test('extractTokenInfo', async () => {
|
|
5
12
|
const str = `
|
|
6
13
|
some other code
|
package/dist/cli.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAE5E,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,6BAA6B,CAAC,CAAA;IAC9F,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,6BAA6B,CAAC,CAAA;IAC9F,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAA;IACjF,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CAAA;IAC/E,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,4BAA4B,CAAC,CAAA;AAChG,CAAC,CAAC,CAAA;AAEF,IAAI,CACA,kBAAkB,EAClB,KAAK,IAAI,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,EACD,IAAI,GAAG,EAAE,CACZ,CAAA;AACD,IAAI,CACA,yBAAyB,EACzB,KAAK,IAAI,EAAE;IACP,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACrC,MAAM,GAAG,GACL,+DAA+D,CAAA;IACnE,MAAM,MAAM,CAAC;QACT,UAAU,EAAE;YACR,MAAM,EAAE,GAAG;SACd;QACD,GAAG,EAAE,UAAU;KAClB,CAAC,CAAA;AACN,CAAC,EACD,IAAI,GAAG,EAAE,CACZ,CAAA;AACD,IAAI,CACA,UAAU,EACV,KAAK,IAAI,EAAE;IACP,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,wDAAwD,CAAA;IACpE,MAAM,MAAM,CAAC;QACT,UAAU,EAAE;YACR,IAAI,EAAE,GAAG;SACZ;QACD,GAAG,EAAE,UAAU;KAClB,CAAC,CAAA;AACN,CAAC,EACD,IAAI,GAAG,EAAE,CACZ,CAAA;AACD,IAAI,CACA,uBAAuB,EACvB,KAAK,IAAI,EAAE;IACP,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACrC,MAAM,GAAG,GACL,qEAAqE,CAAA;IACzE,MAAM,MAAM,CAAC;QACT,UAAU,EAAE;YACR,KAAK,EAAE,GAAG;SACb;QACD,GAAG,EAAE,UAAU;KAClB,CAAC,CAAA;AACN,CAAC,EACD,IAAI,GAAG,EAAE,CACZ,CAAA"}
|
package/dist/css.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ComponentFont } from './framer.js';
|
|
2
|
+
export declare const breakpointSizes: {
|
|
3
|
+
readonly base: 0;
|
|
4
|
+
readonly sm: 320;
|
|
5
|
+
readonly md: 768;
|
|
6
|
+
readonly lg: 960;
|
|
7
|
+
readonly xl: 1200;
|
|
8
|
+
readonly '2xl': 1536;
|
|
9
|
+
};
|
|
10
|
+
export type ComponentFontBundle = {
|
|
11
|
+
/**
|
|
12
|
+
* This flag specifies whether the font bundle includes the specific font
|
|
13
|
+
* weights of Framer’s Inter font that the component uses. New smart
|
|
14
|
+
* components do that (which means we can emit CSS only for Inter fonts that
|
|
15
|
+
* are actually used); older smart components don’t (which means some places
|
|
16
|
+
* will emit CSS for all Inter fonts if this flag is not set).
|
|
17
|
+
* https://www.notion.so/framer/RFC-ComponentFont-v2-d5fd3e822fb049ffb6971554ab0e4e42
|
|
18
|
+
*/
|
|
19
|
+
explicitInter: boolean;
|
|
20
|
+
fonts: ComponentFont[];
|
|
21
|
+
};
|
|
22
|
+
export declare function getFontsStyles(_fontsDefs: ComponentFontBundle[]): string;
|
|
23
|
+
export declare const breakpointsStyles: string;
|
|
24
|
+
//# sourceMappingURL=css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../src/css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAA;AAcV,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;;;;;;OAOG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,aAAa,EAAE,CAAA;CACzB,CAAA;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,mBAAmB,EAAE,UAmC/D;AAED,eAAO,MAAM,iBAAiB,QAwD7B,CAAA"}
|
package/dist/css.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
export const breakpointSizes = {
|
|
3
|
+
base: 0,
|
|
4
|
+
sm: 320,
|
|
5
|
+
md: 768,
|
|
6
|
+
lg: 960,
|
|
7
|
+
xl: 1200,
|
|
8
|
+
'2xl': 1536,
|
|
9
|
+
};
|
|
10
|
+
function deduplicateByKey(arr, key) {
|
|
11
|
+
let map = new Map();
|
|
12
|
+
for (let item of arr) {
|
|
13
|
+
let value = key(item);
|
|
14
|
+
if (map.has(value)) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
map.set(value, item);
|
|
18
|
+
}
|
|
19
|
+
return Array.from(map.values());
|
|
20
|
+
}
|
|
21
|
+
export function getFontsStyles(_fontsDefs) {
|
|
22
|
+
let fontsDefs = _fontsDefs?.flatMap((x) => x.fonts);
|
|
23
|
+
if (!fontsDefs?.length) {
|
|
24
|
+
return '';
|
|
25
|
+
}
|
|
26
|
+
const allFonts = deduplicateByKey(fontsDefs, (x) => x?.url).filter((x) => x.url);
|
|
27
|
+
// console.log('fontsDefs', JSON.stringify(allFonts, null, 2))
|
|
28
|
+
// console.log(JSON.stringify(fonts, null, 2))
|
|
29
|
+
let str = allFonts
|
|
30
|
+
.map((x) => {
|
|
31
|
+
let str = `/* From ${x.source} */\n`;
|
|
32
|
+
str += dedent `
|
|
33
|
+
@font-face {
|
|
34
|
+
font-family: '${x.family}';
|
|
35
|
+
src: url(${x.url});\n`;
|
|
36
|
+
if (x.style) {
|
|
37
|
+
str += ` font-style: ${x.style};\n`;
|
|
38
|
+
}
|
|
39
|
+
if (x.weight) {
|
|
40
|
+
str += ` font-weight: ${x.weight};\n`;
|
|
41
|
+
}
|
|
42
|
+
if (x.unicodeRange) {
|
|
43
|
+
str += ` unicodeRange: ${x.unicodeRange};\n`;
|
|
44
|
+
}
|
|
45
|
+
str += `}\n`;
|
|
46
|
+
return str;
|
|
47
|
+
})
|
|
48
|
+
.join('\n');
|
|
49
|
+
return '\n' + str + '\n';
|
|
50
|
+
}
|
|
51
|
+
export const breakpointsStyles = /* css */ `
|
|
52
|
+
/* Base */
|
|
53
|
+
@media (min-width: ${breakpointSizes.base}px) and (max-width: ${breakpointSizes.sm - 1}px) {
|
|
54
|
+
.unframer-hidden.unframer-base {
|
|
55
|
+
display: contents;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Small */
|
|
60
|
+
@media (min-width: ${breakpointSizes.sm}px) and (max-width: ${breakpointSizes.md - 1}px) {
|
|
61
|
+
.unframer-hidden.unframer-sm {
|
|
62
|
+
display: contents;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Medium */
|
|
67
|
+
@media (min-width: ${breakpointSizes.md}px) and (max-width: ${breakpointSizes.lg - 1}px) {
|
|
68
|
+
.unframer-hidden.unframer-md {
|
|
69
|
+
display: contents;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Large */
|
|
74
|
+
@media (min-width: ${breakpointSizes.lg}px) and (max-width: ${breakpointSizes.xl - 1}px) {
|
|
75
|
+
.unframer-hidden.unframer-lg {
|
|
76
|
+
display: contents;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* Extra Large */
|
|
81
|
+
@media (min-width: ${breakpointSizes.xl}px) and (max-width: ${breakpointSizes['2xl'] - 1}px) {
|
|
82
|
+
.unframer-hidden.unframer-xl {
|
|
83
|
+
display: contents;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* 2 Extra Large */
|
|
88
|
+
@media (min-width: ${breakpointSizes['2xl']}px) {
|
|
89
|
+
.unframer-hidden.unframer-2xl {
|
|
90
|
+
display: contents;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.unframer-hidden {
|
|
95
|
+
display: none;
|
|
96
|
+
}
|
|
97
|
+
`;
|
|
98
|
+
//# sourceMappingURL=css.js.map
|
package/dist/css.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.js","sourceRoot":"","sources":["../src/css.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAG3B,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,IAAI,EAAE,CAAC;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;CACL,CAAA;AAEV,SAAS,gBAAgB,CAAI,GAAQ,EAAE,GAAqB;IACxD,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;IACnB,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QACnB,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,SAAQ;QACZ,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;AACnC,CAAC;AAeD,MAAM,UAAU,cAAc,CAAC,UAAiC;IAC5D,IAAI,SAAS,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACnD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,CAAA;IACb,CAAC;IAGD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CACf,CAAA;IACD,8DAA8D;IAE9D,8CAA8C;IAC9C,IAAI,GAAG,GAAG,QAAQ;SACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACP,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,MAAM,OAAO,CAAA;QACpC,GAAG,IAAI,MAAM,CAAA;;gCAEO,CAAC,CAAC,MAAM;2BACb,CAAC,CAAC,GAAG,MAAM,CAAA;QAC1B,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,GAAG,IAAI,mBAAmB,CAAC,CAAC,KAAK,KAAK,CAAA;QAC1C,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACX,GAAG,IAAI,oBAAoB,CAAC,CAAC,MAAM,KAAK,CAAA;QAC5C,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YACjB,GAAG,IAAI,qBAAqB,CAAC,CAAC,YAAY,KAAK,CAAA;QACnD,CAAC;QACD,GAAG,IAAI,KAAK,CAAA;QACZ,OAAO,GAAG,CAAA;IACd,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEf,OAAO,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;AAC5B,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;;qBAEtB,eAAe,CAAC,IAAI,uBACrC,eAAe,CAAC,EAAE,GAAG,CACzB;;;;;;;qBAOqB,eAAe,CAAC,EAAE,uBACnC,eAAe,CAAC,EAAE,GAAG,CACzB;;;;;;;qBAOqB,eAAe,CAAC,EAAE,uBACnC,eAAe,CAAC,EAAE,GAAG,CACzB;;;;;;;qBAOqB,eAAe,CAAC,EAAE,uBACnC,eAAe,CAAC,EAAE,GAAG,CACzB;;;;;;;qBAOqB,eAAe,CAAC,EAAE,uBACnC,eAAe,CAAC,KAAK,CAAC,GAAG,CAC7B;;;;;;;qBAOqB,eAAe,CAAC,KAAK,CAAC;;;;;;;;;CAS1C,CAAA"}
|
package/dist/exporter.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Plugin } from 'esbuild';
|
|
2
2
|
import { PropertyControls } from '../framer-fixed/dist/framer.js';
|
|
3
|
+
import { ComponentFontBundle } from './css.js';
|
|
3
4
|
export declare const logger: {
|
|
4
5
|
log(...args: any[]): void;
|
|
5
6
|
error(...args: any[]): void;
|
|
@@ -12,8 +13,11 @@ export declare function bundle({ cwd: out, watch, components, signal, }: {
|
|
|
12
13
|
}): Promise<void>;
|
|
13
14
|
export declare function findRelativeLinks(text: string): number[];
|
|
14
15
|
export declare function extractPropControlsSafe(text: any, name: any): Promise<PropertyControls<any, any> | undefined>;
|
|
15
|
-
export declare function extractPropControlsUnsafe(filename: any, name: any): Promise<
|
|
16
|
-
|
|
16
|
+
export declare function extractPropControlsUnsafe(filename: any, name: any): Promise<{
|
|
17
|
+
propertyControls?: PropertyControls;
|
|
18
|
+
fonts?: ComponentFontBundle[];
|
|
19
|
+
}>;
|
|
20
|
+
export declare function propControlsToType(controls: PropertyControls, fileName: any): string;
|
|
17
21
|
export declare function parsePropertyControls(code: string): string | null;
|
|
18
22
|
export declare function esbuildPluginBundleDependencies({ signal, }: {
|
|
19
23
|
signal?: AbortSignal | undefined;
|
|
@@ -24,12 +28,12 @@ export declare function resolveRedirect({ redirectCache, signal, url, }: {
|
|
|
24
28
|
signal?: AbortSignal;
|
|
25
29
|
}): Promise<any>;
|
|
26
30
|
export declare function recursiveResolveRedirect(url?: string, signal?: AbortSignal): Promise<string | undefined>;
|
|
27
|
-
export declare function deduplicateByKey<T>(key: keyof T, arr: (T | undefined)[]): any[];
|
|
28
31
|
type TokenInfo = {
|
|
29
32
|
tokenName: string;
|
|
30
33
|
metadata?: Record<string, any>;
|
|
31
34
|
defaultValue: string;
|
|
32
35
|
};
|
|
33
36
|
export declare function extractTokenInfo(code: string): TokenInfo[];
|
|
37
|
+
export declare function componentCamelCase(str: string): string;
|
|
34
38
|
export {};
|
|
35
39
|
//# 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,MAAM,EAA0C,MAAM,SAAS,CAAA;AAQxE,OAAO,
|
|
1
|
+
{"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0C,MAAM,SAAS,CAAA;AAQxE,OAAO,EAIH,gBAAgB,EAEnB,MAAM,gCAAgC,CAAA;AAKvC,OAAO,EAAE,mBAAmB,EAAqC,MAAM,UAAU,CAAA;AAKjF,eAAO,MAAM,MAAM;;;CAOlB,CAAA;AAYD,wBAAsB,MAAM,CAAC,EACzB,GAAG,EAAE,GAAQ,EACb,KAAa,EACb,UAAyC,EACzC,MAA6C,GAChD;;;;;CAAA,iBA2OA;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,YAY7C;AAED,wBAAsB,uBAAuB,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,mDAmCvD;AAmGD,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,CA4BD;AAWD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,KAAA,UA4FtE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,iBAqCjD;AAWD,wBAAgB,+BAA+B,CAAC,EAC5C,MAA6C,GAChD;;CAAA,UA0IA;AAED,wBAAsB,eAAe,CAAC,EAClC,aAAa,EACb,MAAM,EACN,GAAG,GACN,EAAE;IACC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,GAAG,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACvB,gBAkBA;AAED,wBAAsB,wBAAwB,CAC1C,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,+BAkBvB;AAgCD,KAAK,SAAS,GAAG;IACb,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,SAAS,EAAE,CA2D1D;AAqBD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,UAS7C"}
|
package/dist/exporter.js
CHANGED
|
@@ -2,11 +2,13 @@ import { transform, context } from 'esbuild';
|
|
|
2
2
|
import dprint from 'dprint-node';
|
|
3
3
|
import pico from 'picocolors';
|
|
4
4
|
import { polyfillNode } from 'esbuild-plugin-polyfill-node';
|
|
5
|
-
import { ControlType, } from '../framer-fixed/dist/framer.js';
|
|
5
|
+
import { ControlType, combinedCSSRules, } from '../framer-fixed/dist/framer.js';
|
|
6
6
|
import { fetch as _fetch } from 'native-fetch';
|
|
7
7
|
import fs from 'fs';
|
|
8
8
|
import path from 'path';
|
|
9
9
|
import { execSync } from 'child_process';
|
|
10
|
+
import { breakpointsStyles, getFontsStyles } from './css.js';
|
|
11
|
+
import dedent from 'dedent';
|
|
10
12
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
11
13
|
const prefix = '[unframer]';
|
|
12
14
|
export const logger = {
|
|
@@ -125,6 +127,7 @@ export async function bundle({ cwd: out = '', watch = false, components = {}, si
|
|
|
125
127
|
logger.log(`writing`, path.relative(out, file.path));
|
|
126
128
|
fs.writeFileSync(resultPathAbs, codeNew, 'utf-8');
|
|
127
129
|
}
|
|
130
|
+
let allFonts = [];
|
|
128
131
|
for (let file of result.outputFiles) {
|
|
129
132
|
const name = path.basename(file.path).replace(/\.js$/, '');
|
|
130
133
|
const resultPathAbs = path.resolve(out, file.path);
|
|
@@ -132,20 +135,27 @@ export async function bundle({ cwd: out = '', watch = false, components = {}, si
|
|
|
132
135
|
continue;
|
|
133
136
|
}
|
|
134
137
|
logger.log(`extracting types for ${name}`);
|
|
135
|
-
const
|
|
136
|
-
if (!
|
|
138
|
+
const { propertyControls, fonts } = await extractPropControlsUnsafe(resultPathAbs, name);
|
|
139
|
+
if (!propertyControls) {
|
|
137
140
|
logger.log(`no property controls found for ${name}`);
|
|
138
141
|
}
|
|
139
|
-
|
|
142
|
+
allFonts.push(...(fonts || []));
|
|
143
|
+
const types = propControlsToType(propertyControls, name);
|
|
140
144
|
// name = 'framer-' + name
|
|
141
145
|
// logger.log('name', name)
|
|
142
146
|
fs.writeFileSync(path.resolve(out, `${name}.d.ts`), types);
|
|
143
147
|
}
|
|
148
|
+
const cssString = breakpointsStyles +
|
|
149
|
+
'\n' +
|
|
150
|
+
(combinedCSSRules.map(x => x?.startsWith(' ') ? dedent(x) : x).join('\n')) +
|
|
151
|
+
getFontsStyles(allFonts);
|
|
152
|
+
fs.writeFileSync(path.resolve(out, 'styles.css'), cssString, 'utf-8');
|
|
144
153
|
const outFiles = result.outputFiles
|
|
145
154
|
.map((x) => path.resolve(out, x.path))
|
|
146
155
|
.concat([
|
|
147
156
|
path.resolve(out, 'meta.json'),
|
|
148
157
|
path.resolve(out, 'tokens.css'),
|
|
158
|
+
path.resolve(out, 'styles.css'),
|
|
149
159
|
])
|
|
150
160
|
.concat(result.outputFiles.map((x) => path.resolve(out, x.path.replace('.js', '.d.ts'))));
|
|
151
161
|
const filesToDelete = prevFiles.filter((x) => !outFiles.includes(x));
|
|
@@ -334,7 +344,7 @@ export async function extractPropControlsUnsafe(filename, name) {
|
|
|
334
344
|
try {
|
|
335
345
|
fs.writeFileSync(packageJson, JSON.stringify({ type: 'module' }), 'utf-8');
|
|
336
346
|
const delimiter = '__delimiter__';
|
|
337
|
-
let propCode = `JSON.stringify(x.default?.propertyControls ||
|
|
347
|
+
let propCode = `JSON.stringify({propertyControls: x.default?.propertyControls, fonts: x?.default?.fonts } || {}, null, 2)`;
|
|
338
348
|
// propCode = `x.default`
|
|
339
349
|
const code = `import(${JSON.stringify(filename)}).then(x => { console.log(${JSON.stringify(delimiter)}); console.log(${propCode})
|
|
340
350
|
})`;
|
|
@@ -346,6 +356,7 @@ export async function extractPropControlsUnsafe(filename, name) {
|
|
|
346
356
|
}
|
|
347
357
|
catch (e) {
|
|
348
358
|
logger.error(`Cannot get property controls for ${name}`, e.stack);
|
|
359
|
+
return {};
|
|
349
360
|
}
|
|
350
361
|
finally {
|
|
351
362
|
fs.rmSync(packageJson);
|
|
@@ -360,7 +371,7 @@ function safeJsonParse(text) {
|
|
|
360
371
|
return null;
|
|
361
372
|
}
|
|
362
373
|
}
|
|
363
|
-
export function propControlsToType(controls) {
|
|
374
|
+
export function propControlsToType(controls, fileName) {
|
|
364
375
|
try {
|
|
365
376
|
const types = Object.entries(controls || {})
|
|
366
377
|
.map(([key, value]) => {
|
|
@@ -422,6 +433,7 @@ export function propControlsToType(controls) {
|
|
|
422
433
|
})
|
|
423
434
|
.filter(Boolean)
|
|
424
435
|
.join('\n');
|
|
436
|
+
const componentName = componentCamelCase(fileName?.replace(/\.js$/, ''));
|
|
425
437
|
const defaultPropsTypes = [
|
|
426
438
|
'children?: React.ReactNode',
|
|
427
439
|
'style?: React.CSSProperties',
|
|
@@ -437,10 +449,10 @@ export function propControlsToType(controls) {
|
|
|
437
449
|
t += 'import * as React from "react"\n\n';
|
|
438
450
|
t += 'import { UnframerBreakpoint } from "unframer"\n\n';
|
|
439
451
|
t += `export interface Props {\n${defaultPropsTypes}${types}\n}\n\n`;
|
|
440
|
-
t += `const
|
|
452
|
+
t += `const ${componentName} = (props: Props) => any\n\n`;
|
|
441
453
|
t += `type VariantsMap = Partial<Record<UnframerBreakpoint, Props['variant']>> & { base: Props['variant'] }\n\n`;
|
|
442
|
-
t +=
|
|
443
|
-
t += `export default
|
|
454
|
+
t += `${componentName}.Responsive = (props: Omit<Props, 'variant'> & {variants: VariantsMap}) => any\n\n`;
|
|
455
|
+
t += `export default ${componentName}\n\n`;
|
|
444
456
|
return t;
|
|
445
457
|
}
|
|
446
458
|
catch (e) {
|
|
@@ -677,16 +689,6 @@ function retryTwice(fn) {
|
|
|
677
689
|
}
|
|
678
690
|
};
|
|
679
691
|
}
|
|
680
|
-
export function deduplicateByKey(key, arr) {
|
|
681
|
-
const map = new Map();
|
|
682
|
-
for (let item of arr) {
|
|
683
|
-
if (!item) {
|
|
684
|
-
continue;
|
|
685
|
-
}
|
|
686
|
-
map.set(item?.[key], item);
|
|
687
|
-
}
|
|
688
|
-
return Array.from(map.values());
|
|
689
|
-
}
|
|
690
692
|
export function extractTokenInfo(code) {
|
|
691
693
|
const lines = code.split('\n');
|
|
692
694
|
const tokenLines = lines.filter((line) => line.includes('var(--token'));
|
|
@@ -760,4 +762,14 @@ function groupBy(arr, key) {
|
|
|
760
762
|
}
|
|
761
763
|
return map;
|
|
762
764
|
}
|
|
765
|
+
export function componentCamelCase(str) {
|
|
766
|
+
if (!str) {
|
|
767
|
+
return 'FramerComponent';
|
|
768
|
+
}
|
|
769
|
+
str = str.replace(/-([\w])/g, (g) => g[1].toUpperCase());
|
|
770
|
+
str = str.replace(/_([a-z])/g, (g) => g[1].toUpperCase());
|
|
771
|
+
str = str[0].toUpperCase() + str.slice(1);
|
|
772
|
+
str = str + 'FramerComponent';
|
|
773
|
+
return str;
|
|
774
|
+
}
|
|
763
775
|
//# sourceMappingURL=exporter.js.map
|
package/dist/exporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter.js","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"exporter.js","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"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"}
|
package/dist/react.d.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import { ComponentType } from 'react';
|
|
2
|
-
|
|
3
|
-
readonly base: 0;
|
|
4
|
-
readonly sm: 320;
|
|
5
|
-
readonly md: 768;
|
|
6
|
-
readonly lg: 960;
|
|
7
|
-
readonly xl: 1200;
|
|
8
|
-
readonly '2xl': 1536;
|
|
9
|
-
};
|
|
2
|
+
import { breakpointSizes } from './css.js';
|
|
10
3
|
export type UnframerBreakpoint = keyof typeof breakpointSizes;
|
|
11
4
|
export declare function FramerStyles({ Components }: {
|
|
12
5
|
Components?: any[] | undefined;
|
|
@@ -16,10 +9,9 @@ export declare const WithFramerBreakpoints: import("react").ForwardRefExoticComp
|
|
|
16
9
|
variant?: any;
|
|
17
10
|
className?: string | undefined;
|
|
18
11
|
}>;
|
|
19
|
-
variants: Record<"base" | "sm" | "md" | "lg" | "xl"
|
|
12
|
+
variants: Record<"2xl" | "base" | "sm" | "md" | "lg" | "xl", any>;
|
|
20
13
|
} & Omit<{
|
|
21
14
|
variant?: any;
|
|
22
15
|
className?: string | undefined;
|
|
23
16
|
}, "variant"> & import("react").RefAttributes<unknown>>;
|
|
24
|
-
export {};
|
|
25
17
|
//# 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;
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,aAAa,EAKhB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,eAAe,EAAqC,MAAM,UAAU,CAAA;AAW7E,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,eAAe,CAAA;AA6B7D,wBAAgB,YAAY,CAAC,EAAE,UAAwB,EAAE;;CAAA,GAAG,GAAG,CAiD9D;AAED,eAAO,MAAM,qBAAqB;;kBACM,GAAG;;;;;cAAH,GAAG;;uDA2EzC,CAAA"}
|
package/dist/react.js
CHANGED
|
@@ -2,102 +2,15 @@
|
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { combinedCSSRules } from '../framer-fixed/dist/framer.js';
|
|
4
4
|
import { forwardRef, useId, useMemo, useSyncExternalStore, } from 'react';
|
|
5
|
-
|
|
6
|
-
const fonts = component.fonts;
|
|
7
|
-
return fonts || [];
|
|
8
|
-
}
|
|
5
|
+
import { breakpointSizes, breakpointsStyles, getFontsStyles } from './css.js';
|
|
9
6
|
function classNames(...args) {
|
|
10
7
|
return args.filter(Boolean).join(' ');
|
|
11
8
|
}
|
|
12
|
-
function deduplicateByKey(arr, key) {
|
|
13
|
-
let map = new Map();
|
|
14
|
-
for (let item of arr) {
|
|
15
|
-
let value = item[key(item)];
|
|
16
|
-
if (map.has(value)) {
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
|
-
map.set(value, item);
|
|
20
|
-
}
|
|
21
|
-
return Array.from(map.values());
|
|
22
|
-
}
|
|
23
|
-
function getFontsStyles(Components) {
|
|
24
|
-
const allFonts = deduplicateByKey(Components.map(getFonts).flat(), (x) => x.url).filter((x) => x.url);
|
|
25
|
-
// console.log(JSON.stringify(fonts, null, 2))
|
|
26
|
-
let str = allFonts
|
|
27
|
-
.map((x) => {
|
|
28
|
-
let str = `@font-face { font-family: '${x.family}'; src: url(${x.url});`;
|
|
29
|
-
if (x.style) {
|
|
30
|
-
str += ` font-style: ${x.style};`;
|
|
31
|
-
}
|
|
32
|
-
if (x.weight) {
|
|
33
|
-
str += ` font-weight: ${x.weight};`;
|
|
34
|
-
}
|
|
35
|
-
str += ` }`;
|
|
36
|
-
return str;
|
|
37
|
-
})
|
|
38
|
-
.join('\n');
|
|
39
|
-
return str;
|
|
40
|
-
}
|
|
41
|
-
const breakpointSizes = {
|
|
42
|
-
base: 0,
|
|
43
|
-
sm: 320,
|
|
44
|
-
md: 768,
|
|
45
|
-
lg: 960,
|
|
46
|
-
xl: 1200,
|
|
47
|
-
'2xl': 1536,
|
|
48
|
-
};
|
|
49
9
|
// breakpoints from the higher to the lower
|
|
50
10
|
const defaultBreakpoints = Object.keys(breakpointSizes).reverse();
|
|
51
11
|
function getBreakpointNameFromWindowWidth(windowWidth) {
|
|
52
12
|
return defaultBreakpoints.find((name) => windowWidth >= breakpointSizes[name]);
|
|
53
13
|
}
|
|
54
|
-
const breakpointsStyles = /* css */ `
|
|
55
|
-
/* Base */
|
|
56
|
-
@media (min-width: ${breakpointSizes.base}px) and (max-width: ${breakpointSizes.sm - 1}px) {
|
|
57
|
-
.unframer-hidden.unframer-base {
|
|
58
|
-
display: contents;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/* Small */
|
|
63
|
-
@media (min-width: ${breakpointSizes.sm}px) and (max-width: ${breakpointSizes.md - 1}px) {
|
|
64
|
-
.unframer-hidden.unframer-sm {
|
|
65
|
-
display: contents;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/* Medium */
|
|
70
|
-
@media (min-width: ${breakpointSizes.md}px) and (max-width: ${breakpointSizes.lg - 1}px) {
|
|
71
|
-
.unframer-hidden.unframer-md {
|
|
72
|
-
display: contents;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/* Large */
|
|
77
|
-
@media (min-width: ${breakpointSizes.lg}px) and (max-width: ${breakpointSizes.xl - 1}px) {
|
|
78
|
-
.unframer-hidden.unframer-lg {
|
|
79
|
-
display: contents;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/* Extra Large */
|
|
84
|
-
@media (min-width: ${breakpointSizes.xl}px) and (max-width: ${breakpointSizes['2xl'] - 1}px) {
|
|
85
|
-
.unframer-hidden.unframer-xl {
|
|
86
|
-
display: contents;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/* 2 Extra Large */
|
|
91
|
-
@media (min-width: ${breakpointSizes['2xl']}px) {
|
|
92
|
-
.unframer-hidden.unframer-2xl {
|
|
93
|
-
display: contents;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.unframer-hidden {
|
|
98
|
-
display: none;
|
|
99
|
-
}
|
|
100
|
-
`;
|
|
101
14
|
function fillBreakpoints(breakpoints) {
|
|
102
15
|
const breakpointsOrder = ['base', 'sm', 'md', 'lg', 'xl', '2xl'];
|
|
103
16
|
const filledBreakpoints = { ...breakpoints };
|
|
@@ -117,7 +30,9 @@ const nothing = () => {
|
|
|
117
30
|
export function FramerStyles({ Components = [] }) {
|
|
118
31
|
const isClient = useSyncExternalStore(nothing, () => true, () => false);
|
|
119
32
|
const breakpoints = (_jsx("style", { dangerouslySetInnerHTML: { __html: breakpointsStyles }, suppressHydrationWarning: true, hidden: true }, 'breakpointsStyles'));
|
|
120
|
-
const fonts = (_jsx("style", { dangerouslySetInnerHTML: {
|
|
33
|
+
const fonts = (_jsx("style", { dangerouslySetInnerHTML: {
|
|
34
|
+
__html: getFontsStyles(Components.map((x) => x.fonts || []).flat()),
|
|
35
|
+
}, suppressHydrationWarning: true, hidden: true }, 'fonts'));
|
|
121
36
|
// if (isClient) {
|
|
122
37
|
// // on client framer injects the styles by itself
|
|
123
38
|
// return (
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,EAAE,gBAAgB,EAAe,MAAM,gCAAgC,CAAA;AAE9E,OAAO,EAGH,UAAU,EACV,KAAK,EACL,OAAO,EACP,oBAAoB,GACvB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,EAAE,gBAAgB,EAAe,MAAM,gCAAgC,CAAA;AAE9E,OAAO,EAGH,UAAU,EACV,KAAK,EACL,OAAO,EACP,oBAAoB,GACvB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE7E,SAAS,UAAU,CAAC,GAAG,IAAI;IACvB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzC,CAAC;AAED,2CAA2C;AAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAClC,eAAe,CAClB,CAAC,OAAO,EAA0B,CAAA;AAInC,SAAS,gCAAgC,CAAC,WAAmB;IACzD,OAAO,kBAAkB,CAAC,IAAI,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,eAAe,CAAC,IAAI,CAAC,CACjD,CAAA;AACL,CAAC;AAID,SAAS,eAAe,CAAC,WAAwB;IAC7C,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAChE,MAAM,iBAAiB,GAAgB,EAAE,GAAG,WAAW,EAAE,CAAA;IAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAElD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxC,iBAAiB,CAAC,iBAAiB,CAAC;gBAChC,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;QAC7C,CAAC;IACL,CAAC;IACD,OAAO,iBAAiB,CAAA;AAC5B,CAAC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE;IACjB,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;AACnB,CAAC,CAAA;AACD,MAAM,UAAU,YAAY,CAAC,EAAE,UAAU,GAAG,EAAW,EAAE;IACrD,MAAM,QAAQ,GAAG,oBAAoB,CACjC,OAAO,EACP,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACd,CAAA;IACD,MAAM,WAAW,GAAG,CAChB,gBACI,uBAAuB,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAEtD,wBAAwB,QACxB,MAAM,UAFF,mBAAmB,CAGzB,CACL,CAAA;IACD,MAAM,KAAK,GAAG,CACV,gBACI,uBAAuB,EAAE;YACrB,MAAM,EAAE,cAAc,CAClB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAC9C;SACJ,EACD,wBAAwB,QAExB,MAAM,UADF,OAAO,CAEb,CACL,CAAA;IACD,kBAAkB;IAClB,uDAAuD;IACvD,eAAe;IACf,aAAa;IACb,4BAA4B;IAC5B,sBAAsB;IACtB,cAAc;IACd,QAAQ;IACR,IAAI;IACJ,OAAO,CACH,8BACK,WAAW,EACX,KAAK,EACN,gBACI,uBAAuB,EAAE;oBACrB,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;iBACtC,EAED,wBAAwB,QACxB,MAAM,UAFF,kBAAkB,CAGxB,IACH,CACN,CAAA;AACL,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC,SAAS,qBAAqB,CAG1E,EACI,SAAS,EACT,QAAQ,EAAE,eAAe,EACzB,GAAG,IAAI,EAOqC,EAChD,GAAG;IAEH,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,iBAAiB,GAAG,oBAAoB,CAC1C,QAAQ,EACR,GAAG,EAAE;QACD,sDAAsD;QACtD,MAAM,UAAU,GAAG,gCAAgC,CAC/C,MAAM,CAAC,UAAU,CACpB,CAAA;QACD,OAAO,UAAU,CAAA;IACrB,CAAC,EACD,GAAG,EAAE;QACD,iCAAiC;QAEjC,OAAO,EAAE,CAAA;IACb,CAAC,CACJ,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACvB,MAAM,cAAc,GAAG,eAAe,CAAC,eAAe,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,EAGhB,CAAA;QACD,KAAK,IAAI,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;YAClD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,SAAQ;YACZ,CAAC;YACD,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,cAAc,EAAE,CAAC;gBAC5D,SAAQ;YACZ,CAAC;YAED,IAAI,SAAS,GAAG,UAAU,CACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,IAAI,iBAAiB,EACrD,YAAY,cAAc,EAAE,CAC/B,CAAA;YACD,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;QAC/D,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1D,OAAO,CACH,cAAmB,SAAS,EAAE,SAAS,YAEnC,KAAC,SAAS,IACN,GAAG,EAAE,GAAG;oBAER,iCAAiC;oBACjC,QAAQ,EAAE,EAAE,GAAG,OAAO,KAIlB,IAAI,EACR,OAAO,EAAE,OAAc,IAPlB,OAAO,CAQd,IAZI,OAAO,CAaX,CACT,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAA;IAE9C,OAAO,KAAK,CAAA;AAChB,CAAC,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,EAAE;IAC1B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC3C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAC/D,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
// https:https://app.framerstatic.com/chunk-73TYJ7YB.js
|
|
2
|
+
// https :https://app.framerstatic.com/chunk-73TYJ7YB.js
|
|
3
3
|
import { createContext, } from 'react';
|
|
4
4
|
import { createContext as createContext2, } from 'react';
|
|
5
5
|
import { createContext as createContext3, } from 'react';
|
|
@@ -9076,7 +9076,7 @@ var cancelSync = stepsOrder.reduce((acc, key7,) => {
|
|
|
9076
9076
|
return acc;
|
|
9077
9077
|
}, {},);
|
|
9078
9078
|
|
|
9079
|
-
// https:https://app.framerstatic.com/framer.Q2DHSUSM.js
|
|
9079
|
+
// https :https://app.framerstatic.com/framer.Q2DHSUSM.js
|
|
9080
9080
|
import { Component as Component2, } from 'react';
|
|
9081
9081
|
import React12 from 'react';
|
|
9082
9082
|
import { jsx as _jsx5, } from 'react/jsx-runtime';
|
package/package.json
CHANGED
package/src/cli.test.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import tmp from 'tmp'
|
|
2
2
|
import path from 'path'
|
|
3
3
|
import { test, expect } from 'vitest'
|
|
4
|
-
import { bundle, extractTokenInfo } from './exporter.js'
|
|
4
|
+
import { bundle, componentCamelCase, extractTokenInfo } from './exporter.js'
|
|
5
|
+
|
|
6
|
+
test('componentCamelCase', () => {
|
|
7
|
+
expect(componentCamelCase('logo-ticker')).toMatchInlineSnapshot(`"LogoTickerFramerComponent"`)
|
|
8
|
+
expect(componentCamelCase('Logo-Ticker')).toMatchInlineSnapshot(`"LogoTickerFramerComponent"`)
|
|
9
|
+
expect(componentCamelCase('logo')).toMatchInlineSnapshot(`"LogoFramerComponent"`)
|
|
10
|
+
expect(componentCamelCase('nav')).toMatchInlineSnapshot(`"NavFramerComponent"`)
|
|
11
|
+
expect(componentCamelCase('framer_nav')).toMatchInlineSnapshot(`"FramerNavFramerComponent"`)
|
|
12
|
+
})
|
|
5
13
|
|
|
6
14
|
test(
|
|
7
15
|
'extractTokenInfo',
|
package/src/css.ts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import dedent from 'dedent'
|
|
2
|
+
import { ComponentFont } from './framer.js'
|
|
3
|
+
|
|
4
|
+
export const breakpointSizes = {
|
|
5
|
+
base: 0,
|
|
6
|
+
sm: 320,
|
|
7
|
+
md: 768,
|
|
8
|
+
lg: 960,
|
|
9
|
+
xl: 1200,
|
|
10
|
+
'2xl': 1536,
|
|
11
|
+
} as const
|
|
12
|
+
|
|
13
|
+
function deduplicateByKey<T>(arr: T[], key: (k: T) => string): T[] {
|
|
14
|
+
let map = new Map()
|
|
15
|
+
for (let item of arr) {
|
|
16
|
+
let value = key(item)
|
|
17
|
+
if (map.has(value)) {
|
|
18
|
+
continue
|
|
19
|
+
}
|
|
20
|
+
map.set(value, item)
|
|
21
|
+
}
|
|
22
|
+
return Array.from(map.values())
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type ComponentFontBundle = {
|
|
26
|
+
/**
|
|
27
|
+
* This flag specifies whether the font bundle includes the specific font
|
|
28
|
+
* weights of Framer’s Inter font that the component uses. New smart
|
|
29
|
+
* components do that (which means we can emit CSS only for Inter fonts that
|
|
30
|
+
* are actually used); older smart components don’t (which means some places
|
|
31
|
+
* will emit CSS for all Inter fonts if this flag is not set).
|
|
32
|
+
* https://www.notion.so/framer/RFC-ComponentFont-v2-d5fd3e822fb049ffb6971554ab0e4e42
|
|
33
|
+
*/
|
|
34
|
+
explicitInter: boolean
|
|
35
|
+
fonts: ComponentFont[]
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function getFontsStyles(_fontsDefs: ComponentFontBundle[]) {
|
|
39
|
+
let fontsDefs = _fontsDefs?.flatMap((x) => x.fonts)
|
|
40
|
+
if (!fontsDefs?.length) {
|
|
41
|
+
return ''
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
const allFonts = deduplicateByKey(fontsDefs, (x) => x?.url).filter(
|
|
46
|
+
(x) => x.url,
|
|
47
|
+
)
|
|
48
|
+
// console.log('fontsDefs', JSON.stringify(allFonts, null, 2))
|
|
49
|
+
|
|
50
|
+
// console.log(JSON.stringify(fonts, null, 2))
|
|
51
|
+
let str = allFonts
|
|
52
|
+
.map((x) => {
|
|
53
|
+
let str = `/* From ${x.source} */\n`
|
|
54
|
+
str += dedent`
|
|
55
|
+
@font-face {
|
|
56
|
+
font-family: '${x.family}';
|
|
57
|
+
src: url(${x.url});\n`
|
|
58
|
+
if (x.style) {
|
|
59
|
+
str += ` font-style: ${x.style};\n`
|
|
60
|
+
}
|
|
61
|
+
if (x.weight) {
|
|
62
|
+
str += ` font-weight: ${x.weight};\n`
|
|
63
|
+
}
|
|
64
|
+
if (x.unicodeRange) {
|
|
65
|
+
str += ` unicodeRange: ${x.unicodeRange};\n`
|
|
66
|
+
}
|
|
67
|
+
str += `}\n`
|
|
68
|
+
return str
|
|
69
|
+
})
|
|
70
|
+
.join('\n')
|
|
71
|
+
|
|
72
|
+
return '\n' + str + '\n'
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const breakpointsStyles = /* css */ `
|
|
76
|
+
/* Base */
|
|
77
|
+
@media (min-width: ${breakpointSizes.base}px) and (max-width: ${
|
|
78
|
+
breakpointSizes.sm - 1
|
|
79
|
+
}px) {
|
|
80
|
+
.unframer-hidden.unframer-base {
|
|
81
|
+
display: contents;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Small */
|
|
86
|
+
@media (min-width: ${breakpointSizes.sm}px) and (max-width: ${
|
|
87
|
+
breakpointSizes.md - 1
|
|
88
|
+
}px) {
|
|
89
|
+
.unframer-hidden.unframer-sm {
|
|
90
|
+
display: contents;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Medium */
|
|
95
|
+
@media (min-width: ${breakpointSizes.md}px) and (max-width: ${
|
|
96
|
+
breakpointSizes.lg - 1
|
|
97
|
+
}px) {
|
|
98
|
+
.unframer-hidden.unframer-md {
|
|
99
|
+
display: contents;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Large */
|
|
104
|
+
@media (min-width: ${breakpointSizes.lg}px) and (max-width: ${
|
|
105
|
+
breakpointSizes.xl - 1
|
|
106
|
+
}px) {
|
|
107
|
+
.unframer-hidden.unframer-lg {
|
|
108
|
+
display: contents;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* Extra Large */
|
|
113
|
+
@media (min-width: ${breakpointSizes.xl}px) and (max-width: ${
|
|
114
|
+
breakpointSizes['2xl'] - 1
|
|
115
|
+
}px) {
|
|
116
|
+
.unframer-hidden.unframer-xl {
|
|
117
|
+
display: contents;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* 2 Extra Large */
|
|
122
|
+
@media (min-width: ${breakpointSizes['2xl']}px) {
|
|
123
|
+
.unframer-hidden.unframer-2xl {
|
|
124
|
+
display: contents;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.unframer-hidden {
|
|
129
|
+
display: none;
|
|
130
|
+
}
|
|
131
|
+
`
|
package/src/exporter.ts
CHANGED
|
@@ -7,14 +7,18 @@ import pico from 'picocolors'
|
|
|
7
7
|
import { polyfillNode } from 'esbuild-plugin-polyfill-node'
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
+
ComponentFont,
|
|
10
11
|
ControlDescription,
|
|
11
12
|
ControlType,
|
|
12
13
|
PropertyControls,
|
|
14
|
+
combinedCSSRules,
|
|
13
15
|
} from '../framer-fixed/dist/framer.js'
|
|
14
16
|
import { fetch as _fetch } from 'native-fetch'
|
|
15
17
|
import fs from 'fs'
|
|
16
18
|
import path from 'path'
|
|
17
19
|
import { execSync } from 'child_process'
|
|
20
|
+
import { ComponentFontBundle, breakpointsStyles, getFontsStyles } from './css.js'
|
|
21
|
+
import dedent from 'dedent'
|
|
18
22
|
|
|
19
23
|
const __dirname = path.dirname(new URL(import.meta.url).pathname)
|
|
20
24
|
const prefix = '[unframer]'
|
|
@@ -142,7 +146,10 @@ export async function bundle({
|
|
|
142
146
|
const lines = findRelativeLinks(codeNew)
|
|
143
147
|
if (lines.length) {
|
|
144
148
|
logger.error(
|
|
145
|
-
`found broken links for ${path.relative(
|
|
149
|
+
`found broken links for ${path.relative(
|
|
150
|
+
out,
|
|
151
|
+
file.path,
|
|
152
|
+
)}, don't use relative links in Framer components`,
|
|
146
153
|
)
|
|
147
154
|
lines.forEach((line) => {
|
|
148
155
|
logger.error(`${path.resolve(out, file.path)}:${line + 1}`)
|
|
@@ -155,6 +162,7 @@ export async function bundle({
|
|
|
155
162
|
logger.log(`writing`, path.relative(out, file.path))
|
|
156
163
|
fs.writeFileSync(resultPathAbs, codeNew, 'utf-8')
|
|
157
164
|
}
|
|
165
|
+
let allFonts = [] as ComponentFontBundle[]
|
|
158
166
|
for (let file of result.outputFiles!) {
|
|
159
167
|
const name = path.basename(file.path).replace(/\.js$/, '')
|
|
160
168
|
const resultPathAbs = path.resolve(out, file.path)
|
|
@@ -162,25 +170,36 @@ export async function bundle({
|
|
|
162
170
|
continue
|
|
163
171
|
}
|
|
164
172
|
logger.log(`extracting types for ${name}`)
|
|
165
|
-
const
|
|
173
|
+
const { propertyControls, fonts } = await extractPropControlsUnsafe(
|
|
166
174
|
resultPathAbs,
|
|
167
175
|
name,
|
|
168
176
|
)
|
|
169
|
-
if (!
|
|
177
|
+
if (!propertyControls) {
|
|
170
178
|
logger.log(`no property controls found for ${name}`)
|
|
171
179
|
}
|
|
172
|
-
|
|
180
|
+
|
|
181
|
+
allFonts.push(...(fonts || []))
|
|
182
|
+
const types = propControlsToType(propertyControls!, name)
|
|
173
183
|
// name = 'framer-' + name
|
|
174
184
|
// logger.log('name', name)
|
|
175
185
|
|
|
176
186
|
fs.writeFileSync(path.resolve(out, `${name}.d.ts`), types)
|
|
177
187
|
}
|
|
178
188
|
|
|
189
|
+
const cssString =
|
|
190
|
+
breakpointsStyles +
|
|
191
|
+
'\n' +
|
|
192
|
+
(combinedCSSRules.map(x => x?.startsWith(' ') ? dedent(x) : x).join('\n')) +
|
|
193
|
+
getFontsStyles(allFonts)
|
|
194
|
+
|
|
195
|
+
fs.writeFileSync(path.resolve(out, 'styles.css'), cssString, 'utf-8')
|
|
196
|
+
|
|
179
197
|
const outFiles = result.outputFiles
|
|
180
198
|
.map((x) => path.resolve(out, x.path))
|
|
181
199
|
.concat([
|
|
182
200
|
path.resolve(out, 'meta.json'),
|
|
183
201
|
path.resolve(out, 'tokens.css'),
|
|
202
|
+
path.resolve(out, 'styles.css'),
|
|
184
203
|
])
|
|
185
204
|
.concat(
|
|
186
205
|
result.outputFiles.map((x) =>
|
|
@@ -416,7 +435,13 @@ function getTokensCss({
|
|
|
416
435
|
return tokensCss
|
|
417
436
|
}
|
|
418
437
|
|
|
419
|
-
export async function extractPropControlsUnsafe(
|
|
438
|
+
export async function extractPropControlsUnsafe(
|
|
439
|
+
filename,
|
|
440
|
+
name,
|
|
441
|
+
): Promise<{
|
|
442
|
+
propertyControls?: PropertyControls
|
|
443
|
+
fonts?: ComponentFontBundle[]
|
|
444
|
+
}> {
|
|
420
445
|
const packageJson = path.resolve(path.dirname(filename), 'package.json')
|
|
421
446
|
try {
|
|
422
447
|
fs.writeFileSync(
|
|
@@ -425,7 +450,7 @@ export async function extractPropControlsUnsafe(filename, name) {
|
|
|
425
450
|
'utf-8',
|
|
426
451
|
)
|
|
427
452
|
const delimiter = '__delimiter__'
|
|
428
|
-
let propCode = `JSON.stringify(x.default?.propertyControls ||
|
|
453
|
+
let propCode = `JSON.stringify({propertyControls: x.default?.propertyControls, fonts: x?.default?.fonts } || {}, null, 2)`
|
|
429
454
|
// propCode = `x.default`
|
|
430
455
|
const code = `import(${JSON.stringify(
|
|
431
456
|
filename,
|
|
@@ -440,6 +465,7 @@ export async function extractPropControlsUnsafe(filename, name) {
|
|
|
440
465
|
return safeJsonParse(stdout)
|
|
441
466
|
} catch (e: any) {
|
|
442
467
|
logger.error(`Cannot get property controls for ${name}`, e.stack)
|
|
468
|
+
return {}
|
|
443
469
|
} finally {
|
|
444
470
|
fs.rmSync(packageJson)
|
|
445
471
|
}
|
|
@@ -454,7 +480,7 @@ function safeJsonParse(text) {
|
|
|
454
480
|
}
|
|
455
481
|
}
|
|
456
482
|
|
|
457
|
-
export function propControlsToType(controls
|
|
483
|
+
export function propControlsToType(controls: PropertyControls, fileName) {
|
|
458
484
|
try {
|
|
459
485
|
const types = Object.entries(controls || ({} as PropertyControls))
|
|
460
486
|
.map(([key, value]) => {
|
|
@@ -518,6 +544,8 @@ export function propControlsToType(controls?: PropertyControls) {
|
|
|
518
544
|
.filter(Boolean)
|
|
519
545
|
.join('\n')
|
|
520
546
|
|
|
547
|
+
const componentName = componentCamelCase(fileName?.replace(/\.js$/, ''))
|
|
548
|
+
|
|
521
549
|
const defaultPropsTypes =
|
|
522
550
|
[
|
|
523
551
|
'children?: React.ReactNode',
|
|
@@ -534,10 +562,10 @@ export function propControlsToType(controls?: PropertyControls) {
|
|
|
534
562
|
t += 'import * as React from "react"\n\n'
|
|
535
563
|
t += 'import { UnframerBreakpoint } from "unframer"\n\n'
|
|
536
564
|
t += `export interface Props {\n${defaultPropsTypes}${types}\n}\n\n`
|
|
537
|
-
t += `const
|
|
565
|
+
t += `const ${componentName} = (props: Props) => any\n\n`
|
|
538
566
|
t += `type VariantsMap = Partial<Record<UnframerBreakpoint, Props['variant']>> & { base: Props['variant'] }\n\n`
|
|
539
|
-
t +=
|
|
540
|
-
t += `export default
|
|
567
|
+
t += `${componentName}.Responsive = (props: Omit<Props, 'variant'> & {variants: VariantsMap}) => any\n\n`
|
|
568
|
+
t += `export default ${componentName}\n\n`
|
|
541
569
|
|
|
542
570
|
return t
|
|
543
571
|
} catch (e: any) {
|
|
@@ -816,17 +844,6 @@ function retryTwice<F extends Function>(fn: Function): Function {
|
|
|
816
844
|
}
|
|
817
845
|
}
|
|
818
846
|
|
|
819
|
-
export function deduplicateByKey<T>(key: keyof T, arr: (T | undefined)[]) {
|
|
820
|
-
const map = new Map()
|
|
821
|
-
for (let item of arr) {
|
|
822
|
-
if (!item) {
|
|
823
|
-
continue
|
|
824
|
-
}
|
|
825
|
-
map.set(item?.[key], item)
|
|
826
|
-
}
|
|
827
|
-
return Array.from(map.values())
|
|
828
|
-
}
|
|
829
|
-
|
|
830
847
|
type TokenInfo = {
|
|
831
848
|
tokenName: string
|
|
832
849
|
metadata?: Record<string, any>
|
|
@@ -913,3 +930,14 @@ function groupBy<T>(arr: T[], key: (x: T) => string) {
|
|
|
913
930
|
}
|
|
914
931
|
return map
|
|
915
932
|
}
|
|
933
|
+
|
|
934
|
+
export function componentCamelCase(str: string) {
|
|
935
|
+
if (!str) {
|
|
936
|
+
return 'FramerComponent'
|
|
937
|
+
}
|
|
938
|
+
str = str.replace(/-([\w])/g, (g) => g[1].toUpperCase())
|
|
939
|
+
str = str.replace(/_([a-z])/g, (g) => g[1].toUpperCase())
|
|
940
|
+
str = str[0].toUpperCase() + str.slice(1)
|
|
941
|
+
str = str + 'FramerComponent'
|
|
942
|
+
return str
|
|
943
|
+
}
|
package/src/react.tsx
CHANGED
|
@@ -9,61 +9,12 @@ import {
|
|
|
9
9
|
useMemo,
|
|
10
10
|
useSyncExternalStore,
|
|
11
11
|
} from 'react'
|
|
12
|
-
|
|
13
|
-
function getFonts(component) {
|
|
14
|
-
const fonts = component.fonts
|
|
15
|
-
return fonts || []
|
|
16
|
-
}
|
|
12
|
+
import { breakpointSizes, breakpointsStyles, getFontsStyles } from './css.js'
|
|
17
13
|
|
|
18
14
|
function classNames(...args) {
|
|
19
15
|
return args.filter(Boolean).join(' ')
|
|
20
16
|
}
|
|
21
17
|
|
|
22
|
-
function deduplicateByKey<T>(arr: T[], key: (k: T) => string) {
|
|
23
|
-
let map = new Map()
|
|
24
|
-
for (let item of arr) {
|
|
25
|
-
let value = item[key(item)]
|
|
26
|
-
if (map.has(value)) {
|
|
27
|
-
continue
|
|
28
|
-
}
|
|
29
|
-
map.set(value, item)
|
|
30
|
-
}
|
|
31
|
-
return Array.from(map.values())
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function getFontsStyles(Components) {
|
|
35
|
-
const allFonts = deduplicateByKey<{ family; url; style; weight }>(
|
|
36
|
-
Components.map(getFonts).flat(),
|
|
37
|
-
(x) => x.url,
|
|
38
|
-
).filter((x) => x.url)
|
|
39
|
-
|
|
40
|
-
// console.log(JSON.stringify(fonts, null, 2))
|
|
41
|
-
let str = allFonts
|
|
42
|
-
.map((x) => {
|
|
43
|
-
let str = `@font-face { font-family: '${x.family}'; src: url(${x.url});`
|
|
44
|
-
if (x.style) {
|
|
45
|
-
str += ` font-style: ${x.style};`
|
|
46
|
-
}
|
|
47
|
-
if (x.weight) {
|
|
48
|
-
str += ` font-weight: ${x.weight};`
|
|
49
|
-
}
|
|
50
|
-
str += ` }`
|
|
51
|
-
return str
|
|
52
|
-
})
|
|
53
|
-
.join('\n')
|
|
54
|
-
|
|
55
|
-
return str
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const breakpointSizes = {
|
|
59
|
-
base: 0,
|
|
60
|
-
sm: 320,
|
|
61
|
-
md: 768,
|
|
62
|
-
lg: 960,
|
|
63
|
-
xl: 1200,
|
|
64
|
-
'2xl': 1536,
|
|
65
|
-
} as const
|
|
66
|
-
|
|
67
18
|
// breakpoints from the higher to the lower
|
|
68
19
|
const defaultBreakpoints = Object.keys(
|
|
69
20
|
breakpointSizes,
|
|
@@ -77,63 +28,6 @@ function getBreakpointNameFromWindowWidth(windowWidth: number) {
|
|
|
77
28
|
)
|
|
78
29
|
}
|
|
79
30
|
|
|
80
|
-
const breakpointsStyles = /* css */ `
|
|
81
|
-
/* Base */
|
|
82
|
-
@media (min-width: ${breakpointSizes.base}px) and (max-width: ${
|
|
83
|
-
breakpointSizes.sm - 1
|
|
84
|
-
}px) {
|
|
85
|
-
.unframer-hidden.unframer-base {
|
|
86
|
-
display: contents;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/* Small */
|
|
91
|
-
@media (min-width: ${breakpointSizes.sm}px) and (max-width: ${
|
|
92
|
-
breakpointSizes.md - 1
|
|
93
|
-
}px) {
|
|
94
|
-
.unframer-hidden.unframer-sm {
|
|
95
|
-
display: contents;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/* Medium */
|
|
100
|
-
@media (min-width: ${breakpointSizes.md}px) and (max-width: ${
|
|
101
|
-
breakpointSizes.lg - 1
|
|
102
|
-
}px) {
|
|
103
|
-
.unframer-hidden.unframer-md {
|
|
104
|
-
display: contents;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/* Large */
|
|
109
|
-
@media (min-width: ${breakpointSizes.lg}px) and (max-width: ${
|
|
110
|
-
breakpointSizes.xl - 1
|
|
111
|
-
}px) {
|
|
112
|
-
.unframer-hidden.unframer-lg {
|
|
113
|
-
display: contents;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/* Extra Large */
|
|
118
|
-
@media (min-width: ${breakpointSizes.xl}px) and (max-width: ${
|
|
119
|
-
breakpointSizes['2xl'] - 1
|
|
120
|
-
}px) {
|
|
121
|
-
.unframer-hidden.unframer-xl {
|
|
122
|
-
display: contents;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/* 2 Extra Large */
|
|
127
|
-
@media (min-width: ${breakpointSizes['2xl']}px) {
|
|
128
|
-
.unframer-hidden.unframer-2xl {
|
|
129
|
-
display: contents;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.unframer-hidden {
|
|
134
|
-
display: none;
|
|
135
|
-
}
|
|
136
|
-
`
|
|
137
31
|
type Breakpoints = Record<UnframerBreakpoint, string>
|
|
138
32
|
|
|
139
33
|
function fillBreakpoints(breakpoints: Breakpoints): Breakpoints {
|
|
@@ -171,7 +65,11 @@ export function FramerStyles({ Components = [] as any[] }): any {
|
|
|
171
65
|
)
|
|
172
66
|
const fonts = (
|
|
173
67
|
<style
|
|
174
|
-
dangerouslySetInnerHTML={{
|
|
68
|
+
dangerouslySetInnerHTML={{
|
|
69
|
+
__html: getFontsStyles(
|
|
70
|
+
Components.map((x) => x.fonts || []).flat(),
|
|
71
|
+
),
|
|
72
|
+
}}
|
|
175
73
|
suppressHydrationWarning
|
|
176
74
|
key='fonts'
|
|
177
75
|
hidden
|