diff --git a/docz/docs/02-getting-started/02-examples/02-export.mdx b/docz/docs/02-getting-started/02-examples/02-export.mdx
index 7745119..dab08ca 100644
--- a/docz/docs/02-getting-started/02-examples/02-export.mdx
+++ b/docz/docs/02-getting-started/02-examples/02-export.mdx
@@ -942,13 +942,6 @@ of the React Native documentation before testing the demo.
 
 :::
 
-:::caution pass
-
-For Android testing, React Native requires Java 11. It will not work with
-current Java releases.
-
-:::
-
 :::danger pass
 
 There are a number of potential pitfalls.
@@ -964,10 +957,10 @@ any issues not mentioned in the demo page.**
 Create a new project by running the following commands in the Terminal:
 
 <CodeBlock language="bash">{`\
-npx -y react-native@0.73.6 init SheetJSPres --version="0.73.6"
+npx -y @react-native-community/cli@15 init SheetJSPres --version="0.76.5"
 cd SheetJSPres
 \n\
-npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz react-native-blob-util@0.19.8`}
+npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz react-native-blob-util@0.21.2`}
 </CodeBlock>
 
 Save the following to `App.tsx` in the project:
@@ -1060,10 +1053,10 @@ npx react-native start
 Once Metro is ready, it will display the commands:
 
 ```
-r - reload the app
-d - open developer menu
-i - run on iOS
 a - run on Android
+r - reload app
+d - open Dev Menu
+j - open DevTools
 ```
 
 Press `a` to run on Android. The app will launch in the emulator.
diff --git a/docz/docs/02-getting-started/02-examples/04-import.md b/docz/docs/02-getting-started/02-examples/04-import.md
index a419751..82b723e 100644
--- a/docz/docs/02-getting-started/02-examples/04-import.md
+++ b/docz/docs/02-getting-started/02-examples/04-import.md
@@ -966,7 +966,7 @@ uses the native `FlatList` component.
 Create a new project by running the following commands in the Terminal:
 
 <CodeBlock language="bash">{`\
-npx react-native@0.72.4 init SheetJSSL --version="0.72.4"
+npx -y @react-native-community/cli@15 init SheetJSSL --version="0.76.5"
 cd SheetJSSL
 npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
 </CodeBlock>
@@ -1042,10 +1042,10 @@ npx react-native start
 Once Metro is ready, it will display the commands:
 
 ```
-r - reload the app
-d - open developer menu
-i - run on iOS
 a - run on Android
+r - reload app
+d - open Dev Menu
+j - open DevTools
 ```
 
 Press `a` to run on Android.
@@ -1066,6 +1066,12 @@ This demo runs in iOS and requires a Macintosh computer with Xcode installed.
 
 :::
 
+The native component must be linked:
+
+```bash
+cd ios; pod install; cd ..
+```
+
 Test the app in the iOS simulator:
 
 ```bash
diff --git a/docz/docs/03-demos/01-math/21-pandas.md b/docz/docs/03-demos/01-math/21-pandas.md
index 4ef0be5..8b15814 100644
--- a/docz/docs/03-demos/01-math/21-pandas.md
+++ b/docz/docs/03-demos/01-math/21-pandas.md
@@ -614,7 +614,7 @@ On Arch Linux-based platforms including the Steam Deck, the install may fail:
 error: externally-managed-environment
 ```
 
-It is recommended to use a virtual environment for Polars.
+It is recommended to use a virtual environment.
 
 `venv` must be installed through the system package manager:
 
diff --git a/docz/docs/03-demos/17-mobile/01-reactnative.md b/docz/docs/03-demos/17-mobile/01-reactnative.md
index 3db3cde..7c3f480 100644
--- a/docz/docs/03-demos/17-mobile/01-reactnative.md
+++ b/docz/docs/03-demos/17-mobile/01-reactnative.md
@@ -237,7 +237,7 @@ This demo was tested in the following environments:
 | iOS 17.4   | iPhone 15 Pro Max   | `0.73.6` | `darwin-x64` | 2024-03-13 |
 | Android 34 | Pixel 3a            | `0.74.2` | `darwin-arm` | 2024-06-20 |
 | iOS 17.5   | iPhone SE (3rd gen) | `0.74.2` | `darwin-arm` | 2024-06-20 |
