/** * Shared component-setup helpers for props handling. * Used by both mountComponent (renderer) and hydrateComponent * (@sigx/server-renderer client) so the two setup paths cannot drift. */ /** * Split raw VNode props into the pieces component setup needs: * `children` and the `slots` prop are separated out to feed slot * creation, and `$models` entries that pass `isModel` are merged into * the remaining data props for unified access (`props.model.value`). * * `key` and `ref` are peeled off too, and deliberately do NOT reach * `ctx.props`. The renderer takes both off the vnode directly — `key` at * `jsx()` time, `ref` to deliver the `expose()` value — so a component has * no reason to read them, and leaving them visible is a live hazard once * props are forwarded by spread: `