@proappstore/sdk 1.16.76 → 1.16.78
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 +10 -0
- package/dist/shell.d.ts +12 -2
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +7 -7
- package/dist/shell.js.map +1 -1
- package/dist/ui-gate.d.ts +3 -1
- package/dist/ui-gate.d.ts.map +1 -1
- package/dist/ui-gate.js +5 -3
- package/dist/ui-gate.js.map +1 -1
- package/dist/ui-pro-components.d.ts +3 -1
- package/dist/ui-pro-components.d.ts.map +1 -1
- package/dist/ui-pro-components.js +2 -2
- package/dist/ui-pro-components.js.map +1 -1
- package/dist/ui-profile-menu.d.ts +3 -1
- package/dist/ui-profile-menu.d.ts.map +1 -1
- package/dist/ui-profile-menu.js +2 -2
- package/dist/ui-profile-menu.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -637,6 +637,7 @@ export default function App() {
|
|
|
637
637
|
<ProShell
|
|
638
638
|
app={app}
|
|
639
639
|
appName="Meetup"
|
|
640
|
+
branding="app"
|
|
640
641
|
nav={[
|
|
641
642
|
{ label: 'Events', href: '/' },
|
|
642
643
|
{ label: 'Groups', href: '/groups' },
|
|
@@ -655,6 +656,7 @@ Props:
|
|
|
655
656
|
| `app` | `ProAppStore` | SDK instance from `initPro()` |
|
|
656
657
|
| `children` | `ReactNode` | App content (rendered only when gates pass) |
|
|
657
658
|
| `appName` | `string?` | Name shown in the topbar |
|
|
659
|
+
| `branding` | `'platform' \| 'app'?` | Branding mode. `platform` is the backwards-compatible default; `app` keeps app name, navigation, sign-in, subscription enforcement, text-size and account controls, while omitting PAS/ProAppStore/PRO advertising (including signed-out and subscriber states). New independently branded apps should pass `"app"`. |
|
|
658
660
|
| `nav` | `{ label: string; href: string; icon?: ReactNode; title?: string }[]` | **The app's screens**, rendered as the main navigation in the topbar |
|
|
659
661
|
| `onNavigate` | `(href: string) => void` | Client-side navigation for nav clicks (e.g. a router's `navigate`); without it items are links |
|
|
660
662
|
| `renderNav` | `(ctx) => ReactNode` | Replace the built-in NavBar (`ctx`: `items`, `currentPath`, `onNavigate`) |
|
|
@@ -710,6 +712,14 @@ Do not build navigation into a page, and do not stack a second navbar under the
|
|
|
710
712
|
|
|
711
713
|
For a fully custom layout, use `<ProShell app={app} hideTopbar hideFooter>` and compose `NavBar`, `ProfileMenu`, `SignInButton`, `GateScreen`, and hooks from `@proappstore/sdk/ui` and `@proappstore/sdk/hooks`.
|
|
712
714
|
|
|
715
|
+
New templates explicitly use `branding="app"`; the SDK default remains
|
|
716
|
+
`branding="platform"` so upgrading an existing app does not silently change
|
|
717
|
+
its visual chrome. App mode removes PAS/ProAppStore/PRO advertising from the
|
|
718
|
+
ready shell and signed-out/subscription gates, but retains the real sign-in,
|
|
719
|
+
subscription and billing controls. Apps that intentionally want legacy
|
|
720
|
+
platform attribution can omit the prop or pass `branding="platform"`;
|
|
721
|
+
`renderTopbar` and `renderFooter` remain explicit customisation hooks.
|
|
722
|
+
|
|
713
723
|
The children render only after the gates pass: signed-out visitors see the sign-in screen with no topbar or navigation, and `platform-cookie` apps show it briefly to returning users while the session hydrates. Routing caveats (routers, hash routing) and a step-by-step guide to replacing a hand-rolled header or navbar are in the [SDK overview](https://docs.proappstore.online/sdk-overview/#proshell-component).
|
|
714
724
|
|
|
715
725
|
## UI Components
|
package/dist/shell.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface ProShellRenderContext {
|
|
|
23
23
|
textSizeToggle: ReactNode;
|
|
24
24
|
/** Platform profile dropdown, including any menuItems passed to ProShell. */
|
|
25
25
|
profileMenu: ReactNode;
|
|
26
|
-
/**
|
|
26
|
+
/** Subscription badge when the current subscription is active; otherwise null. */
|
|
27
27
|
proBadge: ReactNode;
|
|
28
28
|
/** The app's main navigation (`nav` / `renderNav`), or null when none is declared.
|
|
29
29
|
* A custom `renderTopbar` should place it. */
|
|
@@ -43,6 +43,16 @@ export interface ProShellProps {
|
|
|
43
43
|
children: ReactNode;
|
|
44
44
|
/** App name shown in the topbar. */
|
|
45
45
|
appName?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Controls only the default shell attribution chrome.
|
|
48
|
+
*
|
|
49
|
+
* `platform` preserves the legacy ProAppStore wordmark and footer for
|
|
50
|
+
* existing apps. New independently branded apps should use `app`, which
|
|
51
|
+
* keeps the app name, navigation, text-size control, and profile menu but
|
|
52
|
+
* renders no ProAppStore link or footer. A custom topbar/footer remains an
|
|
53
|
+
* explicit opt-in regardless of this setting.
|
|
54
|
+
*/
|
|
55
|
+
branding?: 'platform' | 'app';
|
|
46
56
|
/**
|
|
47
57
|
* The app's screens — the standard way to give an app navigation (#235).
|
|
48
58
|
* ProShell renders them as a `<nav aria-label="Main">` in its topbar, marks
|
|
@@ -122,5 +132,5 @@ export interface ProShellProps {
|
|
|
122
132
|
* }
|
|
123
133
|
* ```
|
|
124
134
|
*/
|
|
125
|
-
export declare function ProShell({ app, children, appName, nav, renderNav, onNavigate, allowFree, showThemeToggle, menuItems, hideTopbar, hideFooter, renderTopbar, renderFooter, renderError, renderLoading, }: ProShellProps): import("react/jsx-runtime").JSX.Element;
|
|
135
|
+
export declare function ProShell({ app, children, appName, branding, nav, renderNav, onNavigate, allowFree, showThemeToggle, menuItems, hideTopbar, hideFooter, renderTopbar, renderFooter, renderError, renderLoading, }: ProShellProps): import("react/jsx-runtime").JSX.Element;
|
|
126
136
|
//# sourceMappingURL=shell.d.ts.map
|
package/dist/shell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8E,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAsC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,GAAG,EAAE,WAAW,CAAC;IACjB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,kFAAkF;IAClF,IAAI,EAAE,IAAI,CAAC;IACX,sEAAsE;IACtE,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,mDAAmD;IACnD,cAAc,EAAE,SAAS,CAAC;IAC1B,6EAA6E;IAC7E,WAAW,EAAE,SAAS,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"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"}
|
package/dist/shell.js
CHANGED
|
@@ -35,7 +35,7 @@ import { OfflineBanner, ShellErrorBoundary, SkipLink, ToastProvider, useRouteCha
|
|
|
35
35
|
* }
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
export function ProShell({ app, children, appName, nav, renderNav, onNavigate, allowFree = true, showThemeToggle = true, menuItems, hideTopbar = false, hideFooter = false, renderTopbar, renderFooter, renderError, renderLoading, }) {
|
|
38
|
+
export function ProShell({ app, children, appName, branding = 'platform', nav, renderNav, onNavigate, allowFree = true, showThemeToggle = true, menuItems, hideTopbar = false, hideFooter = false, renderTopbar, renderFooter, renderError, renderLoading, }) {
|
|
39
39
|
const [user, setUser] = useState(app.auth.user);
|
|
40
40
|
const [subscription, setSubscription] = useState(null);
|
|
41
41
|
const [gate, setGate] = useState('loading');
|
|
@@ -94,12 +94,12 @@ export function ProShell({ app, children, appName, nav, renderNav, onNavigate, a
|
|
|
94
94
|
if (gate === 'loading' && renderLoading)
|
|
95
95
|
return _jsx(_Fragment, { children: renderLoading() });
|
|
96
96
|
if (gate !== 'ready') {
|
|
97
|
-
return _jsx(GateScreen, { gate: gate, app: app, appName: appName });
|
|
97
|
+
return _jsx(GateScreen, { gate: gate, app: app, appName: appName, branding: branding });
|
|
98
98
|
}
|
|
99
99
|
if (!user) {
|
|
100
|
-
return _jsx(GateScreen, { gate: "signed-out", app: app, appName: appName });
|
|
100
|
+
return _jsx(GateScreen, { gate: "signed-out", app: app, appName: appName, branding: branding });
|
|
101
101
|
}
|
|
102
|
-
const profileMenu = (_jsx(ProfileMenu, { app: app, showThemeToggle: showThemeToggle, children: menuItems?.map((item, i) => (_jsx("button", { type: "button", onClick: item.onClick, className: "pas-menu-item block w-full cursor-pointer border-0 bg-transparent px-4 py-2 text-left text-[0.85rem] text-[var(--ink)]", children: item.label }, i))) }));
|
|
102
|
+
const profileMenu = (_jsx(ProfileMenu, { app: app, showThemeToggle: showThemeToggle, showSubscriptionBadge: branding === 'platform', children: menuItems?.map((item, i) => (_jsx("button", { type: "button", onClick: item.onClick, className: "pas-menu-item block w-full cursor-pointer border-0 bg-transparent px-4 py-2 text-left text-[0.85rem] text-[var(--ink)]", children: item.label }, i))) }));
|
|
103
103
|
// Client-side navigation goes through the shell, so it knows the route changed
|
|
104
104
|
// (scroll, focus, titles). Without onNavigate, items are plain links.
|
|
105
105
|
const navigate = onNavigate
|
|
@@ -125,11 +125,11 @@ export function ProShell({ app, children, appName, nav, renderNav, onNavigate, a
|
|
|
125
125
|
subscription,
|
|
126
126
|
textSizeToggle: _jsx(TextSizeToggle, {}),
|
|
127
127
|
profileMenu,
|
|
128
|
-
proBadge: subscription?.status === 'active' ? _jsx(ProBadge, {}) : null,
|
|
128
|
+
proBadge: branding === 'platform' && subscription?.status === 'active' ? _jsx(ProBadge, {}) : null,
|
|
129
129
|
nav: navNode,
|
|
130
130
|
};
|
|
131
|
-
const topbar = renderTopbar ? renderTopbar(shellContext) : hideTopbar ? null : (_jsxs("header", { className: "pas-topbar sticky top-0 z-50 flex items-center justify-between border-b border-[var(--line)] bg-[var(--panel)] px-4 py-2", children: [_jsxs("div", { className: "pas-topbar__brand flex items-center gap-3", children: [_jsx("a", { href: "https://proappstore.online", className: "pas-topbar__logo text-base font-extrabold text-[var(--accent)] no-underline", children: "Pro" }), appName && _jsx("span", { className: "pas-topbar__app text-[0.85rem] font-semibold text-[var(--muted)]", children: appName }), shellContext.proBadge] }), shellContext.nav, _jsxs("div", { className: "pas-topbar__account flex items-center gap-2", children: [shellContext.textSizeToggle, shellContext.profileMenu] })] }));
|
|
132
|
-
const footer = renderFooter ? renderFooter(shellContext) : hideFooter ? null : (_jsxs("footer", { className: "pas-footer border-t border-[var(--line)] p-4 text-center text-xs text-[var(--muted)]", children: ["Part of", ' ', _jsx("a", { href: "https://proappstore.online", className: "pas-footer__link font-semibold text-[var(--accent)] no-underline", children: "ProAppStore" })] }));
|
|
131
|
+
const topbar = renderTopbar ? renderTopbar(shellContext) : hideTopbar ? null : (_jsxs("header", { className: "pas-topbar sticky top-0 z-50 flex items-center justify-between border-b border-[var(--line)] bg-[var(--panel)] px-4 py-2", children: [_jsxs("div", { className: "pas-topbar__brand flex items-center gap-3", children: [branding === 'platform' && _jsx("a", { href: "https://proappstore.online", className: "pas-topbar__logo text-base font-extrabold text-[var(--accent)] no-underline", children: "Pro" }), appName && _jsx("span", { className: "pas-topbar__app text-[0.85rem] font-semibold text-[var(--muted)]", children: appName }), shellContext.proBadge] }), shellContext.nav, _jsxs("div", { className: "pas-topbar__account flex items-center gap-2", children: [shellContext.textSizeToggle, shellContext.profileMenu] })] }));
|
|
132
|
+
const footer = renderFooter ? renderFooter(shellContext) : hideFooter || branding === 'app' ? null : (_jsxs("footer", { className: "pas-footer border-t border-[var(--line)] p-4 text-center text-xs text-[var(--muted)]", children: ["Part of", ' ', _jsx("a", { href: "https://proappstore.online", className: "pas-footer__link font-semibold text-[var(--accent)] no-underline", children: "ProAppStore" })] }));
|
|
133
133
|
const loading = renderLoading ? renderLoading() : (_jsx("div", { className: "pas-shell-loading flex flex-1 items-center justify-center px-4 py-12", children: _jsx(Spinner, { size: 28 }) }));
|
|
134
134
|
// --- Ready: render app with topbar ---
|
|
135
135
|
return (_jsx(ProProvider, { app: app, children: _jsx(ToastProvider, { children: _jsxs("div", { className: "pas-shell flex min-h-dvh flex-col", children: [_jsx(SkipLink, { mainRef: mainRef }), topbar, _jsx(OfflineBanner, {}), _jsx("main", { id: "main", ref: mainRef, tabIndex: -1, className: "pas-main flex flex-1 flex-col", children: _jsx(ShellErrorBoundary, { app: app, renderError: renderError, resetKey: currentPath, children: _jsx(Suspense, { fallback: loading, children: children }) }) }), footer] }) }) }));
|
package/dist/shell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAInH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAInH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AA2G/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,GAAG,EACH,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,UAAU,EACrB,GAAG,EACH,SAAS,EACT,UAAU,EACV,SAAS,GAAG,IAAI,EAChB,eAAe,GAAG,IAAI,EACtB,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,UAAU,GAAG,KAAK,EAClB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,GACC;IACd,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAC;IAC5E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAO,SAAS,CAAC,CAAC;IAClD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,cAAc,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC;IAE7F,kBAAkB,CAAC,GAAG,EAAE;QACtB,IAAI,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC;YAAE,OAAO;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,EAAE,GAAG,eAAe,CAAC;QAC3B,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gFAAgF;IAChF,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,GAAG,IAAI,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,UAAU,EAAE,KAAK,CAAC;IACnC,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ;YAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC1C,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5B,8EAA8E;IAC9E,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,YAAY;IACZ,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,OAAO,CAAC,CAAC,CAAC,CAAC;YACX,IAAI,MAAM,KAAK,YAAY;gBAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,iCAAiC;IACjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,eAAe,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,SAAS,IAAI,GAAG,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1C,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACZ,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAE3B,gBAAgB;IAChB,IAAI,IAAI,KAAK,SAAS,IAAI,aAAa;QAAE,OAAO,4BAAG,aAAa,EAAE,GAAI,CAAC;IACvE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IACpF,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAC,UAAU,IAAC,IAAI,EAAC,YAAY,EAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IAC1F,CAAC;IAED,MAAM,WAAW,GAAG,CAClB,KAAC,WAAW,IAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,QAAQ,KAAK,UAAU,YACpG,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,iBAAgB,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAC,wHAAwH,YAAE,IAAI,CAAC,KAAK,IAAtL,CAAC,CAA+L,CAC9M,CAAC,GACU,CACf,CAAC;IAEF,+EAA+E;IAC/E,sEAAsE;IACtE,MAAM,QAAQ,GAAG,UAAU;QACzB,CAAC,CAAC,CAAC,IAAY,EAAE,EAAE;YACjB,cAAc,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACtD,CAAC,CAAC,SAAS,CAAC;YACV,KAAK,EAAE,QAAQ;YACf,WAAW;YACX,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACjE,CAAC;QACF,CAAC,CAAC,QAAQ;YACR,CAAC,CAAC,KAAC,MAAM,IAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,GAAI;YAC7E,CAAC,CAAC,KAAC,MAAM,IAAC,KAAK,EAAE,QAAQ,GAAI,CAAC;IAElC,MAAM,YAAY,GAA0B;QAC1C,GAAG;QACH,OAAO;QACP,IAAI;QACJ,YAAY;QACZ,cAAc,EAAE,KAAC,cAAc,KAAG;QAClC,WAAW;QACX,QAAQ,EAAE,QAAQ,KAAK,UAAU,IAAI,YAAY,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,QAAQ,KAAG,CAAC,CAAC,CAAC,IAAI;QAC5F,GAAG,EAAE,OAAO;KACb,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7E,kBAAQ,SAAS,EAAC,0HAA0H,aAC1I,eAAK,SAAS,EAAC,2CAA2C,aACvD,QAAQ,KAAK,UAAU,IAAI,YAAG,IAAI,EAAC,4BAA4B,EAAC,SAAS,EAAC,6EAA6E,oBAAQ,EAC/J,OAAO,IAAI,eAAM,SAAS,EAAC,kEAAkE,YAAE,OAAO,GAAQ,EAC9G,YAAY,CAAC,QAAQ,IAClB,EACL,YAAY,CAAC,GAAG,EACjB,eAAK,SAAS,EAAC,6CAA6C,aACzD,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,WAAW,IACrB,IACC,CACV,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnG,kBAAQ,SAAS,EAAC,sFAAsF,wBAC9F,GAAG,EACX,YAAG,IAAI,EAAC,4BAA4B,EAAC,SAAS,EAAC,kEAAkE,4BAE7G,IACG,CACV,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAChD,cAAK,SAAS,EAAC,sEAAsE,YACnF,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,CACP,CAAC;IAEF,wCAAwC;IACxC,OAAO,CACL,KAAC,WAAW,IAAC,GAAG,EAAE,GAAG,YACrB,KAAC,aAAa,cACd,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,QAAQ,IAAC,OAAO,EAAE,OAAO,GAAI,EAC7B,MAAM,EACP,KAAC,aAAa,KAAG,EAEjB,eAAM,EAAE,EAAC,MAAM,EAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAC,+BAA+B,YACnF,KAAC,kBAAkB,IAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,YAC3E,KAAC,QAAQ,IAAC,QAAQ,EAAE,OAAO,YAAG,QAAQ,GAAY,GAC/B,GAChB,EAEN,MAAM,IACH,GACU,GACF,CACf,CAAC;AACJ,CAAC"}
|
package/dist/ui-gate.d.ts
CHANGED
|
@@ -6,7 +6,9 @@ export interface GateScreenProps {
|
|
|
6
6
|
gate: 'loading' | 'signed-out' | 'no-subscription';
|
|
7
7
|
app?: ProAppStore;
|
|
8
8
|
appName?: string | undefined;
|
|
9
|
+
/** Suppress platform advertising while retaining the account and subscription gates. */
|
|
10
|
+
branding?: 'platform' | 'app';
|
|
9
11
|
}
|
|
10
12
|
/** Renders the appropriate gate screen (loading, sign-in, or upgrade). */
|
|
11
|
-
export declare function GateScreen({ gate, app, appName }: GateScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function GateScreen({ gate, app, appName, branding }: GateScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
12
14
|
//# sourceMappingURL=ui-gate.d.ts.map
|
package/dist/ui-gate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-gate.d.ts","sourceRoot":"","sources":["../src/ui-gate.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,iBAAiB,CAAC;IACnD,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-gate.d.ts","sourceRoot":"","sources":["../src/ui-gate.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,iBAAiB,CAAC;IACnD,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,wFAAwF;IACxF,QAAQ,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;CAC/B;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAqB,EAAE,EAAE,eAAe,2CA4CxF"}
|
package/dist/ui-gate.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { SignInButton, UpgradeCard } from './ui-pro-components.js';
|
|
3
3
|
/** Renders the appropriate gate screen (loading, sign-in, or upgrade). */
|
|
4
|
-
export function GateScreen({ gate, app, appName }) {
|
|
4
|
+
export function GateScreen({ gate, app, appName, branding = 'platform' }) {
|
|
5
5
|
if (gate === 'loading') {
|
|
6
6
|
// Neutral while auth (or the subscription) resolves (#241): never sign-in content.
|
|
7
7
|
return (_jsx("div", { className: "pas-gate-loading", style: { minHeight: '100dvh', display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: _jsx("p", { role: "status", "aria-live": "polite", style: { color: 'var(--muted)' }, children: "Loading..." }) }));
|
|
8
8
|
}
|
|
9
9
|
if (gate === 'signed-out') {
|
|
10
|
-
return (_jsx("div", { style: { minHeight: '100dvh', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '2rem' }, children: _jsxs("div", { style: { maxWidth: 400, textAlign: 'center' }, children: [_jsx("h1", { style: { fontSize: '1.5rem', fontWeight: 800, marginBottom: '0.5rem', color: 'var(--ink)' }, children: appName || 'ProAppStore' }), _jsx("p", { style: { color: 'var(--muted)', fontSize: '0.9rem', marginBottom: '1rem' }, children:
|
|
10
|
+
return (_jsx("div", { style: { minHeight: '100dvh', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '2rem' }, children: _jsxs("div", { style: { maxWidth: 400, textAlign: 'center' }, children: [_jsx("h1", { style: { fontSize: '1.5rem', fontWeight: 800, marginBottom: '0.5rem', color: 'var(--ink)' }, children: appName || (branding === 'platform' ? 'ProAppStore' : 'Sign in') }), _jsx("p", { style: { color: 'var(--muted)', fontSize: '0.9rem', marginBottom: '1rem' }, children: branding === 'platform' ? 'Sign in to your ProAppStore account to continue.' : 'Sign in to continue.' }), _jsx(SignInButton, { ...(app ? { app } : {}) }), branding === 'platform' && (_jsx("p", { style: { color: 'var(--muted)', fontSize: '0.75rem', marginTop: '0.75rem' }, children: "One account for all Pro apps." }))] }) }));
|
|
11
11
|
}
|
|
12
12
|
// no-subscription
|
|
13
|
-
return (_jsx("div", { style: { minHeight: '100dvh', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '2rem' }, children: _jsx(UpgradeCard, { ...(app ? { app } : {}), title:
|
|
13
|
+
return (_jsx("div", { style: { minHeight: '100dvh', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '2rem' }, children: _jsx(UpgradeCard, { ...(app ? { app } : {}), title: branding === 'platform' ? 'Pro subscription required' : 'Subscription required', description: branding === 'platform'
|
|
14
|
+
? `${appName || 'This app'} requires an active ProAppStore subscription.`
|
|
15
|
+
: `${appName || 'This app'} requires an active subscription.`, showBadge: branding === 'platform' }) }));
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=ui-gate.js.map
|
package/dist/ui-gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-gate.js","sourceRoot":"","sources":["../src/ui-gate.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-gate.js","sourceRoot":"","sources":["../src/ui-gate.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAcnE,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,EAAmB;IACvF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,mFAAmF;QACnF,OAAO,CACL,cAAK,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,YAC/H,YAAG,IAAI,EAAC,QAAQ,eAAW,QAAQ,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,2BAAgB,GAChF,CACP,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,YACnH,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,aAChD,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,YAC5F,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,GAC9D,EACL,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,YAC1E,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,sBAAsB,GACpG,EACJ,KAAC,YAAY,OAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAI,EACzC,QAAQ,KAAK,UAAU,IAAI,CAC1B,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,8CAE1E,CACL,IACG,GACF,CACP,CAAC;IACJ,CAAC;IAED,kBAAkB;IAClB,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,YACnH,KAAC,WAAW,OACN,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACxB,KAAK,EAAE,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,uBAAuB,EACtF,WAAW,EAAE,QAAQ,KAAK,UAAU;gBAClC,CAAC,CAAC,GAAG,OAAO,IAAI,UAAU,+CAA+C;gBACzE,CAAC,CAAC,GAAG,OAAO,IAAI,UAAU,mCAAmC,EAC/D,SAAS,EAAE,QAAQ,KAAK,UAAU,GAClC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -23,9 +23,11 @@ export interface UpgradeCardProps {
|
|
|
23
23
|
description?: string;
|
|
24
24
|
priceLabel?: string;
|
|
25
25
|
features?: string[];
|
|
26
|
+
/** Show the platform's PRO badge. */
|
|
27
|
+
showBadge?: boolean;
|
|
26
28
|
}
|
|
27
29
|
/** Styled card prompting the user to upgrade to Pro. */
|
|
28
|
-
export declare function UpgradeCard({ app, title, description, priceLabel, features, }: UpgradeCardProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export declare function UpgradeCard({ app, title, description, priceLabel, features, showBadge, }: UpgradeCardProps): import("react/jsx-runtime").JSX.Element;
|
|
29
31
|
export interface BillingButtonProps {
|
|
30
32
|
app?: ProAppStore;
|
|
31
33
|
label?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-pro-components.d.ts","sourceRoot":"","sources":["../src/ui-pro-components.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAQ9C,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EAAE,OAAO,EACZ,KAA6B,EAC7B,QAAmB,GACpB,EAAE,iBAAiB,2CAoBnB;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,mDAAmD;AACnD,wBAAgB,QAAQ,CAAC,EAAE,IAAW,EAAE,EAAE,aAAa,2CAsBtD;AAMD,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,WAAkB,EAAE,EAAE,uBAAuB,2CA4CtF;AAMD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,KAAwB,EACxB,WAAoE,EACpE,UAAuB,EACvB,QAAwG,
|
|
1
|
+
{"version":3,"file":"ui-pro-components.d.ts","sourceRoot":"","sources":["../src/ui-pro-components.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAQ9C,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EAAE,OAAO,EACZ,KAA6B,EAC7B,QAAmB,GACpB,EAAE,iBAAiB,2CAoBnB;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,mDAAmD;AACnD,wBAAgB,QAAQ,CAAC,EAAE,IAAW,EAAE,EAAE,aAAa,2CAsBtD;AAMD,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,WAAkB,EAAE,EAAE,uBAAuB,2CA4CtF;AAMD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,KAAwB,EACxB,WAAoE,EACpE,UAAuB,EACvB,QAAwG,EACxG,SAAgB,GACjB,EAAE,gBAAgB,2CAuDlB;AAMD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;CAC7C;AAED,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAwB,EAAE,OAAqB,EAAE,EAAE,kBAAkB,2CAkClH"}
|
|
@@ -68,7 +68,7 @@ export function SubscriptionStatus({ app, showUpgrade = true }) {
|
|
|
68
68
|
}, children: "Upgrade" }))] }));
|
|
69
69
|
}
|
|
70
70
|
/** Styled card prompting the user to upgrade to Pro. */
|
|
71
|
-
export function UpgradeCard({ app, title = 'Upgrade to Pro', description = 'Unlock all premium features with a Pro subscription.', priceLabel = '$5/month', features = ['Cloud sync across devices', 'AI-powered features', 'Unlimited storage', 'Priority support'], }) {
|
|
71
|
+
export function UpgradeCard({ app, title = 'Upgrade to Pro', description = 'Unlock all premium features with a Pro subscription.', priceLabel = '$5/month', features = ['Cloud sync across devices', 'AI-powered features', 'Unlimited storage', 'Priority support'], showBadge = true, }) {
|
|
72
72
|
const { upgrade } = useSubscription(app);
|
|
73
73
|
return (_jsxs("div", { style: {
|
|
74
74
|
background: 'var(--panel)',
|
|
@@ -76,7 +76,7 @@ export function UpgradeCard({ app, title = 'Upgrade to Pro', description = 'Unlo
|
|
|
76
76
|
borderRadius: 'var(--radius, 0.75rem)',
|
|
77
77
|
padding: '1.75rem',
|
|
78
78
|
maxWidth: 400,
|
|
79
|
-
}, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '0.5rem', marginBottom: '0.5rem' }, children: [_jsx("h3", { style: { fontSize: '1.25rem', fontWeight: 800, color: 'var(--ink-strong)', margin: 0 }, children: title }), _jsx(ProBadge, { size: "md" })] }), _jsx("p", { style: { fontSize: '0.9rem', color: 'var(--muted)', marginBottom: '1rem' }, children: description }), features.length > 0 && (_jsx("ul", { style: { listStyle: 'none', padding: 0, margin: '0 0 1.25rem' }, children: features.map((f, i) => (_jsxs("li", { style: {
|
|
79
|
+
}, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: '0.5rem', marginBottom: '0.5rem' }, children: [_jsx("h3", { style: { fontSize: '1.25rem', fontWeight: 800, color: 'var(--ink-strong)', margin: 0 }, children: title }), showBadge && _jsx(ProBadge, { size: "md" })] }), _jsx("p", { style: { fontSize: '0.9rem', color: 'var(--muted)', marginBottom: '1rem' }, children: description }), features.length > 0 && (_jsx("ul", { style: { listStyle: 'none', padding: 0, margin: '0 0 1.25rem' }, children: features.map((f, i) => (_jsxs("li", { style: {
|
|
80
80
|
padding: '0.35rem 0',
|
|
81
81
|
fontSize: '0.85rem',
|
|
82
82
|
color: 'var(--ink)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-pro-components.js","sourceRoot":"","sources":["../src/ui-pro-components.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ui-pro-components.js","sourceRoot":"","sources":["../src/ui-pro-components.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,10 @@ export interface ProfileMenuProps {
|
|
|
7
7
|
app?: ProAppStore;
|
|
8
8
|
showThemeToggle?: boolean;
|
|
9
9
|
showBilling?: boolean;
|
|
10
|
+
/** Show the platform's PRO badge for active subscriptions. */
|
|
11
|
+
showSubscriptionBadge?: boolean;
|
|
10
12
|
children?: ReactNode;
|
|
11
13
|
}
|
|
12
14
|
/** Avatar button that opens dropdown with Pro features: badge, billing, theme, sign out. */
|
|
13
|
-
export declare function ProfileMenu({ app, showThemeToggle, showBilling, children }: ProfileMenuProps): import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
+
export declare function ProfileMenu({ app, showThemeToggle, showBilling, showSubscriptionBadge, children }: ProfileMenuProps): import("react/jsx-runtime").JSX.Element | null;
|
|
14
16
|
//# sourceMappingURL=ui-profile-menu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-profile-menu.d.ts","sourceRoot":"","sources":["../src/ui-profile-menu.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,eAAsB,EAAE,WAAkB,EAAE,QAAQ,EAAE,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ui-profile-menu.d.ts","sourceRoot":"","sources":["../src/ui-profile-menu.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,eAAsB,EAAE,WAAkB,EAAE,qBAA4B,EAAE,QAAQ,EAAE,EAAE,gBAAgB,kDAoFxI"}
|
package/dist/ui-profile-menu.js
CHANGED
|
@@ -6,7 +6,7 @@ import { useState, useEffect, useCallback, useRef } from 'react';
|
|
|
6
6
|
import { useAuth, useSubscription, useTheme } from './hooks.js';
|
|
7
7
|
import { ProBadge } from './ui-pro-components.js';
|
|
8
8
|
/** Avatar button that opens dropdown with Pro features: badge, billing, theme, sign out. */
|
|
9
|
-
export function ProfileMenu({ app, showThemeToggle = true, showBilling = true, children }) {
|
|
9
|
+
export function ProfileMenu({ app, showThemeToggle = true, showBilling = true, showSubscriptionBadge = true, children }) {
|
|
10
10
|
const { user, signOut, deleteAccount } = useAuth(app);
|
|
11
11
|
const { subscription, isPro, manageBilling } = useSubscription(app);
|
|
12
12
|
const [open, setOpen] = useState(false);
|
|
@@ -51,7 +51,7 @@ export function ProfileMenu({ app, showThemeToggle = true, showBilling = true, c
|
|
|
51
51
|
borderRadius: 'var(--radius, 0.75rem)',
|
|
52
52
|
boxShadow: '0 4px 20px rgba(0,0,0,0.1)',
|
|
53
53
|
minWidth: 220, padding: '0.5rem 0', zIndex: 100,
|
|
54
|
-
}, children: [_jsxs("div", { style: { padding: '0.5rem 1rem', borderBottom: '1px solid var(--line)', display: 'flex', alignItems: 'center', gap: '0.5rem' }, children: [_jsx("strong", { style: { fontSize: '0.85rem', color: 'var(--ink)' }, children: user.login }), isPro && _jsx(ProBadge, {})] }), showThemeToggle && (_jsxs("div", { style: { padding: '0.5rem 1rem', borderBottom: '1px solid var(--line)', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }, children: [_jsx("span", { style: { fontSize: '0.85rem', color: 'var(--muted)' }, children: "Theme" }), _jsx(ThemeToggleInline, {})] })), showBilling && isPro && (_jsx("button", { onClick: handleBilling, style: menuItemStyle, children: "Manage billing" })), children, _jsx("button", { onClick: handleSignOut, style: menuItemStyle, children: "Sign out" }), _jsx("button", { onClick: handleDelete, style: { ...menuItemStyle, color: 'var(--danger, #dc2626)' }, children: "Delete account" })] }))] }));
|
|
54
|
+
}, children: [_jsxs("div", { style: { padding: '0.5rem 1rem', borderBottom: '1px solid var(--line)', display: 'flex', alignItems: 'center', gap: '0.5rem' }, children: [_jsx("strong", { style: { fontSize: '0.85rem', color: 'var(--ink)' }, children: user.login }), showSubscriptionBadge && isPro && _jsx(ProBadge, {})] }), showThemeToggle && (_jsxs("div", { style: { padding: '0.5rem 1rem', borderBottom: '1px solid var(--line)', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }, children: [_jsx("span", { style: { fontSize: '0.85rem', color: 'var(--muted)' }, children: "Theme" }), _jsx(ThemeToggleInline, {})] })), showBilling && isPro && (_jsx("button", { onClick: handleBilling, style: menuItemStyle, children: "Manage billing" })), children, _jsx("button", { onClick: handleSignOut, style: menuItemStyle, children: "Sign out" }), _jsx("button", { onClick: handleDelete, style: { ...menuItemStyle, color: 'var(--danger, #dc2626)' }, children: "Delete account" })] }))] }));
|
|
55
55
|
}
|
|
56
56
|
/** Inline theme toggle for menu (imports from same file to avoid circular) */
|
|
57
57
|
function ThemeToggleInline() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-profile-menu.js","sourceRoot":"","sources":["../src/ui-profile-menu.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-profile-menu.js","sourceRoot":"","sources":["../src/ui-profile-menu.tsx"],"names":[],"mappings":"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"}
|