@burdenoff/fe-libs 2026.825.3 → 2026.825.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chrome/DynamicFooter.d.ts.map +1 -1
- package/dist/chrome/DynamicFooter.js +68 -65
- package/dist/chrome/notificationCenter/NotificationFooter.d.ts.map +1 -1
- package/dist/chrome/notificationCenter/NotificationFooter.js +13 -12
- package/dist/chrome/notificationCenter/PushOptInToggle.d.ts +19 -0
- package/dist/chrome/notificationCenter/PushOptInToggle.d.ts.map +1 -0
- package/dist/chrome/notificationCenter/PushOptInToggle.js +56 -0
- package/dist/shared/native/index.d.ts +1 -0
- package/dist/shared/native/index.d.ts.map +1 -1
- package/dist/shared/native/push-optin.d.ts +66 -0
- package/dist/shared/native/push-optin.d.ts.map +1 -0
- package/dist/shared/native/push-optin.js +10 -0
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +104 -100
- package/dist/shared-native.js +2 -1
- package/dist/shared.js +3 -2
- package/dist/shell-native/boot.d.ts.map +1 -1
- package/dist/shell-native/boot.js +24 -23
- package/dist/shell-native/index.d.ts +1 -0
- package/dist/shell-native/index.d.ts.map +1 -1
- package/dist/shell-native/push-optin.d.ts +29 -0
- package/dist/shell-native/push-optin.d.ts.map +1 -0
- package/dist/shell-native/push-optin.js +62 -0
- package/dist/shell-native.js +10 -9
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicFooter.d.ts","sourceRoot":"","sources":["../../src/chrome/DynamicFooter.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"DynamicFooter.d.ts","sourceRoot":"","sources":["../../src/chrome/DynamicFooter.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAsFzD,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,kDAAkD;IAClD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,WAAW,EACX,OAAO,EACP,OAAkB,EAClB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,cAAiC,EACjC,eAAuB,EACvB,kBAAyB,GAC1B,EAAE,kBAAkB,2CAoLpB"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { useGatewayClient as e } from "../shared/graphql/GatewayContext.js";
|
|
2
2
|
import "../shared-graphql.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
3
|
+
import { useAuth as t } from "../shared/providers/shell/AuthProvider.js";
|
|
4
|
+
import { useActiveContext as n } from "../shared/providers/shell/ActiveContextProvider.js";
|
|
5
|
+
import { useI18n as r } from "../shared/providers/shell/I18nProvider.js";
|
|
6
|
+
import { DEFAULT_FOOTER_COLUMNS as i, DEFAULT_SOCIAL_LINKS as a, Footer as o } from "./Footer.js";
|
|
7
|
+
import { BrandMark as s } from "./BrandMark.js";
|
|
8
|
+
import { useEffect as c, useMemo as l, useState as u } from "react";
|
|
9
|
+
import { Github as d, Globe as f, Linkedin as p, MessageCircle as m, Twitter as h, Youtube as g } from "lucide-react";
|
|
10
|
+
import { jsx as _ } from "react/jsx-runtime";
|
|
11
|
+
import { gql as v } from "@apollo/client/core";
|
|
12
|
+
import { Link as y } from "react-router";
|
|
12
13
|
//#region src/chrome/DynamicFooter.tsx
|
|
13
|
-
var
|
|
14
|
+
var b = v`
|
|
14
15
|
query GetFooterContentPages($filter: ContentPageFilterInput, $limit: Int) {
|
|
15
16
|
contentPages(filter: $filter, limit: $limit) {
|
|
16
17
|
items {
|
|
@@ -22,14 +23,14 @@ var y = _`
|
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
|
-
`,
|
|
26
|
+
`, x = v`
|
|
26
27
|
query GetFooterProduct($slug: String!) {
|
|
27
28
|
platformProductBySlug(slug: $slug) {
|
|
28
29
|
id
|
|
29
30
|
socialLinks
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
`,
|
|
33
|
+
`, S = {
|
|
33
34
|
"privacy-policy": "privacy",
|
|
34
35
|
"terms-of-service": "terms",
|
|
35
36
|
"cookie-policy": "cookies",
|
|
@@ -40,14 +41,14 @@ var y = _`
|
|
|
40
41
|
compliance: "compliance",
|
|
41
42
|
about: "about",
|
|
42
43
|
contact: "contact"
|
|
43
|
-
},
|
|
44
|
-
twitter: /* @__PURE__ */
|
|
45
|
-
x: /* @__PURE__ */
|
|
46
|
-
github: /* @__PURE__ */
|
|
47
|
-
discord: /* @__PURE__ */
|
|
48
|
-
linkedin: /* @__PURE__ */
|
|
49
|
-
youtube: /* @__PURE__ */ g
|
|
50
|
-
},
|
|
44
|
+
}, C = {
|
|
45
|
+
twitter: /* @__PURE__ */ _(h, { className: "size-5" }),
|
|
46
|
+
x: /* @__PURE__ */ _(h, { className: "size-5" }),
|
|
47
|
+
github: /* @__PURE__ */ _(d, { className: "size-5" }),
|
|
48
|
+
discord: /* @__PURE__ */ _(m, { className: "size-5" }),
|
|
49
|
+
linkedin: /* @__PURE__ */ _(p, { className: "size-5" }),
|
|
50
|
+
youtube: /* @__PURE__ */ _(g, { className: "size-5" })
|
|
51
|
+
}, w = [
|
|
51
52
|
"terms-of-service",
|
|
52
53
|
"privacy-policy",
|
|
53
54
|
"security",
|
|
@@ -57,16 +58,16 @@ var y = _`
|
|
|
57
58
|
"sla",
|
|
58
59
|
"refund-policy"
|
|
59
60
|
];
|
|
60
|
-
function
|
|
61
|
+
function T(e) {
|
|
61
62
|
return e.trim().replace(/[^A-Za-z0-9 ]/g, "").split(/\s+/).map((e, t) => t === 0 ? e.toLowerCase() : e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).join("");
|
|
62
63
|
}
|
|
63
|
-
function
|
|
64
|
-
let { workspaceId:
|
|
65
|
-
|
|
66
|
-
if (!
|
|
64
|
+
function E({ productSlug: d, productName: p, tagline: m, version: h = "v1.0.0", columns: g, socialLinks: v, legalPageOrder: E = w, deferRemoteData: D = !1, hideOnInstalledApp: O = !0 }) {
|
|
65
|
+
let { workspaceId: k, projectId: A } = n(), { isAuthenticated: j } = t(), M = e("global"), { t: N } = r(), [P, F] = u(null), [I, L] = u(null);
|
|
66
|
+
c(() => {
|
|
67
|
+
if (!j || !M || D) return;
|
|
67
68
|
let e = !1;
|
|
68
|
-
return
|
|
69
|
-
query:
|
|
69
|
+
return M.query({
|
|
70
|
+
query: b,
|
|
70
71
|
variables: {
|
|
71
72
|
filter: { isPublished: !0 },
|
|
72
73
|
limit: 50
|
|
@@ -75,25 +76,26 @@ function T({ productSlug: u, productName: f, tagline: p, version: m = "v1.0.0",
|
|
|
75
76
|
}).then((t) => {
|
|
76
77
|
let n = t.data;
|
|
77
78
|
if (e || !n?.contentPages?.items) return;
|
|
78
|
-
let r = n.contentPages.items, i =
|
|
79
|
+
let r = n.contentPages.items, i = E.map((e) => r.find((t) => t.slug === e)).filter((e) => e != null).map((e) => ({
|
|
79
80
|
id: e.slug,
|
|
80
81
|
label: e.title,
|
|
81
|
-
href: `/legal/${
|
|
82
|
+
href: `/legal/${S[e.slug] || e.slug}`
|
|
82
83
|
}));
|
|
83
|
-
i.length > 0 &&
|
|
84
|
+
i.length > 0 && F(i);
|
|
84
85
|
}).catch(() => {}), () => {
|
|
85
86
|
e = !0;
|
|
86
87
|
};
|
|
87
88
|
}, [
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
D,
|
|
90
|
+
M,
|
|
91
|
+
j,
|
|
92
|
+
E
|
|
93
|
+
]), c(() => {
|
|
94
|
+
if (!j || !M || v || D) return;
|
|
93
95
|
let e = !1;
|
|
94
|
-
return
|
|
95
|
-
query:
|
|
96
|
-
variables: { slug:
|
|
96
|
+
return M.query({
|
|
97
|
+
query: x,
|
|
98
|
+
variables: { slug: d },
|
|
97
99
|
fetchPolicy: "cache-first"
|
|
98
100
|
}).then((t) => {
|
|
99
101
|
if (e) return;
|
|
@@ -103,58 +105,59 @@ function T({ productSlug: u, productName: f, tagline: p, version: m = "v1.0.0",
|
|
|
103
105
|
id: e,
|
|
104
106
|
label: e.charAt(0).toUpperCase() + e.slice(1),
|
|
105
107
|
href: t,
|
|
106
|
-
icon:
|
|
108
|
+
icon: C[e.toLowerCase()] || /* @__PURE__ */ _(f, { className: "size-5" })
|
|
107
109
|
}));
|
|
108
|
-
r.length > 0 &&
|
|
110
|
+
r.length > 0 && L(r);
|
|
109
111
|
}).catch(() => {}), () => {
|
|
110
112
|
e = !0;
|
|
111
113
|
};
|
|
112
114
|
}, [
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
v,
|
|
116
|
+
D,
|
|
117
|
+
M,
|
|
118
|
+
j,
|
|
119
|
+
d
|
|
117
120
|
]);
|
|
118
|
-
let
|
|
119
|
-
let e =
|
|
121
|
+
let R = l(() => {
|
|
122
|
+
let e = g ?? i, t = P ? e.map((e) => e.title === "Legal" ? {
|
|
120
123
|
...e,
|
|
121
|
-
links:
|
|
124
|
+
links: P
|
|
122
125
|
} : e) : e, n = (e, t) => {
|
|
123
|
-
let n =
|
|
126
|
+
let n = N(e);
|
|
124
127
|
return n === e ? t : n;
|
|
125
128
|
};
|
|
126
129
|
return t.map((e) => ({
|
|
127
130
|
...e,
|
|
128
|
-
title: n(`footer.columns.${
|
|
131
|
+
title: n(`footer.columns.${T(e.title)}`, e.title),
|
|
129
132
|
links: e.links.map((e) => e.brand ? e : {
|
|
130
133
|
...e,
|
|
131
134
|
label: n(`footer.links.${e.id}`, e.label)
|
|
132
135
|
})
|
|
133
136
|
}));
|
|
134
137
|
}, [
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
P,
|
|
139
|
+
g,
|
|
140
|
+
N
|
|
138
141
|
]);
|
|
139
|
-
return /* @__PURE__ */
|
|
140
|
-
logo: /* @__PURE__ */
|
|
141
|
-
productName:
|
|
142
|
-
tagline:
|
|
143
|
-
columns:
|
|
144
|
-
socialLinks:
|
|
145
|
-
version:
|
|
146
|
-
hideOnInstalledApp:
|
|
142
|
+
return /* @__PURE__ */ _(o, {
|
|
143
|
+
logo: /* @__PURE__ */ _(s, { size: "sidenav" }),
|
|
144
|
+
productName: p,
|
|
145
|
+
tagline: m,
|
|
146
|
+
columns: R,
|
|
147
|
+
socialLinks: v ?? I ?? a,
|
|
148
|
+
version: h,
|
|
149
|
+
hideOnInstalledApp: O,
|
|
147
150
|
context: {
|
|
148
|
-
workspace:
|
|
149
|
-
project:
|
|
151
|
+
workspace: k ?? void 0,
|
|
152
|
+
project: A ?? void 0
|
|
150
153
|
},
|
|
151
|
-
renderLink: ({ href: e, external: t, children: n, className: r }) => t ? /* @__PURE__ */
|
|
154
|
+
renderLink: ({ href: e, external: t, children: n, className: r }) => t ? /* @__PURE__ */ _("a", {
|
|
152
155
|
href: e,
|
|
153
156
|
target: "_blank",
|
|
154
157
|
rel: "noopener noreferrer",
|
|
155
158
|
className: r,
|
|
156
159
|
children: n
|
|
157
|
-
}) : /* @__PURE__ */
|
|
160
|
+
}) : /* @__PURE__ */ _(y, {
|
|
158
161
|
to: e,
|
|
159
162
|
className: r,
|
|
160
163
|
children: n
|
|
@@ -162,4 +165,4 @@ function T({ productSlug: u, productName: f, tagline: p, version: m = "v1.0.0",
|
|
|
162
165
|
});
|
|
163
166
|
}
|
|
164
167
|
//#endregion
|
|
165
|
-
export {
|
|
168
|
+
export { E as DynamicFooter };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationFooter.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/NotificationFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NotificationFooter.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/NotificationFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,uBAAuB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAwB1D,CAAC"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PushOptInToggle as e } from "./PushOptInToggle.js";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
3
|
//#region src/chrome/notificationCenter/NotificationFooter.tsx
|
|
3
|
-
var
|
|
4
|
-
className: "
|
|
5
|
-
children: /* @__PURE__ */ t("div", {
|
|
6
|
-
className: "flex items-center justify-between",
|
|
7
|
-
children: [/* @__PURE__ */
|
|
4
|
+
var r = ({ totalCount: r, onViewAll: i }) => /* @__PURE__ */ n("div", {
|
|
5
|
+
className: "border-t border-border-subtle",
|
|
6
|
+
children: [/* @__PURE__ */ t(e, {}), /* @__PURE__ */ n("div", {
|
|
7
|
+
className: "flex items-center justify-between px-3 pb-3 pt-0",
|
|
8
|
+
children: [/* @__PURE__ */ n("span", {
|
|
8
9
|
className: "text-[11px] text-text-muted",
|
|
9
10
|
children: [
|
|
10
|
-
|
|
11
|
+
r,
|
|
11
12
|
" notification",
|
|
12
|
-
|
|
13
|
+
r === 1 ? "" : "s"
|
|
13
14
|
]
|
|
14
|
-
}),
|
|
15
|
+
}), i && /* @__PURE__ */ t("button", {
|
|
15
16
|
type: "button",
|
|
16
|
-
onClick:
|
|
17
|
+
onClick: i,
|
|
17
18
|
className: "text-xs text-action-primary-bg hover:underline font-medium",
|
|
18
19
|
children: "View All"
|
|
19
20
|
})]
|
|
20
|
-
})
|
|
21
|
+
})]
|
|
21
22
|
});
|
|
22
23
|
//#endregion
|
|
23
|
-
export {
|
|
24
|
+
export { r as NotificationFooter };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Push opt-in control for the notification centre.
|
|
4
|
+
*
|
|
5
|
+
* Lives here rather than in a settings page because this is the one surface
|
|
6
|
+
* every shell already renders, and because it is where a user is thinking about
|
|
7
|
+
* notifications — which is the whole requirement for the permission prompt.
|
|
8
|
+
* The prompt is one-shot on iOS and sticky everywhere, so it must be raised
|
|
9
|
+
* from a deliberate gesture in context, never at boot.
|
|
10
|
+
*
|
|
11
|
+
* It talks to the registry (`shared/native/push-optin`) rather than importing
|
|
12
|
+
* the implementation: `chrome` is statically imported by most microfrontends,
|
|
13
|
+
* and `shell-native` resolves `@capacitor/*`, which must never end up in their
|
|
14
|
+
* bundles. When nothing has registered a controller — an MFE in isolation, a
|
|
15
|
+
* Storybook story, a browser without push — this renders NOTHING at all rather
|
|
16
|
+
* than a dead switch.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PushOptInToggle: FC;
|
|
19
|
+
//# sourceMappingURL=PushOptInToggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PushOptInToggle.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/PushOptInToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAOlE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,EAAE,EAkE7B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { getPushOptInController as e } from "../../shared/native/push-optin.js";
|
|
2
|
+
import { useCallback as t, useEffect as n, useState as r } from "react";
|
|
3
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
|
+
//#region src/chrome/notificationCenter/PushOptInToggle.tsx
|
|
5
|
+
var o = () => {
|
|
6
|
+
let o = e(), [s, c] = r(() => o?.getState() ?? "unsupported"), [l, u] = r(!1);
|
|
7
|
+
n(() => {
|
|
8
|
+
if (o) return c(o.getState()), o.subscribe(c);
|
|
9
|
+
}, [o]);
|
|
10
|
+
let d = t(async () => {
|
|
11
|
+
if (!(!o || l)) {
|
|
12
|
+
u(!0);
|
|
13
|
+
try {
|
|
14
|
+
c(s === "enabled" ? await o.disable() : await o.enable());
|
|
15
|
+
} finally {
|
|
16
|
+
u(!1);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}, [
|
|
20
|
+
o,
|
|
21
|
+
l,
|
|
22
|
+
s
|
|
23
|
+
]);
|
|
24
|
+
if (!o || s === "unsupported") return null;
|
|
25
|
+
if (s === "denied") return /* @__PURE__ */ i("div", {
|
|
26
|
+
className: "px-3 pb-3 pt-1",
|
|
27
|
+
children: /* @__PURE__ */ i("p", {
|
|
28
|
+
className: "text-[11px] text-text-muted",
|
|
29
|
+
children: "Push notifications are blocked. Re-enable them in your browser or device settings."
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
let f = s === "enabled";
|
|
33
|
+
return /* @__PURE__ */ a("div", {
|
|
34
|
+
className: "flex items-center justify-between gap-3 px-3 pb-3 pt-1",
|
|
35
|
+
children: [/* @__PURE__ */ i("span", {
|
|
36
|
+
className: "text-[11px] text-text-muted",
|
|
37
|
+
children: f ? "Push notifications are on" : "Get notified when this tab is closed"
|
|
38
|
+
}), /* @__PURE__ */ i("button", {
|
|
39
|
+
type: "button",
|
|
40
|
+
role: "switch",
|
|
41
|
+
"aria-checked": f,
|
|
42
|
+
"aria-label": "Push notifications",
|
|
43
|
+
disabled: l,
|
|
44
|
+
onClick: () => void d(),
|
|
45
|
+
className: [
|
|
46
|
+
"relative inline-flex h-5 w-9 shrink-0 items-center rounded-full",
|
|
47
|
+
"transition-colors disabled:opacity-50",
|
|
48
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-strong",
|
|
49
|
+
f ? "bg-action-primary-bg" : "bg-bg-sunken"
|
|
50
|
+
].join(" "),
|
|
51
|
+
children: /* @__PURE__ */ i("span", { className: ["inline-block size-4 rounded-full bg-bg-surface transition-transform", f ? "translate-x-[18px]" : "translate-x-0.5"].join(" ") })
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export { o as PushOptInToggle };
|
|
@@ -10,4 +10,5 @@ export type { NativeEntryRoutes } from './entry';
|
|
|
10
10
|
export { nativeSelection, nativeActionSheet } from './consumers';
|
|
11
11
|
export { getDesktopBridge, getLegacyDesktopRuntime, isDesktop, getDesktopRuntimeConfig, getDesktopGatewayBases, getDesktopGatewayUrls, getDesktopAuthBridgeConfig, desktopOpenExternal, desktopNotify, desktopSetBadgeCount, desktopSetTheme, desktopSetTrayQuickActions, desktopSetLocale, desktopDeepLinkToPath, installDesktopDeepLinkHandler, installDesktopNavigateHandler, registerDesktopNavigator, bootDesktopShell, onDesktopUpdateState, onDesktopWindowState, getDesktopWindowState, desktopCheckForUpdates, desktopInstallUpdate, getDesktopUpdateState, DESKTOP_UPDATE_UNSUPPORTED, DESKTOP_WINDOW_STATE_DEFAULT, } from './desktop';
|
|
12
12
|
export type { BootDesktopShellOptions, DesktopShellHandle, LegacyDesktopRuntime } from './desktop';
|
|
13
|
+
export { getPushOptInController, registerPushOptInController, type PushOptInController, type PushOptInState, } from './push-optin';
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Push Opt-In Registry
|
|
3
|
+
*
|
|
4
|
+
* The seam that lets shell chrome offer a push toggle without importing
|
|
5
|
+
* `shell-native` — and therefore without dragging Capacitor into every
|
|
6
|
+
* microfrontend.
|
|
7
|
+
*
|
|
8
|
+
* ── Why a registry and not a direct import ─────────────────────────────────
|
|
9
|
+
* `chrome` is statically imported by most MFEs (`microfe-auth`,
|
|
10
|
+
* `microfe-billing`, `microfe-conversations`, …). `shell-native` resolves
|
|
11
|
+
* `@capacitor/*`, which those packages must never pull in — the rule the
|
|
12
|
+
* shell-native docblock states as "never re-export shell-native from
|
|
13
|
+
* shared/native". A toggle living in chrome therefore cannot import the push
|
|
14
|
+
* implementation; it has to be handed one.
|
|
15
|
+
*
|
|
16
|
+
* So the app shell registers a controller during `bootNativeShell()`, and
|
|
17
|
+
* chrome asks for whatever is registered. On a surface where nothing registers
|
|
18
|
+
* — an MFE rendered in isolation, a Storybook story, a test — `getPushOptInController()`
|
|
19
|
+
* returns null and the toggle renders nothing rather than throwing.
|
|
20
|
+
*
|
|
21
|
+
* The same indirection is what lets one component serve both platforms: the
|
|
22
|
+
* shell registers the Capacitor implementation on native and the Web Push one
|
|
23
|
+
* in a browser, and chrome does not need to know which it got.
|
|
24
|
+
*
|
|
25
|
+
* @module shared/native/push-optin
|
|
26
|
+
*/
|
|
27
|
+
/** Where a push opt-in currently stands, from the UI's point of view. */
|
|
28
|
+
export type PushOptInState =
|
|
29
|
+
/** No push support at all — no controller, or the browser lacks the APIs. */
|
|
30
|
+
'unsupported'
|
|
31
|
+
/** Supported, never asked. Showing the control is safe; it will prompt. */
|
|
32
|
+
| 'default'
|
|
33
|
+
/** Permission granted AND a live subscription/token exists. */
|
|
34
|
+
| 'enabled'
|
|
35
|
+
/** Permission granted but not currently subscribed. */
|
|
36
|
+
| 'disabled'
|
|
37
|
+
/** Permission refused. Cannot be re-prompted from script — see below. */
|
|
38
|
+
| 'denied';
|
|
39
|
+
/**
|
|
40
|
+
* The capability chrome needs, implemented by the shell.
|
|
41
|
+
*
|
|
42
|
+
* `enable()` MUST be called from a user gesture. The permission prompt is
|
|
43
|
+
* one-shot on iOS and sticky everywhere, so a denied prompt is unrecoverable
|
|
44
|
+
* in-page: the user has to change it in browser or OS settings. That is why
|
|
45
|
+
* there is a distinct `denied` state rather than an error.
|
|
46
|
+
*/
|
|
47
|
+
export interface PushOptInController {
|
|
48
|
+
/** Current state. Cheap and synchronous — safe to call during render. */
|
|
49
|
+
getState(): PushOptInState;
|
|
50
|
+
/** Prompt if needed, then subscribe. Resolves to the resulting state. */
|
|
51
|
+
enable(): Promise<PushOptInState>;
|
|
52
|
+
/** Drop the subscription and revoke the device registration. */
|
|
53
|
+
disable(): Promise<PushOptInState>;
|
|
54
|
+
/** Subscribe to state changes; returns an unsubscribe function. */
|
|
55
|
+
subscribe(listener: (state: PushOptInState) => void): () => void;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Install the shell's implementation. Called by `bootNativeShell()`.
|
|
59
|
+
*
|
|
60
|
+
* Last registration wins, and passing `null` clears it — a test that installs a
|
|
61
|
+
* fake can restore the previous state without reloading the module.
|
|
62
|
+
*/
|
|
63
|
+
export declare function registerPushOptInController(next: PushOptInController | null): void;
|
|
64
|
+
/** The registered controller, or `null` when the surface has no push support. */
|
|
65
|
+
export declare function getPushOptInController(): PushOptInController | null;
|
|
66
|
+
//# sourceMappingURL=push-optin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push-optin.d.ts","sourceRoot":"","sources":["../../../src/shared/native/push-optin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,yEAAyE;AACzE,MAAM,MAAM,cAAc;AACxB,6EAA6E;AAC3E,aAAa;AACf,2EAA2E;GACzE,SAAS;AACX,+DAA+D;GAC7D,SAAS;AACX,uDAAuD;GACrD,UAAU;AACZ,yEAAyE;GACvE,QAAQ,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,QAAQ,IAAI,cAAc,CAAC;IAC3B,yEAAyE;IACzE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,gEAAgE;IAChE,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,mEAAmE;IACnE,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAClE;AAID;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAElF;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,IAAI,mBAAmB,GAAG,IAAI,CAEnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShellProvider.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/AppShellProvider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAa1F,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAa/B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EASL,KAAK,kBAAkB,EACxB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"AppShellProvider.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/AppShellProvider.tsx"],"names":[],"mappings":"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"}
|