feat(ui): add BibleCard maxWidth to match Swift's implementation (YPE-5197) - #354
Merged
Merged
Conversation
Default and numeric maxWidth cap the painted section (700px by default) and let the inner column fill. maxWidth="100%" is full-bleed and keeps the shared 600px card-content column. VerseOfTheDay is unchanged.
🦋 Changeset detectedLatest commit: 9342e7c The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
cameronapak
marked this pull request as ready for review
August 24, 2026 12:46
5 tasks
10.3.5 statically imported react-docgen-typescript and crashed the React preset because TypeScript 7 has no compiler API. lint-staged now skips oxlint on files oxlint already ignores, so .storybook edits can commit. Co-authored-by: Cursor <cursoragent@cursor.com>
The 700 painted shell still left verse text on the renderer 65ch fallback. YPE-5197. Co-authored-by: Cursor <cursoragent@cursor.com>
The prior summary tied scripture fill to the 600 column only and named 65ch. Co-authored-by: Cursor <cursoragent@cursor.com>
tsc rejects a custom property on a style object literal even with satisfies. Co-authored-by: Cursor <cursoragent@cursor.com>
cameronapak
requested review from
Dustin-Kelley,
camrun91 and
jaredhightower-youversion
August 24, 2026 14:18
jaredhightower-youversion
approved these changes
Aug 24, 2026
jaredhightower-youversion
left a comment
Collaborator
There was a problem hiding this comment.
LGTM! I left one non-blocking comment. Feel free to address it or not, but looked over everything, and changes look good.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements YPE-5197 for React web.
BibleCardnow accepts publicmaxWidth?: number | '100%':<section>iswidth: 100%withmax-width: 700px,margin-inline: auto, and the existingp-6/bg-card/rounded-2xl/box-bordershell. The inner column fills the section (no 600px cap).'100%'— section is full-bleed. Inner.card-contentkeepsmax-width: 600pxandmargin-inline: auto.The shared
@utility card-contentis unchanged, soVerseOfTheDaystays at 600. Full-bleed hosts must passmaxWidth="100%".Storybook is upgraded from 10.3.5 to 10.5.10 so stories can render on TypeScript 7. 10.3.5 statically imported
react-docgen-typescriptwhen the React preset loaded. That package reads the TypeScript compiler API at import time, and TypeScript 7 does not ship that API, so the preset failed and every story showedExpected your framework's preset to export a renderToCanvas field. 10.4.0+ lazy-loads that parser. This PR also setstypescript.reactDocgen: 'react-docgen', the official Storybook default.Changes
maxWidthtoBibleCardProps(already exported from the UI package).yv:w-fullinstead ofyv:card-content.WideContainerplay story passesmaxWidth="100%"so it still checks the full-bleed + 600 inner path.480/"100%"/ narrower parent.storybook,@storybook/react-vite, and the Storybook addons to 10.5.10.typescript.reactDocgen: 'react-docgen'inpackages/ui/.storybook/main.ts..storybookedits can commit.Test plan
maxWidthcasespackages/uitypecheck@youversion/platform-react-uiunit suite (497 passed)VerseOfTheDaystill uses sharedyv:card-contentrenderToCanvaspreset errorGreptile Summary
The PR adds a public
BibleCard.maxWidthoption and adjusts the card’s shell and inner-column sizing behavior. It also upgrades Storybook for TypeScript 7 compatibility and aligns staged-file linting with Oxlint exclusions.BibleCard.Confidence Score: 5/5
The PR appears safe to merge.
No blocking failure remains.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD Input[BibleCard maxWidth] --> FullBleed{Value is 100%?} FullBleed -- No --> Capped[Section capped at 700px or numeric pixels] Capped --> Fill[Inner content fills section] FullBleed -- Yes --> Wide[Section fills parent] Wide --> Readable[Inner content remains capped at 600px] Fill --> Renderer[Bible renderer measure lifted] Readable --> RendererReviews (4): Last reviewed commit: "fix(ui): type BibleCard CSS variable out..." | Re-trigger Greptile
Context used (3)