unframer 2.11.2 → 2.13.0

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