import { ReactNode } from "react"; import { ClientStrategy, IslandDefaultProps as IslandDefaultProps$1, IslandProps as IslandProps$1 } from "@pastweb/tools"; //#region src/Island/types.d.ts /** * Props for the React {@link Island} component. * * React Island uses the shared `@pastweb/tools` island contract for hydration * strategies, media queries, idle timeout, and `islandId`, then specializes the * renderable values as React nodes. * * `Island` only controls when a server-rendered subtree is hydrated. It does * not receive provider props and does not install API, router, or portal * context by itself. When an island needs providers, render a component that * already includes them. * * Components inside an island can call `useIsland()` to detect the island * boundary. `EntryAdapter` uses that context automatically to hydrate nested * entries only when they are rendered inside an island. * * @example * ```tsx * function ProductIsland() { * return ( * * * * ); * } * * * * * ``` */ interface IslandProps extends Omit { /** What to render both on the server and client. */ children: ReactNode; /** Optional React fallback content shown before hydration. */ fallback?: ReactNode; } /** * React Island props after defaults from `@pastweb/tools` have been applied. */ interface IslandDefaultProps extends Omit { /** What to render both on the server and client. */ children: ReactNode; /** Optional React fallback content shown before hydration. */ fallback?: ReactNode; } //#endregion export { type ClientStrategy, IslandDefaultProps, IslandProps }; //# sourceMappingURL=types.d.ts.map