@mittwald/flow-remote-react-renderer 0.2.0-alpha.8 → 0.2.0-alpha.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/js/RemoteRenderer.mjs +16 -0
  2. package/dist/js/RemoteRenderer.mjs.map +1 -0
  3. package/dist/js/RemoteRendererClient.mjs +55 -0
  4. package/dist/js/RemoteRendererClient.mjs.map +1 -0
  5. package/dist/js/auto-generated/index.mjs +113 -0
  6. package/dist/js/auto-generated/index.mjs.map +1 -0
  7. package/dist/js/components/Form.mjs +22 -0
  8. package/dist/js/components/Form.mjs.map +1 -0
  9. package/dist/js/components/lib/getFormDataObject.mjs +7 -0
  10. package/dist/js/components/lib/getFormDataObject.mjs.map +1 -0
  11. package/dist/js/components.mjs +26 -0
  12. package/dist/js/components.mjs.map +1 -0
  13. package/dist/js/hooks/useIsMounted.mjs +14 -0
  14. package/dist/js/hooks/useIsMounted.mjs.map +1 -0
  15. package/dist/js/index.mjs +7 -0
  16. package/dist/js/index.mjs.map +1 -0
  17. package/dist/js/lib/createFlowRemoteComponentRenderer.mjs +36 -0
  18. package/dist/js/lib/createFlowRemoteComponentRenderer.mjs.map +1 -0
  19. package/dist/js/lib/elementFactory.mjs +19 -0
  20. package/dist/js/lib/elementFactory.mjs.map +1 -0
  21. package/dist/js/lib/mapAttributeToReactProperty.mjs +14 -0
  22. package/dist/js/lib/mapAttributeToReactProperty.mjs.map +1 -0
  23. package/dist/js/lib/propClassifiers.mjs +13 -0
  24. package/dist/js/lib/propClassifiers.mjs.map +1 -0
  25. package/dist/types/RemoteRenderer.d.ts +4 -7
  26. package/dist/types/RemoteRenderer.d.ts.map +1 -0
  27. package/dist/types/RemoteRendererClient.d.ts +11 -0
  28. package/dist/types/RemoteRendererClient.d.ts.map +1 -0
  29. package/dist/types/auto-generated/index.d.ts +101 -109
  30. package/dist/types/auto-generated/index.d.ts.map +1 -0
  31. package/dist/types/components/Form.d.ts +1 -0
  32. package/dist/types/components/Form.d.ts.map +1 -0
  33. package/dist/types/components/lib/getFormDataObject.d.ts +1 -0
  34. package/dist/types/components/lib/getFormDataObject.d.ts.map +1 -0
  35. package/dist/types/components.d.ts +107 -114
  36. package/dist/types/components.d.ts.map +1 -0
  37. package/dist/types/hooks/useIsMounted.d.ts +2 -0
  38. package/dist/types/hooks/useIsMounted.d.ts.map +1 -0
  39. package/dist/types/index.d.ts +1 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/types/lib/createFlowRemoteComponentRenderer.d.ts +3 -2
  42. package/dist/types/lib/createFlowRemoteComponentRenderer.d.ts.map +1 -0
  43. package/dist/types/lib/elementFactory.d.ts +4 -2
  44. package/dist/types/lib/elementFactory.d.ts.map +1 -0
  45. package/dist/types/lib/mapAttributeToReactProperty.d.ts +2 -0
  46. package/dist/types/lib/mapAttributeToReactProperty.d.ts.map +1 -0
  47. package/dist/types/lib/propClassifiers.d.ts +3 -0
  48. package/dist/types/lib/propClassifiers.d.ts.map +1 -0
  49. package/dist/types/lib/stringChildrenExtractor.d.ts +1 -0
  50. package/dist/types/lib/stringChildrenExtractor.d.ts.map +1 -0
  51. package/dist/types/lib/types.d.ts +2 -1
  52. package/dist/types/lib/types.d.ts.map +1 -0
  53. package/package.json +32 -26
  54. package/dist/index.js +0 -770
  55. package/dist/polyfill.js +0 -2
  56. package/dist/types/lib/mapReactElementAttributes.d.ts +0 -6
  57. package/dist/types/lib/possibleStandardNames.d.ts +0 -495
  58. package/dist/types/polyfill.d.ts +0 -0
