@fluid-app/widget-runtime 0.1.4 → 0.1.6

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 (50) hide show
  1. package/README.md +36 -0
  2. package/dist/index.cjs +3 -2
  3. package/dist/index.d.cts +3 -2
  4. package/dist/index.d.mts +3 -2
  5. package/dist/index.mjs +3 -3
  6. package/dist/{remote-dom-renderer-CKvnUH8G.d.mts → remote-dom-renderer-BGIZ0FRi.d.mts} +35 -1
  7. package/dist/remote-dom-renderer-BGIZ0FRi.d.mts.map +1 -0
  8. package/dist/{remote-dom-renderer-f7OWlvvv.cjs → remote-dom-renderer-BlZKfMAA.cjs} +340 -172
  9. package/dist/remote-dom-renderer-BlZKfMAA.cjs.map +1 -0
  10. package/dist/{remote-dom-renderer-CeYSItkU.d.cts → remote-dom-renderer-BoB9jd3B.d.cts} +35 -1
  11. package/dist/remote-dom-renderer-BoB9jd3B.d.cts.map +1 -0
  12. package/dist/{remote-dom-renderer-CpdKWANy.mjs → remote-dom-renderer-Dn3pfVsl.mjs} +340 -172
  13. package/dist/remote-dom-renderer-Dn3pfVsl.mjs.map +1 -0
  14. package/dist/remote-dom-ui-contract-B140dMly.d.mts +632 -0
  15. package/dist/remote-dom-ui-contract-B140dMly.d.mts.map +1 -0
  16. package/dist/remote-dom-ui-contract-BLOyWbT2.d.cts +632 -0
  17. package/dist/remote-dom-ui-contract-BLOyWbT2.d.cts.map +1 -0
  18. package/dist/remote-dom-values-B5UZPDRy.cjs +849 -0
  19. package/dist/remote-dom-values-B5UZPDRy.cjs.map +1 -0
  20. package/dist/remote-dom-values-D4AgBNWr.d.cts.map +1 -1
  21. package/dist/remote-dom-values-EwoLXnSn.d.mts.map +1 -1
  22. package/dist/remote-dom-values-wEbrw5iW.mjs +790 -0
  23. package/dist/remote-dom-values-wEbrw5iW.mjs.map +1 -0
  24. package/dist/remote-dom.cjs +2 -2
  25. package/dist/remote-dom.d.cts +1 -1
  26. package/dist/remote-dom.d.mts +1 -1
  27. package/dist/remote-dom.mjs +2 -2
  28. package/dist/{worker-react-renderer-BKzig_Vy.mjs → worker-react-renderer-BV6ExKCS.mjs} +17 -40
  29. package/dist/worker-react-renderer-BV6ExKCS.mjs.map +1 -0
  30. package/dist/{worker-react-renderer-BvHZ2o0B.cjs → worker-react-renderer-CR-TvErh.cjs} +18 -41
  31. package/dist/worker-react-renderer-CR-TvErh.cjs.map +1 -0
  32. package/dist/worker.cjs +18 -3
  33. package/dist/worker.cjs.map +1 -1
  34. package/dist/worker.d.cts +17 -2
  35. package/dist/worker.d.cts.map +1 -1
  36. package/dist/worker.d.mts +17 -1
  37. package/dist/worker.d.mts.map +1 -1
  38. package/dist/worker.mjs +17 -3
  39. package/dist/worker.mjs.map +1 -1
  40. package/package.json +1 -1
  41. package/dist/remote-dom-renderer-CKvnUH8G.d.mts.map +0 -1
  42. package/dist/remote-dom-renderer-CeYSItkU.d.cts.map +0 -1
  43. package/dist/remote-dom-renderer-CpdKWANy.mjs.map +0 -1
  44. package/dist/remote-dom-renderer-f7OWlvvv.cjs.map +0 -1
  45. package/dist/remote-dom-values-BSAxrOE7.mjs +0 -238
  46. package/dist/remote-dom-values-BSAxrOE7.mjs.map +0 -1
  47. package/dist/remote-dom-values-DbgIedSg.cjs +0 -297
  48. package/dist/remote-dom-values-DbgIedSg.cjs.map +0 -1
  49. package/dist/worker-react-renderer-BKzig_Vy.mjs.map +0 -1
  50. package/dist/worker-react-renderer-BvHZ2o0B.cjs.map +0 -1