-| Android 34 | Pixel 3a            | `0.73.5` | `win10-x64`  | 2024-03-05 |
+| Android 35 | Pixel 9             | `0.76.5` | `win11-x64`  | 2024-12-22 |
 | Android 34 | Pixel 3a            | `0.73.7` | `linux-x64`  | 2024-04-29 |
 
 :::
@@ -277,9 +277,19 @@ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
 1) Create project:
 
 ```bash
-npx -y react-native@0.74.2 init SheetJSRNFetch --version="0.74.2"
+npx -y @react-native-community/cli@15 init SheetJSRNFetch --version="0.76.5"
 ```
 
+:::info pass
+
+Older versions of this demo used the `react-native` package. The `init` command
+was officially deprecated.
+
+React Native now recommends using `@react-native-community/cli`. The versioning
+scheme is fundamentally different from `react-native`.[^6]
+
+:::
+
 2) Install shared dependencies:
 
 <CodeBlock language="bash">{`\
@@ -297,7 +307,7 @@ curl -LO https://docs.sheetjs.com/reactnative/App.tsx
 
 **Android Testing**
 
-4) Install or switch to Java 17[^6]
+4) Install or switch to Java 17[^7]
 
 5) Start the Android emulator:
 
@@ -337,6 +347,25 @@ This error can be resolved by installing and switching to the requested version.
 
 :::caution pass
 
+When this demo was last tested on Windows 11, there was a Gradle error
+mentioning a "temporary workspace":
+
+```
+> java.io.UncheckedIOException: Could not move temporary workspace (C:\Users\sheetjs\Documents\SheetJSRNFetch\android\.gradle\8.10.2\dependencies-accessors\569c8b261a8a714d7731d5f568e0e5c05babae10-4756c477-c60a-4328-ba8c-e12cc53b4ed0) to immutable location (C:\Users\sheetjs\Documents\SheetJSRNFetch\android\.gradle\8.10.2\dependencies-accessors\569c8b261a8a714d7731d5f568e0e5c05babae10)
+```
+
+**This is a known bug in the version of Gradle used by React Native 0.76.5!**
+
+The Gradle version should be set to `8.11.1` in `gradle-wrapper.properties`:
+
+```text title="android/gradle/wrapper/gradle-wrapper.properties (change line)"
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
+```
+
+:::
+
+:::caution pass
+
 When this demo was last tested on Linux, the process failed to launch the emulator:
 
 <pre>
@@ -460,7 +489,7 @@ If the device asks to trust the computer, tap "Trust" and enter the passcode.
 
 14) Close any Android / iOS emulators.
 
-15) Enable developer code signing certificates[^7].
+15) Enable developer code signing certificates[^8].
 
 <details open>
   <summary><b>Enabling Code Signing</b> (click to show)</summary>
@@ -660,10 +689,10 @@ for accessing data and are subject to change in future platform versions.
 
 iOS applications typically require two special settings in `Info.plist`:
 
-- `UIFileSharingEnabled`[^8] allows users to use files written by the app. A
+- `UIFileSharingEnabled`[^9] allows users to use files written by the app. A
 special folder will appear in the "Files" app.
 
-- `LSSupportsOpeningDocumentsInPlace`[^9] allows the app to open files without
+- `LSSupportsOpeningDocumentsInPlace`[^10] allows the app to open files without
 creating a local copy.
 
 Both settings must be set to `true`:
@@ -1007,7 +1036,7 @@ This demo was tested in the following environments:
 |:-----------|:------------------|:---------|:-------------|:-----------|
 | Android 34 | Pixel 3a          | `0.73.6` | `darwin-x64` | 2024-03-31 |
 | iOS 17.4   | iPhone 15 Pro Max | `0.73.6` | `darwin-x64` | 2024-03-31 |
-| Android 34 | Pixel 3a          | `0.73.6` | `win10-x64`  | 2024-03-31 |
+| Android 35 | Pixel 9           | `0.76.5` | `win11-x64`  | 2024-03-31 |
 | Android 34 | Pixel 3a          | `0.73.6` | `linux-x64`  | 2024-03-31 |
 
 :::
@@ -1016,7 +1045,7 @@ This demo was tested in the following environments:
 
 There are many moving parts and pitfalls with React Native apps. It is strongly
 recommended to follow the official React Native tutorials for iOS and Android
-before approaching this demo.[^10] Details including Android Virtual Device
+before approaching this demo.[^11] Details including Android Virtual Device
 configuration are not covered here.
 
 :::
@@ -1028,7 +1057,7 @@ This example tries to separate the library-specific functions.
 1) Create project:
 
 ```bash
-npx react-native init SheetJSRN --version="0.73.6"
+npx -y @react-native-community/cli@15 init SheetJSRN --version="0.76.5"
 ```
 
 On macOS, if prompted to install `CocoaPods`, press `y`.
@@ -1039,7 +1068,7 @@ On macOS, if prompted to install `CocoaPods`, press `y`.
 cd SheetJSRN
 curl -LO https://docs.sheetjs.com/logo.png
 npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz
-npm i -S react-native-table-component@1.2.2 react-native-document-picker@9.1.1`}
+npm i -S react-native-table-component@1.2.2 react-native-document-picker@9.3.1`}
 </CodeBlock>
 
 3) Download [`index.js`](pathname:///mobile/index.js) and replace:
@@ -1060,18 +1089,37 @@ The app should look like the following screenshot:
 
 :::caution pass
 
-When this demo was last tested on Windows, the build failed with an error:
+In some test runs on Windows, the build failed with an error:
 
 ```
 > Failed to apply plugin 'com.android.internal.application'.
    > Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
 ```
 
-Java 17 must be installed[^11] and the `JAVA_HOME` environment variable must
+Java 17 must be installed[^12] and the `JAVA_HOME` environment variable must
 point to the Java 17 location.
 
 :::
 
+:::caution pass
+
+When this demo was last tested on Windows 11, there was a Gradle error
+mentioning a "temporary workspace":
+
+```
+> java.io.UncheckedIOException: Could not move temporary workspace (C:\Users\sheetjs\Documents\SheetJSRNFetch\android\.gradle\8.10.2\dependencies-accessors\569c8b261a8a714d7731d5f568e0e5c05babae10-4756c477-c60a-4328-ba8c-e12cc53b4ed0) to immutable location (C:\Users\sheetjs\Documents\SheetJSRNFetch\android\.gradle\8.10.2\dependencies-accessors\569c8b261a8a714d7731d5f568e0e5c05babae10)
+```
+
+**This is a known bug in the version of Gradle used by React Native 0.76.5!**
+
+The Gradle version should be set to `8.11.1` in `gradle-wrapper.properties`:
+
+```text title="android/gradle/wrapper/gradle-wrapper.properties (change line)"
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
+```
+
+:::
+
 Stop the dev server and close the React Native Metro NodeJS window.
 
 **File Integration**
@@ -1084,7 +1132,7 @@ Stop the dev server and close the React Native Metro NodeJS window.
 Install `react-native-blob-util` dependency:
 
 ```bash
