Smarter document template editor + URL inputs accept naked domains

Document template editor pagination now splits long tables and lists across pages instead of pushing them entirely down. URL fields no longer reject 'example.com' style entries.

## Improvement — Page-aware pagination for tables and lists

The document template editor now treats each table row and each list item as its own pagination unit. A long table or list that crosses a page boundary splits cleanly — only the rows or items that actually overflow get pushed onto the next page.

Previously the whole table or list was pushed wholesale, leaving a large blank gap on the prior page or the bottom of the table hidden behind the page-margin overlay.

![Document editor splitting a long table cleanly across two A4 pages](/changelog/2026-04-05-editor-pagination-url-inputs/editor-pagination.png)

## Improvement — URL inputs accept naked domains

Website, social and link inputs across CRM companies, contacts, business locations, candidates, social profiles and marketing tracking links now accept entries like 'example.com' — we normalise to https://example.com on save so the URL validates server-side.

Both the frontend (Yup transforms) and the Laravel backend (a new UrlNormalizer + prepareForValidation hooks on the relevant FormRequests) handle the normalisation, so external API calls land at correct URLs too.

![Company website field accepting 'example.com' and saving as https://example.com](/changelog/2026-04-05-editor-pagination-url-inputs/url-input-naked-domain.png)