nimuli/app/Livewire/Modals
boban deb5f310a1 fix(bio): plan-aware URL + plan-seeder + ulid→slug fix
- Migration: add bio_pages_limit to plans, make limit cols nullable (agency=unlimited)
- PlanSeeder: 4 plans (free/pro/business/agency) with tier/features/bio_pages_limit
- workspaces:assign-default-plan command: assigns free plan to unassigned workspaces
- BioPage::publicUrl(): free=apex-path, pro+=subdomain, custom=custom-domain
  - Security: str_ends_with check uses '.'.$apex to prevent evilnimu.li bypass
- BioPage::shortPublicUrl(): URL without scheme for display
- PlanLimitsService: use bio_pages_limit column (was features['bio_pages']), null=unlimited
- BioPageController: fix $bio → $page variable (view expects $page)
- Bio index/edit views: use publicUrl()/shortPublicUrl(), not hardcoded ULID URLs
- Bio edit view: publicUrlBase/displayUrlBase from component (plan-aware prefix)
- Create-bio modal: plan-aware URL prefix display
- PlanFactory/WorkspaceFactory: free()/pro() states for tests
- Tests: PublicUrlTest (5 cases), Free404FixTest (3 cases)

Known pre-existing failure (not caused by this change):
- Tests\Feature\Auth\EmailVerificationTest::email can be verified

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 22:44:54 +02:00
..
AddDomain.php fix(livewire): remove require_workspace() from action methods and render() 2026-05-17 15:21:15 +02:00
ConfirmAction.php fix(sidebar+types): mobile slide animation, close-on-navigate, PHPStan clean 2026-05-16 15:47:17 +02:00
CreateApiToken.php fix(sidebar+types): mobile slide animation, close-on-navigate, PHPStan clean 2026-05-16 15:47:17 +02:00
CreateBioPage.php fix(bio): plan-aware URL + plan-seeder + ulid→slug fix 2026-05-17 22:44:54 +02:00
CreateLink.php fix(FIX-12): 10 bugs — AI workspace context, Alpine sidebar/theme, analytics clearFilters, link badge layout, slug suggest 2026-05-16 18:02:23 +02:00
CreateQrCode.php fix(FIX-10): 6 bugs — route ULID, QR modal, bio unique, nav active, copy btn, analytics context 2026-05-16 17:01:16 +02:00
CreateWebhook.php fix(livewire): remove require_workspace() from action methods and render() 2026-05-17 15:21:15 +02:00
CreateWorkspace.php fix(sidebar+types): mobile slide animation, close-on-navigate, PHPStan clean 2026-05-16 15:47:17 +02:00
DeleteAccount.php feat: Toaster, button-component, 10 new modals, links-page fix, vite-tuning 2026-05-16 13:55:25 +02:00
DeleteBioPage.php fix: bio public /b/{slug} route + QR types + code cleanup 2026-05-16 16:41:05 +02:00
DeleteDomain.php fix: bio public /b/{slug} route + QR types + code cleanup 2026-05-16 16:41:05 +02:00
DeleteLink.php fix: bio public /b/{slug} route + QR types + code cleanup 2026-05-16 16:41:05 +02:00
DeleteQrCode.php fix: bio public /b/{slug} route + QR types + code cleanup 2026-05-16 16:41:05 +02:00
DeleteWebhook.php fix: bio public /b/{slug} route + QR types + code cleanup 2026-05-16 16:41:05 +02:00
DeleteWorkspace.php fix(sidebar+types): mobile slide animation, close-on-navigate, PHPStan clean 2026-05-16 15:47:17 +02:00
EditBioPage.php fix(FIX-13): 8 bugs — sidebar flash, mobile hamburger, AI insights, button overlay, QR modal collapse, dashboard always-active, bio themes 2026-05-16 18:28:27 +02:00
EditLink.php fix(sidebar+types): mobile slide animation, close-on-navigate, PHPStan clean 2026-05-16 15:47:17 +02:00
EditMemberRole.php fix(sidebar+types): mobile slide animation, close-on-navigate, PHPStan clean 2026-05-16 15:47:17 +02:00
EditQrCode.php fix(sidebar+types): mobile slide animation, close-on-navigate, PHPStan clean 2026-05-16 15:47:17 +02:00
InviteMember.php fix(livewire): remove require_workspace() from action methods and render() 2026-05-17 15:21:15 +02:00
LinkVariants.php fix: bio public /b/{slug} route + QR types + code cleanup 2026-05-16 16:41:05 +02:00
RemoveMember.php fix: bio public /b/{slug} route + QR types + code cleanup 2026-05-16 16:41:05 +02:00
RevokeApiToken.php style: apply Pint formatting to modal files and tests 2026-05-16 12:42:16 +02:00
UtmBuilder.php fix(FIX-12): 10 bugs — AI workspace context, Alpine sidebar/theme, analytics clearFilters, link badge layout, slug suggest 2026-05-16 18:02:23 +02:00
VerifyDomain.php fix: bio public /b/{slug} route + QR types + code cleanup 2026-05-16 16:41:05 +02:00