package/README.md CHANGED
@@ -11,8 +11,41 @@ Widget discovery, descriptor validation, catalog access, publishing, and builder
11
11
 
12
12
  ## Host
13
13
 
14
+ Portal applications should use the Portal SDK host. It owns the complete
15
+ reviewed Fluid UI renderer map and keeps component overlays inside the widget
16
+ shadow root. The application only supplies the compiled shadow-root CSS:
17
+
18
+ ```tsx
19
+ import { createPortal } from "@fluid-app/portal-sdk";
20
+ import fluidComponentCssUrl from "@fluid-app/portal-sdk/remote-widget-shadow.css?url";
21
+
22
+ createPortal({
23
+ remoteWidgets: { fluidComponentCssUrls: [fluidComponentCssUrl] },
24
+ });
25
+ ```
26
+
27
+ The current portal application and generated portal starter include this
28
+ configuration. Mist's direct live-preview host supplies the same renderer map,
29
+ containment wrapper, and stylesheet as inline CSS.
30
+
31
+ `mountRemoteDomWidget()` is the lower-level host API. A direct consumer of a
32
+ current Fluid widget worker must provide all three Fluid UI host pieces:
33
+
34
+ - the complete reviewed `componentRenderers` map;
35
+ - a `wrapRemoteRoot` implementation that contains portals in the widget area;
36
+ - the matching `fluidComponentCssText` or `fluidComponentCssUrls`.
37
+
38
+ The runtime advertises Fluid UI contract v2 only when every v2 renderer is
39
+ present. A Fluid UI worker therefore fails contract negotiation instead of
40
+ mounting against a host with a partial renderer set.
41
+
14
42
  ```tsx
15
43
  import { mountRemoteDomWidget } from "@fluid-app/widget-runtime/remote-dom";
44
+ import {
45
+ REMOTE_DOM_COMPONENT_RENDERERS,
46
+ wrapRemoteDomRoot,
47
+ } from "@fluid-app/portal-sdk";
48
+ import fluidComponentCssUrl from "@fluid-app/portal-sdk/remote-widget-shadow.css?url";
16
49
 
17
50
  const handle = mountRemoteDomWidget({
18
51
  host: document.querySelector("#widget")!,
@@ -26,6 +59,9 @@ const handle = mountRemoteDomWidget({
26
59
  capabilities: [{ name: "account", version: "1" }],
27
60
  },
28
61
  props: { name: "Ada" },
62
+ componentRenderers: REMOTE_DOM_COMPONENT_RENDERERS,
63
+ wrapRemoteRoot: wrapRemoteDomRoot,
64
+ fluidComponentCssUrls: [fluidComponentCssUrl],
29
65
  callCapability: (capability, method, payload) =>
30
66
  portalCapabilities.call(capability, method, payload),
31
67
  });
package/dist/index.cjs CHANGED
@@ -1,6 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_remote_dom_renderer = require("./remote-dom-renderer-f7OWlvvv.cjs");
3
- const require_remote_dom_values = require("./remote-dom-values-DbgIedSg.cjs");
2
+ const require_remote_dom_renderer = require("./remote-dom-renderer-BlZKfMAA.cjs");
3
+ const require_remote_dom_values = require("./remote-dom-values-B5UZPDRy.cjs");
4
+ exports.REMOTE_DOM_UI_COMPONENTS = require_remote_dom_values.REMOTE_DOM_UI_COMPONENTS;
4
5
  exports.isRemoteDomSerializableValue = require_remote_dom_values.isRemoteDomSerializableValue;
5
6
  exports.mountRemoteDomWidget = require_remote_dom_renderer.mountRemoteDomWidget;
6
7
  exports.toRemoteDomSerializableValue = require_remote_dom_values.toRemoteDomSerializableValue;
package/dist/index.d.cts CHANGED
@@ -1,3 +1,4 @@
1
1
  import { a as isRemoteDomSerializableValue, i as RemoteDomUrlOriginPolicyInput, n as RemoteDomSerializableValue, o as toRemoteDomSerializableValue, r as RemoteDomUrlOriginPolicy, t as RemoteDomNavigationIntent } from "./remote-dom-values-D4AgBNWr.cjs";
2
- import { a as RemoteDomWidgetHandle, c as mountRemoteDomWidget, d as RemoteDomStyleAttachment, f as RemoteDomThemeBridgeOptions, i as RemoteDomWidgetArtifact, l as RemoteDomCssFetcher, n as RemoteDomCapabilityDeclaration, o as RemoteDomWorkerFactory, r as RemoteDomFullscreenRequest, s as RemoteDomWorkerLike, t as MountRemoteDomWidgetOptions, u as RemoteDomCssUrlInput } from "./remote-dom-renderer-CeYSItkU.cjs";
3
- export { type MountRemoteDomWidgetOptions, type RemoteDomCapabilityDeclaration, type RemoteDomCssFetcher, type RemoteDomCssUrlInput, type RemoteDomFullscreenRequest, type RemoteDomNavigationIntent, type RemoteDomSerializableValue, type RemoteDomStyleAttachment, type RemoteDomThemeBridgeOptions, type RemoteDomUrlOriginPolicy, type RemoteDomUrlOriginPolicyInput, type RemoteDomWidgetArtifact, type RemoteDomWidgetHandle, type RemoteDomWorkerFactory, type RemoteDomWorkerLike, isRemoteDomSerializableValue, mountRemoteDomWidget, toRemoteDomSerializableValue };
2
+ import { a as RemoteDomWidgetHandle, c as mountRemoteDomWidget, d as RemoteDomStyleAttachment, f as RemoteDomThemeBridgeOptions, i as RemoteDomWidgetArtifact, l as RemoteDomCssFetcher, n as RemoteDomCapabilityDeclaration, o as RemoteDomWorkerFactory, r as RemoteDomFullscreenRequest, s as RemoteDomWorkerLike, t as MountRemoteDomWidgetOptions, u as RemoteDomCssUrlInput } from "./remote-dom-renderer-BoB9jd3B.cjs";
3
+ import { t as REMOTE_DOM_UI_COMPONENTS } from "./remote-dom-ui-contract-BLOyWbT2.cjs";
4
+ export { type MountRemoteDomWidgetOptions, REMOTE_DOM_UI_COMPONENTS, type RemoteDomCapabilityDeclaration, type RemoteDomCssFetcher, type RemoteDomCssUrlInput, type RemoteDomFullscreenRequest, type RemoteDomNavigationIntent, type RemoteDomSerializableValue, type RemoteDomStyleAttachment, type RemoteDomThemeBridgeOptions, type RemoteDomUrlOriginPolicy, type RemoteDomUrlOriginPolicyInput, type RemoteDomWidgetArtifact, type RemoteDomWidgetHandle, type RemoteDomWorkerFactory, type RemoteDomWorkerLike, isRemoteDomSerializableValue, mountRemoteDomWidget, toRemoteDomSerializableValue };
package/dist/index.d.mts CHANGED
@@ -1,3 +1,4 @@
1
1
  import { a as isRemoteDomSerializableValue, i as RemoteDomUrlOriginPolicyInput, n as RemoteDomSerializableValue, o as toRemoteDomSerializableValue, r as RemoteDomUrlOriginPolicy, t as RemoteDomNavigationIntent } from "./remote-dom-values-EwoLXnSn.mjs";
2
- import { a as RemoteDomWidgetHandle, c as mountRemoteDomWidget, d as RemoteDomStyleAttachment, f as RemoteDomThemeBridgeOptions, i as RemoteDomWidgetArtifact, l as RemoteDomCssFetcher, n as RemoteDomCapabilityDeclaration, o as RemoteDomWorkerFactory, r as RemoteDomFullscreenRequest, s as RemoteDomWorkerLike, t as MountRemoteDomWidgetOptions, u as RemoteDomCssUrlInput } from "./remote-dom-renderer-CKvnUH8G.mjs";
3
- export { type MountRemoteDomWidgetOptions, type RemoteDomCapabilityDeclaration, type RemoteDomCssFetcher, type RemoteDomCssUrlInput, type RemoteDomFullscreenRequest, type RemoteDomNavigationIntent, type RemoteDomSerializableValue, type RemoteDomStyleAttachment, type RemoteDomThemeBridgeOptions, type RemoteDomUrlOriginPolicy, type RemoteDomUrlOriginPolicyInput, type RemoteDomWidgetArtifact, type RemoteDomWidgetHandle, type RemoteDomWorkerFactory, type RemoteDomWorkerLike, isRemoteDomSerializableValue, mountRemoteDomWidget, toRemoteDomSerializableValue };
2
+ import { a as RemoteDomWidgetHandle, c as mountRemoteDomWidget, d as RemoteDomStyleAttachment, f as RemoteDomThemeBridgeOptions, i as RemoteDomWidgetArtifact, l as RemoteDomCssFetcher, n as RemoteDomCapabilityDeclaration, o as RemoteDomWorkerFactory, r as RemoteDomFullscreenRequest, s as RemoteDomWorkerLike, t as MountRemoteDomWidgetOptions, u as RemoteDomCssUrlInput } from "./remote-dom-renderer-BGIZ0FRi.mjs";
3
+ import { t as REMOTE_DOM_UI_COMPONENTS } from "./remote-dom-ui-contract-B140dMly.mjs";
4
+ export { type MountRemoteDomWidgetOptions, REMOTE_DOM_UI_COMPONENTS, type RemoteDomCapabilityDeclaration, type RemoteDomCssFetcher, type RemoteDomCssUrlInput, type RemoteDomFullscreenRequest, type RemoteDomNavigationIntent, type RemoteDomSerializableValue, type RemoteDomStyleAttachment, type RemoteDomThemeBridgeOptions, type RemoteDomUrlOriginPolicy, type RemoteDomUrlOriginPolicyInput, type RemoteDomWidgetArtifact, type RemoteDomWidgetHandle, type RemoteDomWorkerFactory, type RemoteDomWorkerLike, isRemoteDomSerializableValue, mountRemoteDomWidget, toRemoteDomSerializableValue };
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { c as isRemoteDomSerializableValue, u as toRemoteDomSerializableValue } from "./remote-dom-values-BSAxrOE7.mjs";
2
- import { t as mountRemoteDomWidget } from "./remote-dom-renderer-CpdKWANy.mjs";
3
- export { isRemoteDomSerializableValue, mountRemoteDomWidget, toRemoteDomSerializableValue };
1
+ import { a as isRemoteDomSerializableValue, l as REMOTE_DOM_UI_COMPONENTS, s as toRemoteDomSerializableValue } from "./remote-dom-values-wEbrw5iW.mjs";
2
+ import { t as mountRemoteDomWidget } from "./remote-dom-renderer-Dn3pfVsl.mjs";
3
+ export { REMOTE_DOM_UI_COMPONENTS, isRemoteDomSerializableValue, mountRemoteDomWidget, toRemoteDomSerializableValue };
@@ -1,4 +1,6 @@
1
1
  import { n as RemoteDomSerializableValue, t as RemoteDomNavigationIntent } from "./remote-dom-values-EwoLXnSn.mjs";
2
+ import { RemoteComponentRendererMap } from "@remote-dom/react/host";
3
+ import { ReactElement, ReactNode } from "react";
2
4
 
3
5
  //#region src/remote-dom-styles.d.ts
4
6
  interface RemoteDomStyleAttachment {
@@ -63,12 +65,34 @@ interface MountRemoteDomWidgetOptions {
63
65
  readonly cssText?: string | undefined;
64
66
  readonly widgetCssText?: string | undefined;
65
67
  readonly cssUrls?: readonly RemoteDomCssUrlInput[] | undefined;
68
+ /**
69
+ * Compiled Fluid UI CSS attached inside the widget shadow root. Supply this
70
+ * with {@link MountRemoteDomWidgetOptions.componentRenderers} and
71
+ * {@link MountRemoteDomWidgetOptions.wrapRemoteRoot} when the host supports
72
+ * the Fluid UI contract.
73
+ */
66
74
  readonly fluidComponentCssText?: string | undefined;
75
+ /**
76
+ * Compiled Fluid UI stylesheets attached inside the widget shadow root.
77
+ * Supply these with {@link MountRemoteDomWidgetOptions.componentRenderers}
78
+ * and {@link MountRemoteDomWidgetOptions.wrapRemoteRoot} when the host
79
+ * supports the Fluid UI contract.
80
+ */
67
81
  readonly fluidComponentCssUrls?: readonly RemoteDomCssUrlInput[] | undefined;
68
82
  readonly themeBridgeCssText?: string | undefined;
69
83
  readonly themeBridge?: Omit<RemoteDomThemeBridgeOptions, "root"> | false | undefined;
70
84
  readonly fetchCss?: RemoteDomCssFetcher | undefined;
71
85
  readonly useConstructableStylesheets?: boolean | undefined;
86
+ /**
87
+ * Host-owned Fluid component renderers keyed by reviewed remote tag. The
88
+ * runtime advertises UI contract v2 only when every v2 tag has a renderer.
89
+ */
90
+ readonly componentRenderers?: RemoteComponentRendererMap | undefined;
91
+ /**
92
+ * Wraps the receiver tree with host providers such as portal containment.
93
+ * Fluid UI hosts must keep overlays inside the supplied portal container.
94
+ */
95
+ readonly wrapRemoteRoot?: ((root: ReactElement, portalContainer: HTMLElement) => ReactNode) | undefined;
72
96
  }
73
97
  interface RemoteDomWidgetHandle {
74
98
  readonly shadowRoot: ShadowRoot;
@@ -87,7 +111,17 @@ interface RemoteDomWorkerLike {
87
111
  }) => void;
88
112
  }
89
113
  type RemoteDomWorkerFactory = (workerEntryUrl: string, options: WorkerOptions) => RemoteDomWorkerLike;
114
+ /**
115
+ * Mounts one Remote DOM widget worker into an isolated shadow root.
116
+ *
117
+ * The low-level runtime supports native Remote DOM elements by default. A host
118
+ * that supports worker-facing Fluid UI components must also provide the full
119
+ * reviewed {@link MountRemoteDomWidgetOptions.componentRenderers} map, a
120
+ * containment-aware {@link MountRemoteDomWidgetOptions.wrapRemoteRoot}, and
121
+ * the matching Fluid component CSS. The runtime advertises Fluid UI contract
122
+ * v2 only when every v2 renderer is present.
123
+ */
90
124
  declare function mountRemoteDomWidget(options: MountRemoteDomWidgetOptions): RemoteDomWidgetHandle;
91
125
  //#endregion
92
126
  export { RemoteDomWidgetHandle as a, mountRemoteDomWidget as c, RemoteDomStyleAttachment as d, RemoteDomThemeBridgeOptions as f, RemoteDomWidgetArtifact as i, RemoteDomCssFetcher as l, RemoteDomCapabilityDeclaration as n, RemoteDomWorkerFactory as o, RemoteDomFullscreenRequest as r, RemoteDomWorkerLike as s, MountRemoteDomWidgetOptions as t, RemoteDomCssUrlInput as u };
93
- //# sourceMappingURL=remote-dom-renderer-CKvnUH8G.d.mts.map
127
+ //# sourceMappingURL=remote-dom-renderer-BGIZ0FRi.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-dom-renderer-BGIZ0FRi.d.mts","names":[],"sources":["../src/remote-dom-styles.ts","../src/remote-dom-renderer.ts"],"mappings":";;;;;UASiB,wBAAA;EAAA,SACN,KAAA,EAAO,OAAA;EAAA,SACP,OAAA;AAAA;AAAA,UAGM,sBAAA;EAAA,SACN,SAAA;EAAA,SACA,OAAA;EAAA,SACA,cAAA;EAAA,SACA,OAAA;EAAA,SACA,SAAA;AAAA;AAAA,UAGM,qBAAA;EAAA,SACN,GAAA;EAAA,SACA,OAAA;AAAA;AAAA,KAGC,oBAAA,YAAgC,qBAAA;AAAA,KAEhC,mBAAA,IAAuB,GAAA,aAAgB,OAAA;AAAA,UAOlC,2BAAA;EAAA,SACN,IAAA,EAAM,UAAA;EAAA,SACN,aAAA,GAAgB,OAAA;EAAA,SAChB,aAAA,GAAgB,IAAA;EAAA,SAChB,OAAA;EAAA,SACA,gBAAA;EAAA,SACA,cAAA;EAAA,SACA,UAAA;EAAA,SACA,qBAAA;AAAA;;;UCqBM,8BAAA;EAAA,SACN,IAAA;EAAA,SACA,OAAA;AAAA;AAAA,UAGM,uBAAA,SAAgC,sBAAA;EAAA,SACtC,UAAA;EAAA,SACA,YAAA,WAAuB,8BAAA;EAAA,SACvB,oBAAA;AAAA;AAAA,UAGM,0BAAA;EAAA,SACN,MAAA;EAAA,SACA,OAAA,GAAU,0BAAA;EAAA,SACV,IAAA,EAAM,WAAA;EAAA,SACN,UAAA,EAAY,UAAA;AAAA;AAAA,UAGN,2BAAA;EAAA,SACN,IAAA,EAAM,WAAA;EAAA,SACN,QAAA,EAAU,uBAAA;EAAA,SACV,KAAA,GAAQ,0BAAA;EAAA,SACR,cAAA,KAEH,UAAA,UACA,MAAA,UACA,OAAA,GAAU,0BAAA,KACP,0BAAA,GAA6B,OAAA,CAAQ,0BAAA;EAAA,SAErC,UAAA,KACH,MAAA,EAAQ,yBAAA,YAAqC,OAAA;EAAA,SAE1C,YAAA,KAEH,OAAA,EAAS,0BAAA,KACN,0BAAA,GAA6B,OAAA,CAAQ,0BAAA;EAAA,SAErC,OAAA,KAAY,KAAA,EAAO,KAAA;EAAA,SACnB,aAAA,GAAgB,sBAAA;EAAA,SAChB,UAAA;EAAA,SACA,YAAA;ED9EqB;EAAA,SCgFrB,iBAAA,GAAoB,WAAA;EAAA,SACpB,oBAAA;EAAA,SACA,eAAA;EAAA,SACA,OAAA;EAAA,SACA,aAAA;EAAA,SACA,OAAA,YAAmB,oBAAA;EDnFK;;AAOnC;;;;EAPmC,SC0FxB,qBAAA;EDhFgB;;;;;;EAAA,SCuFhB,qBAAA,YAAiC,oBAAA;EAAA,SACjC,kBAAA;EAAA,SACA,WAAA,GACL,IAAA,CAAK,2BAAA;EAAA,SAGA,QAAA,GAAW,mBAAA;EAAA,SACX,2BAAA;ED3FA;;;;EAAA,SCgGA,kBAAA,GAAqB,0BAAA;;;;AAzEhC;WA8EW,cAAA,KACH,IAAA,EAAM,YAAA,EAAc,eAAA,EAAiB,WAAA,KAAgB,SAAA;AAAA;AAAA,UAI5C,qBAAA;EAAA,SACN,UAAA,EAAY,UAAA;EAAA,SACZ,MAAA,EAAQ,wBAAA;EAAA,SACR,KAAA,EAAO,OAAA;EAChB,WAAA,CAAY,KAAA,EAAO,0BAAA;EACnB,OAAA;AAAA;AAAA,UAGe,mBAAA;EACf,SAAA,IAAa,KAAA,EAAO,YAAA;EACpB,OAAA,IAAW,KAAA,EAAO,UAAA;EAClB,WAAA,CAAY,OAAA,WAAkB,QAAA,GAAW,YAAA;EACzC,SAAA;EACA,gBAAA,IACE,IAAA,aACA,QAAA,GAAW,KAAA,EAAO,YAAA,oBAClB,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA;AAAA;AAAA,KAIb,sBAAA,IACV,cAAA,UACA,OAAA,EAAS,aAAA,KACN,mBAAA;;;;;;;;;;;iBAoWW,oBAAA,CACd,OAAA,EAAS,2BAAA,GACR,qBAAA"}