Conversation
…mponent screenshots Adds an Artisan command that drives a local super-native checkout's native:run/native:screenshot commands per screen and platform, stages results under storage/docs-screenshots, and (with --publish) copies them into public/img/docs. The 9 captured screens live in App\Support\DocsScreenshotManifest, one entry per route in super-native's Edge Component showcase. Guards against the ways this can go wrong when run unattended: an ambiguous device without --udid can make the underlying native:run prompt interactively with no attached terminal, so that timeout is now caught instead of crashing the command; a screen whose drawer needs a manual open is skipped with a clear message rather than silently publishing a closed-drawer screenshot when run non-interactively; and --publish checks each source file exists and each copy actually succeeds before reporting success. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… options Splits CaptureDocsScreenshots into three focused, independently-testable services (ScreenshotCapturer, ScreenshotPublisher), and the manifest now records each screen's crop direction. Cropping itself is delegated to mobile-air's own native:screenshot --crop/--crop-percent flags rather than duplicated here, so every NativePHP developer gets it, not just this pipeline. --full skips cropping, --crop-percent overrides the configured default, and --dry-run prints the plan without running anything. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0.25 pulled in whatever sat just below/above the top/bottom bar on a real device capture (verified against a booted iOS simulator) — 0.15 is the tightest value that still keeps the full bar on both the top-bar and bottom-nav reference screens. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…approach The inline <native:side-nav> element the old example and props table documented renders nothing on either platform (its own admonition said so) — there was no working example to preserve parity with, so this replaces it with the Drawer-builder approach that actually works, matching the reference screen in NativePHP/super-native. Also fixes <native:horizontal-divider>, a stale tag name with no real element behind it — <native:divider> is the real element. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
For developers without Herd's own database service running — matches .env.example's default DB_* values, so `docker compose -f docker-compose.local.yml up -d && php artisan migrate` is enough to get a working local database. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replace the bare two-up image grid with a tabbed iOS/Android preview card: a device-style frame, a link to the exact reference-screen file in super-native so the example can be seen running for real, and a decorative (non-captured) chrome strip so the crop is unmistakably a phone screen without embedding real device data (time, battery %, carrier). Screenshots are regenerated with --crop-offset to exclude the real status bar / OS nav bar entirely. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Lets a capture skip the OS status bar/nav bar before measuring crop-percent, mirroring native:screenshot's own --crop-offset option. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Add screenshots for bottom-sheet, modal, menus, list, refreshable, virtual-list, slider, toggle, checkbox, select, radio-group, web-view, gesture-area, tab-row, and text, alongside the existing top-bar/ bottom-nav/side-nav coverage, all captured from real iOS/Android devices via native:screenshot and wired through DocsScreenshotManifest. Fix edge-preview's device chrome: - Add a live clock and percentage-based (not fixed-px) sizing for the Dynamic Island/camera cutout and home indicator, so they scale with the screenshot instead of a fixed size - Fix a browser bug where pairing a percentage width with aspect-square on the Android bottom-nav icons made the fake chrome bar's shrink-to- fit width diverge from the actual screenshot width, leaving a visible gap; swapped to a fixed height instead - Add sidebarWidthIos/sidebarWidthAndroid props so the fake status/ home-indicator bars can match a partial-width drawer's dimming scrim Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Eyes @simonhamp - I think the idea is great but I don't believe it should belong here, let's discuss |
|
@shanerbaner82 where should it live if not here? The command should be able to run inside of a GH Action or anywhere else - feels very flexible My only issue is that it's using the But this is a great start imo. I have a feeling that in its current form though, it would break how the interactive demos work in the Jump app |
The docs API strips Blade components out of page prose before Jump and MCP clients get it. The self-closing rule was /<x-[^\/]+\/>/, which can't match a tag with a slash anywhere inside it. Every new <x-docs.edge-preview> tag has one in its source path, so the tag survived and Jump showed its attribute lines as a paragraph at the top of 18 edge component pages. The paired rule ran first and could also read a self-closing tag as an opening tag, then delete all the prose up to the next closing tag in the segment. Both rules now share one tag pattern that matches quoted attribute values whole, so a slash or ">" inside a value can't end the tag early. Self-closing tags are removed first. The paired rule only matches a real opening tag and a closing tag with the same name. Fenced code handling is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
I pushed a commit to this branch. The docs API (used by Jump and MCP clients) strips Blade components from page content, but its self-closing tag rule couldn't match a tag with a
|
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
…eenshots # Conflicts: # tests/Feature/DocsMcpServerPageTest.php
Summary
docs:capture-screenshots, which drives a local super-native checkout vianative:run/native:screenshotto regenerate every Edge Component doc screenshot from real iOS/Android devices, with--crop/--crop-percent/--crop-offsetto trim OS chrome and a--dry-run/--publishflowDocsScreenshotManifestfor future regeneration<x-docs.edge-preview>): adds a live clock, switches the Dynamic Island/camera cutout and home indicator to percentage-based sizing so they scale with the screenshot instead of a fixed pixel size, and addssidebarWidthIos/sidebarWidthAndroidprops so the fake status/home-indicator bars can match a partial-width drawer's dimming scrimaspect-squareon the Android bottom-nav icons made the fake chrome bar's shrink-to-fit width diverge from the actual screenshot widthTest plan
php artisan test --filter=Docspasses (95 tests)🤖 Generated with Claude Code