@mittwald/flow-remote-react-renderer 0.2.0-alpha.781 → 0.2.0-alpha.783
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/dist/js/RemoteRenderer.mjs +11 -12
- package/dist/js/RemoteRenderer.mjs.map +1 -1
- package/dist/js/_virtual/_rolldown/runtime.mjs +26 -0
- package/dist/js/index.mjs +2 -2
- package/dist/js/node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.mjs +55 -0
- package/dist/js/node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.mjs.map +1 -0
- package/dist/js/packages/core/src/file.mjs +19 -0
- package/dist/js/packages/core/src/file.mjs.map +1 -0
- package/dist/js/packages/core/src/index.mjs +3 -0
- package/dist/js/packages/remote-react-renderer/src/RemoteRendererBrowser.mjs +89 -0
- package/dist/js/packages/remote-react-renderer/src/RemoteRendererBrowser.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/auto-generated/index.mjs +136 -0
- package/dist/js/packages/remote-react-renderer/src/auto-generated/index.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/components/Form.mjs +28 -0
- package/dist/js/packages/remote-react-renderer/src/components/Form.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/components/NotificationRenderController.mjs +24 -0
- package/dist/js/packages/remote-react-renderer/src/components/NotificationRenderController.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/components/SlotRootWrapper.mjs +11 -0
- package/dist/js/packages/remote-react-renderer/src/components/SlotRootWrapper.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/components/index.mjs +4 -0
- package/dist/js/packages/remote-react-renderer/src/components/lib/prepareFormData.mjs +22 -0
- package/dist/js/packages/remote-react-renderer/src/components/lib/prepareFormData.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/components.mjs +48 -0
- package/dist/js/packages/remote-react-renderer/src/components.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/hooks/useControllableSuspenseTrigger.mjs +27 -0
- package/dist/js/packages/remote-react-renderer/src/hooks/useControllableSuspenseTrigger.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/hooks/useMergedComponents.mjs +14 -0
- package/dist/js/packages/remote-react-renderer/src/hooks/useMergedComponents.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/hooks/useUpdateHostPathnameOnRemote.mjs +17 -0
- package/dist/js/packages/remote-react-renderer/src/hooks/useUpdateHostPathnameOnRemote.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/integrations/react-hook-form/Form.mjs +26 -0
- package/dist/js/packages/remote-react-renderer/src/integrations/react-hook-form/Form.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/lib/createFlowRemoteComponentRenderer.mjs +32 -0
- package/dist/js/packages/remote-react-renderer/src/lib/createFlowRemoteComponentRenderer.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/lib/elementFactory.mjs +19 -0
- package/dist/js/packages/remote-react-renderer/src/lib/elementFactory.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/lib/mapAttributeToReactProperty.mjs +13 -0
- package/dist/js/packages/remote-react-renderer/src/lib/mapAttributeToReactProperty.mjs.map +1 -0
- package/dist/js/packages/remote-react-renderer/src/lib/propClassifiers.mjs +9 -0
- package/dist/js/packages/remote-react-renderer/src/lib/propClassifiers.mjs.map +1 -0
- package/package.json +8 -8
- package/dist/js/core/src/file.mjs +0 -17
- package/dist/js/core/src/file.mjs.map +0 -1
- package/dist/js/index.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/RemoteRendererBrowser.mjs +0 -131
- package/dist/js/remote-react-renderer/src/RemoteRendererBrowser.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/auto-generated/index.mjs +0 -327
- package/dist/js/remote-react-renderer/src/auto-generated/index.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/components/Form.mjs +0 -37
- package/dist/js/remote-react-renderer/src/components/Form.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/components/NotificationRenderController.mjs +0 -25
- package/dist/js/remote-react-renderer/src/components/NotificationRenderController.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/components/SlotRootWrapper.mjs +0 -10
- package/dist/js/remote-react-renderer/src/components/SlotRootWrapper.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/components/lib/prepareFormData.mjs +0 -29
- package/dist/js/remote-react-renderer/src/components/lib/prepareFormData.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/components.mjs +0 -55
- package/dist/js/remote-react-renderer/src/components.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/hooks/useControllableSuspenseTrigger.mjs +0 -30
- package/dist/js/remote-react-renderer/src/hooks/useControllableSuspenseTrigger.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/hooks/useMergedComponents.mjs +0 -24
- package/dist/js/remote-react-renderer/src/hooks/useMergedComponents.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/hooks/useUpdateHostPathnameOnRemote.mjs +0 -17
- package/dist/js/remote-react-renderer/src/hooks/useUpdateHostPathnameOnRemote.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/integrations/react-hook-form/Form.mjs +0 -16
- package/dist/js/remote-react-renderer/src/integrations/react-hook-form/Form.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/lib/createFlowRemoteComponentRenderer.mjs +0 -47
- package/dist/js/remote-react-renderer/src/lib/createFlowRemoteComponentRenderer.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/lib/elementFactory.mjs +0 -23
- package/dist/js/remote-react-renderer/src/lib/elementFactory.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/lib/mapAttributeToReactProperty.mjs +0 -14
- package/dist/js/remote-react-renderer/src/lib/mapAttributeToReactProperty.mjs.map +0 -1
- package/dist/js/remote-react-renderer/src/lib/propClassifiers.mjs +0 -7
- package/dist/js/remote-react-renderer/src/lib/propClassifiers.mjs.map +0 -1
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
);
|
|
11
|
-
const RemoteRenderer = (props) => {
|
|
12
|
-
return /* @__PURE__ */ jsx(BrowserOnly, { children: /* @__PURE__ */ jsx(RemoteRendererBrowser, { ...props }) });
|
|
3
|
+
"use client";
|
|
4
|
+
import { BrowserOnly } from "@mittwald/flow-react-components";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
//#region src/RemoteRenderer.tsx
|
|
8
|
+
var RemoteRendererBrowser = React.lazy(() => import("./packages/remote-react-renderer/src/RemoteRendererBrowser.mjs"));
|
|
9
|
+
var RemoteRenderer = (props) => {
|
|
10
|
+
return /* @__PURE__ */ jsx(BrowserOnly, { children: /* @__PURE__ */ jsx(RemoteRendererBrowser, { ...props }) });
|
|
13
11
|
};
|
|
14
|
-
|
|
12
|
+
//#endregion
|
|
15
13
|
export { RemoteRenderer, RemoteRenderer as default };
|
|
16
|
-
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=RemoteRenderer.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteRenderer.mjs","sources":["../../src/RemoteRenderer.tsx"],"sourcesContent":["\"use client\";\nimport type { RemoteRendererBrowserProps } from \"@/RemoteRendererBrowser\";\nimport { BrowserOnly } from \"@mittwald/flow-react-components\";\nimport React, { type FC } from \"react\";\n\nconst RemoteRendererBrowser = React.lazy(\n () => import(\"./RemoteRendererBrowser\"),\n);\n\nexport const RemoteRenderer: FC<RemoteRendererBrowserProps> = (props) => {\n return (\n <BrowserOnly>\n <RemoteRendererBrowser {...props} />\n </BrowserOnly>\n );\n};\n\nexport default RemoteRenderer;\n"],"
|
|
1
|
+
{"version":3,"file":"RemoteRenderer.mjs","names":[],"sources":["../../src/RemoteRenderer.tsx"],"sourcesContent":["\"use client\";\nimport type { RemoteRendererBrowserProps } from \"@/RemoteRendererBrowser\";\nimport { BrowserOnly } from \"@mittwald/flow-react-components\";\nimport React, { type FC } from \"react\";\n\nconst RemoteRendererBrowser = React.lazy(\n () => import(\"./RemoteRendererBrowser\"),\n);\n\nexport const RemoteRenderer: FC<RemoteRendererBrowserProps> = (props) => {\n return (\n <BrowserOnly>\n <RemoteRendererBrowser {...props} />\n </BrowserOnly>\n );\n};\n\nexport default RemoteRenderer;\n"],"mappings":";;;;;AAKA,IAAM,wBAAwB,MAAM,WAC5B,OAAO,kEACd;AAED,IAAa,kBAAkD,UAAU;AACvE,QACE,oBAAC,aAAD,EAAA,UACE,oBAAC,uBAAD,EAAuB,GAAI,OAAS,CAAA,EACxB,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
//#region \0rolldown/runtime.js
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
13
|
+
key = keys[i];
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
|
+
get: ((k) => from[k]).bind(null, key),
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
22
|
+
value: mod,
|
|
23
|
+
enumerable: true
|
|
24
|
+
}) : target, mod));
|
|
25
|
+
//#endregion
|
|
26
|
+
export { __commonJSMin, __toESM };
|
package/dist/js/index.mjs
CHANGED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
"use strict";
|
|
4
|
+
import { __commonJSMin } from "../../../../../_virtual/_rolldown/runtime.mjs";
|
|
5
|
+
//#region ../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js
|
|
6
|
+
var require_browser = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
7
|
+
/**
|
|
8
|
+
* Copyright (c) 2013-present, Facebook, Inc.
|
|
9
|
+
*
|
|
10
|
+
* This source code is licensed under the MIT license found in the
|
|
11
|
+
* LICENSE file in the root directory of this source tree.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Use invariant() to assert state which your program assumes to be true.
|
|
15
|
+
*
|
|
16
|
+
* Provide sprintf-style format (only %s is supported) and arguments
|
|
17
|
+
* to provide information about what broke and what you were
|
|
18
|
+
* expecting.
|
|
19
|
+
*
|
|
20
|
+
* The invariant message will be stripped in production, but the invariant
|
|
21
|
+
* will remain to ensure logic does not differ in production.
|
|
22
|
+
*/
|
|
23
|
+
var invariant = function(condition, format, a, b, c, d, e, f) {
|
|
24
|
+
if (process.env.NODE_ENV !== "production") {
|
|
25
|
+
if (format === void 0) throw new Error("invariant requires an error message argument");
|
|
26
|
+
}
|
|
27
|
+
if (!condition) {
|
|
28
|
+
var error;
|
|
29
|
+
if (format === void 0) error = /* @__PURE__ */ new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");
|
|
30
|
+
else {
|
|
31
|
+
var args = [
|
|
32
|
+
a,
|
|
33
|
+
b,
|
|
34
|
+
c,
|
|
35
|
+
d,
|
|
36
|
+
e,
|
|
37
|
+
f
|
|
38
|
+
];
|
|
39
|
+
var argIndex = 0;
|
|
40
|
+
error = new Error(format.replace(/%s/g, function() {
|
|
41
|
+
return args[argIndex++];
|
|
42
|
+
}));
|
|
43
|
+
error.name = "Invariant Violation";
|
|
44
|
+
}
|
|
45
|
+
error.framesToPop = 1;
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
module.exports = invariant;
|
|
50
|
+
}));
|
|
51
|
+
//#endregion
|
|
52
|
+
export default require_browser();
|
|
53
|
+
export { require_browser };
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=browser.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.mjs","names":[],"sources":["../../../../../../../../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;;;;CAoBA,IAAI,YAAY,SAAS,WAAW,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAC5D,MAAA,QAAA,IAAA,aAA6B;OACvB,WAAW,KAAA,EACb,OAAM,IAAI,MAAM,+CAA+C;;AAInE,MAAI,CAAC,WAAW;GACd,IAAI;AACJ,OAAI,WAAW,KAAA,EACb,yBAAQ,IAAI,MACV,gIAED;QACI;IACL,IAAI,OAAO;KAAC;KAAG;KAAG;KAAG;KAAG;KAAG;KAAE;IAC7B,IAAI,WAAW;AACf,YAAQ,IAAI,MACV,OAAO,QAAQ,OAAO,WAAW;AAAE,YAAO,KAAK;MAAc,CAC9D;AACD,UAAM,OAAO;;AAGf,SAAM,cAAc;AACpB,SAAM;;;AAIV,QAAO,UAAU"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import "../../../_virtual/_rolldown/runtime.mjs";
|
|
4
|
+
import { require_browser } from "../../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.mjs";
|
|
5
|
+
require_browser();
|
|
6
|
+
var Key = "mittwald.flow-core.file.awaitedArrayBuffer";
|
|
7
|
+
function isFileWithAwaitedArrayBuffer(file) {
|
|
8
|
+
return Key in file && file[Key] instanceof ArrayBuffer && !file[Key].detached;
|
|
9
|
+
}
|
|
10
|
+
var addAwaitedArrayBuffer = async (file) => {
|
|
11
|
+
if (isFileWithAwaitedArrayBuffer(file)) return file;
|
|
12
|
+
const arrayBuffer = await file.arrayBuffer();
|
|
13
|
+
Object.assign(file, { [Key]: arrayBuffer });
|
|
14
|
+
return file;
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { addAwaitedArrayBuffer, isFileWithAwaitedArrayBuffer };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=file.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.mjs","names":[],"sources":["../../../../../../core/src/file.ts"],"sourcesContent":["import invariant from \"invariant\";\n\nconst Key = \"mittwald.flow-core.file.awaitedArrayBuffer\";\n\nexport type FileWithAwaitedArrayBuffer = File & {\n [Key]: ArrayBuffer;\n};\n\nexport function isFileWithAwaitedArrayBuffer(\n file: File | FileWithAwaitedArrayBuffer,\n): file is FileWithAwaitedArrayBuffer {\n return Key in file && file[Key] instanceof ArrayBuffer && !file[Key].detached;\n}\n\nexport const addAwaitedArrayBuffer = async (file: File) => {\n if (isFileWithAwaitedArrayBuffer(file)) {\n return file;\n }\n\n const arrayBuffer = await file.arrayBuffer();\n Object.assign(file, { [Key]: arrayBuffer });\n\n return file;\n};\n\nexport const getAwaitArrayBuffer = (\n file: File | FileWithAwaitedArrayBuffer,\n) => {\n invariant(\n isFileWithAwaitedArrayBuffer(file),\n \"Could not get awaited ArrayBuffer from file\",\n );\n return file[Key];\n};\n"],"mappings":";;;AAEA,IAAM,MAAM;AAMZ,SAAgB,6BACd,MACoC;AACpC,QAAO,OAAO,QAAQ,KAAK,gBAAgB,eAAe,CAAC,KAAK,KAAK;;AAGvE,IAAa,wBAAwB,OAAO,SAAe;AACzD,KAAI,6BAA6B,KAAK,CACpC,QAAO;CAGT,MAAM,cAAc,MAAM,KAAK,aAAa;AAC5C,QAAO,OAAO,MAAM,GAAG,MAAM,aAAa,CAAC;AAE3C,QAAO"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
"use client";
|
|
4
|
+
import { useMergedComponents } from "./hooks/useMergedComponents.mjs";
|
|
5
|
+
import { useControllableSuspenseTrigger } from "./hooks/useControllableSuspenseTrigger.mjs";
|
|
6
|
+
import { useUpdateHostPathnameOnRemote } from "./hooks/useUpdateHostPathnameOnRemote.mjs";
|
|
7
|
+
import { useMemo, useRef, useState } from "react";
|
|
8
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { RemoteReceiver, RemoteRootRenderer } from "@mittwald/remote-dom-react/host";
|
|
10
|
+
import { RemoteError, connectRemoteIframeRef } from "@mittwald/flow-remote-core";
|
|
11
|
+
import { usePromise } from "@mittwald/react-use-promise";
|
|
12
|
+
//#region src/RemoteRendererBrowser.tsx
|
|
13
|
+
var hiddenIframeStyle = {
|
|
14
|
+
visibility: "hidden",
|
|
15
|
+
height: 0,
|
|
16
|
+
width: 0,
|
|
17
|
+
border: "none",
|
|
18
|
+
position: "absolute",
|
|
19
|
+
marginLeft: "-9999px"
|
|
20
|
+
};
|
|
21
|
+
var RemoteRendererBrowser = (props) => {
|
|
22
|
+
const { integrations = [], timeoutMs = 1e4, src, extBridgeImplementation, onNavigationStateChanged, hostPathname, __remoteReceiver: remoteReceiverFromProps } = props;
|
|
23
|
+
const remoteComponents = useMergedComponents(integrations);
|
|
24
|
+
if (remoteReceiverFromProps) return /* @__PURE__ */ jsx(RemoteRootRenderer, {
|
|
25
|
+
components: remoteComponents,
|
|
26
|
+
receiver: remoteReceiverFromProps
|
|
27
|
+
});
|
|
28
|
+
if (!src) throw new RemoteError("'src' prop is required");
|
|
29
|
+
const renderPromise = useMemo(() => Promise.withResolvers(), [src]);
|
|
30
|
+
const connectionPromise = useMemo(() => Promise.withResolvers(), [src]);
|
|
31
|
+
const loadingPromise = useMemo(() => Promise.withResolvers(), [src]);
|
|
32
|
+
const suspenseTrigger = useControllableSuspenseTrigger();
|
|
33
|
+
const [connectionSrc, setConnectionSrc] = useState(null);
|
|
34
|
+
const connection = useRef(void 0);
|
|
35
|
+
const [remoteError, setRemoteError] = useState();
|
|
36
|
+
if (remoteError) throw new RemoteError(`Remote rendering failed: ${remoteError}`);
|
|
37
|
+
const [receiver, rendererSubscriber] = useMemo(() => {
|
|
38
|
+
const remoteReceiver = new RemoteReceiver();
|
|
39
|
+
const controller = new AbortController();
|
|
40
|
+
remoteReceiver.subscribe({ id: remoteReceiver.root.id }, () => renderPromise.resolve(), { signal: controller.signal });
|
|
41
|
+
return [remoteReceiver, controller];
|
|
42
|
+
}, [src]);
|
|
43
|
+
useUpdateHostPathnameOnRemote(hostPathname, connection.current);
|
|
44
|
+
const connect = connectRemoteIframeRef({
|
|
45
|
+
connection: receiver.connection,
|
|
46
|
+
extBridgeImplementation,
|
|
47
|
+
onReady: (establishedConnection) => {
|
|
48
|
+
establishedConnection.updateHostPathname(hostPathname);
|
|
49
|
+
connectionPromise.resolve();
|
|
50
|
+
},
|
|
51
|
+
onLoadingChanged: (isLoading) => {
|
|
52
|
+
if (isLoading) suspenseTrigger.start();
|
|
53
|
+
else suspenseTrigger.stop();
|
|
54
|
+
},
|
|
55
|
+
onError: setRemoteError,
|
|
56
|
+
onNavigationStateChanged
|
|
57
|
+
});
|
|
58
|
+
const timeoutPromise = (message) => new Promise((_, rej) => {
|
|
59
|
+
setTimeout(() => {
|
|
60
|
+
rej(new RemoteError(`${message}: Timeout reached`));
|
|
61
|
+
}, timeoutMs);
|
|
62
|
+
});
|
|
63
|
+
const overallLoading = () => Promise.all([
|
|
64
|
+
Promise.race([loadingPromise.promise, timeoutPromise("Remote URL could not be loaded")]),
|
|
65
|
+
Promise.race([connectionPromise.promise, timeoutPromise("Could not establish remote connection")]),
|
|
66
|
+
Promise.race([renderPromise.promise, timeoutPromise("Remote rendering failed")])
|
|
67
|
+
]);
|
|
68
|
+
usePromise(async () => {
|
|
69
|
+
await overallLoading();
|
|
70
|
+
rendererSubscriber.abort();
|
|
71
|
+
}, connectionSrc === src ? [] : null, { loaderId: src });
|
|
72
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(RemoteRootRenderer, {
|
|
73
|
+
components: remoteComponents,
|
|
74
|
+
receiver
|
|
75
|
+
}), /* @__PURE__ */ jsx("iframe", {
|
|
76
|
+
src,
|
|
77
|
+
ref: (ref) => {
|
|
78
|
+
connection.current = connect(ref);
|
|
79
|
+
setConnectionSrc(src);
|
|
80
|
+
},
|
|
81
|
+
onLoad: () => loadingPromise.resolve(),
|
|
82
|
+
onError: () => loadingPromise.reject(),
|
|
83
|
+
style: hiddenIframeStyle
|
|
84
|
+
})] });
|
|
85
|
+
};
|
|
86
|
+
//#endregion
|
|
87
|
+
export { RemoteRendererBrowser, RemoteRendererBrowser as default };
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=RemoteRendererBrowser.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteRendererBrowser.mjs","names":[],"sources":["../../../../../src/RemoteRendererBrowser.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMergedComponents } from \"@/hooks/useMergedComponents\";\nimport { useControllableSuspenseTrigger } from \"@/hooks/useControllableSuspenseTrigger\";\nimport { useUpdateHostPathnameOnRemote } from \"@/hooks/useUpdateHostPathnameOnRemote\";\nimport type { RemoteComponentsMap } from \"@/lib/types\";\nimport type { ExtBridgeConnectionApi } from \"@mittwald/ext-bridge\";\nimport {\n connectRemoteIframeRef,\n RemoteError,\n type HostToRemoteConnection,\n type NavigationState,\n} from \"@mittwald/flow-remote-core\";\nimport { usePromise } from \"@mittwald/react-use-promise\";\nimport {\n RemoteReceiver,\n RemoteRootRenderer,\n} from \"@mittwald/remote-dom-react/host\";\nimport { type CSSProperties, type FC, useMemo, useRef, useState } from \"react\";\n\nexport interface RemoteRendererBrowserProps {\n integrations?: RemoteComponentsMap<never>[];\n src?: string;\n timeoutMs?: number;\n onNavigationStateChanged?: (state: NavigationState) => void;\n hostPathname?: string;\n extBridgeImplementation?: ExtBridgeConnectionApi;\n /** Internal use only */\n __remoteReceiver?: RemoteReceiver;\n}\n\nconst hiddenIframeStyle: CSSProperties = {\n visibility: \"hidden\",\n height: 0,\n width: 0,\n border: \"none\",\n position: \"absolute\",\n marginLeft: \"-9999px\",\n};\n\nexport const RemoteRendererBrowser: FC<RemoteRendererBrowserProps> = (\n props,\n) => {\n const {\n integrations = [],\n timeoutMs = 10_000,\n src,\n extBridgeImplementation,\n onNavigationStateChanged,\n hostPathname,\n __remoteReceiver: remoteReceiverFromProps,\n } = props;\n\n const remoteComponents = useMergedComponents(integrations);\n\n if (remoteReceiverFromProps) {\n return (\n <RemoteRootRenderer\n components={remoteComponents}\n receiver={remoteReceiverFromProps}\n />\n );\n }\n\n if (!src) {\n throw new RemoteError(\"'src' prop is required\");\n }\n\n const renderPromise = useMemo(() => Promise.withResolvers<void>(), [src]);\n const connectionPromise = useMemo(() => Promise.withResolvers<void>(), [src]);\n const loadingPromise = useMemo(() => Promise.withResolvers<void>(), [src]);\n const suspenseTrigger = useControllableSuspenseTrigger();\n\n const [connectionSrc, setConnectionSrc] = useState<string | null>(null);\n const connection = useRef<HostToRemoteConnection>(undefined);\n const [remoteError, setRemoteError] = useState<string | undefined>();\n\n if (remoteError) {\n throw new RemoteError(`Remote rendering failed: ${remoteError}`);\n }\n\n const [receiver, rendererSubscriber] = useMemo(() => {\n const remoteReceiver = new RemoteReceiver();\n const controller = new AbortController();\n remoteReceiver.subscribe(\n { id: remoteReceiver.root.id },\n () => renderPromise.resolve(),\n { signal: controller.signal },\n );\n return [remoteReceiver, controller];\n }, [src]);\n\n useUpdateHostPathnameOnRemote(hostPathname, connection.current);\n\n const connect = connectRemoteIframeRef({\n connection: receiver.connection,\n extBridgeImplementation: extBridgeImplementation,\n onReady: (establishedConnection) => {\n establishedConnection.updateHostPathname(hostPathname);\n connectionPromise.resolve();\n },\n onLoadingChanged: (isLoading) => {\n if (isLoading) {\n suspenseTrigger.start();\n } else {\n suspenseTrigger.stop();\n }\n },\n onError: setRemoteError,\n onNavigationStateChanged,\n });\n\n const timeoutPromise = (message: string) =>\n new Promise((_, rej) => {\n setTimeout(() => {\n rej(new RemoteError(`${message}: Timeout reached`));\n }, timeoutMs);\n });\n\n const overallLoading = () =>\n Promise.all([\n Promise.race([\n loadingPromise.promise,\n timeoutPromise(\"Remote URL could not be loaded\"),\n ]),\n Promise.race([\n connectionPromise.promise,\n timeoutPromise(\"Could not establish remote connection\"),\n ]),\n Promise.race([\n renderPromise.promise,\n timeoutPromise(\"Remote rendering failed\"),\n ]),\n ]);\n\n const awaitLoadingPromise = connectionSrc === src;\n\n usePromise(\n async () => {\n await overallLoading();\n rendererSubscriber.abort();\n },\n awaitLoadingPromise ? [] : null,\n {\n loaderId: src,\n },\n );\n\n return (\n <>\n <RemoteRootRenderer components={remoteComponents} receiver={receiver} />\n <iframe\n src={src}\n ref={(ref) => {\n connection.current = connect(ref);\n setConnectionSrc(src);\n }}\n onLoad={() => loadingPromise.resolve()}\n onError={() => loadingPromise.reject()}\n style={hiddenIframeStyle}\n />\n </>\n );\n};\n\nexport default RemoteRendererBrowser;\n"],"mappings":";;;;;;;;;;AA+BA,IAAM,oBAAmC;CACvC,YAAY;CACZ,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,UAAU;CACV,YAAY;CACb;AAED,IAAa,yBACX,UACG;CACH,MAAM,EACJ,eAAe,EAAE,EACjB,YAAY,KACZ,KACA,yBACA,0BACA,cACA,kBAAkB,4BAChB;CAEJ,MAAM,mBAAmB,oBAAoB,aAAa;AAE1D,KAAI,wBACF,QACE,oBAAC,oBAAD;EACE,YAAY;EACZ,UAAU;EACV,CAAA;AAIN,KAAI,CAAC,IACH,OAAM,IAAI,YAAY,yBAAyB;CAGjD,MAAM,gBAAgB,cAAc,QAAQ,eAAqB,EAAE,CAAC,IAAI,CAAC;CACzE,MAAM,oBAAoB,cAAc,QAAQ,eAAqB,EAAE,CAAC,IAAI,CAAC;CAC7E,MAAM,iBAAiB,cAAc,QAAQ,eAAqB,EAAE,CAAC,IAAI,CAAC;CAC1E,MAAM,kBAAkB,gCAAgC;CAExD,MAAM,CAAC,eAAe,oBAAoB,SAAwB,KAAK;CACvE,MAAM,aAAa,OAA+B,KAAA,EAAU;CAC5D,MAAM,CAAC,aAAa,kBAAkB,UAA8B;AAEpE,KAAI,YACF,OAAM,IAAI,YAAY,4BAA4B,cAAc;CAGlE,MAAM,CAAC,UAAU,sBAAsB,cAAc;EACnD,MAAM,iBAAiB,IAAI,gBAAgB;EAC3C,MAAM,aAAa,IAAI,iBAAiB;AACxC,iBAAe,UACb,EAAE,IAAI,eAAe,KAAK,IAAI,QACxB,cAAc,SAAS,EAC7B,EAAE,QAAQ,WAAW,QAAQ,CAC9B;AACD,SAAO,CAAC,gBAAgB,WAAW;IAClC,CAAC,IAAI,CAAC;AAET,+BAA8B,cAAc,WAAW,QAAQ;CAE/D,MAAM,UAAU,uBAAuB;EACrC,YAAY,SAAS;EACI;EACzB,UAAU,0BAA0B;AAClC,yBAAsB,mBAAmB,aAAa;AACtD,qBAAkB,SAAS;;EAE7B,mBAAmB,cAAc;AAC/B,OAAI,UACF,iBAAgB,OAAO;OAEvB,iBAAgB,MAAM;;EAG1B,SAAS;EACT;EACD,CAAC;CAEF,MAAM,kBAAkB,YACtB,IAAI,SAAS,GAAG,QAAQ;AACtB,mBAAiB;AACf,OAAI,IAAI,YAAY,GAAG,QAAQ,mBAAmB,CAAC;KAClD,UAAU;GACb;CAEJ,MAAM,uBACJ,QAAQ,IAAI;EACV,QAAQ,KAAK,CACX,eAAe,SACf,eAAe,iCAAiC,CACjD,CAAC;EACF,QAAQ,KAAK,CACX,kBAAkB,SAClB,eAAe,wCAAwC,CACxD,CAAC;EACF,QAAQ,KAAK,CACX,cAAc,SACd,eAAe,0BAA0B,CAC1C,CAAA;EACF,CAAC;AAIJ,YACE,YAAY;AACV,QAAM,gBAAgB;AACtB,qBAAmB,OAAO;IALF,kBAAkB,MAOtB,EAAE,GAAG,MAC3B,EACE,UAAU,KACX,CACF;AAED,QACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,oBAAD;EAAoB,YAAY;EAA4B;EAAY,CAAA,EACxE,oBAAC,UAAD;EACO;EACL,MAAM,QAAQ;AACZ,cAAW,UAAU,QAAQ,IAAI;AACjC,oBAAiB,IAAI;;EAEvB,cAAc,eAAe,SAAS;EACtC,eAAe,eAAe,QAAQ;EACtC,OAAO;EACP,CAAA,CACD,EAAA,CAAA"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import { createFlowRemoteComponentRenderer } from "../lib/createFlowRemoteComponentRenderer.mjs";
|
|
4
|
+
import { AccentBox, Accordion, ActionGroup, Alert, AlertBadge, AlertIcon, AlertText, Align, Area, Autocomplete, Avatar, AvatarStack, Badge, BigNumber, Breadcrumb, Button, CartesianChart, CartesianGrid, ChartLegend, ChartTooltip, Chat, Checkbox, CheckboxButton, CheckboxGroup, ClearPropsContext, CodeBlock, CodeEditor, Color, ColumnLayout, ComboBox, ComponentPropsContextProvider, Content, ContextMenu, ContextMenuContent, ContextMenuSection, ContextMenuTrigger, ContextualHelp, ContextualHelpTrigger, CopyButton, CounterBadge, DatePicker, DateRangePicker, DialogTrigger, Div, DonutChart, EmptyView, FieldDescription, FieldError, FileCard, FileCardList, FileDropZone, FileField, Flex, GridList, GridListItem, Header, HeaderNavigation, Heading, Icon, IllustratedMessage, Image, ImageCropper, Initials, InlineCode, Kbd, Label, LabeledValue, LayoutCard, Legend, Line, Link, ListItemViewContent, ListSummary, LoadingSpinner, Markdown, MarkdownEditor, MenuItem, MenuTrigger, Message, MessageSeparator, MessageThread, Navigation, NavigationGroup, Notification, NumberField, Option, OverlayContent, PasswordCreationField, PopoverContent, ProgressBar, Radio, RadioButton, RadioGroup, RangeCalendar, Rating, SearchField, Section, Segment, SegmentedControl, Select, Separator, Skeleton, SkeletonText, Slider, Switch, Tab, TabTitle, Table, TableBody, TableCell, TableColumn, TableFooterRow, TableHeader, TableRow, Tabs, Text, TextArea, TextField, TimeField, Tooltip, TooltipTrigger, Truncate, TunnelEntry, XAxis, YAxis } from "@mittwald/flow-react-components";
|
|
5
|
+
//#region src/auto-generated/index.ts
|
|
6
|
+
var flowComponents = {
|
|
7
|
+
"flr-accent-box": createFlowRemoteComponentRenderer("AccentBox", AccentBox),
|
|
8
|
+
"flr-accordion": createFlowRemoteComponentRenderer("Accordion", Accordion),
|
|
9
|
+
"flr-action-group": createFlowRemoteComponentRenderer("ActionGroup", ActionGroup),
|
|
10
|
+
"flr-alert": createFlowRemoteComponentRenderer("Alert", Alert),
|
|
11
|
+
"flr-alert-badge": createFlowRemoteComponentRenderer("AlertBadge", AlertBadge),
|
|
12
|
+
"flr-alert-icon": createFlowRemoteComponentRenderer("AlertIcon", AlertIcon),
|
|
13
|
+
"flr-alert-text": createFlowRemoteComponentRenderer("AlertText", AlertText),
|
|
14
|
+
"flr-align": createFlowRemoteComponentRenderer("Align", Align),
|
|
15
|
+
"flr-area": createFlowRemoteComponentRenderer("Area", Area),
|
|
16
|
+
"flr-autocomplete": createFlowRemoteComponentRenderer("Autocomplete", Autocomplete),
|
|
17
|
+
"flr-avatar": createFlowRemoteComponentRenderer("Avatar", Avatar),
|
|
18
|
+
"flr-avatar-stack": createFlowRemoteComponentRenderer("AvatarStack", AvatarStack),
|
|
19
|
+
"flr-badge": createFlowRemoteComponentRenderer("Badge", Badge),
|
|
20
|
+
"flr-big-number": createFlowRemoteComponentRenderer("BigNumber", BigNumber),
|
|
21
|
+
"flr-breadcrumb": createFlowRemoteComponentRenderer("Breadcrumb", Breadcrumb),
|
|
22
|
+
"flr-button": createFlowRemoteComponentRenderer("Button", Button),
|
|
23
|
+
"flr-cartesian-chart": createFlowRemoteComponentRenderer("CartesianChart", CartesianChart),
|
|
24
|
+
"flr-cartesian-grid": createFlowRemoteComponentRenderer("CartesianGrid", CartesianGrid),
|
|
25
|
+
"flr-chart-legend": createFlowRemoteComponentRenderer("ChartLegend", ChartLegend),
|
|
26
|
+
"flr-chart-tooltip": createFlowRemoteComponentRenderer("ChartTooltip", ChartTooltip),
|
|
27
|
+
"flr-chat": createFlowRemoteComponentRenderer("Chat", Chat),
|
|
28
|
+
"flr-checkbox": createFlowRemoteComponentRenderer("Checkbox", Checkbox),
|
|
29
|
+
"flr-checkbox-button": createFlowRemoteComponentRenderer("CheckboxButton", CheckboxButton),
|
|
30
|
+
"flr-checkbox-group": createFlowRemoteComponentRenderer("CheckboxGroup", CheckboxGroup),
|
|
31
|
+
"flr-clear-props-context": createFlowRemoteComponentRenderer("ClearPropsContext", ClearPropsContext),
|
|
32
|
+
"flr-code-block": createFlowRemoteComponentRenderer("CodeBlock", CodeBlock),
|
|
33
|
+
"flr-code-editor": createFlowRemoteComponentRenderer("CodeEditor", CodeEditor),
|
|
34
|
+
"flr-color": createFlowRemoteComponentRenderer("Color", Color),
|
|
35
|
+
"flr-column-layout": createFlowRemoteComponentRenderer("ColumnLayout", ColumnLayout),
|
|
36
|
+
"flr-combo-box": createFlowRemoteComponentRenderer("ComboBox", ComboBox),
|
|
37
|
+
"flr-component-props-context-provider": createFlowRemoteComponentRenderer("ComponentPropsContextProvider", ComponentPropsContextProvider),
|
|
38
|
+
"flr-content": createFlowRemoteComponentRenderer("Content", Content),
|
|
39
|
+
"flr-context-menu": createFlowRemoteComponentRenderer("ContextMenu", ContextMenu),
|
|
40
|
+
"flr-context-menu-content": createFlowRemoteComponentRenderer("ContextMenuContent", ContextMenuContent),
|
|
41
|
+
"flr-context-menu-section": createFlowRemoteComponentRenderer("ContextMenuSection", ContextMenuSection),
|
|
42
|
+
"flr-context-menu-trigger": createFlowRemoteComponentRenderer("ContextMenuTrigger", ContextMenuTrigger),
|
|
43
|
+
"flr-contextual-help": createFlowRemoteComponentRenderer("ContextualHelp", ContextualHelp),
|
|
44
|
+
"flr-contextual-help-trigger": createFlowRemoteComponentRenderer("ContextualHelpTrigger", ContextualHelpTrigger),
|
|
45
|
+
"flr-copy-button": createFlowRemoteComponentRenderer("CopyButton", CopyButton),
|
|
46
|
+
"flr-counter-badge": createFlowRemoteComponentRenderer("CounterBadge", CounterBadge),
|
|
47
|
+
"flr-date-picker": createFlowRemoteComponentRenderer("DatePicker", DatePicker),
|
|
48
|
+
"flr-date-range-picker": createFlowRemoteComponentRenderer("DateRangePicker", DateRangePicker),
|
|
49
|
+
"flr-dialog-trigger": createFlowRemoteComponentRenderer("DialogTrigger", DialogTrigger),
|
|
50
|
+
"flr-div": createFlowRemoteComponentRenderer("Div", Div),
|
|
51
|
+
"flr-donut-chart": createFlowRemoteComponentRenderer("DonutChart", DonutChart),
|
|
52
|
+
"flr-field-description": createFlowRemoteComponentRenderer("FieldDescription", FieldDescription),
|
|
53
|
+
"flr-field-error": createFlowRemoteComponentRenderer("FieldError", FieldError),
|
|
54
|
+
"flr-file-card": createFlowRemoteComponentRenderer("FileCard", FileCard),
|
|
55
|
+
"flr-file-card-list": createFlowRemoteComponentRenderer("FileCardList", FileCardList),
|
|
56
|
+
"flr-file-drop-zone": createFlowRemoteComponentRenderer("FileDropZone", FileDropZone),
|
|
57
|
+
"flr-file-field": createFlowRemoteComponentRenderer("FileField", FileField),
|
|
58
|
+
"flr-flex": createFlowRemoteComponentRenderer("Flex", Flex),
|
|
59
|
+
"flr-header": createFlowRemoteComponentRenderer("Header", Header),
|
|
60
|
+
"flr-header-navigation": createFlowRemoteComponentRenderer("HeaderNavigation", HeaderNavigation),
|
|
61
|
+
"flr-heading": createFlowRemoteComponentRenderer("Heading", Heading),
|
|
62
|
+
"flr-icon": createFlowRemoteComponentRenderer("Icon", Icon),
|
|
63
|
+
"flr-illustrated-message": createFlowRemoteComponentRenderer("IllustratedMessage", IllustratedMessage),
|
|
64
|
+
"flr-image": createFlowRemoteComponentRenderer("Image", Image),
|
|
65
|
+
"flr-image-cropper": createFlowRemoteComponentRenderer("ImageCropper", ImageCropper),
|
|
66
|
+
"flr-initials": createFlowRemoteComponentRenderer("Initials", Initials),
|
|
67
|
+
"flr-inline-code": createFlowRemoteComponentRenderer("InlineCode", InlineCode),
|
|
68
|
+
"flr-items-grid-list": createFlowRemoteComponentRenderer("ItemsGridList", GridList),
|
|
69
|
+
"flr-items-grid-list-item": createFlowRemoteComponentRenderer("ItemsGridListItem", GridListItem),
|
|
70
|
+
"flr-kbd": createFlowRemoteComponentRenderer("Kbd", Kbd),
|
|
71
|
+
"flr-label": createFlowRemoteComponentRenderer("Label", Label),
|
|
72
|
+
"flr-labeled-value": createFlowRemoteComponentRenderer("LabeledValue", LabeledValue),
|
|
73
|
+
"flr-layout-card": createFlowRemoteComponentRenderer("LayoutCard", LayoutCard),
|
|
74
|
+
"flr-legend": createFlowRemoteComponentRenderer("Legend", Legend),
|
|
75
|
+
"flr-line": createFlowRemoteComponentRenderer("Line", Line),
|
|
76
|
+
"flr-link": createFlowRemoteComponentRenderer("Link", Link),
|
|
77
|
+
"flr-list-empty-view": createFlowRemoteComponentRenderer("ListEmptyView", EmptyView),
|
|
78
|
+
"flr-list-item-view-content": createFlowRemoteComponentRenderer("ListItemViewContent", ListItemViewContent),
|
|
79
|
+
"flr-list-summary": createFlowRemoteComponentRenderer("ListSummary", ListSummary),
|
|
80
|
+
"flr-loading-spinner": createFlowRemoteComponentRenderer("LoadingSpinner", LoadingSpinner),
|
|
81
|
+
"flr-markdown": createFlowRemoteComponentRenderer("Markdown", Markdown),
|
|
82
|
+
"flr-markdown-editor": createFlowRemoteComponentRenderer("MarkdownEditor", MarkdownEditor),
|
|
83
|
+
"flr-menu-item": createFlowRemoteComponentRenderer("MenuItem", MenuItem),
|
|
84
|
+
"flr-menu-trigger": createFlowRemoteComponentRenderer("MenuTrigger", MenuTrigger),
|
|
85
|
+
"flr-message": createFlowRemoteComponentRenderer("Message", Message),
|
|
86
|
+
"flr-message-separator": createFlowRemoteComponentRenderer("MessageSeparator", MessageSeparator),
|
|
87
|
+
"flr-message-thread": createFlowRemoteComponentRenderer("MessageThread", MessageThread),
|
|
88
|
+
"flr-navigation": createFlowRemoteComponentRenderer("Navigation", Navigation),
|
|
89
|
+
"flr-navigation-group": createFlowRemoteComponentRenderer("NavigationGroup", NavigationGroup),
|
|
90
|
+
"flr-notification": createFlowRemoteComponentRenderer("Notification", Notification),
|
|
91
|
+
"flr-number-field": createFlowRemoteComponentRenderer("NumberField", NumberField),
|
|
92
|
+
"flr-option": createFlowRemoteComponentRenderer("Option", Option),
|
|
93
|
+
"flr-overlay-content": createFlowRemoteComponentRenderer("OverlayContent", OverlayContent),
|
|
94
|
+
"flr-password-creation-field": createFlowRemoteComponentRenderer("PasswordCreationField", PasswordCreationField),
|
|
95
|
+
"flr-popover-content": createFlowRemoteComponentRenderer("PopoverContent", PopoverContent),
|
|
96
|
+
"flr-progress-bar": createFlowRemoteComponentRenderer("ProgressBar", ProgressBar),
|
|
97
|
+
"flr-radio": createFlowRemoteComponentRenderer("Radio", Radio),
|
|
98
|
+
"flr-radio-button": createFlowRemoteComponentRenderer("RadioButton", RadioButton),
|
|
99
|
+
"flr-radio-group": createFlowRemoteComponentRenderer("RadioGroup", RadioGroup),
|
|
100
|
+
"flr-range-calendar": createFlowRemoteComponentRenderer("RangeCalendar", RangeCalendar),
|
|
101
|
+
"flr-rating": createFlowRemoteComponentRenderer("Rating", Rating),
|
|
102
|
+
"flr-search-field": createFlowRemoteComponentRenderer("SearchField", SearchField),
|
|
103
|
+
"flr-section": createFlowRemoteComponentRenderer("Section", Section),
|
|
104
|
+
"flr-segment": createFlowRemoteComponentRenderer("Segment", Segment),
|
|
105
|
+
"flr-segmented-control": createFlowRemoteComponentRenderer("SegmentedControl", SegmentedControl),
|
|
106
|
+
"flr-select": createFlowRemoteComponentRenderer("Select", Select),
|
|
107
|
+
"flr-separator": createFlowRemoteComponentRenderer("Separator", Separator),
|
|
108
|
+
"flr-skeleton": createFlowRemoteComponentRenderer("Skeleton", Skeleton),
|
|
109
|
+
"flr-skeleton-text": createFlowRemoteComponentRenderer("SkeletonText", SkeletonText),
|
|
110
|
+
"flr-slider": createFlowRemoteComponentRenderer("Slider", Slider),
|
|
111
|
+
"flr-switch": createFlowRemoteComponentRenderer("Switch", Switch),
|
|
112
|
+
"flr-tab": createFlowRemoteComponentRenderer("Tab", Tab),
|
|
113
|
+
"flr-tab-title": createFlowRemoteComponentRenderer("TabTitle", TabTitle),
|
|
114
|
+
"flr-table": createFlowRemoteComponentRenderer("Table", Table),
|
|
115
|
+
"flr-table-body": createFlowRemoteComponentRenderer("TableBody", TableBody),
|
|
116
|
+
"flr-table-cell": createFlowRemoteComponentRenderer("TableCell", TableCell),
|
|
117
|
+
"flr-table-column": createFlowRemoteComponentRenderer("TableColumn", TableColumn),
|
|
118
|
+
"flr-table-footer-row": createFlowRemoteComponentRenderer("TableFooterRow", TableFooterRow),
|
|
119
|
+
"flr-table-header": createFlowRemoteComponentRenderer("TableHeader", TableHeader),
|
|
120
|
+
"flr-table-row": createFlowRemoteComponentRenderer("TableRow", TableRow),
|
|
121
|
+
"flr-tabs": createFlowRemoteComponentRenderer("Tabs", Tabs),
|
|
122
|
+
"flr-text": createFlowRemoteComponentRenderer("Text", Text),
|
|
123
|
+
"flr-text-area": createFlowRemoteComponentRenderer("TextArea", TextArea),
|
|
124
|
+
"flr-text-field": createFlowRemoteComponentRenderer("TextField", TextField),
|
|
125
|
+
"flr-time-field": createFlowRemoteComponentRenderer("TimeField", TimeField),
|
|
126
|
+
"flr-tooltip": createFlowRemoteComponentRenderer("Tooltip", Tooltip),
|
|
127
|
+
"flr-tooltip-trigger": createFlowRemoteComponentRenderer("TooltipTrigger", TooltipTrigger),
|
|
128
|
+
"flr-truncate": createFlowRemoteComponentRenderer("Truncate", Truncate),
|
|
129
|
+
"flr-tunnel-entry": createFlowRemoteComponentRenderer("TunnelEntry", TunnelEntry),
|
|
130
|
+
"flr-x-axis": createFlowRemoteComponentRenderer("XAxis", XAxis),
|
|
131
|
+
"flr-y-axis": createFlowRemoteComponentRenderer("YAxis", YAxis)
|
|
132
|
+
};
|
|
133
|
+
//#endregion
|
|
134
|
+
export { flowComponents as default };
|
|
135
|
+
|
|
136
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../src/auto-generated/index.ts"],"sourcesContent":["/* prettier-ignore */\n/* This file is auto-generated with the remote-components-generator */\nimport { createFlowRemoteComponentRenderer } from \"@/lib/createFlowRemoteComponentRenderer\";\nimport { AccentBox as AccentBox } from \"@mittwald/flow-react-components\";\nimport { Accordion as Accordion } from \"@mittwald/flow-react-components\";\nimport { ActionGroup as ActionGroup } from \"@mittwald/flow-react-components\";\nimport { Alert as Alert } from \"@mittwald/flow-react-components\";\nimport { AlertBadge as AlertBadge } from \"@mittwald/flow-react-components\";\nimport { AlertIcon as AlertIcon } from \"@mittwald/flow-react-components\";\nimport { AlertText as AlertText } from \"@mittwald/flow-react-components\";\nimport { Align as Align } from \"@mittwald/flow-react-components\";\nimport { Area as Area } from \"@mittwald/flow-react-components\";\nimport { Autocomplete as Autocomplete } from \"@mittwald/flow-react-components\";\nimport { Avatar as Avatar } from \"@mittwald/flow-react-components\";\nimport { AvatarStack as AvatarStack } from \"@mittwald/flow-react-components\";\nimport { Badge as Badge } from \"@mittwald/flow-react-components\";\nimport { BigNumber as BigNumber } from \"@mittwald/flow-react-components\";\nimport { Breadcrumb as Breadcrumb } from \"@mittwald/flow-react-components\";\nimport { Button as Button } from \"@mittwald/flow-react-components\";\nimport { CartesianChart as CartesianChart } from \"@mittwald/flow-react-components\";\nimport { CartesianGrid as CartesianGrid } from \"@mittwald/flow-react-components\";\nimport { ChartLegend as ChartLegend } from \"@mittwald/flow-react-components\";\nimport { ChartTooltip as ChartTooltip } from \"@mittwald/flow-react-components\";\nimport { Chat as Chat } from \"@mittwald/flow-react-components\";\nimport { Checkbox as Checkbox } from \"@mittwald/flow-react-components\";\nimport { CheckboxButton as CheckboxButton } from \"@mittwald/flow-react-components\";\nimport { CheckboxGroup as CheckboxGroup } from \"@mittwald/flow-react-components\";\nimport { ClearPropsContext as ClearPropsContext } from \"@mittwald/flow-react-components\";\nimport { CodeBlock as CodeBlock } from \"@mittwald/flow-react-components\";\nimport { CodeEditor as CodeEditor } from \"@mittwald/flow-react-components\";\nimport { Color as Color } from \"@mittwald/flow-react-components\";\nimport { ColumnLayout as ColumnLayout } from \"@mittwald/flow-react-components\";\nimport { ComboBox as ComboBox } from \"@mittwald/flow-react-components\";\nimport { ComponentPropsContextProvider as ComponentPropsContextProvider } from \"@mittwald/flow-react-components\";\nimport { Content as Content } from \"@mittwald/flow-react-components\";\nimport { ContextMenu as ContextMenu } from \"@mittwald/flow-react-components\";\nimport { ContextMenuContent as ContextMenuContent } from \"@mittwald/flow-react-components\";\nimport { ContextMenuSection as ContextMenuSection } from \"@mittwald/flow-react-components\";\nimport { ContextMenuTrigger as ContextMenuTrigger } from \"@mittwald/flow-react-components\";\nimport { ContextualHelp as ContextualHelp } from \"@mittwald/flow-react-components\";\nimport { ContextualHelpTrigger as ContextualHelpTrigger } from \"@mittwald/flow-react-components\";\nimport { CopyButton as CopyButton } from \"@mittwald/flow-react-components\";\nimport { CounterBadge as CounterBadge } from \"@mittwald/flow-react-components\";\nimport { DatePicker as DatePicker } from \"@mittwald/flow-react-components\";\nimport { DateRangePicker as DateRangePicker } from \"@mittwald/flow-react-components\";\nimport { DialogTrigger as DialogTrigger } from \"@mittwald/flow-react-components\";\nimport { Div as Div } from \"@mittwald/flow-react-components\";\nimport { DonutChart as DonutChart } from \"@mittwald/flow-react-components\";\nimport { FieldDescription as FieldDescription } from \"@mittwald/flow-react-components\";\nimport { FieldError as FieldError } from \"@mittwald/flow-react-components\";\nimport { FileCard as FileCard } from \"@mittwald/flow-react-components\";\nimport { FileCardList as FileCardList } from \"@mittwald/flow-react-components\";\nimport { FileDropZone as FileDropZone } from \"@mittwald/flow-react-components\";\nimport { FileField as FileField } from \"@mittwald/flow-react-components\";\nimport { Flex as Flex } from \"@mittwald/flow-react-components\";\nimport { Header as Header } from \"@mittwald/flow-react-components\";\nimport { HeaderNavigation as HeaderNavigation } from \"@mittwald/flow-react-components\";\nimport { Heading as Heading } from \"@mittwald/flow-react-components\";\nimport { Icon as Icon } from \"@mittwald/flow-react-components\";\nimport { IllustratedMessage as IllustratedMessage } from \"@mittwald/flow-react-components\";\nimport { Image as Image } from \"@mittwald/flow-react-components\";\nimport { ImageCropper as ImageCropper } from \"@mittwald/flow-react-components\";\nimport { Initials as Initials } from \"@mittwald/flow-react-components\";\nimport { InlineCode as InlineCode } from \"@mittwald/flow-react-components\";\nimport { GridList as ItemsGridList } from \"@mittwald/flow-react-components\";\nimport { GridListItem as ItemsGridListItem } from \"@mittwald/flow-react-components\";\nimport { Kbd as Kbd } from \"@mittwald/flow-react-components\";\nimport { Label as Label } from \"@mittwald/flow-react-components\";\nimport { LabeledValue as LabeledValue } from \"@mittwald/flow-react-components\";\nimport { LayoutCard as LayoutCard } from \"@mittwald/flow-react-components\";\nimport { Legend as Legend } from \"@mittwald/flow-react-components\";\nimport { Line as Line } from \"@mittwald/flow-react-components\";\nimport { Link as Link } from \"@mittwald/flow-react-components\";\nimport { EmptyView as ListEmptyView } from \"@mittwald/flow-react-components\";\nimport { ListItemViewContent as ListItemViewContent } from \"@mittwald/flow-react-components\";\nimport { ListSummary as ListSummary } from \"@mittwald/flow-react-components\";\nimport { LoadingSpinner as LoadingSpinner } from \"@mittwald/flow-react-components\";\nimport { Markdown as Markdown } from \"@mittwald/flow-react-components\";\nimport { MarkdownEditor as MarkdownEditor } from \"@mittwald/flow-react-components\";\nimport { MenuItem as MenuItem } from \"@mittwald/flow-react-components\";\nimport { MenuTrigger as MenuTrigger } from \"@mittwald/flow-react-components\";\nimport { Message as Message } from \"@mittwald/flow-react-components\";\nimport { MessageSeparator as MessageSeparator } from \"@mittwald/flow-react-components\";\nimport { MessageThread as MessageThread } from \"@mittwald/flow-react-components\";\nimport { Navigation as Navigation } from \"@mittwald/flow-react-components\";\nimport { NavigationGroup as NavigationGroup } from \"@mittwald/flow-react-components\";\nimport { Notification as Notification } from \"@mittwald/flow-react-components\";\nimport { NumberField as NumberField } from \"@mittwald/flow-react-components\";\nimport { Option as Option } from \"@mittwald/flow-react-components\";\nimport { OverlayContent as OverlayContent } from \"@mittwald/flow-react-components\";\nimport { PasswordCreationField as PasswordCreationField } from \"@mittwald/flow-react-components\";\nimport { PopoverContent as PopoverContent } from \"@mittwald/flow-react-components\";\nimport { ProgressBar as ProgressBar } from \"@mittwald/flow-react-components\";\nimport { Radio as Radio } from \"@mittwald/flow-react-components\";\nimport { RadioButton as RadioButton } from \"@mittwald/flow-react-components\";\nimport { RadioGroup as RadioGroup } from \"@mittwald/flow-react-components\";\nimport { RangeCalendar as RangeCalendar } from \"@mittwald/flow-react-components\";\nimport { Rating as Rating } from \"@mittwald/flow-react-components\";\nimport { SearchField as SearchField } from \"@mittwald/flow-react-components\";\nimport { Section as Section } from \"@mittwald/flow-react-components\";\nimport { Segment as Segment } from \"@mittwald/flow-react-components\";\nimport { SegmentedControl as SegmentedControl } from \"@mittwald/flow-react-components\";\nimport { Select as Select } from \"@mittwald/flow-react-components\";\nimport { Separator as Separator } from \"@mittwald/flow-react-components\";\nimport { Skeleton as Skeleton } from \"@mittwald/flow-react-components\";\nimport { SkeletonText as SkeletonText } from \"@mittwald/flow-react-components\";\nimport { Slider as Slider } from \"@mittwald/flow-react-components\";\nimport { Switch as Switch } from \"@mittwald/flow-react-components\";\nimport { Tab as Tab } from \"@mittwald/flow-react-components\";\nimport { TabTitle as TabTitle } from \"@mittwald/flow-react-components\";\nimport { Table as Table } from \"@mittwald/flow-react-components\";\nimport { TableBody as TableBody } from \"@mittwald/flow-react-components\";\nimport { TableCell as TableCell } from \"@mittwald/flow-react-components\";\nimport { TableColumn as TableColumn } from \"@mittwald/flow-react-components\";\nimport { TableFooterRow as TableFooterRow } from \"@mittwald/flow-react-components\";\nimport { TableHeader as TableHeader } from \"@mittwald/flow-react-components\";\nimport { TableRow as TableRow } from \"@mittwald/flow-react-components\";\nimport { Tabs as Tabs } from \"@mittwald/flow-react-components\";\nimport { Text as Text } from \"@mittwald/flow-react-components\";\nimport { TextArea as TextArea } from \"@mittwald/flow-react-components\";\nimport { TextField as TextField } from \"@mittwald/flow-react-components\";\nimport { TimeField as TimeField } from \"@mittwald/flow-react-components\";\nimport { Tooltip as Tooltip } from \"@mittwald/flow-react-components\";\nimport { TooltipTrigger as TooltipTrigger } from \"@mittwald/flow-react-components\";\nimport { Truncate as Truncate } from \"@mittwald/flow-react-components\";\nimport { TunnelEntry as TunnelEntry } from \"@mittwald/flow-react-components\";\nimport { XAxis as XAxis } from \"@mittwald/flow-react-components\";\nimport { YAxis as YAxis } from \"@mittwald/flow-react-components\";\n\nexport const flowComponents = {\n \"flr-accent-box\": createFlowRemoteComponentRenderer(\"AccentBox\", AccentBox),\n \"flr-accordion\": createFlowRemoteComponentRenderer(\"Accordion\", Accordion),\n \"flr-action-group\": createFlowRemoteComponentRenderer(\n \"ActionGroup\",\n ActionGroup,\n ),\n \"flr-alert\": createFlowRemoteComponentRenderer(\"Alert\", Alert),\n \"flr-alert-badge\": createFlowRemoteComponentRenderer(\n \"AlertBadge\",\n AlertBadge,\n ),\n \"flr-alert-icon\": createFlowRemoteComponentRenderer(\"AlertIcon\", AlertIcon),\n \"flr-alert-text\": createFlowRemoteComponentRenderer(\"AlertText\", AlertText),\n \"flr-align\": createFlowRemoteComponentRenderer(\"Align\", Align),\n \"flr-area\": createFlowRemoteComponentRenderer(\"Area\", Area),\n \"flr-autocomplete\": createFlowRemoteComponentRenderer(\n \"Autocomplete\",\n Autocomplete,\n ),\n \"flr-avatar\": createFlowRemoteComponentRenderer(\"Avatar\", Avatar),\n \"flr-avatar-stack\": createFlowRemoteComponentRenderer(\n \"AvatarStack\",\n AvatarStack,\n ),\n \"flr-badge\": createFlowRemoteComponentRenderer(\"Badge\", Badge),\n \"flr-big-number\": createFlowRemoteComponentRenderer(\"BigNumber\", BigNumber),\n \"flr-breadcrumb\": createFlowRemoteComponentRenderer(\"Breadcrumb\", Breadcrumb),\n \"flr-button\": createFlowRemoteComponentRenderer(\"Button\", Button),\n \"flr-cartesian-chart\": createFlowRemoteComponentRenderer(\n \"CartesianChart\",\n CartesianChart,\n ),\n \"flr-cartesian-grid\": createFlowRemoteComponentRenderer(\n \"CartesianGrid\",\n CartesianGrid,\n ),\n \"flr-chart-legend\": createFlowRemoteComponentRenderer(\n \"ChartLegend\",\n ChartLegend,\n ),\n \"flr-chart-tooltip\": createFlowRemoteComponentRenderer(\n \"ChartTooltip\",\n ChartTooltip,\n ),\n \"flr-chat\": createFlowRemoteComponentRenderer(\"Chat\", Chat),\n \"flr-checkbox\": createFlowRemoteComponentRenderer(\"Checkbox\", Checkbox),\n \"flr-checkbox-button\": createFlowRemoteComponentRenderer(\n \"CheckboxButton\",\n CheckboxButton,\n ),\n \"flr-checkbox-group\": createFlowRemoteComponentRenderer(\n \"CheckboxGroup\",\n CheckboxGroup,\n ),\n \"flr-clear-props-context\": createFlowRemoteComponentRenderer(\n \"ClearPropsContext\",\n ClearPropsContext,\n ),\n \"flr-code-block\": createFlowRemoteComponentRenderer(\"CodeBlock\", CodeBlock),\n \"flr-code-editor\": createFlowRemoteComponentRenderer(\n \"CodeEditor\",\n CodeEditor,\n ),\n \"flr-color\": createFlowRemoteComponentRenderer(\"Color\", Color),\n \"flr-column-layout\": createFlowRemoteComponentRenderer(\n \"ColumnLayout\",\n ColumnLayout,\n ),\n \"flr-combo-box\": createFlowRemoteComponentRenderer(\"ComboBox\", ComboBox),\n \"flr-component-props-context-provider\": createFlowRemoteComponentRenderer(\n \"ComponentPropsContextProvider\",\n ComponentPropsContextProvider,\n ),\n \"flr-content\": createFlowRemoteComponentRenderer(\"Content\", Content),\n \"flr-context-menu\": createFlowRemoteComponentRenderer(\n \"ContextMenu\",\n ContextMenu,\n ),\n \"flr-context-menu-content\": createFlowRemoteComponentRenderer(\n \"ContextMenuContent\",\n ContextMenuContent,\n ),\n \"flr-context-menu-section\": createFlowRemoteComponentRenderer(\n \"ContextMenuSection\",\n ContextMenuSection,\n ),\n \"flr-context-menu-trigger\": createFlowRemoteComponentRenderer(\n \"ContextMenuTrigger\",\n ContextMenuTrigger,\n ),\n \"flr-contextual-help\": createFlowRemoteComponentRenderer(\n \"ContextualHelp\",\n ContextualHelp,\n ),\n \"flr-contextual-help-trigger\": createFlowRemoteComponentRenderer(\n \"ContextualHelpTrigger\",\n ContextualHelpTrigger,\n ),\n \"flr-copy-button\": createFlowRemoteComponentRenderer(\n \"CopyButton\",\n CopyButton,\n ),\n \"flr-counter-badge\": createFlowRemoteComponentRenderer(\n \"CounterBadge\",\n CounterBadge,\n ),\n \"flr-date-picker\": createFlowRemoteComponentRenderer(\n \"DatePicker\",\n DatePicker,\n ),\n \"flr-date-range-picker\": createFlowRemoteComponentRenderer(\n \"DateRangePicker\",\n DateRangePicker,\n ),\n \"flr-dialog-trigger\": createFlowRemoteComponentRenderer(\n \"DialogTrigger\",\n DialogTrigger,\n ),\n \"flr-div\": createFlowRemoteComponentRenderer(\"Div\", Div),\n \"flr-donut-chart\": createFlowRemoteComponentRenderer(\n \"DonutChart\",\n DonutChart,\n ),\n \"flr-field-description\": createFlowRemoteComponentRenderer(\n \"FieldDescription\",\n FieldDescription,\n ),\n \"flr-field-error\": createFlowRemoteComponentRenderer(\n \"FieldError\",\n FieldError,\n ),\n \"flr-file-card\": createFlowRemoteComponentRenderer(\"FileCard\", FileCard),\n \"flr-file-card-list\": createFlowRemoteComponentRenderer(\n \"FileCardList\",\n FileCardList,\n ),\n \"flr-file-drop-zone\": createFlowRemoteComponentRenderer(\n \"FileDropZone\",\n FileDropZone,\n ),\n \"flr-file-field\": createFlowRemoteComponentRenderer(\"FileField\", FileField),\n \"flr-flex\": createFlowRemoteComponentRenderer(\"Flex\", Flex),\n \"flr-header\": createFlowRemoteComponentRenderer(\"Header\", Header),\n \"flr-header-navigation\": createFlowRemoteComponentRenderer(\n \"HeaderNavigation\",\n HeaderNavigation,\n ),\n \"flr-heading\": createFlowRemoteComponentRenderer(\"Heading\", Heading),\n \"flr-icon\": createFlowRemoteComponentRenderer(\"Icon\", Icon),\n \"flr-illustrated-message\": createFlowRemoteComponentRenderer(\n \"IllustratedMessage\",\n IllustratedMessage,\n ),\n \"flr-image\": createFlowRemoteComponentRenderer(\"Image\", Image),\n \"flr-image-cropper\": createFlowRemoteComponentRenderer(\n \"ImageCropper\",\n ImageCropper,\n ),\n \"flr-initials\": createFlowRemoteComponentRenderer(\"Initials\", Initials),\n \"flr-inline-code\": createFlowRemoteComponentRenderer(\n \"InlineCode\",\n InlineCode,\n ),\n \"flr-items-grid-list\": createFlowRemoteComponentRenderer(\n \"ItemsGridList\",\n ItemsGridList,\n ),\n \"flr-items-grid-list-item\": createFlowRemoteComponentRenderer(\n \"ItemsGridListItem\",\n ItemsGridListItem,\n ),\n \"flr-kbd\": createFlowRemoteComponentRenderer(\"Kbd\", Kbd),\n \"flr-label\": createFlowRemoteComponentRenderer(\"Label\", Label),\n \"flr-labeled-value\": createFlowRemoteComponentRenderer(\n \"LabeledValue\",\n LabeledValue,\n ),\n \"flr-layout-card\": createFlowRemoteComponentRenderer(\n \"LayoutCard\",\n LayoutCard,\n ),\n \"flr-legend\": createFlowRemoteComponentRenderer(\"Legend\", Legend),\n \"flr-line\": createFlowRemoteComponentRenderer(\"Line\", Line),\n \"flr-link\": createFlowRemoteComponentRenderer(\"Link\", Link),\n \"flr-list-empty-view\": createFlowRemoteComponentRenderer(\n \"ListEmptyView\",\n ListEmptyView,\n ),\n \"flr-list-item-view-content\": createFlowRemoteComponentRenderer(\n \"ListItemViewContent\",\n ListItemViewContent,\n ),\n \"flr-list-summary\": createFlowRemoteComponentRenderer(\n \"ListSummary\",\n ListSummary,\n ),\n \"flr-loading-spinner\": createFlowRemoteComponentRenderer(\n \"LoadingSpinner\",\n LoadingSpinner,\n ),\n \"flr-markdown\": createFlowRemoteComponentRenderer(\"Markdown\", Markdown),\n \"flr-markdown-editor\": createFlowRemoteComponentRenderer(\n \"MarkdownEditor\",\n MarkdownEditor,\n ),\n \"flr-menu-item\": createFlowRemoteComponentRenderer(\"MenuItem\", MenuItem),\n \"flr-menu-trigger\": createFlowRemoteComponentRenderer(\n \"MenuTrigger\",\n MenuTrigger,\n ),\n \"flr-message\": createFlowRemoteComponentRenderer(\"Message\", Message),\n \"flr-message-separator\": createFlowRemoteComponentRenderer(\n \"MessageSeparator\",\n MessageSeparator,\n ),\n \"flr-message-thread\": createFlowRemoteComponentRenderer(\n \"MessageThread\",\n MessageThread,\n ),\n \"flr-navigation\": createFlowRemoteComponentRenderer(\"Navigation\", Navigation),\n \"flr-navigation-group\": createFlowRemoteComponentRenderer(\n \"NavigationGroup\",\n NavigationGroup,\n ),\n \"flr-notification\": createFlowRemoteComponentRenderer(\n \"Notification\",\n Notification,\n ),\n \"flr-number-field\": createFlowRemoteComponentRenderer(\n \"NumberField\",\n NumberField,\n ),\n \"flr-option\": createFlowRemoteComponentRenderer(\"Option\", Option),\n \"flr-overlay-content\": createFlowRemoteComponentRenderer(\n \"OverlayContent\",\n OverlayContent,\n ),\n \"flr-password-creation-field\": createFlowRemoteComponentRenderer(\n \"PasswordCreationField\",\n PasswordCreationField,\n ),\n \"flr-popover-content\": createFlowRemoteComponentRenderer(\n \"PopoverContent\",\n PopoverContent,\n ),\n \"flr-progress-bar\": createFlowRemoteComponentRenderer(\n \"ProgressBar\",\n ProgressBar,\n ),\n \"flr-radio\": createFlowRemoteComponentRenderer(\"Radio\", Radio),\n \"flr-radio-button\": createFlowRemoteComponentRenderer(\n \"RadioButton\",\n RadioButton,\n ),\n \"flr-radio-group\": createFlowRemoteComponentRenderer(\n \"RadioGroup\",\n RadioGroup,\n ),\n \"flr-range-calendar\": createFlowRemoteComponentRenderer(\n \"RangeCalendar\",\n RangeCalendar,\n ),\n \"flr-rating\": createFlowRemoteComponentRenderer(\"Rating\", Rating),\n \"flr-search-field\": createFlowRemoteComponentRenderer(\n \"SearchField\",\n SearchField,\n ),\n \"flr-section\": createFlowRemoteComponentRenderer(\"Section\", Section),\n \"flr-segment\": createFlowRemoteComponentRenderer(\"Segment\", Segment),\n \"flr-segmented-control\": createFlowRemoteComponentRenderer(\n \"SegmentedControl\",\n SegmentedControl,\n ),\n \"flr-select\": createFlowRemoteComponentRenderer(\"Select\", Select),\n \"flr-separator\": createFlowRemoteComponentRenderer(\"Separator\", Separator),\n \"flr-skeleton\": createFlowRemoteComponentRenderer(\"Skeleton\", Skeleton),\n \"flr-skeleton-text\": createFlowRemoteComponentRenderer(\n \"SkeletonText\",\n SkeletonText,\n ),\n \"flr-slider\": createFlowRemoteComponentRenderer(\"Slider\", Slider),\n \"flr-switch\": createFlowRemoteComponentRenderer(\"Switch\", Switch),\n \"flr-tab\": createFlowRemoteComponentRenderer(\"Tab\", Tab),\n \"flr-tab-title\": createFlowRemoteComponentRenderer(\"TabTitle\", TabTitle),\n \"flr-table\": createFlowRemoteComponentRenderer(\"Table\", Table),\n \"flr-table-body\": createFlowRemoteComponentRenderer(\"TableBody\", TableBody),\n \"flr-table-cell\": createFlowRemoteComponentRenderer(\"TableCell\", TableCell),\n \"flr-table-column\": createFlowRemoteComponentRenderer(\n \"TableColumn\",\n TableColumn,\n ),\n \"flr-table-footer-row\": createFlowRemoteComponentRenderer(\n \"TableFooterRow\",\n TableFooterRow,\n ),\n \"flr-table-header\": createFlowRemoteComponentRenderer(\n \"TableHeader\",\n TableHeader,\n ),\n \"flr-table-row\": createFlowRemoteComponentRenderer(\"TableRow\", TableRow),\n \"flr-tabs\": createFlowRemoteComponentRenderer(\"Tabs\", Tabs),\n \"flr-text\": createFlowRemoteComponentRenderer(\"Text\", Text),\n \"flr-text-area\": createFlowRemoteComponentRenderer(\"TextArea\", TextArea),\n \"flr-text-field\": createFlowRemoteComponentRenderer(\"TextField\", TextField),\n \"flr-time-field\": createFlowRemoteComponentRenderer(\"TimeField\", TimeField),\n \"flr-tooltip\": createFlowRemoteComponentRenderer(\"Tooltip\", Tooltip),\n \"flr-tooltip-trigger\": createFlowRemoteComponentRenderer(\n \"TooltipTrigger\",\n TooltipTrigger,\n ),\n \"flr-truncate\": createFlowRemoteComponentRenderer(\"Truncate\", Truncate),\n \"flr-tunnel-entry\": createFlowRemoteComponentRenderer(\n \"TunnelEntry\",\n TunnelEntry,\n ),\n \"flr-x-axis\": createFlowRemoteComponentRenderer(\"XAxis\", XAxis),\n \"flr-y-axis\": createFlowRemoteComponentRenderer(\"YAxis\", YAxis),\n} as const;\n\nexport default flowComponents;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import { prepareFormData } from "./lib/prepareFormData.mjs";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/Form.tsx
|
|
7
|
+
var Form = (props) => {
|
|
8
|
+
const { action: onActionFromProps, onSubmit: onSubmitFromProps, ref, ...rest } = props;
|
|
9
|
+
const onSubmit = async (event) => {
|
|
10
|
+
event.preventDefault();
|
|
11
|
+
const resolvedData = await prepareFormData(new FormData(event.currentTarget));
|
|
12
|
+
await onSubmitFromProps?.(resolvedData);
|
|
13
|
+
};
|
|
14
|
+
const onAction = async (formData) => {
|
|
15
|
+
const resolvedFormData = await prepareFormData(formData);
|
|
16
|
+
await onActionFromProps?.(resolvedFormData);
|
|
17
|
+
};
|
|
18
|
+
return /* @__PURE__ */ jsx("form", {
|
|
19
|
+
...rest,
|
|
20
|
+
ref,
|
|
21
|
+
action: onActionFromProps ? onAction : void 0,
|
|
22
|
+
onSubmit: onSubmitFromProps ? onSubmit : void 0
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Form };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=Form.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.mjs","names":[],"sources":["../../../../../../src/components/Form.tsx"],"sourcesContent":["import {\n type FC,\n type FormEvent,\n type PropsWithChildren,\n type Ref,\n} from \"react\";\nimport { prepareFormData } from \"@/components/lib/prepareFormData\";\n\ntype FormProps = {\n action?: (data: FormData) => void | Promise<void>;\n onSubmit?: (data: FormData) => void | Promise<void>;\n ref?: Ref<HTMLFormElement>;\n} & PropsWithChildren;\n\nexport const Form: FC<FormProps> = (props) => {\n const {\n action: onActionFromProps,\n onSubmit: onSubmitFromProps,\n ref,\n ...rest\n } = props;\n\n const onSubmit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const resolvedData = await prepareFormData(\n new FormData(event.currentTarget),\n );\n await onSubmitFromProps?.(resolvedData);\n };\n\n const onAction = async (formData: FormData) => {\n const resolvedFormData = await prepareFormData(formData);\n await onActionFromProps?.(resolvedFormData);\n };\n\n return (\n <form\n {...rest}\n ref={ref}\n action={onActionFromProps ? onAction : undefined}\n onSubmit={onSubmitFromProps ? onSubmit : undefined}\n />\n );\n};\n"],"mappings":";;;;AAcA,IAAa,QAAuB,UAAU;CAC5C,MAAM,EACJ,QAAQ,mBACR,UAAU,mBACV,KACA,GAAG,SACD;CAEJ,MAAM,WAAW,OAAO,UAAsC;AAC5D,QAAM,gBAAgB;EACtB,MAAM,eAAe,MAAM,gBACzB,IAAI,SAAS,MAAM,cAAc,CAClC;AACD,QAAM,oBAAoB,aAAa;;CAGzC,MAAM,WAAW,OAAO,aAAuB;EAC7C,MAAM,mBAAmB,MAAM,gBAAgB,SAAS;AACxD,QAAM,oBAAoB,iBAAiB;;AAG7C,QACE,oBAAC,QAAD;EACE,GAAI;EACC;EACL,QAAQ,oBAAoB,WAAW,KAAA;EACvC,UAAU,oBAAoB,WAAW,KAAA;EACzC,CAAA"}
|
package/dist/js/packages/remote-react-renderer/src/components/NotificationRenderController.mjs
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import { Notification, useNotificationController } from "@mittwald/flow-react-components";
|
|
4
|
+
import { useEffect, useRef } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/NotificationRenderController.tsx
|
|
7
|
+
var NotificationRenderController = (props) => {
|
|
8
|
+
const notifications = useNotificationController();
|
|
9
|
+
const isAdded = useRef(false);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (isAdded.current) return;
|
|
12
|
+
const id = notifications.add(/* @__PURE__ */ jsx(Notification, { ...props }));
|
|
13
|
+
isAdded.current = true;
|
|
14
|
+
return () => {
|
|
15
|
+
notifications.remove(id);
|
|
16
|
+
isAdded.current = false;
|
|
17
|
+
};
|
|
18
|
+
}, [notifications]);
|
|
19
|
+
return null;
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { NotificationRenderController };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=NotificationRenderController.mjs.map
|
package/dist/js/packages/remote-react-renderer/src/components/NotificationRenderController.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationRenderController.mjs","names":[],"sources":["../../../../../../src/components/NotificationRenderController.tsx"],"sourcesContent":["import {\n useNotificationController,\n type NotificationProps,\n Notification,\n} from \"@mittwald/flow-react-components\";\nimport { useEffect, useRef, type FC } from \"react\";\n\nexport const NotificationRenderController: FC<NotificationProps> = (props) => {\n const notifications = useNotificationController();\n const isAdded = useRef(false);\n\n useEffect(() => {\n if (isAdded.current) {\n return;\n }\n\n const id = notifications.add(<Notification {...props} />);\n isAdded.current = true;\n\n return () => {\n notifications.remove(id);\n isAdded.current = false;\n };\n }, [notifications]);\n\n return null;\n};\n"],"mappings":";;;;AAOA,IAAa,gCAAuD,UAAU;CAC5E,MAAM,gBAAgB,2BAA2B;CACjD,MAAM,UAAU,OAAO,MAAM;AAE7B,iBAAgB;AACd,MAAI,QAAQ,QACV;EAGF,MAAM,KAAK,cAAc,IAAI,oBAAC,cAAD,EAAc,GAAI,OAAS,CAAA,CAAC;AACzD,UAAQ,UAAU;AAElB,eAAa;AACX,iBAAc,OAAO,GAAG;AACxB,WAAQ,UAAU;;IAEnB,CAAC,cAAc,CAAC;AAEnB,QAAO"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import React, { createElement } from "react";
|
|
4
|
+
//#region src/components/SlotRootWrapper.ts
|
|
5
|
+
var SlotRootWrapper = (props) => {
|
|
6
|
+
return createElement(React.Fragment, {}, props.children);
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { SlotRootWrapper as default };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=SlotRootWrapper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlotRootWrapper.mjs","names":[],"sources":["../../../../../../src/components/SlotRootWrapper.ts"],"sourcesContent":["import React, { createElement, type FC, type PropsWithChildren } from \"react\";\n\nexport const SlotRootWrapper: FC<PropsWithChildren> = (props) => {\n return createElement(React.Fragment, {}, props.children);\n};\n\nexport default SlotRootWrapper;\n"],"mappings":";;AAEA,IAAa,mBAA0C,UAAU;AAC/D,QAAO,cAAc,MAAM,UAAU,EAAE,EAAE,MAAM,SAAS"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import { addAwaitedArrayBuffer } from "../../../../core/src/file.mjs";
|
|
4
|
+
import "../../../../core/src/index.mjs";
|
|
5
|
+
//#region src/components/lib/prepareFormData.ts
|
|
6
|
+
var prepareFormData = async (formData) => {
|
|
7
|
+
for (const [fieldName] of formData) {
|
|
8
|
+
const fieldValues = formData.getAll(fieldName);
|
|
9
|
+
if (fieldValues.every((v) => v instanceof File)) formData.delete(fieldName);
|
|
10
|
+
for (let value of fieldValues) if (value instanceof File) {
|
|
11
|
+
if (!value.name || value.size <= 0) break;
|
|
12
|
+
value = await addAwaitedArrayBuffer(value);
|
|
13
|
+
if (formData.has(fieldName)) formData.append(fieldName, value);
|
|
14
|
+
else formData.set(fieldName, value);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return formData;
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { prepareFormData };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=prepareFormData.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareFormData.mjs","names":[],"sources":["../../../../../../../src/components/lib/prepareFormData.ts"],"sourcesContent":["import { addAwaitedArrayBuffer } from \"@mittwald/flow-core\";\n\nexport const prepareFormData = async (\n formData: FormData,\n): Promise<FormData> => {\n for (const [fieldName] of formData) {\n const fieldValues = formData.getAll(fieldName);\n\n if (fieldValues.every((v) => v instanceof File)) {\n formData.delete(fieldName);\n }\n\n for (let value of fieldValues) {\n if (value instanceof File) {\n if (!value.name || value.size <= 0) {\n break;\n }\n\n value = await addAwaitedArrayBuffer(value);\n if (formData.has(fieldName)) {\n formData.append(fieldName, value);\n } else {\n formData.set(fieldName, value);\n }\n }\n }\n }\n\n return formData;\n};\n"],"mappings":";;;AAEA,IAAa,kBAAkB,OAC7B,aACsB;AACtB,MAAK,MAAM,CAAC,cAAc,UAAU;EAClC,MAAM,cAAc,SAAS,OAAO,UAAU;AAE9C,MAAI,YAAY,OAAO,MAAM,aAAa,KAAK,CAC7C,UAAS,OAAO,UAAU;AAG5B,OAAK,IAAI,SAAS,YAChB,KAAI,iBAAiB,MAAM;AACzB,OAAI,CAAC,MAAM,QAAQ,MAAM,QAAQ,EAC/B;AAGF,WAAQ,MAAM,sBAAsB,MAAM;AAC1C,OAAI,SAAS,IAAI,UAAU,CACzB,UAAS,OAAO,WAAW,MAAM;OAEjC,UAAS,IAAI,WAAW,MAAM;;;AAMtC,QAAO"}
|