@@ -0,0 +1,16 @@
1
+ "use client"
2
+ /* */
3
+ "use client";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import React from "react";
6
+ import { useIsMounted } from "./hooks/useIsMounted.mjs";
7
+ const RemoteRendererClient = React.lazy(() => import("./RemoteRendererClient.mjs"));
8
+ const RemoteRenderer = (props) => {
9
+ const isMounted = useIsMounted();
10
+ return isMounted ? /* @__PURE__ */ jsx(RemoteRendererClient, { ...props }) : null;
11
+ };
12
+ export {
13
+ RemoteRenderer,
14
+ RemoteRenderer as default
15
+ };
16
+ //# sourceMappingURL=RemoteRenderer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteRenderer.mjs","sources":["../../src/RemoteRenderer.tsx"],"sourcesContent":["\"use client\";\nimport type { FC } from \"react\";\nimport React from \"react\";\nimport { useIsMounted } from \"@/hooks/useIsMounted\";\nimport type { RemoteRendererProps } from \"@/RemoteRendererClient\";\n\nconst RemoteRendererClient = React.lazy(() => import(\"./RemoteRendererClient\"));\n\nexport const RemoteRenderer: FC<RemoteRendererProps> = (props) => {\n const isMounted = useIsMounted();\n return isMounted ? <RemoteRendererClient {...props} /> : null;\n};\n\nexport default RemoteRenderer;\n"],"names":[],"mappings":";;;;AAMA,MAAM,uBAAuB,MAAM,KAAK,MAAM,OAAO,4BAAwB,CAAC;AAEjE,MAAA,iBAA0C,CAAC,UAAU;AAChE,QAAM,YAAY,aAAa;AAC/B,SAAO,YAAY,oBAAC,sBAAsB,EAAA,GAAG,MAAO,CAAA,IAAK;AAC3D;"}
@@ -0,0 +1,55 @@
1
+ "use client"
2
+ /* */
3
+ "use client";
4
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
5
+ import { components } from "./components.mjs";
6
+ import { RemoteReceiver, RemoteRootRenderer } from "@mfalkenberg/remote-dom-react/host";
7
+ import { connectRemoteIframeRef } from "@mittwald/flow-remote-core";
8
+ import { useMemo, useState } from "react";
9
+ import { reduce } from "remeda";
10
+ const RemoteRendererClient = (props) => {
11
+ const { integrations = [], src, iframeStyle, fallback } = props;
12
+ const receiver = useMemo(() => new RemoteReceiver(), []);
13
+ const mergedComponents = useMemo(() => {
14
+ return new Map(
15
+ Object.entries(
16
+ reduce(
17
+ [...integrations, components],
18
+ (merged, current) => ({
19
+ ...merged,
20
+ ...current
21
+ }),
22
+ {}
23
+ )
24
+ )
25
+ );
26
+ }, [...integrations]);
27
+ const connect = connectRemoteIframeRef(receiver.connection);
28
+ const [iframeHasLoaded, setIframeHasLoaded] = useState(false);
29
+ const remoteFrame = /* @__PURE__ */ jsx(
30
+ "iframe",
31
+ {
32
+ onLoad: () => setIframeHasLoaded(true),
33
+ ref: connect,
34
+ src,
35
+ style: iframeStyle ?? {
36
+ visibility: "hidden",
37
+ height: 0,
38
+ width: 0,
39
+ border: "none",
40
+ position: "absolute",
41
+ marginLeft: "-9999px"
42
+ }
43
+ }
44
+ );
45
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
46
+ !iframeHasLoaded && fallback,
47
+ /* @__PURE__ */ jsx(RemoteRootRenderer, { components: mergedComponents, receiver }),
48
+ remoteFrame
49
+ ] });
50
+ };
51
+ export {
52
+ RemoteRendererClient,
53
+ RemoteRendererClient as default
54
+ };
55
+ //# sourceMappingURL=RemoteRendererClient.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteRendererClient.mjs","sources":["../../src/RemoteRendererClient.tsx"],"sourcesContent":["\"use client\";\nimport { components } from \"@/components\";\nimport type { RemoteComponentsMap } from \"@/lib/types\";\nimport type { RemoteComponentRendererProps } from \"@mfalkenberg/remote-dom-react/host\";\nimport {\n RemoteReceiver,\n RemoteRootRenderer,\n} from \"@mfalkenberg/remote-dom-react/host\";\nimport { connectRemoteIframeRef } from \"@mittwald/flow-remote-core\";\nimport type { ComponentType, CSSProperties, FC, ReactNode } from \"react\";\nimport { useMemo, useState } from \"react\";\nimport { reduce } from \"remeda\";\n\nexport interface RemoteRendererProps {\n integrations?: RemoteComponentsMap<never>[];\n src: string;\n iframeStyle?: CSSProperties;\n fallback?: ReactNode;\n}\n\nexport const RemoteRendererClient: FC<RemoteRendererProps> = (props) => {\n const { integrations = [], src, iframeStyle, fallback } = props;\n const receiver = useMemo(() => new RemoteReceiver(), []);\n\n const mergedComponents = useMemo(() => {\n return new Map<string, ComponentType<RemoteComponentRendererProps>>(\n Object.entries(\n reduce(\n [...integrations, components],\n (merged, current) => ({\n ...merged,\n ...current,\n }),\n {},\n ),\n ),\n );\n }, [...integrations]);\n\n const connect = connectRemoteIframeRef(receiver.connection);\n\n const [iframeHasLoaded, setIframeHasLoaded] = useState(false);\n\n const remoteFrame = (\n <iframe\n onLoad={() => setIframeHasLoaded(true)}\n ref={connect}\n src={src}\n style={\n iframeStyle ?? {\n visibility: \"hidden\",\n height: 0,\n width: 0,\n border: \"none\",\n position: \"absolute\",\n marginLeft: \"-9999px\",\n }\n }\n />\n );\n\n return (\n <>\n {!iframeHasLoaded && fallback}\n <RemoteRootRenderer components={mergedComponents} receiver={receiver} />\n {remoteFrame}\n </>\n );\n};\n\nexport default RemoteRendererClient;\n"],"names":[],"mappings":";;;;;;;AAoBa,MAAA,uBAAgD,CAAC,UAAU;AACtE,QAAM,EAAE,eAAe,IAAI,KAAK,aAAa,aAAa;AAC1D,QAAM,WAAW,QAAQ,MAAM,IAAI,eAAe,GAAG,CAAA,CAAE;AAEjD,QAAA,mBAAmB,QAAQ,MAAM;AACrC,WAAO,IAAI;AAAA,MACT,OAAO;AAAA,QACL;AAAA,UACE,CAAC,GAAG,cAAc,UAAU;AAAA,UAC5B,CAAC,QAAQ,aAAa;AAAA,YACpB,GAAG;AAAA,YACH,GAAG;AAAA,UAAA;AAAA,UAEL,CAAA;AAAA,QAAC;AAAA,MACH;AAAA,IAEJ;AAAA,EAAA,GACC,CAAC,GAAG,YAAY,CAAC;AAEd,QAAA,UAAU,uBAAuB,SAAS,UAAU;AAE1D,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,KAAK;AAE5D,QAAM,cACJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAQ,MAAM,mBAAmB,IAAI;AAAA,MACrC,KAAK;AAAA,MACL;AAAA,MACA,OACE,eAAe;AAAA,QACb,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,YAAY;AAAA,MAAA;AAAA,IACd;AAAA,EAEJ;AAGF,SAEK,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,CAAC,mBAAmB;AAAA,IACpB,oBAAA,oBAAA,EAAmB,YAAY,kBAAkB,SAAoB,CAAA;AAAA,IACrE;AAAA,EAAA,GACH;AAEJ;"}
@@ -0,0 +1,113 @@
1
+ "use client"
2
+ /* */
3
+ import { createFlowRemoteComponentRenderer } from "../lib/createFlowRemoteComponentRenderer.mjs";
4
+ import { TooltipTrigger, Tooltip, TimeField, TextField, TextArea, Text, Tabs, TableRow, TableHeader, TableFooterRow, TableColumn, TableCell, TableBody, Table, TabTitle, Tab, Switch, Slider, SkeletonText, Skeleton, Separator, Select, SegmentedControl, Segment, Section, SearchField, RadioGroup, RadioButton, Radio, ProgressBar, PopoverContent, OverlayContent, Option, NumberField, NotificationProvider, Notification, NavigationGroup, Navigation, MessageThread, MessageSeparator, Message, MenuTrigger, MenuItem, Markdown, LoadingSpinner, ListSummary, ListItemViewContent, EmptyView, Link, LightBoxTrigger, LightBox, LayoutCard, LabeledValue, Label, GridListItem, GridList, InlineCode, Initials, Image, IllustratedMessage, Icon, Heading, HeaderNavigation, Header, Fragment, FileField, FileCardList, FileCard, FieldError, FieldDescription, Div, DialogTrigger, DateRangePicker, DatePicker, CountryOptions, CounterBadge, CopyButton, ContextualHelpTrigger, ContextualHelp, ContextMenuSection, ContextMenuContent, Content, ColumnLayout, CodeBlock, ClearPropsContext, CheckboxGroup, CheckboxButton, Checkbox, Chat, Button, Breadcrumb, Badge, AvatarStack, Avatar, Align, AlertIcon, AlertBadge, Alert, ActionGroup, Accordion } from "@mittwald/flow-react-components";
5
+ const flowComponents = {
6
+ "flr-accordion": createFlowRemoteComponentRenderer(Accordion),
7
+ "flr-action-group": createFlowRemoteComponentRenderer(ActionGroup),
8
+ "flr-alert": createFlowRemoteComponentRenderer(Alert),
9
+ "flr-alert-badge": createFlowRemoteComponentRenderer(AlertBadge),
10
+ "flr-alert-icon": createFlowRemoteComponentRenderer(AlertIcon),
11
+ "flr-align": createFlowRemoteComponentRenderer(Align),
12
+ "flr-avatar": createFlowRemoteComponentRenderer(Avatar),
13
+ "flr-avatar-stack": createFlowRemoteComponentRenderer(AvatarStack),
14
+ "flr-badge": createFlowRemoteComponentRenderer(Badge),
15
+ "flr-breadcrumb": createFlowRemoteComponentRenderer(Breadcrumb),
16
+ "flr-button": createFlowRemoteComponentRenderer(Button),
17
+ "flr-chat": createFlowRemoteComponentRenderer(Chat),
18
+ "flr-checkbox": createFlowRemoteComponentRenderer(Checkbox),
19
+ "flr-checkbox-button": createFlowRemoteComponentRenderer(CheckboxButton),
20
+ "flr-checkbox-group": createFlowRemoteComponentRenderer(CheckboxGroup),
21
+ "flr-clear-props-context": createFlowRemoteComponentRenderer(ClearPropsContext),
22
+ "flr-code-block": createFlowRemoteComponentRenderer(CodeBlock),
23
+ "flr-column-layout": createFlowRemoteComponentRenderer(ColumnLayout),
24
+ "flr-content": createFlowRemoteComponentRenderer(Content),
25
+ "flr-context-menu-content": createFlowRemoteComponentRenderer(ContextMenuContent),
26
+ "flr-context-menu-section": createFlowRemoteComponentRenderer(ContextMenuSection),
27
+ "flr-contextual-help": createFlowRemoteComponentRenderer(ContextualHelp),
28
+ "flr-contextual-help-trigger": createFlowRemoteComponentRenderer(
29
+ ContextualHelpTrigger
30
+ ),
31
+ "flr-copy-button": createFlowRemoteComponentRenderer(CopyButton),
32
+ "flr-counter-badge": createFlowRemoteComponentRenderer(CounterBadge),
33
+ "flr-country-options": createFlowRemoteComponentRenderer(CountryOptions),
34
+ "flr-date-picker": createFlowRemoteComponentRenderer(DatePicker),
35
+ "flr-date-range-picker": createFlowRemoteComponentRenderer(DateRangePicker),
36
+ "flr-dialog-trigger": createFlowRemoteComponentRenderer(DialogTrigger),
37
+ "flr-div": createFlowRemoteComponentRenderer(Div),
38
+ "flr-field-description": createFlowRemoteComponentRenderer(FieldDescription),
39
+ "flr-field-error": createFlowRemoteComponentRenderer(FieldError),
40
+ "flr-file-card": createFlowRemoteComponentRenderer(FileCard),
41
+ "flr-file-card-list": createFlowRemoteComponentRenderer(FileCardList),
42
+ "flr-file-field": createFlowRemoteComponentRenderer(FileField),
43
+ "flr-fragment": createFlowRemoteComponentRenderer(Fragment),
44
+ "flr-header": createFlowRemoteComponentRenderer(Header),
45
+ "flr-header-navigation": createFlowRemoteComponentRenderer(HeaderNavigation),
46
+ "flr-heading": createFlowRemoteComponentRenderer(Heading),
47
+ "flr-icon": createFlowRemoteComponentRenderer(Icon),
48
+ "flr-illustrated-message": createFlowRemoteComponentRenderer(IllustratedMessage),
49
+ "flr-image": createFlowRemoteComponentRenderer(Image),
50
+ "flr-initials": createFlowRemoteComponentRenderer(Initials),
51
+ "flr-inline-code": createFlowRemoteComponentRenderer(InlineCode),
52
+ "flr-items-grid-list": createFlowRemoteComponentRenderer(GridList),
53
+ "flr-items-grid-list-item": createFlowRemoteComponentRenderer(GridListItem),
54
+ "flr-label": createFlowRemoteComponentRenderer(Label),
55
+ "flr-labeled-value": createFlowRemoteComponentRenderer(LabeledValue),
56
+ "flr-layout-card": createFlowRemoteComponentRenderer(LayoutCard),
57
+ "flr-light-box": createFlowRemoteComponentRenderer(LightBox),
58
+ "flr-light-box-trigger": createFlowRemoteComponentRenderer(LightBoxTrigger),
59
+ "flr-link": createFlowRemoteComponentRenderer(Link),
60
+ "flr-list-empty-view": createFlowRemoteComponentRenderer(EmptyView),
61
+ "flr-list-item-view-content": createFlowRemoteComponentRenderer(ListItemViewContent),
62
+ "flr-list-summary": createFlowRemoteComponentRenderer(ListSummary),
63
+ "flr-loading-spinner": createFlowRemoteComponentRenderer(LoadingSpinner),
64
+ "flr-markdown": createFlowRemoteComponentRenderer(Markdown),
65
+ "flr-menu-item": createFlowRemoteComponentRenderer(MenuItem),
66
+ "flr-menu-trigger": createFlowRemoteComponentRenderer(MenuTrigger),
67
+ "flr-message": createFlowRemoteComponentRenderer(Message),
68
+ "flr-message-separator": createFlowRemoteComponentRenderer(MessageSeparator),
69
+ "flr-message-thread": createFlowRemoteComponentRenderer(MessageThread),
70
+ "flr-navigation": createFlowRemoteComponentRenderer(Navigation),
71
+ "flr-navigation-group": createFlowRemoteComponentRenderer(NavigationGroup),
72
+ "flr-notification": createFlowRemoteComponentRenderer(Notification),
73
+ "flr-notification-provider": createFlowRemoteComponentRenderer(NotificationProvider),
74
+ "flr-number-field": createFlowRemoteComponentRenderer(NumberField),
75
+ "flr-option": createFlowRemoteComponentRenderer(Option),
76
+ "flr-overlay-content": createFlowRemoteComponentRenderer(OverlayContent),
77
+ "flr-popover-content": createFlowRemoteComponentRenderer(PopoverContent),
78
+ "flr-progress-bar": createFlowRemoteComponentRenderer(ProgressBar),
79
+ "flr-radio": createFlowRemoteComponentRenderer(Radio),
80
+ "flr-radio-button": createFlowRemoteComponentRenderer(RadioButton),
81
+ "flr-radio-group": createFlowRemoteComponentRenderer(RadioGroup),
82
+ "flr-search-field": createFlowRemoteComponentRenderer(SearchField),
83
+ "flr-section": createFlowRemoteComponentRenderer(Section),
84
+ "flr-segment": createFlowRemoteComponentRenderer(Segment),
85
+ "flr-segmented-control": createFlowRemoteComponentRenderer(SegmentedControl),
86
+ "flr-select": createFlowRemoteComponentRenderer(Select),
87
+ "flr-separator": createFlowRemoteComponentRenderer(Separator),
88
+ "flr-skeleton": createFlowRemoteComponentRenderer(Skeleton),
89
+ "flr-skeleton-text": createFlowRemoteComponentRenderer(SkeletonText),
90
+ "flr-slider": createFlowRemoteComponentRenderer(Slider),
91
+ "flr-switch": createFlowRemoteComponentRenderer(Switch),
92
+ "flr-tab": createFlowRemoteComponentRenderer(Tab),
93
+ "flr-tab-title": createFlowRemoteComponentRenderer(TabTitle),
94
+ "flr-table": createFlowRemoteComponentRenderer(Table),
95
+ "flr-table-body": createFlowRemoteComponentRenderer(TableBody),
96
+ "flr-table-cell": createFlowRemoteComponentRenderer(TableCell),
97
+ "flr-table-column": createFlowRemoteComponentRenderer(TableColumn),
98
+ "flr-table-footer-row": createFlowRemoteComponentRenderer(TableFooterRow),
99
+ "flr-table-header": createFlowRemoteComponentRenderer(TableHeader),
100
+ "flr-table-row": createFlowRemoteComponentRenderer(TableRow),
101
+ "flr-tabs": createFlowRemoteComponentRenderer(Tabs),
102
+ "flr-text": createFlowRemoteComponentRenderer(Text),
103
+ "flr-text-area": createFlowRemoteComponentRenderer(TextArea),
104
+ "flr-text-field": createFlowRemoteComponentRenderer(TextField),
105
+ "flr-time-field": createFlowRemoteComponentRenderer(TimeField),
106
+ "flr-tooltip": createFlowRemoteComponentRenderer(Tooltip),
107
+ "flr-tooltip-trigger": createFlowRemoteComponentRenderer(TooltipTrigger)
108
+ };
109
+ export {
110
+ flowComponents as default,
111
+ flowComponents
112
+ };
113
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","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 { 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 { Align as Align } 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 { Breadcrumb as Breadcrumb } from \"@mittwald/flow-react-components\";\nimport { Button as Button } 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 { ColumnLayout as ColumnLayout } from \"@mittwald/flow-react-components\";\nimport { Content as Content } from \"@mittwald/flow-react-components\";\nimport { ContextMenuContent as ContextMenuContent } from \"@mittwald/flow-react-components\";\nimport { ContextMenuSection as ContextMenuSection } 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 { CountryOptions as CountryOptions } 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 { 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 { FileField as FileField } from \"@mittwald/flow-react-components\";\nimport { Fragment as Fragment } 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 { 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 { 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 { LightBox as LightBox } from \"@mittwald/flow-react-components\";\nimport { LightBoxTrigger as LightBoxTrigger } 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 { 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 { NotificationProvider as NotificationProvider } 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 { 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 { 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\";\n\nexport const flowComponents = {\n \"flr-accordion\": createFlowRemoteComponentRenderer(Accordion),\n \"flr-action-group\": createFlowRemoteComponentRenderer(ActionGroup),\n \"flr-alert\": createFlowRemoteComponentRenderer(Alert),\n \"flr-alert-badge\": createFlowRemoteComponentRenderer(AlertBadge),\n \"flr-alert-icon\": createFlowRemoteComponentRenderer(AlertIcon),\n \"flr-align\": createFlowRemoteComponentRenderer(Align),\n \"flr-avatar\": createFlowRemoteComponentRenderer(Avatar),\n \"flr-avatar-stack\": createFlowRemoteComponentRenderer(AvatarStack),\n \"flr-badge\": createFlowRemoteComponentRenderer(Badge),\n \"flr-breadcrumb\": createFlowRemoteComponentRenderer(Breadcrumb),\n \"flr-button\": createFlowRemoteComponentRenderer(Button),\n \"flr-chat\": createFlowRemoteComponentRenderer(Chat),\n \"flr-checkbox\": createFlowRemoteComponentRenderer(Checkbox),\n \"flr-checkbox-button\": createFlowRemoteComponentRenderer(CheckboxButton),\n \"flr-checkbox-group\": createFlowRemoteComponentRenderer(CheckboxGroup),\n \"flr-clear-props-context\":\n createFlowRemoteComponentRenderer(ClearPropsContext),\n \"flr-code-block\": createFlowRemoteComponentRenderer(CodeBlock),\n \"flr-column-layout\": createFlowRemoteComponentRenderer(ColumnLayout),\n \"flr-content\": createFlowRemoteComponentRenderer(Content),\n \"flr-context-menu-content\":\n createFlowRemoteComponentRenderer(ContextMenuContent),\n \"flr-context-menu-section\":\n createFlowRemoteComponentRenderer(ContextMenuSection),\n \"flr-contextual-help\": createFlowRemoteComponentRenderer(ContextualHelp),\n \"flr-contextual-help-trigger\": createFlowRemoteComponentRenderer(\n ContextualHelpTrigger,\n ),\n \"flr-copy-button\": createFlowRemoteComponentRenderer(CopyButton),\n \"flr-counter-badge\": createFlowRemoteComponentRenderer(CounterBadge),\n \"flr-country-options\": createFlowRemoteComponentRenderer(CountryOptions),\n \"flr-date-picker\": createFlowRemoteComponentRenderer(DatePicker),\n \"flr-date-range-picker\": createFlowRemoteComponentRenderer(DateRangePicker),\n \"flr-dialog-trigger\": createFlowRemoteComponentRenderer(DialogTrigger),\n \"flr-div\": createFlowRemoteComponentRenderer(Div),\n \"flr-field-description\": createFlowRemoteComponentRenderer(FieldDescription),\n \"flr-field-error\": createFlowRemoteComponentRenderer(FieldError),\n \"flr-file-card\": createFlowRemoteComponentRenderer(FileCard),\n \"flr-file-card-list\": createFlowRemoteComponentRenderer(FileCardList),\n \"flr-file-field\": createFlowRemoteComponentRenderer(FileField),\n \"flr-fragment\": createFlowRemoteComponentRenderer(Fragment),\n \"flr-header\": createFlowRemoteComponentRenderer(Header),\n \"flr-header-navigation\": createFlowRemoteComponentRenderer(HeaderNavigation),\n \"flr-heading\": createFlowRemoteComponentRenderer(Heading),\n \"flr-icon\": createFlowRemoteComponentRenderer(Icon),\n \"flr-illustrated-message\":\n createFlowRemoteComponentRenderer(IllustratedMessage),\n \"flr-image\": createFlowRemoteComponentRenderer(Image),\n \"flr-initials\": createFlowRemoteComponentRenderer(Initials),\n \"flr-inline-code\": createFlowRemoteComponentRenderer(InlineCode),\n \"flr-items-grid-list\": createFlowRemoteComponentRenderer(ItemsGridList),\n \"flr-items-grid-list-item\":\n createFlowRemoteComponentRenderer(ItemsGridListItem),\n \"flr-label\": createFlowRemoteComponentRenderer(Label),\n \"flr-labeled-value\": createFlowRemoteComponentRenderer(LabeledValue),\n \"flr-layout-card\": createFlowRemoteComponentRenderer(LayoutCard),\n \"flr-light-box\": createFlowRemoteComponentRenderer(LightBox),\n \"flr-light-box-trigger\": createFlowRemoteComponentRenderer(LightBoxTrigger),\n \"flr-link\": createFlowRemoteComponentRenderer(Link),\n \"flr-list-empty-view\": createFlowRemoteComponentRenderer(ListEmptyView),\n \"flr-list-item-view-content\":\n createFlowRemoteComponentRenderer(ListItemViewContent),\n \"flr-list-summary\": createFlowRemoteComponentRenderer(ListSummary),\n \"flr-loading-spinner\": createFlowRemoteComponentRenderer(LoadingSpinner),\n \"flr-markdown\": createFlowRemoteComponentRenderer(Markdown),\n \"flr-menu-item\": createFlowRemoteComponentRenderer(MenuItem),\n \"flr-menu-trigger\": createFlowRemoteComponentRenderer(MenuTrigger),\n \"flr-message\": createFlowRemoteComponentRenderer(Message),\n \"flr-message-separator\": createFlowRemoteComponentRenderer(MessageSeparator),\n \"flr-message-thread\": createFlowRemoteComponentRenderer(MessageThread),\n \"flr-navigation\": createFlowRemoteComponentRenderer(Navigation),\n \"flr-navigation-group\": createFlowRemoteComponentRenderer(NavigationGroup),\n \"flr-notification\": createFlowRemoteComponentRenderer(Notification),\n \"flr-notification-provider\":\n createFlowRemoteComponentRenderer(NotificationProvider),\n \"flr-number-field\": createFlowRemoteComponentRenderer(NumberField),\n \"flr-option\": createFlowRemoteComponentRenderer(Option),\n \"flr-overlay-content\": createFlowRemoteComponentRenderer(OverlayContent),\n \"flr-popover-content\": createFlowRemoteComponentRenderer(PopoverContent),\n \"flr-progress-bar\": createFlowRemoteComponentRenderer(ProgressBar),\n \"flr-radio\": createFlowRemoteComponentRenderer(Radio),\n \"flr-radio-button\": createFlowRemoteComponentRenderer(RadioButton),\n \"flr-radio-group\": createFlowRemoteComponentRenderer(RadioGroup),\n \"flr-search-field\": createFlowRemoteComponentRenderer(SearchField),\n \"flr-section\": createFlowRemoteComponentRenderer(Section),\n \"flr-segment\": createFlowRemoteComponentRenderer(Segment),\n \"flr-segmented-control\": createFlowRemoteComponentRenderer(SegmentedControl),\n \"flr-select\": createFlowRemoteComponentRenderer(Select),\n \"flr-separator\": createFlowRemoteComponentRenderer(Separator),\n \"flr-skeleton\": createFlowRemoteComponentRenderer(Skeleton),\n \"flr-skeleton-text\": createFlowRemoteComponentRenderer(SkeletonText),\n \"flr-slider\": createFlowRemoteComponentRenderer(Slider),\n \"flr-switch\": createFlowRemoteComponentRenderer(Switch),\n \"flr-tab\": createFlowRemoteComponentRenderer(Tab),\n \"flr-tab-title\": createFlowRemoteComponentRenderer(TabTitle),\n \"flr-table\": createFlowRemoteComponentRenderer(Table),\n \"flr-table-body\": createFlowRemoteComponentRenderer(TableBody),\n \"flr-table-cell\": createFlowRemoteComponentRenderer(TableCell),\n \"flr-table-column\": createFlowRemoteComponentRenderer(TableColumn),\n \"flr-table-footer-row\": createFlowRemoteComponentRenderer(TableFooterRow),\n \"flr-table-header\": createFlowRemoteComponentRenderer(TableHeader),\n \"flr-table-row\": createFlowRemoteComponentRenderer(TableRow),\n \"flr-tabs\": createFlowRemoteComponentRenderer(Tabs),\n \"flr-text\": createFlowRemoteComponentRenderer(Text),\n \"flr-text-area\": createFlowRemoteComponentRenderer(TextArea),\n \"flr-text-field\": createFlowRemoteComponentRenderer(TextField),\n \"flr-time-field\": createFlowRemoteComponentRenderer(TimeField),\n \"flr-tooltip\": createFlowRemoteComponentRenderer(Tooltip),\n \"flr-tooltip-trigger\": createFlowRemoteComponentRenderer(TooltipTrigger),\n} as const;\n\nexport default flowComponents;\n"],"names":["ItemsGridList","ItemsGridListItem","ListEmptyView"],"mappings":";;AAwGO,MAAM,iBAAiB;AAAA,EAC5B,iBAAiB,kCAAkC,SAAS;AAAA,EAC5D,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,aAAa,kCAAkC,KAAK;AAAA,EACpD,mBAAmB,kCAAkC,UAAU;AAAA,EAC/D,kBAAkB,kCAAkC,SAAS;AAAA,EAC7D,aAAa,kCAAkC,KAAK;AAAA,EACpD,cAAc,kCAAkC,MAAM;AAAA,EACtD,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,aAAa,kCAAkC,KAAK;AAAA,EACpD,kBAAkB,kCAAkC,UAAU;AAAA,EAC9D,cAAc,kCAAkC,MAAM;AAAA,EACtD,YAAY,kCAAkC,IAAI;AAAA,EAClD,gBAAgB,kCAAkC,QAAQ;AAAA,EAC1D,uBAAuB,kCAAkC,cAAc;AAAA,EACvE,sBAAsB,kCAAkC,aAAa;AAAA,EACrE,2BACE,kCAAkC,iBAAiB;AAAA,EACrD,kBAAkB,kCAAkC,SAAS;AAAA,EAC7D,qBAAqB,kCAAkC,YAAY;AAAA,EACnE,eAAe,kCAAkC,OAAO;AAAA,EACxD,4BACE,kCAAkC,kBAAkB;AAAA,EACtD,4BACE,kCAAkC,kBAAkB;AAAA,EACtD,uBAAuB,kCAAkC,cAAc;AAAA,EACvE,+BAA+B;AAAA,IAC7B;AAAA,EACF;AAAA,EACA,mBAAmB,kCAAkC,UAAU;AAAA,EAC/D,qBAAqB,kCAAkC,YAAY;AAAA,EACnE,uBAAuB,kCAAkC,cAAc;AAAA,EACvE,mBAAmB,kCAAkC,UAAU;AAAA,EAC/D,yBAAyB,kCAAkC,eAAe;AAAA,EAC1E,sBAAsB,kCAAkC,aAAa;AAAA,EACrE,WAAW,kCAAkC,GAAG;AAAA,EAChD,yBAAyB,kCAAkC,gBAAgB;AAAA,EAC3E,mBAAmB,kCAAkC,UAAU;AAAA,EAC/D,iBAAiB,kCAAkC,QAAQ;AAAA,EAC3D,sBAAsB,kCAAkC,YAAY;AAAA,EACpE,kBAAkB,kCAAkC,SAAS;AAAA,EAC7D,gBAAgB,kCAAkC,QAAQ;AAAA,EAC1D,cAAc,kCAAkC,MAAM;AAAA,EACtD,yBAAyB,kCAAkC,gBAAgB;AAAA,EAC3E,eAAe,kCAAkC,OAAO;AAAA,EACxD,YAAY,kCAAkC,IAAI;AAAA,EAClD,2BACE,kCAAkC,kBAAkB;AAAA,EACtD,aAAa,kCAAkC,KAAK;AAAA,EACpD,gBAAgB,kCAAkC,QAAQ;AAAA,EAC1D,mBAAmB,kCAAkC,UAAU;AAAA,EAC/D,uBAAuB,kCAAkCA,QAAa;AAAA,EACtE,4BACE,kCAAkCC,YAAiB;AAAA,EACrD,aAAa,kCAAkC,KAAK;AAAA,EACpD,qBAAqB,kCAAkC,YAAY;AAAA,EACnE,mBAAmB,kCAAkC,UAAU;AAAA,EAC/D,iBAAiB,kCAAkC,QAAQ;AAAA,EAC3D,yBAAyB,kCAAkC,eAAe;AAAA,EAC1E,YAAY,kCAAkC,IAAI;AAAA,EAClD,uBAAuB,kCAAkCC,SAAa;AAAA,EACtE,8BACE,kCAAkC,mBAAmB;AAAA,EACvD,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,uBAAuB,kCAAkC,cAAc;AAAA,EACvE,gBAAgB,kCAAkC,QAAQ;AAAA,EAC1D,iBAAiB,kCAAkC,QAAQ;AAAA,EAC3D,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,eAAe,kCAAkC,OAAO;AAAA,EACxD,yBAAyB,kCAAkC,gBAAgB;AAAA,EAC3E,sBAAsB,kCAAkC,aAAa;AAAA,EACrE,kBAAkB,kCAAkC,UAAU;AAAA,EAC9D,wBAAwB,kCAAkC,eAAe;AAAA,EACzE,oBAAoB,kCAAkC,YAAY;AAAA,EAClE,6BACE,kCAAkC,oBAAoB;AAAA,EACxD,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,cAAc,kCAAkC,MAAM;AAAA,EACtD,uBAAuB,kCAAkC,cAAc;AAAA,EACvE,uBAAuB,kCAAkC,cAAc;AAAA,EACvE,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,aAAa,kCAAkC,KAAK;AAAA,EACpD,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,mBAAmB,kCAAkC,UAAU;AAAA,EAC/D,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,eAAe,kCAAkC,OAAO;AAAA,EACxD,eAAe,kCAAkC,OAAO;AAAA,EACxD,yBAAyB,kCAAkC,gBAAgB;AAAA,EAC3E,cAAc,kCAAkC,MAAM;AAAA,EACtD,iBAAiB,kCAAkC,SAAS;AAAA,EAC5D,gBAAgB,kCAAkC,QAAQ;AAAA,EAC1D,qBAAqB,kCAAkC,YAAY;AAAA,EACnE,cAAc,kCAAkC,MAAM;AAAA,EACtD,cAAc,kCAAkC,MAAM;AAAA,EACtD,WAAW,kCAAkC,GAAG;AAAA,EAChD,iBAAiB,kCAAkC,QAAQ;AAAA,EAC3D,aAAa,kCAAkC,KAAK;AAAA,EACpD,kBAAkB,kCAAkC,SAAS;AAAA,EAC7D,kBAAkB,kCAAkC,SAAS;AAAA,EAC7D,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,wBAAwB,kCAAkC,cAAc;AAAA,EACxE,oBAAoB,kCAAkC,WAAW;AAAA,EACjE,iBAAiB,kCAAkC,QAAQ;AAAA,EAC3D,YAAY,kCAAkC,IAAI;AAAA,EAClD,YAAY,kCAAkC,IAAI;AAAA,EAClD,iBAAiB,kCAAkC,QAAQ;AAAA,EAC3D,kBAAkB,kCAAkC,SAAS;AAAA,EAC7D,kBAAkB,kCAAkC,SAAS;AAAA,EAC7D,eAAe,kCAAkC,OAAO;AAAA,EACxD,uBAAuB,kCAAkC,cAAc;AACzE;"}
@@ -0,0 +1,22 @@
1
+ "use client"
2
+ /* */
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { forwardRef } from "react";
5
+ import { getFormDataObject } from "./lib/getFormDataObject.mjs";
6
+ const Form = forwardRef((props, ref) => {
7
+ const {
8
+ action: actionFromProps,
9
+ onSubmit: onSubmitFromProps,
10
+ ...rest
11
+ } = props;
12
+ const action = typeof actionFromProps === "function" ? (formData) => actionFromProps(getFormDataObject(formData)) : actionFromProps;
13
+ const onSubmit = onSubmitFromProps ? (e) => {
14
+ e.preventDefault();
15
+ onSubmitFromProps(getFormDataObject(new FormData(e.currentTarget)));
16
+ } : void 0;
17
+ return /* @__PURE__ */ jsx("form", { ref, ...rest, action, onSubmit });
18
+ });
19
+ export {
20
+ Form
21
+ };
22
+ //# sourceMappingURL=Form.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.mjs","sources":["../../../src/components/Form.tsx"],"sourcesContent":["import type {\n FC,\n FormEvent,\n FormHTMLAttributes,\n PropsWithChildren,\n} from \"react\";\nimport React, { forwardRef } from \"react\";\nimport { getFormDataObject } from \"@/components/lib/getFormDataObject\";\n\ntype FormProps = Pick<FormHTMLAttributes<HTMLFormElement>, \"action\"> & {\n onSubmit?: (data: Record<string, unknown>) => void;\n} & PropsWithChildren;\n\nexport const Form: FC = forwardRef<HTMLFormElement, FormProps>((props, ref) => {\n const {\n action: actionFromProps,\n onSubmit: onSubmitFromProps,\n ...rest\n } = props;\n\n const action =\n typeof actionFromProps === \"function\"\n ? (formData: FormData) =>\n actionFromProps(getFormDataObject(formData) as unknown as FormData)\n : actionFromProps;\n\n const onSubmit = onSubmitFromProps\n ? (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n onSubmitFromProps(getFormDataObject(new FormData(e.currentTarget)));\n }\n : undefined;\n\n return <form ref={ref} {...rest} action={action} onSubmit={onSubmit} />;\n});\n"],"names":[],"mappings":";;;AAaO,MAAM,OAAW,WAAuC,CAAC,OAAO,QAAQ;AACvE,QAAA;AAAA,IACJ,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,GAAG;AAAA,EAAA,IACD;AAEE,QAAA,SACJ,OAAO,oBAAoB,aACvB,CAAC,aACC,gBAAgB,kBAAkB,QAAQ,CAAwB,IACpE;AAEA,QAAA,WAAW,oBACb,CAAC,MAAkC;AACjC,MAAE,eAAe;AACjB,sBAAkB,kBAAkB,IAAI,SAAS,EAAE,aAAa,CAAC,CAAC;AAAA,EAAA,IAEpE;AAEJ,6BAAQ,QAAK,EAAA,KAAW,GAAG,MAAM,QAAgB,UAAoB;AACvE,CAAC;"}
@@ -0,0 +1,7 @@
1
+ "use client"
2
+ /* */
3
+ const getFormDataObject = (formData) => Object.fromEntries(Array.from(formData.entries()));
4
+ export {
5
+ getFormDataObject
6
+ };
7
+ //# sourceMappingURL=getFormDataObject.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFormDataObject.mjs","sources":["../../../../src/components/lib/getFormDataObject.ts"],"sourcesContent":["export const getFormDataObject = (\n formData: FormData,\n): Record<string, unknown> =>\n Object.fromEntries(Array.from(formData.entries()));\n"],"names":[],"mappings":"AAAa,MAAA,oBAAoB,CAC/B,aAEA,OAAO,YAAY,MAAM,KAAK,SAAS,SAAS,CAAC;"}
@@ -0,0 +1,26 @@
1
+ "use client"
2
+ /* */
3
+ import { Form } from "./components/Form.mjs";
4
+ import { createFlowRemoteComponentRenderer } from "./lib/createFlowRemoteComponentRenderer.mjs";
5
+ import { elementFactory } from "./lib/elementFactory.mjs";
6
+ import { createRemoteComponentRenderer } from "@mfalkenberg/remote-dom-react/host";
7
+ import { flowComponents } from "./auto-generated/index.mjs";
8
+ const htmlComponentsMap = {
9
+ svg: createRemoteComponentRenderer(elementFactory("svg")),
10
+ circle: createRemoteComponentRenderer(elementFactory("circle")),
11
+ g: createRemoteComponentRenderer(elementFactory("g")),
12
+ path: createRemoteComponentRenderer(elementFactory("path")),
13
+ strong: createRemoteComponentRenderer(elementFactory("strong"))
14
+ };
15
+ const flowComponentsMap = {
16
+ "flr-form": createFlowRemoteComponentRenderer(Form)
17
+ };
18
+ const components = {
19
+ ...htmlComponentsMap,
20
+ ...flowComponentsMap,
21
+ ...flowComponents
22
+ };
23
+ export {
24
+ components
25
+ };
26
+ //# sourceMappingURL=components.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.mjs","sources":["../../src/components.ts"],"sourcesContent":["import { Form } from \"@/components/Form\";\nimport { createFlowRemoteComponentRenderer } from \"@/lib/createFlowRemoteComponentRenderer\";\nimport { elementFactory } from \"@/lib/elementFactory\";\nimport { createRemoteComponentRenderer } from \"@mfalkenberg/remote-dom-react/host\";\nimport autoGenerated from \"./auto-generated\";\n\nconst htmlComponentsMap = {\n svg: createRemoteComponentRenderer(elementFactory(\"svg\")),\n circle: createRemoteComponentRenderer(elementFactory(\"circle\")),\n g: createRemoteComponentRenderer(elementFactory(\"g\")),\n path: createRemoteComponentRenderer(elementFactory(\"path\")),\n strong: createRemoteComponentRenderer(elementFactory(\"strong\")),\n} as const;\n\nconst flowComponentsMap = {\n \"flr-form\": createFlowRemoteComponentRenderer(Form),\n};\n\nexport const components = {\n ...htmlComponentsMap,\n ...flowComponentsMap,\n ...autoGenerated,\n};\n"],"names":["autoGenerated"],"mappings":";;;;;AAMA,MAAM,oBAAoB;AAAA,EACxB,KAAK,8BAA8B,eAAe,KAAK,CAAC;AAAA,EACxD,QAAQ,8BAA8B,eAAe,QAAQ,CAAC;AAAA,EAC9D,GAAG,8BAA8B,eAAe,GAAG,CAAC;AAAA,EACpD,MAAM,8BAA8B,eAAe,MAAM,CAAC;AAAA,EAC1D,QAAQ,8BAA8B,eAAe,QAAQ,CAAC;AAChE;AAEA,MAAM,oBAAoB;AAAA,EACxB,YAAY,kCAAkC,IAAI;AACpD;AAEO,MAAM,aAAa;AAAA,EACxB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAGA;AACL;"}
@@ -0,0 +1,14 @@
1
+ "use client"
2
+ /* */
3
+ import { useState, useEffect } from "react";
4
+ const useIsMounted = () => {
5
+ const [isMounted, setIsMounted] = useState(false);
6
+ useEffect(() => {
7
+ setIsMounted(true);
8
+ }, []);
9
+ return isMounted;
10
+ };
11
+ export {
12
+ useIsMounted
13
+ };
14
+ //# sourceMappingURL=useIsMounted.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsMounted.mjs","sources":["../../../src/hooks/useIsMounted.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nexport const useIsMounted = () => {\n const [isMounted, setIsMounted] = useState(false);\n useEffect(() => {\n setIsMounted(true);\n }, []);\n return isMounted;\n};\n"],"names":[],"mappings":";AAEO,MAAM,eAAe,MAAM;AAChC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,YAAU,MAAM;AACd,iBAAa,IAAI;AAAA,EACnB,GAAG,EAAE;AACE,SAAA;AACT;"}
@@ -0,0 +1,7 @@
1
+ "use client"
2
+ /* */
3
+ import { RemoteRenderer } from "./RemoteRenderer.mjs";
4
+ export {
5
+ RemoteRenderer
6
+ };
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,36 @@
1
+ "use client"
2
+ /* */
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { isEventProp, isStyleProp, isReactSuspendedStyle } from "./propClassifiers.mjs";
5
+ import { createRemoteComponentRenderer } from "@mfalkenberg/remote-dom-react/host";
6
+ import { mapEventHandler } from "@mittwald/flow-remote-core";
7
+ import "react";
8
+ import { mapValues } from "remeda";
9
+ const mapProperty = (val, key) => {
10
+ if (isEventProp(key, val)) {
11
+ return mapEventHandler(val, key);
12
+ }
13
+ if (isStyleProp(key)) {
14
+ if (isReactSuspendedStyle(val)) {
15
+ return {
16
+ display: "none"
17
+ };
18
+ }
19
+ return {};
20
+ }
21
+ return val;
22
+ };
23
+ const createFlowRemoteComponentRenderer = (Component) => {
24
+ function HostComponent(props) {
25
+ const hostComponentProps = mapValues(
26
+ props,
27
+ (v, k) => mapProperty(v, k)
28
+ );
29
+ return /* @__PURE__ */ jsx(Component, { ...hostComponentProps });
30
+ }
31
+ return createRemoteComponentRenderer(HostComponent);
32
+ };
33
+ export {
34
+ createFlowRemoteComponentRenderer
35
+ };
36
+ //# sourceMappingURL=createFlowRemoteComponentRenderer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFlowRemoteComponentRenderer.mjs","sources":["../../../src/lib/createFlowRemoteComponentRenderer.tsx"],"sourcesContent":["import {\n isEventProp,\n isReactSuspendedStyle,\n isStyleProp,\n} from \"@/lib/propClassifiers\";\nimport type { RemoteComponentRendererProps } from \"@mfalkenberg/remote-dom-react/host\";\nimport { createRemoteComponentRenderer } from \"@mfalkenberg/remote-dom-react/host\";\nimport { mapEventHandler } from \"@mittwald/flow-remote-core\";\nimport { type ComponentType } from \"react\";\nimport { mapValues } from \"remeda\";\n\nconst mapProperty = (val: unknown, key: string) => {\n if (isEventProp(key, val)) {\n return mapEventHandler(val, key);\n }\n if (isStyleProp(key)) {\n if (isReactSuspendedStyle(val)) {\n return {\n display: \"none\",\n };\n }\n return {};\n }\n return val;\n};\n\nexport const createFlowRemoteComponentRenderer = <P extends object>(\n Component: ComponentType<P>,\n): ComponentType<RemoteComponentRendererProps> => {\n function HostComponent(props: P) {\n const hostComponentProps = mapValues(props, (v, k) =>\n mapProperty(v, k),\n ) as P;\n\n return <Component {...hostComponentProps} />;\n }\n return createRemoteComponentRenderer(HostComponent);\n};\n"],"names":[],"mappings":";;;;;;AAWA,MAAM,cAAc,CAAC,KAAc,QAAgB;AAC7C,MAAA,YAAY,KAAK,GAAG,GAAG;AAClB,WAAA,gBAAgB,KAAK,GAAG;AAAA,EAAA;AAE7B,MAAA,YAAY,GAAG,GAAG;AAChB,QAAA,sBAAsB,GAAG,GAAG;AACvB,aAAA;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IAAA;AAEF,WAAO,CAAC;AAAA,EAAA;AAEH,SAAA;AACT;AAEa,MAAA,oCAAoC,CAC/C,cACgD;AAChD,WAAS,cAAc,OAAU;AAC/B,UAAM,qBAAqB;AAAA,MAAU;AAAA,MAAO,CAAC,GAAG,MAC9C,YAAY,GAAG,CAAC;AAAA,IAClB;AAEO,WAAA,oBAAC,WAAW,EAAA,GAAG,mBAAoB,CAAA;AAAA,EAAA;AAE5C,SAAO,8BAA8B,aAAa;AACpD;"}
@@ -0,0 +1,19 @@
1
+ "use client"
2
+ /* */
3
+ import { createElement } from "react";
4
+ import { mapKeys } from "remeda";
5
+ import clsx from "clsx";
6
+ import { mapAttributeToReactProperty } from "./mapAttributeToReactProperty.mjs";
7
+ const elementFactory = (element) => (props) => {
8
+ const result = { ...props };
9
+ result["className"] = clsx(
10
+ String(result["className"]),
11
+ String(result["class"])
12
+ );
13
+ delete result["class"];
14
+ return createElement(element, mapKeys(result, mapAttributeToReactProperty));
15
+ };
16
+ export {
17
+ elementFactory
18
+ };
19
+ //# sourceMappingURL=elementFactory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementFactory.mjs","sources":["../../../src/lib/elementFactory.ts"],"sourcesContent":["import { createElement } from \"react\";\nimport { mapKeys } from \"remeda\";\nimport clsx from \"clsx\";\nimport { mapAttributeToReactProperty } from \"@/lib/mapAttributeToReactProperty\";\n\ntype ElementTagNameMap = HTMLElementTagNameMap &\n Pick<\n SVGElementTagNameMap,\n Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>\n >;\n\nexport const elementFactory =\n <E extends keyof ElementTagNameMap>(element: E) =>\n (props: Record<string, unknown>) => {\n const result = { ...props };\n\n // merge className and class\n result[\"className\"] = clsx(\n String(result[\"className\"]),\n String(result[\"class\"]),\n );\n\n delete result[\"class\"];\n\n return createElement(element, mapKeys(result, mapAttributeToReactProperty));\n };\n"],"names":[],"mappings":";;;;AAWO,MAAM,iBACX,CAAoC,YACpC,CAAC,UAAmC;AAC5B,QAAA,SAAS,EAAE,GAAG,MAAM;AAG1B,SAAO,WAAW,IAAI;AAAA,IACpB,OAAO,OAAO,WAAW,CAAC;AAAA,IAC1B,OAAO,OAAO,OAAO,CAAC;AAAA,EACxB;AAEA,SAAO,OAAO,OAAO;AAErB,SAAO,cAAc,SAAS,QAAQ,QAAQ,2BAA2B,CAAC;AAC5E;"}
@@ -0,0 +1,14 @@
1
+ "use client"
2
+ /* */
3
+ import { toCamelCase } from "remeda";
4
+ const keepWhenStartsWith = ["aria-", "data-"];
5
+ const mapAttributeToReactProperty = (key) => {
6
+ if (keepWhenStartsWith.some((prefix) => key.startsWith(prefix))) {
7
+ return key;
8
+ }
9
+ return toCamelCase(key);
10
+ };
11
+ export {
12
+ mapAttributeToReactProperty
13
+ };
14
+ //# sourceMappingURL=mapAttributeToReactProperty.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapAttributeToReactProperty.mjs","sources":["../../../src/lib/mapAttributeToReactProperty.ts"],"sourcesContent":["import { toCamelCase } from \"remeda\";\n\nconst keepWhenStartsWith = [\"aria-\", \"data-\"];\n\nexport const mapAttributeToReactProperty = (key: string) => {\n if (keepWhenStartsWith.some((prefix) => key.startsWith(prefix))) {\n return key;\n }\n\n return toCamelCase(key);\n};\n"],"names":[],"mappings":";AAEA,MAAM,qBAAqB,CAAC,SAAS,OAAO;AAE/B,MAAA,8BAA8B,CAAC,QAAgB;AACtD,MAAA,mBAAmB,KAAK,CAAC,WAAW,IAAI,WAAW,MAAM,CAAC,GAAG;AACxD,WAAA;AAAA,EAAA;AAGT,SAAO,YAAY,GAAG;AACxB;"}
@@ -0,0 +1,13 @@
1
+ "use client"
2
+ /* */
3
+ import { isFunction } from "remeda";
4
+ const defaultEventPropMatcher = /on[A-Z].*/;
5
+ const isEventProp = (name, value) => !!name.match(defaultEventPropMatcher) && isFunction(value);
6
+ const isStyleProp = (name) => name === "style";
7
+ const isReactSuspendedStyle = (value) => value === "display: none !important;";
8
+ export {
9
+ isEventProp,
10
+ isReactSuspendedStyle,
11
+ isStyleProp
12
+ };
13
+ //# sourceMappingURL=propClassifiers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propClassifiers.mjs","sources":["../../../src/lib/propClassifiers.ts"],"sourcesContent":["import { isFunction } from \"remeda\";\nimport type { EventHandler } from \"@mittwald/flow-remote-core\";\n\nconst defaultEventPropMatcher = /on[A-Z].*/;\n\nexport const isEventProp = (\n name: string,\n value: unknown,\n): value is EventHandler =>\n !!name.match(defaultEventPropMatcher) && isFunction(value);\n\nexport const isStyleProp = (name: string): boolean => name === \"style\";\n\nexport const isReactSuspendedStyle = (value: unknown): boolean =>\n value === \"display: none !important;\";\n"],"names":[],"mappings":";AAGA,MAAM,0BAA0B;AAEnB,MAAA,cAAc,CACzB,MACA,UAEA,CAAC,CAAC,KAAK,MAAM,uBAAuB,KAAK,WAAW,KAAK;AAE9C,MAAA,cAAc,CAAC,SAA0B,SAAS;AAElD,MAAA,wBAAwB,CAAC,UACpC,UAAU;"}
@@ -1,8 +1,5 @@
1
- import { CSSProperties, FC } from 'react';
2
- import { RemoteComponentsMap } from './lib/types';
3
- export interface RemoteRendererProps {
4
- integrations?: RemoteComponentsMap<never>[];
5
- src: string;
6
- iframeStyle?: CSSProperties;
7
- }
1
+ import { FC } from 'react';
2
+ import { RemoteRendererProps } from './RemoteRendererClient';
8
3
  export declare const RemoteRenderer: FC<RemoteRendererProps>;
4
+ export default RemoteRenderer;
5
+ //# sourceMappingURL=RemoteRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteRenderer.d.ts","sourceRoot":"","sources":["../../src/RemoteRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAGlD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { RemoteComponentsMap } from './lib/types';
2
+ import { CSSProperties, FC, ReactNode } from 'react';
3
+ export interface RemoteRendererProps {
4
+ integrations?: RemoteComponentsMap<never>[];
5
+ src: string;
6
+ iframeStyle?: CSSProperties;
7
+ fallback?: ReactNode;
8
+ }
9
+ export declare const RemoteRendererClient: FC<RemoteRendererProps>;
10
+ export default RemoteRendererClient;
11
+ //# sourceMappingURL=RemoteRendererClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteRendererClient.d.ts","sourceRoot":"","sources":["../../src/RemoteRendererClient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAOvD,OAAO,KAAK,EAAiB,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzE,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,mBAAmB,CAgDxD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}