@proappstore/sdk 1.16.88 → 1.16.90
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 +20 -14
- package/dist/auth.js +1 -1
- package/dist/hooks.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/logs.d.ts +2 -2
- package/dist/logs.js +2 -2
- package/dist/navbar.d.ts +2 -2
- package/dist/navbar.js +1 -1
- package/dist/page.d.ts +2 -2
- package/dist/page.js +2 -2
- package/dist/sdk-version.js +1 -1
- package/dist/shell-css.d.ts +2 -2
- package/dist/shell-css.js +2 -2
- package/dist/shell-resilience.d.ts +1 -1
- package/dist/shell-resilience.js +2 -2
- package/dist/shell.d.ts +28 -20
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +7 -5
- package/dist/shell.js.map +1 -1
- package/dist/ui.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ import { initPro } from '@proappstore/sdk'
|
|
|
18
18
|
const app = initPro({ appId: 'my-app' })
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
Then wrap the whole app in `<
|
|
21
|
+
Then wrap the whole app in `<AppShell app={app} appName="…" nav={[…]}>`, the standard app frame with the gates, topbar, main navigation and resilience layer. See [AppShell Component](#appshell-component).
|
|
22
22
|
|
|
23
23
|
Options:
|
|
24
24
|
|
|
@@ -581,7 +581,7 @@ const all = await app.roles.listAll()
|
|
|
581
581
|
|
|
582
582
|
## React Hooks
|
|
583
583
|
|
|
584
|
-
Every app is wrapped in [`
|
|
584
|
+
Every app is wrapped in [`AppShell`](#appshell-component), which already runs the sign-in and subscription gates. Use these hooks inside its screens to read identity and subscription state, or to gate a single screen. Import from `@proappstore/sdk` or `@proappstore/sdk/hooks`.
|
|
585
585
|
|
|
586
586
|
### Account deletion (per app)
|
|
587
587
|
|
|
@@ -613,7 +613,7 @@ import { useProAuth } from '@proappstore/sdk/hooks'
|
|
|
613
613
|
|
|
614
614
|
const app = initPro({ appId: 'my-app' })
|
|
615
615
|
|
|
616
|
-
// A screen inside <
|
|
616
|
+
// A screen inside <AppShell>: the shell has already signed the user in.
|
|
617
617
|
function Welcome() {
|
|
618
618
|
const { user, signOut } = useProAuth(app)
|
|
619
619
|
return <p>Welcome, {user?.login}! <button onClick={signOut}>Sign out</button></p>
|
|
@@ -637,7 +637,7 @@ function Billing() {
|
|
|
637
637
|
|
|
638
638
|
### useProGate
|
|
639
639
|
|
|
640
|
-
Combined auth + subscription gate. Returns a single `gate` state for easy conditional rendering.
|
|
640
|
+
Combined auth + subscription gate. Returns a single `gate` state for easy conditional rendering. AppShell gates the whole app; use this for one Pro-only screen in an app that otherwise allows free users.
|
|
641
641
|
|
|
642
642
|
```tsx
|
|
643
643
|
import { initPro } from '@proappstore/sdk'
|
|
@@ -645,7 +645,7 @@ import { useProGate } from '@proappstore/sdk/hooks'
|
|
|
645
645
|
|
|
646
646
|
const app = initPro({ appId: 'my-app' })
|
|
647
647
|
|
|
648
|
-
// A screen inside <
|
|
648
|
+
// A screen inside <AppShell allowFree>: only this screen needs a subscription.
|
|
649
649
|
function ReportsScreen() {
|
|
650
650
|
const { gate, upgrade } = useProGate(app, { allowFree: false })
|
|
651
651
|
|
|
@@ -694,18 +694,24 @@ function Moderation() {
|
|
|
694
694
|
|
|
695
695
|
A full sample is `templates/template-membership/web/src/pages/Moderation.tsx`.
|
|
696
696
|
|
|
697
|
-
##
|
|
697
|
+
## AppShell Component
|
|
698
698
|
|
|
699
699
|
The app frame. It handles the auth gates, subscription checks, provider context, the topbar (app name, text size control, user menu), the footer, and the **main navigation**.
|
|
700
700
|
|
|
701
|
+
`ProShell` remains a deprecated alias from the root and `/shell` entry points
|
|
702
|
+
for at least one major version. Both names reference the same component, so
|
|
703
|
+
switching names preserves mounted React state. Its props and context type
|
|
704
|
+
aliases remain available as `ProShellProps`, `ProShellRenderContext`, and
|
|
705
|
+
`ProShellNavContext`.
|
|
706
|
+
|
|
701
707
|
```tsx
|
|
702
|
-
import { initPro,
|
|
708
|
+
import { initPro, AppShell } from '@proappstore/sdk'
|
|
703
709
|
|
|
704
710
|
const app = initPro({ appId: 'meetup' })
|
|
705
711
|
|
|
706
712
|
export default function App() {
|
|
707
713
|
return (
|
|
708
|
-
<
|
|
714
|
+
<AppShell
|
|
709
715
|
app={app}
|
|
710
716
|
appName="Meetup"
|
|
711
717
|
branding="app"
|
|
@@ -715,7 +721,7 @@ export default function App() {
|
|
|
715
721
|
]}
|
|
716
722
|
>
|
|
717
723
|
<MeetupApp />
|
|
718
|
-
</
|
|
724
|
+
</AppShell>
|
|
719
725
|
)
|
|
720
726
|
}
|
|
721
727
|
```
|
|
@@ -741,7 +747,7 @@ Props:
|
|
|
741
747
|
| `renderError` | `({ error, reset }) => ReactNode` | Replace the error-boundary fallback (errors are recorded via `app.logs`) |
|
|
742
748
|
| `renderLoading` | `() => ReactNode` | Replace the spinner shown while a lazy screen loads |
|
|
743
749
|
|
|
744
|
-
|
|
750
|
+
AppShell handles:
|
|
745
751
|
- Auth initialization and the sign-in gate
|
|
746
752
|
- The subscription check and upgrade wall (unless `allowFree=true`)
|
|
747
753
|
- The topbar with app name, text size toggle and user menu (sign out, manage billing, delete account; deletion is per app, see `app.account` below)
|
|
@@ -764,7 +770,7 @@ ProShell handles:
|
|
|
764
770
|
Do not build navigation into a page, and do not stack a second navbar under the shell. A custom topbar keeps the gates and places the rendered `nav`:
|
|
765
771
|
|
|
766
772
|
```tsx
|
|
767
|
-
<
|
|
773
|
+
<AppShell
|
|
768
774
|
app={app}
|
|
769
775
|
appName="Chess Academy"
|
|
770
776
|
nav={[{ label: 'Students', href: '/students' }, { label: 'Tournaments', href: '/tournaments' }]}
|
|
@@ -778,10 +784,10 @@ Do not build navigation into a page, and do not stack a second navbar under the
|
|
|
778
784
|
)}
|
|
779
785
|
>
|
|
780
786
|
<ChessAcademy />
|
|
781
|
-
</
|
|
787
|
+
</AppShell>
|
|
782
788
|
```
|
|
783
789
|
|
|
784
|
-
For a fully custom layout, use `<
|
|
790
|
+
For a fully custom layout, use `<AppShell app={app} hideTopbar hideFooter>` and compose `NavBar`, `ProfileMenu`, `SignInButton`, `GateScreen`, and hooks from `@proappstore/sdk/ui` and `@proappstore/sdk/hooks`.
|
|
785
791
|
|
|
786
792
|
New templates explicitly use `branding="app"`; the SDK default remains
|
|
787
793
|
`branding="platform"` so upgrading an existing app does not silently change
|
|
@@ -791,7 +797,7 @@ subscription and billing controls. Apps that intentionally want legacy
|
|
|
791
797
|
platform attribution can omit the prop or pass `branding="platform"`;
|
|
792
798
|
`renderTopbar` and `renderFooter` remain explicit customisation hooks.
|
|
793
799
|
|
|
794
|
-
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/#
|
|
800
|
+
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/#appshell-component).
|
|
795
801
|
|
|
796
802
|
## UI Components
|
|
797
803
|
|
package/dist/auth.js
CHANGED
|
@@ -447,7 +447,7 @@ export class Auth {
|
|
|
447
447
|
* render();
|
|
448
448
|
*/
|
|
449
449
|
init() {
|
|
450
|
-
// Every useAuth and
|
|
450
|
+
// Every useAuth and AppShell calls init(). The session check runs once per
|
|
451
451
|
// page (concurrent callers share it); later calls only act on a new auth
|
|
452
452
|
// callback in the URL — so a component mounting mid-session never re-asks
|
|
453
453
|
// /.pas/auth/me, and a transient failure there cannot sign the user out.
|
package/dist/hooks.js
CHANGED
|
@@ -211,7 +211,7 @@ export function useGate(app, opts) {
|
|
|
211
211
|
const auth = useAuth(app);
|
|
212
212
|
const sub = useSubscription(app);
|
|
213
213
|
// allowFree defaults to true while the platform has no payments wired up —
|
|
214
|
-
// see
|
|
214
|
+
// see AppShell for the matching default. Flip back when Stripe is live.
|
|
215
215
|
const allowFree = opts?.allowFree ?? true;
|
|
216
216
|
let gate;
|
|
217
217
|
if (auth.loading || (auth.user && sub.loading)) {
|
package/dist/index.d.ts
CHANGED
|
@@ -54,8 +54,8 @@ export { ProProvider, useApp } from './provider.js';
|
|
|
54
54
|
export { AdminConsole, AdminErrorBoundary, useAdminContext, useAction } from './admin.js';
|
|
55
55
|
export type { AdminConsoleProps, AdminContextValue, UseActionOptions, ActionInvoker } from './admin.js';
|
|
56
56
|
export type { ProProviderProps } from './provider.js';
|
|
57
|
-
export { ProShell } from './shell.js';
|
|
58
|
-
export type { ProShellProps, ProShellRenderContext, ProShellNavContext, MenuItem, ShellErrorContext } from './shell.js';
|
|
57
|
+
export { AppShell, ProShell } from './shell.js';
|
|
58
|
+
export type { AppShellProps, AppShellRenderContext, AppShellNavContext, ProShellProps, ProShellRenderContext, ProShellNavContext, MenuItem, ShellErrorContext } from './shell.js';
|
|
59
59
|
export { useToast, useOnline } from './shell-resilience.js';
|
|
60
60
|
export type { ToastApi, ToastOptions, ShellToastVariant } from './shell-resilience.js';
|
|
61
61
|
export { PageHeader, useDocumentTitle } from './page.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -39,7 +39,7 @@ export { useAuth, useSubscription, useGate, useNotifications, useTheme } from '.
|
|
|
39
39
|
export { useProAuth, useProSubscription, useProGate, useProNotifications } from './hooks.js';
|
|
40
40
|
export { ProProvider, useApp } from './provider.js';
|
|
41
41
|
export { AdminConsole, AdminErrorBoundary, useAdminContext, useAction } from './admin.js';
|
|
42
|
-
export { ProShell } from './shell.js';
|
|
42
|
+
export { AppShell, ProShell } from './shell.js';
|
|
43
43
|
export { useToast, useOnline } from './shell-resilience.js';
|
|
44
44
|
export { PageHeader, useDocumentTitle } from './page.js';
|
|
45
45
|
export { NavBar } from './navbar.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,uEAAuE;AACvE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAK3C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAuBrC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,iGAAiG;AACjG,wFAAwF;AACxF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3F,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG1F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/logs.d.ts
CHANGED
|
@@ -102,7 +102,7 @@ export declare function describeError(value: unknown): {
|
|
|
102
102
|
export declare const REACT_ERROR_CATEGORY = "react.error-boundary";
|
|
103
103
|
/**
|
|
104
104
|
* The entry for a render error a React error boundary caught: the message and
|
|
105
|
-
* stack (with causes), the component stack and the path. Shared by
|
|
105
|
+
* stack (with causes), the component stack and the path. Shared by AppShell's
|
|
106
106
|
* boundary and {@link Logs.captureReactError}, so both read the same.
|
|
107
107
|
*/
|
|
108
108
|
export declare function describeReactError(error: unknown, componentStack?: string | null): {
|
|
@@ -190,7 +190,7 @@ export declare class Logs {
|
|
|
190
190
|
* Record a render error your own React error boundary caught (#392). React
|
|
191
191
|
* does not pass a caught error to `window.onerror`, so call this from
|
|
192
192
|
* `componentDidCatch(error, info)`: `app.logs.captureReactError(error,
|
|
193
|
-
* info.componentStack)`. Same entry as
|
|
193
|
+
* info.componentStack)`. Same entry as AppShell's boundary (category
|
|
194
194
|
* `react.error-boundary`, stack with causes, component stack, path).
|
|
195
195
|
*/
|
|
196
196
|
captureReactError(error: unknown, componentStack?: string | null): void;
|
package/dist/logs.js
CHANGED
|
@@ -180,7 +180,7 @@ export function describeError(value) {
|
|
|
180
180
|
export const REACT_ERROR_CATEGORY = 'react.error-boundary';
|
|
181
181
|
/**
|
|
182
182
|
* The entry for a render error a React error boundary caught: the message and
|
|
183
|
-
* stack (with causes), the component stack and the path. Shared by
|
|
183
|
+
* stack (with causes), the component stack and the path. Shared by AppShell's
|
|
184
184
|
* boundary and {@link Logs.captureReactError}, so both read the same.
|
|
185
185
|
*/
|
|
186
186
|
export function describeReactError(error, componentStack) {
|
|
@@ -496,7 +496,7 @@ export class Logs {
|
|
|
496
496
|
* Record a render error your own React error boundary caught (#392). React
|
|
497
497
|
* does not pass a caught error to `window.onerror`, so call this from
|
|
498
498
|
* `componentDidCatch(error, info)`: `app.logs.captureReactError(error,
|
|
499
|
-
* info.componentStack)`. Same entry as
|
|
499
|
+
* info.componentStack)`. Same entry as AppShell's boundary (category
|
|
500
500
|
* `react.error-boundary`, stack with causes, component stack, path).
|
|
501
501
|
*/
|
|
502
502
|
captureReactError(error, componentStack) {
|
package/dist/navbar.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface NavItem {
|
|
|
7
7
|
/** Optional icon, rendered before the label (mark it `aria-hidden`). */
|
|
8
8
|
icon?: ReactNode;
|
|
9
9
|
/**
|
|
10
|
-
* Tab title while this item's route is current (#236, PAS-UI-003).
|
|
10
|
+
* Tab title while this item's route is current (#236, PAS-UI-003). AppShell
|
|
11
11
|
* applies it; a screen's own `useDocumentTitle` overrides it.
|
|
12
12
|
*/
|
|
13
13
|
title?: string;
|
|
@@ -34,7 +34,7 @@ export declare function useCurrentPath(initial?: string): [string, (path: string
|
|
|
34
34
|
/** The item to mark current: an exact match, else the longest prefix (`/cases` for `/cases/42`). */
|
|
35
35
|
export declare function activeHref(items: NavItem[], path: string): string | null;
|
|
36
36
|
/**
|
|
37
|
-
* NavBar (#235) — the app's main navigation, rendered by
|
|
37
|
+
* NavBar (#235) — the app's main navigation, rendered by AppShell's topbar
|
|
38
38
|
* from its `nav` prop, and usable on its own in a custom topbar.
|
|
39
39
|
*
|
|
40
40
|
* `<nav aria-label="Main">` landmark (PAS-UI-003), `aria-current="page"` on the
|
package/dist/navbar.js
CHANGED
|
@@ -39,7 +39,7 @@ function useNavbarStyles() {
|
|
|
39
39
|
}, []);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* NavBar (#235) — the app's main navigation, rendered by
|
|
42
|
+
* NavBar (#235) — the app's main navigation, rendered by AppShell's topbar
|
|
43
43
|
* from its `nav` prop, and usable on its own in a custom topbar.
|
|
44
44
|
*
|
|
45
45
|
* `<nav aria-label="Main">` landmark (PAS-UI-003), `aria-current="page"` on the
|
package/dist/page.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
/**
|
|
3
3
|
* Set the tab title for the current screen (#236, PAS-UI-003). Call it once in
|
|
4
4
|
* each routed screen; the title follows the value while the screen is mounted.
|
|
5
|
-
* Runs after
|
|
5
|
+
* Runs after AppShell applies a nav item's `title`, so the screen's own title
|
|
6
6
|
* wins on the same route.
|
|
7
7
|
*
|
|
8
8
|
* ```tsx
|
|
@@ -20,7 +20,7 @@ export interface PageHeaderProps {
|
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* The screen's heading (#236): renders the page's one `<h1>` the same way on
|
|
23
|
-
* every screen (PAS-UI-003).
|
|
23
|
+
* every screen (PAS-UI-003). AppShell moves focus to it after a client-side
|
|
24
24
|
* navigation, so keyboard and screen-reader users land on the new page.
|
|
25
25
|
*/
|
|
26
26
|
export declare function PageHeader({ title, description, actions }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
|
package/dist/page.js
CHANGED
|
@@ -3,7 +3,7 @@ import { useEffect } from 'react';
|
|
|
3
3
|
/**
|
|
4
4
|
* Set the tab title for the current screen (#236, PAS-UI-003). Call it once in
|
|
5
5
|
* each routed screen; the title follows the value while the screen is mounted.
|
|
6
|
-
* Runs after
|
|
6
|
+
* Runs after AppShell applies a nav item's `title`, so the screen's own title
|
|
7
7
|
* wins on the same route.
|
|
8
8
|
*
|
|
9
9
|
* ```tsx
|
|
@@ -18,7 +18,7 @@ export function useDocumentTitle(title) {
|
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* The screen's heading (#236): renders the page's one `<h1>` the same way on
|
|
21
|
-
* every screen (PAS-UI-003).
|
|
21
|
+
* every screen (PAS-UI-003). AppShell moves focus to it after a client-side
|
|
22
22
|
* navigation, so keyboard and screen-reader users land on the new page.
|
|
23
23
|
*/
|
|
24
24
|
export function PageHeader({ title, description, actions }) {
|
package/dist/sdk-version.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* placeholder: `scripts/stamp-version.mjs` writes the package.json version into
|
|
4
4
|
* dist on build and again on prepack, after publish.yml has bumped it.
|
|
5
5
|
*/
|
|
6
|
-
export const SDK_VERSION = '1.16.
|
|
6
|
+
export const SDK_VERSION = '1.16.90';
|
|
7
7
|
//# sourceMappingURL=sdk-version.js.map
|
package/dist/shell-css.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* AppShell's styles: the frame itself — wrapper, sticky topbar, main, footer,
|
|
3
3
|
* profile-menu items (#235) — and the resilience and feedback layer (#236):
|
|
4
4
|
* skip link, offline banner, toast region, error and loading fallbacks,
|
|
5
5
|
* PageHeader. Same model as navbar-css.ts: canonical tokens only (PAS-UI-001),
|
|
6
|
-
* mirrored by Tailwind classes on the elements, injected by
|
|
6
|
+
* mirrored by Tailwind classes on the elements, injected by AppShell at render
|
|
7
7
|
* so an app needs no configuration, and appended to dist/shell.css.
|
|
8
8
|
*/
|
|
9
9
|
export declare const SHELL_CSS = ".pas-shell{display:flex;flex-direction:column;min-height:100dvh}\n.pas-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--line);background:var(--panel)}\n.pas-topbar__brand{display:flex;align-items:center;gap:.75rem}\n.pas-topbar__logo{color:var(--accent);font-size:1rem;font-weight:800;text-decoration:none}\n.pas-topbar__app{color:var(--muted);font-size:.85rem;font-weight:600}\n.pas-topbar__account{display:flex;align-items:center;gap:.5rem}\n.pas-main{display:flex;flex:1;flex-direction:column}\n.pas-footer{padding:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.75rem;text-align:center}\n.pas-footer__link{color:var(--accent);font-weight:600;text-decoration:none}\n.pas-menu-item{display:block;width:100%;padding:.5rem 1rem;border:0;background:none;color:var(--ink);font:inherit;font-size:.85rem;text-align:left;cursor:pointer}\n.pas-skip-link:not(:focus){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}\n.pas-skip-link:focus{position:fixed;top:.5rem;left:.5rem;z-index:1200;padding:.7rem 1rem;border:2px solid var(--accent);border-radius:10px;background:var(--paper);color:var(--ink);font-weight:600;text-decoration:none;outline:2px solid var(--accent);outline-offset:2px}\n.pas-main:focus{outline:none}\n.pas-offline{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem .5rem .25rem 1rem;background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line);border-left:3px solid var(--warning);font-size:.875rem}\n.pas-toast-region{position:fixed;bottom:1.25rem;left:50%;z-index:1100;display:flex;flex-direction:column;align-items:center;gap:.5rem;max-width:calc(100vw - 2rem);transform:translateX(-50%);pointer-events:none}\n.pas-toast{display:flex;align-items:center;gap:.75rem;padding:.25rem .25rem .25rem 1rem;background:var(--ink);color:var(--paper);border-left:3px solid var(--accent);border-radius:var(--radius,.75rem);box-shadow:0 8px 24px rgba(0,0,0,.3);font-size:.875rem;pointer-events:auto}\n.pas-toast[data-variant=\"success\"]{border-left-color:var(--success)}\n.pas-toast[data-variant=\"error\"]{border-left-color:var(--danger)}\n.pas-dismiss{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:1.1rem;line-height:1;cursor:pointer;opacity:.75}\n.pas-dismiss:hover{opacity:1}\n.pas-shell-loading{display:flex;flex:1;align-items:center;justify-content:center;padding:3rem 1rem}\n.pas-shell-error{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1rem;text-align:center;color:var(--ink)}\n.pas-shell-error h1{margin:0;font-size:1.25rem}\n.pas-shell-error p{margin:0;max-width:32rem;color:var(--muted);font-size:.9rem}\n.pas-shell-error__retry{min-height:44px;padding:0 1.25rem;border:0;border-radius:10px;background:var(--accent);color:var(--paper);font:inherit;font-weight:600;cursor:pointer}\n.pas-page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem;margin:0 0 1.25rem}\n.pas-page-header__title{margin:0;color:var(--ink);font-size:1.5rem;font-weight:700;line-height:1.2}\n.pas-page-header__title:focus{outline:none}\n.pas-page-header__description{margin:.25rem 0 0;color:var(--muted);font-size:.9rem}\n.pas-dismiss:focus-visible,.pas-shell-error__retry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}\n";
|
package/dist/shell-css.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* AppShell's styles: the frame itself — wrapper, sticky topbar, main, footer,
|
|
3
3
|
* profile-menu items (#235) — and the resilience and feedback layer (#236):
|
|
4
4
|
* skip link, offline banner, toast region, error and loading fallbacks,
|
|
5
5
|
* PageHeader. Same model as navbar-css.ts: canonical tokens only (PAS-UI-001),
|
|
6
|
-
* mirrored by Tailwind classes on the elements, injected by
|
|
6
|
+
* mirrored by Tailwind classes on the elements, injected by AppShell at render
|
|
7
7
|
* so an app needs no configuration, and appended to dist/shell.css.
|
|
8
8
|
*/
|
|
9
9
|
export const SHELL_CSS = `.pas-shell{display:flex;flex-direction:column;min-height:100dvh}
|
|
@@ -42,7 +42,7 @@ export interface ToastApi {
|
|
|
42
42
|
dismiss: (id: number) => void;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
* Raise a message from any screen inside
|
|
45
|
+
* Raise a message from any screen inside AppShell (#236). Messages appear in
|
|
46
46
|
* the shell's single polite live region.
|
|
47
47
|
*
|
|
48
48
|
* ```tsx
|
package/dist/shell-resilience.js
CHANGED
|
@@ -33,7 +33,7 @@ export class ShellErrorBoundary extends Component {
|
|
|
33
33
|
const MAX_TOASTS = 4;
|
|
34
34
|
const ToastContext = createContext(null);
|
|
35
35
|
/**
|
|
36
|
-
* Raise a message from any screen inside
|
|
36
|
+
* Raise a message from any screen inside AppShell (#236). Messages appear in
|
|
37
37
|
* the shell's single polite live region.
|
|
38
38
|
*
|
|
39
39
|
* ```tsx
|
|
@@ -44,7 +44,7 @@ const ToastContext = createContext(null);
|
|
|
44
44
|
export function useToast() {
|
|
45
45
|
const api = useContext(ToastContext);
|
|
46
46
|
if (!api)
|
|
47
|
-
throw new Error('useToast must be used inside <
|
|
47
|
+
throw new Error('useToast must be used inside <AppShell>');
|
|
48
48
|
return api;
|
|
49
49
|
}
|
|
50
50
|
function ToastItem({ toast, onDismiss }) {
|
package/dist/shell.d.ts
CHANGED
|
@@ -10,18 +10,18 @@ export interface MenuItem {
|
|
|
10
10
|
label: string;
|
|
11
11
|
onClick: () => void;
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
14
|
-
/** The SDK instance passed to
|
|
13
|
+
export interface AppShellRenderContext {
|
|
14
|
+
/** The SDK instance passed to AppShell. */
|
|
15
15
|
app: ProAppStore;
|
|
16
|
-
/** App name passed to
|
|
16
|
+
/** App name passed to AppShell, if any. */
|
|
17
17
|
appName: string | undefined;
|
|
18
|
-
/** Signed-in user.
|
|
18
|
+
/** Signed-in user. AppShell only calls render functions after auth gates pass. */
|
|
19
19
|
user: User;
|
|
20
20
|
/** Current subscription result, or null if unavailable/free-gated. */
|
|
21
21
|
subscription: Subscription | null;
|
|
22
22
|
/** Text size control used by the default shell. */
|
|
23
23
|
textSizeToggle: ReactNode;
|
|
24
|
-
/** Platform profile dropdown, including any menuItems passed to
|
|
24
|
+
/** Platform profile dropdown, including any menuItems passed to AppShell. */
|
|
25
25
|
profileMenu: ReactNode;
|
|
26
26
|
/** Subscription badge when the current subscription is active; otherwise null. */
|
|
27
27
|
proBadge: ReactNode;
|
|
@@ -29,14 +29,18 @@ export interface ProShellRenderContext {
|
|
|
29
29
|
* A custom `renderTopbar` should place it. */
|
|
30
30
|
nav: ReactNode;
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
/** @deprecated Use AppShellRenderContext. Retained for the next major version. */
|
|
33
|
+
export type ProShellRenderContext = AppShellRenderContext;
|
|
34
|
+
export interface AppShellNavContext {
|
|
33
35
|
items: NavItem[];
|
|
34
36
|
/** The path the shell considers current (`location.pathname`, following back/forward). */
|
|
35
37
|
currentPath: string;
|
|
36
38
|
/** Navigate to `href`: the shell's `onNavigate`, else a full page load. */
|
|
37
39
|
onNavigate: (href: string) => void;
|
|
38
40
|
}
|
|
39
|
-
|
|
41
|
+
/** @deprecated Use AppShellNavContext. Retained for the next major version. */
|
|
42
|
+
export type ProShellNavContext = AppShellNavContext;
|
|
43
|
+
export interface AppShellProps {
|
|
40
44
|
/** The ProAppStore SDK instance from initPro(). */
|
|
41
45
|
app: ProAppStore;
|
|
42
46
|
/** Your app's content. Only rendered when user is signed in + subscribed. */
|
|
@@ -55,16 +59,16 @@ export interface ProShellProps {
|
|
|
55
59
|
branding?: 'platform' | 'app';
|
|
56
60
|
/**
|
|
57
61
|
* The app's screens — the standard way to give an app navigation (#235).
|
|
58
|
-
*
|
|
62
|
+
* AppShell renders them as a `<nav aria-label="Main">` in its topbar, marks
|
|
59
63
|
* the current route, and collapses to a menu button on small screens.
|
|
60
64
|
*
|
|
61
65
|
* ```tsx
|
|
62
|
-
* <
|
|
66
|
+
* <AppShell app={app} appName="Cases" nav={[{ label: 'Home', href: '/' }, { label: 'Cases', href: '/cases' }]}>
|
|
63
67
|
* ```
|
|
64
68
|
*/
|
|
65
69
|
nav?: NavItem[];
|
|
66
70
|
/** Replace the built-in NavBar (still placed in the topbar) with your own. */
|
|
67
|
-
renderNav?: (ctx:
|
|
71
|
+
renderNav?: (ctx: AppShellNavContext) => ReactNode;
|
|
68
72
|
/**
|
|
69
73
|
* Client-side navigation for nav clicks (e.g. your router's `navigate`).
|
|
70
74
|
* Without it, nav items are ordinary links (full page load).
|
|
@@ -81,19 +85,19 @@ export interface ProShellProps {
|
|
|
81
85
|
showThemeToggle?: boolean;
|
|
82
86
|
/** Custom items added to the profile dropdown (above sign-out). */
|
|
83
87
|
menuItems?: MenuItem[];
|
|
84
|
-
/** Hide the default
|
|
88
|
+
/** Hide the default AppShell topbar. Prefer `nav`; this also hides the navigation. */
|
|
85
89
|
hideTopbar?: boolean;
|
|
86
|
-
/** Hide the default
|
|
90
|
+
/** Hide the default AppShell footer. */
|
|
87
91
|
hideFooter?: boolean;
|
|
88
92
|
/**
|
|
89
|
-
* Replace the default topbar while keeping
|
|
93
|
+
* Replace the default topbar while keeping AppShell's auth/subscription gates.
|
|
90
94
|
*
|
|
91
95
|
* Use the provided `profileMenu`, `textSizeToggle`, and `proBadge` nodes to
|
|
92
96
|
* keep platform account controls consistent in custom app navigation.
|
|
93
97
|
*/
|
|
94
|
-
renderTopbar?: (ctx:
|
|
98
|
+
renderTopbar?: (ctx: AppShellRenderContext) => ReactNode;
|
|
95
99
|
/** Replace the default footer. Return null to omit it. */
|
|
96
|
-
renderFooter?: (ctx:
|
|
100
|
+
renderFooter?: (ctx: AppShellRenderContext) => ReactNode;
|
|
97
101
|
/**
|
|
98
102
|
* Replace the fallback shown when a screen throws while rendering (#236).
|
|
99
103
|
* The error is already recorded via `app.logs`; call `reset` to retry.
|
|
@@ -102,8 +106,10 @@ export interface ProShellProps {
|
|
|
102
106
|
/** Replace the spinner shown while auth resolves (#241) and while a lazy-loaded screen loads (#236). */
|
|
103
107
|
renderLoading?: () => ReactNode;
|
|
104
108
|
}
|
|
109
|
+
/** @deprecated Use AppShellProps. Retained for the next major version. */
|
|
110
|
+
export type ProShellProps = AppShellProps;
|
|
105
111
|
/**
|
|
106
|
-
*
|
|
112
|
+
* AppShell — platform-level Shell for all ProAppStore apps.
|
|
107
113
|
*
|
|
108
114
|
* Handles:
|
|
109
115
|
* - Auth initialization + sign-in gate
|
|
@@ -119,18 +125,20 @@ export interface ProShellProps {
|
|
|
119
125
|
* Usage:
|
|
120
126
|
* ```tsx
|
|
121
127
|
* import { initPro } from '@proappstore/sdk'
|
|
122
|
-
* import {
|
|
128
|
+
* import { AppShell } from '@proappstore/sdk/shell'
|
|
123
129
|
*
|
|
124
130
|
* const app = initPro({ appId: 'meetup' })
|
|
125
131
|
*
|
|
126
132
|
* export default function App() {
|
|
127
133
|
* return (
|
|
128
|
-
* <
|
|
134
|
+
* <AppShell app={app} appName="Meetup" nav={[{ label: 'Events', href: '/' }, { label: 'Groups', href: '/groups' }]}>
|
|
129
135
|
* <MeetupApp />
|
|
130
|
-
* </
|
|
136
|
+
* </AppShell>
|
|
131
137
|
* )
|
|
132
138
|
* }
|
|
133
139
|
* ```
|
|
134
140
|
*/
|
|
135
|
-
export declare function
|
|
141
|
+
export declare function AppShell({ app, children, appName, branding, nav, renderNav, onNavigate, allowFree, showThemeToggle, menuItems, hideTopbar, hideFooter, renderTopbar, renderFooter, renderError, renderLoading, }: AppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
142
|
+
/** @deprecated Use AppShell. This is the same component, so switching names preserves React state. */
|
|
143
|
+
export declare const ProShell: typeof AppShell;
|
|
136
144
|
//# 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,kFAAkF;IAClF,QAAQ,EAAE,SAAS,CAAC;IACpB;mDAC+C;IAC/C,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,GAAG,EAAE,WAAW,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,SAAS,CAAC;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAC9B;;;;;;;;OAQG;IACH,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAChB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnD;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,SAAS,CAAC;IACzD,0DAA0D;IAC1D,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,SAAS,CAAC;IACzD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC;IACpD,wGAAwG;IACxG,aAAa,CAAC,EAAE,MAAM,SAAS,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"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"}
|
package/dist/shell.js
CHANGED
|
@@ -6,7 +6,7 @@ import { activeHref, NavBar, useCurrentPath } from './navbar.js';
|
|
|
6
6
|
import { SHELL_CSS } from './shell-css.js';
|
|
7
7
|
import { OfflineBanner, ShellErrorBoundary, SkipLink, ToastProvider, useRouteChangeEffects, } from './shell-resilience.js';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* AppShell — platform-level Shell for all ProAppStore apps.
|
|
10
10
|
*
|
|
11
11
|
* Handles:
|
|
12
12
|
* - Auth initialization + sign-in gate
|
|
@@ -22,20 +22,20 @@ import { OfflineBanner, ShellErrorBoundary, SkipLink, ToastProvider, useRouteCha
|
|
|
22
22
|
* Usage:
|
|
23
23
|
* ```tsx
|
|
24
24
|
* import { initPro } from '@proappstore/sdk'
|
|
25
|
-
* import {
|
|
25
|
+
* import { AppShell } from '@proappstore/sdk/shell'
|
|
26
26
|
*
|
|
27
27
|
* const app = initPro({ appId: 'meetup' })
|
|
28
28
|
*
|
|
29
29
|
* export default function App() {
|
|
30
30
|
* return (
|
|
31
|
-
* <
|
|
31
|
+
* <AppShell app={app} appName="Meetup" nav={[{ label: 'Events', href: '/' }, { label: 'Groups', href: '/groups' }]}>
|
|
32
32
|
* <MeetupApp />
|
|
33
|
-
* </
|
|
33
|
+
* </AppShell>
|
|
34
34
|
* )
|
|
35
35
|
* }
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
export function
|
|
38
|
+
export function AppShell({ 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');
|
|
@@ -134,4 +134,6 @@ export function ProShell({ app, children, appName, branding = 'platform', nav, r
|
|
|
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] }) }) }));
|
|
136
136
|
}
|
|
137
|
+
/** @deprecated Use AppShell. This is the same component, so switching names preserves React state. */
|
|
138
|
+
export const ProShell = AppShell;
|
|
137
139
|
//# sourceMappingURL=shell.js.map
|
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":"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"}
|
package/dist/ui.js
CHANGED
|
@@ -17,9 +17,9 @@ export { ProProfilePage } from './ui-profile-page.js';
|
|
|
17
17
|
export { GateScreen } from './ui-gate.js';
|
|
18
18
|
// General-purpose primitives (Button, Card, Input, Modal, Spinner, Tabs, Toast, EmptyState)
|
|
19
19
|
export { Button, Card, Input, Spinner, Modal, EmptyState, Tabs, Toast } from './ui-base.js';
|
|
20
|
-
// NavBar (#235) — the app's main navigation;
|
|
20
|
+
// NavBar (#235) — the app's main navigation; AppShell renders it from its `nav` prop
|
|
21
21
|
export { NavBar } from './navbar.js';
|
|
22
|
-
// Shell feedback + page helpers (#236) — useToast needs <
|
|
22
|
+
// Shell feedback + page helpers (#236) — useToast needs <AppShell>; the rest work anywhere
|
|
23
23
|
export { useToast, useOnline } from './shell-resilience.js';
|
|
24
24
|
export { PageHeader, useDocumentTitle } from './page.js';
|
|
25
25
|
//# sourceMappingURL=ui.js.map
|