@web-widget/vue 3.0.0-beta.2 → 3.0.0-beta.3

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.
@@ -126,7 +126,7 @@ function container(loader, options = {}) {
126
126
  }
127
127
  },
128
128
  setup({ widget }, { slots }) {
129
- var _a;
129
+ var _a, _b;
130
130
  const {
131
131
  fallback,
132
132
  loading = (_a = options.loading) != null ? _a : "lazy",
@@ -136,6 +136,28 @@ function container(loader, options = {}) {
136
136
  const { pendingFallback, errorFallback } = resolveFallback(fallback);
137
137
  const renderStage = serverOnly ? "server" : clientOnly ? "client" : options.renderStage;
138
138
  const data = useAttrs();
139
+ if (clientOnly && !IS_CLIENT && pendingFallback) {
140
+ const renderer = new WebWidgetRenderer(loader, {
141
+ ...options,
142
+ children: "",
143
+ data,
144
+ loading,
145
+ renderStage,
146
+ renderTarget: (_b = options.renderTarget) != null ? _b : "light"
147
+ });
148
+ return () => h(
149
+ renderer.localName,
150
+ renderer.attributes,
151
+ h(
152
+ renderer.pendingLocalName,
153
+ {
154
+ "aria-busy": "true",
155
+ style: { display: "contents" }
156
+ },
157
+ pendingFallback
158
+ )
159
+ );
160
+ }
139
161
  const error = ref(null);
140
162
  onErrorCaptured((err) => {
141
163
  error.value = err;
@@ -31,12 +31,14 @@ declare function resolveFallback(fallback: WidgetFallback | undefined): {
31
31
  };
32
32
  interface WidgetContainerConfig {
33
33
  /**
34
- * Fallback UI for loading and error states.
34
+ * Fallback UI for pending and error states.
35
35
  *
36
- * Only effective during server-side rendering: loading UI shows while the
36
+ * Only effective during server-side rendering: pending UI shows while the
37
37
  * widget module renders; error UI shows if rendering fails. Both are
38
38
  * serialized into the HTML stream — no client-side retry exists in the
39
39
  * islands architecture.
40
+ * For `clientOnly`, pending UI is rendered inside the `<web-widget>` element
41
+ * and removed immediately before its client mount begins.
40
42
  *
41
43
  * - `VNode` — used for both pending (Suspense) and error.
42
44
  * - `{ pending?, error? }` — specify independently; `error` defaults to `pending`.
@@ -1,7 +1,7 @@
1
1
  import * as _web_widget_schema from '@web-widget/schema';
2
2
  import { Component } from 'vue';
3
- import { C as CreateVueRenderOptions } from './types-BY8s0m9C.js';
4
- export { D as DefineWebWidgetOptions, V as VueWidgetComponent, W as WidgetContainerConfig, a as WidgetFallback, c as container, r as resolveFallback } from './types-BY8s0m9C.js';
3
+ import { C as CreateVueRenderOptions } from './types-eCw5P8fo.js';
4
+ export { D as DefineWebWidgetOptions, V as VueWidgetComponent, W as WidgetContainerConfig, a as WidgetFallback, c as container, r as resolveFallback } from './types-eCw5P8fo.js';
5
5
  export { asReactWidget, toReact } from './vue.js';
6
6
  import '@web-widget/web-widget';
7
7
  import '@web-widget/react/adapter';
@@ -2,7 +2,7 @@ import {
2
2
  container,
3
3
  installErrorHandler,
4
4
  resolveFallback
5
- } from "./chunk-7KXT6LS2.js";
5
+ } from "./chunk-7BZH43RE.js";
6
6
  import {
7
7
  asReactWidget,
8
8
  toReact
@@ -1,8 +1,8 @@
1
1
  import * as _web_widget_schema from '@web-widget/schema';
2
2
  import { Component } from 'vue';
3
3
  import { SSRContext } from 'vue/server-renderer';
4
- import { C as CreateVueRenderOptions } from './types-BY8s0m9C.js';
5
- export { D as DefineWebWidgetOptions, V as VueWidgetComponent, W as WidgetContainerConfig, a as WidgetFallback, c as container, r as resolveFallback } from './types-BY8s0m9C.js';
4
+ import { C as CreateVueRenderOptions } from './types-eCw5P8fo.js';
5
+ export { D as DefineWebWidgetOptions, V as VueWidgetComponent, W as WidgetContainerConfig, a as WidgetFallback, c as container, r as resolveFallback } from './types-eCw5P8fo.js';
6
6
  export { asReactWidget, toReact } from './vue.js';
7
7
  import '@web-widget/web-widget';
8
8
  import '@web-widget/react/adapter';
@@ -2,7 +2,7 @@ import {
2
2
  container,
3
3
  installErrorHandler,
4
4
  resolveFallback
5
- } from "./chunk-7KXT6LS2.js";
5
+ } from "./chunk-7BZH43RE.js";
6
6
  import {
7
7
  asReactWidget,
8
8
  toReact
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@web-widget/vue",
3
3
  "description": "Vue adapter",
4
- "version": "3.0.0-beta.2",
4
+ "version": "3.0.0-beta.3",
5
5
  "homepage": "https://github.com/web-widget/web-widget#readme",
6
6
  "repository": {
7
7
  "type": "git",
@@ -13,10 +13,10 @@
13
13
  },
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@web-widget/helpers": "3.0.0-beta.2",
17
- "@web-widget/schema": "3.0.0-beta.2",
18
- "@web-widget/web-widget": "3.0.0-beta.2",
19
- "@web-widget/react": "3.0.0-beta.2"
16
+ "@web-widget/helpers": "3.0.0-beta.3",
17
+ "@web-widget/web-widget": "3.0.0-beta.3",
18
+ "@web-widget/schema": "3.0.0-beta.3",
19
+ "@web-widget/react": "3.0.0-beta.3"
20
20
  },
21
21
  "devDependencies": {
22
22
  "tsup": "^8.3.4",