diff --git a/.changeset/adjacent-chapter-next-intro.md b/.changeset/adjacent-chapter-next-intro.md deleted file mode 100644 index 9f4f5082f..000000000 --- a/.changeset/adjacent-chapter-next-intro.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@youversion/platform-core': patch ---- - -`getAdjacentChapter` now goes from the last chapter of a book to the next book's intro when it has one, instead of skipping to chapter 1. Next and previous are now inverses, and `BibleReader`'s next-chapter button reaches book intros the way the Swift reader does. diff --git a/.changeset/language-picker-v2-card.md b/.changeset/language-picker-v2-card.md deleted file mode 100644 index 85cdb6758..000000000 --- a/.changeset/language-picker-v2-card.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@youversion/platform-react-ui': minor ---- - -Open Bible languages from a row under version search, and search languages on their own screen. Keep tablet picker cards at 400 by 600 pixels, capped to fit the viewport. Show the selected language and the number of rows in its version section, excluding recent versions. Add a forward chevron to version rows. Keep language navigation in the SDK popover so standalone content retains host-owned controls. Expose the language count to screen readers. diff --git a/.changeset/organization-nullable-fields.md b/.changeset/organization-nullable-fields.md deleted file mode 100644 index 99b3ce8be..000000000 --- a/.changeset/organization-nullable-fields.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@youversion/platform-core': patch ---- - -Fix `OrganizationsClient.getOrganization` rejecting live API responses. The API sends `address: null` for organizations without an address and `description: null` for some, but `OrganizationSchema` only allowed those fields to be omitted, so every lookup threw a validation error. Both fields now accept `null`, and `BibleVersionPicker` now shows publisher names. - -The `Organization` `description` and `address` types now include `null`; check for null when you read them. Code that passes these fields where `string | undefined` or `OrganizationAddress | undefined` is expected stops compiling under strict null checks. diff --git a/.changeset/preserve-webkit-on-css-watch.md b/.changeset/preserve-webkit-on-css-watch.md deleted file mode 100644 index 0256df8cc..000000000 --- a/.changeset/preserve-webkit-on-css-watch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@youversion/platform-react-ui': patch ---- - -Re-apply the host revert-layer `-webkit-appearance` fix when Tailwind watch rewrites CSS during `dev` and Storybook. diff --git a/.changeset/reexport-search-images.md b/.changeset/reexport-search-images.md deleted file mode 100644 index 594ae4367..000000000 --- a/.changeset/reexport-search-images.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@youversion/platform-react-ui': minor ---- - -Re-export `searchImages` from the UI package entry point. diff --git a/.changeset/search-images-votd.md b/.changeset/search-images-votd.md deleted file mode 100644 index 5c4b00e43..000000000 --- a/.changeset/search-images-votd.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@youversion/platform-core': minor ---- - -Add paginated `searchImages` for `GET /v1/search-images`. Pass the same query, version id, and `pageSize` on each page, then pass `nextPageToken` back as `pageToken`. An empty page can still include a token. Empty success bodies, including HTTP 204, reject with `search-images returned no content; expected a JSON response`. - -Verse-of-the-day reads move from `/v1/verse_of_the_days` to the canonical `/v1/verse-of-the-days` routes for both single days and the calendar. Pass `language_ranges` to send `language_ranges[]`. Core client methods return `VOTDResponse` records with a guaranteed `image_id: string | null`, including `null` when the API omits the field. The existing `VOTD` type and hook overrides still accept values without `image_id`. - -VOTD reads now validate responses instead of returning unchecked bodies. `getAllVOTDs` requires a `{ data: [...] }` collection envelope. Both methods reject malformed responses with an `Unexpected verse-of-the-day API response` error, including invalid day, passage, or image field types. diff --git a/.changeset/sync-localization-react-70fd234.md b/.changeset/sync-localization-react-70fd234.md deleted file mode 100644 index 3fd50384c..000000000 --- a/.changeset/sync-localization-react-70fd234.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@youversion/platform-react-ui': patch ---- - -Sync localization from platform-localization (70fd234): update 57 keys in af, ar, cy, de, es, fr, ig, no, pt, vi, zh. diff --git a/.changeset/sync-localization-react-dc70b8b.md b/.changeset/sync-localization-react-dc70b8b.md deleted file mode 100644 index db7d645f9..000000000 --- a/.changeset/sync-localization-react-dc70b8b.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@youversion/platform-react-ui': patch ---- - -Sync localization from platform-localization (dc70b8b): update 6 keys in en. diff --git a/CHANGELOG.md b/CHANGELOG.md index 861e837e4..ee19bebb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,34 @@ affected. Generated from the per-package changelogs by `scripts/build-root-changelog.mjs` — edit those, or the changeset, rather than this file. +## 2.17.0 + +### Minor Changes + +- _(@youversion/platform-core)_ 9741f24: Add paginated `searchImages` for `GET /v1/search-images`. Pass the same query, version id, and `pageSize` on each page, then pass `nextPageToken` back as `pageToken`. An empty page can still include a token. Empty success bodies, including HTTP 204, reject with `search-images returned no content; expected a JSON response`. + + Verse-of-the-day reads move from `/v1/verse_of_the_days` to the canonical `/v1/verse-of-the-days` routes for both single days and the calendar. Pass `language_ranges` to send `language_ranges[]`. Core client methods return `VOTDResponse` records with a guaranteed `image_id: string | null`, including `null` when the API omits the field. The existing `VOTD` type and hook overrides still accept values without `image_id`. + + VOTD reads now validate responses instead of returning unchecked bodies. `getAllVOTDs` requires a `{ data: [...] }` collection envelope. Both methods reject malformed responses with an `Unexpected verse-of-the-day API response` error, including invalid day, passage, or image field types. + +- _(@youversion/platform-react-ui)_ b0280a5: Open Bible languages from a row under version search, and search languages on their own screen. Keep tablet picker cards at 400 by 600 pixels, capped to fit the viewport. Show the selected language and the number of rows in its version section, excluding recent versions. Add a forward chevron to version rows. Keep language navigation in the SDK popover so standalone content retains host-owned controls. Expose the language count to screen readers. + +- _(@youversion/platform-react-ui)_ 9741f24: Re-export `searchImages` from the UI package entry point. + +### Patch Changes + +- _(@youversion/platform-core)_ 669db59: `getAdjacentChapter` now goes from the last chapter of a book to the next book's intro when it has one, instead of skipping to chapter 1. Next and previous are now inverses, and `BibleReader`'s next-chapter button reaches book intros the way the Swift reader does. + +- _(@youversion/platform-core)_ f64b654: Fix `OrganizationsClient.getOrganization` rejecting live API responses. The API sends `address: null` for organizations without an address and `description: null` for some, but `OrganizationSchema` only allowed those fields to be omitted, so every lookup threw a validation error. Both fields now accept `null`, and `BibleVersionPicker` now shows publisher names. + + The `Organization` `description` and `address` types now include `null`; check for null when you read them. Code that passes these fields where `string | undefined` or `OrganizationAddress | undefined` is expected stops compiling under strict null checks. + +- _(@youversion/platform-react-ui)_ b0280a5: Re-apply the host revert-layer `-webkit-appearance` fix when Tailwind watch rewrites CSS during `dev` and Storybook. + +- _(@youversion/platform-react-ui)_ f1c55f1: Sync localization from platform-localization (70fd234): update 57 keys in af, ar, cy, de, es, fr, ig, no, pt, vi, zh. + +- _(@youversion/platform-react-ui)_ 4eed87a: Sync localization from platform-localization (dc70b8b): update 6 keys in en. + ## 2.16.0 ### Minor Changes diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index a8eb9096b..f0b849377 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,22 @@ # @youversion/platform-core +## 2.17.0 + +### Minor Changes + +- 9741f24: Add paginated `searchImages` for `GET /v1/search-images`. Pass the same query, version id, and `pageSize` on each page, then pass `nextPageToken` back as `pageToken`. An empty page can still include a token. Empty success bodies, including HTTP 204, reject with `search-images returned no content; expected a JSON response`. + + Verse-of-the-day reads move from `/v1/verse_of_the_days` to the canonical `/v1/verse-of-the-days` routes for both single days and the calendar. Pass `language_ranges` to send `language_ranges[]`. Core client methods return `VOTDResponse` records with a guaranteed `image_id: string | null`, including `null` when the API omits the field. The existing `VOTD` type and hook overrides still accept values without `image_id`. + + VOTD reads now validate responses instead of returning unchecked bodies. `getAllVOTDs` requires a `{ data: [...] }` collection envelope. Both methods reject malformed responses with an `Unexpected verse-of-the-day API response` error, including invalid day, passage, or image field types. + +### Patch Changes + +- 669db59: `getAdjacentChapter` now goes from the last chapter of a book to the next book's intro when it has one, instead of skipping to chapter 1. Next and previous are now inverses, and `BibleReader`'s next-chapter button reaches book intros the way the Swift reader does. +- f64b654: Fix `OrganizationsClient.getOrganization` rejecting live API responses. The API sends `address: null` for organizations without an address and `description: null` for some, but `OrganizationSchema` only allowed those fields to be omitted, so every lookup threw a validation error. Both fields now accept `null`, and `BibleVersionPicker` now shows publisher names. + + The `Organization` `description` and `address` types now include `null`; check for null when you read them. Code that passes these fields where `string | undefined` or `OrganizationAddress | undefined` is expected stops compiling under strict null checks. + ## 2.16.0 ### Minor Changes diff --git a/packages/core/package.json b/packages/core/package.json index 54a41d1a1..d46ee026b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@youversion/platform-core", - "version": "2.16.0", + "version": "2.17.0", "description": "A type-safe TypeScript SDK for accessing the YouVersion Platform APIs. Get Bible content and build Bible-based applications.", "license": "Apache-2.0", "type": "module", diff --git a/packages/hooks/CHANGELOG.md b/packages/hooks/CHANGELOG.md index 2547ad8e8..bfa850b19 100644 --- a/packages/hooks/CHANGELOG.md +++ b/packages/hooks/CHANGELOG.md @@ -1,5 +1,14 @@ # @youversion/platform-react-hooks +## 2.17.0 + +### Patch Changes + +- Updated dependencies [669db59] +- Updated dependencies [f64b654] +- Updated dependencies [9741f24] + - @youversion/platform-core@2.17.0 + ## 2.16.0 ### Minor Changes diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 791f54e7a..5ae6cc11b 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@youversion/platform-react-hooks", - "version": "2.16.0", + "version": "2.17.0", "description": "React hooks for accessing YouVersion Platform APIs with automatic loading/error states.", "license": "Apache-2.0", "type": "module", diff --git a/packages/ui/CHANGELOG.md b/packages/ui/CHANGELOG.md index ac97481dc..09c55edab 100644 --- a/packages/ui/CHANGELOG.md +++ b/packages/ui/CHANGELOG.md @@ -1,5 +1,23 @@ # @youversion/platform-react-ui +## 2.17.0 + +### Minor Changes + +- b0280a5: Open Bible languages from a row under version search, and search languages on their own screen. Keep tablet picker cards at 400 by 600 pixels, capped to fit the viewport. Show the selected language and the number of rows in its version section, excluding recent versions. Add a forward chevron to version rows. Keep language navigation in the SDK popover so standalone content retains host-owned controls. Expose the language count to screen readers. +- 9741f24: Re-export `searchImages` from the UI package entry point. + +### Patch Changes + +- b0280a5: Re-apply the host revert-layer `-webkit-appearance` fix when Tailwind watch rewrites CSS during `dev` and Storybook. +- f1c55f1: Sync localization from platform-localization (70fd234): update 57 keys in af, ar, cy, de, es, fr, ig, no, pt, vi, zh. +- 4eed87a: Sync localization from platform-localization (dc70b8b): update 6 keys in en. +- Updated dependencies [669db59] +- Updated dependencies [f64b654] +- Updated dependencies [9741f24] + - @youversion/platform-core@2.17.0 + - @youversion/platform-react-hooks@2.17.0 + ## 2.16.0 ### Minor Changes diff --git a/packages/ui/package.json b/packages/ui/package.json index d5b26e014..14e10a5aa 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@youversion/platform-react-ui", - "version": "2.16.0", + "version": "2.17.0", "description": "Pre-built React components for Bible applications with styling included.", "license": "Apache-2.0", "type": "module",