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 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
- - Instead of using links to your Framer pages you should make links variables and set them when rendering the component. This is because links to Framer pages are not supported in `unframer`.
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
@@ -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;AAExD,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"}
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
@@ -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"}
@@ -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<any>;
16
- export declare function propControlsToType(controls?: PropertyControls): string;
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
@@ -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,EAGH,gBAAgB,EACnB,MAAM,gCAAgC,CAAA;AAQvC,eAAO,MAAM,MAAM;;;CAOlB,CAAA;AAYD,wBAAsB,MAAM,CAAC,EACzB,GAAG,EAAE,GAAQ,EACb,KAAa,EACb,UAAyC,EACzC,MAA6C,GAChD;;;;;CAAA,iBA4NA;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,YAY7C;AAED,wBAAsB,uBAAuB,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,mDAmCvD;AAmGD,wBAAsB,yBAAyB,CAAC,QAAQ,KAAA,EAAE,IAAI,KAAA,gBA2B7D;AAWD,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,UA0F7D;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,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,SASvE;AAED,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"}
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 propControls = await extractPropControlsUnsafe(resultPathAbs, name);
136
- if (!propControls) {
138
+ const { propertyControls, fonts } = await extractPropControlsUnsafe(resultPathAbs, name);
139
+ if (!propertyControls) {
137
140
  logger.log(`no property controls found for ${name}`);
138
141
  }
139
- const types = propControlsToType(propControls);
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 || null, null, 2)`;
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 Component = (props: Props) => any\n\n`;
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 += `Component.Responsive = (props: Omit<Props, 'variant'> & {variants: VariantsMap}) => any\n\n`;
443
- t += `export default Component\n\n`;
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
@@ -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
- 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
- };
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" | "2xl", any>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,aAAa,EAKhB,MAAM,OAAO,CAAA;AA+Cd,QAAA,MAAM,eAAe;;;;;;;CAOX,CAAA;AAOV,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,eAAe,CAAA;AAsF7D,wBAAgB,YAAY,CAAC,EAAE,UAAwB,EAAE;;CAAA,GAAG,GAAG,CA6C9D;AAED,eAAO,MAAM,qBAAqB;;kBACM,GAAG;;;;;cAAH,GAAG;;uDA2EzC,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
- function getFonts(component) {
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: { __html: getFontsStyles(Components) }, suppressHydrationWarning: true, hidden: true }, 'fonts'));
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":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unframer",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "repository": "https://github.com/remorses/unframer",
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(out, file.path)}, don't use relative links in Framer components`,
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 propControls = await extractPropControlsUnsafe(
173
+ const { propertyControls, fonts } = await extractPropControlsUnsafe(
166
174
  resultPathAbs,
167
175
  name,
168
176
  )
169
- if (!propControls) {
177
+ if (!propertyControls) {
170
178
  logger.log(`no property controls found for ${name}`)
171
179
  }
172
- const types = propControlsToType(propControls)
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(filename, name) {
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 || null, null, 2)`
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?: PropertyControls) {
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 Component = (props: Props) => any\n\n`
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 += `Component.Responsive = (props: Omit<Props, 'variant'> & {variants: VariantsMap}) => any\n\n`
540
- t += `export default Component\n\n`
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={{ __html: getFontsStyles(Components) }}
68
+ dangerouslySetInnerHTML={{
69
+ __html: getFontsStyles(
70
+ Components.map((x) => x.fonts || []).flat(),
71
+ ),
72
+ }}
175
73
  suppressHydrationWarning
176
74
  key='fonts'
177
75
  hidden