Svelte needs instruction that data can be bound and may be reactive in the child-to-parent direction. This can be accomplished by using the $bindable() rune.
type Props = {
data: PageData;
};
let { data = $bindable() }: Props = $props();
<input bind:value={data.product.name} />