@knapsack/renderer-react 4.69.9--canary.011c229.0 → 4.69.9

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/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ # v4.69.9 (Sat Sep 14 2024)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - refactor Renderer clients [#4768](https://github.com/knapsack-labs/app-monorepo/pull/4768) ([@EvanLovely](https://github.com/EvanLovely))
6
+
7
+ #### 🏠 Internal
8
+
9
+ - update template stage ui [#4763](https://github.com/knapsack-labs/app-monorepo/pull/4763) ([@GormanDesign](https://github.com/GormanDesign))
10
+ - add spacing under form feedback banner [#4747](https://github.com/knapsack-labs/app-monorepo/pull/4747) ([@GormanDesign](https://github.com/GormanDesign))
11
+
12
+ #### Authors: 2
13
+
14
+ - Evan Lovely ([@EvanLovely](https://github.com/EvanLovely))
15
+ - Matt Gorman ([@GormanDesign](https://github.com/GormanDesign))
16
+
17
+ ---
18
+
1
19
  # v4.69.8 (Thu Sep 12 2024)
2
20
 
3
21
  #### 🐛 Bug Fix
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,82 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+
25
+ // src/client/init.tsx
26
+ var import_react = __toESM(require("react"));
27
+ var import_client2 = __toESM(require("react-dom/client"));
28
+
29
+ // src/client/ks-utils.ts
30
+ var import_client = require("@knapsack/renderer-webpack-base/client");
31
+
32
+ // src/types.ts
33
+ var rendererMetaScriptTagId = "ks-react-meta";
34
+
35
+ // src/client/ks-utils.ts
36
+ var {
37
+ allAvailableImports,
38
+ getAllImports,
39
+ getExtraImport,
40
+ getImport,
41
+ getImports,
42
+ getPatternImport,
43
+ importedModules,
44
+ meta,
45
+ rendererMeta,
46
+ rendererMethods
47
+ } = (0, import_client.getKsRendererClientGlobal)({
48
+ rendererMetaScriptTagId
49
+ });
50
+
51
+ // src/client/init.tsx
52
+ var import_jsx_runtime = require("react/jsx-runtime");
53
+ async function init() {
54
+ const { imports, disableReactStrictMode, demoWrapperProps } = rendererMeta;
55
+ const all = await getAllImports({
56
+ patterns: imports.filter((i) => i.type !== "extra"),
57
+ extras: imports.filter((i) => i.type === "extra").map(({ importInfo }) => ({ name: importInfo.name }))
58
+ });
59
+ const root = document.getElementById("render-root");
60
+ if (!root) {
61
+ throw new Error("No root element found");
62
+ }
63
+ const { DemoWrapper, ErrorCatcher, ...demoComponents } = all;
64
+ const DemoApp = rendererMethods.getDemoApp(demoComponents);
65
+ const app = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ErrorCatcher, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DemoWrapper, { ...demoWrapperProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DemoApp, {}) }) });
66
+ import_client2.default.createRoot(root).render(
67
+ disableReactStrictMode ? app : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.default.StrictMode, { children: app })
68
+ );
69
+ }
70
+ __name(init, "init");
71
+ try {
72
+ init();
73
+ } catch (e) {
74
+ console.error(e);
75
+ const errorElement = document.createElement("div");
76
+ errorElement.innerHTML = `
77
+ <h1>Error</h1>
78
+ <p>${e.message}</p>
79
+ `;
80
+ document.body.appendChild(errorElement);
81
+ }
82
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/client/init.tsx","../../src/client/ks-utils.ts","../../src/types.ts"],"sourcesContent":["/// <reference lib=\"dom\" />\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { rendererMeta, rendererMethods, getAllImports } from './ks-utils';\n\nasync function init() {\n const { imports, disableReactStrictMode, demoWrapperProps } = rendererMeta;\n const all = await getAllImports({\n patterns: imports.filter((i) => i.type !== 'extra'),\n extras: imports\n .filter((i) => i.type === 'extra')\n .map(({ importInfo }) => ({ name: importInfo.name })),\n });\n\n const root = document.getElementById('render-root');\n if (!root) {\n throw new Error('No root element found');\n }\n const { DemoWrapper, ErrorCatcher, ...demoComponents } = all;\n const DemoApp = rendererMethods.getDemoApp(demoComponents);\n const app = (\n <ErrorCatcher>\n <DemoWrapper {...demoWrapperProps}>\n <DemoApp />\n </DemoWrapper>\n </ErrorCatcher>\n );\n\n ReactDOM.createRoot(root).render(\n disableReactStrictMode ? app : <React.StrictMode>{app}</React.StrictMode>,\n );\n}\n\ntry {\n init();\n} catch (e) {\n console.error(e);\n // create html element with error message\n const errorElement = document.createElement('div');\n errorElement.innerHTML = `\n <h1>Error</h1>\n <p>${e.message}</p>\n `;\n document.body.appendChild(errorElement);\n}\n","import { getKsRendererClientGlobal } from '@knapsack/renderer-webpack-base/client';\nimport {\n rendererMetaScriptTagId,\n type KsReactMeta,\n type Component,\n type RendererMethods,\n} from '../types';\n\nexport const {\n allAvailableImports,\n getAllImports,\n getExtraImport,\n getImport,\n getImports,\n getPatternImport,\n importedModules,\n meta,\n rendererMeta,\n rendererMethods,\n} = getKsRendererClientGlobal<Component, KsReactMeta, RendererMethods>({\n rendererMetaScriptTagId,\n});\n","import type { Demo, Except } from '@knapsack/types';\nimport type { ComponentType } from 'react';\nimport type {\n KsJsImport,\n KsJsImportInfo,\n} from '@knapsack/renderer-webpack-base/client';\nimport type { KnapsackRenderParams } from '@knapsack/app/types';\n\nexport type Component = ComponentType<Record<string, unknown>>;\n\nexport type DemoWrapperProps = {\n children: React.ReactNode;\n patternsUsed: {\n patternId: string;\n templateId: string;\n demoId?: string;\n }[];\n} & Except<KnapsackRenderParams, 'patternManifest'>;\n\n/**\n * Found as JSON in HTML `#ks-react-meta`\n */\nexport type KsReactMeta = {\n imports: KsJsImport[];\n moduleImports: {\n [path: string]: KsJsImportInfo[];\n };\n disableReactStrictMode: boolean;\n demo: Demo;\n patternId: string;\n templateId: string;\n demoWrapperProps: Except<DemoWrapperProps, 'children'>;\n};\n\nexport const rendererMetaScriptTagId = 'ks-react-meta';\n\nexport type RendererMethods = {\n getDemoApp: (components: Record<string, Component>) => Component;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,mBAAkB;AAClB,IAAAA,iBAAqB;;;ACFrB,oBAA0C;;;ACkCnC,IAAM,0BAA0B;;;AD1BhC,IAAM;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,QAAI,yCAAmE;AAAA,EACrE;AACF,CAAC;;;ADEO;AAlBR,eAAe,OAAO;AACpB,QAAM,EAAE,SAAS,wBAAwB,iBAAiB,IAAI;AAC9D,QAAM,MAAM,MAAM,cAAc;AAAA,IAC9B,UAAU,QAAQ,OAAO,CAAC,MAAM,EAAE,SAAS,OAAO;AAAA,IAClD,QAAQ,QACL,OAAO,CAAC,MAAM,EAAE,SAAS,OAAO,EAChC,IAAI,CAAC,EAAE,WAAW,OAAO,EAAE,MAAM,WAAW,KAAK,EAAE;AAAA,EACxD,CAAC;AAED,QAAM,OAAO,SAAS,eAAe,aAAa;AAClD,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AACA,QAAM,EAAE,aAAa,cAAc,GAAG,eAAe,IAAI;AACzD,QAAM,UAAU,gBAAgB,WAAW,cAAc;AACzD,QAAM,MACJ,4CAAC,gBACC,sDAAC,eAAa,GAAG,kBACf,sDAAC,WAAQ,GACX,GACF;AAGF,iBAAAC,QAAS,WAAW,IAAI,EAAE;AAAA,IACxB,yBAAyB,MAAM,4CAAC,aAAAC,QAAM,YAAN,EAAkB,eAAI;AAAA,EACxD;AACF;AA1Be;AA4Bf,IAAI;AACF,OAAK;AACP,SAAS,GAAG;AACV,UAAQ,MAAM,CAAC;AAEf,QAAM,eAAe,SAAS,cAAc,KAAK;AACjD,eAAa,YAAY;AAAA;AAAA,SAElB,EAAE,OAAO;AAAA;AAEhB,WAAS,KAAK,YAAY,YAAY;AACxC;","names":["import_client","ReactDOM","React"]}
@@ -0,0 +1,90 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
+ var __esm = (fn, res) => function __init() {
5
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
6
+ };
7
+ var __commonJS = (cb, mod) => function __require() {
8
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
+ };
10
+
11
+ // ../../../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.43.8_@types+node@20.16.5__@swc+core@1.3.57_@swc+helpers_qewjfurrjspcqzwdqcz2r3oykm/node_modules/tsup/assets/esm_shims.js
12
+ var init_esm_shims = __esm({
13
+ "../../../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.43.8_@types+node@20.16.5__@swc+core@1.3.57_@swc+helpers_qewjfurrjspcqzwdqcz2r3oykm/node_modules/tsup/assets/esm_shims.js"() {
14
+ }
15
+ });
16
+
17
+ // src/types.ts
18
+ var rendererMetaScriptTagId;
19
+ var init_types = __esm({
20
+ "src/types.ts"() {
21
+ init_esm_shims();
22
+ rendererMetaScriptTagId = "ks-react-meta";
23
+ }
24
+ });
25
+
26
+ // src/client/ks-utils.ts
27
+ import { getKsRendererClientGlobal } from "@knapsack/renderer-webpack-base/client";
28
+ var allAvailableImports, getAllImports, getExtraImport, getImport, getImports, getPatternImport, importedModules, meta, rendererMeta, rendererMethods;
29
+ var init_ks_utils = __esm({
30
+ "src/client/ks-utils.ts"() {
31
+ init_esm_shims();
32
+ init_types();
33
+ ({
34
+ allAvailableImports,
35
+ getAllImports,
36
+ getExtraImport,
37
+ getImport,
38
+ getImports,
39
+ getPatternImport,
40
+ importedModules,
41
+ meta,
42
+ rendererMeta,
43
+ rendererMethods
44
+ } = getKsRendererClientGlobal({
45
+ rendererMetaScriptTagId
46
+ }));
47
+ }
48
+ });
49
+
50
+ // src/client/init.tsx
51
+ import React from "react";
52
+ import ReactDOM from "react-dom/client";
53
+ import { jsx } from "react/jsx-runtime";
54
+ var require_init = __commonJS({
55
+ "src/client/init.tsx"() {
56
+ init_esm_shims();
57
+ init_ks_utils();
58
+ async function init() {
59
+ const { imports, disableReactStrictMode, demoWrapperProps } = rendererMeta;
60
+ const all = await getAllImports({
61
+ patterns: imports.filter((i) => i.type !== "extra"),
62
+ extras: imports.filter((i) => i.type === "extra").map(({ importInfo }) => ({ name: importInfo.name }))
63
+ });
64
+ const root = document.getElementById("render-root");
65
+ if (!root) {
66
+ throw new Error("No root element found");
67
+ }
68
+ const { DemoWrapper, ErrorCatcher, ...demoComponents } = all;
69
+ const DemoApp = rendererMethods.getDemoApp(demoComponents);
70
+ const app = /* @__PURE__ */ jsx(ErrorCatcher, { children: /* @__PURE__ */ jsx(DemoWrapper, { ...demoWrapperProps, children: /* @__PURE__ */ jsx(DemoApp, {}) }) });
71
+ ReactDOM.createRoot(root).render(
72
+ disableReactStrictMode ? app : /* @__PURE__ */ jsx(React.StrictMode, { children: app })
73
+ );
74
+ }
75
+ __name(init, "init");
76
+ try {
77
+ init();
78
+ } catch (e) {
79
+ console.error(e);
80
+ const errorElement = document.createElement("div");
81
+ errorElement.innerHTML = `
82
+ <h1>Error</h1>
83
+ <p>${e.message}</p>
84
+ `;
85
+ document.body.appendChild(errorElement);
86
+ }
87
+ }
88
+ });
89
+ export default require_init();
90
+ //# sourceMappingURL=init.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.43.8_@types+node@20.16.5__@swc+core@1.3.57_@swc+helpers_qewjfurrjspcqzwdqcz2r3oykm/node_modules/tsup/assets/esm_shims.js","../../src/types.ts","../../src/client/ks-utils.ts","../../src/client/init.tsx"],"sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import type { Demo, Except } from '@knapsack/types';\nimport type { ComponentType } from 'react';\nimport type {\n KsJsImport,\n KsJsImportInfo,\n} from '@knapsack/renderer-webpack-base/client';\nimport type { KnapsackRenderParams } from '@knapsack/app/types';\n\nexport type Component = ComponentType<Record<string, unknown>>;\n\nexport type DemoWrapperProps = {\n children: React.ReactNode;\n patternsUsed: {\n patternId: string;\n templateId: string;\n demoId?: string;\n }[];\n} & Except<KnapsackRenderParams, 'patternManifest'>;\n\n/**\n * Found as JSON in HTML `#ks-react-meta`\n */\nexport type KsReactMeta = {\n imports: KsJsImport[];\n moduleImports: {\n [path: string]: KsJsImportInfo[];\n };\n disableReactStrictMode: boolean;\n demo: Demo;\n patternId: string;\n templateId: string;\n demoWrapperProps: Except<DemoWrapperProps, 'children'>;\n};\n\nexport const rendererMetaScriptTagId = 'ks-react-meta';\n\nexport type RendererMethods = {\n getDemoApp: (components: Record<string, Component>) => Component;\n};\n","import { getKsRendererClientGlobal } from '@knapsack/renderer-webpack-base/client';\nimport {\n rendererMetaScriptTagId,\n type KsReactMeta,\n type Component,\n type RendererMethods,\n} from '../types';\n\nexport const {\n allAvailableImports,\n getAllImports,\n getExtraImport,\n getImport,\n getImports,\n getPatternImport,\n importedModules,\n meta,\n rendererMeta,\n rendererMethods,\n} = getKsRendererClientGlobal<Component, KsReactMeta, RendererMethods>({\n rendererMetaScriptTagId,\n});\n","/// <reference lib=\"dom\" />\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { rendererMeta, rendererMethods, getAllImports } from './ks-utils';\n\nasync function init() {\n const { imports, disableReactStrictMode, demoWrapperProps } = rendererMeta;\n const all = await getAllImports({\n patterns: imports.filter((i) => i.type !== 'extra'),\n extras: imports\n .filter((i) => i.type === 'extra')\n .map(({ importInfo }) => ({ name: importInfo.name })),\n });\n\n const root = document.getElementById('render-root');\n if (!root) {\n throw new Error('No root element found');\n }\n const { DemoWrapper, ErrorCatcher, ...demoComponents } = all;\n const DemoApp = rendererMethods.getDemoApp(demoComponents);\n const app = (\n <ErrorCatcher>\n <DemoWrapper {...demoWrapperProps}>\n <DemoApp />\n </DemoWrapper>\n </ErrorCatcher>\n );\n\n ReactDOM.createRoot(root).render(\n disableReactStrictMode ? app : <React.StrictMode>{app}</React.StrictMode>,\n );\n}\n\ntry {\n init();\n} catch (e) {\n console.error(e);\n // create html element with error message\n const errorElement = document.createElement('div');\n errorElement.innerHTML = `\n <h1>Error</h1>\n <p>${e.message}</p>\n `;\n document.body.appendChild(errorElement);\n}\n"],"mappings":";;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAkCa;AAlCb;AAAA;AAAA;AAkCO,IAAM,0BAA0B;AAAA;AAAA;;;AClCvC,SAAS,iCAAiC;AAA1C,IASE,qBACA,eACA,gBACA,WACA,YACA,kBACA,iBACA,MACA,cACA;AAlBF;AAAA;AAAA;AACA;AAOO,KAAM;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,0BAAmE;AAAA,MACrE;AAAA,IACF,CAAC;AAAA;AAAA;;;ACpBD,OAAO,WAAW;AAClB,OAAO,cAAc;AAqBb;AAvBR;AAAA;AAAA;AAGA;AAEA,mBAAe,OAAO;AACpB,YAAM,EAAE,SAAS,wBAAwB,iBAAiB,IAAI;AAC9D,YAAM,MAAM,MAAM,cAAc;AAAA,QAC9B,UAAU,QAAQ,OAAO,CAAC,MAAM,EAAE,SAAS,OAAO;AAAA,QAClD,QAAQ,QACL,OAAO,CAAC,MAAM,EAAE,SAAS,OAAO,EAChC,IAAI,CAAC,EAAE,WAAW,OAAO,EAAE,MAAM,WAAW,KAAK,EAAE;AAAA,MACxD,CAAC;AAED,YAAM,OAAO,SAAS,eAAe,aAAa;AAClD,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,uBAAuB;AAAA,MACzC;AACA,YAAM,EAAE,aAAa,cAAc,GAAG,eAAe,IAAI;AACzD,YAAM,UAAU,gBAAgB,WAAW,cAAc;AACzD,YAAM,MACJ,oBAAC,gBACC,8BAAC,eAAa,GAAG,kBACf,8BAAC,WAAQ,GACX,GACF;AAGF,eAAS,WAAW,IAAI,EAAE;AAAA,QACxB,yBAAyB,MAAM,oBAAC,MAAM,YAAN,EAAkB,eAAI;AAAA,MACxD;AAAA,IACF;AA1Be;AA4Bf,QAAI;AACF,WAAK;AAAA,IACP,SAAS,GAAG;AACV,cAAQ,MAAM,CAAC;AAEf,YAAM,eAAe,SAAS,cAAc,KAAK;AACjD,mBAAa,YAAY;AAAA;AAAA,SAElB,EAAE,OAAO;AAAA;AAEhB,eAAS,KAAK,YAAY,YAAY;AAAA,IACxC;AAAA;AAAA;","names":[]}
@@ -1,8 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { DemoWrapperProps } from './index.mjs';
3
- import '@knapsack/renderer-webpack-base';
4
- import '@knapsack/utils';
5
- import '@knapsack/app/renderers';
2
+ import { D as DemoWrapperProps } from './types-D2eCZXsg.mjs';
6
3
  import '@knapsack/types';
7
4
  import '@knapsack/app/types';
8
5
 
@@ -1,8 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { DemoWrapperProps } from './index.js';
3
- import '@knapsack/renderer-webpack-base';
4
- import '@knapsack/utils';
5
- import '@knapsack/app/renderers';
2
+ import { D as DemoWrapperProps } from './types-D2eCZXsg.js';
6
3
  import '@knapsack/types';
7
4
  import '@knapsack/app/types';
8
5
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/demo-wrapper.tsx"],"sourcesContent":["import type { DemoWrapperProps } from './renderer-react';\n\nconst DemoWrapper = ({ children }: DemoWrapperProps) => (\n <div className=\"demo-wrapper\">{children}</div>\n);\n\nexport default DemoWrapper;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGE;AADF,IAAM,cAAc,wBAAC,EAAE,SAAS,MAC9B,4CAAC,SAAI,WAAU,gBAAgB,UAAS,GADtB;AAIpB,IAAO,uBAAQ;","names":[]}
1
+ {"version":3,"sources":["../src/demo-wrapper.tsx"],"sourcesContent":["import type { DemoWrapperProps } from './types';\n\nconst DemoWrapper = ({ children }: DemoWrapperProps) => (\n <div className=\"demo-wrapper\">{children}</div>\n);\n\nexport default DemoWrapper;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGE;AADF,IAAM,cAAc,wBAAC,EAAE,SAAS,MAC9B,4CAAC,SAAI,WAAU,gBAAgB,UAAS,GADtB;AAIpB,IAAO,uBAAQ;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/demo-wrapper.tsx"],"sourcesContent":["import type { DemoWrapperProps } from './renderer-react';\n\nconst DemoWrapper = ({ children }: DemoWrapperProps) => (\n <div className=\"demo-wrapper\">{children}</div>\n);\n\nexport default DemoWrapper;\n"],"mappings":";;;;AAGE;AADF,IAAM,cAAc,wBAAC,EAAE,SAAS,MAC9B,oBAAC,SAAI,WAAU,gBAAgB,UAAS,GADtB;AAIpB,IAAO,uBAAQ;","names":[]}
1
+ {"version":3,"sources":["../src/demo-wrapper.tsx"],"sourcesContent":["import type { DemoWrapperProps } from './types';\n\nconst DemoWrapper = ({ children }: DemoWrapperProps) => (\n <div className=\"demo-wrapper\">{children}</div>\n);\n\nexport default DemoWrapper;\n"],"mappings":";;;;AAGE;AADF,IAAM,cAAc,wBAAC,EAAE,SAAS,MAC9B,oBAAC,SAAI,WAAU,gBAAgB,UAAS,GADtB;AAIpB,IAAO,uBAAQ;","names":[]}
package/dist/index.d.mts CHANGED
@@ -1,17 +1,9 @@
1
- import { RendererWebpackBase, Renderer } from '@knapsack/renderer-webpack-base';
2
- import { Except } from '@knapsack/utils';
1
+ import { RendererWebpackBase, Renderer, KsJsImport } from '@knapsack/renderer-webpack-base';
3
2
  import { Renderable } from '@knapsack/app/renderers';
4
- import { RendererId, KsJsImport } from '@knapsack/types';
3
+ import { RendererId } from '@knapsack/types';
5
4
  import { KnapsackRenderParams } from '@knapsack/app/types';
5
+ export { D as DemoWrapperProps } from './types-D2eCZXsg.mjs';
6
6
 
7
- type DemoWrapperProps = {
8
- children: React.ReactNode;
9
- patternsUsed: {
10
- patternId: string;
11
- templateId: string;
12
- demoId?: string;
13
- }[];
14
- } & Except<KnapsackRenderParams, 'patternManifest'>;
15
7
  declare class KnapsackReactRenderer extends RendererWebpackBase implements Renderable {
16
8
  /**
17
9
  * `react.js` & `react-dom.js` root relative paths
@@ -51,4 +43,4 @@ declare class KnapsackReactRenderer extends RendererWebpackBase implements Rende
51
43
  getTemplateSuggestions: Renderer['getTemplateSuggestions'];
52
44
  }
53
45
 
54
- export { type DemoWrapperProps, KnapsackReactRenderer };
46
+ export { KnapsackReactRenderer };
package/dist/index.d.ts CHANGED
@@ -1,17 +1,9 @@
1
- import { RendererWebpackBase, Renderer } from '@knapsack/renderer-webpack-base';
2
- import { Except } from '@knapsack/utils';
1
+ import { RendererWebpackBase, Renderer, KsJsImport } from '@knapsack/renderer-webpack-base';
3
2
  import { Renderable } from '@knapsack/app/renderers';
4
- import { RendererId, KsJsImport } from '@knapsack/types';
3
+ import { RendererId } from '@knapsack/types';
5
4
  import { KnapsackRenderParams } from '@knapsack/app/types';
5
+ export { D as DemoWrapperProps } from './types-D2eCZXsg.js';
6
6
 
7
- type DemoWrapperProps = {
8
- children: React.ReactNode;
9
- patternsUsed: {
10
- patternId: string;
11
- templateId: string;
12
- demoId?: string;
13
- }[];
14
- } & Except<KnapsackRenderParams, 'patternManifest'>;
15
7
  declare class KnapsackReactRenderer extends RendererWebpackBase implements Renderable {
16
8
  /**
17
9
  * `react.js` & `react-dom.js` root relative paths
@@ -51,4 +43,4 @@ declare class KnapsackReactRenderer extends RendererWebpackBase implements Rende
51
43
  getTemplateSuggestions: Renderer['getTemplateSuggestions'];
52
44
  }
53
45
 
54
- export { type DemoWrapperProps, KnapsackReactRenderer };
46
+ export { KnapsackReactRenderer };
package/dist/index.js CHANGED
@@ -64,13 +64,14 @@ function renderUsageTemplate({
64
64
  `;
65
65
  }
66
66
  __name(renderUsageTemplate, "renderUsageTemplate");
67
+ var demoAppName = "DemoApp";
67
68
  function renderDemoAppTemplate({
68
- imports,
69
+ imports = "",
69
70
  children
70
71
  }) {
71
72
  return `${imports}
72
73
 
73
- function DemoApp() {
74
+ function ${demoAppName}() {
74
75
  return (
75
76
  ${children}
76
77
  )
@@ -129,12 +130,14 @@ async function getUsage(data) {
129
130
  __name(getUsage, "getUsage");
130
131
  async function getDemoAppUsage({
131
132
  children,
132
- imports
133
+ imports,
134
+ format
133
135
  }) {
134
136
  const code = renderDemoAppTemplate({
135
137
  children,
136
138
  imports
137
139
  });
140
+ if (!format) return code;
138
141
  return (0, import_file_utils.formatCode)({
139
142
  contents: code,
140
143
  path: "x.tsx"
@@ -718,6 +721,9 @@ var createReactPattern = (0, import_creator_utils.createCreator)({
718
721
  }, "getTasks")
719
722
  });
720
723
 
724
+ // src/types.ts
725
+ var rendererMetaScriptTagId = "ks-react-meta";
726
+
721
727
  // src/renderer-react.ts
722
728
  var { pkg } = (0, import_file_utils3.findUpPkgJson)(__dirname);
723
729
  import_app2.log.setupUpdateNotifier({ ...pkg, name: pkg.name, version: pkg.version });
@@ -742,7 +748,11 @@ var KnapsackReactRenderer = class _KnapsackReactRenderer extends import_renderer
742
748
  id,
743
749
  extension: ".jsx",
744
750
  language: "jsx",
745
- webpackConfig
751
+ webpackConfig,
752
+ extraScripts: [
753
+ // this is the code in `./client/init.mts`
754
+ "@knapsack/renderer-react/client"
755
+ ]
746
756
  });
747
757
  this.language = "jsx";
748
758
  this.assets = [];
@@ -825,167 +835,82 @@ var KnapsackReactRenderer = class _KnapsackReactRenderer extends import_renderer
825
835
  imports: xImports,
826
836
  renderOptions: { pattern, template, demo }
827
837
  }) {
828
- const extraImportNames = this.getJsImports().flatMap(
829
- (imp) => imp.type === "extra" ? [imp.importInfo.name] : []
838
+ const extraImports = this.getJsImports().filter(
839
+ (imp) => imp.type === "extra"
830
840
  );
831
- const { imports, isDeclaredVarsUnique, nameCollisions } = this.makeKsJsImportsUnique({ imports: xImports });
841
+ const { imports, isDeclaredVarsUnique, nameCollisions } = this.makeKsJsImportsUnique({ imports: [...xImports, ...extraImports] });
832
842
  if (!isDeclaredVarsUnique) {
833
843
  import_app2.log.error(`${nameCollisions.join(", ")} are declared multiple times`, {
834
844
  imports
835
845
  });
836
846
  }
837
- const importNames = [
838
- ...imports.map(({ importInfo: { name } }) => name),
839
- ...extraImportNames
840
- ];
841
- const patternsUsed = imports.flatMap((imp) => {
842
- if (imp.type === "pattern-template") {
843
- return [
844
- {
845
- patternId: imp.patternId,
846
- templateId: imp.templateId
847
+ const importInfos = imports.map(({ importInfo }) => importInfo);
848
+ const meta = {
849
+ demo,
850
+ moduleImports: (0, import_utils3.groupBy)(importInfos, (importInfo) => importInfo.path),
851
+ patternId: pattern.id,
852
+ templateId: template.id,
853
+ imports,
854
+ disableReactStrictMode: this.disableReactStrictMode,
855
+ demoWrapperProps: {
856
+ pattern,
857
+ template,
858
+ demo,
859
+ patternsUsed: imports.flatMap((imp) => {
860
+ if (imp.type === "pattern-template") {
861
+ return [
862
+ {
863
+ patternId: imp.patternId,
864
+ templateId: imp.templateId
865
+ }
866
+ ];
847
867
  }
848
- ];
849
- }
850
- if (imp.type === "pattern-template-demo") {
851
- return [
852
- {
853
- patternId: imp.patternId,
854
- templateId: imp.templateId,
855
- demoId: imp.demoId
868
+ if (imp.type === "pattern-template-demo") {
869
+ return [
870
+ {
871
+ patternId: imp.patternId,
872
+ templateId: imp.templateId,
873
+ demoId: imp.demoId
874
+ }
875
+ ];
856
876
  }
857
- ];
877
+ return [];
878
+ })
858
879
  }
859
- return [];
860
- });
861
- const demoWrapperProps = {
862
- patternsUsed,
863
- pattern,
864
- template,
865
- demo
866
880
  };
867
- const demoWrapperCode = await getUsage({
868
- templateName: "DemoWrapper",
869
- props: demoWrapperProps,
870
- children: `<DemoApp />`
871
- // extraProps,
872
- });
873
- async function renderReact({
874
- patterns,
875
- theExtraImportNames,
876
- ksGlobal
877
- }) {
878
- if (!ksGlobal) {
879
- throw new Error('"window.knapsack" is null');
880
- }
881
- const components = await ksGlobal.getAllImports({
882
- patterns,
883
- extras: theExtraImportNames.map((name) => ({ name }))
884
- });
885
- return components;
886
- }
887
- __name(renderReact, "renderReact");
888
881
  let code = `
889
-
890
- ${renderReact.toString()}
891
- ${renderReact.name}({
892
- ksGlobal: window.knapsack,
893
- patterns: ${JSON.stringify(patternsUsed)},
894
- theExtraImportNames: ${JSON.stringify(extraImportNames)},
895
- }).then((components) => {
896
- const { ${importNames.join(", ")} } = components;
897
- const root = document.getElementById('render-root');
898
-
899
- ${demoApp}
900
-
901
- const reactDomVersion = parseInt(ReactDOM.version.split('.')[0], 10);
902
-
903
- const ReactRendererResult = () => {
904
- if (reactDomVersion < 17 || ${this.disableReactStrictMode}){
905
- return (
906
- <ErrorCatcher>
907
- ${demoWrapperCode}
908
- </ErrorCatcher>
909
- )
882
+ window.knapsack = window.knapsack || {};
883
+ window.knapsack.getDemoApp = ({ ${imports.map((i) => i.importInfo.name).join(", ")} }) => {
884
+ ${demoApp}
885
+ return ${demoAppName}
910
886
  }
911
-
912
- return (
913
- <React.StrictMode>
914
- <ErrorCatcher>
915
- ${demoWrapperCode}
916
- </ErrorCatcher>
917
- </React.StrictMode>
918
- )
919
- };
920
-
921
-
922
- if (reactDomVersion > 17){
923
- ReactDOM.createRoot(root).render(
924
- <ReactRendererResult />
925
- )
926
- } else {
927
- ReactDOM.render(
928
- <ReactRendererResult />,
929
- root
930
- );
931
- }
932
- }).catch((err) => {
933
- console.error(err);
934
- const root = document.getElementById('render-root');
935
- // Create a new <div> element to contain the error message
936
- const errorMsgDiv = document.createElement('div');
937
- // Insert the new <div> element before the existing element
938
- root.parentNode.insertBefore(errorMsgDiv, root);
939
- // add error message so users can see it
940
- errorMsgDiv.innerHTML = '<h1>Component Error</h1><p>' + err.message + '</p>';
941
- });
942
887
  `;
943
- let codeHadError = false;
944
888
  let errorHtmlMsg = "";
945
889
  try {
946
- code = await (0, import_renderers.babelCodeForBrowser)({
947
- code
948
- });
890
+ code = await (0, import_renderers.babelCodeForBrowser)({ code });
949
891
  } catch (e) {
950
- codeHadError = true;
951
892
  console.log(code);
952
893
  console.log("---original code before babel error ^---");
953
894
  console.trace(e.message);
954
895
  code = `console.error(${JSON.stringify(e.message)});`;
955
896
  errorHtmlMsg = `<pre><code>${e.message}</code></pre>`;
956
897
  }
957
- if (!codeHadError) {
958
- try {
959
- code = await (0, import_file_utils3.formatCode)({
960
- contents: code,
961
- path: "x.tsx"
962
- // doing this to set format language
963
- });
964
- } catch (e) {
965
- codeHadError = true;
966
- console.log(code);
967
- console.log("---original code before prettier error ^---");
968
- console.trace(e.message);
969
- code = `console.error(${JSON.stringify(e.message)});`;
970
- errorHtmlMsg = `<pre><code>${e.message}</code></pre>`;
971
- }
972
- }
973
898
  const html = `
899
+ <script type="application/json" id="${rendererMetaScriptTagId}">${JSON.stringify(
900
+ meta
901
+ )}</script>
902
+ <script type="application/javascript">${code}</script>
903
+ <div id="render-root" class="knapsack-pattern-direct-parent" data-dev-note="Knapsack React Template Wrapper"></div>
974
904
  ${this.assets.map((asset) => `<script src="${asset}"></script>`).join("\n")}
975
-
976
905
  ${this.createHtmlTagsForAssetPaths({
977
906
  assets: this.getWebpackAssetPaths(),
978
907
  // we need the scripts to finish adding methods to the global knapsack object synchronously before the client-side code runs that is in the <script> tag below
979
908
  scriptTagsAreAsync: false
980
909
  })}
981
-
982
- <div id="render-root" class="knapsack-pattern-direct-parent" data-dev-note="Knapsack React Template Wrapper"></div>
983
- <script type="application/javascript">${code}</script>
984
- ${errorHtmlMsg}
985
-
910
+ ${errorHtmlMsg}
986
911
  `;
987
912
  return {
988
- ok: !codeHadError,
913
+ ok: !errorHtmlMsg,
989
914
  html: await (0, import_file_utils3.formatCode)({
990
915
  contents: html,
991
916
  path: "x.html"
@@ -1046,7 +971,8 @@ ${errorHtmlMsg}
1046
971
  const [demoAppUsage, demoApp] = await Promise.all([
1047
972
  getDemoAppUsage({
1048
973
  children: usage,
1049
- imports: importCode
974
+ imports: importCode,
975
+ format: true
1050
976
  }),
1051
977
  getDemoAppUsage({
1052
978
  children: usage