import { ReactNode } from 'react'; import { ModernLandingFeature } from './modern-landing'; export interface NativeWelcomeProps { /** Product display name. Defaults to `useAppShell().productName`. */ productName?: string; /** One-line positioning statement. Defaults to `useAppShell().tagline`. */ tagline?: string; /** Optional headline above the product name (e.g. "Welcome to"). */ headline?: string; /** Up to a handful of highlight slides shown in a swipeable carousel. */ features?: ModernLandingFeature[]; primaryCtaLabel?: string; secondaryCtaLabel?: string; onSignIn: () => void; /** Omit to hide the secondary CTA entirely (e.g. invite-only products). */ onCreateAccount?: () => void; /** * Legal footer. Defaults to Terms/Privacy links on the product website * (`useAppShell().domain`), opened in the OS browser via `nativeOpenUrl`. * Pass `null` to hide it. */ legal?: ReactNode; /** Brand logo asset; falls back to the branded initial tile if it 404s. */ logoSrc?: string; className?: string; } /** * NativeWelcome — the entry screen for INSTALLED apps (Capacitor native, * installed/standalone PWA, Electron desktop). * * Installed apps must not open on the web marketing landing: app stores reject * marketing walls and an installed app should land on a focused sign-in * surface. Shells branch their logged-out route on `shouldShowNativeWelcome()` * (`@burdenoff/fe-libs/shared/native`) and render this instead of * `ModernLanding`: * * ```tsx * if (shouldShowNativeWelcome()) { * const routes = getNativeEntryRoutes(); * return ( * navigate(routes.signIn)} * onCreateAccount={() => navigate(routes.createAccount)} * /> * ); * } * ``` * * Full-bleed and safe-area aware, token-only, with the sticky CTA block pinned * above the home indicator. The highlights carousel is swipeable (CSS * scroll-snap; no JS drag, no auto-advance — so `prefers-reduced-motion` users * see no unrequested motion) and marked `data-swipe-ignore` so the shell's * back-swipe navigation ignores horizontal drags inside it. * * DOM contract: `[data-native-welcome]`, `[data-native-welcome-carousel]`, * `[data-shell-chrome]` on the header/CTA chrome. Desktop (Electron) constrains * the same content to a centered 480px card. */ export declare function NativeWelcome({ productName, tagline, headline, features, primaryCtaLabel, secondaryCtaLabel, onSignIn, onCreateAccount, legal, logoSrc, className, }: NativeWelcomeProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=native-welcome.d.ts.map