Releases: youversion/platform-sdk-react
Release list
@youversion/platform-react-ui@2.2.0
Minor Changes
-
2ba9e6d: Match Book/Chapter picker typography to the Figma design.
BibleChapterPickernow uses the Aktiv Grotesk App brand font (served from the YouVersion CDN): book rows render at 16px regular and bold when expanded, chapter/intro number buttons at 16px bold, and the search input at 16px. Falls back to the default sans font if the webfont fails to load. -
0d184fc: Update the Bible Version picker to match the latest Reader SDK Figma design, adding publisher names and refreshing the abbreviation tile.
@youversion/platform-core: NewOrganizationsClientwithgetOrganization(organizationId)for fetching an organization by its UUID (GET /v1/organizations/{id}), validated against the existingOrganizationSchema. Design tokens use Inter (--yv-font-sans) and Source Serif 4 (--yv-font-serif); the YouVersion brand fonts (Aktiv Grotesk App / Untitled Serif) are reverted pending licensing — seedocs/adr/0001-revert-brand-fonts-pending-licensing.md.@youversion/platform-react-hooks: NewuseOrganization(organizationId)hook (plususeOrganizationsClient) following the standarduseApiDatapattern. Fetching is skipped when the id is empty. Also addsuseOrganizations(organizationIds), which resolves many organizations at once, deduplicated by id, so a list of versions sharing publishers only fetches each organization once.@youversion/platform-react-ui:BibleVersionPickernow renders the publisher name above the version title for versions that have anorganization_id(rows without an associated organization render the title only), and recently used versions persistorganization_idso they display the publisher too. Publisher names are resolved once at the list level viauseOrganizationsinstead of per row, avoiding N+1 requests when many versions share a publisher. TheVersionAbbreviationIcontile now renders as a 64px square with a 6px radius, warm-neutral (secondary) fill, themed border, and serif typography (Source Serif 4) using the foreground text color; recent-version and all-version rows share the same tile styling, and long or trailing-digit abbreviations (e.g.NASB1995→NASB/1995) stay readable without overflowing. Brand fonts (Aktiv Grotesk App / Untitled Serif) are reverted to Inter / Source Serif 4 pending licensing; the brand-font implementation is parked on branchfeat/youversion-brand-fonts.
-
ed9eb23: Add language search to
BibleVersionPicker. The language panel now includes a bottom search input that globally filters available languages, shows a no-results empty state, and clears when the panel or popover closes.
Patch Changes
- Updated dependencies [0d184fc]
- @youversion/platform-core@2.2.0
- @youversion/platform-react-hooks@2.2.0
@youversion/platform-react-hooks@2.2.0
Minor Changes
- 0d184fc: Update the Bible Version picker to match the latest Reader SDK Figma design, adding publisher names and refreshing the abbreviation tile.
@youversion/platform-core: NewOrganizationsClientwithgetOrganization(organizationId)for fetching an organization by its UUID (GET /v1/organizations/{id}), validated against the existingOrganizationSchema. Design tokens use Inter (--yv-font-sans) and Source Serif 4 (--yv-font-serif); the YouVersion brand fonts (Aktiv Grotesk App / Untitled Serif) are reverted pending licensing — seedocs/adr/0001-revert-brand-fonts-pending-licensing.md.@youversion/platform-react-hooks: NewuseOrganization(organizationId)hook (plususeOrganizationsClient) following the standarduseApiDatapattern. Fetching is skipped when the id is empty. Also addsuseOrganizations(organizationIds), which resolves many organizations at once, deduplicated by id, so a list of versions sharing publishers only fetches each organization once.@youversion/platform-react-ui:BibleVersionPickernow renders the publisher name above the version title for versions that have anorganization_id(rows without an associated organization render the title only), and recently used versions persistorganization_idso they display the publisher too. Publisher names are resolved once at the list level viauseOrganizationsinstead of per row, avoiding N+1 requests when many versions share a publisher. TheVersionAbbreviationIcontile now renders as a 64px square with a 6px radius, warm-neutral (secondary) fill, themed border, and serif typography (Source Serif 4) using the foreground text color; recent-version and all-version rows share the same tile styling, and long or trailing-digit abbreviations (e.g.NASB1995→NASB/1995) stay readable without overflowing. Brand fonts (Aktiv Grotesk App / Untitled Serif) are reverted to Inter / Source Serif 4 pending licensing; the brand-font implementation is parked on branchfeat/youversion-brand-fonts.
Patch Changes
- Updated dependencies [0d184fc]
- @youversion/platform-core@2.2.0
@youversion/platform-core@2.2.0
Minor Changes
- 0d184fc: Update the Bible Version picker to match the latest Reader SDK Figma design, adding publisher names and refreshing the abbreviation tile.
@youversion/platform-core: NewOrganizationsClientwithgetOrganization(organizationId)for fetching an organization by its UUID (GET /v1/organizations/{id}), validated against the existingOrganizationSchema. Design tokens use Inter (--yv-font-sans) and Source Serif 4 (--yv-font-serif); the YouVersion brand fonts (Aktiv Grotesk App / Untitled Serif) are reverted pending licensing — seedocs/adr/0001-revert-brand-fonts-pending-licensing.md.@youversion/platform-react-hooks: NewuseOrganization(organizationId)hook (plususeOrganizationsClient) following the standarduseApiDatapattern. Fetching is skipped when the id is empty. Also addsuseOrganizations(organizationIds), which resolves many organizations at once, deduplicated by id, so a list of versions sharing publishers only fetches each organization once.@youversion/platform-react-ui:BibleVersionPickernow renders the publisher name above the version title for versions that have anorganization_id(rows without an associated organization render the title only), and recently used versions persistorganization_idso they display the publisher too. Publisher names are resolved once at the list level viauseOrganizationsinstead of per row, avoiding N+1 requests when many versions share a publisher. TheVersionAbbreviationIcontile now renders as a 64px square with a 6px radius, warm-neutral (secondary) fill, themed border, and serif typography (Source Serif 4) using the foreground text color; recent-version and all-version rows share the same tile styling, and long or trailing-digit abbreviations (e.g.NASB1995→NASB/1995) stay readable without overflowing. Brand fonts (Aktiv Grotesk App / Untitled Serif) are reverted to Inter / Source Serif 4 pending licensing; the brand-font implementation is parked on branchfeat/youversion-brand-fonts.
@youversion/platform-react-ui@2.1.0
Minor Changes
-
5b40719: Add a cycling line spacing setting to BibleReader
The Bible theme settings panel now includes a line spacing control that cycles
through three presets (small1.45, default1.7, large2.0) on each press.
The selection persists tolocalStoragewhen uncontrolled.BibleReader.RootgainslineSpacing,defaultLineSpacing, and
onChangeLineSpacingprops for controlled/uncontrolled usage. The existing
lineHeightprop is deprecated but still honored as the initial line spacing,
so this change is backward compatible; it will be removed in the next major.
Patch Changes
- f2c83cf: VerseOfTheDay now shows the Bible reference directly under the "Verse of the Day" label in foreground text instead of below the verse body. BibleCard and VerseOfTheDay no longer display inline verse numbers in passage text.
- @youversion/platform-core@2.1.0
- @youversion/platform-react-hooks@2.1.0
@youversion/platform-react-hooks@2.1.0
Patch Changes
- @youversion/platform-core@2.1.0
@youversion/platform-core@2.1.0
@youversion/platform-core@2.1.0
@youversion/platform-react-ui@2.0.1
Patch Changes
- dd83b33: BibleReader now keeps the previous chapter's text on screen while the next chapter loads, dimming it and floating a spinner over it (after a short delay) instead of pulsing stale text or flashing a blank spinner. Fast/cached chapter switches stay instant, the scroll position resets to the top on chapter change, and the
useDelayedLoadinghelper is shared with BibleCard. No changes to BibleTextView.- @youversion/platform-core@2.0.1
- @youversion/platform-react-hooks@2.0.1
@youversion/platform-react-hooks@2.0.1
Patch Changes
- @youversion/platform-core@2.0.1
@youversion/platform-core@2.0.1
@youversion/platform-core@2.0.1
@youversion/platform-react-ui@2.0.0
Major Changes
-
b8309a4: Stop persisting the ID token and harden the auth flow against stale/exposed state.
The ID token is now decoded once at sign-in to derive the user profile and then
discarded — only the decoded profile is persisted (validated with Zod on read),
so it survives reloads without keeping the signed token inlocalStorage. The
stored profile is cleared on sign-out and when a session expires and cannot be
refreshed.Additional hardening:
- The raw ID token is no longer attached to the sign-in result. It is decoded
transiently at sign-in to derive the profile and then discarded, so callback
consumers can no longer read it from memory. YouVersionAPIUsers.getStoredUserInfo()now returnsnullwhen the persisted
profile has noid, so a tampered or empty stored profile cannot present as a
signed-in user with an empty profile.YouVersionAPIUsers.handleAuthCallback()now clears persisted tokens and the
stored profile if an error is thrown after they were written, so a failed
callback cannot leave the user looking authenticated.
Breaking changes:
AuthenticationState.idTokenhas been removed. Components that read
auth.idTokenfromuseYVAuth()should no longer rely on it; useuserInfo
for profile data.SignInWithYouVersionResult.idTokenhas been removed. The result returned by
handleAuthCallback()(andprocessCallback()inuseYVAuth) no longer
exposes the ID token; useuserInfo/yvpUserIdfor profile data.YouVersionPlatformConfiguration.saveAuthData(accessToken, refreshToken, expiryDate)
no longer accepts anidTokenargument.YouVersionPlatformConfiguration.idTokengetter has been removed. The decoded
profile is available viaYouVersionPlatformConfiguration.storedUserInfo(or
YouVersionAPIUsers.getStoredUserInfo()).YouVersionAPIUsers.refreshTokens()no longer requires a stored ID token.
- The raw ID token is no longer attached to the sign-in result. It is decoded
-
52aa3b4: Remove deprecated APIs and tighten
BibleIndextypes (breaking changes).This major release removes APIs that were previously marked
@deprecated, plus one type-only tightening. Migration steps below.1.
YouVersionAuthButton— removed theredirectUrlpropSet the OAuth callback URL once on the provider instead. The per-call
signIn({ redirectUrl })escape hatch inuseYVAuthis unchanged.- <YouVersionProvider appKey="..."> - <YouVersionAuthButton redirectUrl="https://myapp.com/callback" /> + <YouVersionProvider appKey="..." authRedirectUrl="https://myapp.com/callback"> + <YouVersionAuthButton /> </YouVersionProvider>
2.
BibleWidgetView— removedThe deprecated alias is gone. Use
BibleCard/BibleCardProps(same component, renamed).- import { BibleWidgetView, type BibleWidgetViewProps } from '@youversion/platform-react-ui'; + import { BibleCard, type BibleCardProps } from '@youversion/platform-react-ui';
3. Unused hooks and contexts — removed
These had zero consumers. Removed from
@youversion/platform-react-hooks:useInitData— useuseVersion,useBook, anduseChapterdirectly.useChapterNavigation— usegetAdjacentChapterfrom@youversion/platform-core.useVerseSelection,VerseSelectionProvider,VerseSelectionContext— no replacement; handle verse selection via your own props/callbacks.ReaderProvider,ReaderContext,useReaderContext— no replacement.DEFAULT(the{ VERSION, BOOK, CHAPTER }constant exported alongsideuseInitData) was removed with it. If you relied on it, inline the values or useDEFAULT_LICENSE_FREE_BIBLE_VERSIONfrom@youversion/platform-corefor the version.
4.
BibleIndex—passage_idis now requiredpassage_idonBibleIndexChapterandBibleIndexVerseis no longer optional. The API has always returned it; the Zod schema now enforces this at runtime as well, so consumers who relied on the optional field in mock/fixture objects must addpassage_idto any such literals.BibleIndexBook.introremains optional.