-npm i -S react-native-blob-util@0.19.8
+npm i -S react-native-blob-util@0.21.2
 ```
 
 Add the highlighted lines to `index.js`:
@@ -1132,7 +1180,7 @@ const make_width = ws => {
 Install `react-native-file-access` dependency:
 
 ```bash
-npm i -S react-native-file-access@3.0.7
+npm i -S react-native-file-access@3.1.1
 ```
 
 Add the highlighted lines to `index.js`:
@@ -1187,6 +1235,21 @@ If prompted to install Expo CLI integration, choose No.
 
 :::
 
+:::info pass
+
+On Windows, `npx install-expo-modules` will throw errors related to CocoaPods:
+
+```
+Uncaught Error CocoaPodsError: Command `pod install` failed.
+└─ Cause: spawn pod ENOENT
+'pod' is not recognized as an internal or external command,
+operable program or batch file.
+```
+
+These errors can be ignored.
+
+:::
+
 Add the highlighted lines to `index.js`:
 
 ```js title="index.js"
@@ -1559,14 +1622,15 @@ Swipe left until the "Numbers" app icon appears and tap the app icon.
 
 The Numbers app will load the spreadsheet, confirming that the file is valid.
 
-[^1]: Follow the ["React Native CLI Quickstart"](https://reactnative.dev/docs/environment-setup) and select the appropriate "Development OS".
+[^1]: Follow the ["Set Up Your Environment" guide](https://reactnative.dev/docs/set-up-your-environment) and select the appropriate "Development OS".
 [^2]: See ["Array of Arrays" in the API reference](/docs/api/utilities/array#array-of-arrays)
 [^3]: See ["Array Output" in "Utility Functions"](/docs/api/utilities/array#array-output)
 [^4]: See ["Array of Arrays Input" in "Utility Functions"](/docs/api/utilities/array#array-of-arrays-input)
 [^5]: React-Native commit [`5b597b5`](https://github.com/facebook/react-native/commit/5b597b5ff94953accc635ed3090186baeecb3873) added the final piece required for `fetch` support. It is available in official releases starting from `0.72.0`.
-[^6]: When the demo was last tested, the Temurin distribution of Java 17 was installed through the macOS Brew package manager by running `brew install temurin17`. [Direct downloads are available at `adoptium.net`](https://adoptium.net/temurin/releases/?version=17)
-[^7]: See ["Running On Device"](https://reactnative.dev/docs/running-on-device) in the React Native documentation
-[^8]: See [`UIFileSharingEnabled`](https://developer.apple.com/documentation/bundleresources/information_property_list/uifilesharingenabled) in the Apple Developer Documentation.
-[^9]: See [`LSSupportsOpeningDocumentsInPlace`](https://developer.apple.com/documentation/bundleresources/information_property_list/lssupportsopeningdocumentsinplace) in the Apple Developer Documentation.
-[^10]: Follow the ["React Native CLI Quickstart"](https://reactnative.dev/docs/environment-setup) for Android (and iOS, if applicable)
-[^11]: See the [JDK Archive](https://jdk.java.net/archive/) for Java 17 JDK download links.
\ No newline at end of file
+[^6]: See [the compatibility table](https://github.com/react-native-community/cli) in the CLI project repository to determine which version of `@react-native-community/cli` is required for a given `react-native` version.
+[^7]: When the demo was last tested, the Temurin distribution of Java 17 was installed through the macOS Brew package manager by running `brew install temurin17`. [Direct downloads are available at `adoptium.net`](https://adoptium.net/temurin/releases/?version=17)
+[^8]: See ["Running On Device"](https://reactnative.dev/docs/running-on-device) in the React Native documentation
+[^9]: See [`UIFileSharingEnabled`](https://developer.apple.com/documentation/bundleresources/information_property_list/uifilesharingenabled) in the Apple Developer Documentation.
+[^10]: See [`LSSupportsOpeningDocumentsInPlace`](https://developer.apple.com/documentation/bundleresources/information_property_list/lssupportsopeningdocumentsinplace) in the Apple Developer Documentation.
+[^11]: Follow the ["React Native CLI Quickstart"](https://reactnative.dev/docs/environment-setup) for Android (and iOS, if applicable)
+[^12]: See the [JDK Archive](https://jdk.java.net/archive/) for Java 17 JDK download links.
\ No newline at end of file
diff --git a/docz/docs/03-demos/19-desktop/06-reactnative.md b/docz/docs/03-demos/19-desktop/06-reactnative.md
index b146544..21067c1 100644
--- a/docz/docs/03-demos/19-desktop/06-reactnative.md
+++ b/docz/docs/03-demos/19-desktop/06-reactnative.md
@@ -46,10 +46,10 @@ This demo was tested in the following environments:
 
 | OS and Version | Architecture | RN Platform | Date       |
 |:---------------|:-------------|:------------|:-----------|
-| Windows 11     | `win11-x64`  | `v0.74.6`   | 2024-05-28 |
+| Windows 11     | `win11-x64`  | `v0.75.11`  | 2024-12-22 |
 | Windows 11     | `win11-arm`  | `v0.74.5`   | 2024-05-25 |
 | MacOS 14.7     | `darwin-x64` | `v0.75.13`  | 2024-10-26 |
-| MacOS 14.5     | `darwin-arm` | `v0.73.30`  | 2024-05-28 |
+| MacOS 14.5     | `darwin-arm` | `v0.75.16`  | 2024-12-22 |
 
 :::
 
@@ -419,17 +419,34 @@ iex (New-Object System.Net.WebClient).DownloadString('https://aka.ms/rnw-vs2022-
 If any step fails to install, open the dependencies page and expand "Manual
 setup instructions" to find instructions for manual installation.
 
+:::note pass
+
+Even though React Native for Windows recommends enabling "Developer Mode", it is
+not a requirement for this demo.
+
+:::
+
 </details>
 
 ### Project Setup
 
-1) Create a new project using React Native `0.74.1`:
+1) Create a new project using React Native `0.75.4`:
 
 ```bash
-npx react-native init SheetJSWin --template react-native@0.74.1
+npx -y @react-native-community/cli@14 init SheetJSWin --version="0.75.4"
 cd SheetJSWin
 ```
 
+:::info pass
+
+Older versions of this demo used the `react-native` package. The `init` command
+was officially deprecated.
+
+React Native now recommends using `@react-native-community/cli`. The versioning
+scheme is fundamentally different from `react-native`.[^5]
+
+:::
+
 2) Create the Windows part of the application:
 
 <Tabs groupId="rnwlang">
@@ -646,33 +663,31 @@ Native for macOS required React Native `0.71`.
 
 **The official documentation is out of date.**
 
-There exist official `react-native-macos` releases compatible with RN `0.73`
+There exist official `react-native-macos` releases compatible with RN `0.75`
 
 :::
 
-0) Follow the "Setting up the development environment"[^5] guide in the React
+0) Follow the "Setting up the development environment"[^6] guide in the React
    Native documentation for "React Native CLI Quickstart" + "macOS" + "iOS".
 
 ### Project Setup
 
-1) Create a new React Native project using React Native `0.73`:
+1) Create a new React Native project using React Native `0.75.4`:
 
 ```bash
-npx -y @react-native-community/cli init SheetJSmacOS --version 0.75
+npx -y @react-native-community/cli init SheetJSmacOS --version 0.75.4
 cd SheetJSmacOS
 ```
 
 If prompted to install CocoaPods, type `Y`.
 
-:::note pass
+:::info pass
 
-For older versions of React Native, the `react-native` package included the CLI:
+Older versions of this demo used the `react-native` package. The `init` command
+was officially deprecated.
 
-```bash
-npx -y react-native init SheetJSmacOS --template react-native@^0.73.0
-```
-
-This approach is deprecated as of React Native `0.75`.
+React Native now recommends using `@react-native-community/cli`. The versioning
+scheme is fundamentally different from `react-native`.[^5]
 
 :::
 
@@ -721,9 +736,9 @@ npx react-native run-macos
 
 Close the running app from the dock and close the Metro terminal window.
 
-:::danger pass
+:::caution pass
 
-When the demo was last tested, the app failed with a warning
+In some test runs, the app failed with a warning
 
 > No bundle URL present.
 
@@ -793,7 +808,7 @@ A) Copy the highlighted line and paste under `/* Begin PBXBuildFile section */`:
 /* Begin PBXBuildFile section */
 // highlight-next-line
     4717DC6A28CC499A00A9BE56 /* RCTDocumentPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 4717DC6928CC499A00A9BE56 /* RCTDocumentPicker.m */; };
-    3EBD77615057B69A2488153F /* libPods-SheetJSmacOS-macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C28E160785274A8AF9074969 /* libPods-SheetJSmacOS-macOS.a */; };
+    2C5F4006FF53E87968033016 /* libPods-SheetJSmacOS-macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1DD40D19AD16D57CAA4CB6 /* libPods-SheetJSmacOS-macOS.a */; };
 ```
 
 :::
@@ -988,6 +1003,39 @@ If there are no instances, the app path can be found in the `DerivedData` folder
 find ~/Library/Developer/Xcode/DerivedData -name SheetJSmacOS.app | grep Release
 ```
 
+:::caution pass
+
+During the last test, `xcodebuild` failed. Scrolling through the log reveals:
+
+```
+                Welcome to Metro v0.80.12
+              Fast - Scalable - Integrated
+
+
+node:events:497
+      throw er; // Unhandled 'error' event
+      ^
+
+Error: EMFILE: too many open files, watch
+    at FSWatcher._handle.onchange (node:internal/fs/watchers:207:21)
+```
+
+The file descriptor limits must be increased[^7].
+
+```bash
+sudo sysctl -w kern.maxfiles=10485760
+sudo sysctl -w kern.maxfilesperproc=1048576
+```
+
+After making this change, forcefully reset `watchman`:
+
+```bash
+watchman shutdown-server
+watchman watch-del-all
+```
+
+:::
+
 15) Run the release app:
 
 ```bash
@@ -1003,4 +1051,6 @@ The app will refresh and display the data from the file.
 [^2]: See ["Array of Arrays" in the API reference](/docs/api/utilities/array#array-of-arrays)
 [^3]: See ["Array Output" in "Utility Functions"](/docs/api/utilities/array#array-output)
 [^4]: See ["Turbo Native Modules"](https://reactnative.dev/docs/the-new-architecture/pillars-turbomodules) in the React Native documentation.
-[^5]: See ["Setting up the development environment"](https://reactnative.dev/docs/environment-setup) in the React Native documentation. Select the "React Native CLI Quickstart" tab and choose the Development OS "macOS" and the Target OS "iOS".
\ No newline at end of file
+[^5]: See [the compatibility table](https://github.com/react-native-community/cli) in the CLI project repository to determine which version of `@react-native-community/cli` is required for a given `react-native` version.
+[^6]: See ["Setting up the development environment"](https://reactnative.dev/docs/environment-setup) in the React Native documentation. Select the "React Native CLI Quickstart" tab and choose the Development OS "macOS" and the Target OS "iOS".
+[^7]: See ["macOS File Descriptor Limits"](https://facebook.github.io/watchman/docs/install.html#mac-os-file-descriptor-limits) in the `watchman` docs for more details
\ No newline at end of file
diff --git a/docz/docs/03-demos/32-extensions/11-matlab.md b/docz/docs/03-demos/32-extensions/11-matlab.md
index 751c96b..7e09c4c 100644
--- a/docz/docs/03-demos/32-extensions/11-matlab.md
+++ b/docz/docs/03-demos/32-extensions/11-matlab.md
@@ -201,7 +201,7 @@ flowchart LR
 pwd
 ```
 
-This folder is typically `MATLAB` with the `Documents` folder for the account.
+This folder is typically `MATLAB` within the `Documents` folder for the account.
 
 1) Open a new macOS Terminal or Windows PowerShell window.
 
diff --git a/docz/static/reactnative/rnw.png b/docz/static/reactnative/rnw.png
index fc834fb..55374ac 100644
Binary files a/docz/static/reactnative/rnw.png and b/docz/static/reactnative/rnw.png differ
diff --git a/package.json b/package.json
index 9a7ed84..f0ea631 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,8 @@
 	"alex": {
 		"allow": [
 			"host-hostess",
-			"hook", "hooks",
+			"hook",
+			"hooks",
 			"chinese",
 			"special",
 			"simple",