@pwa-platform/react 0.1.0 → 0.2.0
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/README.md +83 -10
- package/dist/ui.d.ts +8 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +23 -2
- package/dist/ui.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,23 +1,96 @@
|
|
|
1
1
|
# @pwa-platform/react
|
|
2
2
|
|
|
3
|
-
React 19 binding for PWA Platform.
|
|
3
|
+
React 19 binding for PWA Platform. `PwaProvider` owns one browser lifecycle facade for its subtree, `usePwa()`
|
|
4
|
+
exposes install/update state and actions, and an optional accessible update notice handles the confirmation flow.
|
|
5
|
+
Configure build artifacts separately with `@pwa-platform/vite`.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
## Install
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
```sh
|
|
10
|
+
npm install @pwa-platform/react @pwa-platform/vite
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Add `@pwa-platform/vite/virtual` to `compilerOptions.types`, then mount the provider:
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
// main.tsx
|
|
17
|
+
import config from "virtual:pwa-config";
|
|
18
|
+
import { PwaProvider } from "@pwa-platform/react";
|
|
19
|
+
import { createRoot } from "react-dom/client";
|
|
20
|
+
import { App } from "./App";
|
|
21
|
+
|
|
22
|
+
createRoot(document.getElementById("root")!).render(
|
|
23
|
+
<PwaProvider config={config} updateCheck={{ intervalMs: 30 * 60_000 }}>
|
|
24
|
+
<App />
|
|
25
|
+
</PwaProvider>,
|
|
26
|
+
);
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Register from a browser effect, normally only in production:
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
import { useEffect } from "react";
|
|
33
|
+
import { usePwa } from "@pwa-platform/react";
|
|
34
|
+
|
|
35
|
+
export function PwaActions() {
|
|
36
|
+
const pwa = usePwa();
|
|
37
|
+
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (import.meta.env.PROD) void pwa.register();
|
|
40
|
+
}, [pwa.register]);
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<>
|
|
44
|
+
{pwa.state.installEligible && (
|
|
45
|
+
<button onClick={() => void pwa.promptInstall()}>安装应用</button>
|
|
46
|
+
)}
|
|
47
|
+
{pwa.state.updateWaiting && (
|
|
48
|
+
<button onClick={() => void pwa.applyUpdate()}>更新应用</button>
|
|
49
|
+
)}
|
|
50
|
+
</>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`usePwa()` returns `registered`, `installEligible`, `installed` and `updateWaiting` in `state`, plus `register()`,
|
|
56
|
+
`promptInstall()`, `checkForUpdate()`, `applyUpdate()` and `logout()`. It throws outside a provider. Server rendering
|
|
57
|
+
receives the initial all-false state; methods reject until called after hydration.
|
|
58
|
+
|
|
59
|
+
## Optional update notice
|
|
8
60
|
|
|
9
61
|
```tsx
|
|
10
62
|
import { PwaUpdateNotice } from "@pwa-platform/react/ui";
|
|
11
63
|
import "@pwa-platform/react/update-notice.css";
|
|
12
64
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
65
|
+
export function App() {
|
|
66
|
+
return (
|
|
67
|
+
<>
|
|
68
|
+
<YourRoutes />
|
|
69
|
+
<PwaUpdateNotice
|
|
70
|
+
position="bottom-right"
|
|
71
|
+
messages={{ readyTitle: "发现新版本", update: "立即更新", later: "稍后" }}
|
|
72
|
+
colors={{ primaryButtonBackground: "#006e52", primaryButtonText: "#fff" }}
|
|
73
|
+
reloadPage={() => location.reload()}
|
|
74
|
+
/>
|
|
75
|
+
</>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
17
78
|
```
|
|
18
79
|
|
|
19
|
-
The
|
|
80
|
+
The notice is opt-in and non-modal. Positions are `bottom-right`, `bottom-center`, `top-right` and `top-center`.
|
|
81
|
+
`locale` selects the built-in copy (`"zh-CN"`, the default, or `"en"`); `messages` overrides individual keys on top of it; `colors` controls surface, text, muted text, border and primary
|
|
82
|
+
button colors. CSS variables prefixed with `--pwa-update-` provide deeper theming. `reloadPage` runs only after
|
|
83
|
+
worker takeover and an explicit click, allowing the host to protect unsaved work.
|
|
84
|
+
|
|
85
|
+
## Lifecycle boundaries
|
|
20
86
|
|
|
21
|
-
|
|
87
|
+
- Do not pass both `client` and `updateCheck`; an injected facade is already configured and the provider throws.
|
|
88
|
+
- The provider creates/disposes the facade in an effect and remains safe under React Strict Mode.
|
|
89
|
+
- `applyUpdate()` changes the controlling worker but never reloads the page unless the host or notice does it.
|
|
90
|
+
- `logout()` returns the cleanup result but does not reset the binding's `registered` snapshot. Recreate/reload the
|
|
91
|
+
provider if its UI must reflect an unregistered worker immediately.
|
|
92
|
+
- The binding intentionally does not expose raw event subscription. Use `@pwa-platform/client-runtime` directly
|
|
93
|
+
only when lifecycle telemetry such as `served-from-cache` is required.
|
|
22
94
|
|
|
23
|
-
|
|
95
|
+
See the [React quick start](https://github.com/haigeerlab/pwa-platform/blob/main/website/start/react.md) and
|
|
96
|
+
[update prompt guide](https://github.com/haigeerlab/pwa-platform/blob/main/docs/guides/update-prompt.md).
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
2
|
export type PwaUpdateNoticePosition = "bottom-right" | "bottom-center" | "top-right" | "top-center";
|
|
3
|
+
/** Built-in copy is available for these locales; anything else needs a full `messages` override. */
|
|
4
|
+
export type PwaUpdateNoticeLocale = "zh-CN" | "en";
|
|
3
5
|
export type PwaUpdateNoticeMessages = {
|
|
4
6
|
readonly readyTitle: string;
|
|
5
7
|
readonly readyBody: string;
|
|
@@ -16,6 +18,8 @@ export type PwaUpdateNoticeMessages = {
|
|
|
16
18
|
};
|
|
17
19
|
export type PwaUpdateNoticeProps = {
|
|
18
20
|
readonly position?: PwaUpdateNoticePosition;
|
|
21
|
+
/** Selects the built-in message table `messages` is layered on top of. Defaults to `"zh-CN"`. */
|
|
22
|
+
readonly locale?: PwaUpdateNoticeLocale;
|
|
19
23
|
readonly messages?: Partial<PwaUpdateNoticeMessages>;
|
|
20
24
|
readonly colors?: Partial<PwaUpdateNoticeColors>;
|
|
21
25
|
readonly reloadPage?: () => void;
|
|
@@ -28,6 +32,9 @@ export type PwaUpdateNoticeColors = {
|
|
|
28
32
|
readonly primaryButtonBackground: string;
|
|
29
33
|
readonly primaryButtonText: string;
|
|
30
34
|
};
|
|
35
|
+
/** The single source of truth for built-in copy, keyed by locale (ADR-0039, "增补:内置语言选择"). Exported so the
|
|
36
|
+
* public examples can reference it instead of keeping their own copy. */
|
|
37
|
+
export declare const PWA_UPDATE_NOTICE_MESSAGES: Readonly<Record<PwaUpdateNoticeLocale, PwaUpdateNoticeMessages>>;
|
|
31
38
|
/** Opt-in, non-modal update notice. Import `@pwa-platform/react/update-notice.css` for its default appearance. */
|
|
32
|
-
export declare function PwaUpdateNotice({ position, messages: overrides, colors, reloadPage, }: PwaUpdateNoticeProps): ReactElement | null;
|
|
39
|
+
export declare function PwaUpdateNotice({ position, locale, messages: overrides, colors, reloadPage, }: PwaUpdateNoticeProps): ReactElement | null;
|
|
33
40
|
//# sourceMappingURL=ui.d.ts.map
|
package/dist/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1G,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;AAEpG,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1G,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;AAEpG,oGAAoG;AACpG,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,IAAI,CAAC;AAEnD,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAC5C,iGAAiG;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC,CAAC;AAiCF;yEACyE;AACzE,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAGvG,CAAC;AAOF,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,EAC9B,QAAyB,EACzB,MAAgB,EAChB,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,UAAU,GACX,EAAE,oBAAoB,GAAG,YAAY,GAAG,IAAI,CA6H5C"}
|
package/dist/ui.js
CHANGED
|
@@ -14,10 +14,31 @@ const DEFAULT_MESSAGES = {
|
|
|
14
14
|
errorBody: "请检查连接后重试。",
|
|
15
15
|
retry: "重试",
|
|
16
16
|
};
|
|
17
|
+
/** English copy, verified on real Android and iPhone devices via the public examples. */
|
|
18
|
+
const EN_MESSAGES = {
|
|
19
|
+
readyTitle: "A new version is available",
|
|
20
|
+
readyBody: "The new offline resources are ready. Update when it suits you.",
|
|
21
|
+
update: "Update",
|
|
22
|
+
later: "Later",
|
|
23
|
+
updatingTitle: "Updating",
|
|
24
|
+
updatingBody: "Switching offline resources. Please wait.",
|
|
25
|
+
reloadTitle: "Update complete",
|
|
26
|
+
reloadBody: "Reload this page when you're ready to use the latest version.",
|
|
27
|
+
reload: "Reload page",
|
|
28
|
+
errorTitle: "Update incomplete",
|
|
29
|
+
errorBody: "Check your connection and try again.",
|
|
30
|
+
retry: "Retry",
|
|
31
|
+
};
|
|
32
|
+
/** The single source of truth for built-in copy, keyed by locale (ADR-0039, "增补:内置语言选择"). Exported so the
|
|
33
|
+
* public examples can reference it instead of keeping their own copy. */
|
|
34
|
+
export const PWA_UPDATE_NOTICE_MESSAGES = {
|
|
35
|
+
"zh-CN": DEFAULT_MESSAGES,
|
|
36
|
+
en: EN_MESSAGES,
|
|
37
|
+
};
|
|
17
38
|
const REMIND_AFTER_MS = 30 * 60_000;
|
|
18
39
|
const STABLE_WAITING_MS = 100;
|
|
19
40
|
/** Opt-in, non-modal update notice. Import `@pwa-platform/react/update-notice.css` for its default appearance. */
|
|
20
|
-
export function PwaUpdateNotice({ position = "bottom-right", messages: overrides, colors, reloadPage, }) {
|
|
41
|
+
export function PwaUpdateNotice({ position = "bottom-right", locale = "zh-CN", messages: overrides, colors, reloadPage, }) {
|
|
21
42
|
const pwa = usePwa();
|
|
22
43
|
const waiting = pwa.state.updateWaiting;
|
|
23
44
|
const [phase, setPhase] = useState("ready");
|
|
@@ -111,7 +132,7 @@ export function PwaUpdateNotice({ position = "bottom-right", messages: overrides
|
|
|
111
132
|
const mode = phase === "ready" ? (waiting && stableWaiting && !dismissed ? "ready" : null) : phase;
|
|
112
133
|
if (mode === null)
|
|
113
134
|
return null;
|
|
114
|
-
const messages = { ...
|
|
135
|
+
const messages = { ...PWA_UPDATE_NOTICE_MESSAGES[locale], ...overrides };
|
|
115
136
|
const title = messages[`${mode}Title`];
|
|
116
137
|
const body = messages[`${mode}Body`];
|
|
117
138
|
const buttons = [];
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAyC,MAAM,OAAO,CAAC;AAC1G,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAyC,MAAM,OAAO,CAAC;AAC1G,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAwCpC,MAAM,gBAAgB,GAA4B;IAChD,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,yBAAyB;IACpC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,aAAa,EAAE,MAAM;IACrB,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,oBAAoB;IAChC,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,yFAAyF;AACzF,MAAM,WAAW,GAA4B;IAC3C,UAAU,EAAE,4BAA4B;IACxC,SAAS,EAAE,gEAAgE;IAC3E,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,UAAU;IACzB,YAAY,EAAE,2CAA2C;IACzD,WAAW,EAAE,iBAAiB;IAC9B,UAAU,EAAE,+DAA+D;IAC3E,MAAM,EAAE,aAAa;IACrB,UAAU,EAAE,mBAAmB;IAC/B,SAAS,EAAE,sCAAsC;IACjD,KAAK,EAAE,OAAO;CACf,CAAC;AAEF;yEACyE;AACzE,MAAM,CAAC,MAAM,0BAA0B,GAAqE;IAC1G,OAAO,EAAE,gBAAgB;IACzB,EAAE,EAAE,WAAW;CAChB,CAAC;AAEF,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAC;AACpC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAI9B,kHAAkH;AAClH,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,GAAG,cAAc,EACzB,MAAM,GAAG,OAAO,EAChB,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,UAAU,GACW;IACrB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAQ,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,CAA4C,SAAS,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,MAAM,CAA4C,SAAS,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7B,SAAS,aAAa;QACpB,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnE,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,SAAS,iBAAiB;QACxB,IAAI,YAAY,CAAC,OAAO,KAAK,SAAS;YAAE,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3E,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,SAAS,iBAAiB,CAAC,KAAc;QACvC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC;QAC3C,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;QAClC,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,YAAY,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACrC,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;gBACjC,IAAI,eAAe,CAAC,OAAO;oBAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC;YAC3C,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;YACrC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACzC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YACxB,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,KAAK;QACZ,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,aAAa,EAAE,CAAC;QAChB,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;YAC7B,IAAI,eAAe,CAAC,OAAO;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC,EAAE,eAAe,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,UAAU,KAAK;QAClB,IAAI,KAAK,KAAK,UAAU;YAAE,OAAO;QACjC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO;YAC7B,QAAQ,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,OAAO,CAAC,OAAO;gBAAE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,SAAS,MAAM;QACb,IAAI,UAAU,KAAK,SAAS;YAAE,UAAU,EAAE,CAAC;;YACtC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnG,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,QAAQ,GAAG,EAAE,GAAG,0BAA0B,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;IACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,8DAA8D,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAClM,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClJ,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,8DAA8D,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAChM,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,8DAA8D,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACxL,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,8DAA8D,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClM,CAAC;IAED,OAAO,aAAa,CAAC,SAAS,EAAE;QAC9B,SAAS,EAAE,mBAAmB;QAC9B,eAAe,EAAE,QAAQ;QACzB,KAAK,EAAE;YACL,sBAAsB,EAAE,MAAM,EAAE,OAAO;YACvC,mBAAmB,EAAE,MAAM,EAAE,IAAI;YACjC,oBAAoB,EAAE,MAAM,EAAE,SAAS;YACvC,qBAAqB,EAAE,MAAM,EAAE,MAAM;YACrC,qBAAqB,EAAE,MAAM,EAAE,uBAAuB;YACtD,0BAA0B,EAAE,MAAM,EAAE,iBAAiB;SACrC;QAClB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,IAAI,KAAK,UAAU;KACjC,EACD,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,EAAE,KAAK,CAAC,EACrE,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,yBAAyB,EAAE,EAAE,IAAI,CAAC,EAClE,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,4BAA4B,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pwa-platform/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "React 19 binding for PWA Platform.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"react": "^19.2.0"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@pwa-platform/client-runtime": "0.
|
|
29
|
+
"@pwa-platform/client-runtime": "0.2.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/react": "19.3.0",
|
|
33
33
|
"react": "19.3.0",
|
|
34
|
-
"@pwa-platform/vue": "0.
|
|
34
|
+
"@pwa-platform/vue": "0.2.0"
|
|
35
35
|
},
|
|
36
36
|
"engines": {
|
|
37
37
|
"node": ">=22.0.0"
|