Skip to content

Releases: youversion/platform-sdk-react

@youversion/platform-react-ui@2.2.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 16:33
f449099

Minor Changes

  • 2ba9e6d: Match Book/Chapter picker typography to the Figma design. BibleChapterPicker now 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: New OrganizationsClient with getOrganization(organizationId) for fetching an organization by its UUID (GET /v1/organizations/{id}), validated against the existing OrganizationSchema. 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 — see docs/adr/0001-revert-brand-fonts-pending-licensing.md.
    • @youversion/platform-react-hooks: New useOrganization(organizationId) hook (plus useOrganizationsClient) following the standard useApiData pattern. Fetching is skipped when the id is empty. Also adds useOrganizations(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: BibleVersionPicker now renders the publisher name above the version title for versions that have an organization_id (rows without an associated organization render the title only), and recently used versions persist organization_id so they display the publisher too. Publisher names are resolved once at the list level via useOrganizations instead of per row, avoiding N+1 requests when many versions share a publisher. The VersionAbbreviationIcon tile 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. NASB1995NASB / 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 branch feat/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

Choose a tag to compare

@github-actions github-actions released this 30 Jun 16:33
f449099

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: New OrganizationsClient with getOrganization(organizationId) for fetching an organization by its UUID (GET /v1/organizations/{id}), validated against the existing OrganizationSchema. 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 — see docs/adr/0001-revert-brand-fonts-pending-licensing.md.
    • @youversion/platform-react-hooks: New useOrganization(organizationId) hook (plus useOrganizationsClient) following the standard useApiData pattern. Fetching is skipped when the id is empty. Also adds useOrganizations(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: BibleVersionPicker now renders the publisher name above the version title for versions that have an organization_id (rows without an associated organization render the title only), and recently used versions persist organization_id so they display the publisher too. Publisher names are resolved once at the list level via useOrganizations instead of per row, avoiding N+1 requests when many versions share a publisher. The VersionAbbreviationIcon tile 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. NASB1995NASB / 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 branch feat/youversion-brand-fonts.

Patch Changes

  • Updated dependencies [0d184fc]
    • @youversion/platform-core@2.2.0

@youversion/platform-core@2.2.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 16:33
f449099

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: New OrganizationsClient with getOrganization(organizationId) for fetching an organization by its UUID (GET /v1/organizations/{id}), validated against the existing OrganizationSchema. 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 — see docs/adr/0001-revert-brand-fonts-pending-licensing.md.
    • @youversion/platform-react-hooks: New useOrganization(organizationId) hook (plus useOrganizationsClient) following the standard useApiData pattern. Fetching is skipped when the id is empty. Also adds useOrganizations(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: BibleVersionPicker now renders the publisher name above the version title for versions that have an organization_id (rows without an associated organization render the title only), and recently used versions persist organization_id so they display the publisher too. Publisher names are resolved once at the list level via useOrganizations instead of per row, avoiding N+1 requests when many versions share a publisher. The VersionAbbreviationIcon tile 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. NASB1995NASB / 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 branch feat/youversion-brand-fonts.

@youversion/platform-react-ui@2.1.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 13:18
0f5c3c1

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 (small 1.45, default 1.7, large 2.0) on each press.
    The selection persists to localStorage when uncontrolled.

    BibleReader.Root gains lineSpacing, defaultLineSpacing, and
    onChangeLineSpacing props for controlled/uncontrolled usage. The existing
    lineHeight prop 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

Choose a tag to compare

@github-actions github-actions released this 10 Jun 13:18
0f5c3c1

Patch Changes

  • @youversion/platform-core@2.1.0

@youversion/platform-core@2.1.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 13:18
0f5c3c1
@youversion/platform-core@2.1.0

@youversion/platform-react-ui@2.0.1

Choose a tag to compare

@github-actions github-actions released this 08 Jun 16:04
7175656

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 useDelayedLoading helper 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

Choose a tag to compare

@github-actions github-actions released this 08 Jun 16:04
7175656

Patch Changes

  • @youversion/platform-core@2.0.1

@youversion/platform-core@2.0.1

Choose a tag to compare

@github-actions github-actions released this 08 Jun 16:04
7175656
@youversion/platform-core@2.0.1

@youversion/platform-react-ui@2.0.0

Choose a tag to compare

@github-actions github-actions released this 04 Jun 17:16
602c43d

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 in localStorage. 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 returns null when the persisted
      profile has no id, 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.idToken has been removed. Components that read
      auth.idToken from useYVAuth() should no longer rely on it; use userInfo
      for profile data.
    • SignInWithYouVersionResult.idToken has been removed. The result returned by
      handleAuthCallback() (and processCallback() in useYVAuth) no longer
      exposes the ID token; use userInfo/yvpUserId for profile data.
    • YouVersionPlatformConfiguration.saveAuthData(accessToken, refreshToken, expiryDate)
      no longer accepts an idToken argument.
    • YouVersionPlatformConfiguration.idToken getter has been removed. The decoded
      profile is available via YouVersionPlatformConfiguration.storedUserInfo (or
      YouVersionAPIUsers.getStoredUserInfo()).
    • YouVersionAPIUsers.refreshTokens() no longer requires a stored ID token.
  • 52aa3b4: Remove deprecated APIs and tighten BibleIndex types (breaking changes).

    This major release removes APIs that were previously marked @deprecated, plus one type-only tightening. Migration steps below.

    1. YouVersionAuthButton — removed the redirectUrl prop

    Set the OAuth callback URL once on the provider instead. The per-call signIn({ redirectUrl }) escape hatch in useYVAuth is unchanged.

    - <YouVersionProvider appKey="...">
    -   <YouVersionAuthButton redirectUrl="https://myapp.com/callback" />
    + <YouVersionProvider appKey="..." authRedirectUrl="https://myapp.com/callback">
    +   <YouVersionAuthButton />
      </YouVersionProvider>

    2. BibleWidgetView — removed

    The 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 — use useVersion, useBook, and useChapter directly.
    • useChapterNavigation — use getAdjacentChapter from @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 alongside useInitData) was removed with it. If you relied on it, inline the values or use DEFAULT_LICENSE_FREE_BIBLE_VERSION from @youversion/platform-core for the version.

    4. BibleIndexpassage_id is now required

    passage_id on BibleIndexChapter and BibleIndexVerse is 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 add passage_id to any such literals. BibleIndexBook.intro remains optional.

Patch Changes

  • Updated dependencies [b8309a4]
  • Updated dependencies [52aa3b4]
  • Updated dependencies [97b9b6b]
    • @youversion/platform-core@2.0.0
    • @youversion/platform-react-hooks@2.0.0