11111228
-```
-
-The same data in the human readable representation:
-
-```text
-(10)887488164557(21)123456789012(11)111228
-```
-
-The same data parsed into its application identifiers by the Scandit parser:
-
-```json
-[
- {
- "name" : "01",
- "parsed" : {
- "indicator" : 1,
- "company_prefix" : "0887488",
- "item_reference" : "16455"
- },
- "rawString" : "10887488164557"
- },
- {
- "name" : "21",
- "parsed" : "123456789012",
- "rawString" : "123456789012"
- },
- {
- "name" : "11",
- "parsed" : {
- "year" : 2011,
- "month" : 12,
- "day" : 28
- },
- "rawString" : "111228"
- }
-]
-```
-
-## Symbology Specific Notes
-
-* **Code128** uses a leading FNC1 character (ASCII 21) to signal GS1 data. The FNC1 character is encoded but will not be returned in the barcode result.
-* **GS1 DataBar** always contains GS1 data.
-* **DataMatrix** and **QR Code** use an internal symbology specific FNC1 symbol to signal GS1 data carrier mode. The internal symbol is not returned as part of the result. The common mistake of adding a leading group separator character in raw byte mode does not turn the code into a GS1 data carrier.
-
-There are many incorrectly encoded GS1 codes in the wild. The following image depicts two common error cases: The first incorrect code uses a leading group separator instead of the DataMatrix specific encoding scheme. The second error case encodes the human readable GS1 data representation in a normal DataMatrix code.
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_batch-scanning.mdx b/versioned_docs/version-8.1.1/partials/_batch-scanning.mdx
deleted file mode 100644
index 221a2110..00000000
--- a/versioned_docs/version-8.1.1/partials/_batch-scanning.mdx
+++ /dev/null
@@ -1,102 +0,0 @@
-Scandit's unparalleled batch scanning capabilities, comprised of the MatrixScan suite of products, are available as a low-level API as well as use-case optimized workflows with built-in camera controls, dialed-in performance and extensively tested UX.
-
-## MatrixScan
-
-Scandit's **MatrixScan** technology enables scanning and tracking of multiple barcodes at once, often enhanced with **augmented-reality (AR) overlays** to provide real-time feedback, guidance, and task support. Depending on your use case, you can choose between **prebuilt workflows** for faster integration or **low-level APIs** for full customization.
-
-The sections below provide an overview of the features and capabilities of each MatrixScan variant.
-
-
-
-| Feature / Capability | MatrixScan Find | MatrixScan Count | MatrixScan Pick | MatrixScan Batch | MatrixScan AR |
-|---------------------------|-----------------|------------------|-----------------|------------------|---------------|
-| **AR overlays** | ✅ Yes (highlights) | ✅ Yes (persistent) | ✅ Yes (task picking) | ❌ No | ✅ Yes (configurable) |
-| **Duplicate barcode handling** | ❌ | ✅ | ❌ | ✅ | ✅ |
-| **Prebuilt workflow** | ✅ | ✅ | ✅ | ❌ | ❌ |
-| **Customization level** | Limited | Limited | Limited | Moderate | Full |
-| **Ease of integration** | High | High | High | Medium | Low → High (depending on workflow) |
-| **Typical use cases** | Locate items quickly | Stocktaking, receiving | Order picking | Fast batch scanning | Custom AR-enabled workflows |
-
-### Low-level API
-
-#### MatrixScan Batch
-
-MatrixScan Batch, implemented via the `BarcodeBatch` API, enables you to build applications and workflows for capturing and interacting with multiple barcodes simultaneously.
-
-- **Function:** Multi-barcode scanning **without AR overlays**.
-- **Intended Use:** Lightweight, high-performance batch scanning.
-
-
-
-**Available For:** [iOS](/sdks/ios/matrixscan/intro.md), [Android](/sdks/android/matrixscan/intro.md), [React Native](/sdks/react-native/matrixscan/intro.md), [Flutter](/sdks/flutter/matrixscan/intro.md), [Web](/sdks/web/matrixscan/intro.md), [Cordova](/sdks/cordova/matrixscan/intro.md), [Capacitor](/sdks/capacitor/matrixscan/intro.md), .NET ([iOS](/sdks/net/ios/matrixscan/intro.md), [Android](/sdks/net/android/matrixscan/intro.md))
-
-#### MatrixScan AR
-
-MatrixScan AR, implemented via the `BarcodeAR` API, is the most advanced and flexible option for building custom augmented reality workflows that leverage multi-barcode scanning.
-
-- **Function:** AR-enabled scanning of multiple barcodes simultaneously.
- - Superset of MatrixScan Batch
- - Supports **custom AR workflows**
- - Provides **prebuilt AR overlays** for quick implementation
-- **Intended Use:** Use this as the **go-to AR API** for new projects requiring custom, advanced AR capabilities.
-
-
-
-**Available For:** [iOS](/sdks/ios/matrixscan-ar/intro.md), [Android](/sdks/android/matrixscan-ar/intro.md), [React Native](/sdks/react-native/matrixscan-ar/intro.md), [Flutter](/sdks/flutter/matrixscan-ar/intro.md), [Web](/sdks/web/matrixscan-ar/intro.md), .NET ([iOS](/sdks/net/ios/matrixscan-ar/intro.md), [Android](/sdks/net/android/matrixscan-ar/intro.md))
-
-### Purpose-built Workflows
-
-Scandit provides ready-to-use implementations of MatrixScan for the following workflows and use-cases:
-
-#### MatrixScan Count
-
-MatrixScan Count, implemented via the `BarcodeCount` API, is designed for applications that require accurate item counting and tracking.
-
-- **Function:** Count and persistently track items.
-- **Key Differentiators:**
- - Provides **persistent AR overlays** that remain visible outside scan range.
- - Can **accurately count duplicates** (non-unique barcodes).
-- **Special Capabilities:**
- - **Barcode Clustering**: Group barcodes for bulk actions.
- - **Tote Mapping**: Map scanned items to specific containers.
-- **Use cases:**
- - Stocktaking and cycle counting
- - Receiving goods with duplicate barcodes
-
-
-
-**Available For:** [iOS](/sdks/ios/matrixscan-count/intro.md), [Android](/sdks/android/matrixscan-count/intro.md), [React Native](/sdks/react-native/matrixscan-count/intro.md), [Flutter](/sdks/flutter/matrixscan-count/intro.md), [Capacitor](/sdks/capacitor/matrixscan-count/intro.md), .NET ([iOS](/sdks/net/ios/matrixscan-count/intro.md), [Android](/sdks/net/android/matrixscan-count/intro.md))
-
-#### MatrixScan Pick
-
-MatrixScan Pick, implemented via the `BarcodePick` API, is designed for applications that require efficient item picking and task management.
-
-- **Function:** AR-based task picking workflow.
-- **Special Features:** Predefined item states
- - `toPick → Picked`
- - `Ignore`
- - Tap interaction logic prioritizes items marked `toPick`.
- - **Freeze mode**: Hold the camera still to comfortably select items.
-- **Use cases:**
- - Order picking in warehouses
- - Task assignment and confirmation workflows
-
-
-
-**Available For:** [iOS](/sdks/ios/matrixscan-pick/intro.md), [Android](/sdks/android/matrixscan-pick/intro.md), [React Native](/sdks/react-native/matrixscan-pick/intro.md), [Flutter](/sdks/flutter/matrixscan-pick/intro.md), [Cordova](/sdks/cordova/matrixscan-pick/intro.md), [Capacitor](/sdks/capacitor/matrixscan-pick/intro.md), .NET ([iOS](/sdks/net/ios/matrixscan-pick/intro.md), [Android](/sdks/net/android/matrixscan-pick/intro.md))
-
-#### MatrixScan Find
-
-MatrixScan Find, implemented via the `BarcodeFind` API, is designed for applications that require quick item location and retrieval.
-
-- **Function:** Locate specific items visually with AR.
-- **Workflow:** Highlights target items within the camera view.
-- **Use cases:**
- - Locating products in retail stockrooms
- - Finding a parcel in a delivery vehicle
- - Warehouse inventory search
-
-
-
-**Available For:** [iOS](/sdks/ios/matrixscan-find/intro.md), [Android](/sdks/android/matrixscan-find/intro.md), [React Native](/sdks/react-native/matrixscan-find/intro.md), [Flutter](/sdks/flutter/matrixscan-find/intro.md), [Web](/sdks/web/matrixscan-find/intro.md), [Cordova](/sdks/cordova/matrixscan-find/intro.md), [Capacitor](/sdks/capacitor/matrixscan-find/intro.md), .NET ([iOS](/sdks/net/ios/matrixscan-find/intro.md), [Android](/sdks/net/android/matrixscan-find/intro.md))
-
diff --git a/versioned_docs/version-8.1.1/partials/_core-concepts.mdx b/versioned_docs/version-8.1.1/partials/_core-concepts.mdx
deleted file mode 100644
index 617d17e2..00000000
--- a/versioned_docs/version-8.1.1/partials/_core-concepts.mdx
+++ /dev/null
@@ -1,69 +0,0 @@
-This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK.
-
-All of these concepts are implemented as classes or protocols in the `ScanditCaptureCore` framework and are used by the frameworks that build on it to implement the data capture capabilities such as barcode reading.
-
-## Data Capture Context
-
-The data capture context is the central object that orchestrates the data capture and recognition tasks.
-
-It is the object that links all of the different components together. Its main responsibilities are managing and verifying the license key, scheduling when data capture modes process frames, and defining the frame source to be used for recognition. The context itself acts as a scheduler, but does not provide any interfaces for configuring data capture capabilities.
-
-Configuration and result handling is handled by the data capture modes directly.
-
-Relevant classes: `SDCDataCaptureContext`, `SDCDataCaptureMode`
-
-## Data Capture View
-
-Typically a `SDCDataCaptureView` is used to visualize the ongoing data capture process on screen together with one or more overlays. However it’s also possible to use the data capture context without a view to perform off-screen processing.
-
-Relevant classes: `SDCDataCaptureView`, `SDCDataCaptureOverlay`
-
-## Frame Source
-
-The data capture context performs recognition on images (frames).
-
-These images are provided to the context through classes that conform to the frame source protocol. Most applications will use images coming from one of the built-in cameras of the device as implemented by the camera class.
-
-Relevant classes: `SDCFrameSource`, `SDCFrameData`, `SDCCamera`
-
-## Data Capture Mode
-
-Recognition capabilities are added to the data capture context through registering one or more data capture modes.
-
-A capture mode is responsible for one particular type of data capture, e.g. capturing barcodes, or tracking barcodes. The mode manages the settings and allows to configure what exactly gets captured, for example in the case of barcode capture, it allows to configure the symbologies of the barcodes to be captured.
-
-Each of the data capture modes follows the same basic structure and is made up of the same building blocks described below.
-
-Relevant classes: `SDCDataCaptureMode`, `SDCBarcodeCapture`, `SDCBarcodeBatch`
-
-## Capture Mode Settings
-
-Capture modes are configured through settings.
-
-Settings are specific to each data capture mode and allow to configure the data that is captured. For example, for barcode capture and barcode tracking, the settings allow to configure which symbologies are enabled. Settings are applied to the capture mode, which is when they take effect.
-
-Relevant classes: `SDCBarcodeCaptureSettings`, `SDCBarcodeBatchSettings`
-
-## Capture Mode Listeners
-
-Data capture events, such as when a new barcode has been recognized, are propagated to the user of the API through listeners added to the capture mode.
-
-Capture modes allow an arbitrary number of listeners to be registered.
-
-Relevant classes: `SDCBarcodeCaptureListener`, `SDCBarcodeBatchListener`
-
-## Capture Mode Sessions
-
-The captured data, such as the list of captured barcodes is available to the event callbacks through a session object.
-
-The session object is only safe to be accessed from the event callbacks themselves and should not be passed to other threads.
-
-Relevant classes: `SDCBarcodeCaptureSession`, `SDCBarcodeBatchSession`
-
-## Overlays
-
-Each of the capture modes has one or more overlays that visualize the ongoing data capturing process.
-
-These overlays are added to the data capture view.
-
-Relevant classes: `SDCDataCaptureOverlay`, `SDCBarcodeCaptureOverlay`, `SDCBarcodeBatchBasicOverlay`
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_extension-codes.mdx b/versioned_docs/version-8.1.1/partials/_extension-codes.mdx
deleted file mode 100644
index 56c1e4d2..00000000
--- a/versioned_docs/version-8.1.1/partials/_extension-codes.mdx
+++ /dev/null
@@ -1,53 +0,0 @@
-The Scandit Data Capture SDK supports add-on codes (also known as Extension Codes) for EAN-8, EAN-13, UPC-A and UPC-E codes. These codes encode additional product data like an issue number, date or price. There is a two and a five digit version. This guide will show you how to enable and read out add-on codes.
-
-## Enabling Add-on Codes
-
-Add-ons are handled through symbology extensions. To scan add-on codes:
-
-Enable the main symbologies that should be scanned (EAN-8, EAN-13, UPC-A and UPC-E).
-
-For each main symbology enable the wanted add-on symbology extension(s). The two add-on extensions are:
-
-* `two_digit_add_on`
-* `five_digit_add_on`
-
-The following lines of code show you how this is done to enable the two digit add-on for EAN-13, UPC-A and the five digit add-on for EAN-8 while UPC-E is not expecting any add-ons:
-
-```swift
-let settings = BarcodeCaptureSettings()
-
-let ean13upcaSettings = settings.settings(for: .ean13UPCA)
-ean13upcaSettings.isEnabled = true
-ean13upcaSettings.set(extension: "two_digit_add_on", enabled: true)
-
-let ean8Settings = settings.settings(for: .ean8)
-ean8Settings.isEnabled = true
-ean8Settings.set(extension: "five_digit_add_on", enabled: true)
-
-settings.set(symbology: .upce, enabled: true)
-```
-
-:::note
-Enabling add-on codes will slow down the recognition of non-add-on codes slightly because the Scandit Data Capture SDK needs to make absolutely sure that no add-on code was missed. If you are not expecting add-on codes for a certain symbology then don’t enable them.
-:::
-
-## Reading Add-on Codes
-
-When add-on codes are enabled the Scandit Data Capture SDK automatically couples the add-ons to the main code and returns the add-on’s data through `SDCBarcode.addOnData`. There are two potential cases when a barcode of a symbology with enabled add-on extension is returned, when the barcode:
-
-* Has an add-on and is returned with add-on data
-* Does not have an add-on and is returned without add-on data
-
-Inside `SDCBarcodeCaptureListener.barcodeCapture:didScanInSession:frameData:` the data can be retrieved from the recognized barcode as follows:
-
-```swift
-let barcode = session.newlyRecognizedBarcode[0]
-
-let data = barcode.data
-let addOnData = barcode.addOnData
-if let addOnData = addOnData {
- // Do something with the data & addOnData.
-} else {
- // Do something with just the data.
-}
-```
diff --git a/versioned_docs/version-8.1.1/partials/_features-by-framework.mdx b/versioned_docs/version-8.1.1/partials/_features-by-framework.mdx
deleted file mode 100644
index 4e328d25..00000000
--- a/versioned_docs/version-8.1.1/partials/_features-by-framework.mdx
+++ /dev/null
@@ -1,213 +0,0 @@
-## Core
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-
-### UI
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|----------------------------------|------|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Scaled/Cropped View | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Draw On Top Of View | 6.0 | 6.0 | 6.3 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Move Logo | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Torch On/Off Control | 6.0 | 6.0 | 6.8 | 6.8 | 6.8 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Camera Switch Control | 6.10 | 6.10 | n/a | n/a | n/a | 6.13 | n/a | n/a | n/a | n/a |
-| Icon Customization of Controls | 6.2 | 6.2 | 6.8 | 6.8 | 6.8 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Zoom Switch Control | 6.10 | 6.10 | 6.10 | 6.10 | 6.10 | 6.13 | 6.10 | 6.13 | 6.16 | 6.16 |
-
-### Viewfinders
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Rectangular | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Laserline | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-
-### Camera
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| HD & FullHD | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| 4K | 6.0 | 6.1 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Camera API 2 | n/a | 6.1 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | n/a | n/a | 6.16 |
-| Focus & Exposure On Point Of Interest | 6.1 | 6.1 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | n/a | 6.16 | 6.16 |
-| Zoom | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Camera Frame Access | 6.0 | 6.0 | n/a | 6.11 | 6.14 | 6.17 | n/a | 6.15 | 6.16 | 6.16 |
-| Fixed Focus | 6.0 | 6.1 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | n/a | 6.16 | 6.16 |
-| USB Camera | n/a | n/a | n/a | n/a | 6.13 | n/a | n/a | 6.13 | n/a | n/a |
-| Image (Non-Camera) Processing | 6.3 | 6.3 | n/a | 6.14| 6.15| 6.21 | n/a | 6.20 | n/a | n/a |
-
-### Camera Interaction
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Tap To Focus | 6.6 | 6.6 | 6.7 | 6.7 | 6.7 | 6.8 | 6.8 | n/a | 6.16 | 6.16 |
-| Swipe To Zoom | 6.6 | 6.6 | 6.7 | 6.7 | 6.7 | 6.8 | 6.8 | n/a | 6.16 | 6.16 |
-
-## Barcode Capture
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|--------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| 6.0 | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-
-### Scanning
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Extension Codes | 6.5 | 6.5 | 6.5 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Composite Codes | 6.6 | 6.6 | 6.6 | 6.6 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-
-
-### Location Selection / Area Restriction
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Radius | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Rectangular | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-
-### UI
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Overlay (Barcode Highlights) | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-
-
-### Feedback
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Beep on Scan | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-| Vibrate on Scan | 6.0 | 6.0 | 6.1 | 6.5 | 6.7 | 6.8 | 6.8 | 6.13 | 6.16 | 6.16 |
-
-
-### Workflow
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Code Rejection (Sample) | 6.1 | 6.1 | 6.6 | 6.5 | n/a | n/a | n/a | 6.16 | 6.16 | 6.16 |
-
-## SparkScan
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|--------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.15 | 6.15 | 6.23 | 6.16 | 6.20 | 6.22 | n/a | 6.21 | 6.22 | 6.22 |
-
-## MatrixScan
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|--------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.0 | 6.0 | 6.2 | 6.5 | 6.7 | 6.8 | n/a | 6.19 | 6.16 | 6.16 | 6.16 |
-
-## MatrixScan AR
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|----------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 7.1 | 7.1 | n/a | 7.1 | 7.1 | n/a | n/a | 7.1 | 7.2 | 7.2 |
-
-## MatrixScan Count
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|--------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.14 | 6.14 | 6.24 | 6.17 | 6.17 | 6.18 | n/a | n/a | 6.19 | 6.19 |
-
-### Scanning
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|----------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Clustering | 7.1 | 7.0 | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
-| Spatial Grid (Tote Mapping) | 7.1 | 7.1 | 7.1 | 7.1 | 7.1 | 7.1 | n/a | n/a | 7.1 | 7.1 |
-
-## MatrixScan Find
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|--------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.18 | 6.18 | 6.24 | 6.22 | 6.22 | 6.22 | n/a | 6.28 | 6.22 | 6.21 |
-
-### Scanning
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|----------------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| 1D Codes | 6.0 | 6.0 | 6.2 | 6.5 | 6.7 | 6.8 | n/a | n/a | 6.16 | 6.16 |
-| QR & DataMatrix | 6.0 | 6.0 | 6.2 | 6.5 | 6.7 | 6.8 | n/a | n/a | 6.16 | 6.16 |
-| Extension Codes | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
-| Composite Codes | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
-
-### UI
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|----------------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Barcode Batch Basic Overlay (Barcode Highlights) | 6.0 | 6.0 | 6.2 | 6.5 | 6.7 | 6.8 | n/a | 6.19 | 6.16 | 6.16 |
-| Overlay (Animated Views) | 6.0 | 6.0 | 6.2 | 6.5 | 6.7 | 6.8 | n/a | 6.19 | 6.16 | 6.16 |
-
-### Feedback
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|----------------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Manual Beep on Scan | 6.0 | 6.0 | 6.3 | 6.5 | 6.7 | 6.8 | n/a | n/a | 6.16 | 6.16 |
-| Manual Vibrate on Scan | 6.0 | 6.0 | 6.3 | 6.5 | 6.7 | 6.8 | n/a | n/a | 6.16 | 6.16 |
-
-## MatrixScan Pick
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|----------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.19 | 6.19 | 6.22 | 6.19 | 6.22 | 6.22 | n/a | n/a | 6.26 | 6.24 |
-
-## Barcode Selection
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.9 | 6.9 | 6.10 | 6.10 | 6.10 | 6.12 | n/a | n/a | 6.16 | 6.16 | 6.16 |
-
-### Scanning
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| 1D Codes | 6.9 | 6.9 | 6.10 | 6.10 | 6.10 | 6.12 | n/a | n/a | 6.16 | 6.16 |
-| QR & DataMatrix | 6.9 | 6.9 | 6.10 | 6.10 | 6.10 | 6.12 | n/a | n/a | 6.16 | 6.16 |
-| Extension Codes | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
-| Composite Codes | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
-
-## ID Capture
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-----------------------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.5 | 6.5 | 6.6 | 6.8 | 6.11 | 6.14 | n/a | 6.13 | 6.16 | 6.16 | 6.16 |
-
-### Scanning
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-----------------------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Scanning human-readable texts (like VIZ) | 6.5 | 6.5 | 6.6 | 6.8 | 6.11 | 6.14 | n/a | 6.13 | 6.16 | 6.16 |
-| Scanning & parsing MRZs | 6.5 | 6.5 | 6.6 | 6.8 | 6.11 | 6.14 | n/a | 6.13 | 6.16 | 6.16 |
-| Scanning & parsing PDF417 codes | 6.5 | 6.5 | 6.6 | 6.8 | 6.11 | 6.14 | n/a | 6.13 | 6.16 | 6.16 |
-
-## Label Capture
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-----------------|---------------------------------------------|-----|---------|---------|---------------|---------|-----------|----------|------|--------------|
-| | 6.0 | 6.0 | n/a | 6.5 | 7.2 | 8.0 | n/a | 7.2 | n/a | n/a | 8.1 |
-
-### UI
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Basic Overlay (Form Highlight) | 6.0 | 6.0 | n/a | 6.5 | n/a | n/a | n/a | n/a | n/a | 8.1 |
-
-### Feedback
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-------------------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| Manual Beep on Scan | 6.0 | 6.0 | n/a | 6.5 | n/a | n/a | n/a | n/a | n/a | 8.1 |
-| Manual Vibrate on Scan | 6.0 | 6.0 | n/a | 6.5 | n/a | n/a | n/a | n/a | n/a | 8.1 |
-
-## Parser
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|--------------------------------------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.1 | 6.1 | 6.3 | 6.5 | 6.10 | 6.10 | n/a | 6.25 | 6.22 | 6.21 |
-
-## Barcode Generator
-
-| Feature | iOS | Android | Cordova | React Native | Flutter | Capacitor | Titanium | Web | .NET for iOS | .NET for Android |
-|-----------|-----|---------|---------|--------------|---------|-----------|----------|------|--------------|------------------|
-| | 6.21 | 6.21 | 7.0 | 6.24 | 7.2 | 7.0 | n/a | n/a | n/a | n/a |
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_id-internal-deps.mdx b/versioned_docs/version-8.1.1/partials/_id-internal-deps.mdx
deleted file mode 100644
index d0085360..00000000
--- a/versioned_docs/version-8.1.1/partials/_id-internal-deps.mdx
+++ /dev/null
@@ -1,15 +0,0 @@
-Some of the Scandit Data Capture SDK modules depend on others to work:
-
-| Module | Dependencies |
-| ----------- | ----------- |
-| *ScanditCaptureCore* | No dependencies |
-| *ScanditBarcodeCapture* | *ScanditCaptureCore* |
-| *ScanditParser* | No dependencies |
-| *ScanditIdCapture* | *ScanditCaptureCore* *ScanditIdCaptureBackend (VIZ documents)* *ScanditIdCaptureAAMVABarcodeVerification* *ScanditIdEuropeDrivingLicense* *ScanditIdVoidedDetection* |
-| *ScanditIdCaptureBackend* | No dependencies |
-
-:::tip
-Not all dependencies may be needed if you are not using a specific feature (e.g. Voided ID detection). The table above lists all possible dependencies.
-
-Note that your license may support only a subset of Barcode and/or ID Capture features. If you need to use additional features, [contact us](mailto:support@scandit.com).
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_id-scanning.mdx b/versioned_docs/version-8.1.1/partials/_id-scanning.mdx
deleted file mode 100644
index 36304aed..00000000
--- a/versioned_docs/version-8.1.1/partials/_id-scanning.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
-Scandit Smart Data Capture is a powerful suite of solutions designed to enable mobile devices to capture and process a wide range of barcodes and other types of data, including ID scanning and validation.
-
-Scandit can capture and extract data from over 2,000 identity documents worldwide. The ID Capture API can be used to read Machine Readable Zones (MRZ) on passports, visa stickers and ID cards, and PDF417 barcodes on the back of driver’s licenses and ID cards, as well as visual inspection zones on the front of various ID documents.
-
-To experience Scandit scanning and verification capabilities firsthand, check out the ID Scanning mode on the Scandit Barcode Scanner Demo App ([iOS](https://apps.apple.com/us/app/scandit-barcode-scanner-demo/id453880584?ls=1), [Android](https://play.google.com/store/apps/details?id=com.scandit.demoapp&pli=1)), our [ID Bolt demo](https://id-travel.demos.scandit.com/) or get started using your desired framework below.
-
-## ID Scanning and Validation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-## ID Bolt
-
-ID Bolt is a cloud-based identity scanning solution that can be quickly and easily integrated into any existing web-based application. ID Bolt can be used to scan and extract data from a wide range of identity documents, including passports, visas, driver’s licenses, and ID cards.
-
-
-
-
-
-
diff --git a/versioned_docs/version-8.1.1/partials/_label-scanning.mdx b/versioned_docs/version-8.1.1/partials/_label-scanning.mdx
deleted file mode 100644
index 2cdaf2bd..00000000
--- a/versioned_docs/version-8.1.1/partials/_label-scanning.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
-Smart Label Capture enables the simultaneous scanning of multiple barcodes and printed text on labels, streamlining data entry and reducing errors. By combining barcode recognition with OCR and built-in intelligence, it can understand the context of the data and extract only the relevant fields for your application.
-
-Smart Label Capture, implemented via the `LabelCapture` API, is designed for applications that require efficient data extraction from labels.
-
-
-
- Capturing multiple barcodes and text data from labels in a single scan
-
-
-**Available For:** [Android](/sdks/android/label-capture/intro.md), [iOS](/sdks/ios/label-capture/intro.md), [React Native](/sdks/react-native/label-capture/intro.md), [Flutter](/sdks/flutter/label-capture/intro.md), [Capacitor](/sdks/capacitor/label-capture/intro.md), and [Web](/sdks/web/label-capture/intro.md)
-
diff --git a/versioned_docs/version-8.1.1/partials/_migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/partials/_migrate-5-to-6.mdx
deleted file mode 100644
index 277738ac..00000000
--- a/versioned_docs/version-8.1.1/partials/_migrate-5-to-6.mdx
+++ /dev/null
@@ -1,1145 +0,0 @@
-This guide will help you migrate from Barcode Scanner 5.x to version 6.x of the Scandit Smart Data Capture SDK. Version 6.0 introduces all new APIs that are not backwards compatible with apps using ScanditSDK 5.x. To migrate your code to SDK 6.0 and newer, you will need to modify your app.
-
-If you are unsure about how to perform the migration or the feature you are using is not covered in this migration guide, please reach out to our [support team](mailto:support@scandit.com).
-
-## Replace the BarcodePicker
-
-In 5.x, the BarcodePicker (SBSBarcodePicker on iOS) was the central class that manages recognition, renders the video preview and provides means to configure what barcodes get scanned. In 6.0 and newer, there is no direct equivalent to the BarcodePicker. Instead this functionality is covered by multiple classes:
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/android/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```java
-dataCaptureContext = DataCaptureContext.forLicenseKey(SCANDIT_LICENSE_KEY);
-
-// Device's camera will serve as a frame source.
-camera = Camera.getDefaultCamera();
-dataCaptureContext.setFrameSource(camera, null);
-
-// See below for differences between 5.x and 6.x.
-BarcodeCaptureSettings barcodeCaptureSettings = new BarcodeCaptureSettings();
-barcodeCaptureSettings.enableSymbology(Symbology.EAN13_UPCA);
-
-barcodeCapture = BarcodeCapture.forDataCaptureContext(dataCaptureContext, barcodeCaptureSettings);
-barcodeCapture.addListener(this);
-barcodeCapture.setEnabled(true);
-
-BarcodeCaptureOverlay overlay = new BarcodeCaptureOverlay(barcodeCapture);
-
-dataCaptureView = DataCaptureView.newInstance(this, dataCaptureContext);
-dataCaptureView.addOverlay(overlay);
-
-setContentView(dataCaptureView);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/ios/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```swift
-// Create data capture context using your license key.
-context = DataCaptureContext(licenseKey: yourLicenseKey)
-
-// Set the back (world)-facing camera as the frame source of the context.
-camera = Camera.default
-context.setFrameSource(camera, completionHandler: nil)
-
-// See below for differences between 5.x and 6.x.
-let settings = BarcodeCaptureSettings()
-settings.set(symbology: .ean13UPCA, enabled: true)
-
-// Create new barcode capture mode with the settings from above.
-barcodeCapture = BarcodeCapture(context: context, settings: settings)
-
-// Register self as a listener to get informed whenever a new barcode got recognized.
-barcodeCapture.addListener(self)
-
-captureView = DataCaptureView(frame: view.bounds)
-captureView.context = context
-captureView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-view.addSubview(captureView)
-
-overlay = BarcodeCaptureOverlay(barcodeCapture: barcodeCapture)
-captureView.addOverlay(overlay)
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/web/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```javascript
-import * as SDCCore from "scandit-web-datacapture-core";
-import * as SDCBarcode from "scandit-web-datacapture-barcode";
-
-// Create data capture context.
-context = await SDCCore.DataCaptureContext.create();
-
-// The device camera will serve as a frame source.
-camera = SDCCore.Camera.default;
-await context.setFrameSource(camera);
-
-// See below for differences between 5.x and 6.x.
-const settings = new SDCBarcode.BarcodeCaptureSettings();
-settings.enableSymbology(SDCBarcode.Symbology.EAN13UPCA, true);
-
-barcodeCapture = await SDCBarcode.BarcodeCapture.forContext(context, settings);
-
-// Add a listener to get informed whenever a new barcode is recognized.
-barcodeCapture.addListener(listener)
-
-view = await SDCCore.DataCaptureView.forContext(context);
-// Connect the data capture view to the HTML element, so it can fill up its size and follow its position.
-view.connectToElement(element);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```javascript
-// Create data capture context using your license key.
-context = Scandit.DataCaptureContext.forLicenseKey(SCANDIT_LICENSE_KEY);
-
-// The device camera will serve as a frame source.
-camera = Scandit.Camera.default;
-context.setFrameSource(camera);
-
-// See below for differences between 5.x and 6.x.
-const settings = new Scandit.BarcodeCaptureSettings();
-settings.enableSymbology(Scandit.Symbology.EAN13UPCA, true);
-
-barcodeCapture = Scandit.BarcodeCapture.forContext(context, settings);
-
-// Add a listener to get informed whenever a new barcode is recognized.
-barcodeCapture.addListener(listener)
-
-view = Scandit.DataCaptureView.forContext(context);
-// Connect the data capture view to the HTML element, so it can fill up its size and follow its position.
-view.connectToElement(element);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```javascript
-// Create data capture context using your license key.
-context = DataCaptureContext.forLicenseKey(SCANDIT_LICENSE_KEY);
-
-// Set the back (world-facing) camera as the frame source of the context.
-camera = Camera.default;
-context.setFrameSource(camera);
-
-// See below for differences between 5.x and 6.x.
-const settings = new BarcodeCaptureSettings();
-settings.enableSymbology(Symbology.EAN13UPCA, true);
-
-// Create new barcode capture mode with the settings from above.
-barcodeCapture = BarcodeCapture.forContext(context, settings);
-
-// Add a listener to get informed whenever a new barcode is recognized.
-barcodeCapture.addListener(listener)
-
-// Render the capture view in the render method.
-
-
-// Back in the application code, add a barcode capture overlay.
-const overlay = BarcodeCaptureOverlay.withBarcodeCaptureForView(this.barcodeCaptureMode, null);
-this.viewRef.current.addOverlay(overlay);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```dart
-var dataCaptureContext = DataCaptureContext.forLicenseKey(SCANDIT_LICENSE_KEY);
-
-// Device's camera will serve as a frame source.
-var camera = Camera.defaultCamera;
-dataCaptureContext.setFrameSource(camera);
-
-// See below for differences between 5.x and 6.x.
-var barcodeCaptureSettings = BarcodeCaptureSettings()
-..enableSymbology(Symbology.ean13Upca, true);
-
-var barcodeCapture = BarcodeCapture.forContext(dataCaptureContext, barcodeCaptureSettings)
-..addListener(this)
-..isEnabled = true;
-
-var overlay = BarcodeCaptureOverlay(barcodeCapture);
-
-var dataCaptureView = DataCaptureView.forContext(dataCaptureContext)
-..addOverlay(overlay);
-// Add the dataCaptureView to your widget tree
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```csharp
-dataCaptureContext = DataCaptureContext.ForLicenseKey(SCANDIT_LICENSE_KEY);
-
-// Device's camera will serve as a frame source.
-camera = Camera.GetDefaultCamera();
-dataCaptureContext.SetFrameSourceAsync(camera);
-
-// See below for differences between 5.x and 6.x.
-BarcodeCaptureSettings barcodeCaptureSettings = BarcodeCaptureSettings.Create();
-barcodeCaptureSettings.EnableSymbology(Symbology.Ean13Upca, true);
-
-barcodeCapture = BarcodeCapture.Create(dataCaptureContext, barcodeCaptureSettings);
-barcodeCapture.AddListener(this);
-
-dataCaptureView = DataCaptureView.Create(dataCaptureContext, View.Bounds);
-dataCaptureView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight |
- UIViewAutoresizing.FlexibleWidth;
-View.AddSubview(dataCaptureView);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/xamarin.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/xamarin.android/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/xamarin.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/xamarin.android/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/xamarin.android/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```csharp
-dataCaptureContext = DataCaptureContext.ForLicenseKey(SCANDIT_LICENSE_KEY);
-
-// Device's camera will serve as a frame source.
-camera = Camera.GetDefaultCamera();
-dataCaptureContext.SetFrameSourceAsync(camera);
-
-// See below for differences between 5.x and 6.x.
-BarcodeCaptureSettings barcodeCaptureSettings = BarcodeCaptureSettings.Create();
-barcodeCaptureSettings.EnableSymbology(Symbology.Ean13Upca, true);
-
-barcodeCapture = BarcodeCapture.Create(dataCaptureContext, barcodeCaptureSettings);
-barcodeCapture.AddListener(this);
-
-dataCaptureView = DataCaptureView.Create(this, dataCaptureContext);
-SetContentView(dataCaptureView);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```csharp
-dataCaptureContext = DataCaptureContext.ForLicenseKey(SCANDIT_LICENSE_KEY);
-
-// Device's camera will serve as a frame source.
-camera = Camera.GetDefaultCamera();
-dataCaptureContext.SetFrameSourceAsync(camera);
-
-// See below for differences between 5.x and 6.x.
-BarcodeCaptureSettings barcodeCaptureSettings = BarcodeCaptureSettings.Create();
-barcodeCaptureSettings.EnableSymbology(Symbology.Ean13Upca, true);
-
-barcodeCapture = BarcodeCapture.Create(dataCaptureContext, barcodeCaptureSettings);
-barcodeCapture.AddListener(this);
-
-dataCaptureView = new DataCaptureView();
-dataCaptureView.DataCaptureContext = dataCaptureContext;
-dataCaptureView.HorizontalOptions = LayoutOptions.StartAndExpand;
-dataCaptureView.HorizontalOptions = LayoutOptions.StartAndExpand;
-// Add the datacapture view to the container
-containerView.Children.Add(dataCaptureView);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```csharp
-dataCaptureContext = DataCaptureContext.ForLicenseKey(SCANDIT_LICENSE_KEY);
-
-// Device's camera will serve as a frame source.
-camera = Camera.GetDefaultCamera();
-dataCaptureContext.SetFrameSourceAsync(camera);
-
-// See below for differences between 5.x and 6.x.
-BarcodeCaptureSettings barcodeCaptureSettings = BarcodeCaptureSettings.Create();
-barcodeCaptureSettings.EnableSymbology(Symbology.Ean13Upca, true);
-
-barcodeCapture = BarcodeCapture.Create(dataCaptureContext, barcodeCaptureSettings);
-barcodeCapture.AddListener(this);
-
-dataCaptureView = DataCaptureView.Create(dataCaptureContext, View.Bounds);
-dataCaptureView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight |
- UIViewAutoresizing.FlexibleWidth;
-View.AddSubview(dataCaptureView);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```csharp
-dataCaptureContext = DataCaptureContext.ForLicenseKey(SCANDIT_LICENSE_KEY);
-
-// Device's camera will serve as a frame source.
-camera = Camera.GetDefaultCamera();
-dataCaptureContext.SetFrameSourceAsync(camera);
-
-// See below for differences between 5.x and 6.x.
-BarcodeCaptureSettings barcodeCaptureSettings = BarcodeCaptureSettings.Create();
-barcodeCaptureSettings.EnableSymbology(Symbology.Ean13Upca, true);
-
-barcodeCapture = BarcodeCapture.Create(dataCaptureContext, barcodeCaptureSettings);
-barcodeCapture.AddListener(this);
-
-dataCaptureView = DataCaptureView.Create(this, dataCaptureContext);
-SetContentView(dataCaptureView);
-```
-
-
-
-
-
-* The [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/titanium/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) is the central object that manages the data capture/recognition process.
-* The [`Camera`](https://docs.scandit.com/data-capture-sdk/titanium/core/api/camera.html#class-scandit.datacapture.core.Camera) class wraps the native camera on |platform|.
-* The [`ui.DataCaptureView`](https://docs.scandit.com/data-capture-sdk/titanium/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) displays the camera preview as well as augmentations on top of the camera preview.
-* The [`barcode.BarcodeCapture`](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) manages the barcode scanning/capturing process, exposes [`listeners`](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture-listener.html) and ways to configure-barcodes.
-
-In your app you will need to use all of these classes to implement the functionality offered by the BarcodePicker. The following sample code shows you how to do this:
-
-```javascript
-// Create data capture context using your license key.
-context = ScanditCore.DataCaptureContext.forLicenseKey(SCANDIT_LICENSE_KEY);
-
-// The device camera will serve as a frame source.
-camera = ScanditCore.Camera.default;
-context.setFrameSource(camera);
-
-// See below for differences between 5.x and 6.x.
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-settings.enableSymbology(ScanditBarcode.Symbology.EAN13UPCA, true);
-
-barcodeCapture = ScanditBarcode.BarcodeCapture.forContext(context, settings);
-
-// Add a listener to get informed whenever a new barcode is recognized.
-barcodeCapture.addListener(listener)
-
-view = ScanditCore.DataCaptureView.forContext(context);
-// Connect the data capture view to the window, so it can fill up its size and follow its position.
-view.addToContainer(window);
-```
-
-
-
-
-
-## Start/Stop the Capture Process
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```java
-barcodeCapture.setEnabled(true);
-camera.switchToDesiredState(FrameSourceState.ON, null);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```java
-barcodeCapture.setEnabled(false);
-camera.switchToDesiredState(FrameSourceState.OFF, null);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```swift
-barcodeCapture.isEnabled = true
-camera?.switch(toDesiredState: .on)
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```swift
-barcodeCapture.isEnabled = false
-camera?.switch(toDesiredState: .off)
-```
-
-
-
-
-
-In 5.x the scan process was started by calling resumeScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/web/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```javascript
-await barcodeCapture.setEnabled(true);
-await camera.switchToDesiredState(SDCCore.FrameSourceState.On);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.SetEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.SetEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```javascript
-await barcodeCapture.setEnabled(false);
-await camera.switchToDesiredState(SDCCore.FrameSourceState.Off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```javascript
-barcodeCapture.isEnabled = true;
-camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```javascript
-barcodeCapture.isEnabled = false;
-camera.switchToDesiredState(Scandit.FrameSourceState.Off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```javascript
-barcodeCapture.isEnabled = true;
-camera.switchToDesiredState(FrameSourceState.On);
-```
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```javascript
-barcodeCapture.isEnabled = false;
-camera.switchToDesiredState(FrameSourceState.Off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```dart
-barcodeCapture.isEnabled = true;
-camera.switchToDesiredState(FrameSourceState.on);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```dart
-barcodeCapture.isEnabled = false;
-camera.switchToDesiredState(FrameSourceState.off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```csharp
-barcodeCapture.Enabled = true;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```csharp
-barcodeCapture.Enabled = false;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.Off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/xamarin.android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/xamarin.android/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```csharp
-barcodeCapture.Enabled = true;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```csharp
-barcodeCapture.Enabled = false;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.Off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```csharp
-barcodeCapture.Enabled = true;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```csharp
-barcodeCapture.Enabled = false;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.Off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```csharp
-barcodeCapture.Enabled = true;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```csharp
-barcodeCapture.Enabled = false;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.Off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```csharp
-barcodeCapture.Enabled = true;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```csharp
-barcodeCapture.Enabled = false;
-camera?.SwitchToDesiredStateAsync(FrameSourceState.Off);
-```
-
-
-
-
-
-In 5.x the scan process was started by calling startScanning on the BarcodePicker. In 6.0+, the equivalent functionality is to [`switch the frame source from off to on`](https://docs.scandit.com/data-capture-sdk/titanium/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) and to [`enable the capture mode`](https://docs.scandit.com/data-capture-sdk/titanium/core/api/data-capture-mode.html#property-scandit.datacapture.core.IDataCaptureMode.IsEnabled).
-
-Capture modes are enabled by default, the first line to enable the capture mode is only required when you are reusing a previously disabled data capture mode.
-
-```javascript
-barcodeCapture.isEnabled = true;
-camera.switchToDesiredState(ScanditCore.FrameSourceState.On);
-```
-
-To **pause** the barcode capture process, simply set the `barcode.BarcodeCapture.IsEnabled` property to `false` (without turning the camera off). To **resume** the capture process, set the `barcode.BarcodeCapture.IsEnabled` property back to `true`.
-
-To **stop** the barcode capture process and turn the camera off, disable the capture mode and turn the camera off, as shown below:
-
-```javascript
-barcodeCapture.isEnabled = false;
-camera.switchToDesiredState(ScanditCore.FrameSourceState.Off);
-```
-
-
-
-
-
-## Barcode Scanner Changes
-
-* The default code duplicate filter has been changed from _500ms_ to _0ms_. This means that a barcode that gets scanned in two consecutive scans will get reported twice. When you pause/stop the scanning as soon as one code gets scanned, the code duplicate filtering setting does not affect you. However if you continue scanning further codes without pausing/stopping recognition, you may want to change the `barcode.BarcodeCaptureSettings.CodeDuplicateFilter` property back to _500ms_.
-* EAN13 and UPCA used to be separate symbologies in 5.x but have now been merged into one symbology called [`Ean13Upca`](/sdks/web/barcode-symbologies/#european-article-number-ean).
-* The leading zero of UPCA codes is no longer removed by default. If you rely on this behavior in your app, you can either remove the leading zero yourself, or enable the _remove_leading_upca_zero_ extension:
-
-
-
-
-
-```java
-settings.getSymbologySettings(Symbology.EAN13_UPCA)
- .setExtensionEnabled("remove_leading_upca_zero", true)
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/android/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/android/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```swift
-settings.settings(for: .ean13UPCA)?.set(extension: "remove_leading_upca_zero", enabled: true)
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/ios/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/ios/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```javascript
-settings.settingsForSymbology(SDCBarcode.Symbology.EAN13UPCA).setExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The Scanner class functionality is not provided anymore.
-
-
-
-
-
-```javascript
-settings.settingsForSymbology(Scandit.Symbology.EAN13UPCA).setExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```javascript
-settings.settingsForSymbology(Symbology.EAN13UPCA).setExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```dart
-settings.settingsForSymbology(Symbology.ean13Upca)
- .setExtensionEnabled("remove_leading_upca_zero", enabled: true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```csharp
-barcodeCaptureSettings.GetSymbologySettings(Symbology.Ean13Upca)
- .SetExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/xamarin.ios/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```csharp
-barcodeCaptureSettings.GetSymbologySettings(Symbology.Ean13Upca)
- .SetExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/xamarin.android/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/xamarin.android/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```csharp
-barcodeCaptureSettings.GetSymbologySettings(Symbology.Ean13Upca)
- .SetExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/xamarin.forms/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```csharp
-barcodeCaptureSettings.GetSymbologySettings(Symbology.Ean13Upca)
- .SetExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```csharp
-barcodeCaptureSettings.GetSymbologySettings(Symbology.Ean13Upca)
- .SetExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-```javascript
-settings.settingsForSymbology(ScanditBarcode.Symbology.EAN13UPCA).setExtensionEnabled("remove_leading_upca_zero", true);
-```
-
-* The API to configure the active scan area has been overhauled and simplified. If you were changing the active scan area to match the visible part of the preview, the good news is that the active scan area is now automatically restricted to the visible part of the preview.
-* The camera-related settings have been moved from `ScanSettings` to [`CameraSettings`](https://docs.scandit.com/data-capture-sdk/titanium/core/api/camera-settings.html). For example, if you want to change the preview resolution from 720p to 1080p, set the `CameraSettings.PreferredResolution` to `VideoResolution.FullHd` and [`apply the new settings`](https://docs.scandit.com/data-capture-sdk/titanium/core/api/camera.html#method-scandit.datacapture.core.Camera.ApplySettingsAsync) to the camera.
-
-
-
-
-
-## MatrixScan Changes
-
-:::important
-Not applicable for Web and Titanium.
-:::
-
-The features that you know under the name MatrixScan are now bundled under `barcode.tracking.BarcodeTracking`, the overall concept is still referred to as MatrixScan.
-
-In 5.x `setMaxNumberOfCodesPerFrame` was used to adjust MatrixScan to specific use cases where more or less codes had to be tracked. In 6.x it is no longer needed to set this number, instead it is selected automatically depending on the license, use case, and enabled symbologies.
-
-## Migrate the Scan UI
-
-Without any further configuration, the default UI renders the _Scanning by Scandit_ logo in the bottom-right corner of the data capture view. To replicate the default look from 5.x, you need to create a viewfinder.
-
-:::note
-This functionality is only available for barcode capture, but not barcode tracking (MatrixScan).
-:::
-
-### Enable the Rectangular Viewfinder
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```java
-BarcodeCaptureOverlay overlay = new BarcodeCaptureOverlay(barcodeCapture);
-RectangularViewfinder viewfinder = new RectangularViewfinder();
-overlay.setViewfinder(viewfinder);
-
-dataCaptureView = DataCaptureView.newInstance(this, dataCaptureContext);
-dataCaptureView.addOverlay(overlay);
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/ios/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```swift
-let overlay = BarcodeCaptureOverlay(barcodeCapture: barcodeCapture)
-let viewfinder = RectangularViewfinder()
-overlay.viewfinder = viewfinder
-captureView.addOverlay(overlay)
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/web/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```javascript
-const overlay = await SDCBarcode.BarcodeCaptureOverlay.withBarcodeCaptureForView(barcodeCapture, view);
-const viewfinder = new SDCCore.RectangularViewfinder();
-await overlay.setViewfinder(viewfinder);
-await view.addOverlay(overlay);
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```javascript
-const overlay = Scandit.BarcodeCaptureOverlay.withBarcodeCaptureForView(barcodeCapture, view);
-const viewfinder = new Scandit.RectangularViewfinder();
-overlay.viewfinder = viewfinder;
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```javascript
-const overlay = BarcodeCaptureOverlay.withBarcodeCaptureForView(barcodeCapture, view);
-const viewfinder = new RectangularViewfinder();
-overlay.viewfinder = viewfinder;
-view.addOverlay(overlay);
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```dart
-var overlay = BarcodeCaptureOverlay.withBarcodeCaptureForView(barcodeCapture, view)
-..viewfinder = RectangularViewfinder();
-view.addOverlay(overlay);
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```csharp
-BarcodeCaptureOverlay overlay = BarcodeCaptureOverlay.Create(barcodeCapture, dataCaptureView);
-RectangularViewfinder viewfinder = RectangularViewfinder.Create();
-overlay.Viewfinder = viewfinder;
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```csharp
-BarcodeCaptureOverlay overlay = BarcodeCaptureOverlay.Create(barcodeCapture, dataCaptureView);
-RectangularViewfinder viewfinder = RectangularViewfinder.Create();
-overlay.Viewfinder = viewfinder;
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```csharp
-BarcodeCaptureOverlay overlay = BarcodeCaptureOverlay.Create(barcodeCapture, dataCaptureView);
-RectangularViewfinder viewfinder = RectangularViewfinder.Create();
-overlay.Viewfinder = viewfinder;
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```csharp
-BarcodeCaptureOverlay overlay = BarcodeCaptureOverlay.Create(barcodeCapture, dataCaptureView);
-RectangularViewfinder viewfinder = RectangularViewfinder.Create();
-overlay.Viewfinder = viewfinder;
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```csharp
-BarcodeCaptureOverlay overlay = BarcodeCaptureOverlay.Create(barcodeCapture, dataCaptureView);
-RectangularViewfinder viewfinder = RectangularViewfinder.Create();
-overlay.Viewfinder = viewfinder;
-```
-
-
-
-
-
-To enable the [`rectangular viewfinder`](https://docs.scandit.com/data-capture-sdk/android/core/api/rectangular-viewfinder.html#class-scandit.datacapture.core.ui.RectangularViewfinder) (previously called the default viewfinder), use the following lines of code:
-
-```javascript
-const overlay = Scandit.BarcodeCaptureOverlay.withBarcodeCaptureForView(barcodeCapture, view);
-const viewfinder = new Scandit.RectangularViewfinder();
-overlay.viewfinder = viewfinder;
-```
-
-
-
-
-
-### Change the Viewfinder Size
-
-To change the size of the viewfinder using sizes relative to the data capture view (same as in 5.x), you can use the following lines of code:
-
-
-
-
-
-```java
-viewfinder.setSize(new SizeWithUnit(new FloatWithUnit(0.8f, MeasureUnit.FRACTION),
- new FloatWithUnit(0.4f, MeasureUnit.FRACTION)));
-```
-
-
-
-
-
-```swift
-viewfinder.setSize(SizeWithUnit(width: FloatWithUnit(value: 0.8, unit: .fraction),
- height: FloatWithUnit(value: 0.4, unit: .fraction)))
-```
-
-
-
-
-
-```javascript
-viewfinder.setSize(new Scandit.SizeWithUnit(
- new SDCCore.NumberWithUnit(0.8, SDCCore.MeasureUnit.Fraction),
- new SDCCore.NumberWithUnit(0.4, SDCCore.MeasureUnit.Fraction)
- ));
-```
-
-
-
-
-
-```javascript
-viewfinder.setSize(new Scandit.SizeWithUnit(
- new Scandit.NumberWithUnit(0.8, Scandit.MeasureUnit.Fraction),
- new Scandit.NumberWithUnit(0.4, Scandit.MeasureUnit.Fraction)
- ));
-```
-
-
-
-
-
-```javascript
-viewfinder.setSize(new SizeWithUnit(
- new NumberWithUnit(0.8, MeasureUnit.Fraction),
- new NumberWithUnit(0.4, MeasureUnit.Fraction)
- ));
-```
-
-
-
-
-
-```dart
-viewfinder.setSize(SizeWithUnit(DoubleWithUnit(0.8, MeasureUnit.fraction), DoubleWithUnit(0.4, MeasureUnit.fraction)));
-```
-
-
-
-
-
-```csharp
-viewfinder.SetSize(new SizeWithUnit
- {
- Width = new FloatWithUnit { Value = 0.8f, Unit = MeasureUnit.Fraction },
- Height = new FloatWithUnit { Value = 0.4f, Unit = MeasureUnit.Fraction }
- });
-```
-
-
-
-
-
-```csharp
-viewfinder.SetSize(new SizeWithUnit
- {
- Width = new FloatWithUnit { Value = 0.8f, Unit = MeasureUnit.Fraction },
- Height = new FloatWithUnit { Value = 0.4f, Unit = MeasureUnit.Fraction }
- });
-```
-
-
-
-
-
-```csharp
-viewfinder.SetSize(new SizeWithUnit
- {
- Width = new FloatWithUnit { Value = 0.8f, Unit = MeasureUnit.Fraction },
- Height = new FloatWithUnit { Value = 0.4f, Unit = MeasureUnit.Fraction }
- });
-```
-
-
-
-
-
-```csharp
-viewfinder.SetSize(new SizeWithUnit
- {
- Width = new FloatWithUnit { Value = 0.8f, Unit = MeasureUnit.Fraction },
- Height = new FloatWithUnit { Value = 0.4f, Unit = MeasureUnit.Fraction }
- });
-```
-
-
-
-
-
-```csharp
-viewfinder.SetSize(new SizeWithUnit
- {
- Width = new FloatWithUnit { Value = 0.8f, Unit = MeasureUnit.Fraction },
- Height = new FloatWithUnit { Value = 0.4f, Unit = MeasureUnit.Fraction }
- });
-```
-
-
-
-
-
-```javascript
-viewfinder.setSize(new ScanditCore.SizeWithUnit(
- new ScanditCore.NumberWithUnit(0.8, ScanditCore.MeasureUnit.Fraction),
- new ScanditCore.NumberWithUnit(0.4, ScanditCore.MeasureUnit.Fraction)
- ));
-```
-
-
-
-
-
-## Other Changes
-
-:::important
-Not applicable for Web.
-:::
-
-The short 43 character legacy app keys supported in 4.x and 5.x have been deprecated and are not compatible with 6.0+ anymore. Please [contact support](mailto:support@scandit.com) to get your new license keys.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/partials/_migrate-6-to-7.mdx
deleted file mode 100644
index 745bc477..00000000
--- a/versioned_docs/version-8.1.1/partials/_migrate-6-to-7.mdx
+++ /dev/null
@@ -1,215 +0,0 @@
-This guide will help you migrate from versions 6.x of the Scandit Smart Data Capture SDK to version 7.x.
-
-Version 7.0 deprecates and removes many APIs from versions 6.x, as well as making many of the existing APIs more intuitive, resulting in a simpler and quicker integration experience.
-
-While not all features and functionalities are impacted, it is likely you will need to modify your app. If you are unsure about how to perform the migration or the feature you are using is not covered in this migration guide, please reach out to our [support team](mailto:support@scandit.com).
-
-## Updating for Deprecated APIs
-
-:::tip[Version 5.x Users]
-If your app is still using version 5.x of the Scandit Barcode Scanner SDK, you will need to first migrate to version 6.x before migrating to version 7.x. Please refer to the [migration guide from 5.x to 6.x](../migrate-5-to-6) for more information.
-:::
-
-Version 7.0 includes the removal of all APIs that were deprecated throughout the 6.x series. For the simplest migration process, we recommend you:
-
-- Update your app to the latest 6.28.x version. This version includes warnings for all deprecated APIs.
-- Address all deprecation warnings in your app.
-- Update to version 7.0.
-
-## Barcode Capture Changes
-
-### Smart Scan Intention
-
-Beginning with version 7.0, [Scan Intention](https://docs.scandit.com/data-capture-sdk/android/core/api/scan-intention.html) is set to `SMART` by default.
-
-Additionally, with Smart Scan Intention enabled, default support for Composite Codes has been removed. If you need to scan Composite Codes, you must [explicitly enable them](/sdks/web/scanning-composite-codes/#enabling-composite-codes) in your capture settings.
-
-:::warning
-When using a single image frame source, you must set the scan intention to `MANUAL` to ensure correct behavior.
-:::
-
-### SparkScan
-
-In version 7.0, we are introducing the second generation of our ready-to-use barcode scanning UI, SparkScan. This new UI is more intuitive and provides a more modern look and feel, as well as bringing more customization options.
-
-As part of these changes, there have been various deprecations, modifications, and additions to the SparkScan APIs, as detailed below.
-
-#### Deprecations
-
-All previously deprecated APIs have been removed and the following APIs have been deprecated in version 7.0 and should be removed or replaced in your app:
-
-| Deprecated API |Details |
-|---|---|
-| `torchButtonVisible` | The torch button has been moved to the mini preview. Use `torchControlVisible` instead. |
-| `stopCapturingText` | The trigger button no longer displays any text. |
-| `startCapturingText` | The trigger button no longer displays any text. |
-| `resumeCapturingText` | The trigger button no longer displays any text. |
-| `scanningCapturingText` | The trigger button no longer displays any text. |
-| `cameraButtonBackgroundColor` | Use `triggerButtonCollapsedColor`, `triggerButtonExpandedColor`, and `triggerButtonAnimationColor` instead. |
-| `captureButtonTintColor` | Use `triggerButtonTintColor` instead. |
-| `captureButtonActiveBackgroundColor` | No longer needed. |
-| `handModeButtonVisible` | The trigger is fully floating now, eliminating the concept of left or right positioning. |
-| `defaultHandMode` | No longer needed. |
-| `soundModeButtonVisible` | No longer needed. |
-| `hapticModeButtonVisible` | No longer needed. |
-| `shouldShowScanAreaGuides` | No longer needed. |
-| `fastFindButtonVisible` | Renamed to `barcodeFindButtonVisible`. |
-
-#### Changes and Additions
-
-The following changes and additions have been made to the SparkScan APIs:
-
-| API | Details |
-|---|---|
-| `SparkScanViewState` | New API to set the initial state of the SparkScan UI. |
-| `defaultMiniPreviewSize` | New API to set the default size of the mini preview. |
-| `miniPreviewCloseControlVisible` | New API to show or hide the close button in the mini preview. |
-| `triggerButtonVisible` | New API to show or hide the trigger button. See also: `triggerButtonCollapsedColor` `triggerButtonExpandedColor` `triggerButtonAnimationColor` `triggerButtonTintColor` `triggerButtonImage` |
-| `triggerButtonCollapseTimeout` | Default value changed from `-1` to `5` for the new UI. |
-
-### MatrixScan
-
-Version 7.0 introduces new naming conventions for the MatrixScan APIs that better reflect the functionality they provide. This includes renaming the core MatrixScan functionality (previously `BarcodeTracking`) and the upcoming separation of the MatrixScan Augmented Reality (AR) functionality (`AdvancedOverlay`) into a separate module.
-
-#### BarcodeTracking
-
-The `BarcodeTracking` API has been renamed to `BarcodeBatch`. Apart from the name change, the API remains largely the same and simply requires updating the class name in your code for migration.
-
-:::warning
-If your application uses of any `BarcodeTracking` APIs alongside another product (e.g. MatrixScan Count), you must update any mentions to conform with this naming change.
-:::
-
-#### AdvancedOverlay
-
-The `AdvancedOverlay` API will be deprecated in version 8.x. No changes are required for version 7.0, but you should be aware of the upcoming changes.
-
-In version 7.1, a new ready-to-use solution - MatrixScan AR - will be released that enables fast and easy integration of Advanced Overlay features into your application.
-
-## ID Capture Changes
-
-Version 7.0 introduces a completely redesigned ID Capture and Validation API. This new API provides a more intuitive and flexible way to capture and validate IDs, along with enhanced configuration options and improved result structures.
-
-### Document Selection
-
-Using the new ID Capture API, you can now select the document type(s) you want to capture or exclude based on geographic regions, along with the sections of the document(s) to be captured. This allows you to create a more tailored and efficient ID capture experience for your users.
-
-The tables below indicate the corresponding API and configurations for the previous ID Capture API in version 6.x and the new ID Capture API in version 7.0.
-
-#### Front and Back ID Capture
-
-Previously you would need to configure the `supportedSides` for your desired document types. In version 7.0, you select the `scannerType` to be used:
-
-| Version 6.x | Version 7.0 |
-|---|---|
-| `FRONT_ONLY` | [`SingleSideScanner`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-scanner.html#single-side-scanner) |
-| `FRONT_AND_BACK` | [`FullDocumentScanner`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-scanner.html#full-document-scanner) |
-
-#### Document Type Selection
-
-Previously there were separate document types based upon the zone(s) you wanted to capture, for example the VIZ zone or the MRZ zone. In version 7.0, this is simplified into a configuration of your scanner type based upon ending suffix in your previous configuration:
-
-| Version 6.x | Version 7.0 |
-|---|---|
-| `*_VIZ` | `SingleSideScanner.visualInspectionZone(true)` or `FullDocumentScanner` |
-| `*_MRZ` | `SingleSideScanner.machineReadableZone(true)` |
-| `*_BARCODE` | `SingleSideScanner.barcode(true)` |
-| Multiple zones | `FullDocumentScanner` or `SingleSideScanner` with multiple zones enabled |
-
-:::tip
-If you need to scan certain documents in full, and others only a specific zone, we recommend using the `FullDocumentScanner` for all documents.
-:::
-
-#### Document Category Selection
-
-Where previously there were separate document types for a given region and ID type (e.g. Colombia Driver's License, and Colombia ID), in version 7.0 you can select the document category and region to capture (or exclude).
-
-See [ID Capture Document](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-document.html#id-capture-document) for more information on **acceptedDocuments**.
-
-| 6.x API | 7.x API |
-|----------------------------|---------------------|
-| **supportedDocuments** | **acceptedDocuments** |
-| DL_VIZ | DriverLicense|
-| AAMVA_BARCODE| DriverLicense and IdCard |
-| VISA_MRZ | Visalcao |
-| PASSPORT_MRZ | Passport |
-| SWISS_DL_MRZ | DriverLicense|
-| ID_CARD_MRZ | IdCard and/or ResidencePermit and/or certain RegionSpecific documents. |
-| ID_CARD_VIZ | IdCard and/or ResidencePermit and/or certain RegionSpecific documents. |
-| US_US_ID_BARCODE | RegionSpecific with US_UNIFORMED_SERVICES_ID subtype |
-| COLOMBIA_DL_BARCODE | DriverLicense limited to Region.Colombia |
-| COLOMBIA_ID_BARCODE | IdCard limited to Region.Colombia |
-| ARGENTINA_ID_BARCODE | IdCard limited to Region.Argentina |
-| SOUTH_AFRICA_DL_BARCODE | DriverLicense limited to Region.SouthAfrica |
-| SOUTH_AFRICA_ID_BARCODE | IdCard limited to Region.SouthAfrica |
-| CHINA_MAINLAND_TRAVEL_PERMIT_MRZ | RegionSpecific with subtypes CHINA_MAINLAND_TRAVEL_PERMIT_TAIWAN and CHINA_MAINLAND_TRAVEL_PERMIT_HK_MACAU |
-| CHINA_EXIT_ENTRY_PERMIT_MRZ | RegionSpecific with subtype CHINA_EXIT_ENTRY_PERMIT |
-| CHINA_ONE_WAY_PERMIT_BACK_MRZ | RegionSpecific with subtype CHINA_ONE_WAY_PERMIT |
-| CHINA_ONE_WAY_PERMIT_FRONT_MRZ | RegionSpecific with subtype CHINA_ONE_WAY_PERMIT |
-| APEC_BUSINESS_TRAVEL_CARD_MRZ | RegionSpecific with subtype APEC_BUSINESS_TRAVEL_CARD |
-| PASSPORT_VIZ | Passport |
-| COMMON_ACCESS_CARD_BARCODE | RegionSpecific with subtype US_COMMON_ACCESS_CARD |
-| HEALTH_INSURANCE_CARD_VIZ | HealthInsuranceCard |
-
-### Accepting and Rejecting Documents
-
-Previously you would need to create your own logic for which documents to accept or reject after the capture process.
-
-In version 7.0, you can now specify the documents you want to capture or exclude based on the document category and region directly in the [`IDCaptureSettings`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#id-capture-settings).
-
-You can accept or reject a given subset of documents based on the document category and region. For example, you can accept only Passports but not IDs, or reject anything except Drivers License.
-
-Setting the [`acceptedDocuments`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.AcceptedDocuments) will automatically reject any documents not specified in the list.
-
-Setting the [`rejectedDocuments`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectedDocuments) will automatically reject any documents specified in the list.
-
-### Document Images
-
-If you need to receive images of the captured document, you must migrate the `IdImageType` as follows:
-
-| Version 6.x | Version 7.0 |
-|---|---|
-| FACE | FACE |
-| ID_FRONT | CROPPED_DOCUMENT |
-| ID_BACK | CROPPED_DOCUMENT |
-
-There is no distinction between front and back. If using `SingleSideScanner`, you will receive the front, if using `FullDocumentScanner`, you will receive the front and back.
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult).
-
-### Callbacks
-
-There are now only two callbacks used: [`onIdCaptured`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-listener.html#method-scandit.datacapture.id.IIdCaptureListener.OnIdCaptured) and [`onIdRejected`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-listener.html#method-scandit.datacapture.id.IIdCaptureListener.OnIdRejected).
-
-:::tip
-For `FullDocumentScanner`, `onIdCaptured` will be called only when all sides are captured. The ID Capture UI automatically guides the user through the process.
-:::
-
-If you previously relied on `onIdCapturedTimedOut`, you will receive the very same callback as `onIdRejected` with `RejectionReason` TIMEOUT.
-
-:::warning
-**Web SDK Only**:
-If you rely on `SingleImageUploader`, `onIdCaptured` is now delivered if data from a document could be extracted and `onIdRejected` when it couldn’t. `RejectionReason` would be `SINGLE_IMAGE_NOT_CAPTURED` if no document could be detected in the image.
-:::
-
-### Capture Result
-
-The structure of [`CapturedId`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/captured-id.html) has been simplified and improved. Some of the changes include:
-
-- The `issuingCountry` field is now a `Region` type instead of a `String`.
-- `CapturedId::viz::capturedSides` type is now named `CapturedSides` not `SupportedSides`.
-- `CapturedId::documentType` is now renamed to `CapturedId::document` and has type `IdCaptureDocument`. You may also use methods like `CapturedId::isPassport()` to determine which document is captured.
-
-Additionally, you can access aggregate fields from the top level and also access fields extracted from individual zones by accessing `CapturedId::barcode`, `CapturedId::mrz` and `CapturedId::viz`. These substructures replace the previous ones that were document-specific, like `aamvaBarcode`.
-
-## Text Capture Changes
-
-Text Capture has been removed from the Scandit Data Capture SDK. If your use case requires text recognition you can use Smart Label Capture.
-
-## Web SDK Changes
-
-Starting with version 7.0, there are some critical changes in installing and hosting the Web SDK that you should be aware of:
-
-- NPM package scope has changed to `@scandit/web-datacapture-*`.
-- The public engine directory has been moved from `build/engine` to `sdc-lib`.
-
-See the Web SDK [installation guide](/sdks/web/add-sdk.md) for more information.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/partials/_migrate-7-to-8.mdx
deleted file mode 100644
index 2f49def6..00000000
--- a/versioned_docs/version-8.1.1/partials/_migrate-7-to-8.mdx
+++ /dev/null
@@ -1,209 +0,0 @@
-This guide will help you migrate from versions 7.x of the Scandit Smart Data Capture SDK to version 8.x.
-
-Version 8.0 deprecates and removes many APIs from versions 7.x, as well as making many of the existing APIs more intuitive, resulting in a simpler and quicker integration experience.
-
-While not all features and functionalities are impacted, it is likely you will need to modify your app. If you are unsure about how to perform the migration or the feature you are using is not covered in this migration guide, please reach out to our [support team](mailto:support@scandit.com).
-
-## Updating for Deprecated APIs
-
-:::tip[Version 5.x/6.x Users]
-If your app is still using version 5.x or 6.x of the Scandit Barcode Scanner SDK, you will need to first migrate to version 6.x and/or 7.x before migrating to version 8.x. Please refer to the [migration guide from 5.x to 6.x](../migrate-5-to-6) and [migration guide from 6.x to 7.x](../migrate-6-to-7) for more information.
-:::
-
-Version 8.0 includes the removal of all APIs that were deprecated throughout the 7.x series. For the simplest migration process, we recommend you:
-
-- Update your app to the latest 7.6.x version. This version includes warnings for all deprecated APIs.
-- Address all deprecation warnings in your app.
-- Update to version 8.0.
-
-## Barcode Capture Changes
-
-### Core
-
-In this release, `VideoResolution::Auto` has been now deprecated. Please use the respective capture mode's `recommendedCameraSettings` for the best results.
-
-### Smart Label Capture
-
-The properties of the `LabelFieldDefinition` API have been renamed to better reflect their purpose:
-
-| Old Property Name | New Property Name |
-|------------------------|--------------------------|
-| `pattern` | `valueRegex` |
-| `patterns` | `valueRegexes` |
-| `dataTypePattern` | `anchorRegex` |
-| `dataTypePatterns` | `anchorRegexes` |
-
-### SparkScan
-
-In version 7.0, we are introducing the second generation of our ready-to-use barcode scanning UI, SparkScan. This new UI is more intuitive and provides a more modern look and feel, as well as bringing more customization options.
-
-As part of these changes, there have been various deprecations, modifications, and additions to the SparkScan APIs, as detailed below.
-
-Building on the second generation of SparkScan, version 8.0 expands SparkScan beyond barcode scanning to include support for scanning any combination of barcodes and text present on a target. The feature is available in beta at the moment, please contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out.
-
-### Cross-Platform Frameworks (Capacitor, Cordova, React Native, Flutter)
-
-In version 8.0, the `forContext` factory method has been deprecated in favor of using constructor initialization for all capture modes. This change affects Capacitor, Cordova, React Native, and Flutter frameworks.
-
-**Before (deprecated):**
-
-```js
-const barcodeCapture = BarcodeCapture.forContext(context, settings);
-```
-
-**After:**
-
-```js
-const barcodeCapture = new BarcodeCapture(settings);
-context.addMode(barcodeCapture);
-```
-
-Alternatively, you can use the new `setMode` API, which automatically removes all existing modes from the context before adding the new mode:
-
-```js
-const barcodeCapture = new BarcodeCapture(settings);
-context.setMode(barcodeCapture);
-```
-
-:::note
-
-This change applies to all capture modes (e.g., `BarcodeCapture`, `TextCapture`, `IdCapture`, `LabelCapture`, etc.), not just `BarcodeCapture`. Replace `forContext` calls with the constructor pattern for all modes you use in your application.
-
-For Flutter (Dart), use the constructor syntax without the `new` keyword:
-
-```dart
-var barcodeCapture = BarcodeCapture(settings);
-context.addMode(barcodeCapture);
-```
-
-Or using `setMode`:
-
-```dart
-var barcodeCapture = BarcodeCapture(settings);
-context.setMode(barcodeCapture);
-```
-
-:::
-
-## ID Capture Changes
-
-The ID Capture and Validation API was completely redesigned in version 7.0, and version 8.0 builds on those changes with the following improvements:
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* Removed the deprecated API `DateResult::toDate`. You should use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-
-## Web SDK Changes
-
-Starting with version 8.0, there are some critical changes in the Web SDK that you should be aware of:
-
-- The `Camera` API has been completely redesigned, see the [API reference](https://docs.scandit.com/data-capture-sdk/web/core/api/camera.html#camera) for complete details.
-- The `DataCaptureContext.create`, `createWithOptions` and `configure` methods have been removed in favor of [`DataCaptureContext.forLicenseKey`](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.ForLicenseKey). See the Web SDK [installation guide](/sdks/web/add-sdk.md) for more information.
-
-## .NET SDK Changes
-
-In version 8.0 we have fundamentally redesigned the Scandit .NET SDK's architecture to better align with the modern .NET ecosystem. This redesign brings several key benefits:
-
-The SDK now includes generic `.net8.0` and `.net9.0` targets. This allows you to reference `Scandit.DataCapture.Core` and related packages directly from non-UI projects, such as class libraries or unit test projects, making it significantly easier to build modular, testable applications following principles like Clean Architecture.
-
-Due to the architectural changes, the SDK now requires explicit initialization at application startup. The public API has not changed, but you must add the corresponding initialization code to your application for the SDK to function correctly.
-
-
-
-
-
-In your `MainApplication.cs`, add the initialization calls within the `OnCreate` method.
-
-```csharp
-[Application]
-public class MainApplication(IntPtr handle, JniHandleOwnership ownership) : Application(handle, ownership)
-{
- public override void OnCreate()
- {
- base.OnCreate();
-
- // Initialize Scandit libraries
- ScanditCaptureCore.Initialize();
- ScanditBarcodeCapture.Initialize();
- }
-}
-```
-
-:::tip
-When using additional components like `ScanditIdCapture` or `ScanditParser` in your MAUI application, you must initialize them as well. Please add the required `Initialize()` call within your startup file following the pattern shown in the example above.
-:::
-
-
-
-
-
-In your `AppDelegate.cs`, add the initialization calls within the `FinishedLaunching` method.
-
-```csharp
-[Register("AppDelegate")]
-public class AppDelegate : UIApplicationDelegate
-{
- public override UIWindow Window { get; set; }
-
- public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
- {
- // Initialize Scandit libraries
- ScanditCaptureCore.Initialize();
- ScanditBarcodeCapture.Initialize();
-
- // Your existing window setup code
- (...)
-
- return true;
- }
-}
-```
-
-:::tip
-When using additional components like `ScanditIdCapture` or `ScanditParser` in your MAUI application, you must initialize them as well. Please add the required `Initialize()` call within your startup file following the pattern shown in the example above.
-:::
-
-
-
-
-
-In your `MauiProgram.cs`, chain the new `UseScanditCore()` and `UseScanditBarcodeCapture()` extension methods to the `MauiApp` builder.
-
-```csharp
-public static class MauiProgram
-{
- public static MauiApp CreateMauiApp()
- {
- var builder = MauiApp.CreateBuilder();
- builder.UseMauiApp()
- .ConfigureFonts(fonts =>
- {
- fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
- })
- // Add the Scandit Core and Barcode Capture initializers
- .UseScanditCore(configure =>
- {
- configure.AddDataCaptureView();
- })
- .UseScanditBarcode();
-
- return builder.Build();
- }
-}
-```
-
-:::tip
-When using additional components like `ScanditIdCapture` or `ScanditParser` in your MAUI application, you must initialize them as well. Please add the required `Initialize()` call within your startup file following the pattern shown in the example above.
-:::
-
-
-
-
-
-
-
-## Xamarin SDK Changes
-
-Starting this release we are no longer upgrading Xamarin and Forms solutions for the Data Capture SDK. Microsoft ended support for these frameworks on the 1st of May 2024, which locks them into discontinued tooling. You may continue to use the latest releases of SDK version 7.x as per our support policy.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/partials/_scanning-composite-codes.mdx
deleted file mode 100644
index 714b2ccf..00000000
--- a/versioned_docs/version-8.1.1/partials/_scanning-composite-codes.mdx
+++ /dev/null
@@ -1,82 +0,0 @@
-The Scandit Data Capture SDK supports scanning of all [GS1 Composite Codes](../barcode-symbologies#gs1-composite-codes). The specification defines three different types: A, B and C.
-
-:::note
-Composite codes are only supported in `SDCBarcodeCapture`.
-:::
-
-For composite codes Type A and B the 2d component is always a `SDCSymbologyMicroPDF417` and the 1d component can be any of the following symbologies:
-
-* `SDCSymbologyEAN13UPCA`
-* `SDCSymbologyEAN8`
-* `SDCSymbologyUPCE`
-* `SDCSymbologyGS1Databar`
-* `SDCSymbologyGS1DatabarExpanded`
-* `SDCSymbologyGS1DatabarLimited`
-
-For composite codes of Type C the 2d component is always `SDCSymbologyPDF417` while the 1d component is `SDCSymbologyCode128`.
-
-## Enabling Composite Codes
-
-Composite code scanning is enabled in the `SDCBarcodeCaptureSettings` as follows:
-
-* One or more composite types need to be enabled via `enabledCompositeTypes`
-* The symbologies associated with those composite types need to be enabled through `enableSymbologiesForCompositeTypes:`.
-
-For example, to enable scanning of composite code A:
-
-* First `SDCCompositeTypeA` is enabled with a call to `enabledCompositeTypes`
-* A call to `enableSymbologiesForCompositeTypes:` passing `SDCCompositeTypeA` the following symbologies will be enabled:
- * `SDCSymbologyEAN13UPCA`
- * `SDCSymbologyEAN8`
- * `SDCSymbologyUPCE`
- * `SDCSymbologyGS1Databar`
- * `SDCSymbologyGS1DatabarExpanded`
- * `SDCSymbologyGS1DatabarLimited`
- * `SDCSymbologyMicroPDF417`
-
-The same can be accomplished by individually enabling all of these symbologies with `setSymbology:enabled:`.
-
-`enableSymbologiesForCompositeTypes:` is a convenience function to enable all at once for a certain composite type. If you only want to scan a subset of the possible symbologies of a composite type then you should only enable those. It is not possible to disable a specific symbology, like `SDCSymbologyGS1DatabarExpanded` for `SDCCompositeTypeA` but keep it enabled for `SDCCompositeTypeB`, it is either enabled for both or neither.
-
-The following lines of code show you how this is done to enable scanning of composite codes A and C. Composite code B will not be recognized in these examples as `SDCCompositeTypeB` is not enabled:
-
-```swift
-let settings = BarcodeCaptureSettings()
-
-let compositeTypes: CompositeType = [.a, .c]
-settings.enableSymbologies(forCompositeTypes: compositeTypes)
-settings.enabledCompositeTypes = compositeTypes
-```
-
-:::note
-Enabling composite codes will slow down the recognition of non-composite codes slightly. You should only enable composite codes if you expect them to be present.
-:::
-
-## Improving Composite Code Recognition
-
-The `SDCSymbologyMicroPDF417` is contained in all composite codes A and B but is generally not very easy to recognize in a large scan area because of its compressed size.
-
-To improve the recognition rate it is advised to restrict the scan area when scanning Composite Code A and B, which is best done through a rectangular location selection.
-
-## Reading Composite Code Data
-
-When composite codes are enabled the Scandit Data Capture SDK automatically couples the composites to the main code and returns the composite’s data through `SDCBarcode.compositeData` and `SDCBarcode.compositeRawData`.
-
-There are two potential cases when a barcode of a symbology with enabled composite extension is returned:
-
-* The barcode has a composite and is returned with composite data
-* The barcode does not have an composite and is returned without composite data
-
-Inside `SDCBarcodeCaptureListener.barcodeCapture:didScanInSession:frameData:` the data can be retrieved from the recognized barcode as follows:
-
-```swift
-let barcode = session.newlyRecognizedBarcode[0]
-
-let data = barcode.data
-let compositeData = barcode.compositeData
-if let compositeData = compositeData {
- // Do something with the data & compositeData.
-} else {
- // Do something with just the data.
-}
-```
diff --git a/versioned_docs/version-8.1.1/partials/_single-scanning.mdx b/versioned_docs/version-8.1.1/partials/_single-scanning.mdx
deleted file mode 100644
index 7c2876f6..00000000
--- a/versioned_docs/version-8.1.1/partials/_single-scanning.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
-Implementing single scanning of barcodes using the Scandit Data Capture SDK can be done in two ways:
-
-- **(Recommended)** Implementing SparkScan, our pre-built UI and workflow for barcode scanning.
-- Implementing the low-level Barcode Capture API.
-
-The SparkScan API provides pre-built UI elements (trigger button, camera view, camera controls), a complete scanning workflow (visual, audio, and haptic feedback, and UI transitions on scan) and offers additional functionality needed to achieve optimal scanning UX, such as:
-
-- Triggering scans via a hardware trigger (volume or dedicated hardware button)
-- Pre-built code rejection and error handling options
-- Option to choose between single and continuous scanning, programmatically or with hold gesture
-- Battery-optimizing features such as idle timeout and camera standby
-- A floating UI that keeps your focus on the tasks at hand while offering the best scanning performances
-
-
- Scanning to a list with SparkScan
-
-
-All of the above functionality is available out-of-the-box, without having to create it yourself via the low-level API.
-
-Both SparkScan and Barcode Capture include AI-powered scanning capabilities that automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. See the [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning) guide for details.
diff --git a/versioned_docs/version-8.1.1/partials/_symbology-properties.mdx b/versioned_docs/version-8.1.1/partials/_symbology-properties.mdx
deleted file mode 100644
index 54bb9455..00000000
--- a/versioned_docs/version-8.1.1/partials/_symbology-properties.mdx
+++ /dev/null
@@ -1,141 +0,0 @@
-Symbologies often have different properties, such as symbol count (length of the barcode) or inverted colors (printed white on black). To provide optimal performances, some properties/values are disabled by default in our SDK. You might need to scan a symbology whose properties are by default disabled. This article lists all symbology specific properties, their defaults and possible values.
-
-## 1D Symbology Properties
-
-* Color-inverted (bright bars on dark background) decoding for symbologies that support it is disabled and must be explicitly enabled.
-* Optional checksum digits (e.g. for interleaved 2 of 5 codes, or MSI-Plessey codes) are always returned as part of the data.
-
-| Symbology | Checksum | Symbol Count | Supports Color-Inversion | Extensions |
-|-----------|:-----------|--------------|:------------------------:|---------------|
-| EAN-13 UPC-A | **Mandatory**: mod10 | **Default**: 12 **Range**: 12 | yes| relaxed_sharp_quiet_zone_check remove_leading_upca_zero two_digit_add_on five_digit_add_on strict ocr_fallback |
-| EAN-8 | **Mandatory**: mod10 | **Default**: 8 **Range**: 8 | yes| relaxed_sharp_quiet_zone_check two_digit_add_on five_digit_add_on strict |
-| UPC-E | **Mandatory**: mod10 | **Default**: 6 **Range**: 6 | yes| return_as_upca remove_leading_upca_zero two_digit_add_on five_digit_add_on strict |
-| Two-Digit Add-on | **Mandatory**: mod10 | **Default**: 2 **Range**: 2 | yes| strict |
-| Five-Digit Add-on | **Mandatory**: mod10 | **Default**: 5 **Range**: 5 | yes| strict |
-| MSI Plessey | **Mandatory**: none **Supported**: mod10, mod11, mod1010, mod1110 **Default**: mod10 | **Default**: 6-32 **Range**: 3-32 | no| strict |
-| Code 128 | **Mandatory**: mod103 | **Default**: 6-40 **Range**: 4-50 | yes| strip_leading_fnc1 strict ocr_fallback |
-| Code 11 | **Mandatory**: none **Supported**: mod11 **Default**: mod11 | **Default**: 7-20 **Range**: 5-34 | no| strict |
-| Code 25 | **Mandatory**: none **Supported**: mod10 | **Default**: 7-20 **Range**: 3-32 | no| strict |
-| IATA 2 of 5 | **Mandatory**: none **Supported**: mod1010 | **Default**: 7-20 **Range**: 3-32 | no| strict |
-| Matrix 2 of 5 | **Mandatory**: none **Supported**: mod10 | **Default**: 7-20 **Range**: 3-32 | no| strict |
-| Code 32 | **Mandatory**: mod10 | **Default**: 8 **Range**: 8 | no| strict |
-| Code 39 | **Mandatory**: none **Supported**: mod43 | **Default**: 6-40 **Range**: 3-50 | yes| full_ascii relaxed_sharp_quiet_zone_check strict ocr_fallback |
-| Code 93 | **Mandatory**: mod47 | **Default**: 6-40 **Range**: 5-60 | yes| full_ascii strict |
-| Codabar | **Mandatory**: none **Supported**: mod16, mod11 | **Default**: 7-20 **Range**: 3-34 | no| strict remove_delimiter_data ocr_fallback |
-| GS1 DataBar 14 | **Mandatory**: mod10 | **Default**: 2 **Range**: 2 | no| strict |
-| GS1 DataBar Expanded | **Mandatory**: mod211 | **Default**: 1-11 **Range**: 1-11 | no| strict |
-| GS1 DataBar Limited | **Mandatory**: mod89 | **Default**: 1 **Range**: 1 | no| relaxed_sharp_quiet_zone_check strict |
-| ITF | **Mandatory**: none **Supported**: mod10 | **Default**: 6-40 **Range**: 4-50 | no| strict |
-| ROYAL_MAIL_4STATE | **Mandatory**: mod103 | **Default**: 7-24 **Range**: 4-50 | no| |
-| KIX | **Mandatory**: none | **Default**: 7-24 **Range**: 4-50 | no| |
-| LAPA | **Mandatory**: none | **Default**: 16 **Range**: 16 | no| |
-| USPS Intelligent Mail | **Mandatory**: none | **Default**: 65 **Range**: 65 | no| |
-| UPU S18 4-State | **Mandatory**: none | **Default**: 19 or 25 **Range**: 19 or 25 | no| fluorescent_orange_ink |
-| Australian Post 4-State | **Mandatory**: none | **Default**: 10-41 **Range**: 10-41 | no| force_table_c force_table_n decode_bar_states |
-| French Post | **Mandatory**: none | | no| fluorescent_orange_ink |
-
-## 2D Symbology Properties
-
-| Symbology | Supports Color-Inversion | Extensions |
-|----------------|--------------------------|------------------------|
-| Aztec Code | yes | |
-| Data Matrix | yes | strip_leading_fnc1 (enabled by default) direct_part_marking_mode |
-| DotCode | yes | |
-| MaxiCode | no | |
-| MicroPDF417 | no | |
-| PDF417 | no | |
-| QR Code | yes | |
-| Micro QR Code | yes | |
-| ArUco | yes | |
-
-## Symbology Extension Descriptions
-
-| Extension | Description |
-|----------------------------------------|---------------------------------------------------------------|
-| full_ascii | Interprets the Code39 code data using two symbols per output character to encode all ASCII characters. |
-| relaxed_sharp_quiet_zone_check | Enables scanning codes that have quiet zones (white area before and after the code) that are significantly smaller than allowed by the symbology specification. Use this extension if you are having difficulties to scan codes due to quiet zone violations. However, enabling it may come at the cost of more false positives under certain circumstances. |
-| return_as_upca | Transforms the UPCE result into its UPCA representation. |
-| remove_leading_upca_zero | Removes the leading zero digit from the result if the UPCA representation extension ‘return_as_upca’ is enabled. |
-| strip_leading_fnc1 | Removes the leading FNC1 character that indicates a GS1 code. To determine whether a certain code is a GS1 code, use ref sc_barcode_is_gs1_data_carrier. |
-| direct_part_marking_mode | Use this mode to improve scan performance when reading direct part marked (DPM) Data Matrix codes. Enabling this extension comes at the cost of increased frame processing times. It is recommended to restrict the scanning area to a smaller part of the image for best performance. |
-| strict | Enforce strict standard adherence to eliminate false positives in blurry, irregular or damaged barcodes at the cost of reduced scan performance. |
-| fluorescent_orange_ink | Enables the scanning of low contrast fluorescent orange codes. Enabling this option can have a negative impact on the scan performance of other symbologies. |
-| force_table_c, force_table_n and decode_bar_states | For Australian Post 4-State, customer information is decoded by default with Table N, and Table C is used as a fallback. force_table_c and force_table_n respectively enforce decoding with either C or N tables, and the symbology extension decode_bar_states will return the error-corrected customer information bars as a string of the bar states, A for ascending, D for descending, T for tracker and F for full. |
-| remove_delimiter_data | For Codabar, removes the start and stop characters from the code and returns only the body of the code in the result. |
-| ocr_fallback | Enables Optical Character Recognition of text as a fallback when other readers fail. This feature requires Smart Scan Intention which is available in SparkScan, Barcode Capture, or through the Linux settings preset `SC_PRESET_SINGLE_CODE_HAND_HELD`. Optionally set a RegEx pattern to constrain results using `SymbologySettings.ocrFallbackRegex()`. **Requires the `LabelCaptureText` module.** |
-
-## Calculating Symbol Counts for Variable-Length Symbologies
-
-The length of data encoded in variable-length symbologies such as Code 128, Codabar, Code 39 etc. is measured as the number of symbols. Depending on the symbology, the symbol count includes the start and end symbol, and/or checksum characters. The following list shows how to calculate the number of symbols for each variable-length symbology. These counts can be used as the input to `sc_symbology_settings_set_active_symbol_counts()`.
-
-### Interleaved-Two-of-Five
-
-The number of symbols corresponds to the number of digits in the code. Note that the number of digits must be even.
-
-Example: the code `“1234567890123”` has a symbol count of 14. For the active symbol count calculation, optional checksum digits are treated like normal data symbols.
-
-### Codabar
-
-The number of symbols corresponds to the number of digits in the code, plus the start and end symbols.
-
-Example: the code `“A2334253D”` has a symbol count of 7 + 2 = 9.
-
-### Code 11
-
-The number of symbols corresponds to the number of digits in the code, plus one or two checksum symbols. For less than ten digits in the code, one checksum symbol is added. Two checksum symbols are added for ten or more digits in the code.
-
-Example: the code `“912-34956”` (`“912-349566”`) has a symbol count of 9 + 1 = 10. The code `“912-3495-6”` (`“912-3495-638”`) has a symbol count of 10 + 2 = 12.
-
-### Code 128
-
-The number of symbols depends on the encoding used (A, B or C). All encodings require a start, an end and a checksum symbol. The ASCII encoding modes (A and B) store each character in one symbol.
-
-Example: the code `“ABC123”` in mode A has a symbol count of 6 + 2 + 1 = 9.
-
-The numeric encoding mode (C) encodes pairs of digits in one symbol.
-
-Example: the code `“123456”` has a symbol count of 3 + 2 + 1 = 6.
-
-Some encoders switch modes inside the code using switch symbols to optimize the code length. In this case the exact encoding used is needed to compute the number of symbols.
-
-### Code 93
-
-The number of symbols corresponds to the number of characters in the code, plus the start and end symbols and 2 checksum digits. Shift characters used in “extended code93” are treated as normal data symbols.
-
-Example: the code `“ABCDE12345”` has a symbol count of 10 + 2 + 2 = 14.
-
-### Code 39
-
-The number of symbols corresponds to the number of characters in the code, plus the start and end symbols. Note that the start and end symbols are not included in the returned barcode data.
-
-Example: the code `“4F70050378196356D”` (`“*4F70050378196356D”`) has a symbol count of 17 + 2 = 19.
-
-### MSI Plessey and Code 25
-
-The number of symbols corresponds to the number of digits in the code.
-
-Example: the code `“12345674”` has a symbol count of 8. For the active symbol count calculation, optional checksum digits are treated like normal data symbols.
-
-### GS1 DataBar 14
-
-The symbol count corresponds to the number of finder patterns in the code. Each finder is accompanied by two data segments.
-
-### GS1 DataBar Expanded
-
-The symbol count cannot be changed. All lengths defined by the standard are supported.
-
-### ROYAL_MAIL_4STATE
-
-The number of symbols corresponds to the number of characters in the code, including the checksum character.
-
-### KIX
-
-The number of symbols corresponds to the number of characters in the code.
-
-### UPU 4-State
-
-The number of symbols corresponds to the number of code words. Two lengths are supported, 19 or 25 codewords with a maximum number of error correcting codewords of 6 or 12 respectively.
-
-### Australian Post 4-State
-
-The number of symbol corresponds to 10 digit FCC and DPID codes, and up to 31 characters representing the customer information bar states.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_system-requirements.mdx b/versioned_docs/version-8.1.1/partials/_system-requirements.mdx
deleted file mode 100644
index d0c63987..00000000
--- a/versioned_docs/version-8.1.1/partials/_system-requirements.mdx
+++ /dev/null
@@ -1,105 +0,0 @@
-## Native SDK
-
-### iOS
-
-| Requirement | Version |
-| ----------- | ------- |
-| iOS | 14.0+ |
-| Architecture| arm64, x86_64 |
-| Camera | 720p+ |
-| GPU | |
-
-### Android
-
-| Requirement | Version |
-| ----------- | ------- |
-| Android | 7.0+ (API level 24) |
-| Java | 8+ |
-| Architecture| arm64v7, arm64, x86, x86_64 |
-| Camera | 720p+ |
-| GPU | |
-
-:::note
-On Android hardware acceleration has to be enabled for the camera preview to work. Hardware acceleration is enabled by default since API level 14 but can potentially be turned off in the Manifest, do not do this if you use the camera.
-:::
-
-### Linux
-
-Supported distributions:
-
-* Ubuntu 18.04 or newer
-* Debian/GNU Linux 10 (Buster) or newer
-* Raspbian 2017-08-17 or newer
-
-:::note
-Most Debian/GNU Linux based systems should be supported as as long as the
-dependency requirements below are met.
-
-RedHat based systems (RPM packages) are not supported officially. The tool 'alien' can be used to convert the Debian packages to RPM packages. If you want to run the SDK on any other Linux
-distribution, unpack the `.deb` file and install the library and headers manually.
-:::
-
-#### Dependencies
-
-| Requirement | Version |
-| ----------- | ------- |
-| GCC (or a comparable compiler) | >= 4.9 |
-| libc | >= 2.27 |
-| pthread | - |
-| dbus | >= 1.6.8 |
-| zlib | >= 1.2.8 (i386 and arm64 only) |
-| NEON CPU support (armhf only) | - |
-| OpenGLES (optional for GPU acceleration) | >= 2.0 |
-| Python (optional for the Python bindings) | >= 3.0 |
-
-
-## Web SDK
-
-| Requirement | Notes |
-| ----------- | ----- |
-| Blob | [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) is used to store the video stream. Check [supported browser versions](https://caniuse.com/#feat=blobbuilder). |
-| WebAssembly | [WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly) is used to run the video processing algorithms. Check [supported browser versions](https://caniuse.com/#feat=wasm). |
-| URL/createObjectURL | [URL.createObjectURL](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL) is used to create a URL for the video stream. Check [supported browser versions](https://caniuse.com/#feat=bloburls). |
-| Web Workers | [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) are used to run the video processing algorithms in a separate thread. Check [supported browser versions](https://caniuse.com/#feat=webworkers). |
-| SharedArrayBuffer | [SharedArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) is **required** for simultaneous multiple barcode tracking. Check [supported browser versions](https://caniuse.com/#feat=sharedarraybuffer). |
-| MediaDevices.getUserMedia | Optional. [MediaDevices.getUserMedia](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) is required for camera video streaming. Check [supported browser versions](https://caniuse.com/#feat=stream). |
-| OffscreenCanvas | Optional. [OffscreenCanvas](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas) allows for GPU acceleration in Web Worker. Check [supported browser versions](https://caniuse.com/#feat=offscreencanvas). |
-| WebGL | Optional. [WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) is used for GPU acceleration. Check [supported browser versions](https://caniuse.com/#feat=webgl). |
-| WebAssembly SIMD | Optional. [WebAssembly SIMD](https://chromestatus.com/feature/6533147810332672) is used for OCR computation acceleration. |
-
-### Browser Compatibility
-
-| Browser | Threads | Single thread |
-|------------------------|---------|---------------|
-| Chrome | 68+ | 64+ |
-| Edge | 79+ | 79+ |
-| Firefox | 105+ | 105+ |
-| Opera | 55+ | 44+ |
-| Safari | 15.2+ | 13+ |
-| Chrome Android | 89+ | 64+ |
-| Firefox Android | 105+ | 105+ |
-| Opera Android | 63+ | 46+ |
-| Safari iOS / Chrome iOS (webkit) | 16.4+ | 14.6+ |
-| Samsung Internet | 15+ | 7+ |
-| Webview Android | No | Yes |
-
-## Frameworks
-
-These platforms are based on the native platforms and therefore the requirements of native platforms apply as well. If a framework has stricter requirements (e.g. it only supports newer versions of Android/iOS) it is explicitly stated.
-
-| Platform | Requirements |
-|-----------------|-----------------------------------------------------|
-| Capacitor | - Capacitor 5.0.0 - Swift 4.0+ |
-| Cordova | - cordova 12.0.0 - cordova-android 10.0.0 - cordova-ios 6.3.0 - Swift 4.0+ |
-| Flutter | - Flutter 3.22.0+ (Dart 3.4.0+) - Swift 4.0+ |
-| React Native | - react-native 0.70+ (0.72+ recommended for modern toolchain support) - Kotlin 1.9.25 - Swift 4.0+ |
-| Titanium | - Titanium 13.0.0+ |
-| .NET for iOS | - .NET SDK 6.0.403+ |
-| .NET for Android| - .NET SDK 6.0.403+ - Kotlin 1.9.25 |
-
-:::warning
-**React Native Known Issues:** While Our SDK integrates perfectly with React Native 0.70.x, this version has known build toolchain compatibility issues with modern development environments (unrelated to the Scandit SDK). These are React Native framework limitations and not caused by the Scandit SDK. We recommend using React Native 0.72+ to avoid these issues.:
- * Android Gradle Plugin version conflicts
- * Kotlin version incompatibilities
- * AndroidX dependency version matrix issues
-:::
diff --git a/versioned_docs/version-8.1.1/partials/_third-party-licenses-csharp.mdx b/versioned_docs/version-8.1.1/partials/_third-party-licenses-csharp.mdx
deleted file mode 100644
index c00884bb..00000000
--- a/versioned_docs/version-8.1.1/partials/_third-party-licenses-csharp.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
-### Third-party Licenses
-
-The Scandit Data Capture SDK relies on several third-party, open-source software libraries. Your application must display the license information for these libraries in many cases.
-
-The Scandit SDK provides a convenient API that you can use to fetch the corresponding text and attributions for all third-party software:
-
-- `DataCaptureContext.OpenSourceSoftwareLicenseInfo()`
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_third-party-licenses-js.mdx b/versioned_docs/version-8.1.1/partials/_third-party-licenses-js.mdx
deleted file mode 100644
index 4543149f..00000000
--- a/versioned_docs/version-8.1.1/partials/_third-party-licenses-js.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
-### Third-party Licenses
-
-The Scandit Data Capture SDK relies on several third-party, open-source software libraries. Your application must display the license information for these libraries in many cases.
-
-The Scandit SDK provides a convenient API that you can use to fetch the corresponding text and attributions for all third-party software:
-
-- `DataCaptureContext.getOpenSourceSoftwareLicenseInfo()`
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/_third-party-licenses.mdx b/versioned_docs/version-8.1.1/partials/_third-party-licenses.mdx
deleted file mode 100644
index bf562d56..00000000
--- a/versioned_docs/version-8.1.1/partials/_third-party-licenses.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
-### Third-party Licenses
-
-The Scandit Data Capture SDK relies on several third-party, open-source software libraries. Your application must display the license information for these libraries in many cases.
-
-The Scandit SDK provides a convenient API that you can use to fetch the corresponding text and attributions for all third-party software:
-
-- `DataCaptureContext.openSourceSoftwareLicenseInfo()`
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/advanced/_id-documents-full-document.mdx b/versioned_docs/version-8.1.1/partials/advanced/_id-documents-full-document.mdx
deleted file mode 100644
index 74782ed0..00000000
--- a/versioned_docs/version-8.1.1/partials/advanced/_id-documents-full-document.mdx
+++ /dev/null
@@ -1,361 +0,0 @@
-### Full Document Scanner
-
-This scanner combines data extraction from all supported parts of the document and merges the data from barcodes, human-readable text, and machine-readable text into one result.
-
-* For card-format documents, data is extracted from the front & the back side of the document.
-* For booklet-format documents (e.g. passports), data is extracted from the main information page.
-
-
-
-
-Asia
-
-| Country | Supported Documents |
-|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Afghanistan | ID Card |
-| Armenia | ID Card, Passport, Paper Passport, Work Permit |
-| Azerbaijan | ID Card |
-| Bangladesh | ID Card, Passport, Polycarbonate Passport |
-| Brunei | ID Card |
-| Cambodia | ID Card, Passport |
-| China | Passport, Exit Entry Permit |
-| Hong Kong | ID Card |
-| India | Passport, PAN Card, Voter ID |
-| India Andhra Pradesh | Driver’s License |
-| India Gujarat | Driver’s License |
-| India Haryana | Driver’s License |
-| India Karnataka | Driver’s License |
-| India Kerala | Driver’s License |
-| India Madhya Pradesh | Driver’s License |
-| India Maharashtra | Driver’s License |
-| India Tamil Nadu | Driver’s License |
-| Indonesia | Driver’s License, ID Card, Passport, Polycarbonate Passport |
-| Japan | Passport, My Number Card |
-| Kazakhstan | Passport |
-| Kyrgyzstan | ID Card, Passport, Polycarbonate Passport |
-| Malaysia | Driver’s License, Passport, MyKAS, MyKad, MyKid, MyPR, MyTentera, Refugee ID, i-Kad, MyPolis |
-| Maldives | ID Card |
-| Myanmar | Driver’s License, Passport |
-| Nepal | Passport |
-| Pakistan | ID Card, Passport, Consular ID, Proof of Registration, Polycarbonate Passport |
-| Pakistan Punjab | Driver’s License |
-| Philippines | Driver’s License, ID Card, Passport, Multipurpose ID, Professional ID, Social Security Card |
-| Singapore | Driver’s License, ID Card, Passport, Employment Pass, Fin Card, Resident ID, S Pass, Work Permit |
-| South Korea | Polycarbonate Passport |
-| Sri Lanka | Driver’s License, ID Card, Passport |
-| Tajikistan | ID Card |
-| Thailand | ID Card, Passport, Alien ID, Polycarbonate Passport |
-| Turkmenistan | Passport, Polycarbonate Passport |
-| Uzbekistan | ID Card, Passport, Driver’s License |
-
-
-
-
-Europe
-
-| Country | Supported Documents |
-|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Europe | Health Insurance Card |
-| Albania | Driver’s License, ID Card, Passport, Driver Card, Professional Driver License |
-| Austria | Driver’s License, ID Card, Passport, Paper Passport, Polycarbonate Passport, Refugee Passport, Polycarbonate Refugee Passport |
-| Belarus | Driver’s License, ID Card, Passport, Polycarbonate Passport, Paper Passport |
-| Belgium | Driver’s License, ID Card, Passport, Residence Permit, Minors ID, Resident ID, Provisional Driving License, Special ID, Paper Passport |
-| Bosnia And Herzegovina | Driver’s License, ID Card (incl. Cyrillic script), Passport |
-| Bulgaria | Driver’s License (incl. Cyrillic script), ID Card (incl. Cyrillic script), Passport, Alien ID, Residence Permit, Paper Passport |
-| Croatia | Driver’s License, ID Card, Passport, Residence Permit |
-| Cyprus | Driver’s License, ID Card, Passport, Residence Permit |
-| Czechia | Driver’s License, ID Card, Passport, Residence Permit |
-| Denmark | Driver’s License, Passport, Polycarbonate Passport |
-| Estonia | Driver’s License, ID Card, Passport, Polycarbonate Passport, Paper Passport |
-| Finland | Driver’s License, ID Card, Passport, Residence Permit, Alien ID, Polycarbonate Passport |
-| France | Driver’s License, ID Card, Professional ID, Paper Passport |
-| Georgia | Driver’s License, ID Card, Paper Passport |
-| Germany | Driver’s License, ID Card, Passport, Residence Permit, eID, Driver Qualification Card, Paper Passport |
-| Greece | Driver’s License, ID Card, Passport, Residence Permit, Polycarbonate Passport, Paper Passport |
-| Hungary | Driver’s License, ID Card, Passport, Paper Passport |
-| Ireland | Driver’s License, Passport, Passport Card, Public Services Card, Polycarbonate Passport |
-| Italy | Driver’s License, ID Card, Residence Permit, Paper Passport |
-| Kosovo | Driver’s License, ID Card, Passport, Paper Passport |
-| Latvia | Driver’s License, ID Card, Passport, Alien ID, Polycarbonate Passport, Polycarbonate Alien Passport |
-| Liechtenstein | ID Card, Driver’s License |
-| Lithuania | Driver’s License, ID Card, Passport, Residence Permit |
-| Luxembourg | Driver’s License, ID Card, Passport, Residence Permit |
-| Malta | Driver’s License, ID Card, Residence Permit, Paper Passport, Polycarbonate Passport |
-| Moldova | Passport, Driver’s License, ID Card, Polycarbonate Passport, Paper Passport |
-| Montenegro | Driver’s License, ID Card (incl. Cyrillic script), Passport |
-| Netherlands | Driver’s License, ID Card, Passport, Residence Permit, Alien ID, Polycarbonate Passport |
-| North Macedonia | Driver’s License (incl. Cyrillic script), ID Card (incl. Cyrillic script), Passport, Polycarbonate Passport |
-| Norway | Driver’s License, ID Card, Passport, Residence Permit, Polycarbonate Passport |
-| Poland | Driver’s License, ID Card, Passport, Polycarbonate Passport, Paper Passport |
-| Portugal | Driver’s License, ID Card, Passport, Paper Passport |
-| Romania | Driver’s License, ID Card, Passport, Residence Permit |
-| Russia | Driver’s License, Passport |
-| Serbia | Driver’s License, ID Card (incl. Cyrillic script), Passport |
-| Slovakia | Driver’s License, ID Card, Passport, Residence Permit, Polycarbonate Passport |
-| Slovenia | Driver’s License, ID Card, Passport, Residence Permit |
-| Spain | Driver’s License, ID Card, Passport, Residence Permit, Alien ID, Paper Passport |
-| Sweden | Driver’s License, ID Card, Passport, Residence Permit, SIS ID, Social Security Card, Polycarbonate Refugee Passport |
-| Switzerland | Driver’s License, ID Card, Passport, Residence Permit, Polycarbonate Passport, Paper Passport |
-| UK | Driver’s License, Passport, Residence Permit, Proof of Age Card, Military ID, Asylum Request, Paper Passport |
-| Ukraine | Driver’s License (incl. Cyrillic script), ID Card (incl. Cyrillic script), Passport, Residence Permit (incl. Cyrillic script) |
-
-
-
-
-Central and South America
-
-| Country | Supported Documents |
-|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Argentina | ID Card, Passport, Alien ID, Paper Passport |
-| Bahamas | Driver’s License, Residence Permit, Work Permit, Paper Passport, Polycarbonate Passport, Temporary Residence Permit |
-| Bolivia | Driver’s License, ID Card, Passport, Minors ID, Paper Passport |
-| Brazil | Driver’s License, Alien ID |
-| Brazil Ceara | ID Card |
-| Brazil Distrito Federal | ID Card |
-| Brazil Goias | ID Card |
-| Brazil Maranhao | ID Card |
-| Brazil Mato Grosso | ID Card |
-| Brazil Minas Gerais | ID Card |
-| Brazil Para | ID Card |
-| Brazil Parana | ID Card |
-| Brazil Pernambuco | ID Card |
-| Brazil Rio De Janeiro | ID Card |
-| Brazil Santa Catarina | ID Card |
-| Brazil Sao Paolo | ID Card |
-| Brazil Sergipe | ID Card |
-| Chile | Driver’s License, ID Card, Passport, Alien ID, Paper Passport |
-| Colombia | Driver’s License, ID Card, Passport, Alien ID, Minors ID, Temporary Protection Permit |
-| Costa Rica | ID Card, Passport, Paper Passport, Polycarbonate Passport, Residence Permit |
-| Cuba | Passport |
-| Dominican Republic | ID Card, Passport, Non Voter ID |
-| Ecuador | Driver’s License, ID Card, Passport |
-| El Salvador | ID Card, Driver’s License |
-| Guatemala | Driver’s License, ID Card, Passport, Alien ID, Consular ID, Paper Passport |
-| Guyana | ID Card |
-| Haiti | Driver’s License, ID Card, Passport, Paper Passport |
-| Honduras | Paper Passport |
-| Jamaica | Driver’s License, Passport, Voter ID |
-| Mexico | Passport, Consular Voter ID, Voter ID, Consular ID, Residence Permit |
-| Mexico Aguascalientes | Driver’s License |
-| Mexico Baja California | Driver’s License |
-| Mexico Chiapas | Driver’s License |
-| Mexico Chihuahua | Driver’s License |
-| Mexico Ciudad De Mexico | Driver’s License |
-| Mexico Coahuila | Driver’s License |
-| Mexico Colima | Driver’s License |
-| Mexico Durango | Driver’s License |
-| Mexico Guanajuato | Driver’s License |
-| Mexico Hidalgo | Driver’s License |
-| Mexico Jalisco | Driver’s License |
-| Mexico Mexico | Driver’s License |
-| Mexico Michoacan | Driver’s License |
-| Mexico Morelos | Driver’s License |
-| Mexico Nayarit | Driver’s License |
-| Mexico Nuevo Leon | Driver’s License |
-| Mexico Oaxaca | Driver’s License |
-| Mexico Quintana Roo | Driver’s License |
-| Mexico Quintana Roo Solidaridad| Driver’s License |
-| Mexico Quintana Roo, Benito Juarez| Driver’s License |
-| Mexico Quintana Roo-Cozumel | Driver’s License |
-| Mexico San Luis Potosi | Driver’s License |
-| Mexico Sinaloa | Driver’s License |
-| Mexico Sonora | Driver’s License |
-| Mexico Tabasco | Driver’s License |
-| Mexico Tamaulipas | Driver’s License |
-| Mexico Tlaxcala | Driver’s License |
-| Mexico Veracruz | Driver’s License |
-| Mexico Yucatan | Driver’s License |
-| Mexico Zacatecas | Driver’s License |
-| Nicaragua | ID Card, Paper Passport |
-| Panama | Driver’s License, ID Card, Passport, Residence Permit |
-| Paraguay | Driver’s License, ID Card, Paper Passport |
-| Peru | Driver’s License, ID Card, Passport, Minors ID |
-| Puerto Rico | Driver’s License |
-| Saint Kitts And Nevis | Driver’s License |
-| Trinidad And Tobago | Driver’s License, ID Card, Passport |
-| Uruguay | ID Card, Paper Passport |
-| Venezuela | Driver’s License, ID Card, Passport |
-
-
-
-
-Middle East and Africa
-
-| Country | Supported Documents |
-|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Algeria | Driver’s License, ID Card, Passport, Paper Passport |
-| Bahrain | ID Card (incl. Arabic script), Driver’s License, Paper Passport |
-| Benin | ID Card |
-| Botswana | ID Card |
-| Burkina Faso | ID Card, Driver's License, Paper Passport |
-| Cameroon | ID Card, Passport, Polycarbonate Passport |
-| Comoros | Passport, Paper Passport |
-| Democratic Republic of the Congo| Voter ID |
-| Egypt | ID Card (incl. Arabic script), Driver’s License |
-| Eswatini | Passport |
-| Gambia | ID Card, Paper Passport |
-| Ghana | Driver’s License, ID Card, Passport |
-| Guinea | ID Card, Polycarbonate Passport |
-| Iran | Paper Passport |
-| Iraq | Passport, Polycarbonate Passport |
-| Israel | Driver’s License, Paper Passport |
-| Ivory Coast | Driver’s License, ID Card |
-| Jordan | ID Card (incl. Arabic script), Paper Passport |
-| Kenya | ID Card, Passport, Driver’s License |
-| Kuwait | Driver’s License, ID Card (incl. Arabic script), Resident ID (incl. Arabic script), Paper Passport |
-| Lebanon | Driver’s License, ID Card (incl. Arabic script), Paper Passport |
-| Liberia | ID Card |
-| Libya | Passport (incl. Arabic script), Paper Passport |
-| Mali | ID Card |
-| Mauritius | ID Card |
-| Morocco | Driver’s License, ID Card, Paper Passport |
-| Mozambique | ID Card, Driver’s License |
-| Namibia | ID Card, Paper Passport |
-| Nigeria | Driver’s License, ID Card, Passport, Voter ID, Polycarbonate Passport |
-| Oman | ID Card (incl. Arabic script), Resident ID (incl. Arabic script), Driver’s License, Paper Passport |
-| Palestine | Passport (incl. Arabic script), Paper Passport |
-| Qatar | Driver’s License, Passport (incl. Arabic script), Residence Permit (incl. Arabic script), ID Card |
-| Rwanda | ID Card, Polycarbonate Passport |
-| Saudi Arabia | Driver’s License (incl. Arabic script), ID Card, Passport (incl. Arabic script), Resident ID (incl. Arabic script), Paper Passport |
-| Senegal | ID Card, Paper Passport |
-| South Africa | Driver’s License, ID Card, Passport |
-| Sudan | Passport, Polycarbonate Passport |
-| Syria | ID Card (incl. Arabic script), Passport (incl. Arabic script), Paper Passport |
-| Tanzania | Driver’s License, ID Card, Polycarbonate Passport, Voter ID |
-| Togo | ID Card |
-| Tunisia | Driver’s License, Passport (incl. Arabic script), Paper Passport |
-| Turkey | Driver’s License, ID Card, Passport, Paper Passport |
-| UAE | Driver’s License, ID Card (incl. Arabic script), Passport (incl. Arabic script), Resident ID (incl. Arabic script), Paper Passport, Polycarbonate Passport |
-| Uganda | Driver’s License, ID Card, Paper Passport, Polycarbonate Passport |
-| Zambia | Driver's License, Paper Passport |
-| Zimbabwe | ID Card, Passport, Driver's License, Polycarbonate Passport |
-
-
-
-
-North America
-
-| Country | Supported Documents |
-|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Canada | Passport, Residence Permit, Tribal ID, Weapon Permit, Citizenship Certificate, Polycarbonate Passport |
-| Canada Alberta | Driver’s License, ID Card |
-| Canada British Columbia | Driver’s License, ID Card, Public Services Card |
-| Canada Manitoba | Driver’s License, ID Card |
-| Canada New Brunswick | Driver’s License, ID Card |
-| Canada Newfoundland And Labrador| Driver’s License, ID Card |
-| Canada Northwest Territories | Driver’s License, ID Card |
-| Canada Nova Scotia | Driver’s License, ID Card |
-| Canada Nunavut | Driver’s License, ID Card |
-| Canada Ontario | Driver’s License, ID Card, Health Insurance Card |
-| Canada Prince Edward Island | ID Card, Driver’s License |
-| Canada Quebec | Driver’s License, Health Insurance Card |
-| Canada Saskatchewan | Driver’s License, ID Card |
-| Canada Yukon | Driver’s License, ID Card |
-| USA | Passport, Passport Card, Border Crossing Card, Global Entry Card, Green Card, Military ID, Twic Card, Uniformed Services ID, Veteran ID, Work Permit, Polycarbonate Passport, Social Security Card |
-| USA Alabama | Driver’s License*, ID Card* |
-| USA Alaska | Driver’s License*, ID Card* |
-| USA Arizona | Driver’s License*, ID Card* |
-| USA Arkansas | Driver’s License*, ID Card* |
-| USA California | Driver’s License*, ID Card* |
-| USA Colorado | Driver’s License*, ID Card* |
-| USA Connecticut | Driver’s License*, ID Card* |
-| USA Delaware | Driver’s License*, ID Card* |
-| USA District Of Columbia | Driver’s License*, ID Card* |
-| USA Florida | Driver’s License*, ID Card*, Medical Marijuana ID |
-| USA Georgia | Driver’s License*, ID Card* |
-| USA Hawaii | Driver’s License*, ID Card* |
-| USA Idaho | Driver’s License*, ID Card |
-| USA Illinois | Driver’s License*, ID Card* |
-| USA Indiana | Driver’s License*, ID Card* |
-| USA Iowa | Driver’s License*, ID Card* |
-| USA Kansas | Driver’s License*, ID Card* |
-| USA Kentucky | Driver’s License*, ID Card* |
-| USA Louisiana | Driver’s License*, ID Card* |
-| USA Maine | Driver’s License*, ID Card* |
-| USA Maryland | Driver’s License*, ID Card* |
-| USA Massachusetts | Driver’s License*, ID Card* |
-| USA Michigan | Driver’s License*, ID Card* |
-| USA Minnesota | Driver’s License*, ID Card* |
-| USA Mississippi | Driver’s License*, ID Card* |
-| USA Missouri | Driver’s License*, ID Card* |
-| USA Montana | Driver’s License*, ID Card* |
-| USA Nebraska | Driver’s License*, ID Card* |
-| USA Nevada | Driver’s License*, ID Card* |
-| USA New Hampshire | Driver’s License*, ID Card* |
-| USA New Jersey | Driver’s License*, ID Card* |
-| USA New Mexico | Driver’s License*, ID Card* |
-| USA New York | Driver’s License*, ID Card* |
-| USA New York City | ID Card |
-| USA North Carolina | Driver’s License*, ID Card* |
-| USA North Dakota | Driver’s License*, ID Card* |
-| USA Ohio | Driver’s License*, ID Card* |
-| USA Oklahoma | Driver’s License*, ID Card* |
-| USA Oregon | Driver’s License*, ID Card* |
-| USA Pennsylvania | Driver’s License*, ID Card*, Medical Marijuana ID |
-| USA Rhode Island | Driver’s License*, ID Card* |
-| USA South Carolina | Driver’s License*, ID Card* |
-| USA South Dakota | Driver’s License*, ID Card* |
-| USA Tennessee | Driver’s License*, ID Card* |
-| USA Texas | Driver’s License*, ID Card* |
-| USA Utah | Driver’s License*, ID Card* |
-| USA Vermont | Driver’s License*, ID Card* |
-| USA Virginia | Driver’s License*, ID Card* |
-| USA Washington | Driver’s License*, ID Card* |
-| USA West Virginia | Driver’s License*, ID Card* |
-| USA Wisconsin | Driver’s License*, ID Card* |
-| USA Wyoming | Driver’s License*, ID Card* |
-
-\* Vertical IDs are supported
-
-
-
-Oceania
-
-| Country | Supported Documents |
-|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Australia | Passport, Polycarbonate Passport |
-| Australia Australian Capital Territory| Driver’s License, ID Card |
-| Australia New South Wales | Driver’s License, ID Card, Mobile Driver’s License |
-| Australia Northern Territory | Driver’s License, Proof of Age Card |
-| Australia Queensland | Driver’s License, Proof of Age Card |
-| Australia South Australia | Driver’s License, Proof of Age Card, Mobile Driver’s License |
-| Australia Tasmania | Driver’s License, ID Card |
-| Australia Victoria | Driver’s License, Proof of Age Card, Mobile Driver’s License |
-| Australia Western Australia | Driver’s License, ID Card |
-| New Zealand | Driver’s License, Passport, Polycarbonate Passport |
-
-
-
-
-
-#### Anonymized Documents
-
-Some countries have specific requirements for the anonymization of documents. By default, ID Capture will omit sensitive fields from countries with such restrictions. To control this behavior, you can set the `IdAnonymizationMode` parameter.
-Depending on the anonymization mode, certain sensitive fields are not extracted from documents (their values are returned as nil) or they are blacked out on the returned document images.
-
-Documents and fields that are subject to anonymization are listed below:
-
-
-
-
-Anonymized Documents
-| Country | Documents | Fields |
-|--------------|---------------------------------------------------------|-------------------------------------------------------|
-| Germany | ID Card | Document Number (VIZ & MRZ), Additional Document Number, Full MRZ |
-| Germany | Passport, Diplomatic Passport, Minor’s Passport | Document Number (VIZ & MRZ), Full MRZ |
-| Hong Kong | ID Card | Document Number |
-| Hong Kong | Passport, Diplomatic Passport | Document Number (VIZ & MRZ), MRZ Opt1, Full MRZ |
-| Malaysia | MyKad, MyKAS, MyKid, MyPR, MyTentera | Religion |
-| Netherlands | Driver’s License | Personal ID Number |
-| Netherlands | ID Card | Personal ID Number, MRZ Opt1, Full MRZ |
-| Netherlands | Passport, Diplomatic Passport | MRZ Opt1, Full MRZ |
-| Singapore | Driver’s License | Document Number |
-| Singapore | Employment Pass | Personal ID Number |
-| Singapore | Fin Card, ID Card, Resident ID | Document Number |
-| Singapore | Passport, Diplomatic Passport | Document Number (VIZ & MRZ), MRZ Opt1, Full MRZ |
-| Singapore | S Pass, Work Permit | Document Number, Personal ID Number |
-| South Korea | Driver’s License | Personal ID Number |
-| South Korea | ID Card | Document Number |
-| South Korea | Passport, Diplomatic Passport | Personal ID Number, MRZ Opt1, Full MRZ |
-
-
diff --git a/versioned_docs/version-8.1.1/partials/advanced/_id-documents-single-side.mdx b/versioned_docs/version-8.1.1/partials/advanced/_id-documents-single-side.mdx
deleted file mode 100644
index 2587e594..00000000
--- a/versioned_docs/version-8.1.1/partials/advanced/_id-documents-single-side.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
-### Single-Side Scanner
-
-This scanner performs data extraction on specific parts of the document, focusing only on one side.
-
-#### Machine Readable Zone (MRZ)
-
-The single-side scanner's machine-readable zone mode is compatible with all machine-readable travel documents (MRTD) as defined by the International Civil Aviation Organization (ICAO). Additionally, it supports certain non-ICAO standards.
-
-Captured MRZ data is parsed and can be accessed through the `CapturedId` interface. For details on retrieving raw MRZ data, please refer to the `MrzResult` documentation.
-
-| Region | Supported Documents | ICAO MRTD Type |
-|-------------|---------------------|----------------|
-| Worldwide | All Passports | TD3 |
-| Worldwide | ICAO-compliant Visa | MRV |
-| Europe | All ID Cards | TD1 |
-| USA | Enhanced Driver’s License Green Card Passport Card Border Crossing Card NEXUS + Global Entry Cards | TD1 |
-| Canada | Enhanced Driver’s License | TD1 |
-| Switzerland | Driver’s License | Non-ICAO |
-| Asia | China Mainland Travel Permit for Hong Kong & Macau Residents China Mainland Travel Permit for Taiwan Residents China Exit-Entry Permit for Traveling to and from Hong Kong and Macau (往来港澳通行证) China Exit-Entry Permit for Traveling to and from Taiwan (往来台灣通行证) APEC (Asia-Pacific Economic Cooperation) Business Travel Card | Non-ICAO |
-
-#### Barcode
-
-The single-side scanner's barcode mode extracts data from ID documents with PDF417 barcodes.
-
-Barcodes are captured and parsed so that the data can be accessed via `CapturedId`. To access the raw barcode data, consult the documentation of `BarcodeResult`.
-
-| Country | Supported Documents | PDF417 Barcode Location |
-|-------------|------------------------------------------------------------------|-------------------------|
-| USA | Driver License, ID Card Support for all versions of the Driver License and Identification Standard published by AAMVA | Back |
-| USA | Common Access Card (CAC) | Front |
-| USA | Uniformed Services ID Card (USID) | Back |
-| Argentina | ID Card | Front |
-| Colombia | ID Card, Driver’s License | Back |
-| South Africa | Smart ID Card, Driver’s License | Back |
-
-#### Visual Inspection Zone (VIZ)
-
-The single-side scanner's Visual Inspection Zone mode extracts human-readable text from documents. Unlike the full document scanner, this mode focuses solely on the front side of the document, extracting only the visible text while ignoring barcodes and machine-readable zones.
-
-Extracted text data is accessible through the `CapturedId` interface. For more information on retrieving raw text data, please refer to the `VizResult` documentation.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/advanced/_id-documents-validate.mdx b/versioned_docs/version-8.1.1/partials/advanced/_id-documents-validate.mdx
deleted file mode 100644
index 5d555f50..00000000
--- a/versioned_docs/version-8.1.1/partials/advanced/_id-documents-validate.mdx
+++ /dev/null
@@ -1,6 +0,0 @@
-ID Validate includes a range of checks to ensure the scanned document is valid. The available checks are dependent on the document type and country and are described in the following section.
-
-| Region | Supported Documents | Supported Checks |
-|-------------|---------------------|------------------|
-| USA | Driver’s License, ID Card | Voided Document Detection, AAMVA Barcode Verification |
-| Canada | Driver’s License, ID Card | Voided Document Detection |
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/advanced/_sparkscan-customization.mdx b/versioned_docs/version-8.1.1/partials/advanced/_sparkscan-customization.mdx
deleted file mode 100644
index 028e80ed..00000000
--- a/versioned_docs/version-8.1.1/partials/advanced/_sparkscan-customization.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
-You can customize many aspects of the default SparkScan UI and UX to suit your needs and particular use case. These customizations include the:
-
-* Colors of all items (i.e. icons, buttons, toolbar)
-* Trigger button icon
-* All toast messages
-* Size of the preview
-* Visibility of any/all icons
-* Trigger button
-
-### Trigger button
-
-The default trigger button in SparkScan has been designed based on our experience and feedback received to be generally suited across a multitude of industry use cases, custom trigger implementations are still supported.
-
-This is achieved by hiding the default trigger button (via `sparkScanView.isTriggerButtonVisible`), and then controlling the scanning process as best suits your needs:
-
-* Using a custom button embedded in you app to call `sparkScanView.startScanning()` to start scanning. You can adapt the trigger button to the state changes using the SparkScanViewUiListener.
-* Using the mini-preview close button (via `sparkScanView.previewCloseControlVisible`) or your desired button (via `sparkScanView.pauseScanning()`) to stop scanning.
-
-Alternatively, you can rely entirely on a hardware button, if you have enabled that feature (via sparkScanViewSettings.hardwareTriggerEnabled).
-
-Some example customizations:
-
-
- Customized Self-Scanning application with custom FAB button and preview expanded by default
-
-
-
- Customized mPOS application using the existing scan button to trigger the scanner
-
-
-### Settings Toolbar
-
-The Settings Toolbar is hidden by default in SparkScan, as the most relevant controls are already visible in the camera preview.
-However, additional advanced controls can be made available, such as:
-
-* Target Mode
-* Continuos Mode
-
-By enabling the visibility of these buttons, the Settings Toolbar will appear at the bottom of the camera preview.
-
-### Add Advanced Scanning Modes to the Toolbar
-
-SparkScan is our best solution for high-speed single scanning and scan-intensive workflows. Depending on your use case, you can use SparkScan in conjunction with other Scandit advanced scanning modes, such as MatrixScan Find or MatrixScan Count, to speed up your workflows.
-
-SparkScan offers pre-build buttons you can add to the setting toolbar to easily move to different scan modes from within the SparkScan UI.
-
-First you will need to show these buttons:
-
-```sh
-// Show the Label Capture, MatrixScan Count, and MatrixScan Find buttons
-sparkScanView.labelCaptureButtonVisible = true;
-sparkScanView.barcodeCountButtonVisible = true;
-sparkScanView.barcodeFindButtonVisible = true;
-```
-
-
- The standard toolbar without additional scanning modes added.
-
-
-
- The toolbar with MatrixScan Find and MatrixScan Count buttons.
-
-
-In addition you have to add a listener to the `SparkScanView` via `SparkScanView.setListener()`. You will then receive callbacks when the MatrixScan Find button or MatrixScan Count button is tapped from the toolbar.
diff --git a/versioned_docs/version-8.1.1/partials/configure-symbologies/_calculate-symbol-count.mdx b/versioned_docs/version-8.1.1/partials/configure-symbologies/_calculate-symbol-count.mdx
deleted file mode 100644
index e1825c59..00000000
--- a/versioned_docs/version-8.1.1/partials/configure-symbologies/_calculate-symbol-count.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
-### How to Calculate the Active Symbol Count
-
-Calculating the active symbol count is symbology-specific as each symbology has a different symbol definition. To understand what a symbology's default active symbol count range is and to learn how to compute the active symbol count for a particular symbology, see [symbology properties](../../symbology-properties).
-
-As an alternative, you can also use the Scandit Demo App (linked above). After you have installed the app and scanned the codes you are interested in, the active symbol count appears on the result screen.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/configure-symbologies/_capture-presents.mdx b/versioned_docs/version-8.1.1/partials/configure-symbologies/_capture-presents.mdx
deleted file mode 100644
index 507f4e82..00000000
--- a/versioned_docs/version-8.1.1/partials/configure-symbologies/_capture-presents.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
-### Symbology Presets by Industry
-
-:::warning
-The capture settings presets in this section are currently only available for single scanning modes (Barcode Capture, SparkScan) and are **not available** for MatrixScan.
-:::
-
-An alternative to enabling your desired symbologies individually in your capture settings, you can use a predefined industry vertical `CapturePreset`.
-
-The available presets and the corresponding symbologies enabled by each is listed below.
-
-:::tip
-You can still enable or disable individual symbologies as needed after creating your capture settings using one the presents.
-:::
-
-| Preset | Symbologies Enabled |
-| ------ | ------------------- |
-| TRANSPORT | Code128 QR Codes Code 39 Data Matrix EAN13_UPCA Interleaved 2-of-5 Aztec EAN8 PDF417 UPCE |
-| LOGISTICS | Code128 QR Codes Code 39 Data Matrix EAN13_UPCA Interleaved 2-of-5 Codabar EAN8 PDF417 UPCE |
-| RETAIL | EAN13_UPCA Code128 QR Codes Code 39 EAN8 Data Matrix Interleaved 2-of-5 UPCE GS1 Databar GS1 Databar Expanded |
-| HEALTHCARE | Code128 Data Matrix QR Code EAN13_UPCA Code39 MicroPDF417 Interleaved 2-of-5 MSI Plessey EAN8 |
-| MANUFACTURING | Code128 Data Matrix Code 39 QR Codes EAN13_UPCA Interleaved 2-of-5 PDF417 UPCE EAN8 |
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/configure-symbologies/_enable-symbologies.mdx b/versioned_docs/version-8.1.1/partials/configure-symbologies/_enable-symbologies.mdx
deleted file mode 100644
index 75e714a8..00000000
--- a/versioned_docs/version-8.1.1/partials/configure-symbologies/_enable-symbologies.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
-For you app to read a given type of symbology, you need to enable it in the capture settings of the barcode capture mode you are using. For example:
-
-* `SparkScanSettings.SparkScanSettings()` for SparkScan
-* `BarcodeCaptureSettings.enableSymbology()` for barcode capture
-* `BarcodeBatchSettings.enableSymbology()` for barcode batch (MatrixScan)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/configure-symbologies/_intro.mdx b/versioned_docs/version-8.1.1/partials/configure-symbologies/_intro.mdx
deleted file mode 100644
index 58f8caa9..00000000
--- a/versioned_docs/version-8.1.1/partials/configure-symbologies/_intro.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
-This page describes the steps to configure a barcode based capture mode to read only the specific barcodes you require.
-
-When integrating Scandit barcode scanning into your application, you must configure the type(s) of barcodes that you need to scan. Generally, it is best to enable only those symbologies you need, as this ensures the best performance and user experience. No symbologies are enabled by default, to enable scanning of a particular barcode, its symbology must be enabled.
-
-:::tip
-If you are unsure what symbologies you need to scan, use the Scandit Demo App available in the [Apple App Store](https://apps.apple.com/us/app/scandit-sdk-showcase/id453880584) and [Android Play Store](https://play.google.com/store/apps/details?id=com.scandit.demoapp). After you have installed the app, select the “Any Code” mode and scan the codes you are interested in. The name of the symbology appears on the result screen.
-:::
-
-See the [Barcode Symbologies](../../barcode-symbologies) page for all supported barcode types. Additionally, the available symbol count range, checksum, extensions, etc., for all symbologies are listed in [Symbology Properties](../../symbology-properties).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/count/_clustering.mdx b/versioned_docs/version-8.1.1/partials/count/_clustering.mdx
deleted file mode 100644
index a59f4479..00000000
--- a/versioned_docs/version-8.1.1/partials/count/_clustering.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
-Clustering is a feature that enables grouping multiple barcodes together, either based upon their visual context or manually by the user.
-
-
-
-By default, clustering is disabled. It is configured via setting `ClusteringMode` to one of the following available options:
-
-* `DISABLED`: No clustering is performed.
-* `MANUAL`: Manual clustering is supported. The user can select which barcodes to cluster using the on-screen UI.
-* `AUTO`: Clustering is automatically performed and cannot be manually tuned.
-* `AUTO_WITH_MANUAL_CORRECTION`: Clustering is performed automatically, but clusters can also be formed or dissolved manually using the UI.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/count/_tote-mapping.mdx b/versioned_docs/version-8.1.1/partials/count/_tote-mapping.mdx
deleted file mode 100644
index bc30a934..00000000
--- a/versioned_docs/version-8.1.1/partials/count/_tote-mapping.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
-Tote mapping is a feature that allows you to map barcodes to specific totes. This is useful for In-Store Order Fulfillment scenarios where you need to scan a barcode and have the system automatically assign the item to a specific tote.
-
-
-
-MatrixScan Count additionally supports the concept of sub-totes. Sub-totes are useful when you have a large tote that contains multiple smaller totes. When you scan a barcode, the system will automatically assign the item to the correct sub-tote.
-
-
-
-This functionality is enabled and configured via the following classes:
-
-* `BarcodeSpatialGrid`
-* `BarcodeSpatialGridEditorView`
-* `BarcodeSpatialGridEditorViewSettings`
-* `BarcodeSpatialGridEditorViewListener`
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-android.mdx b/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-android.mdx
deleted file mode 100644
index a1933099..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-android.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```java
-DataCaptureContext dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-dotnet.mdx b/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-dotnet.mdx
deleted file mode 100644
index 62232486..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-dotnet.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-ios.mdx b/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-ios.mdx
deleted file mode 100644
index 8c29751c..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-ios.mdx
+++ /dev/null
@@ -1,18 +0,0 @@
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-
-
-
-```swift
-self.context = DataCaptureContext(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
-```
-
-
-
-
-
-```objectivec
-SDCDataCaptureContext *dataCaptureContext = [SDCDataCaptureContext contextForLicenseKey:@"-- ENTER YOUR SCANDIT LICENSE KEY HERE --"];
-```
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-react-native.mdx b/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-react-native.mdx
deleted file mode 100644
index f56c7a71..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-react-native.mdx
+++ /dev/null
@@ -1,63 +0,0 @@
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-The first step to enable any data capture mode is to create a new [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The `DataCaptureContext` handles licensing and a valid Scandit Data Capture SDK license key must be passed during initialization to activate scanning.
-
-:::tip
-If an error message appears on screen after initialization, review the [Context Status Codes](https://docs.scandit.com/data-capture-sdk/react-native/core/api/context-status.html#status-codes) to learn more about the specific reason.
-:::
-
-If the app uses only a single scanning mode, create a single `DataCaptureContext` within the scanner component.
-
-
-
- ```ts
- const context = useMemo(() => {
- return DataCaptureContext.initialize('-- ENTER YOUR SCANDIT LICENSE KEY HERE --');
- }, []);
- ```
-
-
- ```js
- const context = useMemo(() => {
- return DataCaptureContext.initialize('-- ENTER YOUR SCANDIT LICENSE KEY HERE --');
- }, []);
- ```
-
-
-
-If the app uses multiple scanning modes, create the `DataCaptureContext` as a singleton instance and import it into each scanner component.
-
-
-
- ```ts
- import { DataCaptureContext } from 'scandit-react-native-datacapture-core';
-
- DataCaptureContext.initialize('-- ENTER YOUR SCANDIT LICENSE KEY HERE --');
-
- export default DataCaptureContext.instance;
- ```
- ```ts
- import dataCaptureContext from 'path/to/DataCaptureContext'
- ```
-
-
- ```js
- import { DataCaptureContext } from 'scandit-react-native-datacapture-core';
-
- DataCaptureContext.initialize('-- ENTER YOUR SCANDIT LICENSE KEY HERE --');
-
- export default DataCaptureContext.instance;
- ```
-
- ```js
- import dataCaptureContext from 'path/to/DataCaptureContext'
- ```
-
-
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-web.mdx b/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-web.mdx
deleted file mode 100644
index e8ce89a0..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_create-data-capture-context-web.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
-The first step to add capture capabilities to your application is to create a new Data Capture Context with a valid Scandit Data Capture SDK license key.
-
-```typescript
- const context = await DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --",{
- libraryLocation: new URL("library/engine/", document.baseURI).toString(),
- moduleLoaders: [barcodeCaptureLoader()], // module for capture mode e.g. [barcodeCaptureLoader()],
- });
-
- const dataCaptureView = new DataCaptureView();
- // #root element should be present in .html document
- dataCaptureView.connectToElement(document.getElementById("root"));
-
- await dataCaptureView.setContext(context);
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_external-deps-android.mdx b/versioned_docs/version-8.1.1/partials/get-started/_external-deps-android.mdx
deleted file mode 100644
index a7a305b4..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_external-deps-android.mdx
+++ /dev/null
@@ -1,6 +0,0 @@
-The Scandit Data Capture SDK modules depend on a few standard libraries that you can find listed below. If you are including the Scandit Data Capture SDK through **Gradle** or **Maven**, all of these dependencies are automatically pulled in and there is no need for you to do anything further.
-
-If you directly add the AAR files to the project, you need to add these dependencies yourself.
-
-* `org.jetbrains.kotlin:kotlin-stdlib:[version]`
-* `androidx.annotation:annotation:[version]`
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview-ios.mdx b/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview-ios.mdx
deleted file mode 100644
index d963c341..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview-ios.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
-The modules that need to be included in your project depend on the features you want to use. The following table lists what modules you need to include in your project, depending on the features you want to use.
-
-| Module | Required for Feature |
-| ----------- | ----------- |
-| *ScanditCaptureCore* | Required for all ID Capture features |
-| *ScanditIdCapture* | Required for all ID Capture features |
-| *ScanditIDC* | Extract data from visual inspection zones (e.g. the front of IDs and driver licenses, or the human-readable data on Passport) |
-| *ScanditIdEuropeDrivingLicense* | Extract vehicle category data from the back of EU Driver Licenses |
-| *ScanditIdAamvaBarcodeVerification* | Verify US Driver Licenses |
-| *ScanditIdVoidedDetection* | Reject voided IDs |
-
-:::tip
-Note that your license may support only a subset all ID Capture capabilities. If you need to use additional features, [contact us](mailto:support@scandit.com).
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview-no-eu-dl.mdx b/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview-no-eu-dl.mdx
deleted file mode 100644
index 8affa315..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview-no-eu-dl.mdx
+++ /dev/null
@@ -1,13 +0,0 @@
-The modules that need to be included in your project depend on the features you want to use. The following table lists what modules you need to include in your project, depending on the features you want to use.
-
-| Module | Required for Feature |
-| ----------- | ----------- |
-| *ScanditCaptureCore* | Always |
-| *ScanditIdCapture* | Always |
-| *ScanditIdCaptureBackend* | Extract data from VIZ (e.g. front of IDs and driver licenses, human-readable data on Passport, etc.) |
-| *ScanditIdAamvaBarcodeVerification* | Verify US Driver Licenses |
-| *ScanditIdVoidedDetection* | Reject voided IDs |
-
-:::tip
-Note that your license may support only a subset all ID Capture capabilities. If you need to use additional features, [contact us](mailto:support@scandit.com).
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview.mdx b/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview.mdx
deleted file mode 100644
index ecc160e7..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_id-module-overview.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
-The modules that need to be included in your project depend on the features you want to use. The following table lists what modules you need to include in your project, depending on the features you want to use.
-
-| Module | Required for Feature |
-| ----------- | ----------- |
-| *ScanditCaptureCore* | Required for all ID Capture features |
-| *ScanditIdCapture* | Required for all ID Capture features |
-| *ScanditIdCaptureBackend* | Extract data from visual inspection zones (e.g. the front of IDs and driver licenses, or the human-readable data on Passport) |
-| *ScanditIdEuropeDrivingLicense* | Extract vehicle category data from the back of EU Driver Licenses |
-| *ScanditIdAamvaBarcodeVerification* | Verify US Driver Licenses |
-| *ScanditIdVoidedDetection* | Reject voided IDs |
-
-:::tip
-Note that your license may support only a subset all ID Capture capabilities. If you need to use additional features, [contact us](mailto:support@scandit.com).
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_internal-deps-no-label-capture.mdx b/versioned_docs/version-8.1.1/partials/get-started/_internal-deps-no-label-capture.mdx
deleted file mode 100644
index 86572419..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_internal-deps-no-label-capture.mdx
+++ /dev/null
@@ -1,17 +0,0 @@
-import { useLocation } from '@docusaurus/router';
-
-Some of the Scandit Data Capture SDK modules depend on others to work:
-
-| Module | Dependencies | Optional Dependencies |
-| ----------- | ----------- | ----------- |
-| *ScanditCaptureCore* | None | None |
-| *ScanditBarcodeCapture* | *ScanditCaptureCore* | None |
-| *ScanditParser* | None | None |
-| *ScanditIdCapture* | *ScanditCaptureCore* | *ScanditIdCaptureBackend* *ScanditIdEuropeDrivingLicense* *ScanditIdAamvaBarcodeVerification* *ScanditIdVoidedDetection* |
-
-
-:::tip
-When using ID Capture, consult the ID Capture getting started guide to identify the optional dependencies required for your use case. The modules you need to include will vary based on the features you intend to use.
-
-Please be aware that your license may only cover a subset of Barcode and/or ID Capture features. If you require additional features, [contact us](mailto:support@scandit.com).
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_internal-deps.mdx b/versioned_docs/version-8.1.1/partials/get-started/_internal-deps.mdx
deleted file mode 100644
index 72701c79..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_internal-deps.mdx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { useLocation } from '@docusaurus/router';
-
-Some of the Scandit Data Capture SDK modules depend on others to work:
-
-| Module | Dependencies | Optional Dependencies |
-| ----------- | ----------- | ----------- |
-| *ScanditCaptureCore* | None | None |
-| *ScanditBarcodeCapture* | *ScanditCaptureCore* | None |
-| *ScanditParser* | None | None |
-| *ScanditLabelCapture* | *ScanditCaptureCore* *ScanditBarcodeCapture* | *ScanditLabelCaptureText* *ScanditPriceLabel* |
-| *ScanditIdCapture* | *ScanditCaptureCore* | *ScanditIdCaptureBackend* *ScanditIdEuropeDrivingLicense* *ScanditIdAamvaBarcodeVerification* *ScanditIdVoidedDetection* |
-
-
-:::tip
-When using ID Capture or Label Capture, consult the respective module's getting started guides to identify the optional dependencies required for your use case. The modules you need to include will vary based on the features you intend to use.
-
-Please be aware that your license may only cover a subset of Barcode and/or ID Capture features. If you require additional features, [contact us](mailto:support@scandit.com).
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview-dotnet.mdx b/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview-dotnet.mdx
deleted file mode 100644
index 242080a8..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview-dotnet.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
-The NuGet packages that need to be included in your project depend on the features you want to use:
-
-| NuGet Package | Required for Feature |
-| ----------- | ----------- |
-| *Scandit.DataCapture.Core* | Always required |
-| *Scandit.DataCapture.Barcode* | Always required |
-| *Scandit.DataCapture.Label* | Always required (includes LabelCapture, LabelCaptureText, and PriceLabel modules) |
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview-web.mdx b/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview-web.mdx
deleted file mode 100644
index 389ebe95..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview-web.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
-The modules that need to be included in your project depend on the features you want to use:
-
-| Module | NPM Package | Required for Feature |
-| ----------- | ----------- | ----------- |
-| *ScanditCaptureCore* | @scandit/web-datacapture-core | Always required |
-| *ScanditBarcodeCapture* | @scandit/web-datacapture-barcode | Always required |
-| *ScanditLabelCapture* | @scandit/web-datacapture-label | Always required |
-| *ScanditLabelCaptureText* | @scandit/web-datacapture-label | Required for capturing arbitrary texts |
-| *ScanditPriceLabel* | @scandit/web-datacapture-label | Required for capturing price texts |
diff --git a/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview.mdx b/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview.mdx
deleted file mode 100644
index d8322b02..00000000
--- a/versioned_docs/version-8.1.1/partials/get-started/_smart-label-capture-module-overview.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
-The modules that need to be included in your project depend on the features you want to use:
-
-| Module | Required for Feature |
-| ----------- | ----------- |
-| *ScanditCaptureCore* | Always required |
-| *ScanditBarcodeCapture* | Always required |
-| *ScanditLabelCapture* | Always required |
-| *ScanditLabelCaptureText* | Required for capturing arbitrary texts |
-| *ScanditPriceLabel* | Required for capturing price texts |
diff --git a/versioned_docs/version-8.1.1/partials/intro/_about-id-capture.mdx b/versioned_docs/version-8.1.1/partials/intro/_about-id-capture.mdx
deleted file mode 100644
index efbf9e89..00000000
--- a/versioned_docs/version-8.1.1/partials/intro/_about-id-capture.mdx
+++ /dev/null
@@ -1,11 +0,0 @@
-Scandit ID Capture and Validation provides the capability to scan personal identification documents, such as identity cards, passports, or visas, covering everything from checking the age or name on a person’s ID to conducting complex analysis of identity documents to verify if they are real or fake.
-
-Scandit ID Capture software captures data from IDs using a combination of text recognition (optical character recognition/OCR), barcode scanning, and image recognition. This data can be instantly analyzed, on-device, to determine if the ID is authentic.
-
-The scanning and validation results can be used to enable real-time decision making and workflow automation at scale. For example, frontline workers can be given an instant age calculation from the extracted date of birth and/or guidance on whether an ID is real or fake.
-
-ID Capture runs on any smart device with a camera, including smartphones, tablets, and dedicated scanners.
-
-:::tip
-In addition to the ID Capture capabilities of the Scandit SDK, Scandit also offers a cloud-based identity scanning solution called [ID Bolt](https://www.scandit.com/products/id-bolt/). ID Bolt can be quickly and easily integrated into any existing web-based application. See the [documentation](https://docs.scandit.com/hosted/id-bolt/overview/) for more information.
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-ar.mdx b/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-ar.mdx
deleted file mode 100644
index 46ded1c1..00000000
--- a/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-ar.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
-MatrixScan AR enables you to build applications and workflows involving augmented reality overlays to highlight barcodes and display additional information over them.
-
-
-
-MatrixScan is powered by the `BarcodeAr` functionality of the Scandit Smart Data Capture SDK. It can be used to add the following customizabe UI elements to your workflows:
-
-## Highlights
-
-Used to enable the user to identify the scanned barcode. They are shown on top of the respective barcode and displayed as soon as the barcode is scanned.
-
-
-
-## Annotations
-
-Displayed outside of the area of a barcode and attach to the scanned barcode. There are multiple types of annotations available:
-
-### Info Annotation
-
-Comprised of any desired combination of text and/or icons. Info annotations are displayed on the screen and can be configured to appear on scan.
-
-
-
-### Status Icons
-
-The collapsed icon is shown as soon as the barcode is scanned. It expands to display the icon and any desired text when the user taps on it, and collapses once tapped again.
-
-
-
-### Popovers
-
-Comprised of any desired combination of text and icons. Popovers appear upon tapping the respective highlight and can be configured to appear on scan. They are removed on tapping the highlight or area inside the popover.
-
-
-
diff --git a/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-count.mdx b/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-count.mdx
deleted file mode 100644
index 2a3f6a2b..00000000
--- a/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-count.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
-MatrixScan Count is our pre-built scan and count solution for counting and receiving multiple items at once. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning. MatrixScan Count enables the accurate scanning and counting of multiple items at once via smart devices, speeding counting workflows by up to 10 times. The solution is designed to boost worker productivity, reduce human error and maintain accurate stock levels.
-
-MatrixScan Count bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-MatrixScan Count includes pre-built and pre-tested user interface (UI) elements and interactions in workflows. These UI elements are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-
-
-The UI workflow is designed to be as simple and ergonomic as possible, and includes the following elements:
-
-- A **shutter button** the user operates in order to initiate scanning. The user is guided to “Tap shutter to scan items”.
-- A **loading indicator** is momentarily present, indicating to hold still while scanning is in progress.
- - An initial calibration may be triggered after the scanning phase if the user stands too far away from or too close to the items.
-- **Feedback** is overlaid as augmented reality (AR) icons on top of scanned barcodes - indicating either successful scans, unscannable or items that should be not be present. A button counter badge and progress bar provide further confirmation of scans.
- - The counter badge counts the number of codes scanned.
- - The progress bar replaces the counter badge if the user is are scanning against a list of expected codes. It shows how many of the expected codes have been detected.
-
-Upon completing the scanning process, if all items have been successfully scanned, you can advance the user to the next scan automatically. Next steps may be finalizing order receipt if all items are present, reviewing the scan list to identify items that shouldn’t be present, or moving on to the next order.
-
-MatrixScan Count is conformed through functionality provided by `BarcodeCount`.
-
-## Supported Symbologies
-
-MatrixScan Count supports all [symbologies](../../barcode-symbologies) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals. For instance, retail, logistics, and so on.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-find.mdx b/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-find.mdx
deleted file mode 100644
index e38aaa4a..00000000
--- a/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan-find.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
-MatrixScan Find is our pre-built UI that uses augmented reality overlays to highlight items that match predefined criteria. This is distinct from MatrixScan AR that is fully customizable, MatrixScan Find enables you to add a search and find experience with augmented reality to an existing native app with just a few lines of code.
-
-
-
-MatrixScan Find bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-MatrixScan Find includes pre-built and pre-tested user interface (UI) elements and interactions in workflows. These UI elements are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-The UI workflow is designed to be as simple and ergonomic as possible, and includes the following elements:
-
-
-
-- A **shutter button** the user operates in order to initiate scanning and searching for items.
-- **Feedback** is overlaid as to highlight items with obvious and colorful visual dots on screen.
-- When paused, MatrixScan Find showcases a **carousel** showing all the items that are currently being searched for, with a check mark showing those that have been found.
- - In active search mode the carousel is hidden to free up more screen space for tracking items.
-
-Upon completing the scanning process, if all items have been successfully scanned, you can advance the user to the next scan automatically. Next steps may be finalizing order receipt if all items are present, reviewing the scan list to identify items that shouldn’t be present, or moving on to the next order.
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../../barcode-symbologies) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan.mdx b/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan.mdx
deleted file mode 100644
index 0c236ee3..00000000
--- a/versioned_docs/version-8.1.1/partials/intro/_about-matrixscan.mdx
+++ /dev/null
@@ -1,13 +0,0 @@
-MatrixScan enables you to build applications and workflows involving highlighting and/or interacting with multiple barcodes within the same frame.
-
-
-
-MatrixScan is powered by the `BarcodeBatch` functionality of the Scandit Smart Data Capture SDK.
-
-## Limitations
-
-MatrixScan does not support the following symbologies:
-
-* DotCode
-* MaxiCode
-* All postal codes (KIX, RM4SCC)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/partials/intro/_about-smart-label-capture.mdx b/versioned_docs/version-8.1.1/partials/intro/_about-smart-label-capture.mdx
deleted file mode 100644
index f652c733..00000000
--- a/versioned_docs/version-8.1.1/partials/intro/_about-smart-label-capture.mdx
+++ /dev/null
@@ -1,70 +0,0 @@
-Smart Label Capture enables the simultaneous scanning of multiple barcodes and printed text on labels, streamlining data entry and reducing errors. By combining barcode recognition with OCR and built-in intelligence, it can understand the context of the data and extract only the relevant fields for your application.
-
-This technology is particularly beneficial in scenarios where labels contain various data points, such as serial numbers, weights, or expiry dates.
-
-
-
- Capturing multiple barcodes and text data from labels in a single scan
-
-
-## Understanding Labels in Smart Label Capture
-
-The first step to using Smart Label Capture is to define the labels that you want to capture.
-A label is a collection of text and barcode fields that are meant to be scanned in one scan process.
-
-To intelligently extract only the fields that are relevant, Smart Label Capture relies on a combination of multiple cues:
-
-* The content of texts or barcodes (e.g. a serial number always having a fixed number of digits)
-* The barcode symbology (e.g. QR code, UPC, EAN13, etc.)
-* The relative position of fields
-* Textual context, i.e. text that is close to the field and describes it's meaning (e.g. "BEST BEFORE" next to an expiry date text)
- :::tip
- The following characters are recognized: `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()-./:,$¶"`.
- :::
-
-import LabelCapture from "@site/src/components/IconComponents/LabelCapture";
-
-
-
-
- Barcode fields - zero or more
-
- Defined by their symbology, pattern or textual context.
-
- Text fields - zero or more
-
- Defined by their pattern, relative position or textual context.
- >
- }
- smallIcon
->
-
-
-
-
-
-:::tip
-Label fields can be defined as optional, so that they are only captured if they are present and readable.
-:::
-
-## Applications and Use Cases
-
-While Smart Label Capture is a flexible and customizable solution for label scanning, to make it easier for developers we have designed the API to support a series of common use cases with minimal configuration by using [pre-made label blocks](../label-definitions).
-
-These use cases have been extensively tested to ensure reliable performance. Some examples of the supported use-cases:
-
-* Retail Products
- Streamline in-store order fulfillment by capturing barcodes, expiry dates, prices, net weights and other text automatically.
-* Smart Device Labels with Multiple Barcodes
- Read UPC, serial numbers, IMEI1 and IMEI2 and other data from smart devices labels, regardless of the design and format of the individual label.
-* Shelf Price Labels
- Capture product price and barcode in retail shelves, confirming the displayed price is accurate.
-* VIN Scanning
- Capture Vehicle Identification Numbers (VIN), including the VIN barcode and human-readable text.
-* 7-Segment Displays
- Capture numeric values from 7-segment displays, such as digital scales, meters, or other electronic displays.
-* And many more...
- We are constantly expanding our list of supported scenarios. If your specific use case is not currently listed, please reach out to [Scandit Support](mailto:support@scandit.com).
diff --git a/versioned_docs/version-8.1.1/partials/intro/_about_validation_flow.mdx b/versioned_docs/version-8.1.1/partials/intro/_about_validation_flow.mdx
deleted file mode 100644
index 967c53dc..00000000
--- a/versioned_docs/version-8.1.1/partials/intro/_about_validation_flow.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
-## Validation Flow
-
-Validation Flow is a ready-to-use workflow in Smart Label Capture that streamlines the capture and validation of label data with minimal code.
-
-If any fields are missed or need correction, users can easily review and manually add or fix data, ensuring complete and accurate results without having to rescan the entire label - even when the targeted fields are not close together (multi-step scanning).
-
-
diff --git a/versioned_docs/version-8.1.1/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/scanning-composite-codes.mdx
deleted file mode 100644
index 6e49eda3..00000000
--- a/versioned_docs/version-8.1.1/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: scanning-composite-codes
-title: Composite Codes
-sidebar_label: Composite Codes
----
-
-import {Redirect} from '@docusaurus/router';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/add-sdk.md b/versioned_docs/version-8.1.1/sdks/android/add-sdk.md
deleted file mode 100644
index eec91cf2..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/add-sdk.md
+++ /dev/null
@@ -1,152 +0,0 @@
----
-description: "Guide to integrating the Scandit Data Capture SDK into your project."
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-# Installation
-
-This page describes how to integrate the Scandit Data Capture SDK into your Android project.
-
-The Scandit Data Capture SDK is distributed as [AAR libraries](https://developer.android.com/studio/projects/android-library#aar-contents) in the official Scandit Maven repository.
-
-## Prerequisites
-
-Before you begin, make sure you have the following prerequisites in place:
-
-- Latest version of the Android SDK (for example through the latest Android Studio)
-- Android project with target SDK version 23 (Android 6, Marshmallow) or higher
-
- :::note
- ID Capture requires a minimum target SDK version of 24.
- :::
-
-- Valid Scandit Data Capture SDK license key
-
-:::tip
-Devices running the Scandit Data Capture SDK need a GPU. Otherwise, you can see a significant decrease in performance.
-:::
-
-### Internal Dependencies
-
-import InternalDependencies from '../../partials/get-started/_internal-deps.mdx';
-
-
-
-### External Dependencies
-
-import ExternalDependencies from '../../partials/get-started/_external-deps-android.mdx';
-
-
-
-## Install via Package Manager
-
-
-
-
-
-Add _mavenCentral()_ repository in your _build.gradle_ file:
-
-```java
-repositories {
- mavenCentral()
-}
-```
-
-See [Internal Dependencies](#internal-dependencies) to identify the artifacts needed based on your desired functionality. Then add the necessary dependencies to your app’s _build.gradle_ file:
-
-```java
-dependencies {
- implementation "com.scandit.datacapture:[dependency]:[version]"
-}
-```
-
-You can find the latest version on [Sonatype](https://s01.oss.sonatype.org/content/repositories/releases/com/scandit/datacapture/).
-
-
-
-
-
-Add the _mavenCentral_ repository in _pom.xml_ file:
-
-```java
-
-
-
- false
-
- central
- Maven Central
- https://repo1.maven.org/maven2
-
-
-```
-
-See [Internal Dependencies](#internal-dependencies) to identify the artifacts needed based on your desired functionality. Then add the necessary dependencies:
-
-```java
-...
-
-
- com.scandit.datacapture
- [required_dependency]
- [version]
-
-
-...
-```
-
-
-
-
-
-## Install Manually
-
-You need to add a reference to `ScanditCaptureCore.aar`, which contains the shared functionality used by the other data capture modules.
-
-Depending on the data capture task, you also need to reference the specific module(s) needed as detailed in [Internal Dependencies](#internal-dependencies).
-
-If your project already has a local `flatDir` repository, add the AAR files to that folder. If you do not have a `flatDir` repository yet, create a new one in your _build.gradle_ file as illustrated below:
-
-```java
-repositories {
- flatDir {
- dirs '/path/to/folder/containing/the/aar/file'
- }
-}
-```
-
-Add the .aar libraries as dependencies to your `build.gradle` file:
-
-```java
-dependencies {
- api(name:'ScanditBarcodeCapture', ext:'aar')
-}
-```
-
-## Additional Information
-
-### Incompatible Modes Error
-
-If you’re using _androidx.fragments_ dependency and have the situation where a scanning fragment navigates to another scanning fragment with an incompatible mode, make sure you’re using version 1.3.0+ of the dependency.
-
-If not, you may run into an incompatible modes error as the new fragment gets resumed before the previous is paused and for some time incompatible modes may be enabled in the `DataCaptureContext` at the same time. This results in sessions being empty of any result.
-
-### Content Providers
-
-On Android, the Scandit SDK uses content providers to initialize the scanning capabilities properly. If your own content providers depend on the Scandit SDK, choose an **initOrder** lower than 10 to make sure the SDK is ready first.
-
-If not specified, **initOrder** is zero by default and you have nothing to worry about.
-
-Check [the official provider documentation](https://developer.android.com/guide/topics/manifest/provider-element).
-
-import OSSLicense from '../../partials/_third-party-licenses.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/agents-android.md b/versioned_docs/version-8.1.1/sdks/android/agents-android.md
deleted file mode 100644
index 1ee13b39..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/agents-android.md
+++ /dev/null
@@ -1,325 +0,0 @@
-# AGENTS.md — Scandit Data Capture SDK (Android: Java/Kotlin)
-
-This file guides coding agents (and humans!) to install and integrate the **Scandit Smart Data Capture SDK** for Android using **Java/Kotlin**. It covers setup and how to add key Scandit products: **SparkScan**, **MatrixScan Find/Count**, **Smart Label Capture**, **Barcode Capture**, and **ID Capture**.
-
-> Target: **Android (SDK v7.x)** — Gradle/Maven project.
-> Languages: **Kotlin** (primary) & **Java** (equivalents where helpful).
-
----
-
-## Setup Commands
-
-- **Install Android SDK deps**: use latest Android Studio and SDKs.
-- **Min/Target**: target/compile SDK ≥ **23** (ID Capture needs **24+**).
-- **Add Maven Central** to `settings.gradle`/`build.gradle`:
- ```gradle
- repositories { mavenCentral() }
- ```
-- **Add Scandit modules** you need in `app/build.gradle` (choose from list below):
- ```gradle
- dependencies {
- implementation "com.scandit.datacapture:ScanditCaptureCore:[latest]"
- // Add feature modules as needed:
- implementation "com.scandit.datacapture:ScanditBarcodeCapture:[latest]"
- implementation "com.scandit.datacapture:ScanditLabelCapture:[latest]"
- implementation "com.scandit.datacapture:ScanditIdCapture:[latest]"
- // Optional extras depending on features:
- implementation "com.scandit.datacapture:ScanditIdCaptureBackend:[latest]"
- implementation "com.scandit.datacapture:ScanditIdEuropeDrivingLicense:[latest]"
- implementation "com.scandit.datacapture:ScanditIdAamvaBarcodeVerification:[latest]"
- implementation "com.scandit.datacapture:ScanditIdVoidedDetection:[latest]"
- }
- ```
- > Find the **latest version** and exact artifacts on Maven Central (Sonatype).
-
-- **Android Manifest**:
- ```xml
-
-
- ```
-
-- **ProGuard/R8**: no special rules typically required beyond the SDK’s defaults. If you shrink/obfuscate aggressively, keep Scandit packages as needed.
-
-- **License key**: create in the Scandit Dashboard and inject via code or BuildConfig.
-
----
-
-## Project Structure Hints
-
-- `App.kt` / `MainActivity.kt`: create `DataCaptureContext` early (Application/Activity).
-- Fragments/Activities owning a Scandit *View* must forward lifecycle events (`onResume/onPause`).
-- Keep each product’s setup in its own class (e.g., `SparkScanManager`, `IdCaptureManager`, etc.).
-
----
-
-## Initialize the SDK (Core)
-
-Kotlin:
-```kotlin
-import com.scandit.datacapture.core.DataCaptureContext
-
-val dataCaptureContext = DataCaptureContext.forLicenseKey(BuildConfig.SCANDIT_LICENSE_KEY)
-```
-
-Java:
-```java
-import com.scandit.datacapture.core.DataCaptureContext;
-
-DataCaptureContext dataCaptureContext =
- DataCaptureContext.forLicenseKey(BuildConfig.SCANDIT_LICENSE_KEY);
-```
-
-> Tip: The built‑in UI components (e.g., `SparkScanView`, `BarcodeFindView`) manage camera start/stop when you route lifecycle calls to them.
-
----
-
-## SparkScan (pre‑built single‑scan UI)
-
-**When to use**: fastest way to add ergonomic single‑item scanning with a floating trigger button.
-
-**Dependencies**: `ScanditCaptureCore`, `ScanditBarcodeCapture`.
-
-Kotlin (Activity/Fragment extract):
-```kotlin
-import com.scandit.datacapture.barcode.spark.ui.SparkScanView
-import com.scandit.datacapture.barcode.spark.ui.SparkScanViewSettings
-import com.scandit.datacapture.barcode.spark.SparkScan
-import com.scandit.datacapture.barcode.spark.SparkScanSettings
-import com.scandit.datacapture.barcode.data.Symbology
-
-val settings = SparkScanSettings().apply {
- enableSymbologies(setOf(Symbology.EAN13_UPCA)) // adjust for your use case
-}
-val sparkScan = SparkScan(settings)
-
-val viewSettings = SparkScanViewSettings() // customize as needed
-val sparkView = SparkScanView.newInstance(parentView, dataCaptureContext, sparkScan, viewSettings)
-
-override fun onResume() { super.onResume(); sparkView.onResume() }
-override fun onPause() { sparkView.onPause(); super.onPause() }
-
-// Listen for results
-sparkScan.addListener(object : SparkScanListener {
- override fun onBarcodeScanned(spark: SparkScan, session: SparkScanSession, data: FrameData?) {
- val barcode = session.newlyRecognizedBarcode.firstOrNull()
- barcode?.let { /* handle on UI thread */ }
- }
-})
-```
-
-Java (snippets equivalent):
-```java
-SparkScanSettings settings = new SparkScanSettings();
-HashSet syms = new HashSet<>();
-syms.add(Symbology.EAN13_UPCA);
-settings.enableSymbologies(syms);
-
-SparkScan sparkScan = new SparkScan(settings);
-SparkScanViewSettings viewSettings = new SparkScanViewSettings();
-SparkScanView sparkView = SparkScanView.newInstance(parentView, dataCaptureContext, sparkScan, viewSettings);
-
-@Override protected void onResume() { sparkView.onResume(); super.onResume(); }
-@Override protected void onPause() { sparkView.onPause(); super.onPause(); }
-```
-
----
-
-## Barcode Capture (low‑level single scan)
-
-**When to use**: full control without SparkScan’s prebuilt UI.
-
-**Dependencies**: `ScanditCaptureCore`, `ScanditBarcodeCapture`.
-
-Kotlin (essentials):
-```kotlin
-val barcodeSettings = BarcodeCaptureSettings().apply {
- enableSymbologies(setOf(Symbology.CODE128, Symbology.QR))
-}
-val barcodeCapture = BarcodeCapture.forDataCaptureContext(dataCaptureContext, barcodeSettings)
-
-// View + overlay
-val captureView = DataCaptureView.newInstance(context, dataCaptureContext)
-val overlay = BarcodeCaptureOverlay.newInstance(barcodeCapture, captureView)
-
-barcodeCapture.addListener(object : BarcodeCaptureListener {
- override fun onBarcodeScanned(mode: BarcodeCapture, session: BarcodeCaptureSession, data: FrameData?) {
- val code = session.newlyRecognizedBarcodes.firstOrNull()?.data
- // handle result
- }
-})
-
-override fun onResume() { super.onResume(); captureView.onResume() }
-override fun onPause() { captureView.onPause(); super.onPause() }
-```
-
----
-
-## MatrixScan Find (search & find with AR UI) / MatrixScan Count
-
-**When to use**: highlight items that match a *list*; quickly search shelves/containers.
-**Note**: MatrixScan Count/Find are powered by **BarcodeFind** + **BarcodeFindView**.
-
-Kotlin:
-```kotlin
-val findSettings = BarcodeFindSettings().apply {
- setSymbologyEnabled(Symbology.EAN13_UPCA, true)
-}
-
-val items = hashSetOf(
- BarcodeFindItem(BarcodeFindItemSearchOptions("9783598215438"),
- BarcodeFindItemContent("Mini Screwdriver Set", "(6‑Piece)", null)),
- BarcodeFindItem(BarcodeFindItemSearchOptions("9783598215414"), null)
-)
-
-val findMode = BarcodeFind(findSettings).apply { setItemList(items) }
-
-val findViewSettings = BarcodeFindViewSettings().apply {
- // e.g., inListItemColor / notInListItemColor, soundEnabled, hapticEnabled
-}
-
-val findView = BarcodeFindView.newInstance(parentView, dataCaptureContext, findMode, findViewSettings)
-
-override fun onResume() { super.onResume(); findView.onResume() }
-override fun onPause() { findView.onPause(); super.onPause() }
-
-findView.setListener(object : BarcodeFindViewUiListener {
- override fun onFinishButtonTapped(found: Set) { /* navigate or consume */ }
-})
-
-// Programmatic start (same as tapping Play):
-findView.startSearching()
-```
-
-Java equivalents mirror the above (per docs).
-
----
-
-## Smart Label Capture (barcodes + printed text in one shot)
-
-**When to use**: read **multiple barcodes + OCR** fields from a label (e.g., expiry date, weight, serial).
-**Dependencies**: `ScanditCaptureCore`, `ScanditBarcodeCapture`, `ScanditLabelCapture` (+ optional `ScanditLabelCaptureText`, `ScanditPriceLabel` depending on your label definitions).
-
-Typical flow:
-1. Create `LabelCaptureSettings` and your **label definition** (fields layout + parsers).
-2. Create `LabelCapture` for the `dataCaptureContext`.
-3. Add a `LabelCaptureViewfinder/Overlay` (or **ValidationFlowOverlay** for guided steps).
-4. Register `LabelCaptureListener` to receive structured results.
-5. Start camera / provide user feedback.
-
-Kotlin sketch:
-```kotlin
-val labelSettings = LabelCaptureSettings(/* configure with your label definition */)
-val labelCapture = LabelCapture.forDataCaptureContext(dataCaptureContext, labelSettings)
-
-val captureView = DataCaptureView.newInstance(context, dataCaptureContext)
-// Optional guided overlay for validation flows:
-val validationOverlay = LabelCaptureValidationFlowOverlay.newInstance(
- requireContext(), labelCapture, captureView
-)
-
-labelCapture.addListener(object : LabelCaptureListener {
- override fun onLabelCaptured(capture: LabelCapture, session: LabelCaptureSession, data: FrameData?) {
- val fields = session.newlyCapturedLabels.firstOrNull()?.fields
- // Extract required field values
- }
-})
-```
-
-> Author your label definitions to match the physical layout and desired outputs. Use the samples to bootstrap.
-
----
-
-## ID Capture (ID scanning & data extraction)
-
-**When to use**: read MRZ, PDF417 on DL/IDs, and visual zones on supported IDs.
-**Dependencies**: `ScanditCaptureCore`, `ScanditIdCapture` (+ optional backends per region/use case).
-**Important**: **Do not enable** ID Capture at the same time as other modes (e.g., Barcode Capture, Text Capture). Switch modes cleanly.
-
-Kotlin outline:
-```kotlin
-val idSettings = IdCaptureSettings().apply {
- supportedDocuments = EnumSet.of(SupportedDocuments.IdentityCard, SupportedDocuments.DLVIZ)
- // Configure sides/regions as required
-}
-val idCapture = IdCapture.forDataCaptureContext(dataCaptureContext, idSettings)
-
-val captureView = DataCaptureView.newInstance(context, dataCaptureContext)
-val overlay = IdCaptureOverlay.newInstance(idCapture, captureView)
-
-idCapture.addListener(object : IdCaptureListener {
- override fun onIdCaptured(mode: IdCapture, session: IdCaptureSession, data: FrameData?) {
- val capturedId = session.newlyCapturedId
- // Consume fields (name, DOB, document number, etc.)
- }
-})
-```
-
-> For validation workflows, add corresponding verifiers (e.g., AAMVA, EU DL) as optional dependencies.
-
----
-
-## Common Tasks for Agents
-
-- **Symbologies**: enable only what you need (EAN‑13, Code 128, QR, etc.) to maximize speed.
-- **Lifecycle**: always forward `onResume/onPause` to Scandit *views* (SparkScanView, BarcodeFindView, DataCaptureView).
-- **Threading**: listener callbacks may be on background threads—post results to the UI thread.
-- **Performance**: keep overlays lean; disable unneeded features; use lists/sets for lookups (MatrixScan Find).
-- **Testing**: keep printable test sheets handy; exercise low light, glare, and motion.
-
----
-
-## Samples & References
-
-- **Android Samples**: [https://github.com/Scandit/datacapture-android-samples](https://github.com/Scandit/datacapture-android-samples) — multiple ready‑to‑run apps.
-- **Install guide** (Gradle, modules, requirements).
-- **SparkScan get started** (prebuilt UI).
-- **MatrixScan Find get started** (search & find).
-- **Smart Label Capture get started** (labels & OCR).
-- **ID Capture get started** (IDs & validation).
-
----
-
-## Troubleshooting
-
-- **Incompatible modes** error across fragments: ensure `androidx.fragment` **1.3.0+** and avoid having two incompatible modes active across fragment transitions.
-- **Content provider order**: if your `ContentProvider` depends on Scandit, set a lower `initOrder` than 10 so Scandit initializes first.
-- **GPU requirement**: devices must have a GPU for best performance.
-
----
-
-## Checklists
-
-**PR Checklist**
-- [ ] Gradle modules added as needed
-- [ ] License key wired via `BuildConfig`/secure source
-- [ ] Correct symbologies enabled
-- [ ] Lifecycles forwarded to Scandit views
-- [ ] Listeners return results on UI thread
-- [ ] Mode conflicts avoided (esp. with **IdCapture**)
-
-**Release Checklist**
-- [ ] Camera permission rationale & flows
-- [ ] Shrink/obfuscate release build verified
-- [ ] QA on device matrix (OEMs, lighting, cases)
-- [ ] Legal notices page shows OSS attributions via `DataCaptureContext.openSourceSoftwareLicenseInfo()`
-
----
-
-## Appendix — Typical Imports (Kotlin)
-
-```kotlin
-import com.scandit.datacapture.core.*
-import com.scandit.datacapture.core.ui.*
-import com.scandit.datacapture.core.ui.viewfinder.*
-import com.scandit.datacapture.barcode.*
-import com.scandit.datacapture.barcode.capture.*
-import com.scandit.datacapture.barcode.capture.ui.*
-import com.scandit.datacapture.barcode.spark.*
-import com.scandit.datacapture.barcode.spark.ui.*
-import com.scandit.datacapture.find.*
-import com.scandit.datacapture.find.ui.*
-import com.scandit.datacapture.label.*
-import com.scandit.datacapture.label.ui.*
-import com.scandit.datacapture.id.*
-import com.scandit.datacapture.id.ui.*
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/android/ai-powered-barcode-scanning.md
deleted file mode 100644
index b16d6beb..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: android
-keywords:
- - android
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/android/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index f79be3ae..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-description: "Learn about the available symbologies and the corresponding configurations and extensions available."
-
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following code shows how to enable scanning Code 128 codes for Barcode Capture:
-
-```java
-BarcodeCaptureSettings settings = new BarcodeCaptureSettings();
-settings.enableSymbology(Symbology.CODE128, true);
-```
-
-import CapturePresents from '../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below code shows how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```java
-BarcodeCaptureSettings settings = new BarcodeCaptureSettings();
-SymbologySettings symbologySettings = settings.getSymbologySettings(Symbology.CODE128);
-HashSet activeSymbolCounts = new HashSet<>(Arrays.asList(new Short[] { 6, 7, 8}));
-symbologySettings.setActiveSymbolCounts(activeSymbolCounts);
-```
-
-import CalculateSymbolCount from '../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you enable a symbology as described above, only dark-on-bright codes are enabled. If you also want to read bright-on-dark codes, color-inverted reading for that symbology must be enabled ( `SymbologySettings.isColorInvertedEnabled`).
-
-The following code shows how to enable color-inverted reading for Code 128:
-
-```java
-BarcodeCaptureSettings settings = new BarcodeCaptureSettings();
-SymbologySettings symbologySettings = settings.getSymbologySettings(Symbology.CODE128);
-symbologySettings.setColorInvertedEnabled(true);
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that always gets enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum).Enforcing an optional checksum reduces false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes get discarded as the checksum doesn't match. All available checksums per symbology can be found in [symbology properties](../symbology-properties.mdx).
-
-You can enforce a specific checksum by setting it through `SymbologySettings.checksums`:
-
-```java
-BarcodeCaptureSettings settings = new BarcodeCaptureSettings();
-SymbologySettings symbologySettings = settings.getSymbologySettings(Symbology.CODE39);
-symbologySettings.setChecksums(EnumSet.of(Checksum.MOD43));
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use `SymbologySettings.setExtensionEnabled()`.
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```java
-BarcodeCaptureSettings settings = new BarcodeCaptureSettings();
-SymbologySettings symbologySettings = settings.getSymbologySettings(Symbology.CODE39);
-symbologySettings.setExtensionEnabled("full_ascii", true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
diff --git a/versioned_docs/version-8.1.1/sdks/android/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/android/barcode-capture/get-started.md
deleted file mode 100644
index 57ec064b..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/barcode-capture/get-started.md
+++ /dev/null
@@ -1,179 +0,0 @@
----
-description: "This page describes the step-by-step instructions that helps you to add Barcode Capture to your application. "
-
-sidebar_position: 2
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-This page describes the step-by-step instructions that helps you to add Barcode Capture to your application.
-
-The general steps are:
-
-- Include the *ScanditBarcodeCapture* library and its dependencies to your project, if any
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key
-- Create your [barcode capture settings](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and enable the [barcode symbologies](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology) you want to read
-- Create a new [barcode capture mode](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance and initialize it
-- Register a [barcode capture listener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) to receive scan events
-- Process successful scans according to your application’s needs and decide whether more codes will be scanned or the scanning process should be stopped
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/android/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView)
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for better visual feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-import ExternalDependencies from '../../../partials/get-started/_external-deps-android.mdx';
-
-
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Configure Barcode Scanning Settings
-
-Barcode scanning is orchestrated by the [BarcodeCapture data capture mode](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-For this task, we setup barcode scanning for a small list of barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is application specific. We recommend that you only enable the symbologies your application requires. If you are not familiar with the symbologies that are relevant for your use case, you can use [capture presets](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/capture-preset.html#enum-scandit.datacapture.barcode.CapturePreset) that are tailored for different verticals (for instance, retail, logistics, and so on).
-
-```java
-BarcodeCaptureSettings settings = new BarcodeCaptureSettings();
-settings.enableSymbology(Symbology.CODE128, true);
-settings.enableSymbology(Symbology.CODE39, true);
-settings.enableSymbology(Symbology.QR, true);
-settings.enableSymbology(Symbology.EAN8, true);
-settings.enableSymbology(Symbology.UPCE, true);
-settings.enableSymbology(Symbology.EAN13_UPCA, true);
-```
-
-:::note
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.codeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around `500` or even `-1` if you do not want codes to be scanned more than once.
-:::
-
-Next, create a [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance with the settings initialized in the previous step:
-
-```java
-barcodeCapture = BarcodeCapture.forDataCaptureContext(dataCaptureContext, settings);
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [BarcodeCapture.addListener()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First conform to the `BarcodeCaptureListener` interface. For example:
-
-```java
-@Override
-public void onBarcodeScanned(
- @NonNull BarcodeCapture barcodeCapture,
- @NonNull BarcodeCaptureSession session,
- @NonNull FrameData frameData
-) {
- List recognizedBarcodes = session.getNewlyRecognizedBarcode();
- // Do something with the barcodes. See Rejecting Barcodes, below, for an example.
-}
-```
-
-Then add the listener:
-
-```java
-barcodeCapture.addListener(this);
-```
-
-### Rejecting Barcodes
-
-To prevent scanning unwanted codes, you can reject them by adding the desired logic to the `onBarcodeScanned` method. This will prevent the barcode from being added to the session and will not trigger the `onSessionUpdated` method.
-
-The example below will only scan barcodes beginning with the digits `09` and ignore all others, using a transparent brush to distinguish a rejected barcode from a recognized one:
-
-```java
-...
-if (barcode.getData() == null || !barcode.getData().startsWith("09:")) {
- overlay.setBrush(Brush.transparent());
- return;
-}
-...
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications use the built-in camera of the device.
-
-:::note
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the *AndroidManifest.xml* file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the `android.permission.CAMERA` permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These must be used to achieve the best performance and user experience for the respective mode. The following code shows how to get the recommended settings and create the camera:
-
-```java
-CameraSettings cameraSettings = BarcodeCapture.createRecommendedCameraSettings();
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-Camera camera = Camera.getDefaultCamera();
-
-if (camera != null) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync)
-
-```java
-dataCaptureContext.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.ON](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```java
-if (camera != null) {
- camera.switchToDesiredState(FrameSourceState.ON);
-}
-```
-
-:::note
-On Android, the Scandit Data Capture SDK is not lifecycle aware which means it is not able to turn off the camera when the app goes in the background. This has to be done so the camera is not locked for other apps and is left to the implementer. Make sure that you turn the camera off in the activity’s **onPause lifecycle** method. Often this means that you want to (re)start it in **onResume**. You can see a way of doing this in all of the [samples](https://github.com/Scandit/datacapture-android-samples).
-:::
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you may want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```java
-DataCaptureView dataCaptureView = DataCaptureView.newInstance(this, dataCaptureContext);
-setContentView(dataCaptureView);
-```
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```java
-BarcodeCaptureOverlay overlay = BarcodeCaptureOverlay.newInstance(barcodeCapture, dataCaptureView);
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [BarcodeCapture.isEnabled](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to `FALSE`.
-
-The effect is immediate: no more frames are processed after the change. However, if a frame is currently being processed, this frame is completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/android/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/android/barcode-generator.md
deleted file mode 100644
index d34c910c..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/barcode-generator.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-description: "The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes. "
-
-sidebar_label: Get Started
-pagination_prev: null
-pagination_next: null
----
-
-# Barcode Generator
-
-The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes.
-
-The Barcode Generator supports the following formats:
-
-* Code 39
-* Code 128
-* EAN 13
-* UPCA
-* ITF
-* QR
-* DataMatrix
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Generating Barcodes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`BarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.BarcodeGeneratorBuilder), and use the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) for the symbology you are interested in, in this example Code 128.
-
-You can configure the colors used in the resulting image:
-
-```java
-DataCaptureContext dataCaptureContext = DataCaptureContext.forLicenseKey(licenseKey);
-BarcodeGenerator.Code128BarcodeGeneratorBuilder builder = new BarcodeGenerator.code128BarcodeGeneratorBuilder(dataCaptureContext)
- .withBackgroundColor(Color.WHITE)
- .withForegroundColor(Color.BLACK);
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```java
-try {
- BarcodeGenerator generator = builder.build();
- Bitmap image = generator.generate(dataString, 200);
- // Use the image
-} catch (Exception exception) {
- // Handle the error
- exception.printStackTrace();
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-generator.html) for more information.
-
-## Generating QR Codes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`QRCodeBarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder) using the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) specific for QR codes.
-
-You can configure the colors used in the resulting image, and the two settings that can be configured for QR codes: [`QRCodeBarcodeGeneratorBuilder.errorCorrectionLevel`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithErrorCorrectionLevel) and [`QRCodeBarcodeGeneratorBuilder.versionNumber`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithVersionNumber).
-
-```java
-DataCaptureContext dataCaptureContext = DataCaptureContext.forLicenseKey(licenseKey);
-BarcodeGenerator.QrCodeBarcodeGeneratorBuilder builder = new BarcodeGenerator.QrCodeBarcodeGeneratorBuilder(dataCaptureContext)
- .withBackgroundColor(Color.WHITE)
- .withForegroundColor(Color.BLACK)
- .withErrorCorrectionLevel(QrCodeErrorCorrectionLevel.MEDIUM)
- .withVersionNumber(4);
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```java
-try {
- BarcodeGenerator generator = builder.build();
- Bitmap image = generator.generate(dataString, 200);
- // Use the image
-} catch (Exception exception) {
- // Handle the error
- exception.printStackTrace();
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-generator.html) for more information.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/android/barcode-selection/get-started.md
deleted file mode 100644
index cc6df0f5..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/barcode-selection/get-started.md
+++ /dev/null
@@ -1,192 +0,0 @@
----
-description: "This page describes the steps to add Barcode Selection to your application. "
-
-sidebar_position: 2
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/android/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-This page describes the steps to add Barcode Selection to your application.
-
-The general steps are:
-
-- Create a new Data Capture Context instance, initialized with your license key
-- Configure the Barcode Selection settings
-- Create a new Barcode Selection mode instance
-- Register the listener to receive scan events:
- - Process the successful scans according to your application’s needs, e.g. by looking up information in a database
- - Decide whether more codes will be scanned, or the scanning process must be stopped
-- Obtain the camera instance and set as frame source
-- Display the camera preview by creating a data capture view
-- Create (optionally) a new overlay and add it to data capture view for a better visual feedback, if displaying a preview
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-import ExternalDependencies from '../../../partials/get-started/_external-deps-android.mdx';
-
-
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Configure the Barcode Selection Mode
-
-Barcode selection is orchestrated by the [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) [data capture mode](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). It is configured via [BarcodeSelectionSettings](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) for when new codes have been selected.
-
-For this task, we setup barcode scanning for a small list of different barcode types, called [symbologies](../barcode-symbologies.mdx). The list of symbologies to enable is highly application specific. It is recommended that you **only enable the list of symbologies your application requires**.
-
-```java
-BarcodeSelectionSettings settings = new BarcodeSelectionSettings();
-settings.enableSymbology(Symbology.QR, true);
-settings.enableSymbology(Symbology.EAN8, true);
-settings.enableSymbology(Symbology.UPCE, true);
-settings.enableSymbology(Symbology.EAN13_UPCA, true);
-```
-
-### Selection Types
-
-The behavior of Barcode Selection can be changed by using a different [selection type](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-type.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionType). This defines the method used by [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) to select codes.
-
-There are two types:
-
-- If you want the user to select barcodes with a tap, use [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection).
- - This selection type can automatically freeze the camera preview to make the selection easier. You can configure the freezing behavior via [BarcodeSelectionTapSelection.freezeBehavior](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.FreezeBehavior).
- - With [BarcodeSelectionTapSelection.tapBehavior](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.TapBehavior) you can decide if a second tap on a barcode means that the barcode is unselected or if it is selected another time (increasing the counter).
-
-:::note
-Using BarcodeSelectionTapSelection requires the MatrixScan add-on.
-:::
-
-- If you want the selection to happen automatically based on where the user points the camera, then use [BarcodeSelectionAimerSelection](https://docs.scandit.com/data-capture-sdk/android/selecting-one-of-many.html#:~:text=BarcodeSelectionAimerSelection). It is possible to choose between two different [selection strategies](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-strategy.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionStrategy):
- - Use [BarcodeSelectionAutoSelectionStrategy](https://docs.scandit.com/data-capture-sdk/android/selecting-one-of-many.html#:~:text=BarcodeSelectionAutoSelectionStrategy) if you want the barcodes to be selected automatically when aiming at them as soon as the intention is understood by our internal algorithms.
- - Use [BarcodeSelectionManualSelectionStrategy](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionManualSelectionStrategy) if you want the barcodes to be selected when aiming at them and tapping anywhere on the screen.
-
-### Single Barcode Auto Detection
-
-If you want to automatically select a barcode when it is the only one on screen, turn on [BarcodeSelectionSettings.singleBarcodeAutoDetection](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-settings.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionSettings.SingleBarcodeAutoDetection).
-
-### Creating the Mode
-
-Next, create a `BarcodeSelection` instance with the settings initialized in the previous step:
-
-```java
-BarcodeSelection barcodeSelection = BarcodeSelection.forDataCaptureContext(dataCaptureContext, settings);
-```
-
-## Registering the Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) through [BarcodeSelection.addListener()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-selection.html#method-scandit.datacapture.barcode.selection.BarcodeSelection.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the `BarcodeSelectionListener` interface. For example:
-
-```java
-public class MyBarcodeSelectionListener implements BarcodeSelectionListener {
- @Override
- public void onObservationStarted(@NonNull BarcodeSelection barcodeSelection) {
- // Called when Barcode Selection is started.
- // We don't use this callback in this guide.
- }
-
- @Override
- public void onObservationStopped(@NonNull BarcodeSelection barcodeSelection) {
- // Called when Barcode Selection is stopped.
- // We don't use this callback in this guide.
- }
-
- @Override
- public void onSessionUpdated(
- @NonNull BarcodeSelection barcodeSelection,
- @NonNull BarcodeSelectionSession session,
- @Nullable FrameData data
- ) {
- // Called every new frame.
- // We don't use this callback in this guide.
- }
-
- @Override
- public void onSelectionUpdated(
- @NonNull BarcodeSelection barcodeSelection,
- @NonNull BarcodeSelectionSession session,
- @Nullable FrameData frameData
- ) {
- List newlySelectedBarcodes = session.getNewlySelectedBarcodes();
- List selectedBarcodes = session.getSelectedBarcodes();
- List newlyUnselectedBarcodes = session.getNewlyUnselectedBarcodes();
- // Do something with the retrieved barcodes.
- }
-}
-```
-
-Then add the listener to the `BarcodeSelection` instance:
-
-```java
-barcodeSelection.addListener(new MyBarcodeSelectionListener());
-```
-
-## Obtaining the Camera Instance and Set as Frame Source
-
-The data capture context supports using different frame sources to perform recognition, here we assume that you will use the built-in camera of the device.
-
-:::note
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the *AndroidManifest.xml* file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These must be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```java
-CameraSettings cameraSettings = BarcodeSelection.createRecommendedCameraSettings();
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-Camera camera = Camera.getDefaultCamera();
-if (camera != null) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```java
-dataCaptureContext.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.ON](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```java
-if (camera != null) {
- camera.switchToDesiredState(FrameSourceState.ON);
-}
-```
-
-## Disabling Barcode Selection
-
-To disable barcode selection, for instance when the selection is complete, set `BarcodeSelection.isEnabled` to `FALSE`.
-
-The effect is immediate, no more frames get processed after the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/android/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/android/barcode-selection/intro.md
deleted file mode 100644
index 24c8d463..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/barcode-selection/intro.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-description: "Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenario where there are multiple barcodes present. This includes the following: "
-
-sidebar_position: 1
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# About Barcode Selection
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/android/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenario where there are multiple barcodes present. This includes the following:
-
-- A crowded shelf where users want to scan the correct barcode to report stockouts or perform a cycle count.
-- An order catalog with barcodes printed closely together.
-- A label that has several types of barcodes; however users are only interested in scanning barcodes that have the same type, but cannot select them programmatically.
-
-Barcode Selection provides two key capabilities:
-
-- **Aim to Select** allows users to select one code at a time. This is especially useful for one-handed operation.
-- **Tap to Select** is a quick way for users to select several codes from the same view. Selection is done by tapping on highlighted barcodes in the live camera preview or on a frozen screen. Tapping on codes while keeping the smartphone steady can be tricky, and freezing the screen allows for ergonomic use.
-
-:::warning
-Barcode Selection does not support handling of duplicate codes. If a code appears twice in the visible preview both instances will be marked as selected even if only one of them was selected.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/android/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/android/barcode-symbologies.mdx
deleted file mode 100644
index 75d3810a..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/android/batch-scanning.md
deleted file mode 100644
index 04562049..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/batch-scanning.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-description: "Batch scanning enables you to capture and interact with multiple barcodes simultaneously, making it ideal for inventory management, retail, and logistics applications."
-toc_max_heading_level: 4
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# Batch Scanning
-
-import BatchScanning from '../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/android/core-concepts.mdx
deleted file mode 100644
index 81c9f5d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/android/extension-codes.mdx
deleted file mode 100644
index 2ab9349a..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/android/features-by-framework.mdx
deleted file mode 100644
index 5f33c395..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/android/id-capture/advanced.md
deleted file mode 100644
index 9899fd38..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/id-capture/advanced.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-description: "There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features. "
-
-sidebar_position: 4
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Decode EU Driver Licenses
-
-By default, ID Capture doesn’t extract data from the table on the back of European Driver Licenses. If you are interested in this data, you may enable the extraction by calling:
-
-```java
-settings.decodeBackOfEuropeanDrivingLicenses();
-```
-
-:::warning
-To use this feature, you will need to include the `ScanditIdEuropeDrivingLicense` module in your project. See the [module overview](/sdks/android/id-capture/get-started.md#module-overview) for details.
-:::
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/android/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-```java
-// Default value:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_ONLY);
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_AND_IMAGES);
-
-// Only images are anonymized:
-settings.setAnyonymizationMode(IdAnonymizationMode.IMAGES_ONLY);
-
-// No anonymization:
-settings.setAnyonymizationMode(IdAnonymizationMode.NONE);
-```
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object.
-
-:::tip
-Face and Cropped Document can be extracted only by either `SingleSideScanner` with `visualInspectionZone` enabled or by `FullDocumentScanner`.
-In the case of `FullDocumentScanner`, if the front & the back side of a document are scanned, Cropped Document and Full Frame are returned for both sides.
-:::
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-```java
-// Holder's picture as printed on a document:
-settings.setShouldPassImageTypeToResult(ImageType.FACE);
-
-// Cropped image of a document:
-settings.setShouldPassImageTypeToResult(ImageType.CROPPED_DOCUMENT);
-
-// Full camera frame that contains the document:
-settings.setShouldPassImageTypeToResult(ImageType.FULL_FRAME);
-```
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `CapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `CapturedId` object for a US Driver License will contain different fields than a `CapturedId` object for a Passport.
-
-For a rejected document, a [RejectionReason](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed automatically using the following settings:
-
-* [IdCaptureSettings.rejectForgedAamvaBarcodes](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectForgedAamvaBarcodes): Automatically rejects documents whose AAMVA barcode fails authenticity validation.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
diff --git a/versioned_docs/version-8.1.1/sdks/android/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/android/id-capture/get-started.md
deleted file mode 100644
index 685fb19f..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/id-capture/get-started.md
+++ /dev/null
@@ -1,227 +0,0 @@
----
-description: "This page will guide you through the process of adding ID Capture to your Android application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards. "
-
-sidebar_position: 2
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-This page will guide you through the process of adding ID Capture to your Android application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards.
-
-The general steps are:
-
-- Create a new Data Capture Context instance
-- Access a Camera
-- Configure the Capture Settings
-- Implement a Listener to Receive Scan Results
-- Set-up the Capture View and Overlay
-- Start the Capture Process
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with your integration, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. See the [installation guide](/sdks/android/add-sdk.md) for details.
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-import ExternalDependencies from '../../../partials/get-started/_external-deps-android.mdx';
-
-
-
-### Module Overview
-
-import IdModuleOverview from '../../../partials/get-started/_id-module-overview.mdx';
-
-
-
-### Mobile ID Scanning
-
-ID Capture allows capture of ISO mobile documents (mdoc) using Bluetooth by setting up a BLE (Bluetooth Low Energy) communication between the mdoc app and Scandit SDK.
-
-To do so, add the following feature/permissions to `AndroidManifest.xml` file. Note that Scandit SDK may act as either a Central or a Peripheral device so it must request permissions to advertise, scan, and connect to other devices (see the [Android Bluetooth permissions documentation](https://developer.android.com/develop/connectivity/bluetooth/bt-permissions)).
-
-```xml
-
-
-
-
-
-
-
-
-
-```
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Access a Camera
-
-Next, you need to create a new instance of the [Camera](https://docs.scandit.com/data-capture-sdk/android/core/api/camera.html#class-scandit.datacapture.core.Camera) class to indicate the camera to stream previews and to capture images.
-
-```java
-camera = Camera.getDefaultCamera(IdCapture.createRecommendedCameraSettings());
-
-if (camera == null) {
- throw new IllegalStateException("Failed to init camera!");
-}
-
-dataCaptureContext.setFrameSource(camera);
-```
-
-## Configure the Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type to use and the documents that should be accepted and/or rejected.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) for all the available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-```java
-List acceptedDocuments = new ArrayList();
-List rejectedDocuments = new ArrayList();
-
-// Documents from any region:
-acceptedDocuments.add(new IdCard(Region.AnyRegion));
-// Only documents issued by a specific country:
-acceptedDocuments.add(new IdCard(Region.Germany));
-// Regional documents:
-acceptedDocuments.add(new RegionSpecific.ApecBusinessTravelCard());
-// Reject passports from certain regions:
-rejectedDocuments.add(new Passport(Region.Cuba));
-
-IdCaptureSettings settings = new IdCaptureSettings();
-settings.acceptedDocuments = acceptedDocuments;
-settings.rejectedDocuments = rejectedDocuments;
-
-// To scan only one-sided documents and a given zone:
-settings.scannerType = new SingleSideScanner(barcode = true);
-// or
-settings.scannerType = new SingleSideScanner(machineReadableZone = true);
-// or
-settings.scannerType = new SingleSideScanner(visualInspectionZone = true);
-
-// To scan both sides of the document:
-settings.scannerType = new FullDocumentScanner();
-```
-
-Create a new ID Capture mode with the chosen settings:
-
-```java
-IdCapture idCapture = IdCapture.forDataCaptureContext(context, settings);
-```
-
-## Implement a Listener
-
-To receive scan results, implement and [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener). The listener provides two callbacks: `onIdCaptured` and `onIdRejected`.
-
-```java
-IdCaptureListener listener = new IdCaptureListner() {
- @Override
- public void onIdCaptured(CapturedId data) {
- // Success! Handle extracted data here.
-}
-
- @Override
- public void onIdRejected(CapturedId data, RejectionReason reason) {
- // Something went wrong. Inspect the reason to determine the follow-up action.
- }
-}
-
-idCapture.setListener(listener);
-```
-
-### Handling Success
-
-Capture results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-For more specific information, use its non-null result properties (e.g. [CapturedId.barcode](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/captured-id.html#property-scandit.datacapture.id.CapturedId.Barcode)).
-
-On a successful scan you may read the extracted data from `CapturedId`:
-
-```java
-@Override
-public void onIdCaptured(CapturedId data) {
- String fullName = data.getFullName();
- DateResult dateOfBirth = data.getDateOfBirth();
- DateResult dateOfExpiry = data.getDateOfExpiry();
- String documentNumber = data.getDocumentNumber();
-
- // Process data:
- processData(fullName, dateOfBirth, dateOfExpiry, documentNumber);
-}
-```
-:::tip
-All data fields are optional, so it's important to verify whether the required information is present if some of the accepted documents may not contain certain data.
-:::
-
-### Handling Rejection
-
-The ID scanning process may fail for various reasons. Start from inspecting [`RejectionReason`](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) to understand the cause.
-
-You may wish to implement the follow-up action based on the reason of failure:
-
-```java
-@Override
-public void onIdRejected(CapturedId data, RejectionReason reason) {
- if (reason == RejectionReason.Timeout) {
- // Ask the user to retry, or offer alternative input method.
- } else if (reason == RejectionReason.DocumentExpired) {
- // Ask the user to provide alternative document.
- } else if (reason == RejectionReason.HolderUnderage) {
- // Reject the process.
- }
-}
-```
-
-## Set up Capture View and Overlay
-
-When using the built-in camera as frame source, you may typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```java
-DataCaptureView dataCaptureView = DataCaptureView.newInstance(this, dataCaptureContext);
-setContentView(dataCaptureView);
-```
-
-Then, add an instance of [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) to the view:
-
-```java
-IdCaptureOverlay overlay = IdCaptureOverlay.newInstance(idCapture, dataCaptureView);
-```
-
-The overlay chooses the displayed UI automatically, based on the selected [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings).
-
-If you prefer to show a different UI or to temporarily hide it, set the appropriate [IdCaptureOverlay.idLayout](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/ui/id-capture-overlay.html#property-scandit.datacapture.id.ui.IdCaptureOverlay.IdLayout).
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-```java
-camera.switchToDesiredState(FrameSourceState.ON);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/android/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/android/id-capture/intro.md
deleted file mode 100644
index cf8152c5..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/id-capture/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx'; "
-
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-toc_max_heading_level: 4
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/android/id-capture/supported-documents.md
deleted file mode 100644
index d553caa6..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/id-capture/supported-documents.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "Scandit ID Capture provides various types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type. "
-
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: android
-keywords:
- - android
----
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/android/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/android/label-capture/advanced.md
deleted file mode 100644
index 9ea7691d..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/label-capture/advanced.md
+++ /dev/null
@@ -1,404 +0,0 @@
----
-description: "Guide to customizing overlays in the Scandit Android Label Capture SDK."
-sidebar_position: 3
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Advanced Configurations
-
-## Customization of the Overlays
-
-### Basic Overlay
-
-To customize the appearance of an overlay you can implement a [LabelCaptureBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/ui/label-capture-basic-overlay-listener.html#interface-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener) and/or [LabelCaptureAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/ui/label-capture-advanced-overlay-listener.html) interface, depending on the overlay(s) you are using.
-
-The method [brushForLabel()](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForLabel) is called every time a label is captured, and [brushForField()](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForField) is called for each of its fields to determine the brush for the label or field.
-
-
-
-
-```kotlin
-overlay.listener = object : LabelCaptureBasicOverlayListener {
- /*
- * Customize the appearance of the overlay for the individual fields.
- */
- override fun brushForField(
- overlay: LabelCaptureBasicOverlay,
- field: LabelField,
- label: CapturedLabel
- ): Brush? = when (field.name) {
- "" -> Brush(Color.CYAN.withAlpha(128), Color.CYAN, 1f)
- "" -> Brush(Color.GREEN.withAlpha(128), Color.GREEN, 1f)
- else -> Brush(Color.TRANSPARENT, Color.TRANSPARENT, 0f)
- }
-
- /*
- * Customize the appearance of the overlay for the full label.
- * In this example, we disable label overlays by returning null always.
- */
- override fun brushForLabel(
- overlay: LabelCaptureBasicOverlay,
- label: CapturedLabel
- ): Brush? = null
-
- override fun onLabelTapped(
- overlay: LabelCaptureBasicOverlay,
- label: CapturedLabel
- ) {
- /*
- * Handle the user tap gesture on the label.
- */
- }
-}
-
-```
-
-
-
-```java
-overlay.setListener(new LabelCaptureBasicOverlayListener() {
- @Nullable
- @Override
- public Brush brushForLabel(
- @NonNull LabelCaptureBasicOverlay overlay, @NonNull CapturedLabel label) {
- return null;
- }
-
- @Override
- public Brush brushForField(@NonNull LabelCaptureBasicOverlay overlay,
- @NonNull CapturedField field, @NonNull CapturedLabel label) {
- if (field.getName().equals("")) {
- return new Brush(
- getResources().getColor(R.color.barcode_overlay_fill),
- getResources().getColor(R.color.barcode_overlay_stroke),
- 0f
- );
- }
-
- if (field.getName().equals("")) {
- return new Brush(
- getResources().getColor(R.color.expiry_date_overlay_fill),
- getResources().getColor(R.color.expiry_date_overlay_stroke),
- 0f
- );
- }
-
- return null;
- }
-});
-```
-
-
-
-:::tip
-You can also use `LabelCaptureBasicOverlay.setLabelBrush()` and `LabelCaptureBasicOverlay.setCapturedFieldBrush()` to configure the overlay if you don't need to customize the appearance based on the name or content of the fields.
-:::
-
-### Advanced Overlay
-
-For more advanced use cases, such as adding custom views or implementing Augmented Reality (AR) features, you can use the `LabelCaptureAdvancedOverlay`. The example below creates an advanced overlay, configuring it to display a styled warning message below expiry date fields when they’re close to expiring, while ignoring other fields.
-
-
-
-
-```kotlin
-// Create an advanced overlay that allows for custom views to be added over detected label fields
-// This is the key component for implementing Augmented Reality features
-val advancedOverlay = LabelCaptureAdvancedOverlay.newInstance(dataCaptureManager.getLabelCapture(), view)
-
-// Configure the advanced overlay with a listener that handles AR content creation and positioning
-advancedOverlay.listener = object : LabelCaptureAdvancedOverlayListener {
-
- // This method is called when a label is detected - we return null since we're only adding AR elements to specific fields, not the entire label
- override fun viewForCapturedLabel(
- overlay: LabelCaptureAdvancedOverlay,
- capturedLabel: CapturedLabel
- ): View? = null
-
- // This defines where on the detected label the AR view would be anchored
- override fun anchorForCapturedLabel(
- overlay: LabelCaptureAdvancedOverlay,
- capturedLabel: CapturedLabel
- ): Anchor = Anchor.CENTER
-
- // This defines the offset from the anchor point for the label's AR view
- override fun offsetForCapturedLabel(
- overlay: LabelCaptureAdvancedOverlay,
- capturedLabel: CapturedLabel,
- view: View
- ): PointWithUnit = PointWithUnit(0f, 0f, MeasureUnit.PIXEL)
-
- // This method is called when a field is detected in a label
- override fun viewForCapturedLabelField(
- overlay: LabelCaptureAdvancedOverlay,
- labelField: LabelField
- ): View? {
- // We only want to create AR elements for expiry date fields that are text-based
- if (labelField.name.contains("expiry", ignoreCase = true) && labelField.type == LabelFieldType.TEXT) {
-
- //
- // data extraction from expiry date field and days until expiry date calculation
- //
-
- // Check if scanned expiry date is to close to actual date
- if (daysUntilExpiry < dayLimit) {
-
- // Create and configure the AR element - a TextView with appropriate styling
- // This view will appear as an overlay on the camera feed
- return TextView(context).apply {
-
- text = "Item expires soon!"
- setTextColor(Color.WHITE)
- setBackgroundColor(Color.RED)
- setPadding(16, 8, 16, 8)
-
- // Add an icon to the left of the text for visual guidance
- // This enhances the AR experience by providing clear visual cues
- val drawable = ContextCompat.getDrawable(context, R.drawable.ic_warning)
- drawable?.setBounds(0, 0, drawable.intrinsicWidth, drawable.intrinsicHeight)
- setCompoundDrawables(drawable, null, null, null)
- compoundDrawablePadding = 16 // Add some padding between icon and text
- }
- }
- }
- // Return null for any fields that aren't expiry dates, which means no AR overlay
- return null
- }
-
- // This defines where on the detected field the AR view should be anchored
- // BOTTOM_CENTER places it right below the expiry date text for better visibility
- override fun anchorForCapturedLabelField(
- overlay: LabelCaptureAdvancedOverlay,
- labelField: LabelField
- ): Anchor = Anchor.BOTTOM_CENTER
-
- // This defines the offset from the anchor point
- override fun offsetForCapturedLabelField(
- overlay: LabelCaptureAdvancedOverlay,
- labelField: LabelField,
- view: View
- ): PointWithUnit = PointWithUnit(0f, 22f, MeasureUnit.DIP)
-}
-```
-
-
-
-
-```java
-// Create an advanced overlay that allows for custom views to be added over detected label fields
-// This is the key component for implementing Augmented Reality features
-LabelCaptureAdvancedOverlay advancedOverlay = LabelCaptureAdvancedOverlay.newInstance(
- dataCaptureManager.getLabelCapture(), view);
-
-// Configure the advanced overlay with a listener that handles AR content creation and positioning
-advancedOverlay.setListener(new LabelCaptureAdvancedOverlayListener() {
-
- @Nullable
- @Override
- public View viewForCapturedLabel(@NonNull LabelCaptureAdvancedOverlay overlay,
- @NonNull CapturedLabel capturedLabel) {
- // We return null since we're only adding AR elements to specific fields, not the entire label
- return null;
- }
-
- @NonNull
- @Override
- public Anchor anchorForCapturedLabel(@NonNull LabelCaptureAdvancedOverlay overlay,
- @NonNull CapturedLabel capturedLabel) {
- // This defines where on the detected label the AR view would be anchored
- return Anchor.CENTER;
- }
-
- @NonNull
- @Override
- public PointWithUnit offsetForCapturedLabel(@NonNull LabelCaptureAdvancedOverlay overlay,
- @NonNull CapturedLabel capturedLabel,
- @NonNull View view) {
- // This defines the offset from the anchor point for the label's AR view
- return new PointWithUnit(0f, 0f, MeasureUnit.PIXEL);
- }
-
- @Nullable
- @Override
- public View viewForCapturedLabelField(@NonNull LabelCaptureAdvancedOverlay overlay,
- @NonNull LabelField labelField) {
- // We only want to create AR elements for expiry date fields that are text-based
- if (labelField.getName().toLowerCase().contains("expiry") &&
- labelField.getType() == LabelFieldType.TEXT) {
-
- //
- // data extraction from expiry date field and days until expiry date calculation
- //
-
- // Assume we have a method `daysUntilExpiry()` that returns the days left until expiry
- int daysUntilExpiry = daysUntilExpiry(labelField.getValue());
- int dayLimit = 3; // Example threshold
-
- if (daysUntilExpiry < dayLimit) {
- // Create and configure the AR element - a TextView with appropriate styling
- // This view will appear as an overlay on the camera feed
- TextView textView = new TextView(context);
- textView.setText("Item expires soon!");
- textView.setTextColor(Color.WHITE);
- textView.setBackgroundColor(Color.RED);
- textView.setPadding(16, 8, 16, 8);
-
- // Add an icon to the left of the text for visual guidance
- Drawable drawable = ContextCompat.getDrawable(context, R.drawable.ic_warning);
- if (drawable != null) {
- drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
- textView.setCompoundDrawables(drawable, null, null, null);
- }
- textView.setCompoundDrawablePadding(16); // Padding between icon and text
-
- return textView;
- }
- }
- // Return null for any fields that aren't expiry dates, which means no AR overlay
- return null;
- }
-
- @NonNull
- @Override
- public Anchor anchorForCapturedLabelField(@NonNull LabelCaptureAdvancedOverlay overlay,
- @NonNull LabelField labelField) {
- // BOTTOM_CENTER places it right below the expiry date text for better visibility
- return Anchor.BOTTOM_CENTER;
- }
-
- @NonNull
- @Override
- public PointWithUnit offsetForCapturedLabelField(@NonNull LabelCaptureAdvancedOverlay overlay,
- @NonNull LabelField labelField,
- @NonNull View view) {
- // This defines the offset from the anchor point
- return new PointWithUnit(0f, 22f, MeasureUnit.DIP);
- }
-});
-```
-
-
-
-
-## Validation Flow
-
-Implementing a validation flow in your Smart Label Capture application differs from the [Get Started](/sdks/android/label-capture/get-started.md) steps outlined earlier as follows:
-
-### Visualize the Scan Process
-
-Validation flow uses a different overlay, the [LabelCaptureValidationFlowOverlay](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/ui/label-capture-validation-flow-overlay.html). This overlay provides a user interface that guides users through the label capture process, including validation steps.
-
-
-
-
-```kotlin
-// Create the overlay
-validationFlowOverlay = LabelCaptureValidationFlowOverlay.newInstance(
- requireContext(),
- dataCaptureManager.getLabelCapture(),
- view
-)
-
-// Set the listener to receive validation events
-validationFlowOverlay?.listener = this
-```
-
-
-
-```java
-// Create the overlay
-validationFlowOverlay = LabelCaptureValidationFlowOverlay.newInstance(
- getContext(),
- dataCaptureManager.getLabelCapture(),
- view
-);
-// Set the listener to receive validation events
-validationFlowOverlay.setListener(this);
-```
-
-
-
-### Adjust the Hint Messages
-
-
-
-
-```kotlin
-// Configure the validation flow with custom settings
-val validationSettings = LabelCaptureValidationFlowSettings.newInstance()
-validationSettings.apply {
- missingFieldsHintText = "Please add this field"
- standbyHintText = "No label detected, camera paused"
- validationHintText = "fields captured" // X/Y (X fields out of total Y) is shown in front of this string
- validationErrorText = "Input not valid"
- requiredFieldErrorText = "This field is required"
- manualInputButtonText = "Add info manually"
-}
-
-// Apply the settings to the overlay
-validationFlowOverlay?.applySettings(validationSettings)
-```
-
-
-
-
-```java
-// Configure the validation flow with custom settings
-LabelCaptureValidationFlowSettings validationSettings = LabelCaptureValidationFlowSettings.newInstance();
-
-validationSettings.setMissingFieldsHintText("Please add this field");
-validationSettings.setStandbyHintText("No label detected, camera paused");
-validationSettings.setValidationHintText("fields captured"); // X/Y (X fields out of total Y) is shown in front of this string
-validationSettings.setValidationErrorText("Input not valid");
-validationSettings.setRequiredFieldErrorText("This field is required");
-validationSettings.setManualInputButtonText("Add info manually");
-
-// Apply the settings to the overlay
-if (validationFlowOverlay != null) {
- validationFlowOverlay.applySettings(validationSettings);
-}
-
-```
-
-
-
-### Define a Listener
-
-To handle validation events, implement the [LabelCaptureValidationFlowOverlayListener](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/ui/label-capture-validation-flow-listener.html) interface.
-
-
-
-
-```kotlin
-// This is called by the validation flow overlay when a label has been fully captured and validated
-override fun onValidationFlowLabelCaptured(fields: List) {
-
- val barcodeData = fields.find { it.name == "" }?.barcode?.data
-
- val expiryDate = fields.find { it.name == "" }?.text
-}
-```
-
-
-
-```java
-// This is called by the validation flow overlay when a label has been fully captured and validated
-@Override
-public void onValidationFlowLabelCaptured(@NonNull List fields) {
-
- String barcodeData = null;
- for (LabelField field : fields) {
- if (field.getName().equals("")) {
- barcodeData = field.getBarcode().getData();
- } else if (field.getName().equals("")) {
- String expiryDate = field.getText();
- }
- }
-}
-```
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/android/label-capture/get-started.md
deleted file mode 100644
index 461716c4..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/label-capture/get-started.md
+++ /dev/null
@@ -1,375 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Smart Label Capture to your application. "
-
-sidebar_position: 2
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Smart Label Capture to your application.
-
-The general steps are:
-
-- Create a new Data Capture Context instance
-- Configure the LabelCapture mode
-- Define a listener to handle captured labels
-- Visualize the scan process
-- Start the camera
-- Provide feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import LabelCaptureModuleOverview from '../../../partials/get-started/_smart-label-capture-module-overview.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Configure the Label Capture Mode
-
-The main entry point for the Label Capture Mode is the [LabelCapture](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/label-capture.html#class-scandit.datacapture.label.LabelCapture) object.
-
-It is configured through [LabelCaptureSettings](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/label-capture-settings.html#class-scandit.datacapture.label.LabelCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) that get informed whenever a new frame has been processed.
-
-:::tip
-You can use Label Definitions provided in Smart Label Capture to set pre-built label types or define your label using pre-built fields. For more information, see the [Label Definitions](label-definitions.md) section.
-:::
-
-
-
-
-```kotlin
-import com.scandit.datacapture.label.capture.LabelCapture
-import com.scandit.datacapture.label.capture.LabelCaptureSettings
-import com.scandit.datacapture.label.data.LabelDateComponentFormat
-import com.scandit.datacapture.label.data.LabelDateFormat
-import com.scandit.datacapture.barcode.symbology.Symbology
-
-// Build LabelCaptureSettings
-val settings = LabelCaptureSettings.builder()
- .addLabel()
- // Add a barcode field with the expected symbologies and pattern
- .addCustomBarcode()
- .setSymbologies(Symbology.EAN13_UPCA, Symbology.CODE128)
- .setPattern("\\d{12,14}")
- .buildFluent("")
- // Add a text field for capturing expiry dates
- .addExpiryDateText()
- .isOptional(true)
- .setLabelDateFormat(LabelDateFormat(LabelDateComponentFormat.MDY, false))
- .buildFluent("")
- .buildFluent("")
-.build()
-
-// Create the label capture mode with the settings and data capture context
-val labelCapture = LabelCapture.forDataCaptureContext(dataCaptureContext, settings)
-```
-
-
-
-
-
-```java
-import com.scandit.datacapture.label.capture.LabelCapture;
-import com.scandit.datacapture.label.capture.LabelCaptureSettings;
-import com.scandit.datacapture.label.data.LabelDateComponentFormat;
-import com.scandit.datacapture.label.data.LabelDateFormat;
-
-LabelCaptureSettings settings = LabelCaptureSettings.builder()
- .addLabel()
- /*
- * Add a barcode field with the expected symbologies and pattern.
- * You can omit the pattern if the content of the barcode is unknown.
- */
- .addCustomBarcode()
- .setSymbologies(Symbology.EAN13_UPCA, Symbology.CODE128)
- .setPattern("\\d{12,14}")
- .buildFluent("")
- .buildFluent("")
-.build();
-
-/*
- * Create the label capture mode with the settings and data capture context created earlier.
- */
-LabelCapture labelCapture = LabelCapture.forDataCaptureContext(dataCaptureContext, settings)
-```
-
-
-
-## Define a Listener to Handle Captured Labels
-
-To get informed whenever a new label has been recognized, add a [LabelCaptureListener](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) through [LabelCapture.addListener()](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/label-capture.html#method-scandit.datacapture.label.LabelCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First conform to the `LabelCaptureListener` interface. Here is an example of how to implement a listener that processes the captured labels based on the label capture settings defined above:
-
-
-
-
-```kotlin
-labelCapture.addListener(object : LabelCaptureListener {
- override fun onSessionUpdated(
- mode: LabelCapture,
- session: LabelCaptureSession,
- data: FrameData
- ) {
- /*
- * The session update callback is called for every processed frame.
- * Check if the session contains any captured labels;
- * if not, continue capturing.
- */
- val capturedLabel = session.capturedLabels.firstOrNull() ?: return
-
- /*
- * Given the label capture settings defined above,
- * barcode data will always be present.
- */
- val barcodeData = capturedLabel.fields
- .find { it.name == "" }?.barcode?.data
-
- /*
- * The expiry date field is optional. Check for null in your result handling.
- */
- val expiryDate = capturedLabel.fields
- .find { it.name == "" }?.asDate()
-
- /*
- * Disable the label capture mode after a label has been captured
- * to prevent it from capturing the same label multiple times.
- */
- mode.isEnabled = false
-
- /*
- * Consider handling the results in a coroutine to avoid blocking the main thread
- * when updating the UI.
- */
- coroutineScope.launch {
- handleResults(barcodeData, expiryDate)
- Feedback.defaultFeedback().emit()
- }
- }
-})
-```
-
-
-
-
-In this example, we create a `LabelCaptureRepository` class that implements the `LabelCaptureListener` interface. This class is responsible for handling the captured labels and processing them accordingly.
-
-Depending on your app architecture and whether you use dependency injection or not, you may use a fragment or a repository to implement the listener.
-
-```java
-public class LabelCaptureRepository implements LabelCaptureListener {
-
- /*
- * We use MutableLiveData to post captured labels to the UI thread.
- * You don't need to use MutableLiveData in your implementation, but it's important good practice to keep the UI thread free from heavy processing.
- */
- private final MutableLiveData capturedLabels = new MutableLiveData<>();
-
- // ... other methods
-
- @Override
- public void onSessionUpdated(
- @NonNull LabelCapture labelCapture,
- @NonNull LabelCaptureSession session,
- @NonNull FrameData frameData) {
- /*
- * The session update callback is called for every processed frame.
- * Check if the session contains any captured labels; if not, continue capturing.
- */
- List labels = session.getCapturedLabels();
-
- if (!labels.isEmpty()) {
- final CapturedLabel label = labels.get(0);
-
- /*
- * Given the label capture settings defined above,
- * the barcode field would always be present.
- */
- String barcodeData = label.getFields().stream()
- .filter(field -> field.getName().equals(""))
- .findFirst()
- .map(field -> field.getBarcode().getData())
- .orElse(null);
-
- /*
- * The expiry date field is optional.
- * Check for null in your result handling.
- */
- String expiryDate = label.getFields().stream()
- .filter(field -> field.getName().equals(""))
- .findFirst()
- .map(CapturedField::getText)
- .orElse(null);
-
- /*
- * Disable the label capture mode after a label has been captured
- * to prevent it from capturing the same label multiple times.
- */
- labelCapture.setEnabled(false);
-
- /*
- * Post the captured results for further processing.
- */
- capturedLabels.postValue(new CapturedLabelEvent(barcodeData, expiryDate));
-
- /*
- * Consider communicating a successful scan with audio and vibration feedback.
- * See the Feedback section for more information.
- */
- Feedback.defaultFeedback().emit();
- }
- }
-}
-```
-
-
-
-## Visualize the Scan Process
-
-The capture process can be visualized by adding a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy. The view controls what UI elements such as the viewfinder, as well as the overlays that are shown to visualize captured labels.
-
-To visualize the results of Label Capture you can use two overlays:
-
-- [LabelCaptureBasicOverlay](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/ui/label-capture-basic-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureBasicOverlay)
-- [LabelCaptureAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/ui/label-capture-advanced-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureAdvancedOverlay)
-
-:::tip
-The overlays can be used independently of each other, but you can also use both at the same time as each can serve to extend the functionality of the other.
-:::
-
-Here is an example of how to add a `LabelCaptureBasicOverlay` to the `DataCaptureView`:
-
-
-
-
-```kotlin
-/*
- * Create the data capture view and attach it to the data capture context created earlier.
- */
-val dataCaptureView = DataCaptureView.newInstance(requireContext(), dataCaptureContext)
-
-/*
- * Add the data capture view to your view hierarchy, e.g. with setContentView or findViewById.
- */
-val container = /* get your containing view here, e.g. with inflate or findViewById */
-container.addView(
- dataCaptureView,
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT
-)
-
-/*
- * Create the overlay with the label capture mode and data capture view created earlier.
- */
-val overlay = LabelCaptureBasicOverlay.newInstance(labelCapture, dataCaptureView)
-overlay.viewfinder = RectangularViewfinder(RectangularViewfinderStyle.SQUARE)
-```
-
-
-
-
-```java
-/*
- * Create the data capture view and attach it to the data capture context created earlier.
- */
-DataCaptureView dataCaptureView = DataCaptureView.newInstance(this, dataCaptureContext);
-
-/*
- * Add the data capture view to your view hierarchy, e.g. with setContentView or findViewById.
- */
-ViewGroup container = /* get your containing view here, e.g. with inflate or findViewById */
-container.addView(
- dataCaptureView,
- new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)
-);
-
-/*
- * Create the overlay with the label capture mode and data capture view created earlier.
- */
-LabelCaptureBasicOverlay overlay = LabelCaptureBasicOverlay.newInstance(labelCapture, dataCaptureView);
-overlay.setViewfinder(new RectangularViewfinder(RectangularViewfinderStyle.SQUARE));
-```
-
-
-
-
-:::tip
-See the [Advanced Configurations](advanced.md) section for more information about how to customize the appearance of the overlays and how to use the advanced overlay to display arbitrary Android views such as text views, icons or images.
-:::
-
-## Start the Camera
-
-Next, you need to create a new instance of the [Camera](https://docs.scandit.com/data-capture-sdk/android/core/api/camera.html#class-scandit.datacapture.core.Camera) class to indicate the camera to stream previews and to capture images.
-
-When initializing the camera, you can pass the recommended camera settings for Label Capture.
-
-```java
-camera = Camera.getDefaultCamera(LabelCapture.createRecommendedCameraSettings());
-if (camera == null) {
- throw new IllegalStateException("Failed to init camera!");
-}
-dataCaptureContext.setFrameSource(camera);
-```
-
-Once the Camera, DataCaptureContext, DataCaptureView and LabelCapture are initialized, you can switch on the camera to start capturing labels.
-Typically, this is done on resuming the view and when the user granted permission to use the camera, or once the user pressed continue scanning after handling a previous scan.
-
-```java
-camera.switchToDesiredState(FrameSourceState.ON);
-```
-
-## Provide Feedback
-
-Smart Label Capture provides customizable feedback, emitted automatically when a label is recognized and successfully processed, configurable via [`LabelCapture.feedback`](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/label-capture.html#property-scandit.datacapture.label.LabelCapture.Feedback).
-
-You can use the default feedback, or configure your own sound or vibration.
-
-:::tip
-If you already have a [Feedback](https://docs.scandit.com/data-capture-sdk/android/core/api/feedback.html#class-scandit.datacapture.core.Feedback) instance implemented in your application, remove it to avoid double feedback.
-:::
-
-
-
-
-```kotlin
-labelCapture.feedback = LabelCaptureFeedback.defaultFeedback()
-```
-
-
-
-
-```java
-labelCapture.setFeedback(LabelCaptureFeedback.defaultFeedback());
-```
-
-
-
-
-:::note
-Audio feedback is only played if the device is not muted.
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/android/label-capture/intro.md
deleted file mode 100644
index c7db9735..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/label-capture/intro.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-description: "import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx'; "
-
-sidebar_label: About Smart Label Capture
-title: About Smart Label Capture
-toc_max_heading_level: 4
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx';
-
-
-
-import ValidationFlow from '../../../partials/intro/_about_validation_flow.mdx';
-
-
-
-See [here](./advanced.md#validation-flow) for more details.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/label-capture/label-definitions.md b/versioned_docs/version-8.1.1/sdks/android/label-capture/label-definitions.md
deleted file mode 100644
index 959f50e4..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/label-capture/label-definitions.md
+++ /dev/null
@@ -1,152 +0,0 @@
----
-description: "A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans. "
-
-framework: android
-keywords:
- - android
-toc_max_heading_level: 4
----
-
-# Label Definitions
-
-A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans.
-
-Smart Label Capture provides a [Label Definition](https://docs.scandit.com/data-capture-sdk/android/label-capture/api/label-definition.html#label-definition) API, enabling you to configure and extract structured data from predefined and custom labels. This feature provides a flexible way to recognize and decode fields within a specific label layout such as price tags, VIN labels, or packaging stickers without needing to write custom code for each label type.
-
-There are two approaches to using label definitions:
-
-- [**Pre-built Labels**](#pre-built-labels)
-- [**Custom Labels**](#custom-labels)
-
-## Pre-built Labels
-
-Smart Label Capture includes ready-made label definitions for common use cases. These pre-built options let you recognize and extract information from standard label types without creating custom configurations:
-
-
-
-### Example: Price label
-
-Use the `LabelCaptureSettings` builder to configure a pre-built label definition for price labels, such as those found in retail environments:
-
-
-
-```kotlin
-val settings =
- LabelCaptureSettings.builder()
- .addLabel(LabelDefinition.createPriceCaptureDefinition("price-label"))
- .build
-```
-
-## Custom Labels
-
-If Smart Label Capture’s pre-built options don’t fit your needs, define a custom label instead. Custom labels can combine your own fields with any of the available pre-built ones.
-
-:::tip
-The following characters are recognized: `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()-./:,$¶"`.
-:::
-
-### Custom Fields
-
-There are two types of custom fields you can define:
-
-
-
-The following methods are available to configure custom fields:
-
-| Method | Optional | Description |
-|--------|----------|-------------|
-| `valueRegexes` | No | The regex patterns that identify the target string in the scanned content. |
-| `anchorRegexes` | Yes | Used to specify keywords or phrases that help identify the context of the field. This is particularly useful when the label contains multiple fields that could match the same pattern (e.g., when both packaging and expiry dates are present). |
-| `symbologies` | No | The barcode symbologies to match for barcode fields. This is important for ensuring that the field only captures data from specific barcode types, enhancing accuracy and relevance. |
-| `isOptional` | Yes | Whether the field is optional or mandatory. This is helpful when certain fields may not be present on every scan. |
-
-#### Example: Fish Shipping Box
-
-This example shows how to create a custom label definition for a fish shipping box, which includes fields for barcode and batch number.
-
-
-
-```kotlin
-val settings =
- LabelCaptureSettings.builder()
- .addLabel()
- .addCustomBarcode()
- .setSymbologies(Symbology.CODE128)
- .buildFluent("barcode-field")
- .addCustomText()
- .setAnchorRegexes("Batch")
- .setValueRegexes("FZ\\d{5,10}")
- .isOptional(true)
- .buildFluent("batch-number-field")
- .buildFluent("shipping-label")
- .build
-```
-
-### Pre-built Fields
-
-You can also build your label using pre-built fields. These common fields speed up integration because their `valueRegexes`, `anchorRegexes`, and `symbologies` are already predefined.
-
-Customization of pre-built fields is done via the `valueRegexes`, `anchorRegexes`, and `isOptional` methods, which allow you to specify the expected format of the field data.
-
-:::tip
-All pre-built fields come with default `valueRegexes` and `anchorRegexes` that are suitable for most use cases. **Using either method is optional and will override the defaults**.
-
-The `resetAnchorRegexes` method can be used to remove the default `anchorRegexes`, allowing you to rely solely on the `valueRegexes` for detection.
-:::
-
-import FeatureList from '@site/src/components/FeatureList';
-
-#### Barcode Fields
-
-
-
-#### Price and Weight Fields
-
-
-
-#### Date and Custom Text Fields
-
-
-
-#### Example: Hard disk drive label
-
-This example demonstrates how to configure a label definition for a hard disk drive (HDD) label, which typically includes common fields like serial number and part number.
-
-
-
-```kotlin
-val settings =
- LabelCaptureSettings.builder()
- .addLabel()
- .addSerialNumberBarcode()
- .buildFluent("serial-number")
- .addPartNumberBarcode()
- .buildFluent("part-number")
- .buildFluent("hdd-label")
- .build
-```
diff --git a/versioned_docs/version-8.1.1/sdks/android/label-scanning.md b/versioned_docs/version-8.1.1/sdks/android/label-scanning.md
deleted file mode 100644
index 989f2276..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/label-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Label scanning enables you to capture and extract data from labels containing multiple barcodes and printed text, making it ideal for retail, logistics, and inventory management applications."
-toc_max_heading_level: 4
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# Label Scanning
-
-import LabelScanning from '../../partials/_label-scanning.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-ar/get-started.md
deleted file mode 100644
index 3364a7c5..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,171 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements: "
-
-sidebar_position: 2
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements:
-
-- Barcode AR: The data capture mode that is used for scan and check functionality.
-- A Barcode AR View: The pre-built UI elements used to highlight items to be checked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode AR Mode
-- Setup the Barcode AR View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-import ExternalDependencies from '../../../partials/get-started/_external-deps-android.mdx';
-
-
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Configure the Barcode AR Mode
-
-The main entry point for the Barcode AR Mode is the `BarcodeAr` object. You can configure the supported Symbologies through its [`BarcodeArSettings`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-ar-settings.html).
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```java
-BarcodeArSettings settings = new BarcodeArSettings();
-settings.enableSymbology(Symbology.EAN13_UPCA, true);
-```
-
-Then create the mode with the previously created settings:
-
-```java
-BarcodeAr mode = new BarcodeAr(dataCaptureContext, settings);
-```
-
-## Setup the `BarcodeArView`
-
-MatrixScan AR’s built-in AR user interface includes buttons and overlays that guide the user through the scan and check process. By adding a [`BarcodeArView`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.check.ui.BarcodeArView), the scanning interface is added automatically to your application.
-
-The `BarcodeArView` is where you provide the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider) to supply the highlight and annotation information for the barcodes to be checked. If *null*, a default highlight is used and no annotations are provided.
-
-The `BarcodeArView` appearance can be customized through [`BarcodeArViewSettings`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-ar-view-settings.html#class-scandit.datacapture.barcode.check.ui.BarcodeArViewSettings), properties on the`BarcodeArView`, and the corresponding settings for your desired highlights and/or annotations, to match your application’s look and feel. The following settings can be customized:
-
-* Audio and haptic feedback
-* Camera position
-* Torch button visibility and its position
-* Switch camera button visibility and its position
-* Zoom control visibility and its position
-* The size, colors, and styles of the highlights and annotations
-
-```java
-BarcodeArViewSettings viewSettings = new BarcodeArViewSettings();
-viewSettings.setHapticEnabled(false);
-viewSettings.setSoundEnabled(false);
-viewSettings.setDefaultCameraPosition(CameraPosition.USER_FACING);
-```
-
-Next, create a `BarcodeArView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeArView` is automatically added to the provided parent view.
-
-```java
-BarcodeArView barcodeArView = BarcodeArView(parentView, barcodeAr, dataCaptureContext, viewSettings);
-barcodeArView.setShouldShowCameraSwitchControl(true);
-barcodeArView.setShouldShowTorchControl(true);
-barcodeArView.setShouldShowZoomControl(true);
-barcodeArView.setCameraSwitchControlPosition(Anchor.TOP_RIGHT);
-barcodeArView.setTorchControlPosition(Anchor.BOTTOM_RIGHT);
-barcodeArView.setZoomControlPosition(Anchor.TOP_LEFT);
-```
-
-Configure the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider).
-
-```java
-private class AnnotationProvider implements BarcodeArAnnotationProvider {
-
- @Override
- public void annotationForBarcode(@NonNull Context context, @NonNull Barcode barcode, @NonNull Callback callback) {
- BarcodeArStatusIconAnnotation annotation = new BarcodeArStatusIconAnnotation(context, barcode);
- annotation.setText("Example annotation");
- callback.onData(annotation);
- }
-}
-
-private class HighlightProvider implements BarcodeArHighlightProvider {
-
- @Override
- public void highlightForBarcode(@NonNull Context context, @NonNull Barcode barcode, @NonNull Callback callback) {
- callback.onData(new BarcodeArRectangleHighlight(context, barcode));
- }
-}
-```
-
-And set them to the view:
-
-```java
-barcodeArView.setHighlightProvider(new HighlightProvider());
-barcodeArView.setAnnotationProvider(new AnnotationProvider());
-```
-
-Connect the `BarcodeArView` to the Android lifecycle. The view is dependent on calling `BarcodeArView.onPause()`, `BarcodeArView.onResume()`, and `BarcodeArView.onDestroy()` to set up the camera and its overlays properly.
-
-```java
-@Override
-public void onResume() {
- super.onResume();
- barcodeArView.onResume();
-}
-
-@Override
-public void onPause() {
- super.onPause();
- barcodeArView.onPause();
-}
-
-@Override
-public void onDestroyView() {
- super.onDestroyView();
- barcodeArView.onDestroy();
-}
-```
-
-## Register the Listener
-
-If you want a callback when a highlight is tapped, register a [BarcodeArViewUiListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-ar-view.html#interface-scandit.datacapture.barcode.check.ui.IBarcodeArViewUiListener).
-
-```java
-barcodeArView.setUiListener(new BarcodeArViewUiListener() {
- @Override
- public void onHighlightForBarcodeTapped(@NonNull BarcodeAr barcodeAr, @NonNull Barcode barcode, @NonNull BarcodeArHighlight highlight, @NonNull View highlightView) {
- // handle tap
- }
-});
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `barcodeArView.start()`.
-
-```java
-barcodeArView.start();
-```
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-ar/intro.md
deleted file mode 100644
index c0bf03f5..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# About MatrixScan AR
-
-import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/advanced.md
deleted file mode 100644
index 8ba356d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,156 +0,0 @@
----
-description: "MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Advanced Configurations
-
-MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs.
-
-## Scanning Against a List
-
-There is a function to set a list of expected barcodes if you are scanning against a manifest or item list. If this is used, a progress bar is added to the UI so you can keep track of the process while scanning.
-
-When scanning against a list, the UI will also show red icons to mark scanned barcodes that aren’t present on the list. To set the list of expected barcodes, use the following code:
-
-```java
-List targetBarcodes = new ArrayList<>();
-targetBarcodes.add(TargetBarcode.create("data", 1));
-BarcodeCountCaptureList captureList = BarcodeCountCaptureList.create(this, targetBarcodes);
-barcodeCount.setBarcodeCountCaptureList(captureList);
-```
-
-## Barcode Count Status
-
-This feature is used to provide users with more details regarding the items they’re scanning in order to aid effective handling. The icons appear as an AR overlay after tapping the “Status Mode” button and can be used to highlight the following:
-
-
-
-See the [Expiry Management Sample](https://github.com/Scandit/datacapture-android-samples/tree/master/03_Advanced_Batch_Scanning_Samples/02_Counting_and_Receiving/ExpiryManagementSample)
-
- for an example of how to use this feature.
-
-## Clustering
-
-import Clustering from '../../../partials/count/_clustering.mdx'
-
-
-
-## Tote Mapping
-
-import Totes from '../../../partials/count/_tote-mapping.mdx'
-
-
-
-## Strap Mode
-
-It can be difficult to reach the shutter button if the smart device is attached to the user’s wrist by a strap or similar.
-
-You can enable a floating shutter button that can be positioned by the end user in a more ergonomically suitable position:
-
-```java
-barcodeCountView.setShouldShowFloatingShutterButton(true);
-```
-
-## Filtering
-
-If there several types of barcodes on your label you may want to scan only one of them. In this case, you can filter the others out by symbology, symbol count, or setting a regex.
-
-For example, you might want to scan only Code 128 barcodes and no PDF417 barcodes. You can do this by setting the following:
-
-```java
-BarcodeCountSettings settings = new BarcodeCountSettings();
-barcodeCountSettings.enableSymbologies(enabledSymbologies);
-
-Set excludedSymbologies = new HashSet<>();
-excludedSymbologies.add(Symbology.PDF417);
-BarcodeFilterSettings filterSettings = settings.getFilterSettings();
-filterSettings.setExcludedSymbologies(excludedSymbologies);
-```
-
-Or to exclude all the barcodes starting with 4 numbers:
-
-```java
-BarcodeCountSettings settings = new BarcodeCountSettings();
-
-BarcodeFilterSettings filterSettings = settings.getFilterSettings();
-filterSettings.setExcludedCodesRegex("^1234.*");
-```
-
-By default the filters applied to the relevant barcodes are transparent, but you can use [`BarcodeFilterHighlightSettings`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-filter-highlight-settings.html#barcode-filter-highlight-settings) to change the color and level of transparency.
-
-
-
-## Clear Screen Button
-
-There are situations in which the user may find it helpful to clean up their screen (i.e. clear all the AR overlays) but keep the list of barcodes scanned.
-
-For this you can enable the “Clear screen” button:
-
-```java
-barcodeCountView.setShouldShowClearHighlightsButton(true);
-```
-
-## Customizing the AR Overlays
-
-MatrixScan Count comes with recommended and user-tested AR overlays. However, if you wish to customize the overlay colors, once the overlay has been added, you can conform to the [BarcodeCountViewListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-count-view-listener.html#interface-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener) interface.
-
-The methods [BarcodeCountViewListener.brushForRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForRecognizedBarcode) and [BarcodeCountViewListener.brushForUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForUnrecognizedBarcode) are invoked every time a new recognized or unrecognized barcode appears. These can be used to set a brush that will be used to highlight that specific barcode in the overlay. Keep in mind that these methods are relevant only when using the style [BarcodeCountViewStyle.DOT](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-count-view.html#value-scandit.datacapture.barcode.count.ui.BarcodeCountViewStyle.Dot).
-
-```java
-@Nullable
-@Override
-public Brush brushForRecognizedBarcode(
- @NonNull BarcodeCountView view, @NonNull TrackedBarcode trackedBarcode) {
- // Return a custom brush
-}
-
-@Nullable
-@Override
-public Brush brushForUnrecognizedBarcode(
- @NonNull BarcodeCountView view, @NonNull TrackedBarcode trackedBarcode) {
- // Return a custom brush
-}
-```
-
-## Notifications
-
-If you want to be notified when a user taps on an overlay, you need to implement the [BarcodeCountViewListener.onRecognizedBarcodeTapped()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnRecognizedBarcodeTapped) and [BarcodeCountViewListener.onUnrecognizedBarcodeTapped()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped) methods.
-
-```java
-@Override
-public void onRecognizedBarcodeTapped(
- @NonNull BarcodeCountView view, @NonNull TrackedBarcode trackedBarcode) {
- // Do something with the tapped barcode
-}
-
-@Override
-public void onUnrecognizedBarcodeTapped(
- @NonNull BarcodeCountView view, @NonNull TrackedBarcode trackedBarcode) {
- // Do something with the tapped barcode
-}
-```
-
-## Disable UI Elements
-
-The UI is an integral part of MatrixScan Count and we do not recommend that you use it without it. However, if you wish to disable UI elements you can so as follows.
-
-To disable buttons:
-
-```java
-barcodeCountView.setShouldShowListButton(false);
-barcodeCountView.setShouldShowExitButton(false);
-barcodeCountView.setShouldShowShutterButton(false);
-```
-
-To disable feedback and hints:
-
-```java
-barcodeCountView.setShouldShowUserGuidanceView(false);
-barcodeCountView.setShouldShowHints(false);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/get-started.md
deleted file mode 100644
index 41d7e46e..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,176 +0,0 @@
----
-description: "This page describes the steps to add MatrixScan Count to your application. "
-
-sidebar_position: 2
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-This page describes the steps to add MatrixScan Count to your application.
-
-:::note
-MatrixScan Count is implemented via [BarcodeCount](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount).
-:::
-
-The general steps are:
-
-- Create a new Data Capture Context instance
-- Configure the Barcode Count Mode
-- Obtain the camera instance and set frame source
-- Register the listener to be informed when scan phase is complete
-- Set the capture view and AR overlays
-- Configure the camera for scanning view
-- Store and retrieve the captured barcodes
-- Reset the Barcode Count Mode
-- List and exit callbacks
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-import ExternalDependencies from '../../../partials/get-started/_external-deps-android.mdx';
-
-
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Configure the Barcode Count Mode
-
-The main entry point for the Barcode Count Mode is the `BarcodeCount` object. It is configured through [BarcodeCountSettings](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-count-settings.html) and allows you to register one or more listeners that are informed whenever a scan phase has finished.
-
-Here we set up Barcode Count for tracking EAN13 codes, however you must change this to the appropriate symbologies for your use case. If you are sure that your environment has only unique barcodes, you can also enable `BarcodeCountSettings.expectsOnlyUniqueBarcodes`. This option improves scanning performance as long as you are sure that no duplicates are present.
-
-```java
-BarcodeCountSettings settings = new BarcodeCountSettings();
-settings.setSymbologyEnabled(Symbology.EAN13_UPCA, true);
-```
-
-Next, create a `BarcodeCount` instance with the Data Capture Context and the settings initialized in the previous step:
-
-```java
-BarcodeCount barcodeCount = BarcodeCount.forDataCaptureContext(context, settings);
-```
-
-## Camera Instance And Set Frame Source
-
-Our recommended camera settings should be used to achieve the best performance and user experience. The following code shows how to get the recommended settings for MatrixScan Count and create the camera from it:
-
-```java
-CameraSettings cameraSettings = BarcodeCount.createRecommendedCameraSettings();
-
-Camera camera = Camera.getDefaultCamera();
-camera.applySettings(cameraSettings);
-```
-
-Because the frame source is configurable the data capture context must be told which frame source to use. This is done with a call to [`DataCaptureContext.setFrameSource()`](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```java
-dataCaptureContext.setFrameSource(camera);
-```
-
-## Registering the Listener
-
-To keep track of the barcodes that have been scanned, implement the [BarcodeCountListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface and register the listener.
-
-```java
-// Register self as a listener to monitor the barcode count session.
-barcodeCount.addListener(this);
-```
-
-[`BarcodeCountListener.onScan()`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan) is called when the scan phase has finished and results can be retrieved from [`BarcodeCountSession`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession).
-
-## Setting the Capture View and AR Overlays
-
-MatrixScan Count’s built-in AR user interface includes buttons and overlays that guide the user through the capturing process. By adding a [`BarcodeCountView`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) the scanning interface will be added automatically to your application.
-
-Add a `BarcodeCountView` to your view hierarchy:
-
-```java
-BarcodeCountView view = BarcodeCountView.newInstance(barcodeCount, captureView);
-```
-
-## Configuring the Camera for Scanning View
-
-The camera is not automatically turned on when you are in a scanning view. You need to set up the camera so that it switches on when needed and it switches off when not needed anymore.
-
-Similarly `BarcodeCount` should also be enabled and disabled. For example, you should switch off the camera when the `BarcodeCountView` is not visible and switch on the camera when the `BarcodeCountView` is visible. For example:
-
-```java
-@Override
-protected void onPause() {
- camera.switchToDesiredState(FrameSourceState.OFF);
- super.onPause();
-}
-
-@Override
-protected void onResume() {
- super.onResume();
- camera.switchToDesiredState(FrameSourceState.ON);
-}
-```
-
-## Store And Retrieve Scanned Barcodes
-
-The values captured as part of the scanning process are part of the session, and the session is not accessible outside [`BarcodeCountListener.onScan`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan).
-
-We recommend you store the values to present a list, for example when the user taps the list icon. To do this, make a copy of [`BarcodeCountSession.recognizedBarcodes`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-count-session.html#property-scandit.datacapture.barcode.count.BarcodeCountSession.RecognizedBarcodes):
-
-```java
-@Override
-public void onScan(
- @NonNull BarcodeCount mode,
- @NonNull BarcodeCountSession session,
- @NonNull FrameData data
-) {
- allRecognizedBarcodes = session.getRecognizedBarcodes().values();
-}
-```
-
-## Resetting the Barcode Count Mode
-
-When the scanning process is over, you need to reset the mode to make it ready for the next process. This clears the list of barcodes scanned and all the AR overlays.
-
-To reset Barcode Count’s scanning process, call the `BarcodeCount.reset` method:
-
-```java
-barcodeCount.reset()
-```
-
-## List and Exit Callbacks
-
-The UI includes two icons (buttons): “List” and “Exit”. The SDK provides the callbacks so you can add the desired action when those icons are tapped by the user:
-
-```java
-@Override
-public void onListButtonTapped(
- @NonNull BarcodeCountView view
-) {
- // Show the current progress but the order is not completed
-}
-
-@Override
-public void onExitButtonTapped(
- @NonNull BarcodeCountView view
-) {
- // The order is completed
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/intro.md
deleted file mode 100644
index 351d1884..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-count/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# About MatrixScan Count
-
-import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/advanced.md
deleted file mode 100644
index 06211fa5..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-description: "MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## BarcodeFind Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodeFind` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodeFindListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```java
-mode.addListener(new BarcodeFindListener() {
- @Override
- public void onSearchPaused(@NonNull Set foundItems) {
- // The mode was paused
- }
-
- @Override
- public void onSearchStarted() {
- // The mode was started
- }
-
- @Override
- public void onSearchStopped(@NonNull Set foundItems) {
- // The mode was stopped after the finish button was clicked
- }
-});
-```
-
-## Multiple criteria
-
-You can assign different brushes to each BarcodeFindItem, so they appear visually different to the end user. This can be used to make some items stand out more, or to help the user mentally group certain items together.
-
-```java
-Brush availableBrush = new Brush(Color.GREEN, Color.GREEN, 1f);
-Brush expiredBrush = new Brush(Color.RED, Color.RED, 1f);
-
-Set items = new HashSet<>();
-items.add(
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215438", availableBrush),
- new BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)
- )
-);
-items.add(
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215414", expiredBrush),
- null
- )
-);
-```
-
-## Set up a transformation
-
-Sometimes, the barcode data needs to be transformed. For example, if the barcode contains the product identifier and other information, when a product is scanned, the barcode data is first parsed (via a transformation) and then the input list is checked.
-
-First implement the [BarcodeFindTransformer](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-find-transformer.html#interface-scandit.datacapture.barcode.find.IBarcodeFindTransformer) interface. For example, if you want to only consider the first 5 characters:
-
-```java
-class Transformer implements BarcodeFindTransformer {
- @Override
- public String transformBarcodeData(String data) {
- return data.substring(0, 5);
- }
-}
-```
-
-Then the transformer needs to be set so it can be used by MatrixScan Find:
-
-```java
-barcodeFind.setBarcodeTransformer(new Transformer())
-```
-
-## UI Customization
-
-The `BarcodeFindView` by default shows a set of UI elements, any of which can be optionally hidden:
-
-- Play/Pause button
-- Finish button
-- Searched items carousel
-- Guidance hints
-- Progress bar (hidden by default)
-
-Each of these elements can be shown or hidden as needed. For example:
-
-```java
-barcodeFindView.setShouldShowCarousel(false);
-barcodeFindView.setShouldShowProgressBar(true);
-// …
-```
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/get-started.md
deleted file mode 100644
index fd5182f3..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,151 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements: "
-
-sidebar_position: 2
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-:::note
-MatrixScan Find is implemented via [`BarcodeFind`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind).
-:::
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Find Mode
-- Setup the Barcode Find View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-import ExternalDependencies from '../../../partials/get-started/_external-deps-android.mdx';
-
-
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Configure the Barcode Find Mode
-
-The main entry point for the Barcode Find Mode is the `BarcodeFind` object. You can configure the supported Symbologies through its [`BarcodeFindSettings`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```java
-BarcodeFindSettings settings = new BarcodeFindSettings();
-settings.setSymbologyEnabled(Symbology.EAN13_UPCA, true);
-```
-
-Next, create the list of items that will be actively searched for. We will also attach some optional information to the first item that can be used by the `BarcodeFindView` to display extra information:
-
-```java
-Set items = new HashSet<>();
-items.add(
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215438"),
- new BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)
- )
-);
-items.add(
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215414"),
- null // Item information is optional, used for display only
- )
-);
-```
-
-Finally, create a `BarcodeFind` instance with the Data Capture Context and the settings initialized in the previous step:
-
-```java
-BarcodeFind mode = new BarcodeFind(settings);
-mode.setItemList(items);
-```
-
-## Setup the `BarcodeFindView`
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a [`BarcodeFindView`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView), the scanning interface is added automatically to your application.
-
-The `BarcodeFindView` appearance can be customized through [`BarcodeFindViewSettings`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings) to match your application’s look and feel. For example, you can change the color of the dots that are overlaid on top of the items that are found and enable sound and haptic alerts.
-
-```java
-BarcodeFindViewSettings viewSettings = new BarcodeFindViewSettings();
-viewSettings.inListItemColor = .green
-viewSettings.notInListItemColor = .red
-viewSettings.soundEnabled = true
-viewSettings.hapticEnabled = true
-```
-
-Next, create a `BarcodeFindView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeFindView` is automatically added to the provided parent view.
-
-```java
-BarcodeFindView barcodeFindView = BarcodeFindView.newInstance(parentView, dataCaptureContext, mode, viewSettings);
-```
-
-Connect the `BarcodeFindView` to the Android lifecycle. The view is dependent on calling `BarcodeFindView.onPause()` and `BarcodeFindView.onResume()` to set up the camera and its overlays properly.
-
-```java
-@Override
-public void onResume() {
- super.onResume();
- barcodeFindView.onResume();
-}
-
-@Override
-public void onPause() {
- super.onPause();
- barcodeFindView.onPause();
-}
-```
-
-## Register the Listener
-
-The `BarcodeFindView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodeFindViewUiListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-find-view.html#interface-scandit.datacapture.barcode.find.ui.IBarcodeFindViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```java
-barcodeFindView.setListener(new BarcodeFindViewUiListener() {
- @Override
- public void onFinishButtonTapped(@NonNull Set foundItems) {
- requireActivity().onBackPressed();
- }
-});
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `barcodeFindView.startSearching()`.
-
-```java
-barcodeFindView.startSearching();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/intro.md
deleted file mode 100644
index 2b3a1949..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-find/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/advanced.md
deleted file mode 100644
index 51345f18..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-description: "MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Advanced Configurations
-
-MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.
-
-## BarcodePick Listener
-
-You can register a [`BarcodePickListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-pick-listener.html) on the mode, which can be used to get updates about the scanned items with each frame.
-
-```java
-mode.addListener(new BarcodePickListener() {
- @Override
- public void onSessionUpdated(@NonNull BarcodePick barcodePick, @NonNull BarcodePickSession session) {
- // This callback will be invoked on a background thread every frame. the session object contains
- // updated the newly tracked items.
- }
-
- @Override
- public void onObservationStarted(@NonNull BarcodePick barcodePick) {}
-
- @Override
- public void onObservationStopped(@NonNull BarcodePick barcodePick) {}
-});
-```
-
-## BarcodePickScanning Listener
-
-You can register a [`BarcodePickScanningListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-pick-scanning-listener.html) on the mode, which can be used to listen to every time the pick state changes.
-
-```java
-mode.addScanningListener(new BarcodePickScanningListener() {
- @Override
- public void onScanningSessionUpdated(@NonNull BarcodePick barcodePick, @NonNull BarcodePickScanningSession session) {
- // This callback will be invoked on a background thread every time the picked state of some item changes.
- // The session object contains the list of picked and scanned items.
- }
-
- @Override
- public void onScanningSessionCompleted(@NonNull BarcodePick barcodePick, @NonNull BarcodePickScanningSession session) {
- // This callback is invoked when all the registered items needing picking have been picked.
- }
-
- @Override
- public void onObservationStarted(@NonNull BarcodePick barcodePick) {}
-
- @Override
- public void onObservationStopped(@NonNull BarcodePick barcodePick) {}
-});
-```
-
-## BarcodePickView Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodePick` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodePickViewListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-pick-view-listener.html) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```java
-barcodePickView.setListener(new BarcodePickViewListener() {
- @Override
- public void onStopped(@NonNull BarcodePickView view) {}
-
- @Override
- public void onPaused(@NonNull BarcodePickView view) {}
-
- @Override
- public void onFreezed(@NonNull BarcodePickView view) {}
-
- @Override
- public void onStarted(@NonNull BarcodePickView view) {}
-});
-```
-
-## BarcodePickAction Listener
-
-You can also register a [`BarcodePickActionListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-pick-action-listener.html) on the mode, which can be used to reject specific pick/unpick actions.
-
-```java
-barcodePickView.addActionListener(new BarcodePickActionListener() {
- @Override
- public void onPick(@NonNull String itemData, @NonNull BarcodePickActionCallback callback) {
- // Perform the needed checks, and invoke callback.onFinish(true/false) to allow/reject
- // the current pick action
- }
-
- @Override
- public void onUnpick(@NonNull String itemData, @NonNull BarcodePickActionCallback callback) {
- // Perform the needed checks, and invoke callback.onFinish(true/false) to allow/reject
- // the current unpick action
- }
-});
-```
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/get-started.md
deleted file mode 100644
index c008a974..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,211 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements: "
-
-sidebar_position: 2
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements:
-
-- Barcode Pick: The data capture mode that is used for scan and pick functionality.
-- A Barcode Pick View: The pre-built UI elements used to highlight items to be picked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Pick Mode
-- Setup the Barcode Pick View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-import ExternalDependencies from '../../../partials/get-started/_external-deps-android.mdx';
-
-
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Configure the Barcode Pick Mode
-
-The main entry point for the Barcode Pick Mode is the `BarcodePick` object. You can configure the supported Symbologies through its [`BarcodePickSettings`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-pick-settings.html), and set up the list of items that you want MatrixScan Pick to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```java
-BarcodePickSettings settings = new BarcodePickSettings();
-settings.enableSymbology(Symbology.EAN13_UPCA, true);
-```
-
-Then you have to create the product provider for the Barcode Pick mode. This provider is responsible for providing the items that should be highlighted in the AR view. Note that in this example we are using a hardcoded list of items, but in a real-world scenario, you would fetch this list from your backend.
-
-```java
-List productDatabase = new ArrayList<>();
- productDatabase.add(
- new ProductDatabaseEntry(
- /*product identifier*/"product_1",
- /*quantity to pick*/2,
- /*items for the product*/new HashSet() {{
- add("9783598215438");
- add("9783598215414");
- add("9783598215441");
- add("9783598215412");
- }})
- );
- productDatabase.add(
- new ProductDatabaseEntry(
- /*product identifier*/"product_2",
- /*quantity to pick*/3,
- /*items for the product*/new HashSet() {{
- add("9783598215471");
- add("9783598215481");
- add("9783598215458");
- add("9783598215498");
- add("9783598215421");
- }})
- );
-
- // Map the database products to create the Scandit product provider input.
- Set items = new HashSet<>();
- for (ProductDatabaseEntry productDatabaseEntry : productDatabase) {
- items.add(
- new BarcodePickProduct(
- productDatabaseEntry.productIdentifier,
- productDatabaseEntry.quantityToPick
- )
- );
- }
-
- // Finally, create the product provider itself
- BarcodePickProductProvider productProvider = new BarcodePickAsyncMapperProductProvider(
- items,
- new BarcodePickAsyncMapperProductProviderCallback() {
- @Override
- public void productIdentifierForItems(
- @NonNull List itemsData,
- @NonNull BarcodePickProductProviderCallback callback
- ) {
- ArrayList results = new ArrayList<>();
-
- // Use the scanned itemsData list to retrieve the identifier of the product they belong to.
- // This should be an async query in real world scenarios if there are a lot of products/items to loop.
- for (String itemData : itemsData) {
- for (ProductDatabaseEntry entry : productDatabase) {
- if (entry.items.contains(itemData)) {
- results.add(
- new BarcodePickProductProviderCallbackItem(
- /*item data*/itemData,
- /*product identifier*/entry.productIdentifier
- )
- );
- break;
- }
- }
- }
- callback.onData(results);
- }
- }
- );
-```
-
-Create the mode with the previously created settings:
-
-```java
-BarcodePick mode = new BarcodePick(dataCaptureContext, settings, productProvider);
-```
-
-## Setup the `BarcodePickView`
-
-MatrixScan Pick’s built-in AR user interface includes buttons and overlays that guide the user through the scan and pick process. By adding a [`BarcodePickView`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-pick-view.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickView), the scanning interface is added automatically to your application.
-
-The `BarcodePickView` appearance can be customized through [`BarcodePickViewSettings`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-pick-view-settings.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickViewSettings) to match your application’s look and feel. The following settings can be customized:
-
-* Colors of dots in augmented reality overlay
-* Enable sound and haptic alerts
-* Guidelines text
-* Showing hints
-* Finish button
-* Pause button
-* Zoom button
-* Loading Dialog
-
-```java
-BarcodePickViewSettings viewSettings = new BarcodePickViewSettings();
-// ...
-```
-
-Next, create a `BarcodePickView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodePickView` is automatically added to the provided parent view.
-
-```java
-BarcodePickView barcodePickView = BarcodePickView.newInstance(parentView, dataCaptureContext, mode, viewSettings);
-```
-
-Connect the `BarcodePickView` to the Android lifecycle. The view is dependent on calling `BarcodePickView.onPause()`, `BarcodePickView.onResume()`, and `BarcodePickView.onDestroy()` to set up the camera and its overlays properly.
-
-```java
-@Override
-public void onResume() {
- super.onResume();
- barcodePickView.onResume();
-}
-
-@Override
-public void onPause() {
- super.onPause();
- barcodePickView.onPause();
-}
-
-@Override
-public void onDestroyView() {
- super.onDestroyView();
- barcodePickView.onDestroy();
-}
-```
-
-## Register the Listener
-
-The `BarcodePickView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodePickViewUiListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-pick-view.html#interface-scandit.datacapture.barcode.pick.ui.IBarcodePickViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```java
-barcodePickView.setUiListener(new BarcodePickViewUiListener() {
- @Override
- public void onFinishButtonTapped(@NonNull BarcodePickView view) {
- requireActivity().onBackPressed();
- }
-});
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `barcodePickView.start()`.
-
-```java
-barcodePickView.start();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/intro.md
deleted file mode 100644
index f25e22db..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-description: "MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# About MatrixScan Pick
-
-MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code.
-
-MatrixScan Pick is implemented through functionality provided by [`BarcodePick`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-pick.html).
-
-## UI Overview
-
-* MatrixScan Pick is inspired by the familiar paradigm of a camera, including a shutter button that the user operates in order start and pause the scanning view. The Finish button is used at any time to exit the workflow.
-* It highlights items with obvious and colorful visual dots on screen.
-* When paused, MatrixScan Pick freezes the display at the last view, even if the device is moved. The Play button transitions back to the live view.
-* Textual guidance is displayed from the beginning of the session and as the workflow progresses, informing of the user of changes in item status (i.e. Detected, Ignored, To-Pick, or Picked).
-* Status icons can be defined to provide further information to users for a given barcode. In the live view, the icons are displayed but not tapable. In the frozen view, the status icons can be tapped and expanded to provide additional textual information.
-* This guide takes you through the process to install the full UI. However, you can then customize it by choosing to remove any elements on the screen except for the AR overlays. This allows you to create custom UIs suitable for your own workflows.
-
-
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../barcode-symbologies.mdx) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan/advanced.md
deleted file mode 100644
index 149d69b8..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan/advanced.md
+++ /dev/null
@@ -1,194 +0,0 @@
----
-description: "In the previous section we covered how to vizualize the scan process using the `BarcodeBatchBasicOverlay`. This section describes the steps to add custom AR overlays to your MatrixScan application. "
-
-sidebar_position: 3
-pagination_next: null
-framework: android
-keywords:
- - android
-
----
-
-# Adding AR Overlays
-
-In the previous section we covered how to vizualize the scan process using the `BarcodeBatchBasicOverlay`. This section describes the steps to add custom AR overlays to your MatrixScan application.
-
-There are two ways to add custom AR overlays to your application:
-
-* Use [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, our ready-to-use implementation for view-based AR overlays.
-* Provide your own fully custom implementation by using the function [BarcodeBatchListener.onSessionUpdated()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) to retrieve the barcode’s current screen position for each frame.
-
-:::note
-The first option is the easiest and recommended approach for most applications. It covers adding, removing, and animating the overlay’s views whenever needed. In addition, this option is flexible enough to cover the majority of use cases.
-:::
-
-## Using BarcodeBatchAdvancedOverlay
-
-The advanced overlay combined with its [listener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) offers an easy way of adding augmentations to your `DataCaptureView`.
-This example describes the steps to add a view above each barcode showing its content.
-
-First, create a new instance of `BarcodeBatchAdvancedOverlay` and add it to your `DataCaptureView`:
-
-```java
-BarcodeBatchAdvancedOverlay overlay = BarcodeBatchAdvancedOverlay.newInstance(barcodeBatch, dataCaptureView);
-```
-
-There are two ways to proceed from here:
-
-* Add a [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-* Use the `setters` in the `overlay` to specify the view, anchor, and offset for each barcode.
-
-:::note
-The second way takes priority over the first one, meaning that if a view for a barcode has been set using [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode), won’t be invoked for that specific barcode.
-:::
-
-### Using the Listener
-
-For this option, keep in mind that:
-
-* You need to conform to [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener). This interface’s methods are invoked every time a barcode is newly tracked.
-* [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning null shows no view.
-* [BarcodeBatchAdvancedOverlayListener.anchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through Anchor. Be aware that it anchors the view’s center to the anchor point. To achieve anchoring the top of the view or the bottom etc. you need to set an offset as explained in the next point.
-* [BarcodeBatchAdvancedOverlayListener.offsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [PointWithUnit](https://docs.scandit.com/data-capture-sdk/android/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```java
-@Nullable
-@Override
-public View viewForTrackedBarcode(
- @NotNull BarcodeBatchAdvancedOverlay overlay,
- @NotNull TrackedBarcode trackedBarcode
-) {
- // Create and return the view you want to show for this tracked barcode. You can also return null, to have no view for this barcode.
- TextView textView = new TextView(this);
- textView.setBackgroundColor(Color.WHITE);
- textView.setLayoutParams(
- new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT
- )
- );
- textView.setText(trackedBarcode.getBarcode().getData());
- return textView;
-}
-
-@NotNull
-@Override
-public Anchor anchorForTrackedBarcode(
- @NotNull BarcodeBatchAdvancedOverlay overlay,
- @NotNull TrackedBarcode trackedBarcode
-) {
- // As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode quadrilateral.
- // Use the function 'offsetForTrackedBarcode' below to adjust the position of the view by providing an offset.
- return Anchor.TOP_CENTER;
-}
-
-@NotNull
-@Override
-public PointWithUnit offsetForTrackedBarcode(
- @NotNull BarcodeBatchAdvancedOverlay overlay,
- @NotNull TrackedBarcode trackedBarcode,
- @NotNull View view
-) {
- // This is the offset that will be applied to the view.
- // You can use MeasureUnit.FRACTION to give a measure relative to the view itself, the sdk will take care of transforming this into pixel size.
- // We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by half of the view's height.
- return new PointWithUnit(
- new FloatWithUnit(0f, MeasureUnit.FRACTION),
- new FloatWithUnit(-1f, MeasureUnit.FRACTION)
- );
-}
-```
-
-### Using the Setters
-
-The function `BarcodeBatchListener.onSessionUpdated()` gives you access to a `session`, which contains all added, updated and removed tracked barcodes.
-
-From here you can create the view you want to display, and then call:
-
-* [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode)
-* [BarcodeBatchAdvancedOverlay.setAnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode)
-* [BarcodeBatchAdvancedOverlay.setOffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```java
-@Override
-public void onSessionUpdated(
- @NonNull BarcodeBatch mode,
- @NonNull final BarcodeBatchSession session,
- @NonNull FrameData data
-) {
- // Be careful, this function is not invoked on the main thread!
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- for (TrackedBarcode trackedBarcode : session.getAddedTrackedBarcodes()) {
- TextView textView = new TextView(this);
- textView.setBackgroundColor(Color.WHITE);
- textView.setLayoutParams(
- new ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT,
- ViewGroup.LayoutParams.WRAP_CONTENT
- )
- );
- textView.setText(trackedBarcode.getBarcode().getData());
- overlay.setViewForTrackedBarcode(trackedBarcode, textView);
- overlay.setAnchorForTrackedBarcode(
- trackedBarcode, Anchor.TOP_CENTER
- );
- overlay.setOffsetForTrackedBarcode(
- trackedBarcode,
- new PointWithUnit(
- new FloatWithUnit(0f, MeasureUnit.FRACTION),
- new FloatWithUnit(-1f, MeasureUnit.FRACTION)
- )
- );
- }
- }
- });
- }
-```
-
-## Using Custom Implementations
-
-If you do not want to use the overlay, it is also possible to add augmented reality features based on the tracking identifier and the [quadrilateral](https://docs.scandit.com/data-capture-sdk/android/core/api/common.html#struct-scandit.datacapture.core.Quadrilateral) coordinates of every tracked barcode. When doing so, keep the following in mind:
-
-* Set a `BarcodeBatchListener` on the barcode tracking
-* In the `BarcodeBatchListener.onSessionUpdated()` function, fetch the added and removed tracked barcodes
-* Create and show the views for the added barcodes
-* Remove the views for the lost barcode
-* Add a method that is called 60fps when `BarcodeBatch` is enabled. In this method, for each [TrackedBarcode](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/tracked-barcode.html#class-scandit.datacapture.barcode.batch.TrackedBarcode) on-screen, update the position based on [TrackedBarcode.location](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location). Please note that there is no need to animate the change of location, the change of position will happen frequently enough that the view will look as it is animated
-
-:::note
-The frame coordinates from `TrackedBarcode.location` need to be mapped to view coordinates, using [DataCaptureView.mapFrameQuadrilateralToView()](https://docs.scandit.com/data-capture-sdk/android/core/api/ui/data-capture-view.html#method-scandit.datacapture.core.ui.DataCaptureView.MapFrameQuadrilateralToView).
-:::
-
-```java
-@Override
- public void onSessionUpdated(
- @NonNull BarcodeBatch mode,
- @NonNull final BarcodeBatchSession session,
- @NonNull FrameData data
- ) {
- // Be careful, this function is not invoked on the main thread!
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
-
- for (int lostTrackIdentifier : session.getRemovedTrackedBarcodes()) {
- // You now know the identifier of the tracked barcode that has been lost. Usually here you would remove the views associated.
- }
-
- for (TrackedBarcode trackedBarcode : session.getAddedTrackedBarcodes()) {
-
- // Fixed identifier for the tracked barcode.
- Integer trackingIdentifier = trackedBarcode.getIdentifier();
-
- // Current location of the tracked barcode.
- Quadrilateral location = trackedBarcode.getLocation();
- Quadrilateral quadrilateral = dataCaptureView.mapFrameQuadrilateralToView(location);
-
- // You now know this new tracking's identifier and location. Usually here you would create and show the views.
- }
- }
- });
- }
-```
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan/get-started.md
deleted file mode 100644
index 5d0c1fc6..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan/get-started.md
+++ /dev/null
@@ -1,206 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan to your application. "
-
-sidebar_position: 2
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the MatrixScan mode
-- Using the built-in camera
-- Visualizing the scan process
-- Providing feedback
-- Disabling barcode tracking
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-The Scandit Data Capture SDK modules depend on a few standard libraries that you can find listed below. If you are including the Scandit Data Capture SDK through **Gradle** or **Maven**, all of these dependencies are automatically pulled in and there is no need for you to do anything further. On the other hand, if you directly add the AAR files to the project, you need to add these dependencies yourself.
-
-| Module | Dependencies |
-| ----------- | ----------- |
-| *ScanditCaptureCore.aar* | org.jetbrains.kotlin:kotlin-stdlib:[version]; androidx.annotation:annotation:[version]; com.squareup.okhttp3:okhttp:4.9.2 |
-| *ScanditBarcodeCapture.aar* | org.jetbrains.kotlin:kotlin-stdlib:[version]; androidx.annotation:annotation:[version] |
-| *ScanditParser.aar* | No dependencies |
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextAndroid from '../../../partials/get-started/_create-data-capture-context-android.mdx';
-
-
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [BarcodeBatchSettings](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) that gets informed whenever a new frame has been processed.
-
-:::note
-Typically you do not need to implement to a `BarcodeBatchListener`, instead you may add a [BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and implement to a [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-:::
-
-For this task, we setup Barcode Batch for tracking QR codes:
-
-```java
-BarcodeBatchSettings settings = new BarcodeBatchSettings();
-settings.enableSymbology(Symbology.QR, true);
-```
-
-Next, create a `BarcodeBatch` instance with the data capture context and the settings initialized in the previous steps:
-
-```java
-BarcodeBatch barcodeBatch = BarcodeBatch.forDataCaptureContext(dataCaptureContext, settings);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications uses the built-in camera of the device, for instance, the world-facing camera of a device. The remainder of this tutorial assumes that you use the built-in camera.
-
-:::note
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the *AndroidManifest.xml* file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These must be used to achieve the best performance and user experience for the respective mode.
-
-The following lines show how to get the recommended settings and create the camera from it:
-
-```java
-CameraSettings cameraSettings = BarcodeBatch.createRecommendedCameraSettings();
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-Camera camera = Camera.getDefaultCamera();
-if (camera != null) {
- camera.applySettings(cameraSettings, null);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/android/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```java
-dataCaptureContext.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.ON](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```java
-if (camera != null) {
- camera.switchToDesiredState(FrameSourceState.ON);
-}
-```
-
-## Visualize the Scan Process
-
-When using the built-in camera as frame source, you typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```java
-DataCaptureView dataCaptureView = DataCaptureView.newInstance(this, dataCaptureContext);
-setContentView(dataCaptureView);
-```
-
-To visualize the results of Barcode Batch, first you need to add the following [overlay](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay):
-
-```java
-BarcodeBatchBasicOverlay overlay = BarcodeBatchBasicOverlay.newInstance(barcodeBatch, dataCaptureView);
-```
-
-Once the overlay has been added, you must conform to the [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) interface. The method [BarcodeBatchBasicOverlayListener.brushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a brush used to highlight that specific barcode in the [overlay](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay).
-
-```java
-@Override
-public Brush brushForTrackedBarcode(@NonNull BarcodeBatchBasicOverlay overlay,
- @NonNull TrackedBarcode trackedBarcode) {
- // Return a custom Brush based on the tracked barcode.
-}
-```
-
-If you want to make the highlights tappable, you need to implement the [BarcodeBatchBasicOverlayListener.onTrackedBarcodeTapped()] method.
-
-```java
-@Override
-public void onTap(@NonNull BarcodeBatchBasicOverlay overlay,
- @NonNull TrackedBarcode trackedBarcode) {
- // A tracked barcode was tapped.
-}
-```
-
-## Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a `BarcodeBatchListener` to provide a similar experience.
-
-Here, we use the default [Feedback](https://docs.scandit.com/data-capture-sdk/android/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it with your own sound or vibration.
-
-First, we create a feedback and release it after it is no longer used, to avoid resources being unnecessarily held.
-
-```java
-override func viewDidLoad() {
- super.viewDidLoad()
- feedback = Feedback.default
-}
-```
-
-Next, use this `feedback` in a `BarcodeBatchListener`:
-
-```java
-public class FeedbackListener implements BarcodeBatchListener {
- @Override
- public void onObservationStarted(@NotNull BarcodeBatch barcodeBatch) {
- // Called when Barcode Batch is started.
- // We don't use this callback in this guide.
- }
-
- @Override
- public void onObservationStopped(@NotNull BarcodeBatch barcodeBatch) {
- // Called when Barcode Batch is stopped.
- // We don't use this callback in this guide.
- }
-
- @Override
- public void onSessionUpdated(
- @NotNull BarcodeBatch mode,
- @NotNull BarcodeBatchSession session,
- @NotNull FrameData data
- ) {
- if (!session.getAddedTrackedBarcodes().isEmpty()) {
- feedback.emit();
- }
- }
-}
-```
-
-[BarcodeBatchListener.onSessionUpdated()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The [session](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession) parameter contains information about the currently tracked barcodes, in particular, the newly recognized ones. We check if there are any and if so, we emit the feedback.
-
-As the last step, register the listener responsible for emitting the feedback with the `BarcodeBatch` instance.
-
-```java
-barcodeBatch.addListener(feedbackListener);
-```
-
-## Disable Barcode Batch
-
-To disable barcode tracking, set `BarcodeBatch.isEnabled` to `FALSE`.
-
-The effect is immediate, no more frames get processed after the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or put it in standby calling [SwitchToDesiredState](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [StandBy](https://docs.scandit.com/data-capture-sdk/android/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.Standby).
diff --git a/versioned_docs/version-8.1.1/sdks/android/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/android/matrixscan/intro.md
deleted file mode 100644
index ba207bd5..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/matrixscan/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/android/migrate-5-to-6.mdx
deleted file mode 100644
index 3400c3b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/android/migrate-6-to-7.mdx
deleted file mode 100644
index f48d0c49..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/android/migrate-7-to-8.mdx
deleted file mode 100644
index 87e83e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/android/parser/get-started.md
deleted file mode 100644
index f673cba5..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/parser/get-started.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-description: "The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: , and , , . "
-
-sidebar_position: 2
-pagination_prev: null
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/android/parser/hibc.html), [GS1 Application Identifier system](https://docs.scandit.com/data-capture-sdk/android/parser/gs1ai.html) and [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/android/parser/swissqr.html), [VIN Vehicle Identification Number](https://docs.scandit.com/data-capture-sdk/android/parser/vin.html), [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/android/parser/iata-bcbp.html).
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Format-Specific Documentation
-
-- [Supported Data Formats](https://docs.scandit.com/data-capture-sdk/android/parser/formats.html)
-- [HIBC](https://docs.scandit.com/data-capture-sdk/android/parser/hibc.html)
-- [GS1 AI](https://docs.scandit.com/data-capture-sdk/android/parser/gs1ai.html)
-- [GS1 Digital Link](https://docs.scandit.com/data-capture-sdk/android/parser/gs1-digital-link.html)
-- [Swiss QR](https://docs.scandit.com/data-capture-sdk/android/parser/swissqr.html)
-- [VIN](https://docs.scandit.com/data-capture-sdk/android/parser/vin.html)
-- [IATA BCBP](https://docs.scandit.com/data-capture-sdk/android/parser/iata-bcbp.html)
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-First of all, include the ScanditParser library and its dependencies to your project, if any.
-
-### Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/release-notes.md b/versioned_docs/version-8.1.1/sdks/android/release-notes.md
deleted file mode 100644
index 0e12835e..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/release-notes.md
+++ /dev/null
@@ -1,248 +0,0 @@
----
-description: "Release notes and updates for the Scandit Android SDK."
-toc_max_heading_level: 3
-displayed_sidebar: androidSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Id
-
-* Fixed a memory issue leading to a persistent black screen during ID Capture startup
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-* Added, in `BarcodeAr`, a `BarcodeArFilter` interface to selectively control which barcodes are displayed in the AR overlay based on custom filtering logic. You can set a filter via `BarcodeAr.SetBarcodeFilter`.
-* Added `ScanditIconType.Slash` which can be used in `BarcodeArStatusIconAnnotationAnchor`.
-* BarcodeCountView now supports cameras with different aspect ratios.
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added rejectionTimeoutSeconds to IdCaptureSettings allowing customers to use timeout other than default (6s). Minimum timeout is 1s.
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-* Our SDK can now scan the following documents both in single-side and double-side mode:
- - All Mexican DLs
- - Mexican Voter Cards
-
-#### Core
-
-* Added support for QuadHD resolution to provide improved performance and extended range for MatrixScan modes on slower devices
-* Added Electronic Product Code (EPC) parser
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-#### Smart Label Capture
-
-* Incremental improvements in accuracy across all use-cases for the OCR model powering Smart Label Capture.
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-#### Smart Label Capture
-
-* Validation Flow: Manually input values for barcodes will go through a stricter validation. Some values may no longer be accepted if they do not match the symbology specs for the symbology’s definition
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed a bug in the default color of BarcodeCapture highlights
-* Fixed an issue where popover annotations with HIGHLIGHT_TAP_AND_BARCODE_SCAN trigger could not be opened again
-* Fixed an issue in BarcodeSequence where camera would not be ON in portrait
-* Fixed an issue where SparkScan mini preview would sometimes stay in regular when entering target mode
-* Fixed the app becoming unresponsive after being in the background for extended periods
-* Fixed an issue where the successful notification in BarcodeFind was not displayed
-
-#### Id
-
-* Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses
-
-#### Core
-
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### New Features
-
-#### Barcode
-
-* Added, in `BarcodeAr`, a `BarcodeArFilter` interface to selectively control which barcodes are displayed in the AR overlay based on custom filtering logic. You can set a filter via `BarcodeAr.SetBarcodeFilter`.
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed an issue where the successful hint in BarcodeFind was not displayed
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* This release drops support for Android 6. The new `minSdk` version is now 24 (previously 23).
-
-#### Barcode
-
-* Updated the Gradle version for all sample applications to 8.14.3.
-* A new version of the SparkScan sample application implemented in Jetpack Compose is now available.
-* SparkScan is not limited to only barcodes anymore, but can also scan items - in other words any combinations of barcodes and text present on a target to be scanned. The feature is available in beta at the moment, please contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out.
-
-#### Smart Label Capture
-
-* We’re introducing an enhancement that makes Smart Label Capture more robust and scalable by complementing its on-device model with a larger, more capable model. When the on-device model can’t capture certain labels, the SDK automatically escalates to this enhancement to handle complex or unforeseen cases with high accuracy and reliability. This capability is currently available in `beta`. If you’re interested in trying it, please contact [Scandit Support](mailto:support@scandit.com). For configuration details, see `labelDefinition.adaptiveRecognitionEngine`.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-
-#### Label
-
-* The `LabelFieldDefinition` API has been updated with the following changes:
- * Renamed property: `pattern` → `valueRegex`, `patterns` → `valueRegexes`
- * Renamed property: `dataTypePattern` → `anchorRegex`, `dataTypePatterns` → `anchorRegexes`
-* Our Receipt Scanning Capture feature, available in beta (contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out), has been updated to improve performance and the API:
- * `ReceiptScanningResult`:
- * Removed properties: `storeNumber`, `storeStreet`, `storeZip`, `storeState`, `storePhone`, `paymentMethod`, and `paymentCurrency`.
- * Added property: `storeAddress` - Full address of the store (Street Number, Street, City, State, NPA).
- * Renamed property: `paymentSubtotal` → `paymentPreTaxTotal` - Total balance before taxes are applied.
- * `ReceiptScanningLineItem`:
- * Removed property: `category`.
- * Renamed properties: `price` → `unitPrice` (Price for a single unit of the item), `total` → `totalPrice` (Total price for a specific product, quantity × unitPrice).
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`.
-
-### Bug Fixes
-
-#### Core
-
-* Fixed a class duplication build error caused by embedding `snapchat-djinni` sources.
-* Fixed a flickering camera preview issue on some devices.
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-#### Barcode
-
-* The following previously deprecated APIs have been removed:
- * BarcodeCaptureOverlay Related APIs
- * BarcodeCaptureOverlayStyle enum
- * BarcodeCaptureOverlay.NewInstance(BarcodeCapture, DataCaptureView?, BarcodeCaptureOverlayStyle)factory method
- * BarcodeCaptureOverlay.DefaultBrushForStyle(BarcodeCaptureOverlayStyle) method
- * BarcodeCaptureOverlay.Style property
- * SparkScanViewHandMode enum
- * SparkScanView.torchButtonVisible property
- * SparkScanView.handModeButtonVisible property
- * SparkScanView.stopCapturingText property
- * SparkScanView.startCapturingText property
- * SparkScanView.resumeCapturingText property
- * SparkScanView.scanningCapturingText property
- * SparkScanView.captureButtonBackgroundColor property
- * SparkScanView.captureButtonActiveBackgroundColor property
- * SparkScanView.captureButtonTintColor property
- * SparkScanViewSettings.defaultHandMode property
- * SparkScan View Defaults APIs
- * SparkScanViewDefaults.DefaultHandModeButtonVisible property
- * SparkScanViewDefaults.DefaultTorchButtonVisible property
- * SparkScanViewDefaults.DefaultStopCapturingText property
- * SparkScanViewDefaults.DefaultStartCapturingText property
- * SparkScanViewDefaults.DefaultResumeCapturingText property
- * SparkScanViewDefaults.DefaultScanningCapturingText property
- * SparkScanViewDefaults.DefaultCaptureButtonActiveBackgroundColor property
- * SparkScanViewDefaults.DefaultCaptureButtonBackgroundColor property
- * SparkScanViewDefaults.DefaultCaptureButtonTintColorProperty
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/android/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/android/scanning-composite-codes.mdx
deleted file mode 100644
index d517a134..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/single-scanning.md b/versioned_docs/version-8.1.1/sdks/android/single-scanning.md
deleted file mode 100644
index 9b729bd6..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/single-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import SingleScanning from '../../partials/_single-scanning.mdx'; "
-
-toc_max_heading_level: 4
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# Single Scanning
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/android/sparkscan/advanced.md
deleted file mode 100644
index 3d1cdda5..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/sparkscan/advanced.md
+++ /dev/null
@@ -1,124 +0,0 @@
----
-description: "SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs."
-sidebar_position: 3
-pagination_next: null
-framework: android
-keywords:
- - android
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Hardware Button Control
-
-Allowing the end user to control the scanner with hardware buttons can be useful if your users typically wear gloves. It can also improve ergonomics in some workflows.
-
-SparkScan offers a built-in API to let you do this via [SparkScanViewSettings.hardwareTriggerEnabled](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled).
-
-### Trigger Error State
-
-You may want to introduce logic in your app to show an error message when scanning specific barcodes (e.g. barcodes already added to the list, barcodes from the wrong lot etc.). SparkScan offers a built-in error state you can easily set to trigger an error feedback prompt to the user.
-
-You can customize:
-
-- The text message.
-- The timeout of the error message: the scanner will be paused for the specified amount of time, but the user can quickly restart the scanning process by tapping the trigger button.
-
- :::tip
- A high timeout (>10s) typically requires the users to interact with the UI to start scanning again. This is a good choice when you want to interrupt the scanning workflow (e.g. because a wrong barcode is scanned and some actions need to be performed). A small timeout (\<2s) could allow the user to scan again without having to interact with the app, just momentarily pausing the workflow to acknowledge that a “special” barcode has been scanned.
- :::
-
-- The color of the flashing screen upon scan. You can enable or disable the visual feedback via [SparkScanViewSettings.visualFeedbackEnabled](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.VisualFeedbackEnabled) and control the color via [SparkScanBarcodeErrorFeedback](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-barcode-feedback.html#sparkscan-barcode-feedback).
-- The color of the highlight for the scanned barcode.
-- The feedback (sound, vibration).
-
-To emit an error, you have to implement a [`SparkScanFeedbackDelegate`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/spark-scan-feedback-delegate.html#interface-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate) and set it to the `SparkScanView`:
-
-```java
-sparkScanView.setFeedbackDelegate(this);
-```
-
-In the [`SparkScanFeedbackDelegate.getFeedbackForBarcode()`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/spark-scan-feedback-delegate.html#method-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate.GetFeedbackForBarcode) you can then return an error or a success feedback:
-
-```java
-@Nullable
-@Override
-public SparkScanBarcodeFeedback getFeedbackForBarcode(@NonNull Barcode barcode) {
- if (isValidBarcode(barcode)) {
- return new SparkScanBarcodeFeedback.Success();
- } else {
- return new SparkScanBarcodeFeedback.Error("This code should not have been scanned",
- TimeInterval.seconds(60f));
- }
-}
-```
-
-
-You can have different error states triggered by different logic conditions. For example you can trigger an error state when a wrong barcode is scanned, and another one when a duplicate barcode is scanned. These errors can show different colors and have different timeouts.
-
-
- This error state for a code that should not have been scanned.
-
-
-
- This error state for a code that has been scanned more than once.
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan's built-in error state. Setting the [`Error.resumeCapturingDelay`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to `0` allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode ([`SparkScanViewSettings.defaultScanningMode`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.DefaultScanningMode)). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled ([`SparkScanViewSettings.holdToScanEnabled`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HoldToScanEnabled)).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/android/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/android/sparkscan/get-started.md
deleted file mode 100644
index 9269f21f..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/sparkscan/get-started.md
+++ /dev/null
@@ -1,146 +0,0 @@
----
-description: "This page describes the step-by-step instructions that helps you to add SparkScan to your application: "
-
-sidebar_position: 2
-framework: android
-keywords:
- - android
----
-
-# Get Started
-
-This page describes the step-by-step instructions that helps you to add SparkScan to your application:
-
-- Create a new Data Capture Context instance
-- Configure the Spark Scan Mode
-- Create the SparkScanView with the desired settings and bind it to the application’s lifecycle
-- Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs
-
-:::note
-If you’re looking to integrate SparkScan into a Compose view hierarchy, there are additional steps you need to follow:
-
-Create an `AndroidView` to wrap the `SparkScanView` instance, initialized as described in the rest of this section.
-
-Monitor the view lifecycle so you can call the view lifecycle methods in `SparkScanView` when necessary. This can be done using a combination of `DisposableEffect` and the `onRelease` callback of `AndroidView`.
-:::
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### External Dependencies
-
-import ExternalDependencies from '../../../partials/get-started/_external-deps-android.mdx';
-
-
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```java
-DataCaptureContext dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through SparkScanSettings and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we set up SparkScan for scanning EAN13 codes. You can change this to the correct symbologies for your use case (for instance, Code 128, Code 39…).
-
-```java
-SparkScanSettings settings = new SparkScanSettings();
-HashSet symbologies = new HashSet<>();
-symbologies.add(Symbology.EAN13_UPCA);
-settings.enableSymbologies(symbologies);
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```java
-SparkScan sparkScan = new SparkScan(settings);
-```
-
-## Create the SparkScan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-view.html) appearance can be customized through [`SparkScanViewSettings`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/ui/spark-scan-view-settings.html).
-
-```java
-SparkScanViewSettings viewSettings = new SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-By adding a `SparkScanView`, the scanning interface (camera preview and scanning UI elements) gets added automatically to your application.
-
-Construct a new SparkScan view. The SparkScan view is automatically added to the provided parentView:
-
-```java
-SparkScanView sparkScanView = SparkScanView.newInstance(parentView, dataCaptureContext, sparkScan, viewSettings);
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-Additionally, make sure to call `sparkScanView.onPause()` and `sparkScanView.onResume()` in your Fragment/Activity `onPause` and `onResume` callbacks. You have to call these for the correct functioning of the `SparkScanView`.
-
-```java
-@Override
-protected void onPause() {
- sparkScanView.onPause();
- super.onPause();
-}
-
-@Override
-protected void onResume() {
- sparkScanView.onResume();
- super.onResume();
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [SparkScanListener](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode.
-
-```java
-// Register self as a listener to monitor the spark scan session.
-sparkScan.addListener(this);
-```
-
-[SparkScanListener.onBarcodeScanned()](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved from the first object in the provided barcodes list: [SparkScanSession.newlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode).
-
-:::note
-Note that this list only contains one barcode entry.
-:::
-
-```java
-@Override
-public void onBarcodeScanned(
- @NonNull SparkScan sparkScan, @NonNull SparkScanSession session, @Nullable FrameData data
-) {
- // Gather the recognized barcode
- Barcode barcode = session.getNewlyRecognizedBarcode().get(0);
-
- // This method is invoked from a recognition internal thread.
- // Run the specified action in the UI thread to update the internal barcode list.
- runOnUiThread(() -> {
- // Update the internal list and the UI with the barcode retrieved above
- this.latestBarcode = barcode
- });
- }
-```
-
-## Scan Some Barcodes
-
-Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can
-print out.
diff --git a/versioned_docs/version-8.1.1/sdks/android/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/android/sparkscan/intro.md
deleted file mode 100644
index 9b2c61fa..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/sparkscan/intro.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-description: "SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows, such as inventory management in retail, or goods receiving in logistics. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: android
-keywords:
- - android
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows, such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying additional scanning modes, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/android/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/android/symbology-properties.mdx
deleted file mode 100644
index 56b87782..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/android/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/android/system-requirements.mdx
deleted file mode 100644
index 1ae4f584..00000000
--- a/versioned_docs/version-8.1.1/sdks/android/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/add-sdk.md b/versioned_docs/version-8.1.1/sdks/capacitor/add-sdk.md
deleted file mode 100644
index 0ded3214..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/add-sdk.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Installation
-
-This page describes how to integrate the Scandit Data Capture SDK into your Capacitor project.
-
-## Prerequisites
-
-- Capacitor Version 5-7 [and other related tools and dependencies](https://capacitorjs.com/docs/getting-started).
-- A project with:
- - minimum iOS deployment target of 15.0 or higher
- - an Android project with target SDK version 24 (Android 7, Nougat) or higher
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-
-:::tip
-Android devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-### Internal Dependencies
-
-import InternalDependencies from '../../partials/get-started/_internal-deps-no-label-capture.mdx';
-
-
-
-## Get a License Key
-
-1. [Sign up](https://ssl.scandit.com/dashboard/sign-up?p=test) or [Sign in](https://ssl.scandit.com/dashboard/sign-in) to your Scandit account
-2. Create a project
-3. Create a license key
-
-If you have a paid subscription, please reach out to [Scandit Support](mailto:support@scandit.com) if you need a new license key.
-
-## Add the SDK
-
-Currently we support adding the Scandit Data Capture SDK Capacitor plugins to your project in two ways. The simplest way is to use the npm registry, alternatively you can manually download the plugins and add them to your project.
-
-:::note
-You should always make sure to add the scandit-capacitor-datacapture-core plugin, as all other plugins depend on it.
-:::
-
-### Create a new project
-
-If you do not have a Capacitor project yet that you’ll use, you should create a new one.
-
-```sh
-npx cap init
-npx cap add ios
-npx cap add android
-```
-
-### Add the SDK from npm
-
-To add Scandit plugins via npm, run the corresponding commands from your project’s root folder.
-
-In the following snippet we’re adding multiple plugins for different functionalities, but you can add only the ones you need as described in the [Internal Dependencies](#internal-dependencies) section.
-
-```sh
-yarn add scandit-capacitor-datacapture-core
-yarn add scandit-capacitor-datacapture-barcode
-yarn add scandit-capacitor-datacapture-parser
-yarn add scandit-capacitor-datacapture-id
-```
-
-:::note
-You can also specify a version `@`.
-:::
-
-### Add the SDK manually
-
-After you download the [archive](https://ssl.scandit.com/dashboard/downloads) containing all the plugins, unzip the archive. It includes the available Capacitor plugins, including the `scandit-capacitor-datacapture-core` plugin that all other plugins depend on.
-
-First add the `scandit-capacitor-datacapture-core` plugin:
-
-```sh
-yarn add
-```
-
-Once this is done, you can continue with adding the plugin(s) for your desired functionality:
-
-```sh
-yarn add
-yarn add
-yarn add
-```
-
-### Update the project
-
-After adding the plugins, you’ll want to make sure they’re added to your project properly:
-
-```sh
-# iOS
-npx cap sync
-
-# Android
-npx cap update android
-npx cap sync
-```
-
-## Additional Information
-
-### Android Configuration
-
-On Android, the Scandit SDK uses content providers to initialize the scanning capabilities properly. If your own content providers depend on the Scandit SDK, choose an **initOrder** lower than 10 to make sure the SDK is ready first.
-
-If not specified, **initOrder** is zero by default and you have nothing to worry about.
-
-Check [the official `` documentation](https://developer.android.com/guide/topics/manifest/provider-element).
-
-### Camera Permissions
-
-When using the Scandit Data Capture SDK you will want to set the camera as the frame source for various capture modes. The camera permissions are handled by the plugins, so you don’t need to specify anything explicitly.
-
-import OSSLicense from '../../partials/_third-party-licenses-js.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/capacitor/ai-powered-barcode-scanning.md
deleted file mode 100644
index f8afa154..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: capacitor
-keywords:
- - capacitor
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/capacitor/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index ce70efa0..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,113 +0,0 @@
----
-description: "Learn about the available symbologies and the corresponding configurations and extensions available."
-
-sidebar_position: 3
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following lines of code show you how to enable scanning Code 128 codes for barcode capture:
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-settings.enableSymbology(Scandit.Symbology.Code128, true);
-```
-
-import CapturePresents from '../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below lines of code show how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code128
-);
-symbologySettings.activeSymbolCounts = [6, 7, 8];
-
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- ScanditBarcode.Symbology.Code128
-);
-symbologySettings.activeSymbolCounts = [6, 7, 8];
-```
-
-import CalculateSymbolCount from '../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you enable a symbology as described above, only dark-on-bright codes are enabled (see [SymbologySettings.isEnabled](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsEnabled 'SymbologySettings.isEnabled property')). When you also want to read bright-on-dark codes, color-inverted reading for that symbology must also be enabled (see [SymbologySettings.isColorInvertedEnabled](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsColorInvertedEnabled)):
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code128
-);
-symbologySettings.isColorInvertedEnabled = true;
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that will always be enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum). Enforcing an optional checksum will reduce false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes will be discarded as they checksum doesn’t match. All available checksums per symbology can be found in the documentation on [symbology properties](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/symbology-properties.html).
-
-You can enforce a specific checksum by setting it through
-[SymbologySettings.checksums](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code39
-);
-symbologySettings.checksums = [Scandit.Checksum.Mod43];
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [SymbologySettings.setExtensionEnabled()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code39
-);
-symbologySettings.setExtensionEnabled('full_ascii', true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/barcode-capture/get-started.md
deleted file mode 100644
index 0036945d..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-capture/get-started.md
+++ /dev/null
@@ -1,159 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Capture to your application. "
-
-sidebar_position: 2
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application.
-
-The general steps are:
-
-- Include the ScanditBarcodeCapture library and its dependencies to your project, if any.
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode capture settings](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and enable the [barcode symbologies](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology) you want to read in your application.
-- Create a new [barcode capture mode](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance and initialize it with the settings created above.
-- Register a [barcode capture listener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = Scandit.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Scanning Behavior
-
-Barcode scanning is orchestrated by the [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) [data capture mode](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-settings.enableSymbologies([
- Scandit.Symbology.Code128,
- Scandit.Symbology.Code39,
- Scandit.Symbology.QR,
- Scandit.Symbology.EAN8,
- Scandit.Symbology.UPCE,
- Scandit.Symbology.EAN13UPCA,
-]);
-```
-
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.codeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around 500 or even \-1 if you do not want codes to be scanned more than once.
-
-Next, create a [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance with the settings initialized in the previous step:
-
-```js
-const barcodeCapture = new Scandit.BarcodeCapture(settings);
-context.addMode(barcodeCapture);
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [BarcodeCapture.addListener()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface. For example:
-
-```js
-const listener = {
- didScan: (barcodeCapture, session) => {
- const recognizedBarcodes = session.newlyRecognizedBarcode;
- // Do something with the barcodes
- },
-};
-```
-
-Then add the listener:
-
-```js
-barcodeCapture.addListener(listener);
-```
-
-### Rejecting Barcodes
-
-To prevent scanning unwanted codes, you can reject them by adding the desired logic to the `onBarcodeScanned` method. This will prevent the barcode from being added to the session and will not trigger the `onSessionUpdated` method.
-
-The example below will only scan barcodes beginning with the digits `09` and ignore all others, using a transparent brush to distinguish a rejected barcode from a recognized one:
-
-```js
-...
-if (!barcode.data || !barcode.data.startsWith('09:')) {
- window.overlay.brush = Scandit.Brush.transparent;
- return;
-}
-...
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-const cameraSettings = Scandit.BarcodeCapture.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Scandit.Camera.default;
-
-if (camera) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-const view = Scandit.DataCaptureView.forContext(context);
-view.connectToElement(htmlElement);
-```
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```js
-const overlay = Scandit.BarcodeCaptureOverlay.withBarcodeCaptureForView(
- barcodeCapture,
- view
-);
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [BarcodeCapture.isEnabled](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to _false_.
-
-The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/capacitor/barcode-generator.md
deleted file mode 100644
index 804cb5b4..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-generator.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-description: "The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes. "
-
-displayed_sidebar: capacitorSidebar
-sidebar_label: Get Started
-pagination_prev: null
-pagination_next: null
----
-
-# Barcode Generator
-
-The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes.
-
-The Barcode Generator supports the following formats:
-
-* Code 39
-* Code 128
-* EAN 13
-* UPCA
-* ITF
-* QR
-* DataMatrix
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/capacitor/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Generating Barcodes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`BarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.BarcodeGeneratorBuilder), and use the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) for the symbology you are interested in, in this example Code 128.
-
-You can configure the colors used in the resulting image:
-
-```javascript
-const DataCaptureContext = Scandit.DataCaptureContext.forLicenseKey(licenseKey);
-const builder = new Scandit.BarcodeGenerator.Code128BarcodeGeneratorBuilder(dataCaptureContext)
- .withBackgroundColor(Color.WHITE)
- .withForegroundColor(Color.BLACK);
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```javascript
-try {
- const generator = await builder.build();
- const image = await generator.generate(dataString, 200);
- // Use the image
-} catch (error) {
- // Handle the error
- console.error(error);
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-generator.html) for more information.
-
-## Generating QR Codes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`QRCodeBarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder) using the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) specific for QR codes.
-
-You can configure the colors used in the resulting image, and the two settings that can be configured for QR codes: [`QRCodeBarcodeGeneratorBuilder.errorCorrectionLevel`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithErrorCorrectionLevel) and [`QRCodeBarcodeGeneratorBuilder.versionNumber`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithVersionNumber).
-
-```javascript
-const DataCaptureContext = Scandit.DataCaptureContext.forLicenseKey(licenseKey);
-const builder = new Scandit.BarcodeGenerator.QrCodeBarcodeGeneratorBuilder(dataCaptureContext)
- .withBackgroundColor(Color.WHITE)
- .withForegroundColor(Color.BLACK)
- .withErrorCorrectionLevel(Scandit.QrCodeErrorCorrectionLevel.MEDIUM)
- .withVersionNumber(4);
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```javascript
-try {
- const generator = await builder.build();
- const image = await generator.generate(dataString, 200);
- // Use the image
-} catch (error) {
- // Handle the error
- console.error(error);
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-generator.html) for more information.
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/barcode-selection/get-started.md
deleted file mode 100644
index e9a9fff4..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-selection/get-started.md
+++ /dev/null
@@ -1,153 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Selection to your application. "
-
-sidebar_position: 2
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/capacitor/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-In this guide you will learn step-by-step how to add Barcode Selection to your application.
-
-The general steps are:
-
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode selection settings](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and choose the right configuration.
-- Create a new [barcode selection mode](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection 'barcode selection mode class') instance and initialize it with the settings created above.
-- Register a [barcode selection listener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-selection-basic-overlay.html#class-scandit.datacapture.barcode.selection.ui.BarcodeSelectionBasicOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext 'data capture context class'). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = Scandit.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Selection Behavior
-
-_Symbologies_
-
-Barcode selection is orchestrated by the [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) [data capture mode](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). It is configured through [BarcodeSelectionSettings](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) that will get informed whenever new codes have been selected.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```js
-const settings = new Scandit.BarcodeSelectionSettings();
-settings.enableSymbologies([
- Symbology.Code128,
- Symbology.EAN8,
- Symbology.UPCE,
- Symbology.EAN13UPCA,
-]);
-```
-
-_Selection Types_
-
-The behavior of Barcode Selection can be changed by using a different [selection type](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-type.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionType). This defines the method used by [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) to select codes. Currently there are two types.
-
-If you want the user to select barcodes with a tap, then use [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection). This selection type can automatically freeze the camera preview to make the selection easier. You can configure the freezing behavior via [BarcodeSelectionTapSelection.freezeBehavior](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.FreezeBehavior). With [BarcodeSelectionTapSelection.tapBehavior](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.TapBehavior) you can decide if a second tap on a barcode means that the barcode is unselected or if it is selected another time (increasing the counter).
-
-:::note
-Using [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection) requires the MatrixScan add-on.
-:::
-
-If you want the selection to happen automatically based on where the user points the camera, then use [BarcodeSelectionAimerSelection](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-aimer-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAimerSelection). It is possible to choose between two different [selection strategies](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-strategy.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionStrategy). Use [BarcodeSelectionAutoSelectionStrategy](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAutoSelectionStrategy) if you want the barcodes to be selected automatically when aiming at them as soon as the intention is understood by our internal algorithms. Use [BarcodeSelectionManualSelectionStrategy](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionManualSelectionStrategy) if you want the barcodes to be selected when aiming at them and tapping anywhere on the screen.
-
-_Single Barcode Auto Detection_
-
-If you want to automatically select a barcode when it is the only one on screen, turn on [BarcodeSelectionSettings.singleBarcodeAutoDetection](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-settings.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionSettings.SingleBarcodeAutoDetection).
-
-_Creating the mode_
-
-Next, create a [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance with the settings initialized in the previous step:
-
-```js
-const barcodeSelection = new Scandit.BarcodeSelection(settings);
-context.addMode(barcodeSelection);
-```
-
-## Register the Barcode Selection Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) through [BarcodeSelection.addListener()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection.html#method-scandit.datacapture.barcode.selection.BarcodeSelection.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) interface. For example:
-
-```js
-const listener = {
- didUpdateSelection: (barcodeSelection, session) => {
- const newlySelectedBarcodes = session.newlySelectedBarcodes;
- // Do something with the barcodes
- },
-};
-```
-
-Then add the listener:
-
-```js
-barcodeSelection.addListener(listener);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-const cameraSettings = Scandit.BarcodeSelection.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Scandit.Camera.default;
-
-if (camera) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(FrameSourceState.On);
-```
-
-
-
-## Disabling Barcode Selection
-
-To disable barcode selection, for instance when the selection is complete, set [BarcodeSelection.isEnabled](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelection.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/barcode-selection/intro.md
deleted file mode 100644
index a25a5dde..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-selection/intro.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-description: "Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# About Barcode Selection
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/capacitor/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes.
-
-Barcode Selection provides two key capabilities:
-
-- **Aim to Select** allows users to select one code at a time. This is especially useful for one-handed operation.
-- **Tap to Select** is a quick way for users to select several codes from the same view. Selection is done by tapping on highlighted barcodes in the live camera preview or on a frozen screen.
-
-:::warning
-Barcode Selection does not support handling of duplicate codes. If a code appears twice in the visible preview both instances will be marked as selected even if only one of them was selected.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/barcode-symbologies.mdx
deleted file mode 100644
index 75d3810a..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/capacitor/batch-scanning.md
deleted file mode 100644
index 1414a693..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/batch-scanning.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "Batch scanning enables you to capture and interact with multiple barcodes simultaneously, making it ideal for inventory management, retail, and logistics applications."
-toc_max_heading_level: 4
-
-
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Batch Scanning
-
-import BatchScanning from '../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/core-concepts.mdx
deleted file mode 100644
index 81c9f5d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/extension-codes.mdx
deleted file mode 100644
index 2ab9349a..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/features-by-framework.mdx
deleted file mode 100644
index 5f33c395..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/getting-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/getting-started.md
deleted file mode 100644
index 525a07ca..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/getting-started.md
+++ /dev/null
@@ -1,178 +0,0 @@
----
-description: "This quick start guide will help you get up and running with SparkScan, the easiest way to get started with Scandit barcode scanning. "
-
-toc_max_heading_level: 2
-pagination_next: null
-displayed_sidebar: capacitorSidebar
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Quick Start Guide
-
-This quick start guide will help you get up and running with SparkScan, the easiest way to get started with Scandit barcode scanning.
-
-SparkScan provides top performance and optimized scanning UX with just a few lines of code, incorporating the best practices developed by Scandit across years of experience and billions of scans. The intentionally minimalistic UI floats on top of any smartphone application, without the need to adapt the existing app.
-
-The fastest way to get started is by running our sample application, so we'll cover that first. After that, we'll show you how to integrate SparkScan into your own application.
-
-## Prerequisites
-
-Before you start, make sure you have the following:
-
-- Capacitor Version 5-7 [and other related tools and dependencies](https://capacitorjs.com/docs/getting-started).
-- A project with minimum iOS deployment target of 15.0 or higher. Or an Android project with target SDK version 24 (Android 7, Nougat) or higher.
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-
-## Sample Application
-
-In this section, we'll show you how to try SparkScan in minutes by running our sample application.
-
-### Running the Sample Application
-
-1. First we need a copy of the sample application. It is available on GitHub and also bundled with the SDK archive you can download from your Scandit account dashboard. Here we'll use the GitHub repository.
-
-```bash
-git clone https://github.com/Scandit/datacapture-capacitor-samples.git
-```
-
-2. The repository contains many sample applications you can try. For this example, we'll use the **ListBuildingSample**. Navigate to the sample directory from the terminal or your preferred IDE:
-
-```bash
-cd datacapture-capacitor-samples/ListBuildingSample
-```
-
-3. From the `/www/js` directory, open the `app.js` file and enter your Scandit License Key:
-
-```js
-...
-const context = DataCaptureContext.forLicenseKey('-- ENTER YOUR SCANDIT LICENSE KEY HERE --');
-...
-```
-
-4. Install the dependencies:
-
-```bash
-npm install
-```
-
-5. Start the development server:
-
-```bash
-npm run dev
-```
-
-6. Open your browser and navigate to `http://localhost:8888`. You should see the sample application running.
-
-## Integrating SparkScan into Your Application
-
-This section will guide you through the general steps for integrating SparkScan into your own application. There may be additional steps depending on your specific use case, and you can always reach out to [Scandit Support](mailto:support@scandit.com) with any issues.
-
-### 1. Installation
-
-First you need to install the required packages. You can this via npm:
-
-```bash
-# Core library
-npm install scandit-capacitor-datacapture-core
-
-# Barcode scanning functionality
-npm install scandit-capacitor-datacapture-barcode
-```
-
-### 2. Create the Context
-
-The first step is to create a context for the Data Capture tasks. This is done by creating an instance of the `DataCaptureContext` class:
-
-```js
-const context = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-### 3. Configure SparkScan Settings
-
-Next, you need to configure your desired settings for SparkScan, such as the symbologies you want to scan. This is done by creating an instance of the `SparkScanSettings` class:
-
-```js
-const settings = new SparkScanSettings();
-settings.enabledSymbologies = [Symbology.EAN13, Symbology.Code128];
-settings.codeDuplicateFilter = 0;
-settings.ScanIntention = ScanIntention.Smart;
-await sparkScan.applySettings(settings);
-```
-
-In this example, we're:
-
-- Enabling both EAN-13 and Code 128 symbologies
-- Setting the code duplicate filter to 0, meaning the same code can be reported multiple times
-- Using the Smart [scan intention](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/scan-intention.html#enum-scandit.datacapture.core.ScanIntention) algorithm, to reduce the likelihood of unintended scans
-
-Lastly, we apply the settings to the SparkScan instance.
-
-### 4. Setup the SparkScanView
-
-Now we'll create and configure the scanner view and it's settings. This is done via the `SparkScanView` and `SparkScanViewSettings` classes:
-
-```js
-const viewSettings = new SparkScanViewSettings();
-viewSettings.defaultScanningMode = SparkScanScanningModeTarget;
-viewSettings.soundEnabled = true;
-viewSettings.hapticEnabled = false;
-```
-
-In this example, we're:
-
-- Setting the default scanning mode to `SparkScanScanningModeTarget` for precision scanning
-- Enabling sound feedback
-- Disabling haptic feedback
-
-Next, we create the `SparkScanView` instance, adding the scanning interface to the application:
-
-```js
-const sparkScanComponent = (
-
-);
-```
-
-In your application's state handling logic, you must also call the `stopScanning` method when the scanner is no longer needed:
-
-```js
-componentWillUnmount() {
-sparkScanComponent.stopScanning();
-}
-
-handleAppStateChange = async (nextAppState) => {
-if (nextAppState.match(/inactive|background/)) {
-sparkScanComponent.stopScanning();
-}
-};
-```
-
-### 5. Implement the Listener
-
-Lastly, you need to implement the listener to handle the scanned data. This is done by creating an instance of the [`SparkScanListener`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) class:
-
-```js
-const listener = {
- didScan: (sparkScan, session, getFrameData) => {
- // Gather the recognized barcode
- const barcode = session.newlyRecognizedBarcode[0];
-
- // Handle the barcode
- },
-};
-
-sparkScan.addListener(listener);
-```
-
-Here, `didScan()` is called when a barcode is recognized. You can access the recognized barcode data from the `SparkScanSession` object.
-
-### 6. Next Steps
-
-This guide provides a basic overview of how to integrate SparkScan into your application. For more detailed information, check out the [SparkScan documentation](/sdks/capacitor/sparkscan/intro.md) and [SparkScan API Reference](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/spark-scan.html).
-
-If you have any questions or need help, feel free to reach out to [Scandit Support](mailto:support@scandit.com).
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/advanced.md
deleted file mode 100644
index bd94bb9e..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/advanced.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-description: "There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features. "
-
-sidebar_position: 4
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/capacitor/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-```js
-// Default value:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_ONLY);
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_AND_IMAGES);
-
-// Only images are anonymized:
-settings.setAnyonymizationMode(IdAnonymizationMode.IMAGES_ONLY);
-
-// No anonymization:
-settings.setAnyonymizationMode(IdAnonymizationMode.NONE);
-```
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object.
-
-:::tip
-Face and Cropped Document can be extracted only by either `SingleSideScanner` with `visualInspectionZone` enabled or by `FullDocumentScanner`.
-In the case of `FullDocumentScanner`, if the front & the back side of a document are scanned, Cropped Document and Full Frame are returned for both sides.
-:::
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-```js
-// Holder's picture as printed on a document:
-settings.setShouldPassImageTypeToResult(ImageType.FACE);
-
-// Cropped image of a document:
-settings.setShouldPassImageTypeToResult(ImageType.CROPPED_DOCUMENT);
-
-// Full camera frame that contains the document:
-settings.setShouldPassImageTypeToResult(ImageType.FULL_FRAME);
-```
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `CapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `CapturedId` object for a US Driver License will contain different fields than a `CapturedId` object for a Passport.
-
-For a rejected document, a [RejectionReason](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed automatically using the following settings:
-
-* [IdCaptureSettings.rejectForgedAamvaBarcodes](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectForgedAamvaBarcodes): Automatically rejects documents whose AAMVA barcode fails authenticity validation.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/get-started.md
deleted file mode 100644
index 46049c67..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/get-started.md
+++ /dev/null
@@ -1,199 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add ID Capture to your application. "
-
-sidebar_position: 2
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add ID Capture to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Accessing a Camera
-- Configuring the Capture Settings
-- Implementing a Listener to Receive Scan Results
-- Setting up the Capture View and Overlay
-- Starting the Capture Process
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](/sdks/capacitor/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-Please note that your license may support only a subset of ID Capture features. If you would like to use additional features please contact us at [Scandit Support](mailto:support@scandit.com).
-
-### Module Overview
-
-import IdModuleOverview from '../../../partials/get-started/_id-module-overview-no-eu-dl.mdx';
-
-
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = Scandit.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Add the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```js
-const camera = Scandit.Camera.default;
-context.setFrameSource(camera);
-
-const cameraSettings = Scandit.IdCapture.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-if (camera != null) {
- camera.applySettings(cameraSettings);
-}
-```
-
-## Create ID Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type to use and the documents that should be accepted and/or rejected.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) for all available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-```ts
-const settings = new Scandit.IdCaptureSettings();
-
-// Documents from any region:
-settings.acceptedDocuments.push(new Scandit.IdCard(Scandit.Region.AnyRegion));
-// Only documents issued by a specific country:
-settings.acceptedDocuments.push(new Scandit.IdCard(Scandit.Region.Germany));
-// Regional documents:
-settings.acceptedDocuments.push(new Scandit.RegionSpecific.ApecBusinessTravelCard());
-// Reject passports from certain regions:
-settings.rejectedDocuments.push(new Scandit.Passport(Scandit.Region.Cuba));
-
-// To scan only one-sided documents and a given zone:
-settings.scannerType = new Scandit.SingleSideScanner({ barcode: true });
-// or
-settings.scannerType = new Scandit.SingleSideScanner({ machineReadableZone: true });
-// or
-settings.scannerType = new Scandit.SingleSideScanner({ visualInspectionZone: true });
-
-// To scan both sides of the document:
-settings.scannerType = new Scandit.FullDocumentScanner();
-```
-
-Create a new ID Capture mode with the chosen settings:
-
-```ts
-const idCapture = new Scandit.IdCapture(settings);
-context.addMode(idCapture);
-```
-
-## Implement the Listener
-
-To receive scan results, implement [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener). The listener provides two callbacks: `onIdCaptured` and `onIdRejected`.
-
-```ts
-idCapture.addListener({
- onIdCaptured: (data) => {
- // Success! Handle extracted data here.
- },
- onIdRejected: (data, reason) => {
- // Something went wrong. Inspect the reason to determine the follow-up action.
- }
-});
-```
-
-### Handling Success
-
-Capture results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-For more specific information, use its non-null result properties (e.g. [CapturedId.barcode](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/captured-id.html#property-scandit.datacapture.id.CapturedId.Barcode)).
-
-On a successful scan you may read the extracted data from `CapturedId`:
-
-```ts
-onIdCaptured: (data) => {
- const fullName = data.fullName;
- const dateOfBirth = data.dateOfBirth;
- const dateOfExpiry = data.dateOfExpiry;
- const documentNumber = data.documentNumber;
-
- // Process data:
- processData(fullName, dateOfBirth, dateOfExpiry, documentNumber);
-}
-```
-
-:::tip
-All data fields are optional, so it's important to verify whether the required information is present if some of the accepted documents may not contain certain data.
-:::
-
-### Handling Rejection
-
-The ID scanning process may fail for various reasons. Start from inspecting [RejectionReason](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) to understand the cause.
-
-You may wish to implement the follow-up action based on the reason of failure:
-
-```ts
-onIdRejected: (data, reason) => {
- if (reason === Scandit.RejectionReason.Timeout) {
- // Ask the user to retry, or offer alternative input method.
- } else if (reason === Scandit.RejectionReason.DocumentExpired) {
- // Ask the user to provide alternative document.
- } else if (reason === Scandit.RejectionReason.HolderUnderage) {
- // Reject the process.
- }
-}
-```
-
-## Set up Capture View and Overlay
-
-When using the built-in camera as [frameSource](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#interface-scandit.datacapture.core.IFrameSource), you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-const view = Scandit.DataCaptureView.forContext(context);
-view.connectToElement(htmlElement);
-```
-
-Then create an instance of [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) attached to the view:
-
-```js
-let overlay = Scandit.IdCaptureOverlay.withTextCaptureForView(
- idCapture,
- dataCaptureView
-);
-```
-
-The overlay chooses the displayed UI automatically, based on the selected [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings).
-
-If you prefer to show a different UI or to temporarily hide it, set the appropriate [IdCaptureOverlay.idLayout](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/ui/id-capture-overlay.html#property-scandit.datacapture.id.ui.IdCaptureOverlay.IdLayout).
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-```js
-camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-And this is it. You can now scan documents.
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/intro.md
deleted file mode 100644
index e00c8e93..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx'; "
-
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-toc_max_heading_level: 4
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/supported-documents.md
deleted file mode 100644
index 433237f4..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/id-capture/supported-documents.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "Scandit ID Capture provides various types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type. "
-
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: capacitor
-keywords:
- - capacitor
----
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/advanced.md
deleted file mode 100644
index fc3639d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/advanced.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-description: "Guide to customizing overlays in the Scandit Web Label Capture SDK."
-sidebar_position: 3
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Advanced Configurations
-
-## Customize the Overlay Appearance
-
-To customize the appearance of the overlay, you can implement a [LabelCaptureBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/capacitor/label-capture/api/ui/label-capture-basic-overlay-listener.html#interface-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener).
-
-The method [brushForLabel()](https://docs.scandit.com/data-capture-sdk/capacitor/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForLabel) is called every time a label captured and [brushForFieldOfLabel()](https://docs.scandit.com/data-capture-sdk/capacitor/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForField) is called for each of its fields to determine the brush for the label or field.
-
-```js
-// Create the overlay for the label capture mode.
-const overlay = new LabelCaptureBasicOverlay(labelCapture);
-
-// Set the listener to customize the appearance of captured labels and fields.
-overlay.listener = {
- /**
- * Called for each field of a captured label to determine its brush.
- * Return a Brush to customize the field's appearance, or null to use the default.
- */
- brushForFieldOfLabel: (overlay, field, label) => {
- // Create colors with transparency (alpha 0.5 = 50% opacity).
- const cyanColor = Color.fromRGBA(0, 255, 255, 0.5);
- const orangeColor = Color.fromRGBA(255, 165, 0, 0.5);
-
- switch (field.name) {
- case "":
- // Highlight barcode fields with a cyan color.
- return new Brush(cyanColor, cyanColor, 0);
- case "":
- // Highlight expiry date fields with an orange color.
- return new Brush(orangeColor, orangeColor, 0);
- default:
- // Use a transparent brush for other fields.
- return Brush.transparent;
- }
- },
- /**
- * Called for each captured label to determine its brush.
- * Return a Brush to customize the label's appearance, or null to use the default.
- */
- brushForLabel: (overlay, label) => {
- // Use a transparent brush for the label itself.
- return Brush.transparent;
- },
- /**
- * Called when the user taps on a label.
- */
- didTapLabel: (overlay, label) => {
- // Handle user tap gestures on the label.
- }
-};
-
-// Add the overlay to the data capture view.
-dataCaptureView.addOverlay(overlay);
-```
-
-:::tip
-Use brush colors with transparency (alpha < 100%) to not occlude the captured barcodes or texts.
-:::
-
-## Validation Flow
-
-Validation Flow is a workflow available in Smart Label Capture to improve the accuracy and completeness of scanned label data in real-world environments. See the [LabelCaptureValidationFlowOverlay](https://docs.scandit.com/data-capture-sdk/capacitor/label-capture/api/ui/label-capture-validation-flow-overlay.html) and [LabelCaptureValidationFlowSettings](https://docs.scandit.com/data-capture-sdk/capacitor/label-capture/api/ui/label-capture-validation-flow-settings.html) API references for implementation details.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/get-started.md
deleted file mode 100644
index 70422a71..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/get-started.md
+++ /dev/null
@@ -1,271 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Smart Label Capture to your application."
-sidebar_position: 2
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Smart Label Capture to your application.
-
-The general steps are:
-
-- Create a component to handle the capture process
-- Initialize the Data Capture Context
-- Initialize the Label Capture Mode
-- Implement a listener to handle captured labels
-- Visualize the scan process
-- Start the camera
-- Provide feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/cordova/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import LabelCaptureModuleOverview from '../../../partials/get-started/_smart-label-capture-module-overview-web.mdx';
-
-
-
-## Initialize the Data Capture Context
-
-import DataCaptureContextWeb from '../../../partials/get-started/_create-data-capture-context-web.mdx';
-
-
-
-## Initialize the Label Capture Mode
-
-The main entry point for the Label Capture Mode is the [LabelCapture](https://docs.scandit.com/data-capture-sdk/cordova/label-capture/api/label-capture.html#class-scandit.datacapture.label.LabelCapture) object.
-
-It is configured through [LabelCaptureSettings](https://docs.scandit.com/data-capture-sdk/cordova/label-capture/api/label-capture-settings.html#class-scandit.datacapture.label.LabelCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/cordova/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) that get informed whenever a new frame has been processed.
-
-```js
-import { Symbology } from "scandit-cordova-datacapture-barcode";
-import {
- CustomBarcode,
- ExpiryDateText,
- ImeiOneBarcode,
- ImeiTwoBarcode,
- LabelCapture,
- LabelCaptureSettings,
- LabelDateComponentFormat,
- LabelDateFormat,
- LabelDefinition,
- SerialNumberBarcode,
- TotalPriceText,
- UnitPriceText,
- WeightText,
-} from "scandit-cordova-datacapture-label";
-
-// Create a label definition for an ISOF (In-Store Order Fulfillment) label.
-// This label type typically includes a barcode, price fields, expiry date, and weight.
-const isofLabel = new LabelDefinition("ISOF Label");
-
-// Add a barcode field that expects an EAN-13 or UPC-A barcode.
-const barcodeField = CustomBarcode.initWithNameAndSymbology("Barcode", Symbology.EAN13UPCA);
-barcodeField.optional = false;
-isofLabel.addField(barcodeField);
-
-// Add a total price text field.
-const totalPriceField = new TotalPriceText("Total Price");
-totalPriceField.optional = false;
-isofLabel.addField(totalPriceField);
-
-// Add a unit price text field.
-const unitPriceField = new UnitPriceText("Unit Price");
-unitPriceField.optional = false;
-isofLabel.addField(unitPriceField);
-
-// Add an expiry date text field with a specific date format (Month-Day-Year).
-const expiryDateField = new ExpiryDateText("Expiry Date");
-expiryDateField.optional = false;
-expiryDateField.labelDateFormat = new LabelDateFormat(LabelDateComponentFormat.MDY, false);
-isofLabel.addField(expiryDateField);
-
-// Add a weight text field.
-const weightField = new WeightText("Weight");
-weightField.optional = false;
-isofLabel.addField(weightField);
-
-// Create a label definition for a smart device label.
-// This label type is commonly found on electronic devices and includes IMEI numbers and serial numbers.
-const smartDeviceLabel = new LabelDefinition("Smart Device Label");
-
-// Add an IMEI barcode field (first IMEI number).
-const imeiField = ImeiOneBarcode.initWithNameAndSymbology("IMEI", Symbology.Code128);
-imeiField.optional = false;
-smartDeviceLabel.addField(imeiField);
-
-// Add a second IMEI barcode field (for dual-SIM devices).
-const imei2Field = ImeiTwoBarcode.initWithNameAndSymbology("IMEI2", Symbology.Code128);
-imei2Field.optional = false;
-smartDeviceLabel.addField(imei2Field);
-
-// Add a serial number barcode field.
-const serialNumberField = SerialNumberBarcode.initWithNameAndSymbology("Serial Number", Symbology.Code128);
-serialNumberField.optional = false;
-smartDeviceLabel.addField(serialNumberField);
-
-// Add a custom barcode field for EID (Electronic ID).
-const eidField = CustomBarcode.initWithNameAndSymbology("EID", Symbology.Code128);
-eidField.optional = false;
-smartDeviceLabel.addField(eidField);
-
-// Create the label capture settings from the label definitions.
-const settings = LabelCaptureSettings.settingsFromLabelDefinitions(
- [isofLabel, smartDeviceLabel],
- null // Optional properties
-);
-
-// Create the label capture mode with the settings.
-const labelCapture = new LabelCapture(settings);
-
-// Add the mode to the data capture context created earlier.
-dataCaptureContext.addMode(labelCapture);
-```
-
-## Implement a Listener to Handle Captured Labels
-
-To get informed whenever a new label has been recognized, add a [LabelCaptureListener](https://docs.scandit.com/data-capture-sdk/cordova/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) through [LabelCapture.addListener()](https://docs.scandit.com/data-capture-sdk/cordova/label-capture/api/label-capture.html#method-scandit.datacapture.label.LabelCapture.AddListener) and implement the listener methods to suit your application's needs.
-
-First conform to the `LabelCaptureListener` interface. Here is an example of how to implement a listener that processes the captured labels based on the label capture settings defined above.
-
-```js
-import { Feedback } from "scandit-cordova-datacapture-core";
-import { LabelCaptureListener } from "scandit-cordova-datacapture-label";
-
-// Create a listener to handle captured labels.
-const labelCaptureListener = {
- // Called for every processed frame. Check session.capturedLabels for results.
- didUpdateSession: (labelCapture, session) => {
- // Early return if no label has been captured in this frame.
- if (session.capturedLabels.length === 0) {
- return;
- }
-
- // Process each captured label.
- session.capturedLabels.forEach((capturedLabel) => {
- const fields = capturedLabel.fields;
-
- // Access the barcode field by its name (as defined in the label definition).
- // The barcode property contains the scanned barcode data.
- const barcodeField = fields.find((field) => field.name === "Barcode");
- const barcodeData = barcodeField?.barcode?.data;
-
- // Access the expiry date field. Use the text property for OCR-captured text,
- // or the asDate() method to get a parsed LabelDateResult.
- const expiryDateField = fields.find((field) => field.name === "Expiry Date");
- const expiryDateText = expiryDateField?.text;
- const expiryDateResult = expiryDateField?.asDate();
-
- // Handle the captured data as needed, for example:
- // - Update your app's state
- // - Navigate to a results screen
- // - Send data to your backend
- console.log("Barcode:", barcodeData);
- console.log("Expiry Date:", expiryDateText);
- });
-
- // Disable label capture to prevent capturing the same labels multiple times.
- // Re-enable it when you're ready to scan again.
- labelCapture.isEnabled = false;
-
- // Emit feedback to indicate a successful scan.
- // See the Feedback section for customization options.
- Feedback.defaultFeedback.emit();
- }
-};
-
-// Register the listener with the label capture mode.
-labelCapture.addListener(labelCaptureListener);
-```
-
-## Visualize the Scan Process
-
-The capture process can be visualized by adding a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy. The view controls the UI elements, such as the viewfinder and overlays, that are shown to visualize captured labels.
-
-To visualize the results of Label Capture, you can choose between two overlays, [LabelCaptureBasicOverlay](https://docs.scandit.com/data-capture-sdk/cordova/label-capture/api/ui/label-capture-basic-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureBasicOverlay) and [LabelCaptureAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/cordova/label-capture/api/ui/label-capture-advanced-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureAdvancedOverlay).
-
-Here is an example of how to add a `LabelCaptureBasicOverlay` to the `DataCaptureView`.
-
-```js
-import { RectangularViewfinder, RectangularViewfinderStyle } from "scandit-cordova-datacapture-core";
-import { LabelCaptureBasicOverlay } from "scandit-cordova-datacapture-label";
-
-// Create the overlay for the label capture mode created earlier.
-const overlay = new LabelCaptureBasicOverlay(labelCapture);
-
-// Add the overlay to the data capture view.
-dataCaptureView.addOverlay(overlay);
-
-// Optionally, add a viewfinder to guide users through the capture process.
-const viewfinder = new RectangularViewfinder(RectangularViewfinderStyle.Square);
-overlay.viewfinder = viewfinder;
-```
-
-:::tip
-See the [Advanced Configurations](advanced.md) section for more information about how to customize the appearance of the overlays and how to use the advanced overlay to display arbitrary views such as text views, icons or images.
-:::
-
-## Start the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/cordova/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```js
-import { Camera, FrameSourceState } from "scandit-cordova-datacapture-core";
-import { LabelCapture } from "scandit-cordova-datacapture-label";
-
-// Get the default camera (usually the back-facing camera).
-const camera = Camera.default;
-
-// Set the camera as the frame source for the data capture context.
-await dataCaptureContext.setFrameSource(camera);
-
-// Use the recommended camera settings for label capture.
-const cameraSettings = LabelCapture.createRecommendedCameraSettings();
-
-// Depending on the use case, further camera settings adjustments can be made here.
-await camera.applySettings(cameraSettings);
-```
-
-Once the `Camera`, `DataCaptureContext`, `DataCaptureView` and `LabelCapture` are initialized, you can switch on the camera to start capturing labels.
-
-Typically, this is done once the view becomes active and the user granted permission to use the camera, or once the user presses continue scanning after handling a previous scan.
-
-```js
-// Turn on the camera to start capturing labels.
-await camera.switchToDesiredState(FrameSourceState.On);
-```
-
-Please refer to the available [sample apps](https://github.com/Scandit/datacapture-cordova-samples) for detailed examples of camera permission handling and view lifecycle management.
-
-## Provide Feedback
-
-Smart Label Capture provides customizable feedback, emitted automatically when a label is recognized and successfully processed, configurable via [`LabelCapture.feedback`](https://docs.scandit.com/data-capture-sdk/cordova/label-capture/api/label-capture.html#property-scandit.datacapture.label.LabelCapture.Feedback).
-
-You can use the default feedback, or configure your own sound or vibration.
-
-:::tip
-If you already have a [Feedback](https://docs.scandit.com/data-capture-sdk/cordova/core/api/feedback.html#class-scandit.datacapture.core.Feedback) instance implemented in your application, remove it to avoid double feedback.
-:::
-
-```js
-import { LabelCaptureFeedback } from "scandit-cordova-datacapture-label";
-
-// Get the default feedback configuration.
-const feedback = LabelCaptureFeedback.defaultFeedback;
-
-// Assign the feedback to the label capture mode.
-labelCapture.feedback = feedback;
-```
-
-:::note
-Audio feedback is only played if the device is not muted.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/intro.md
deleted file mode 100644
index 7363ca1d..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/intro.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-description: "Learn about Smart Label Capture, a feature that enhances label scanning accuracy and speed by leveraging machine learning technology."
-sidebar_label: About Smart Label Capture
-title: About Smart Label Capture
-toc_max_heading_level: 4
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/label-definitions.md b/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/label-definitions.md
deleted file mode 100644
index 3b0afc00..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/label-capture/label-definitions.md
+++ /dev/null
@@ -1,180 +0,0 @@
----
-description: "A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans."
-framework: capacitor
-toc_max_heading_level: 4
-keywords:
- - capacitor
----
-
-# Label Definitions
-
-A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans.
-
-Smart Label Capture provides a [Label Definition](https://docs.scandit.com/data-capture-sdk/capacitor/label-capture/api/label-definition.html#label-definition) API, enabling you to configure and extract structured data from predefined and custom labels. This feature provides a flexible way to recognize and decode fields within a specific label layout such as price tags, VIN labels, or packaging stickers without needing to write custom code for each label type.
-
-There are two approaches to using label definitions:
-
-- [**Pre-built Labels**](#pre-built-labels)
-- [**Custom Labels**](#custom-labels)
-
-## Pre-built Labels
-
-Smart Label Capture includes ready-made label definitions for common use cases. These pre-built options let you recognize and extract information from standard label types without creating custom configurations:
-
-
-
-### Example: Price label
-
-Use `LabelDefinition.createPriceCaptureDefinition()` to create a pre-built label definition for price labels, such as those found in retail environments:
-
-
-
-```js
-import { LabelCaptureSettings, LabelDefinition } from "scandit-capacitor-datacapture-label";
-
-// Create a pre-built price capture label definition.
-const priceLabel = LabelDefinition.createPriceCaptureDefinition("price-label");
-
-// Create the label capture settings from the label definition.
-const settings = LabelCaptureSettings.settingsFromLabelDefinitions([priceLabel], null);
-```
-
-## Custom Labels
-
-If Smart Label Capture’s pre-built options don’t fit your needs, define a custom label instead. Custom labels can combine your own fields with any of the available pre-built ones.
-
-:::tip
-The following characters are recognized: `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()-./:,$¶"`.
-:::
-
-### Custom Fields
-
-There are two types of custom fields you can define:
-
-
-
-The following properties are available to configure custom fields:
-
-| Property | Required | Description |
-|----------|----------|-------------|
-| `valueRegexes` | Yes | The regex patterns that identify the target string in the scanned content. |
-| `anchorRegexes` | No | Used to specify keywords or phrases that help identify the context of the field. This is particularly useful when the label contains multiple fields that could match the same pattern (e.g., when both packaging and expiry dates are present). |
-| `symbologies` | Yes (barcode fields) | The barcode symbologies to match for barcode fields. This is important for ensuring that the field only captures data from specific barcode types, enhancing accuracy and relevance. |
-| `optional` | No | Whether the field is optional or mandatory. This is helpful when certain fields may not be present on every scan. |
-
-#### Example: Fish Shipping Box
-
-This example shows how to create a custom label definition for a fish shipping box, which includes fields for barcode and batch number.
-
-
-
-```js
-import { Symbology } from "scandit-capacitor-datacapture-barcode";
-import {
- CustomBarcode,
- CustomText,
- LabelCaptureSettings,
- LabelDefinition,
-} from "scandit-capacitor-datacapture-label";
-
-// Create a custom label definition for a fish shipping box.
-const shippingLabel = new LabelDefinition("shipping-label");
-
-// Add a barcode field with Code 128 symbology.
-const barcodeField = CustomBarcode.initWithNameAndSymbology("barcode-field", Symbology.Code128);
-shippingLabel.addField(barcodeField);
-
-// Add a custom text field for the batch number.
-// Use anchorRegexes to specify keywords that help identify the field context.
-// Use valueRegexes to specify the expected format of the field data.
-const batchNumberField = new CustomText("batch-number-field");
-batchNumberField.anchorRegexes = ["Batch"];
-batchNumberField.valueRegexes = ["FZ\\d{5,10}"];
-batchNumberField.optional = true;
-shippingLabel.addField(batchNumberField);
-
-// Create the label capture settings from the label definition.
-const settings = LabelCaptureSettings.settingsFromLabelDefinitions([shippingLabel], null);
-```
-
-### Pre-built Fields
-
-You can also build your label using pre-built fields. These common fields speed up integration because their `valueRegexes`, `anchorRegexes`, and `symbologies` are already predefined.
-
-Customization of pre-built fields is done via the `valueRegexes`, `anchorRegexes`, and `isOptional` methods, which allow you to specify the expected format of the field data.
-
-:::tip
-All pre-built fields come with default `valueRegexes` and `anchorRegexes` that are suitable for most use cases. **Setting either property is optional and will override the defaults**.
-
-You can set `anchorRegexes` to an empty array to remove the default anchor patterns, allowing you to rely solely on the `valueRegexes` for detection.
-:::
-
-import FeatureList from '@site/src/components/FeatureList';
-
-#### Barcode Fields
-
-
-
-#### Price and Weight Fields
-
-
-
-#### Date and Custom Text Fields
-
-
-
-#### Example: Hard disk drive label
-
-This example demonstrates how to configure a label definition for a hard disk drive (HDD) label, which typically includes common fields like serial number and part number.
-
-
-
-```js
-import { Symbology } from "scandit-capacitor-datacapture-barcode";
-import {
- LabelCaptureSettings,
- LabelDefinition,
- PartNumberBarcode,
- SerialNumberBarcode,
-} from "scandit-capacitor-datacapture-label";
-
-// Create a custom label definition for an HDD label.
-const hddLabel = new LabelDefinition("hdd-label");
-
-// Add a serial number barcode field.
-// Pre-built fields like SerialNumberBarcode have predefined valueRegexes and anchorRegexes.
-const serialNumberField = SerialNumberBarcode.initWithNameAndSymbology("serial-number", Symbology.Code128);
-hddLabel.addField(serialNumberField);
-
-// Add a part number barcode field.
-const partNumberField = PartNumberBarcode.initWithNameAndSymbology("part-number", Symbology.Code128);
-hddLabel.addField(partNumberField);
-
-// Create the label capture settings from the label definition.
-const settings = LabelCaptureSettings.settingsFromLabelDefinitions([hddLabel], null);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/label-scanning.md b/versioned_docs/version-8.1.1/sdks/capacitor/label-scanning.md
deleted file mode 100644
index 8c0ae6b0..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/label-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Label scanning enables you to capture and extract data from labels containing multiple barcodes and printed text, making it ideal for retail, logistics, and inventory management applications."
-toc_max_heading_level: 4
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Label Scanning
-
-import LabelScanning from '../../partials/_label-scanning.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-ar/get-started.md
deleted file mode 100644
index 32a2e85c..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: capacitorSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-ar/intro.md
deleted file mode 100644
index 32a2e85c..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: capacitorSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/advanced.md
deleted file mode 100644
index a8df17bc..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-description: "MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Advanced Configurations
-
-MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs.
-
-## Scanning Against A List
-
-There is a function to set a list of expected barcodes if you are scanning against a manifest or item list. If this is used, a progress bar is added to the UI, so you can keep track of the process while scanning.
-
-When scanning against a list, the UI will also show red icons to mark scanned barcodes that aren’t present on the list.
-
-```js
-const barcodeCountCaptureListListener = {
- didUpdateSession: (barcodeCountCaptureList, session) => {
- // Handling the session
- },
-};
-
-const targetBarcodes = [TargetBarcode.create('data', 1)];
-const barcodeCountCaptureList = BarcodeCountCaptureList.create(
- barcodeCountCaptureListListener,
- targetBarcodes
-);
-barcodeCount.setBarcodeCountCaptureList(barcodeCountCaptureList);
-```
-
-## Clustering
-
-import Clustering from '../../../partials/count/_clustering.mdx'
-
-
-
-## Tote Mapping
-
-import Totes from '../../../partials/count/_tote-mapping.mdx'
-
-
-
-## Strap Mode
-
-It can be difficult to reach the shutter button if the smart device is attached to the user’s wrist by a strap or similar. In this instance, you can enable a floating shutter button that can be positioned by the end user in a more ergonomically suitable position.
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowFloatingShutterButton = true;
- }
- }}
- />
-);
-```
-
-## Filtering
-
-If you have several types of barcodes on your label/package, you may want to scan only one of them.
-
-In this case, you can filter the others out. This can be done by symbology, symbol count, or setting a regex.
-
-For example, you might want to scan only Code 128 barcodes and no PDF417 ones.
-
-```js
-const settings = new BarcodeCountSettings();
-barcodeCountSettings.enableSymbologies(enabledSymbologies);
-
-const excludedSymbologies = [Symbology.PDF417];
-const filterSettings = settings.filterSettings;
-filterSettings.excludedSymbologies = excludedSymbologies;
-```
-
-Or, you want to exclude all the barcodes starting with 4 numbers:
-
-```js
-const settings = new BarcodeCountSettings();
-
-const filterSettings = settings.filterSettings;
-filterSettings.excludedCodesRegex = '^1234.*';
-```
-
-By default the filters applied to the relevant barcodes are transparent, but you can use [`BarcodeFilterHighlightSettings`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-filter-highlight-settings.html#barcode-filter-highlight-settings) to change the color and level of transparency.
-
-
-
-## Clear Screen Button
-
-There are situations in which the user may find it helpful to clean up their screen (i.e. clear all the AR overlays) but keep the list of barcodes scanned.
-
-If this is the case, you can enable the “Clear screen” button.
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowClearHighlightsButton = true;
- }
- }}
- />
-);
-```
-
-## Customize Overlay Colors
-
-MatrixScan Count comes with recommended and user-tested AR overlays. However, if you wish to customize the overlay colors, once the overlay has been added, you can conform to the [BarcodeCountViewListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view-listener.html#interface-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener) interface. The methods [BarcodeCountViewListener.brushForRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForRecognizedBarcode) and [BarcodeCountViewListener.brushForUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForUnrecognizedBarcode) are invoked every time a new recognized or unrecognized barcode appears. These can be used to set a brush that will be used to highlight that specific barcode in the overlay. Keep in mind that these methods are relevant only when using the style [BarcodeCountViewStyle.Dot](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view.html#value-scandit.datacapture.barcode.count.ui.BarcodeCountViewStyle.Dot).
-
-```js
-const viewListener = {
- brushForRecognizedBarcode(view, trackedBarcode) {
- // Return a custom brush
- },
-
- brushForUnrecognizedBarcode(view, trackedBarcode) {
- // Return a custom brush
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.listener = viewListener;
- }
- }}
- />
-);
-```
-
-## Notifications
-
-If you want to be notified when a user taps on an overlay, you need to implement the[BarcodeCountViewListener.didTapRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnRecognizedBarcodeTapped) and [BarcodeCountViewListener.didTapUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped) methods.
-
-```js
-const viewListener = {
- didTapRecognizedBarcode: (view, trackedBarcode) => {
- console.log(
- `Tapped recognized barcode with data ${trackedBarcode.barcode.data}`
- );
- },
- didTapUnrecognizedBarcode: (view, trackedBarcode) => {
- console.log(
- `Tapped unrecognized barcode with data ${trackedBarcode.barcode.data}`
- );
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.listener = viewListener;
- }
- }}
- />
-);
-```
-
-## Disable UI Elements
-
-The UI is an integral part of MatrixScan Count and we do not recommend that you use it without it.
-However, if you wish to disable UI elements you can do it as follows.
-
-Disable buttons:
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowListButton = false;
- view.shouldShowExitButton = false;
- view.shouldShowShutterButton = false;
- }
- }}
- />
-);
-```
-
-Disable feedback and hints:
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowUserGuidanceView = false;
- view.shouldShowHints = false;
- }
- }}
- />
-);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/get-started.md
deleted file mode 100644
index 63de4b34..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,162 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Count to your application. "
-
-sidebar_position: 2
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Count to your application.
-
-The general steps are:
-
-1. Create a new Data Capture Context instance
-2. Configure the Barcode Count Mode
-3. Obtain camera instance and set frame source used
-4. Register the listener to be informed when scanned phase is over
-5. Set capture view and AR overlays
-6. Set up the camera so that it switches on when you are in scanning view
-7. Store and retrieve scanned barcodes
-8. Reset Barcode Count mode
-9. List and Exit callbacks
-
-## Create A New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure The Barcode Count Mode
-
-The main entry point for the Barcode Count Mode is the [BarcodeCount](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) object. It is configured through [BarcodeCountSettings](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count-settings.html#class-scandit.datacapture.barcode.count.BarcodeCountSettings) and allows you to register one or more listeners that are informed whenever a scan phase has finished.
-
-For this tutorial, we will set up Barcode Count for tracking EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```js
-const settings = new BarcodeCountSettings();
-settings.enableSymbologies([Symbology.EAN13UPCA]);
-```
-
-If you are sure that your environment will only have unique barcodes (i.e. no duplicated values), you can also enable [BarcodeCountSettings.expectsOnlyUniqueBarcodes](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count-settings.html#property-scandit.datacapture.barcode.count.BarcodeCountSettings.ExpectsOnlyUniqueBarcodes). This option improves scanning performance as long as you are sure that no duplicates will be present. Next, create a [BarcodeCount](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) instance with the [Data Capture Context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) and the settings initialized in the previous step:
-
-```js
-const barcodeCount = new BarcodeCount(settings);
-context.addMode(barcodeCount);
-```
-
-## Obtain Camera Instance And Set Frame Source Used
-
-Our recommended camera settings should be used to achieve the best performance and user experience. The following couple of lines show how to get the recommended settings for MatrixScan Count and create the camera from it:
-
-```js
-const cameraSettings = new CameraSettings();
-
-const camera = Camera.default;
-camera.applySettings(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [BarcodeCountListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface and register the listener.
-
-[BarcodeCountListener.didScan()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan) is called when the scan phase has finished and results can be retrieved from [BarcodeCountSession](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession).
-
-## Set Capture View And AR Overlays
-
-MatrixScan Count’s built-in AR user interface includes buttons and overlays that guide the user through the capturing process. By adding a
-[BarcodeCountView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) to your view hierarchy:
-
-```js
-const barcodeCountViewComponent = (
-
-);
-```
-
-## Set Up The Camera So That It Switches On When You Are In Scanning View
-
-The camera is not automatically turned on when you are in a scanning view. You need to set up the camera so that it switches on when needed and it switches off when not needed anymore. Similarly [BarcodeCount](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) should also be enabled and disabled. For instance, you should switch off the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is not visible anymore (including when the app goes in the background), similarly you want to switch on the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is visible (including when the app goes to the foreground). One way to achieve this is the following:
-
-```js
-componentDidMount() {
-handleAppStateChangeSubscription = AppState.addEventListener('change', handleAppStateChange);
-}
-
-componentWillUnmount() {
-handleAppStateChangeSubscription.remove();
-}
-
-handleAppStateChange = async (nextAppState) => {
-if (nextAppState.match(/inactive|background/)) {
-camera.switchToDesiredState(FrameSourceState.Off);
-} else {
-camera.switchToDesiredState(FrameSourceState.On);
-}
-}
-```
-
-## Store And Retrieve Scanned Barcodes
-
-The values captured as part of the scanning process are part of the [session](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession), and the session is not accessible outside [BarcodeCountListener.didScan()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan). Therefore, we recommend that you store the values to present a list, for example when the user taps the list icon. To do this, make a copy of [BarcodeCountSession.recognizedBarcodes](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count-session.html#property-scandit.datacapture.barcode.count.BarcodeCountSession.RecognizedBarcodes):
-
-```js
-const listener = {
- didScan: (barcodeCapture, session, getFrameData) => {
- const allRecognizedBarcodes = session.recognizedBarcodes;
-
- // Handle barcodes
- },
-};
-
-barcodeCount.addListener(listener);
-```
-
-## Reset Barcode Count Mode
-
-When the scanning process is over, you need to reset the mode to make it ready for the next process. This clears the list of barcodes scanned and all the AR overlays.
-
-To reset Barcode Count’s scanning process, you need to call the [BarcodeCount.reset()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-count.html#method-scandit.datacapture.barcode.count.BarcodeCount.Reset) method.
-
-```js
-barcodeCount.reset();
-```
-
-## List And Exit Callbacks
-
-The UI includes two icons (buttons) named “List” and “Exit”. The SDK provides the callbacks so you can add the desired action when those icons are tapped by the user.
-
-```js
-const viewUiListener = {
- didTapListButton: (view) => {
- // Show the current progress but the order is not completed
- },
-
- didTapExitButton: (view) => {
- // The order is completed
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.uiListener = viewUiListener;
- }
- }}
- />
-);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/intro.md
deleted file mode 100644
index f18987a2..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-count/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# About MatrixScan Count
-
-import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/advanced.md
deleted file mode 100644
index 0d14711f..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-description: "MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## Set up a listener on the BarcodeFind mode
-
-You may want more fine-grained knowledge over the different events happening during the life of the BarcodeFind mode, such as when the search starts, pauses and stops. To do this, you can directly register a [BarcodeFindListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself.
-
-Be aware that these listeners will be called from a background thread.
-
-```js
-mode.addListener({
- didStartSearch() {
- // The mode was started
- },
-
- didPauseSearch(foundItems: BarcodeFindItem[]) {
- // The mode was paused
- },
-
- didStopSearch(foundItems: BarcodeFindItem[]) {
- // The mode was stopped after the finish button was clicked
- },
-});
-```
-
-## UI configuration
-
-The [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) will by default show a set of UI elements, which can be optionally hidden:
-
-- A play/pause button
-- A finish button
-- A searched items carousel
-- Guidance hints
-
-There is also a progress bar but this is hidden by default.
-
-Each of these elements can be shown or hidden at will.
-
-```js
-barcodeFindView.shouldShowCarousel = false;
-barcodeFindView.shouldShowProgressBar = true;
-// …
-```
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/get-started.md
deleted file mode 100644
index aa2082f2..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,120 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements: "
-
-sidebar_position: 2
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-The general steps are:
-
-1. Create a new Data Capture Context instance.
-2. Configure the Barcode Find Mode.
-3. Setup the BarcodeFindView.
-4. Register a listener to be notified with found items
-5. Start searching
-
-## Create a new Data Capture Context instance
-
-The first step to add find capabilities to your application is to create a new [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const dataCaptureContext = DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Find Mode
-
-The main entry point for the Barcode Find Mode is the [BarcodeFind](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind) object. You can configure the supported Symbologies through its [BarcodeFindSettings](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight (e.g. a list of products).
-
-For this tutorial, we will set up Barcode Find for tracking EAN13 codes. Change this to the correct symbologies for your use case (e.g. Code 128, Code 39…).
-
-First create the settings:
-
-```js
-const settings = BarcodeFindSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-Then you have to create the list of items that will be actively searched for.
-
-In this tutorial, let’s look up two items based on their EAN13 codes. We will attach to the first item some optional information that can be used by the BarcodeFindView to display extra information.
-
-```js
-const items = [
-new BarcodeFindItem(new BarcodeFindItemSearchOptions("9783598215438"),
-new BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)),
-new BarcodeFindItem(new BarcodeFindItemSearchOptions("9783598215414"), null) // Item information is optional, used for display only
-]
-```
-
-Create the mode with the previously created settings and set the items:
-
-```js
-const mode = new BarcodeFind(settings);
-mode.setItemList(items);
-```
-
-## Setup the BarcodeFindView
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView), the scanning interface (camera preview and searching UI elements) will be added automatically to your application.
-
-The BarcodeFindView appearance can be customized through [BarcodeFindViewSettings](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings):
-
-- Colors of dots in augmented reality overlay
-- Enable sound and haptic alerts
-
-```js
-const viewSettings = new BarcodeFindViewSettings();
-```
-
-Construct a new BarcodeFindView. The BarcodeFindView is automatically added to the provided parent view.
-
-```js
-let barcodeFind;
- {
- barcodeFindView = view;
- // Handle the view as needed, for example
- barcodeFindView.startSearching();
- }}
-> ;
-```
-
-## Register a listener to be notified with found items
-
-The BarcodeFindView displays next to its shutter button a handy “finish” button. Register a [BarcodeFindViewUiListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-find-view.html#interface-scandit.datacapture.barcode.find.ui.IBarcodeFindViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```js
-barcodeFindView.barcodeFindViewUiListener = {
- didTapFinishButton(foundItems: BarcodeFindItem[]) {
- // This method is called when the user presses the
- // finish button. It returns the list of all items that were found during
- // the session.
- },
-};
-```
-
-## Start searching
-
-As soon as everything is set up, control the [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) to start the search.
-
-```js
-barcodeFindView.startSearching();
-```
-
-This is the equivalent of pressing the “Play” button programmatically. It will start the search process, turn on the camera and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/intro.md
deleted file mode 100644
index dfeaa82a..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-find/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/advanced.md
deleted file mode 100644
index 5fa56a92..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Advanced Configurations
-
-MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.
-
-## BarcodePick Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodePick` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodePickListener`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-pick-listener.html#interface-scandit.datacapture.barcode.pick.IBarcodePickListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```javascript
-mode.addListener({
- onObservationStarted() {
- // The mode was started
- },
-
- onObservationStopped(foundItems: BarcodeFindItem[]) {
- // The mode was stopped after the finish button was clicked
- },
-});
-```
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/get-started.md
deleted file mode 100644
index c841684b..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,121 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements: "
-
-sidebar_position: 2
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements:
-
-- Barcode Pick: The data capture mode that is used for scan and pick functionality.
-- A Barcode Pick View: The pre-built UI elements used to highlight items to be picked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Pick Mode
-- Setup the Barcode Pick View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```javascript
-const dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Pick Mode
-
-The main entry point for the Barcode Pick Mode is the `BarcodePick` object. You can configure the supported Symbologies through its [`BarcodePickSettings`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-pick-settings.html), and set up the list of items that you want MatrixScan Pick to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```javascript
-const settings = BarcodePickSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-Then you have to create the list of items that will be picked and quantity to be picked for each item.
-
-```javascript
-const items = [
- new BarcodePickProduct(new BarcodePickProductIdentifier("9783598215438"),
- new BarcodePickProductQuantityToPick(3),
- new BarcodePickProduct(new BarcodePickProductIdentifier("9783598215414"), new BarcodePickProductQuantityToPick(3)
-]
-```
-
-Create the mode with the previously created settings:
-
-```javascript
-const mode = new BarcodePick(settings);
-```
-
-## Setup the `BarcodePickView`
-
-MatrixScan Pick’s built-in AR user interface includes buttons and overlays that guide the user through the scan and pick process. By adding a [`BarcodePickView`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-pick-view.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickView), the scanning interface is added automatically to your application.
-
-The `BarcodePickView` appearance can be customized through [`BarcodePickViewSettings`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-pick-view-settings.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickViewSettings) to match your application’s look and feel. The following settings can be customized:
-
-* Colors of dots in augmented reality overlay
-* Enable sound and haptic alerts
-* Guidelines text
-* Showing hints
-* Finish button
-* Pause button
-* Zoom button
-* Loading Dialog
-
-```javascript
-const viewSettings = new BarcodePickViewSettings();
-// ...
-```
-
-Construct a new `BarcodePickView`. The `BarcodePickView` will be attached to the HTMLElement provided in the ConnectToElement function.
-
-```javascript
-const BarcodePickView = BarcodePickView.forModeWithViewSettings(dataCaptureContext, BarcodePick, viewSettings);
-// Connect the data capture view to the HTML element, so it can fill up its size and follow its position.
-view.connectToElement(document.getElementById('html-element-id'));
-```
-
-## Register the Listener
-
-The `BarcodePickView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodePickViewUiListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-pick-view.html#interface-scandit.datacapture.barcode.pick.ui.IBarcodePickViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```javascript
-BarcodePickView.BarcodePickViewUiListener = {
- didTapFinishButton(foundItems: BarcodePickProduct[]) {
- // This method is called when the user presses the
- // finish button. It returns the list of all items that were found during
- // the session.
- }
-};
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `BarcodePickView.start()`.
-
-```javascript
-BarcodePickView.start();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/intro.md
deleted file mode 100644
index 448d3ba8..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-description: "MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# About MatrixScan Pick
-
-MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code.
-
-MatrixScan Pick is implemented through functionality provided by [`BarcodePick`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-pick.html).
-
-## UI Overview
-
-* MatrixScan Pick is inspired by the familiar paradigm of a camera, including a shutter button that the user operates in order start and pause the scanning view. The Finish button is used at any time to exit the workflow.
-* It highlights items with obvious and colorful visual dots on screen.
-* When paused, MatrixScan Pick freezes the display at the last view, even if the device is moved. The Play button transitions back to the live view.
-* Textual guidance is displayed from the beginning of the session and as the workflow progresses, informing of the user of changes in item status (i.e. Detected, Ignored, To-Pick, or Picked).
-* Status icons can be defined to provide further information to users for a given barcode. In the live view, the icons are displayed but not tappable. In the frozen view, the status icons can be tapped and expanded to provide additional textual information.
-* The Quick Start Guide takes you through the process to install the full UI. However, you can then customize it by choosing to remove any elements on the screen except for the AR overlays. This allows you to create custom UIs suitable for your own workflows.
-
-
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../barcode-symbologies.mdx) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/advanced.md
deleted file mode 100644
index 67337ebc..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/advanced.md
+++ /dev/null
@@ -1,101 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
-
----
-
-# Adding AR Overlays
-
-To add advanced AR overlays to a Data Capture View you can take advantage of the [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, which provides a ready-to-use implementation for view-based AR overlays.
-
-## Using BarcodeBatchAdvancedOverlay
-
-As mentioned above, the advanced overlay combined with its [listener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) offers an easy way of adding augmentations to your [DataCaptureView](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView). In this guide we will add a view above each barcode showing its content.
-
-First of all, create a new instance of [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) and add it to the [DataCaptureView](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-
-```js
-const overlay =
- Scandit.BarcodeBatchAdvancedOverlay.withBarcodeBatchForView(
- barcodeBatch,
- view
- );
-```
-
-At this point, you have two options.
-
-- Add a [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-- Use the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) to specify the view, anchor and offset for each barcode.
-
-:::note
-The second way will take priority over the first one, which means that if a view for a barcode has been set using [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) won’t be invoked for that specific barcode.
-:::
-
-Using [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener)
-
-- You need to implement [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener). This interface’s methods are invoked every time a barcode is newly tracked.
-- [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning _null_ will show no view.
-- [BarcodeBatchAdvancedOverlayListener.anchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through [Anchor](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/anchor.html#enum-scandit.datacapture.core.Anchor). Be aware that it anchors the view’s center to the anchor point. To achieve anchoring the top of the view or the bottom etc. you will have to set an offset as explained in the next point.
-- [BarcodeBatchAdvancedOverlayListener.offsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [PointWithUnit](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```js
-overlay.listener = {
- viewForTrackedBarcode: (overlay, trackedBarcode) => {
- // Create and return the view you want to show for this tracked barcode. You can also return null, to have no view for this barcode.
- let element = document.createElement('span');
- element.innerText = trackedBarcode.barcode.data;
- element.style.backgroundColor = '#FFFFFFFF';
- return Scandit.TrackedBarcodeView.withHTMLElement(element, null);
- },
-
- anchorForTrackedBarcode: (overlay, trackedBarcode) => {
- // As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode quadrilateral.
- // Use the function 'offsetForTrackedBarcode' below to adjust the position of the view by providing an offset.
- return Scandit.Anchor.TopCenter;
- },
-
- offsetForTrackedBarcode: (overlay, trackedBarcode) => {
- // This is the offset that will be applied to the view.
- // You can use .fraction to give a measure relative to the view itself, the sdk will take care of transforming this into pixel size.
- // We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by half of the view's height.
- return new Scandit.PointWithUnit(
- new Scandit.NumberWithUnit(0, Scandit.MeasureUnit.Fraction),
- new Scandit.NumberWithUnit(-1, Scandit.MeasureUnit.Fraction)
- );
- },
-};
-```
-
-Using the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay)
-
-The function [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) gives you access to a [session](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession), which contains all added, updated and removed tracked barcodes. From here you can create the view you want to display, and then call [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), [BarcodeBatchAdvancedOverlay.setAnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode) and [BarcodeBatchAdvancedOverlay.setOffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```js
-didUpdateSession: (barcodeBatch, session) => {
- session.addedTrackedBarcodes.map((trackedBarcode) => {
- let element = document.createElement('span');
- element.innerText = trackedBarcode.barcode.data;
- element.style.backgroundColor = '#FFFFFFFF';
- let trackedBarcodeView = Scandit.TrackedBarcodeView.withHTMLElement(
- element,
- null
- );
-
- window.overlay.setViewForTrackedBarcode(trackedBarcodeView, trackedBarcode);
- window.overlay.setAnchorForTrackedBarcode(
- Scandit.Anchor.TopCenter,
- trackedBarcode
- );
- window.overlay.setOffsetForTrackedBarcode(
- new Scandit.PointWithUnit(
- new Scandit.NumberWithUnit(0, Scandit.MeasureUnit.Fraction),
- new Scandit.NumberWithUnit(-1, Scandit.MeasureUnit.Fraction)
- ),
- trackedBarcode
- );
- });
-};
-```
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/get-started.md
deleted file mode 100644
index f82a8f7d..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/get-started.md
+++ /dev/null
@@ -1,162 +0,0 @@
----
-sidebar_position: 2
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the MatrixScan mode
-- Using the built-in camera
-- Visualizing the scan process
-- Providing feedback
-- Disabling barcode tracking
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = Scandit.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [BarcodeBatchSettings](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) that will get informed whenever a new frame has been processed.
-
-Most of the times, you will not need to implement a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener), instead you will add a [BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and implement a [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-
-For this tutorial, we will setup Barcode Batch for tracking QR codes.
-
-```js
-const settings = new Scandit.BarcodeBatchSettings();
-settings.enableSymbology(Scandit.Symbology.QR, true);
-```
-
-Next, create a [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance with the data capture context and the settings initialized in the previous steps:
-
-```js
-const barcodeBatch = new Scandit.BarcodeBatch(settings);
-context.addMode(barcodeBatch);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-const cameraSettings = Scandit.BarcodeBatch.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Scandit.Camera.default;
-if (camera != null) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-There is a separate guide for [more advanced camera functionality](advanced.md).
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-const view = Scandit.DataCaptureView.forContext(context);
-view.connectToElement(htmlElement);
-```
-
-To visualize the results of Barcode Batch, first you need to add the following [overlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay):
-
-```js
-const overlay = Scandit.BarcodeBatchBasicOverlay.withBarcodeBatchForView(
- barcodeBatch,
- view
-);
-```
-
-Once the overlay has been added, you should implement the [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) interface. The method [BarcodeBatchBasicOverlayListener.brushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a [brush](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/ui/brush.html#class-scandit.datacapture.core.ui.Brush) that will be used to highlight that specific barcode in the [overlay](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay).
-
-```js
-overlay.listener = {
- brushForTrackedBarcode: (overlay, trackedBarcode) => {
- // Return a custom Brush based on the tracked barcode.
- },
-};
-```
-
-If you would like to make the highlights tappable, you need to implement the [BarcodeBatchBasicOverlayListener.didTapTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped) method.
-
-```js
-overlay.listener = {
- didTapTrackedBarcode: (overlay, trackedBarcode) => {
- // A tracked barcode was tapped.
- },
-};
-```
-
-## Get Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a
-[BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) to provide a similar experience. Below, we use the default [Feedback](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it
-with your own sound or vibration if you want.
-
-```js
-const feedback = Scandit.Feedback.defaultFeedback;
-```
-
-Next, use this [feedback](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/feedback.html#class-scandit.datacapture.core.Feedback) in a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener):
-
-```js
-const feedbackListener = {
- didUpdateSession: (barcodeBatch, session) => {
- if (session.addedTrackedBarcodes.length > 0) {
- feedback.emit();
- }
- },
-};
-```
-
-[BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The [session](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession) parameter contains information about the currently tracked barcodes, in particular, the newly recognized ones. We check if there are any and if so, we emit the feedback.
-
-As the last step, register the listener responsible for emitting the feedback with the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance.
-
-```js
-barcodeBatch.addListener(feedbackListener);
-```
-
-## Disabling Barcode Batch
-
-To disable barcode tracking set [BarcodeBatch.isEnabled](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/barcode-batch.html#property-scandit.datacapture.barcode.batch.BarcodeBatch.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or put it in standby calling [SwitchToDesiredState](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [StandBy](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.Standby).
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/intro.md
deleted file mode 100644
index 3103059b..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/matrixscan/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/migrate-5-to-6.mdx
deleted file mode 100644
index 3400c3b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/migrate-6-to-7.mdx
deleted file mode 100644
index f48d0c49..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/migrate-7-to-8.mdx
deleted file mode 100644
index 87e83e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/parser/get-started.md
deleted file mode 100644
index c4cf1992..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/parser/get-started.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-sidebar_position: 2
-pagination_next: null
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/capacitor/parser/hibc.html), [GS1 Application Identifier (https://docs.scandit.com/data-capture-sdk/capacitor/parser/AI) system](https://docs.scandit.com/data-capture-sdk/capacitor/parser/gs1ai.html) and [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/capacitor/parser/swissqr.html), [VIN Vehicle Identification Number](https://docs.scandit.com/data-capture-sdk/capacitor/parser/vin.html), [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/capacitor/parser/iata-bcbp.html).
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Format-Specific Documentation
-
-- [Supported Data Formats](https://docs.scandit.com/data-capture-sdk/capacitor/parser/formats.html)
-- [HIBC](https://docs.scandit.com/data-capture-sdk/capacitor/parser/hibc.html)
-- [GS1 AI](https://docs.scandit.com/data-capture-sdk/capacitor/parser/gs1ai.html)
-- [GS1 Digital Link](https://docs.scandit.com/data-capture-sdk/capacitor/parser/gs1-digital-link.html)
-- [Swiss QR](https://docs.scandit.com/data-capture-sdk/capacitor/parser/swissqr.html)
-- [VIN](https://docs.scandit.com/data-capture-sdk/capacitor/parser/vin.html)
-- [IATA BCBP](https://docs.scandit.com/data-capture-sdk/capacitor/parser/iata-bcbp.html)
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-First of all, include the ScanditParser library and its dependencies to your project, if any.
-
-## Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/release-notes.md b/versioned_docs/version-8.1.1/sdks/capacitor/release-notes.md
deleted file mode 100644
index e43bf2b0..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/release-notes.md
+++ /dev/null
@@ -1,200 +0,0 @@
----
-toc_max_heading_level: 3
-displayed_sidebar: capacitorSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Id
-
-* Fixed a memory issue leading to a persistent black screen during ID Capture startup
-
-#### Core
-
-* Fixed a crash in the DataCaptureView overlay management that could occur during rapid view updates
-* Fixed an issue where the camera preview appeared rotated 90 degrees in landscape orientation
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* [SparkScan](/sdks/capacitor/sparkscan/intro.md) is not limited to only barcodes anymore, but can also scan items - in other words any combinations of barcodes and text present on a target to be scanned. The feature is available in beta at the moment, please contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-* Our SDK can now scan the following documents both in single-side and double-side mode:
- - All Mexican DLs
- - Mexican Voter Cards
-
-#### Core
-
-* Added webViewContentOnTop to DataCaptureView so hybrid apps can place HTML overlays above the camera preview without sacrificing native gestures. Default behaviour stays unchanged; when you enable the property, the bridge now mirrors Android and iOS touch routing—JS UI elements receive taps first, and any unhandled touch paths through to the native DataCaptureView. Improved resilience: both platforms fall back automatically if the WebView can't evaluate the hit-test logic, preventing stalled gestures even under heavy load.
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-#### Smart Label Capture
-
-* Incremental improvements in accuracy across all use-cases for the OCR model powering Smart Label Capture.
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-#### Smart Label Capture
-
-* Validation Flow: Manually input values for barcodes will go through a stricter validation. Some values may no longer be accepted if they do not match the symbology specs for the symbology’s definition
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed a bug in the default color of BarcodeCapture highlights
-* Fixed an issue where popover annotations with HIGHLIGHT_TAP_AND_BARCODE_SCAN trigger could not be opened again
-* Fixed an issue in BarcodeSequence where camera would not be ON in portrait
-* Fixed an issue where SparkScan mini preview would sometimes stay in regular when entering target mode
-* Fixed the app becoming unresponsive after being in the background for extended periods
-* Added the `cameraStateOnStop` property to BarcodeFindView to optimize camera transitions when switching between modes
-* Fixed an issue where the successful notification in BarcodeFind was not displayed
-
-#### Id
-
-* Fixed an issue where front expiry date anonymization rectangle is erroneously drawn on front and back
-* Fixed a bug that prevented VizResult anonymization of the following fields: additionalAddressInformation, bloodType, employer, fathersName, issuingAuthority, maritalStatus, mothersName, placeOfBirth, profession, race, residentialStatus
-* Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses
-
-#### Smart Label Capture
-
-* Fixed an issue where LabelCapture fields would return default data in some frameworks
-
-#### Core
-
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-* Fixed an issue where barcode scanning would permanently stop after the app returned from background, particularly when camera permission dialogs were shown during initialization
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed an issue where the successful hint in BarcodeFind was not displayed
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* The Capacitor Kotlin plugin version used is now `1.9.25`, enabling support for projects using Capacitor 7.
-
-#### Barcode
-
-* Updated the Gradle version for all sample applications to 8.14.3.
-* `BarcodeBatchBasicOverlay` and `BarcodeBatchBasicOverlayListener` now allow for nullable brushes.
-
-#### Smart Label Capture
-
-* [Smart Label Capture](/sdks/capacitor/label-capture/intro.md) is now available for Capacitor. It enables the capture of any label, regardless of its layout or format, and extracts the relevant information automatically. This is achieved through a combination of AI-based text recognition and barcode scanning, allowing users to capture all necessary data in a single scan. Smart Label Capture is ideal for applications such as inventory management, asset tracking, and logistics, where labels can vary widely in design and content.
-* We’re introducing an enhancement that makes Smart Label Capture more robust and scalable by complementing its on-device model with a larger, more capable model. When the on-device model can’t capture certain labels, the SDK automatically escalates to this enhancement to handle complex or unforeseen cases with high accuracy and reliability. This capability is currently available in `beta`. If you’re interested in trying it, please contact Scandit Support. For configuration details, see `labelDefinition.adaptiveRecognitionEngine`.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`.
-
-### Bug Fixes
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/capacitor/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/scanning-composite-codes.mdx
deleted file mode 100644
index d517a134..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/single-scanning.md b/versioned_docs/version-8.1.1/sdks/capacitor/single-scanning.md
deleted file mode 100644
index 7c72608a..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/single-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import SingleScanning from '../../partials/_single-scanning.mdx'; "
-
-toc_max_heading_level: 4
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Single Scanning
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/advanced.md
deleted file mode 100644
index 041fdfa6..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/advanced.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Hardware Button Control
-
-Allowing the end user to control the scanner with hardware buttons can be useful if your users typically wear gloves. It can also improve ergonomics in some workflows.
-
-SparkScan offers a built-in API to let you do this via [`SparkScanViewSettings.hardwareTriggerEnabled`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled).
-
-### Trigger Error State
-
-You may want to introduce logic in your app to show an error message when scanning specific barcodes (e.g. barcodes already added to the list, barcodes from the wrong lot etc.). SparkScan offers a built-in error state you can easily set to trigger an error feedback prompt to the user. You will be able to customize:
-
-- The text message
-- The timeout of the error message: the scanner will be paused for the specified amount of time, but the user can quickly restart the scanning process by tapping the trigger button.
-
- :::tip
- A high timeout (>10s) typically requires the users to interact with the UI to start scanning again. This is a good choice when you want to interrupt the scanning workflow (e.g. because a wrong barcode is scanned and some actions need to be performed). A small timeout (\<2s) could allow the user to scan again without having to interact with the app, just momentarily pausing the workflow to acknowledge that a “special” barcode has been scanned.
- :::
-
-- The color of the flashing screen upon scan. You can enable or disable the visual feedback via [SparkScanViewSettings.visualFeedbackEnabled](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.VisualFeedbackEnabled) and you can control the color via [SparkScanBarcodeFeedback](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-barcode-feedback.html#sparkscan-barcode-feedback).
-
-An error example is here reported:
-
-```js
-self.sparkScanView.emitFeedback(SparkScanBarcodeErrorFeedback(message: "This code should not have been scanned",
-resumeCapturingDelay: 6, visualFeedbackColor: UIColor.red))
-```
-
-You can have different error states triggered by different logic conditions. For example you can trigger an error state when a wrong barcode is scanned, and another one when a duplicate barcode is scanned. These errors can show different colors and have different timeouts.
-
-
- This error state for a code that should not have been scanned.
-
-
-
- This error state for a code that has been scanned more than once.
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan’s built-in error state. Setting the [`SparkScanBarcodeErrorFeedback.resumeCapturingDelay`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to 0 allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode (SDCSparkScanViewSettings.defaultScanningMode). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SDCSparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled (`SDCSparkScanViewSettings.holdToScanEnabled`).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/get-started.md
deleted file mode 100644
index 73d0ea14..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/get-started.md
+++ /dev/null
@@ -1,120 +0,0 @@
----
-sidebar_position: 2
-framework: capacitor
-keywords:
- - capacitor
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are:
-
-1. Create a new Data Capture Context instance.
-2. Configure the Spark Scan Mode.
-3. Create the SparkScanView with the desired settings and bind it to the application’s lifecycle.
-4. Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs.
-
-## Prerequisites
-
-- The latest stable version of [Node.js and npm](https://nodejs.org/en/download/) (required only if including and building the SDK as part of an app, instead of just including it as an external resource from a CDN in HTML).
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-- If you have not already done so, see [this guide](../add-sdk.md) for information on how to add the Scandit Data Capture SDK to your project
-
-:::note
-Devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-## Create a New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/capacitor/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```sh
-const context = Scandit.DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through [`SparkScanSettings`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/spark-scan-settings.html#class-scandit.datacapture.barcode.spark.SparkScanSettings) and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we will set up SparkScan for scanning EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```js
-const settings = new Scandit.SparkScanSettings();
-settings.enableSymbologies([Symbology.EAN13UPCA]);
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```js
-const sparkScan = Scandit.SparkScan.forSettings(settings);
-```
-
-## Setup the Spark Scan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-view-settings.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) appearance can be customized through [`SparkScanViewSettings`](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-view-settings.html#class-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings).
-
-```js
-const viewSettings = new Scandit.SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-By adding a `SparkScanView`, the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a `SparkScanView` to your view hierarchy. Construct a new SparkScan view. The `SparkScan` view is automatically added to the provided parentView:
-
-```js
-const sparkScanComponent = (
-
-);
-```
-
-Additionally, make sure to call [SparkScanView.stopScanning()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.StopScanning) in your app state handling logic. You have to call this for the correct functioning of the
-[SparkScanView](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView).
-
-```js
-componentWillUnmount() {
-sparkScanComponent.stopScanning();
-}
-
-handleAppStateChange = async (nextAppState) => {
-if (nextAppState.match(/inactive|background/)) {
-sparkScanComponent.stopScanning();
-}
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the
-[SparkScanListener](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode.
-
-```js
-// Register a listener object to monitor the spark scan session.
-
-const listener = {
- didScan: (sparkScan, session, getFrameData) => {
- // Gather the recognized barcode
- const barcode = session.newlyRecognizedBarcode[0];
-
- // Handle the barcode
- },
-};
-
-sparkScan.addListener(listener);
-```
-
-[SparkScanListener.didScan()](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved from the first object in the provided barcodes list:
-[SparkScanSession.newlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode). Please note that this list only contains one barcode entry.
-
-## Scan Some Barcodes
-
-Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can
-print out.
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/intro.md
deleted file mode 100644
index ca7bdfd9..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/sparkscan/intro.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: capacitor
-keywords:
- - capacitor
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying additional scanning modes, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/symbology-properties.mdx
deleted file mode 100644
index 56b87782..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/capacitor/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/capacitor/system-requirements.mdx
deleted file mode 100644
index 1ae4f584..00000000
--- a/versioned_docs/version-8.1.1/sdks/capacitor/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/add-sdk.md b/versioned_docs/version-8.1.1/sdks/cordova/add-sdk.md
deleted file mode 100644
index 14dbd861..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/add-sdk.md
+++ /dev/null
@@ -1,152 +0,0 @@
----
-description: "This guide shows you how to add the Scandit Data Capture SDK to your existing project. "
-
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Installation
-
-This guide shows you how to add the Scandit Data Capture SDK to your existing project.
-
-## Prerequisites
-
-- The latest stable version of [Cordova](https://github.com/apache/cordova-cli#installation), [Node.js and npm](https://nodejs.org/en/download/).
-- A project with:
- - minimum iOS deployment target of 14.0 or higher (15.0 or higher for ID Capture)
- - an Android project with target SDK version 23 (Android 6, Marshmallow) or higher (version 24 or higher for ID Capture)
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-
-:::warning
-Android devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-### Internal Dependencies
-
-import InternalDependencies from '../../partials/get-started/_internal-deps-no-label-capture.mdx';
-
-
-
-## Get a License Key
-
-1. [Sign up](https://ssl.scandit.com/dashboard/sign-up?p=test) or [Sign in](https://ssl.scandit.com/dashboard/sign-in) to your Scandit account
-2. Create a project
-3. Create a license key
-
-If you have a paid subscription, please reach out to [Scandit Support](mailto:support@scandit.com) if you need a new license key.
-
-## Add the SDK
-
-Currently we support adding the Scandit Data Capture SDK Cordova plugins to your project in two ways. The simplest way is to use npm, alternatively you can manually download the plugins and add them to your Cordova project.
-
-:::tip
-You should first always add the `scandit-cordova-datacapture-core` plugin, as all other plugins depend on it.
-:::
-
-### Create a new project
-
-If you do not have a Cordova project yet that you’ll use, you should create a new one.
-
-```sh
-> cordova create helloscandit --id "com.scandit.helloscandit"
-> cd helloscandit
-> cordova platform add [ios | android]
-```
-
-### Add dependencies
-
-The Scandit Data Capture SDK depends on WKWebView on iOS, so you’ll manually have to add this dependency if your project doesn’t use WKWebView yet.
-
-:::tip
-The `cordova-plugin-wkwebview-engine` is only supported in `cordova-ios` `>=4`-`<6` but is now [default in new versions](https://github.com/apache/cordova-plugin-wkwebview-engine?tab=readme-ov-file#deprecation-notice).
-:::
-
-```sh
-> cordova plugin add cordova-plugin-wkwebview-engine
-```
-
-### Install via npm or GitHub repo
-
-To add Scandit plugins via npm or GitHub repo, run the corresponding commands from your project’s root folder.
-
-In the following snippet we’re adding multiple plugins for different functionalities, but you can add only the ones you need as described in the [Internal Dependencies](#internal-dependencies) section.
-
-```sh
-# npm package
-cordova plugin add scandit-cordova-datacapture-core
-cordova plugin add scandit-cordova-datacapture-barcode
-cordova plugin add scandit-cordova-datacapture-parser
-cordova plugin add scandit-cordova-datacapture-id
-
-# git repo
-cordova plugin add https://github.com/Scandit/scandit-cordova-datacapture-core.git
-cordova plugin add https://github.com/Scandit/scandit-cordova-datacapture-barcode.git
-cordova plugin add https://github.com/Scandit/scandit-cordova-datacapture-parser.git
-cordova plugin add https://github.com/Scandit/scandit-cordova-datacapture-id.git
-```
-
-:::note
-For npm dependencies, you can also specify a version using `@`.
-For GitHub dependencies, you can specify the version using `#`.
-:::
-
-### Add the Scandit Data Capture SDK manually
-
-After you download the [archive containing all the plugins](https://ssl.scandit.com/dashboard/downloads), unzip the archive. It includes the available Cordova plugins, including the `scandit-cordova-datacapture-core` plugin that all other plugins depend on.
-
-### Add the plugin to your project
-
-Use the Cordova CLI to add the plugin(s) to your already existing project.
-
-First add `scandit-cordova-datacapture-core` plugin:
-
-```sh
-cordova plugin add
-```
-
-If your project is not yet configured to use Swift on iOS, you’ll need to add the following lines to your _config.xml_ file to specify the iOS version targeted and the Swift version you’d like to use:
-
-```jsx
-
- ...
-
-
- ...
-
-```
-
-Once this is done, you can continue with adding the plugin for your desired functionality, e.g. for barcode capture, add the `scandit-cordova-datacapture-barcode` plugin:
-
-```sh
-cordova plugin add
-```
-
-To update plugins, make sure to follow Cordova best practices and remove the plugin before adding the new version:
-
-```sh
-cordova plugin remove
-cordova plugin add
-```
-
-## Additional Information
-
-### Android Configuration
-
-
-On Android, the Scandit SDK uses content providers to initialize the scanning capabilities properly. If your own content providers depend on the Scandit SDK, choose an **initOrder** lower than 10 to make sure the SDK is ready first.
-
-If not specified, **initOrder** is zero by default and you have nothing to worry about.
-
-Check [the official `` documentation](https://developer.android.com/guide/topics/manifest/provider-element).
-
-### Camera Permissions
-
-When using the Scandit Data Capture SDK you will want to set the camera as the frame source for various capture modes. The camera permissions are handled by the plugins, so you don’t need to specify anything explicitly.
-
-import OSSLicense from '../../partials/_third-party-licenses-js.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/cordova/ai-powered-barcode-scanning.md
deleted file mode 100644
index 65565ce3..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: cordova
-keywords:
- - cordova
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/cordova/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index 295d7c37..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,108 +0,0 @@
----
-description: "Learn about the available symbologies and the corresponding configurations and extensions available."
-
-sidebar_position: 3
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following lines of code show you how to enable scanning Code 128 codes for barcode capture:
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-settings.enableSymbology(Scandit.Symbology.Code128, true);
-```
-
-import CapturePresents from '../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below lines of code show how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code128
-);
-symbologySettings.activeSymbolCounts = [6, 7, 8];
-```
-
-import CalculateSymbolCount from '../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you enable a symbology as described above, only dark-on-bright codes are enabled. If you also want to read bright-on-dark codes, color-inverted reading for that symbology must be enabled ( `SymbologySettings.isColorInvertedEnabled`).
-
-The following code shows how to enable color-inverted reading for Code 128:
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code128
-);
-symbologySettings.isColorInvertedEnabled = true;
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that will always be enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum). Enforcing an optional checksum will reduce false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes get discarded as the checksum doesn’t match. All available checksums per symbology can be found in [symbology properties](../symbology-properties.mdx).
-
-You can enforce a specific checksum by setting it through [SymbologySettings.checksums](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code39
-);
-symbologySettings.checksums = [Scandit.Checksum.Mod43];
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [SymbologySettings.setExtensionEnabled()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code39
-);
-symbologySettings.setExtensionEnabled('full_ascii', true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/barcode-capture/get-started.md
deleted file mode 100644
index 2e0739a0..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/barcode-capture/get-started.md
+++ /dev/null
@@ -1,173 +0,0 @@
----
-description: "In this guide you will learn step by step how to add barcode capture to your application. The general steps are: "
-
-sidebar_position: 2
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-In this guide you will learn step by step how to add barcode capture to your application. The general steps are:
-
-- Include the ScanditBarcodeCapture library and its dependencies to your project, if any.
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode capture settings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and enable the [barcode symbologies](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology) you want to read in your application.
-- Create a new [barcode capture mode](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance and initialize it with the settings created above.
-- Register a [barcode capture listener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/cordova/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = Scandit.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Scanning Behavior
-
-Barcode scanning is orchestrated by the [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) [data capture mode](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-settings.enableSymbologies([
- Scandit.Symbology.Code128,
- Scandit.Symbology.Code39,
- Scandit.Symbology.QR,
- Scandit.Symbology.EAN8,
- Scandit.Symbology.UPCE,
- Scandit.Symbology.EAN13UPCA,
-]);
-```
-
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.codeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around 500 or even \-1 if you do not want codes to be scanned more than once.
-
-Next, create a [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance with the settings initialized in the previous step:
-
-```js
-const barcodeCapture = new Scandit.BarcodeCapture(settings);
-context.addMode(barcodeCapture);
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [BarcodeCapture.addListener()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface. For example:
-
-```js
-const listener = {
- didScan: (barcodeCapture, session) => {
- const recognizedBarcodes = session.newlyRecognizedBarcode;
- // Do something with the barcodes
- },
-};
-```
-
-Then add the listener:
-
-```js
-barcodeCapture.addListener(listener);
-```
-
-### Rejecting Barcodes
-
-To prevent scanning unwanted codes, you can reject them by adding the desired logic to the `onBarcodeScanned` method. This will prevent the barcode from being added to the session and will not trigger the `onSessionUpdated` method.
-
-The example below will only scan barcodes beginning with the digits `09` and ignore all others, using a transparent brush to distinguish a rejected barcode from a recognized one:
-
-```js
-...
-if (!barcode.data || !barcode.data.startsWith('09:')) {
- window.overlay.brush = Scandit.Brush.transparent;
- return;
-}
-...
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-const cameraSettings = Scandit.BarcodeCapture.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Scandit.Camera.default;
-
-if (camera) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-const view = Scandit.DataCaptureView.forContext(context);
-view.connectToElement(htmlElement);
-```
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```js
-const overlay = Scandit.BarcodeCaptureOverlay.withBarcodeCaptureForView(
- barcodeCapture,
- view
-);
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [BarcodeCapture.isEnabled](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to _false_.
-
-The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/cordova/barcode-generator.md
deleted file mode 100644
index 84867617..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/barcode-generator.md
+++ /dev/null
@@ -1,93 +0,0 @@
----
-description: "The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes. "
-
-displayed_sidebar: cordovaSidebar
-sidebar_label: Get Started
-pagination_prev: null
-pagination_next: null
----
-
-# Barcode Generator
-
-The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes.
-
-The Barcode Generator supports the following formats:
-
-* Code 39
-* Code 128
-* EAN 13
-* UPCA
-* ITF
-* QR
-* DataMatrix
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/cordova/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Generating Barcodes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`BarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.BarcodeGeneratorBuilder), and use the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) for the symbology you are interested in, in this example Code 128.
-
-You can configure the colors used in the resulting image:
-
-```javascript
-const DataCaptureContext = Scandit.DataCaptureContext.forLicenseKey(licenseKey);
-const builder = new Scandit.BarcodeGenerator.Code128BarcodeGeneratorBuilder(dataCaptureContext)
- .withBackgroundColor(Color.WHITE)
- .withForegroundColor(Color.BLACK);
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```javascript
-try {
- const generator = await builder.build();
- const image = await generator.generate(dataString, 200);
- // Use the image
-} catch (error) {
- // Handle the error
- console.error(error);
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-generator.html) for more information.
-
-## Generating QR Codes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`QRCodeBarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder) using the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) specific for QR codes.
-
-You can configure the colors used in the resulting image, and the two settings that can be configured for QR codes: [`QRCodeBarcodeGeneratorBuilder.errorCorrectionLevel`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithErrorCorrectionLevel) and [`QRCodeBarcodeGeneratorBuilder.versionNumber`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithVersionNumber).
-
-```javascript
-const DataCaptureContext = Scandit.DataCaptureContext.forLicenseKey(licenseKey);
-const builder = new Scandit.BarcodeGenerator.QrCodeBarcodeGeneratorBuilder(dataCaptureContext)
- .withBackgroundColor(Color.WHITE)
- .withForegroundColor(Color.BLACK)
- .withErrorCorrectionLevel(Scandit.QrCodeErrorCorrectionLevel.MEDIUM)
- .withVersionNumber(4);
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```javascript
-try {
- const generator = await builder.build();
- const image = await generator.generate(dataString, 200);
- // Use the image
-} catch (error) {
- // Handle the error
- console.error(error);
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-generator.html) for more information.
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/barcode-selection/get-started.md
deleted file mode 100644
index 73582e43..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/barcode-selection/get-started.md
+++ /dev/null
@@ -1,156 +0,0 @@
----
-description: "In this guide you will learn step by step how to add barcode selection to your application. The general step are: "
-
-sidebar_position: 2
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/cordova/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-In this guide you will learn step by step how to add barcode selection to your application. The general step are:
-
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode selection settings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and choose the right configuration.
-- Create a new [barcode selection mode](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance and initialize it with the settings created above.
-- Register a [barcode selection listener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/cordova/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-selection-basic-overlay.html#class-scandit.datacapture.barcode.selection.ui.BarcodeSelectionBasicOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = Scandit.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Selection Behavior
-
-_Symbologies_
-
-Barcode selection is orchestrated by the [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) [data capture mode](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). It is configured through [BarcodeSelectionSettings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) that will get informed whenever new codes have been selected.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```js
-const settings = new Scandit.BarcodeSelectionSettings();
-settings.enableSymbologies([
- Scandit.Symbology.Code128,
- Scandit.Symbology.EAN8,
- Scandit.Symbology.UPCE,
- Scandit.Symbology.EAN13UPCA,
-]);
-```
-
-_Selection Types_
-
-The behavior of Barcode Selection can be changed by using a different [selection
-type](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-type.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionType). This defines the method used by [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) to select codes. Currently there are two types.
-
-If you want the user to select barcodes with a tap, then use
-[BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection). This selection type can automatically freeze the camera preview to make the selection easier. You can configure the freezing behavior via [BarcodeSelectionTapSelection.freezeBehavior](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.FreezeBehavior). With
-[BarcodeSelectionTapSelection.tapBehavior](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.TapBehavior) you can decide if a second tap on a barcode means that the barcode is unselected or if it is selected another time (increasing the counter).
-
-:::note
-Using [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection) requires the MatrixScan add-on.
-:::
-
-If you want the selection to happen automatically based on where the user points the camera, then use [BarcodeSelectionAimerSelection](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-aimer-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAimerSelection). It is possible to choose between two different [selection strategies](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-strategy.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionStrategy). Use [BarcodeSelectionAutoSelectionStrategy](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAutoSelectionStrategy) if you want the barcodes to be selected automatically when aiming at them as soon as the intention is understood by our internal algorithms. Use [BarcodeSelectionManualSelectionStrategy](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionManualSelectionStrategy) if you want the barcodes to be selected when aiming at them and tapping anywhere on the screen.
-
-_Single Barcode Auto Detection_
-
-If you want to automatically select a barcode when it is the only one on screen, turn on [BarcodeSelectionSettings.singleBarcodeAutoDetection](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-settings.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionSettings.SingleBarcodeAutoDetection).
-
-_Creating the mode_
-
-Next, create a [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance with the settings initialized in the previous step:
-
-```js
-const barcodeSelection = new Scandit.BarcodeSelection(settings);
-context.addMode(barcodeSelection);
-```
-
-## Register the Barcode Selection Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) through [BarcodeSelection.addListener()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection.html#method-scandit.datacapture.barcode.selection.BarcodeSelection.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) interface. For example:
-
-```js
-const listener = {
- didUpdateSelection: (barcodeSelection, session) => {
- const newlySelectedBarcodes = session.newlySelectedBarcodes;
- // Do something with the barcodes
- },
-};
-```
-
-Then add the listener:
-
-```js
-barcodeSelection.addListener(listener);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription)
-key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the
-recommended settings and create the camera from it:
-
-```js
-const cameraSettings = Scandit.BarcodeSelection.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Scandit.Camera.default;
-
-if (camera) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to
-[DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of
-[FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-## Disabling Barcode Selection
-
-To disable barcode selection, for instance when the selection is complete, set [BarcodeSelection.isEnabled](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelection.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/barcode-selection/intro.md
deleted file mode 100644
index 33336d79..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/barcode-selection/intro.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-description: "Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# About Barcode Selection
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/cordova/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes.
-
-Barcode Selection provides two key capabilities:
-
-- **Aim to Select** allows users to select one code at a time. This is especially useful for one-handed operation.
-- **Tap to Select** is a quick way for users to select several codes from the same view. Selection is done by tapping on highlighted barcodes in the live camera preview or on a frozen screen.
-
-:::warning
-Barcode Selection does not support handling of duplicate codes. If a code appears twice in the visible preview both instances will be marked as selected even if only one of them was selected.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/cordova/barcode-symbologies.mdx
deleted file mode 100644
index 75d3810a..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/cordova/batch-scanning.md
deleted file mode 100644
index fb990bd8..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/batch-scanning.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "Batch scanning enables you to capture and interact with multiple barcodes simultaneously, making it ideal for inventory management, retail, and logistics applications."
-toc_max_heading_level: 4
-
-
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Batch Scanning
-
-import BatchScanning from '../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/cordova/core-concepts.mdx
deleted file mode 100644
index 81c9f5d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/cordova/extension-codes.mdx
deleted file mode 100644
index 2ab9349a..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/cordova/features-by-framework.mdx
deleted file mode 100644
index 5f33c395..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/cordova/id-capture/advanced.md
deleted file mode 100644
index 4f5ac290..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/id-capture/advanced.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-description: "There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features. "
-
-sidebar_position: 4
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/cordova/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-```js
-// Default value:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_ONLY);
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_AND_IMAGES);
-
-// Only images are anonymized:
-settings.setAnyonymizationMode(IdAnonymizationMode.IMAGES_ONLY);
-
-// No anonymization:
-settings.setAnyonymizationMode(IdAnonymizationMode.NONE);
-```
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object.
-
-:::tip
-Face and Cropped Document can be extracted only by either `SingleSideScanner` with `visualInspectionZone` enabled or by `FullDocumentScanner`.
-In the case of `FullDocumentScanner`, if the front & the back side of a document are scanned, Cropped Document and Full Frame are returned for both sides.
-:::
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-```js
-// Holder's picture as printed on a document:
-settings.setShouldPassImageTypeToResult(ImageType.FACE);
-
-// Cropped image of a document:
-settings.setShouldPassImageTypeToResult(ImageType.CROPPED_DOCUMENT);
-
-// Full camera frame that contains the document:
-settings.setShouldPassImageTypeToResult(ImageType.FULL_FRAME);
-```
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `CapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `CapturedId` object for a US Driver License will contain different fields than a `CapturedId` object for a Passport.
-
-For a rejected document, a [RejectionReason](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed automatically using the following settings:
-
-* [IdCaptureSettings.rejectForgedAamvaBarcodes](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectForgedAamvaBarcodes): Automatically rejects documents whose AAMVA barcode fails authenticity validation.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/id-capture/get-started.md
deleted file mode 100644
index 134200a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/id-capture/get-started.md
+++ /dev/null
@@ -1,202 +0,0 @@
----
-description: "This page will guide you through the process of adding ID Capture to your Cordova application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards. "
-
-sidebar_position: 2
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-This page will guide you through the process of adding ID Capture to your Cordova application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Accessing a Camera
-- Configuring the Capture Settings
-- Implementing a Listener to Receive Scan Results
-- Setting up the Capture View and Overlay
-- Starting the Capture Process
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](/sdks/cordova/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import IdModuleOverview from '../../../partials/get-started/_id-module-overview-no-eu-dl.mdx';
-
-
-
-To learn more about specifying native dependencies on Cordova and the framework tag, take a look at the official [Cordova documentation](https://cordova.apache.org/docs/en/latest/plugin%5Fref/spec.html#framework).
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = Scandit.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Add the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/cordova/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```js
-const camera = Scandit.Camera.default;
-context.setFrameSource(camera);
-
-const cameraSettings = Scandit.IdCapture.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-if (camera != null) {
- camera.applySettings(cameraSettings);
-}
-```
-
-## Create ID Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type and the accepted and rejected documents.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) for all available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-```ts
-const settings = new Scandit.IdCaptureSettings();
-
-// Documents from any region:
-settings.acceptedDocuments.push(new Scandit.IdCard(Scandit.Region.AnyRegion));
-// Only documents issued by a specific country:
-settings.acceptedDocuments.push(new Scandit.IdCard(Scandit.Region.Germany));
-// Regional documents:
-settings.acceptedDocuments.push(new Scandit.RegionSpecific.ApecBusinessTravelCard());
-// Reject passports from certain regions:
-settings.rejectedDocuments.push(new Scandit.Passport(Scandit.Region.Cuba));
-
-// To scan only one-sided documents and a given zone:
-settings.scannerType = new Scandit.SingleSideScanner({ barcode: true });
-// or
-settings.scannerType = new Scandit.SingleSideScanner({ machineReadableZone: true });
-// or
-settings.scannerType = new Scandit.SingleSideScanner({ visualInspectionZone: true });
-
-// To scan both sides of the document:
-settings.scannerType = new Scandit.FullDocumentScanner();
-```
-
-Create a new ID Capture mode with the chosen settings:
-
-```ts
-const idCapture = new Scandit.IdCapture(settings);
-context.addMode(idCapture);
-```
-
-## Implement the Listener
-
-To receive scan results, implement [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener). The listener provides two callbacks: `onIdCaptured` and `onIdRejected`.
-
-```ts
-idCapture.addListener({
- onIdCaptured: (data) => {
- // Success! Handle extracted data here.
- },
- onIdRejected: (data, reason) => {
- // Something went wrong. Inspect the reason to determine the follow-up action.
- }
-});
-```
-
-### Handling Success
-
-Capture results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-For more specific information, use its non-null result properties (e.g. [CapturedId.barcode](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/captured-id.html#property-scandit.datacapture.id.CapturedId.Barcode)).
-
-On a successful scan you may read the extracted data from `CapturedId`:
-
-```ts
-onIdCaptured: (data) => {
- const fullName = data.fullName;
- const dateOfBirth = data.dateOfBirth;
- const dateOfExpiry = data.dateOfExpiry;
- const documentNumber = data.documentNumber;
-
- // Process data:
- processData(fullName, dateOfBirth, dateOfExpiry, documentNumber);
-}
-```
-
-:::tip
-All data fields are optional, so it's important to verify whether the required information is present if some of the accepted documents may not contain certain data.
-:::
-
-### Handling Rejection
-
-The ID scanning process may fail for various reasons. Start from inspecting [RejectionReason](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) to understand the cause.
-
-You may wish to implement the follow-up action based on the reason of failure:
-
-```ts
-onIdRejected: (data, reason) => {
- if (reason === Scandit.RejectionReason.Timeout) {
- // Ask the user to retry, or offer alternative input method.
- } else if (reason === Scandit.RejectionReason.DocumentExpired) {
- // Ask the user to provide alternative document.
- } else if (reason === Scandit.RejectionReason.HolderUnderage) {
- // Reject the process.
- }
-}
-```
-
-## Set up Capture View and Overlay
-
-When using the built-in camera as [frameSource](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#interface-scandit.datacapture.core.IFrameSource), you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-const view = Scandit.DataCaptureView.forContext(context);
-view.connectToElement(htmlElement);
-```
-
-Then create an instance of [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) attached to the view:
-
-```js
-let overlay = Scandit.IdCaptureOverlay.withTextCaptureForView(
- idCapture,
- dataCaptureView
-);
-```
-
-The overlay chooses the displayed UI automatically, based on the selected [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings).
-
-If you prefer to show a different UI or to temporarily hide it, set the appropriate [IdCaptureOverlay.idLayout](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/ui/id-capture-overlay.html#property-scandit.datacapture.id.ui.IdCaptureOverlay.IdLayout).
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-```js
-camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-And this is it. You can now scan documents.
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/id-capture/intro.md
deleted file mode 100644
index d5e6fadd..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/id-capture/intro.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx'; "
-
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/cordova/id-capture/supported-documents.md
deleted file mode 100644
index e90c2b31..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/id-capture/supported-documents.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "Scandit ID Capture provides various types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type. "
-
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: cordova
-keywords:
- - cordova
----
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/cordova/label-capture/advanced.md
deleted file mode 100644
index 7b23901a..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/label-capture/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: cordovaSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/label-capture/get-started.md
deleted file mode 100644
index 7b23901a..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/label-capture/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: cordovaSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/label-capture/intro.md
deleted file mode 100644
index 7b23901a..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/label-capture/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: cordovaSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-ar/get-started.md
deleted file mode 100644
index 7b23901a..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: cordovaSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-ar/intro.md
deleted file mode 100644
index 7b23901a..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: cordovaSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/advanced.md
deleted file mode 100644
index 7b532457..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-description: "MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Advanced Configurations
-
-MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs.
-
-## Scanning Against A List
-
-There is a function to set a list of expected barcodes if you are scanning against a manifest or item list. If this is used, a progress bar is added to the UI, so you can keep track of the process while scanning.
-
-When scanning against a list, the UI will also show red icons to mark scanned barcodes that aren’t present on the list.
-
-```js
-const barcodeCountCaptureListListener = {
- didUpdateSession: (barcodeCountCaptureList, session) => {
- // Handling the session
- },
-};
-
-const targetBarcodes = [TargetBarcode.create('data', 1)];
-const barcodeCountCaptureList = BarcodeCountCaptureList.create(
- barcodeCountCaptureListListener,
- targetBarcodes
-);
-barcodeCount.setBarcodeCountCaptureList(barcodeCountCaptureList);
-```
-
-## Clustering
-
-import Clustering from '../../../partials/count/_clustering.mdx'
-
-
-
-## Tote Mapping
-
-import Totes from '../../../partials/count/_tote-mapping.mdx'
-
-
-
-## Strap Mode
-
-It can be difficult to reach the shutter button if the smart device is attached to the user’s wrist by a strap or similar. In this instance, you can enable a floating shutter button that can be positioned by the end user in a more ergonomically suitable position.
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowFloatingShutterButton = true;
- }
- }}
- />
-);
-```
-
-## Filtering
-
-If you have several types of barcodes on your label/package, you may want to scan only one of them.
-
-In this case, you can filter the others out. This can be done by symbology, symbol count, or setting a regex.
-
-For example, you might want to scan only Code 128 barcodes and no PDF417 ones.
-
-```js
-const settings = new BarcodeCountSettings();
-barcodeCountSettings.enableSymbologies(enabledSymbologies);
-
-const excludedSymbologies = [Symbology.PDF417];
-const filterSettings = settings.filterSettings;
-filterSettings.excludedSymbologies = excludedSymbologies;
-```
-
-Or, you want to exclude all the barcodes starting with 4 numbers:
-
-```js
-const settings = new BarcodeCountSettings();
-
-const filterSettings = settings.filterSettings;
-filterSettings.excludedCodesRegex = '^1234.*';
-```
-
-By default the filters applied to the relevant barcodes are transparent, but you can use [`BarcodeFilterHighlightSettings`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-filter-highlight-settings.html#barcode-filter-highlight-settings) to change the color and level of transparency.
-
-
-
-## Clear Screen Button
-
-There are situations in which the user may find it helpful to clean up their screen (i.e. clear all the AR overlays) but keep the list of barcodes scanned.
-
-If this is the case, you can enable the “Clear screen” button.
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowClearHighlightsButton = true;
- }
- }}
- />
-);
-```
-
-## Customize Overlay Colors
-
-MatrixScan Count comes with recommended and user-tested AR overlays. However, if you wish to customize the overlay colors, once the overlay has been added, you can conform to the [BarcodeCountViewListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view-listener.html#interface-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener) interface. The methods [BarcodeCountViewListener.brushForRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForRecognizedBarcode) and [BarcodeCountViewListener.brushForUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForUnrecognizedBarcode) are invoked every time a new recognized or unrecognized barcode appears. These can be used to set a brush that will be used to highlight that specific barcode in the overlay. Keep in mind that these methods are relevant only when using the style [BarcodeCountViewStyle.Dot](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view.html#value-scandit.datacapture.barcode.count.ui.BarcodeCountViewStyle.Dot).
-
-```js
-const viewListener = {
- brushForRecognizedBarcode(view, trackedBarcode) {
- // Return a custom brush
- },
-
- brushForUnrecognizedBarcode(view, trackedBarcode) {
- // Return a custom brush
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.listener = viewListener;
- }
- }}
- />
-);
-```
-
-## Notifications
-
-If you want to be notified when a user taps on an overlay, you need to implement the[BarcodeCountViewListener.didTapRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnRecognizedBarcodeTapped) and [BarcodeCountViewListener.didTapUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped) methods.
-
-```js
-const viewListener = {
- didTapRecognizedBarcode: (view, trackedBarcode) => {
- console.log(
- `Tapped recognized barcode with data ${trackedBarcode.barcode.data}`
- );
- },
- didTapUnrecognizedBarcode: (view, trackedBarcode) => {
- console.log(
- `Tapped unrecognized barcode with data ${trackedBarcode.barcode.data}`
- );
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.listener = viewListener;
- }
- }}
- />
-);
-```
-
-## Disable UI Elements
-
-The UI is an integral part of MatrixScan Count and we do not recommend that you use it without it.
-However, if you wish to disable UI elements you can do it as follows.
-
-Disable buttons:
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowListButton = false;
- view.shouldShowExitButton = false;
- view.shouldShowShutterButton = false;
- }
- }}
- />
-);
-```
-
-Disable feedback and hints:
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowUserGuidanceView = false;
- view.shouldShowHints = false;
- }
- }}
- />
-);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/get-started.md
deleted file mode 100644
index 87e2f163..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,162 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Count to your application. "
-
-sidebar_position: 2
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Count to your application.
-
-The general steps are:
-
-1. Create a new Data Capture Context instance
-2. Configure the Barcode Count Mode
-3. Obtain camera instance and set frame source used
-4. Register the listener to be informed when scanned phase is over
-5. Set capture view and AR overlays
-6. Set up the camera so that it switches on when you are in scanning view
-7. Store and retrieve scanned barcodes
-8. Reset Barcode Count mode
-9. List and Exit callbacks
-
-## Create A New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure The Barcode Count Mode
-
-The main entry point for the Barcode Count Mode is the [BarcodeCount](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) object. It is configured through [BarcodeCountSettings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count-settings.html#class-scandit.datacapture.barcode.count.BarcodeCountSettings) and allows you to register one or more listeners that are informed whenever a scan phase has finished.
-
-For this tutorial, we will set up Barcode Count for tracking EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```js
-const settings = new BarcodeCountSettings();
-settings.enableSymbologies([Symbology.EAN13UPCA]);
-```
-
-If you are sure that your environment will only have unique barcodes (i.e. no duplicated values), you can also enable [BarcodeCountSettings.expectsOnlyUniqueBarcodes](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count-settings.html#property-scandit.datacapture.barcode.count.BarcodeCountSettings.ExpectsOnlyUniqueBarcodes). This option improves scanning performance as long as you are sure that no duplicates will be present. Next, create a [BarcodeCount](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) instance with the [Data Capture Context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) and the settings initialized in the previous step:
-
-```js
-const barcodeCount = new BarcodeCount(settings);
-context.addMode(barcodeCount);
-```
-
-## Obtain Camera Instance And Set Frame Source Used
-
-Our recommended camera settings should be used to achieve the best performance and user experience. The following couple of lines show how to get the recommended settings for MatrixScan Count and create the camera from it:
-
-```js
-const cameraSettings = new CameraSettings();
-
-const camera = Camera.default;
-camera.applySettings(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [BarcodeCountListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface and register the listener.
-
-[BarcodeCountListener.didScan()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan) is called when the scan phase has finished and results can be retrieved from [BarcodeCountSession](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession).
-
-## Set Capture View And AR Overlays
-
-MatrixScan Count’s built-in AR user interface includes buttons and overlays that guide the user through the capturing process. By adding a
-[BarcodeCountView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) to your view hierarchy:
-
-```js
-const barcodeCountViewComponent = (
-
-);
-```
-
-## Set Up The Camera So That It Switches On When You Are In Scanning View
-
-The camera is not automatically turned on when you are in a scanning view. You need to set up the camera so that it switches on when needed and it switches off when not needed anymore. Similarly [BarcodeCount](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) should also be enabled and disabled. For instance, you should switch off the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is not visible anymore (including when the app goes in the background), similarly you want to switch on the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is visible (including when the app goes to the foreground). One way to achieve this is the following:
-
-```js
-componentDidMount() {
-handleAppStateChangeSubscription = AppState.addEventListener('change', handleAppStateChange);
-}
-
-componentWillUnmount() {
-handleAppStateChangeSubscription.remove();
-}
-
-handleAppStateChange = async (nextAppState) => {
-if (nextAppState.match(/inactive|background/)) {
-camera.switchToDesiredState(FrameSourceState.Off);
-} else {
-camera.switchToDesiredState(FrameSourceState.On);
-}
-}
-```
-
-## Store And Retrieve Scanned Barcodes
-
-The values captured as part of the scanning process are part of the [session](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession), and the session is not accessible outside [BarcodeCountListener.didScan()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan). Therefore, we recommend that you store the values to present a list, for example when the user taps the list icon. To do this, make a copy of [BarcodeCountSession.recognizedBarcodes](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count-session.html#property-scandit.datacapture.barcode.count.BarcodeCountSession.RecognizedBarcodes):
-
-```js
-const listener = {
- didScan: (barcodeCapture, session, getFrameData) => {
- const allRecognizedBarcodes = session.recognizedBarcodes;
-
- // Handle barcodes
- },
-};
-
-barcodeCount.addListener(listener);
-```
-
-## Reset Barcode Count Mode
-
-When the scanning process is over, you need to reset the mode to make it ready for the next process. This clears the list of barcodes scanned and all the AR overlays.
-
-To reset Barcode Count’s scanning process, you need to call the [BarcodeCount.reset()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-count.html#method-scandit.datacapture.barcode.count.BarcodeCount.Reset) method.
-
-```js
-barcodeCount.reset();
-```
-
-## List And Exit Callbacks
-
-The UI includes two icons (buttons) named “List” and “Exit”. The SDK provides the callbacks so you can add the desired action when those icons are tapped by the user.
-
-```js
-const viewUiListener = {
- didTapListButton: (view) => {
- // Show the current progress but the order is not completed
- },
-
- didTapExitButton: (view) => {
- // The order is completed
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.uiListener = viewUiListener;
- }
- }}
- />
-);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/intro.md
deleted file mode 100644
index 368bead8..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-count/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# About MatrixScan Count
-
-import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/advanced.md
deleted file mode 100644
index 47414652..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-description: "MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## Set up a listener on the BarcodeFind mode
-
-You may want more fine-grained knowledge over the different events happening during the life of the BarcodeFind mode, such as when the search starts, pauses and stops. To do this, you can directly register a [BarcodeFindListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself.
-
-Be aware that these listeners will be called from a background thread.
-
-```js
-mode.addListener({
- didStartSearch() {
- // The mode was started
- },
-
- didPauseSearch(foundItems: BarcodeFindItem[]) {
- // The mode was paused
- },
-
- didStopSearch(foundItems: BarcodeFindItem[]) {
- // The mode was stopped after the finish button was clicked
- },
-});
-```
-
-## UI configuration
-
-The [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) will by default show a set of UI elements, which can be optionally hidden:
-
-- A play/pause button
-- A finish button
-- A searched items carousel
-- Guidance hints
-
-There is also a progress bar but this is hidden by default.
-
-Each of these elements can be shown or hidden at will.
-
-```js
-barcodeFindView.shouldShowCarousel = false;
-barcodeFindView.shouldShowProgressBar = true;
-// …
-```
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/get-started.md
deleted file mode 100644
index 263f0db3..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,120 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements: "
-
-sidebar_position: 2
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-The general steps are:
-
-1. Create a new Data Capture Context instance.
-2. Configure the Barcode Find Mode.
-3. Setup the BarcodeFindView.
-4. Register a listener to be notified with found items
-5. Start searching
-
-## Create a new Data Capture Context instance
-
-The first step to add find capabilities to your application is to create a new [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const dataCaptureContext = DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Find Mode
-
-The main entry point for the Barcode Find Mode is the [BarcodeFind](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind) object. You can configure the supported Symbologies through its [BarcodeFindSettings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight (e.g. a list of products).
-
-For this tutorial, we will set up Barcode Find for tracking EAN13 codes. Change this to the correct symbologies for your use case (e.g. Code 128, Code 39…).
-
-First create the settings:
-
-```js
-const settings = BarcodeFindSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-Then you have to create the list of items that will be actively searched for.
-
-In this tutorial, let’s look up two items based on their EAN13 codes. We will attach to the first item some optional information that can be used by the BarcodeFindView to display extra information.
-
-```js
-const items = [
-new BarcodeFindItem(new BarcodeFindItemSearchOptions("9783598215438"),
-new BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)),
-new BarcodeFindItem(new BarcodeFindItemSearchOptions("9783598215414"), null) // Item information is optional, used for display only
-]
-```
-
-Create the mode with the previously created settings and set the items:
-
-```js
-const mode = new BarcodeFind(settings);
-mode.setItemList(items);
-```
-
-## Setup the BarcodeFindView
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView), the scanning interface (camera preview and searching UI elements) will be added automatically to your application.
-
-The BarcodeFindView appearance can be customized through [BarcodeFindViewSettings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings):
-
-- Colors of dots in augmented reality overlay
-- Enable sound and haptic alerts
-
-```js
-const viewSettings = new BarcodeFindViewSettings();
-```
-
-Construct a new BarcodeFindView. The BarcodeFindView is automatically added to the provided parent view.
-
-```js
-let barcodeFind;
- {
- barcodeFindView = view;
- // Handle the view as needed, for example
- barcodeFindView.startSearching();
- }}
-> ;
-```
-
-## Register a listener to be notified with found items
-
-The BarcodeFindView displays next to its shutter button a handy “finish” button. Register a [BarcodeFindViewUiListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-find-view.html#interface-scandit.datacapture.barcode.find.ui.IBarcodeFindViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```js
-barcodeFindView.barcodeFindViewUiListener = {
- didTapFinishButton(foundItems: BarcodeFindItem[]) {
- // This method is called when the user presses the
- // finish button. It returns the list of all items that were found during
- // the session.
- },
-};
-```
-
-## Start searching
-
-As soon as everything is set up, control the [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) to start the search.
-
-```js
-barcodeFindView.startSearching();
-```
-
-This is the equivalent of pressing the “Play” button programmatically. It will start the search process, turn on the camera and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/intro.md
deleted file mode 100644
index d9a1514e..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-find/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/advanced.md
deleted file mode 100644
index c5cc1cc0..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Advanced Configurations
-
-MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.
-
-## BarcodePick Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodePick` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodePickListener`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-pick-listener.html#interface-scandit.datacapture.barcode.pick.IBarcodePickListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```javascript
-mode.addListener({
- onObservationStarted() {
- // The mode was started
- },
-
- onObservationStopped(foundItems: BarcodeFindItem[]) {
- // The mode was stopped after the finish button was clicked
- },
-});
-```
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/get-started.md
deleted file mode 100644
index 3d040269..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,119 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements: "
-
-sidebar_position: 2
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements:
-
-- Barcode Pick: The data capture mode that is used for scan and pick functionality.
-- A Barcode Pick View: The pre-built UI elements used to highlight items to be picked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Pick Mode
-- Setup the Barcode Pick View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```javascript
-const dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Pick Mode
-
-The main entry point for the Barcode Pick Mode is the `BarcodePick` object. You can configure the supported Symbologies through its [`BarcodePickSettings`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-pick-settings.html), and set up the list of items that you want MatrixScan Pick to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```javascript
-const settings = BarcodePickSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-Then you have to create the list of items that will be picked and quantity to be picked for each item.
-
-```javascript
-const items = [
- new BarcodePickProduct(new BarcodePickProductIdentifier("9783598215438"),
- new BarcodePickProductQuantityToPick(3),
- new BarcodePickProduct(new BarcodePickProductIdentifier("9783598215414"), new BarcodePickProductQuantityToPick(3)
-]
-```
-
-Create the mode with the previously created settings:
-
-```javascript
-const mode = new BarcodePick(settings);
-```
-
-## Setup the `BarcodePickView`
-
-MatrixScan Pick’s built-in AR user interface includes buttons and overlays that guide the user through the scan and pick process. By adding a [`BarcodePickView`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-pick-view.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickView), the scanning interface is added automatically to your application.
-
-The `BarcodePickView` appearance can be customized through [`BarcodePickViewSettings`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-pick-view-settings.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickViewSettings) to match your application’s look and feel. The following settings can be customized:
-
-* Colors of dots in augmented reality overlay
-* Enable sound and haptic alerts
-* Guidelines text
-* Showing hints
-* Finish button
-* Pause button
-* Zoom button
-* Loading Dialog
-
-```javascript
-const viewSettings = new BarcodePickViewSettings();
-// ...
-```
-
-Construct a new `BarcodePickView`. The `BarcodePickView` is automatically added to the provided parent view.
-
-```javascript
-const BarcodePickView = BarcodePickView.forModeWithViewSettings(dataCaptureContext, BarcodePick, viewSettings);
-```
-
-## Register the Listener
-
-The `BarcodePickView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodePickViewUiListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-pick-view.html#interface-scandit.datacapture.barcode.pick.ui.IBarcodePickViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```javascript
-BarcodePickView.BarcodePickViewUiListener = {
- didTapFinishButton(foundItems: BarcodePickProduct[]) {
- // This method is called when the user presses the
- // finish button. It returns the list of all items that were found during
- // the session.
- }
-};
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `BarcodePickView.start()`.
-
-```javascript
-BarcodePickView.start();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/intro.md
deleted file mode 100644
index 039a7499..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-description: "MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# About MatrixScan Pick
-
-MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code.
-
-MatrixScan Pick is implemented through functionality provided by [`BarcodePick`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-pick.html).
-
-## UI Overview
-
-* MatrixScan Pick is inspired by the familiar paradigm of a camera, including a shutter button that the user operates in order start and pause the scanning view. The Finish button is used at any time to exit the workflow.
-* It highlights items with obvious and colorful visual dots on screen.
-* When paused, MatrixScan Pick freezes the display at the last view, even if the device is moved. The Play button transitions back to the live view.
-* Textual guidance is displayed from the beginning of the session and as the workflow progresses, informing of the user of changes in item status (i.e. Detected, Ignored, To-Pick, or Picked).
-* Status icons can be defined to provide further information to users for a given barcode. In the live view, the icons are displayed but not tappable. In the frozen view, the status icons can be tapped and expanded to provide additional textual information.
-* The Quick Start Guide takes you through the process to install the full UI. However, you can then customize it by choosing to remove any elements on the screen except for the AR overlays. This allows you to create custom UIs suitable for your own workflows.
-
-
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../barcode-symbologies.mdx) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/advanced.md
deleted file mode 100644
index 9d7e3e78..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/advanced.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-description: "Guide to integrating and configuring advanced AR overlays using the Scandit Cordova SDK."
-sidebar_position: 3
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Adding AR Overlays
-
-## Prerequisites
-
-To proceed, you need to setup a project that uses MatrixScan first, check out [this guide](./get-started.md) (you can ignore the bottom section about the visualization of tracked barcodes using [BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay)).
-
-## Getting started
-
-To add advanced AR overlays to a Data Capture View you can take advantage of the [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, which provides a ready-to-use implementation for view-based AR overlays.
-
-### Using BarcodeBatchAdvancedOverlay
-
-As mentioned above, the advanced overlay combined with its [listener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) offers an easy way of adding augmentations to your [DataCaptureView](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView). In this guide we will add a view above each barcode showing its content.
-
-First of all, create a new instance of [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) and add it to the [DataCaptureView](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-
-```js
-const overlay =
- Scandit.BarcodeBatchAdvancedOverlay.withBarcodeBatchForView(
- barcodeBatch,
- view
- );
-```
-
-At this point, you have two options.
-
-- Add a [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-- Use the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) to specify the view, anchor and offset for each barcode.
-
-:::note
-The second way will take priority over the first one, which means that if a view for a barcode has been set using [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) won’t be invoked for that specific barcode.
-:::
-
-Using [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener)
-
-- You need to implement [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener). This interface’s methods are invoked every time a barcode is newly tracked.
-- [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning _null_ will show no view.
-- [BarcodeBatchAdvancedOverlayListener.anchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through [Anchor](https://docs.scandit.com/data-capture-sdk/cordova/core/api/anchor.html#enum-scandit.datacapture.core.Anchor). Be aware that it anchors the
- view’s center to the anchor point. To achieve anchoring the top of the view or the bottom etc. you will have to set an offset as explained in the next point.
-- [BarcodeBatchAdvancedOverlayListener.offsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [PointWithUnit](https://docs.scandit.com/data-capture-sdk/cordova/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```js
-overlay.listener = {
-viewForTrackedBarcode: (overlay, trackedBarcode) => {
-// Create and return the view you want to show for this tracked barcode. You can also return null, to have no view for
-this barcode.
-let element = document.createElement('span');
-element.innerText = trackedBarcode.barcode.data;
-element.style.backgroundColor = '#FFFFFFFF';
-return Scandit.TrackedBarcodeView.withHTMLElement(element, null);
-},
-
-anchorForTrackedBarcode: (overlay, trackedBarcode) => {
-// As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode quadrilateral.
-// Use the function 'offsetForTrackedBarcode' below to adjust the position of the view by providing an offset.
-return Scandit.Anchor.TopCenter;
-},
-
-offsetForTrackedBarcode: (overlay, trackedBarcode) => {
-// This is the offset that will be applied to the view.
-// You can use .fraction to give a measure relative to the view itself, the sdk will take care of transforming this into pixel size.
-// We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by half of the view's height.
-return new Scandit.PointWithUnit(
-new Scandit.NumberWithUnit(0, Scandit.MeasureUnit.Fraction),
-new Scandit.NumberWithUnit(-1, Scandit.MeasureUnit.Fraction),
-);
-},
-};
-```
-
-Using the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay)
-
-The function [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) gives you access to a [session](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession), which contains all added, updated and removed tracked barcodes. From here you can create the view you
-want to display, and then call [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), [BarcodeBatchAdvancedOverlay.setAnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode) and [BarcodeBatchAdvancedOverlay.setOffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```js
-didUpdateSession: (barcodeBatch, session) => {
- session.addedTrackedBarcodes.map((trackedBarcode) => {
- let element = document.createElement('span');
- element.innerText = trackedBarcode.barcode.data;
- element.style.backgroundColor = '#FFFFFFFF';
- let trackedBarcodeView = Scandit.TrackedBarcodeView.withHTMLElement(
- element,
- null
- );
-
- window.overlay.setViewForTrackedBarcode(trackedBarcodeView, trackedBarcode);
- window.overlay.setAnchorForTrackedBarcode(
- Scandit.Anchor.TopCenter,
- trackedBarcode
- );
- window.overlay.setOffsetForTrackedBarcode(
- new Scandit.PointWithUnit(
- new Scandit.NumberWithUnit(0, Scandit.MeasureUnit.Fraction),
- new Scandit.NumberWithUnit(-1, Scandit.MeasureUnit.Fraction)
- ),
- trackedBarcode
- );
- });
-};
-```
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/get-started.md
deleted file mode 100644
index 38e17ab5..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/get-started.md
+++ /dev/null
@@ -1,179 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan to your application. "
-
-sidebar_position: 2
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Include the ScanditBarcodeCapture library and its dependencies to your project, if any.
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext), initialized with your license key.
-- Create a [barcode tracking settings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) instance where you enable the [barcode symbologies](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology) you want to read in your application.
-- Create a new [barcode tracking](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object and initialize it with the settings created above.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/cordova/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context previously created.
-- Create a new [data capture view](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) and add a [basic overlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) instance to it for visual feedback.
-- Register an [overlay listener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) and implement [BrushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode), which is called whenever a new tracked barcode appears.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](/sdks/cordova/add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = Scandit.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [BarcodeBatchSettings](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) that will get informed whenever a new frame has been processed.
-
-Most of the times, you will not need to implement a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener), instead you will add a [BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and implement a [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-
-For this tutorial, we will setup Barcode Batch for tracking QR codes.
-
-```js
-const settings = new Scandit.BarcodeBatchSettings();
-settings.enableSymbology(Scandit.Symbology.QR, true);
-```
-
-Next, create a [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance with the data capture context and the settings initialized in the previous steps:
-
-```js
-const barcodeBatch = new Scandit.BarcodeBatch(settings);
-context.addMode(barcodeBatch);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription)
-key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-const cameraSettings = Scandit.BarcodeBatch.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Scandit.Camera.default;
-if (camera != null) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-const view = Scandit.DataCaptureView.forContext(context);
-view.connectToElement(htmlElement);
-```
-
-To visualize the results of Barcode Batch, first you need to add the following [overlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay):
-
-```js
-const overlay = Scandit.BarcodeBatchBasicOverlay.withBarcodeBatchForView(
- barcodeBatch,
- view
-);
-```
-
-Once the overlay has been added, you should implement the [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) interface. The method
-[BarcodeBatchBasicOverlayListener.brushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a [brush](https://docs.scandit.com/data-capture-sdk/cordova/core/api/ui/brush.html#class-scandit.datacapture.core.ui.Brush) that will be used to highlight that specific barcode in the [overlay](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay).
-
-```js
-overlay.listener = {
- brushForTrackedBarcode: (overlay, trackedBarcode) => {
- // Return a custom Brush based on the tracked barcode.
- },
-};
-```
-
-If you would like to make the highlights tappable, you need to implement the [BarcodeBatchBasicOverlayListener.didTapTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped) method.
-
-```js
-overlay.listener = {
- didTapTrackedBarcode: (overlay, trackedBarcode) => {
- // A tracked barcode was tapped.
- },
-};
-```
-
-## Get Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) to provide a similar experience. Below, we use the default [Feedback](https://docs.scandit.com/data-capture-sdk/cordova/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it
-with your own sound or vibration if you want.
-
-```js
-const feedback = Scandit.Feedback.defaultFeedback;
-```
-
-Next, use this [feedback](https://docs.scandit.com/data-capture-sdk/cordova/core/api/feedback.html#class-scandit.datacapture.core.Feedback) in a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener):
-
-```js
-const feedbackListener = {
- didUpdateSession: (barcodeBatch, session) => {
- if (session.addedTrackedBarcodes.length > 0) {
- feedback.emit();
- }
- },
-};
-```
-
-[BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The [session](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession) parameter contains information about the currently tracked barcodes, in particular, the newly recognized ones. We check if there are any and if so, we emit the feedback.
-
-As the last step, register the listener responsible for emitting the feedback with the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance.
-
-```js
-barcodeBatch.addListener(feedbackListener);
-```
-
-## Disabling Barcode Batch
-
-To disable barcode tracking set [BarcodeBatch.isEnabled](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/barcode-batch.html#property-scandit.datacapture.barcode.batch.BarcodeBatch.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or put it in standby calling [SwitchToDesiredState](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [StandBy](https://docs.scandit.com/data-capture-sdk/cordova/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.Standby).
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/intro.md
deleted file mode 100644
index 2f001aaf..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/matrixscan/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/cordova/migrate-5-to-6.mdx
deleted file mode 100644
index 3400c3b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/cordova/migrate-6-to-7.mdx
deleted file mode 100644
index f48d0c49..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/cordova/migrate-7-to-8.mdx
deleted file mode 100644
index 87e83e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/parser/get-started.md
deleted file mode 100644
index dcf32b85..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/parser/get-started.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-description: "The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: , and , , . "
-
-sidebar_position: 2
-pagination_prev: null
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/cordova/parser/hibc.html), [GS1 Application Identifier (parser/AI) system](https://docs.scandit.com/data-capture-sdk/cordova/parser/gs1ai.html) and [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/cordova/parser/swissqr.html), [VIN Vehicle Identification Number](https://docs.scandit.com/data-capture-sdk/cordova/parser/vin.html), [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/cordova/parser/iata-bcbp.html).
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Format-Specific Documentation
-
-- [Supported Data Formats](https://docs.scandit.com/data-capture-sdk/cordova/parser/formats.html)
-- [HIBC](https://docs.scandit.com/data-capture-sdk/cordova/parser/hibc.html)
-- [GS1 AI](https://docs.scandit.com/data-capture-sdk/cordova/parser/gs1ai.html)
-- [GS1 Digital Link](https://docs.scandit.com/data-capture-sdk/cordova/parser/gs1-digital-link.html)
-- [Swiss QR](https://docs.scandit.com/data-capture-sdk/cordova/parser/swissqr.html)
-- [VIN](https://docs.scandit.com/data-capture-sdk/cordova/parser/vin.html)
-- [IATA BCBP](https://docs.scandit.com/data-capture-sdk/cordova/parser/iata-bcbp.html)
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-First of all, include the `ScanditParser` library and its dependencies to your project, if any.
-
-## Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/release-notes.md b/versioned_docs/version-8.1.1/sdks/cordova/release-notes.md
deleted file mode 100644
index b11a4f3f..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/release-notes.md
+++ /dev/null
@@ -1,176 +0,0 @@
----
-description: "Release notes and updates for the Scandit Cordova SDK."
-toc_max_heading_level: 3
-displayed_sidebar: cordovaSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Id
-
-* Fixed a memory issue leading to a persistent black screen during ID Capture startup
-
-#### Core
-
-* Fixed a crash in the DataCaptureView overlay management that could occur during rapid view updates
-* Fixed an issue where the camera preview appeared rotated 90 degrees in landscape orientation
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* [SparkScan](/sdks/cordova/sparkscan/intro.md) is not limited to only barcodes anymore, but can also scan items - in other words any combinations of barcodes and text present on a target to be scanned. The feature is available in beta at the moment, please contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-* Our SDK can now scan the following documents both in single-side and double-side mode:
- - All Mexican DLs
- - Mexican Voter Cards
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed a bug in the default color of BarcodeCapture highlights
-* Fixed an issue where popover annotations with HIGHLIGHT_TAP_AND_BARCODE_SCAN trigger could not be opened again
-* Fixed an issue in BarcodeSequence where camera would not be ON in portrait
-* Fixed an issue where SparkScan mini preview would sometimes stay in regular when entering target mode
-* Fixed the app becoming unresponsive after being in the background for extended periods
-* Added the `cameraStateOnStop` property to BarcodeFindView to optimize camera transitions when switching between modes
-* Fixed an issue where the successful notification in BarcodeFind was not displayed
-
-#### Id
-
-* Fixed an issue where front expiry date anonymization rectangle is erroneously drawn on front and back
-* Fixed a bug that prevented VizResult anonymization of the following fields: additionalAddressInformation, bloodType, employer, fathersName, issuingAuthority, maritalStatus, mothersName, placeOfBirth, profession, race, residentialStatus
-* Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses
-
-#### Core
-
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-* Fixed an issue where barcode scanning would permanently stop after the app returned from background, particularly when camera permission dialogs were shown during initialization
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed an issue where the successful hint in BarcodeFind was not displayed
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Barcode
-
-* Updated the Gradle version for all sample applications to 8.14.3.
-* `BarcodeBatchBasicOverlay` and `BarcodeBatchBasicOverlayListener` now allow for nullable brushes.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzeeeeeResult`.
-
-### Bug Fixes
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/cordova/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/cordova/scanning-composite-codes.mdx
deleted file mode 100644
index d517a134..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/single-scanning.md b/versioned_docs/version-8.1.1/sdks/cordova/single-scanning.md
deleted file mode 100644
index 23c64353..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/single-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import SingleScanning from '../../partials/_single-scanning.mdx'; "
-
-toc_max_heading_level: 4
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Single Scanning
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/advanced.md
deleted file mode 100644
index 02cfaff9..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/advanced.md
+++ /dev/null
@@ -1,106 +0,0 @@
----
-description: "SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: cordova
-keywords:
- - cordova
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Hardware Button Control
-
-Allowing the end user to control the scanner with hardware buttons can be useful if your users typically wear gloves. It can also improve ergonomics in some workflows.
-
-SparkScan offers a built-in API to let you do this via [`SparkScanViewSettings.hardwareTriggerEnabled`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled).
-
-### Trigger Error State
-
-You may want to introduce logic in your app to show an error message when scanning specific barcodes (e.g. barcodes already added to the list, barcodes from the wrong lot etc.). SparkScan offers a built-in error state you can easily set to trigger an error feedback prompt to the user. You will be able to customize:
-
-- The text message
-- The timeout of the error message: the scanner will be paused for the specified amount of time, but the user can quickly restart the scanning process by tapping the trigger button.
-
- :::tip
- A high timeout (>10s) typically requires the users to interact with the UI to start scanning again. This is a good choice when you want to interrupt the scanning workflow (e.g. because a wrong barcode is scanned and some actions need to be performed). A small timeout (\<2s) could allow the user to scan again without having to interact with the app, just momentarily pausing the workflow to acknowledge that a “special” barcode has been scanned.
- :::
-
-- The color of the flashing screen upon scan. You can enable or disable the visual feedback via [SparkScanViewSettings.visualFeedbackEnabled](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.VisualFeedbackEnabled) and you can control the color via [SparkScanBarcodeFeedback](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-barcode-feedback.html#sparkscan-barcode-feedback).
-
-An error example is here reported:
-
-```js
-self.sparkScanView.emitFeedback(SparkScanBarcodeErrorFeedback(message: "This code should not have been scanned",
-resumeCapturingDelay: 6, visualFeedbackColor: UIColor.red))
-```
-
-You can have different error states triggered by different logic conditions. For example you can trigger an error state when a wrong barcode is scanned, and another one when a duplicate barcode is scanned. These errors can show different colors and have different timeouts.
-
-
- This error state for a code that should not have been scanned.
-
-
-
- This error state for a code that has been scanned more than once.
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan’s built-in error state. Setting the [`SparkScanBarcodeErrorFeedback.resumeCapturingDelay`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to 0 allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode ([`SDCSparkScanViewSettings.defaultScanningMode`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.DefaultScanningMode)). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SDCSparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled ([`SDCSparkScanViewSettings.holdToScanEnabled`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HoldToScanEnabled)).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/get-started.md
deleted file mode 100644
index 847c0ec7..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/get-started.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are: "
-
-sidebar_position: 2
-framework: cordova
-keywords:
- - cordova
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are:
-
-1. Create a new Data Capture Context instance.
-2. Configure the Spark Scan Mode.
-3. Create the SparkScanView with the desired settings and bind it to the application’s lifecycle.
-4. Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs.
-
-## Prerequisites
-
-- The latest stable version of [Node.js and npm](https://nodejs.org/en/download/) (required only if including and building the SDK as part of an app, instead of just including it as an external resource from a CDN in HTML).
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-- If you have not already done so, see [this guide](../add-sdk.md) for information on how to add the Scandit Data Capture SDK to your project
-
-:::note
-Devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-## Create a New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/cordova/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```sh
-const context = Scandit.DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through [`SparkScanSettings`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/spark-scan-settings.html#class-scandit.datacapture.barcode.spark.SparkScanSettings) and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we will set up SparkScan for scanning EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```js
-const settings = new Scandit.SparkScanSettings();
-settings.enableSymbologies([Symbology.EAN13UPCA]);
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```js
-const sparkScan = Scandit.SparkScan.forSettings(settings);
-```
-
-## Setup the Spark Scan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view-settings.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) appearance can be customized through [`SparkScanViewSettings`](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view-settings.html#class-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings).
-
-```js
-const viewSettings = new Scandit.SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-By adding a `SparkScanView`, the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a `SparkScanView` to your view hierarchy. Construct a new SparkScan view. The `SparkScan` view is automatically added to the provided parentView:
-
-```js
-const sparkScanComponent = (
-
-);
-```
-
-Additionally, make sure to call [SparkScanView.stopScanning()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.StopScanning) in your app state handling logic. You have to call this for the correct functioning of the
-[SparkScanView](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView).
-
-```js
-componentWillUnmount() {
-sparkScanComponent.stopScanning();
-}
-
-handleAppStateChange = async (nextAppState) => {
-if (nextAppState.match(/inactive|background/)) {
-sparkScanComponent.stopScanning();
-}
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the
-[SparkScanListener](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode.
-
-```js
-// Register a listener object to monitor the spark scan session.
-
-const listener = {
- didScan: (sparkScan, session, getFrameData) => {
- // Gather the recognized barcode
- const barcode = session.newlyRecognizedBarcode[0];
-
- // Handle the barcode
- },
-};
-
-sparkScan.addListener(listener);
-```
-
-[SparkScanListener.didScan()](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved from the first object in the provided barcodes list:
-[SparkScanSession.newlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode). Please note that this list only contains one barcode entry.
-
-## Scan Some Barcodes
-
-Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can
-print out.
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/intro.md
deleted file mode 100644
index d8b30346..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/sparkscan/intro.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-description: "SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: cordova
-keywords:
- - cordova
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying additional scanning modes, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/cordova/symbology-properties.mdx
deleted file mode 100644
index 56b87782..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/cordova/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/cordova/system-requirements.mdx
deleted file mode 100644
index 1ae4f584..00000000
--- a/versioned_docs/version-8.1.1/sdks/cordova/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/add-sdk.md b/versioned_docs/version-8.1.1/sdks/flutter/add-sdk.md
deleted file mode 100644
index 9af71e1d..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/add-sdk.md
+++ /dev/null
@@ -1,121 +0,0 @@
----
-description: "Guide to integrating the Scandit Data Capture SDK into your project."
-
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-# Installation
-
-This page describes how to integrate the Scandit Data Capture SDK into your Flutter project.
-
-## Prerequisites
-
-- The latest stable version of the [Flutter SDK](https://pub.dev/publishers/scandit.com/packages) (for example through the latest Android Studio).
-- A project with:
- - minimum iOS deployment target of 14.0 or higher (15.0 or higher for ID Capture)
- - an Android project with target SDK version 23 (Android 6, Marshmallow) and Kotlin 1.7.21 or higher (version 24 or higher for ID Capture).
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-
-:::tip
-Android devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-### Internal Dependencies
-
-import InternalDependencies from '../../partials/get-started/_internal-deps-no-label-capture.mdx';
-
-
-
-## Get a License Key
-
-1. [Sign up](https://ssl.scandit.com/dashboard/sign-up?p=test) or [Sign in](https://ssl.scandit.com/dashboard/sign-in) to your Scandit account
-2. Create a project
-3. Create a license key
-
-If you have a paid subscription, please reach out to [Scandit Support](mailto:support@scandit.com) if you need a new license key.
-
-## Add the SDK
-
-Currently we support adding the Scandit Data Capture SDK Flutter plugins to your project in two ways. The simplest way is to use the [pub.dev](https://pub.dev/) registry, alternatively you can manually download the plugins and add them to your project.
-
-### Create a new project
-
-If you do not have a Flutter project yet that you’ll use, you should create a new one using your IDE of choice.
-
-### Add the SDK from pub.dev
-
-To add our plugins from the _pub.dev_ registry, you need to open the `pubspec.yaml` file located inside the app folder, and add the required Scandit plugin(s) as listed under [interal dependencies](#internal-dependencies).
-
-In the following snippet we’re adding multiple plugins for different functionalities, but you can add only the ones you need.
-
-```yml
-dependencies:
- flutter:
- sdk: flutter
- scandit_flutter_datacapture_barcode:
- scandit_flutter_datacapture_text:
- scandit_flutter_datacapture_parser:
- scandit_flutter_datacapture_id:
-```
-
-### Add the SDK manually
-
-After you download the [archive](https://ssl.scandit.com/dashboard/downloads) containing all the plugins, unzip the archive. It includes the available Flutter plugins, including the `scandit-flutter-datacapture-core` plugin that all other plugins depend on.
-
-Move the required plugins to some subdirectory within your app folder (e.g. to `libs/`) and then open the `pubspec.yaml` file located inside the app folder.
-
-Add required Scandit plugin(s) under dependencies. In the following snippet we’re adding multiple plugins for different functionalities, but you can add only the ones you need.
-
-```yml
-dependencies:
- flutter:
- sdk: flutter
- scandit_flutter_datacapture_barcode:
- path: libs/scandit-flutter-datacapture-barcode
- scandit_flutter_datacapture_parser:
- path: libs/scandit-flutter-datacapture-parser
- scandit_flutter_datacapture_id:
- path: libs/scandit-flutter-datacapture-id
-```
-
-:::tip
-You don’t need to add the dependency to the `scandit-flutter-datacapture-core` plugin in the `pubspec.yaml`. However, as all the other Scandit Flutter plugins depend internally on it, you still have to copy it to the same location.
-:::
-
-### Install Scandit Data Capture SDK Flutter plugin(s)
-
-Run from terminal:
-
-```sh
-flutter pub get
-```
-
-## Additional Information
-
-### Android Configuration
-
-On Android, the Scandit SDK uses content providers to initialize the scanning capabilities properly. If your own content providers depend on the Scandit SDK, choose an **initOrder** lower than 10 to make sure the SDK is ready first.
-
-If not specified, **initOrder** is zero by default and you have nothing to worry about.
-
-Check [the official `` documentation](https://developer.android.com/guide/topics/manifest/provider-element).
-
-
-### Camera Permissions
-
-When using the Scandit Data Capture SDK you will want to set the camera as the frame source for various capture modes. On Android, you have to request camera permissions in your own application before starting scanning. To see how you can achieve this, take a look at our [samples](https://github.com/Scandit/datacapture-flutter-samples).
-
-
-Remember that, if you want to use the camera as the frame source for barcode, text and label capture, you need to set the “Privacy - Camera Usage Description” field in the `Info.plist` file for iOS.
-
-import OSSLicense from '../../partials/_third-party-licenses-js.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/flutter/ai-powered-barcode-scanning.md
deleted file mode 100644
index 2e136e8b..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: flutter
-keywords:
- - flutter
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/flutter/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index a367b3f8..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-description: "Learn about the available symbologies and the corresponding configurations and extensions available."
-
-sidebar_position: 3
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following lines of code show you how to enable scanning Code 128 codes for barcode capture:
-
-```dart
-var settings = BarcodeCaptureSettings()
-..enableSymbology(Symbology.code128, true);
-```
-
-import CapturePresents from '../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below lines of code show how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```dart
-var settings = BarcodeCaptureSettings();
-var symbologySettings = settings.settingsForSymbology(Symbology.code128);
-symbologySettings.activeSymbolCounts = {6, 7, 8};
-```
-
-import CalculateSymbolCount from '../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you enable a symbology as described above, only dark-on-bright codes are enabled. If you also want to read bright-on-dark codes, color-inverted reading for that symbology must be enabled ( `SymbologySettings.isColorInvertedEnabled`).
-
-The following code shows how to enable color-inverted reading for Code 128:
-
-```dart
-var settings = BarcodeCaptureSettings();
-var symbologySettings = settings.getSymbologySettings(Symbology.code128);
-symbologySettings.isColorInvertedEnabled = true;
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that will always be enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum). Enforcing an optional checksum will reduce false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes get discarded as the checksum doesn’t match. All available checksums per symbology can be found in [symbology properties](../symbology-properties.mdx).
-
-You can enforce a specific checksum by setting it through [SymbologySettings.checksums](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```dart
-var settings = BarcodeCaptureSettings();
-var symbologySettings = settings.settingsForSymbology(Symbology.code39)
-..checksums = {Checksum.mod43};
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [SymbologySettings.setExtensionEnabled()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```dart
-var settings = BarcodeCaptureSettings();
-var symbologySettings = settings.settingsForSymbology(Symbology.code39)
-..setExtensionEnabled("full_ascii", enabled: true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/barcode-capture/get-started.md
deleted file mode 100644
index 839aa6b7..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/barcode-capture/get-started.md
+++ /dev/null
@@ -1,152 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Capture to your application. "
-
-sidebar_position: 2
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application.
-
-The general steps are:
-
-- Include the ScanditBarcodeCapture library and its dependencies to your project, if any.
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode capture settings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and enable the [barcode symbologies](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology) you want to read in your application.
-- Create a new [barcode capture mode](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance and initialize it with the settings created above.
-- Register a [barcode capture listener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/flutter/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Initialize the barcode plugin
-
-:::warning
-Without initializing the barcode plugin, runtime crashes will occur. However, you don’t have to initialize the core plugin, as initializing the barcode plugin already does that for you, as presented in the snippet below.
-:::
-
-Before accessing anything of the Scandit Data Capture SDK functionality. You have to initialize the barcode plugin.
-
-```dart
-void main() async {
-WidgetsFlutterBinding.ensureInitialized();
-await ScanditFlutterDataCaptureBarcode.initialize();
-runApp(MyApp());
-}
-```
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var context = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Scanning Behavior
-
-Barcode scanning is orchestrated by the [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) [data capture mode](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```dart
-var settings = BarcodeCaptureSettings()
-..enableSymbologies({
-Symbology.code128,
-Symbology.code39,
-Symbology.qr,
-Symbology.ean8,
-Symbology.upce,
-Symbology.ean13Upca
-});
-```
-
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.codeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around 500 or even \-1 if you do not want codes to be scanned more than once.
-
-Next, create a [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance with the settings initialized in the previous step:
-
-```dart
-var barcodeCapture = BarcodeCapture(settings);
-context.addMode(barcodeCapture);
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [BarcodeCapture.addListener()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface. For example:
-
-```dart
-@override
-void didScan(BarcodeCapture barcodeCapture, BarcodeCaptureSession session) {
-var recognizedBarcodes = session.newlyRecognizedBarcode;
-// Do something with the barcodes.
-}
-```
-
-Then add the listener:
-
-```dart
-barcodeCapture.addListener(this);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```dart
-var cameraSettings = BarcodeCapture.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-var camera = Camera.defaultCamera..applySettings(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```dart
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.on](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```dart
-camera.switchToDesiredState(FrameSourceState.on);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```dart
-var dataCaptureView = DataCaptureView.forContext(dataCaptureContext);
-// Add the dataCaptureView to your widget tree
-```
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```dart
-var overlay = BarcodeCaptureOverlay.withBarcodeCaptureForView(barcodeCapture, dataCaptureView);
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [BarcodeCapture.isEnabled](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to _false_.
-
-The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/flutter/barcode-generator.md
deleted file mode 100644
index 490dee76..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/barcode-generator.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-description: "The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes. "
-
-displayed_sidebar: flutterSidebar
-pagination_prev: null
-pagination_next: null
----
-
-# Barcode Generator
-
-The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes.
-
-The Barcode Generator supports the following formats:
-
-* Code 39
-* Code 128
-* EAN 13
-* UPCA
-* ITF
-* QR
-* DataMatrix
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/flutter/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Generating Barcodes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`BarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.BarcodeGeneratorBuilder), and use the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) for the symbology you are interested in, in this example Code 128.
-
-You can configure the colors used in the resulting image:
-
-```dart
-class DataCaptureContext {
- final String licenseKey;
-
- DataCaptureContext.forLicenseKey(this.licenseKey);
-}
-
-class BarcodeGeneratorBuilder {
- final DataCaptureContext context;
- final Color backgroundColor;
- final Color foregroundColor;
-
- BarcodeGeneratorBuilder._(this.context, this.backgroundColor, this.foregroundColor);
-
- factory BarcodeGeneratorBuilder.code128BarcodeGeneratorBuilder(
- DataCaptureContext context) {
- return BarcodeGeneratorBuilder._(context, Colors.white, Colors.black);
- }
-
- BarcodeGeneratorBuilder withBackgroundColor(Color color) {
- return BarcodeGeneratorBuilder._(context, color, foregroundColor);
- }
-
- BarcodeGeneratorBuilder withForegroundColor(Color color) {
- return BarcodeGeneratorBuilder._(context, backgroundColor, color);
- }
-}
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```dart
-try {
- var generator = BarcodeGeneratorBuilder.build();
- var image = generator.generateFromData(dataString, 200);
- // Use the image
-} catch (e) {
- debugPrint("Error generating barcode: $e");
- return Center(child: Text("Failed to generate barcode"));
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-generator.html) for more information.
-
-## Generating QR Codes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`QRCodeBarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder) using the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) specific for QR codes.
-
-You can configure the colors used in the resulting image, and the two settings that can be configured for QR codes: [`QRCodeBarcodeGeneratorBuilder.errorCorrectionLevel`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithErrorCorrectionLevel) and [`QRCodeBarcodeGeneratorBuilder.versionNumber`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithVersionNumber).
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```dart
-try {
- var generator = BarcodeGeneratorBuilder.build();
- var image = generator.generateFromData(dataString, 200);
- // Use the image
-} catch (e) {
- debugPrint("Error generating barcode: $e");
- return Center(child: Text("Failed to generate barcode"));
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-generator.html) for more information.
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/barcode-selection/get-started.md
deleted file mode 100644
index c6e04ea3..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/barcode-selection/get-started.md
+++ /dev/null
@@ -1,149 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Selection to your application. "
-
-sidebar_position: 2
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/flutter/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-In this guide you will learn step-by-step how to add Barcode Selection to your application.
-
-The general steps are:
-
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode selection settings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and choose the right configuration.
-- Create a new [barcode selection mode](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance and initialize it with the settings created above.
-- Register a [barcode selection listener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/flutter/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-selection-basic-overlay.html#class-scandit.datacapture.barcode.selection.ui.BarcodeSelectionBasicOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var context = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Selection Behavior
-
-_Symbologies_
-
-Barcode selection is orchestrated by the [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) [data capture mode](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). It is configured through [BarcodeSelectionSettings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) that will get informed whenever new codes have been selected.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```dart
-var settings = BarcodeSelectionSettings()
-..enableSymbologies({
-Symbology.code128,
-Symbology.code39,
-Symbology.qr,
-Symbology.ean8,
-Symbology.upce,
-Symbology.ean13Upca
-});
-```
-
-_Selection Types_
-
-The behavior of Barcode Selection can be changed by using a different [selection type](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-type.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionType). This defines the method used by [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) to select codes. Currently there are two types.
-
-If you want the user to select barcodes with a tap, then use [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection). This selection type can automatically freeze the camera preview to make the selection easier. You can configure the freezing behavior via [BarcodeSelectionTapSelection.freezeBehavior](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.FreezeBehavior). With [BarcodeSelectionTapSelection.tapBehavior](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.TapBehavior) you can decide if a second tap on a barcode means that the barcode is unselected or if it is selected another time (increasing the counter).
-
-:::note
-Using [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection) requires the MatrixScan add-on.
-:::
-
-If you want the selection to happen automatically based on where the user points the camera, then use [BarcodeSelectionAimerSelection](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-aimer-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAimerSelection). It is possible to choose between two different [selection strategies](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-strategy.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionStrategy). Use
-[BarcodeSelectionAutoSelectionStrategy](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAutoSelectionStrategy) if you want the barcodes to be selected automatically when aiming at them as soon as the intention is understood by our internal algorithms. Use [BarcodeSelectionManualSelectionStrategy](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionManualSelectionStrategy) if you want the barcodes to be selected when aiming at them and tapping anywhere on the screen.
-
-_Single Barcode Auto Detection_
-
-If you want to automatically select a barcode when it is the only one on screen, turn on [BarcodeSelectionSettings.singleBarcodeAutoDetection](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-settings.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionSettings.SingleBarcodeAutoDetection).
-
-_Creating the mode_
-
-Next, create a [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance with the settings initialized in the previous step:
-
-```dart
-var barcodeSelection = BarcodeSelection(settings);
-context.addMode(barcodeSelection);
-```
-
-## Register the Barcode Selection Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) through [BarcodeSelection.addListener()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection.html#method-scandit.datacapture.barcode.selection.BarcodeSelection.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) interface. For example:
-
-```dart
-@override
-void didUpdateSelection(BarcodeSelection barcodeSelection, BarcodeSelectionSession session) {
-var newlySelectedBarcodes = session.newlySelectedBarcodes;
-// Do something with the barcodes.
-}
-```
-
-Then add the listener:
-
-```dart
-barcodeSelection.addListener(this);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the
-[NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```dart
-var cameraSettings = BarcodeSelection.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-var camera = Camera.defaultCamera..applySettings(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```dart
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling
-[FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.on](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(FrameSourceState.on);
-```
-
-## Disabling Barcode Selection
-
-To disable barcode selection, for instance when the selection is complete, set [BarcodeSelection.isEnabled](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelection.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/barcode-selection/intro.md
deleted file mode 100644
index 9a011fb6..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/barcode-selection/intro.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-description: "Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# About Barcode Selection
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/flutter/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes.
-
-Barcode Selection provides two key capabilities:
-
-- **Aim to Select** allows users to select one code at a time. This is especially useful for one-handed operation.
-- **Tap to Select** is a quick way for users to select several codes from the same view. Selection is done by tapping on highlighted barcodes in the live camera preview or on a frozen screen.
-
-:::warning
-Barcode Selection does not support handling of duplicate codes. If a code appears twice in the visible preview both instances will be marked as selected even if only one of them was selected.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/flutter/barcode-symbologies.mdx
deleted file mode 100644
index 75d3810a..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/flutter/batch-scanning.md
deleted file mode 100644
index 15051ec6..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/batch-scanning.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "Batch scanning enables you to capture and interact with multiple barcodes simultaneously, making it ideal for inventory management, retail, and logistics applications."
-toc_max_heading_level: 4
-
-
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Batch Scanning
-
-import BatchScanning from '../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/flutter/core-concepts.mdx
deleted file mode 100644
index 81c9f5d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/flutter/extension-codes.mdx
deleted file mode 100644
index 2ab9349a..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/flutter/features-by-framework.mdx
deleted file mode 100644
index 5f33c395..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/flutter/id-capture/advanced.md
deleted file mode 100644
index 71d83aec..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/id-capture/advanced.md
+++ /dev/null
@@ -1,101 +0,0 @@
----
-description: "There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features. "
-
-sidebar_position: 4
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/flutter/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-```dart
-// Default value:
-settings.anonymizationMode = IdAnonymizationMode.FIELDS_ONLY;
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.anonymizationMode = IdAnonymizationMode.FIELDS_AND_IMAGES;
-
-// Only images are anonymized:
-settings.anonymizationMode = IdAnonymizationMode.IMAGES_ONLY;
-
-// No anonymization:
-settings.anonymizationMode = IdAnonymizationMode.NONE;
-```
-
-## Document Capture Zones
-
-By default, a new instance of [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) creates a single-sided scanner type with no accepted or rejected documents.
-
-To change this, use the `scannerType` method to set the scanner type to either [SingleSideScanner](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-scanner.html#single-side-scanner) or [FullDocumentScanner](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-scanner.html#full-document-scanner).
-
-
-The `FullDocumentScanner` extracts all document information by default. If using the `SingleSideScanner`, you can specify the document zones to extract:
-
-```dart
-// To extract data from barcodes on IDs
-SingleSideScanner.barcode(true);
-// To extract data from the visual inspection zone (VIZ) on IDs
-SingleSideScanner.visualInspectionZone(true);
-// To extract data from the machine-readable zone (MRZ) on IDs
-SingleSideScanner.machineReadableZone(true);
-```
-
-## Configure Accepted and Rejected Documents
-
-To configure the documents that should be accepted and/or rejected, use the `acceptedDocuments` and `rejectedDocuments` methods in `IdCaptureSettings`.
-
-These methods are used in conjunction with the [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) and [IdCaptureRegion](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-region.html#enum-scandit.datacapture.id.IdCaptureRegion) enums to enable highly flexible document filtering as may be desired in your application.
-
-For example, to accept only US Driver Licenses:
-
-```dart
-settings.acceptedDocuments.addAll([DRIVER_LICENSE, Region.US]);
-```
-
-Or to accept all Passports *except* those from the US:
-
-```dart
-settings.acceptedDocuments.addAll([PASSPORT]);
-settings.rejectedDocuments.adAll([Region.US]);
-```
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `CapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `CapturedId` object for a US Driver License will contain different fields than a `CapturedId` object for a Passport.
-
-For a rejected document, a [RejectionReason](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed automatically using the following settings:
-
-* [IdCaptureSettings.rejectForgedAamvaBarcodes](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectForgedAamvaBarcodes): Automatically rejects documents whose AAMVA barcode fails authenticity validation.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/id-capture/get-started.md
deleted file mode 100644
index 686bf2fb..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/id-capture/get-started.md
+++ /dev/null
@@ -1,151 +0,0 @@
----
-description: "This page will guide you through the process of adding ID Capture to your Flutter application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards. "
-
-sidebar_position: 2
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-This page will guide you through the process of adding ID Capture to your Flutter application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Accessing a Camera
-- Configuring the Capture Settings
-- Implementing a Listener to Receive Scan Results
-- Setting up the Capture View and Overlay
-- Starting the Capture Process
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](/sdks/flutter/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import IdModuleOverview from '../../../partials/get-started/_id-module-overview-no-eu-dl.mdx';
-
-
-
-### Initialize the ID Plugin
-
-:::warning
-Without initializing the ID plugin, runtime crashes will occur. However, you don’t have to initialize the core plugin, as initializing the ID plugin already does that.
-:::
-
-Before accessing anything of the Scandit Data Capture SDK functionality. You have to initialize the id plugin.
-
-```dart
-void main() async {
-WidgetsFlutterBinding.ensureInitialized();
-await ScanditFlutterDataCaptureId.initialize();
-runApp(MyApp());
-}
-```
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var context = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Add the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/flutter/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```dart
-Camera? camera = Camera.defaultCamera;
-
-if (camera != null) {
-// Use the settings recommended by id capture.
-camera.applySettings(IdCapture.recommendedCameraSettings);
-context.setFrameSource(camera);
-}
-```
-
-## Create ID Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type and the accepted and rejected documents.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-document.html) for all the available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-```dart
-var settings = IdCaptureSettings();
-settings.scannerType(
- SingleSideScanner // To scan only one-sided documents
- // or
- FullDocumentScanner // To scan both sides of the document
-);
-
-settings.acceptedDocuments.addAll([PASSPORT, DRIVER_LICENSE]);
-settings.rejectedDocuments.addAll([ID_CARD]);
-```
-
-## Implement the Listener
-
-To receive scan results, implement [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener).
-
-Capture results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-For more specific information, use its non-null result properties (e.g. [CapturedId.barcode](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/captured-id.html#property-scandit.datacapture.id.CapturedId.Barcode)).
-
-```dart
-@override
-void didCaptureId(IdCapture idCapture, IdCaptureSession session) {
-CapturedId? capturedId = session.newlyCapturedId;
-// Do something in case the capturedId is not null.
-}
-```
-
-Create a new ID Capture mode with the chosen settings. Then register the listener:
-
-```dart
-idCapture = IdCapture(settings);
-idCapture.addListener(this)
-context.addMode(idCapture);
-```
-
-## Set up Capture View and Overlay
-
-When using the built-in camera as [frameSource](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#interface-scandit.datacapture.core.IFrameSource), you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```dart
-var dataCaptureView = DataCaptureView.forContext(dataCaptureContext);
-// Add the dataCaptureView to your widget tree
-```
-
-Then create an instance of [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) attached to the view:
-
-```dart
-overlay = IdCaptureOverlay.withIdCaptureForView(idCapture, dataCaptureView);
-```
-
-The overlay chooses the displayed UI automatically, based on the selected [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings).
-
-If you prefer to show a different UI or to temporarily hide it, set the appropriate [IdCaptureOverlay.idLayout](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/ui/id-capture-overlay.html#property-scandit.datacapture.id.ui.IdCaptureOverlay.IdLayout).
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-```dart
-camera.switchToDesiredState(FrameSourceState.on);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/id-capture/intro.md
deleted file mode 100644
index ce7dc153..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/id-capture/intro.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx'; "
-
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/flutter/id-capture/supported-documents.md
deleted file mode 100644
index e7fa66d8..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/id-capture/supported-documents.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "Scandit ID Capture provides various types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type. "
-
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: flutter
-keywords:
- - flutter
----
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/flutter/label-capture/advanced.md
deleted file mode 100644
index 283c901d..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/label-capture/advanced.md
+++ /dev/null
@@ -1,179 +0,0 @@
----
-description: "Guide to customizing overlays in the Scandit Flutter Label Capture SDK."
-sidebar_position: 3
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Advanced Configurations
-
-## Customization of the Overlays
-
-To customize the appearance of an overlay you can implement a [LabelCaptureBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/ui/label-capture-basic-overlay-listener.html#interface-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener) and/or [LabelCaptureAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/ui/label-capture-advanced-overlay-listener.html) interface, depending on the overlay(s) you are using.
-
-The method [brushForLabel()](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForLabel) is called every time a label is captured, and [brushForFieldOfLabel()](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForField) is called for each of its fields to determine the brush for the label or field.
-
-```dart
-// Create a custom listener class that implements LabelCaptureBasicOverlayListener.
-class MyBasicOverlayListener extends LabelCaptureBasicOverlayListener {
- @override
- Future brushForLabel(LabelCaptureBasicOverlay overlay, CapturedLabel label) async {
- // Use a transparent brush for the label itself.
- return null;
- }
-
- @override
- Future brushForFieldOfLabel(
- LabelCaptureBasicOverlay overlay, LabelField field, CapturedLabel label) async {
- if (field.name == 'Barcode') {
- // Highlight barcode fields with a cyan color.
- return Brush(
- Color.fromRGBO(0, 255, 255, 0.5),
- Color.fromRGBO(0, 255, 255, 0.5),
- 0,
- );
- }
-
- if (field.name == 'Expiry Date') {
- // Highlight expiry date fields with an orange color.
- return Brush(
- Color.fromRGBO(255, 165, 0, 0.5),
- Color.fromRGBO(255, 165, 0, 0.5),
- 0,
- );
- }
-
- // Use transparent brush for other fields.
- return null;
- }
-
- @override
- void didTapLabel(LabelCaptureBasicOverlay overlay, CapturedLabel label) {
- // Handle user tap gestures on the label.
- }
-}
-
-// Create the overlay and set the listener.
-final overlay = LabelCaptureBasicOverlay(labelCapture);
-overlay.listener = MyBasicOverlayListener();
-```
-
-:::tip
-You can also use `LabelCaptureBasicOverlay.setLabelBrush()` and `LabelCaptureBasicOverlay.setCapturedFieldBrush()` to configure the overlay if you don't need to customize the appearance based on the name or content of the fields.
-:::
-
-### Advanced Overlay
-
-For more advanced use cases, such as adding custom views or implementing Augmented Reality (AR) features, you can use the `LabelCaptureAdvancedOverlay`. The example below creates an advanced overlay, configuring it to display a styled warning message below expiry date fields when they’re close to expiring, while ignoring other fields.
-
-```dart
-final advancedOverlay = LabelCaptureAdvancedOverlay.newInstance(
- labelCapture,
- dataCaptureView,
-);
-
-advancedOverlay.addListener(LabelCaptureAdvancedOverlayListener(
- viewForCapturedLabel: (overlay, capturedLabel) {
- return null; // We only care about specific fields
- },
- anchorForCapturedLabel: (overlay, capturedLabel) {
- return Anchor.center;
- },
- offsetForCapturedLabel: (overlay, capturedLabel, view) {
- return PointWithUnit.withPixel(0, 0);
- },
- viewForCapturedLabelField: (overlay, labelField) {
- if (labelField.name.toLowerCase().contains("expiry") &&
- labelField.type == LabelFieldType.text) {
-
- final daysUntilExpiry = daysUntilExpiryFunction(labelField.text); // Your method
- const dayLimit = 3;
-
- if (daysUntilExpiry < dayLimit) {
- return Container(
- padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
- color: Colors.red,
- child: Row(
- mainAxisSize: MainAxisSize.min,
- children: const [
- Icon(Icons.warning, color: Colors.white),
- SizedBox(width: 8),
- Text("Item expires soon!", style: TextStyle(color: Colors.white)),
- ],
- ),
- );
- }
- }
-
- return null;
- },
- anchorForCapturedLabelField: (overlay, labelField) {
- return Anchor.bottomCenter;
- },
- offsetForCapturedLabelField: (overlay, labelField, view) {
- return PointWithUnit.withUnit(0, 22, MeasureUnit.dip);
- },
-));
-```
-
-## Validation Flow
-
-Implementing a validation flow in your Smart Label Capture application differs from the [Get Started](/sdks/flutter/label-capture/get-started.md) steps outlined earlier as follows:
-
-### Visualize the Scan Process
-
-Validation flow uses a different overlay, the [LabelCaptureValidationFlowOverlay](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/ui/label-capture-validation-flow-overlay.html). This overlay provides a user interface that guides users through the label capture process, including validation steps.
-
-```dart
-final validationFlowOverlay = LabelCaptureValidationFlowOverlay.newInstance(
- context,
- labelCapture,
- dataCaptureView,
-);
-
-// Set the listener
-validationFlowOverlay.addListener(MyValidationFlowListener());
-```
-
-### Adjust the Hint Messages
-
-```dart
-final validationSettings = LabelCaptureValidationFlowSettings.newInstance();
-
-validationSettings.missingFieldsHintText = "Please add this field";
-validationSettings.standbyHintText = "No label detected, camera paused";
-validationSettings.validationHintText = "fields captured"; // X/Y (X fields out of total Y) is shown in front
-validationSettings.validationErrorText = "Input not valid";
-validationSettings.requiredFieldErrorText = "This field is required";
-validationSettings.manualInputButtonText = "Add info manually";
-
-// Apply the settings
-validationFlowOverlay.applySettings(validationSettings);
-```
-
-### Define a Listener
-
-To handle validation events, implement the [LabelCaptureValidationFlowOverlayListener](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/ui/label-capture-validation-flow-listener.html) interface.
-
-
-```dart
-class MyValidationFlowListener extends LabelCaptureValidationFlowOverlayListener {
- @override
- void onValidationFlowLabelCaptured(List fields) {
- String? barcodeData;
- String? expiryDate;
-
- for (final field in fields) {
- if (field.name == "") {
- barcodeData = field.barcode?.data;
- } else if (field.name == "") {
- expiryDate = field.text;
- }
- }
-
- // Handle the captured values
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/label-capture/get-started.md
deleted file mode 100644
index 35d9159e..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/label-capture/get-started.md
+++ /dev/null
@@ -1,278 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Smart Label Capture to your application. "
-
-sidebar_position: 2
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Smart Label Capture to your application.
-
-The general steps are:
-
-- Create a new Data Capture Context instance
-- Configure the LabelCapture mode
-- Define a listener to handle captured labels
-- Visualize the scan process
-- Start the camera
-- Provide feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/flutter/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import LabelCaptureModuleOverview from '../../../partials/get-started/_smart-label-capture-module-overview.mdx';
-
-
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Label Capture Mode
-
-The main entry point for the Label Capture Mode is the [LabelCapture](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/label-capture.html#class-scandit.datacapture.label.LabelCapture) object.
-
-It is configured through [LabelCaptureSettings](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/label-capture-settings.html#class-scandit.datacapture.label.LabelCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) that get informed whenever a new frame has been processed.
-
-```dart
-// Create a barcode field using the builder pattern.
-final barcodeField = CustomBarcodeBuilder()
- .setSymbologies([Symbology.ean13Upca, Symbology.code128])
- .build('Barcode');
-
-// Create an expiry date text field using the builder pattern.
-final expiryDateField = ExpiryDateTextBuilder()
- .isOptional(true)
- .build('Expiry Date');
-
-// Create a label definition using the builder pattern.
-final labelDefinition = LabelDefinition.builder()
- .addCustomBarcode(barcodeField)
- .addExpiryDateText(expiryDateField)
- .build('Product Label');
-
-// Create the label capture settings using the builder pattern.
-final settings = LabelCaptureSettings.builder()
- .addLabel(labelDefinition)
- .build();
-
-// Create the label capture mode with the settings.
-final labelCapture = LabelCapture(settings);
-
-// Add the mode to the data capture context created earlier.
-dataCaptureContext.addMode(labelCapture);
-```
-
-## Define a Listener to Handle Captured Labels
-
-To get informed whenever a new label has been recognized, add a [LabelCaptureListener](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) through [LabelCapture.addListener()](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/label-capture.html#method-scandit.datacapture.label.LabelCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First conform to the `LabelCaptureListener` interface. Here is an example of how to implement a listener that processes the captured labels based on the label capture settings defined above.
-
-In this example, we create a `LabelCaptureRepository` class that implements the `LabelCaptureListener` interface. This class is responsible for handling the captured labels and processing them accordingly.
-
-Depending on your app architecture and whether you use dependency injection or not, you may use a fragment or a repository to implement the listener.
-
-```dart
-import 'dart:async';
-
-import 'package:flutter/foundation.dart';
-import 'package:scandit_flutter_datacapture_core/scandit_flutter_datacapture_core.dart';
-import 'package:scandit_flutter_datacapture_label/scandit_flutter_datacapture_label.dart';
-
-class CapturedLabelEvent {
- final String? barcodeData;
- final String? expiryDate;
-
- CapturedLabelEvent(this.barcodeData, this.expiryDate);
-}
-
-class LabelCaptureRepository {
- final ValueNotifier capturedLabels = ValueNotifier(null);
-
- late final LabelCapture labelCapture;
- late final LabelCaptureListener _listener;
-
- LabelCaptureRepository(DataCaptureContext context, LabelCaptureSettings settings) {
- labelCapture = LabelCapture(settings);
- _listener = _LabelCaptureListener(this);
- labelCapture.addListener(_listener);
- }
-
- void dispose() {
- labelCapture.removeListener(_listener);
- capturedLabels.dispose();
- }
-}
-
-class _LabelCaptureListener extends LabelCaptureListener {
- final LabelCaptureRepository repository;
-
- _LabelCaptureListener(this.repository);
-
- @override
- void onSessionUpdated(LabelCapture capture, LabelCaptureSession session, FrameData? frameData) {
- final labels = session.capturedLabels;
-
- if (labels.isNotEmpty) {
- final label = labels.first;
-
- // Extract the barcode field
- final barcodeField = label.fields.firstWhere(
- (field) => field.name == '',
- orElse: () => null,
- );
- final barcodeData = barcodeField?.barcode?.data;
-
- // Extract the expiry date field (optional)
- final expiryDateField = label.fields.firstWhere(
- (field) => field.name == '',
- orElse: () => null,
- );
- final expiryDate = expiryDateField?.text;
-
- // Disable label capture to avoid duplicate scans
- capture.isEnabled = false;
-
- // Notify UI via ValueNotifier
- repository.capturedLabels.value = CapturedLabelEvent(barcodeData, expiryDate);
-
- // Emit default feedback (sound + vibration)
- Feedback.defaultFeedback.emit();
- }
- }
-}
-```
-
-## Visualize the Scan Process
-
-The capture process can be visualized by adding a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy. The view controls what UI elements such as the viewfinder, as well as the overlays that are shown to visualize captured labels.
-
-To visualize the results of Label Capture you can use two overlays:
-
-- [LabelCaptureBasicOverlay](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/ui/label-capture-basic-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureBasicOverlay)
-- [LabelCaptureAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/ui/label-capture-advanced-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureAdvancedOverlay)
-
-:::tip
-The overlays can be used independently of each other, but you can also use both at the same time as each can serve to extend the functionality of the other.
-:::
-
-Here is an example of how to add a `LabelCaptureBasicOverlay` to the `DataCaptureView`:
-
-```dart
-import 'package:flutter/material.dart';
-import 'package:scandit_flutter_datacapture_core/scandit_flutter_datacapture_core.dart';
-import 'package:scandit_flutter_datacapture_label/scandit_flutter_datacapture_label.dart';
-
-class LabelCaptureScreen extends StatefulWidget {
- final DataCaptureContext context;
- final LabelCapture labelCapture;
-
- const LabelCaptureScreen({
- Key? key,
- required this.context,
- required this.labelCapture,
- }) : super(key: key);
-
- @override
- State createState() => _LabelCaptureScreenState();
-}
-
-class _LabelCaptureScreenState extends State {
- late final DataCaptureView _dataCaptureView;
-
- @override
- void initState() {
- super.initState();
-
- // Create the DataCaptureView and attach it to the context
- _dataCaptureView = DataCaptureView.forContext(widget.context);
-
- // Create the overlay and add it to the DataCaptureView
- final overlay = LabelCaptureBasicOverlay.newInstance(
- widget.labelCapture,
- _dataCaptureView,
- );
-
- // Optionally set a rectangular viewfinder
- overlay.viewfinder = RectangularViewfinder.withStyle(
- RectangularViewfinderStyle.square,
- );
- }
-
- @override
- Widget build(BuildContext context) {
- // Attach the view to your widget tree
- return Scaffold(
- appBar: AppBar(title: Text('Label Capture')),
- body: _dataCaptureView,
- );
- }
-}
-```
-
-:::tip
-See the [Advanced Configurations](advanced.md) section for more information about how to customize the appearance of the overlays.
-:::
-
-## Start the Camera
-
-Next, you need to create a new instance of the [Camera](https://docs.scandit.com/data-capture-sdk/flutter/core/api/camera.html#class-scandit.datacapture.core.Camera) class to indicate the camera to stream previews and to capture images.
-
-When initializing the camera, you can pass the recommended camera settings for Label Capture.
-
-```dart
-Future setupCamera(DataCaptureContext context) async {
- // Get the default camera
- final camera = Camera.defaultCamera;
-
- if (camera == null) {
- throw StateError('Failed to initialize camera!');
- }
-
- // Apply recommended settings for LabelCapture
- final settings = LabelCapture.recommendedCameraSettings;
- await camera.applySettings(settings);
-
- // Set camera as the frame source for the context
- await context.setFrameSource(camera);
-}
-```
-
-Once the Camera, DataCaptureContext, DataCaptureView and LabelCapture are initialized, you can switch on the camera to start capturing labels.
-Typically, this is done on resuming the view and when the user granted permission to use the camera, or once the user pressed continue scanning after handling a previous scan.
-
-```dart
-await camera.switchToDesiredState(FrameSourceState.on);
-```
-
-## Provide Feedback
-
-Label Capture doesn't emit any sound or vibration automatically when a new label is recognized. This is because it may be that the label is not complete and you choose to ignore it and wait for the next recognition.
-
-However, we provide a [Feedback](https://docs.scandit.com/data-capture-sdk/flutter/core/api/feedback.html#class-scandit.datacapture.core.Feedback) class that can be uses to emit feedback when a label is recognized and successfully processed.
-
-You can use the default feedback, or configure your own sound or vibration.
-
-```dart
-final Feedback feedback = Feedback.defaultFeedback;
-```
-
-
-:::note
-Audio feedback is only played if the device is not muted.
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/label-capture/intro.md
deleted file mode 100644
index 1a6fde99..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/label-capture/intro.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-description: "import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx'; "
-
-sidebar_label: About Smart Label Capture
-title: About Smart Label Capture
-toc_max_heading_level: 4
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx';
-
-
-
-import ValidationFlow from '../../../partials/intro/_about_validation_flow.mdx';
-
-
-
-See [here](./advanced.md#validation-flow) for more details.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/label-capture/label-definitions.md b/versioned_docs/version-8.1.1/sdks/flutter/label-capture/label-definitions.md
deleted file mode 100644
index d4a8b8fc..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/label-capture/label-definitions.md
+++ /dev/null
@@ -1,178 +0,0 @@
----
-description: "A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans. "
-
-framework: flutter
-keywords:
- - flutter
-toc_max_heading_level: 4
----
-
-# Label Definitions
-
-A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans.
-
-Smart Label Capture provides a [Label Definition](https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api/label-definition.html#label-definition) API, enabling you to configure and extract structured data from predefined and custom labels. This feature provides a flexible way to recognize and decode fields within a specific label layout such as price tags, VIN labels, or packaging stickers without needing to write custom code for each label type.
-
-There are two approaches to using label definitions:
-
-- [**Pre-built Labels**](#pre-built-labels)
-- [**Custom Labels**](#custom-labels)
-
-## Pre-built Labels
-
-Smart Label Capture includes ready-made label definitions for common use cases. These pre-built options let you recognize and extract information from standard label types without creating custom configurations:
-
-
-
-### Example: Price label
-
-Use `LabelDefinition.priceCaptureDefinitionWithName()` to create a pre-built label definition for price labels, such as those found in retail environments:
-
-
-
-```dart
-// Create a pre-built price capture label definition.
-final priceLabel = LabelDefinition.priceCaptureDefinitionWithName('price-label');
-
-// Create the label capture settings using the builder pattern.
-final settings = LabelCaptureSettings.builder()
- .addLabel(priceLabel)
- .build();
-```
-
-## Custom Labels
-
-If Smart Label Capture’s pre-built options don’t fit your needs, define a custom label instead. Custom labels can combine your own fields with any of the available pre-built ones.
-
-:::tip
-The following characters are recognized: `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()-./:,$¶"`.
-:::
-
-### Custom Fields
-
-There are two types of custom fields you can define:
-
-
-
-The following builder methods are available to configure custom fields:
-
-| Method | Required | Description |
-|--------|----------|-------------|
-| `setValueRegexes()` / `setValueRegex()` | Yes | The regex patterns that identify the target string in the scanned content. |
-| `setAnchorRegexes()` / `setAnchorRegex()` | No | Used to specify keywords or phrases that help identify the context of the field. This is particularly useful when the label contains multiple fields that could match the same pattern (e.g., when both packaging and expiry dates are present). |
-| `setSymbologies()` / `setSymbology()` | Yes (barcode fields) | The barcode symbologies to match for barcode fields. This is important for ensuring that the field only captures data from specific barcode types, enhancing accuracy and relevance. |
-| `isOptional()` | No | Whether the field is optional or mandatory. This is helpful when certain fields may not be present on every scan. |
-
-#### Example: Fish Shipping Box
-
-This example shows how to create a custom label definition for a fish shipping box, which includes fields for barcode and batch number.
-
-
-
-```dart
-// Create a barcode field with Code 128 symbology.
-final barcodeField = CustomBarcodeBuilder()
- .setSymbology(Symbology.code128)
- .build('barcode-field');
-
-// Create a custom text field for the batch number.
-// Use setAnchorRegexes to specify keywords that help identify the field context.
-// Use setValueRegexes to specify the expected format of the field data.
-final batchNumberField = CustomTextBuilder()
- .setAnchorRegexes(anchorRegexes: ['Batch'])
- .setValueRegexes([r'FZ\d{5,10}'])
- .isOptional(true)
- .build('batch-number-field');
-
-// Create a label definition using the builder pattern.
-final shippingLabel = LabelDefinition.builder()
- .addCustomBarcode(barcodeField)
- .addCustomText(batchNumberField)
- .build('shipping-label');
-
-// Create the label capture settings.
-final settings = LabelCaptureSettings.builder()
- .addLabel(shippingLabel)
- .build();
-```
-
-### Pre-built Fields
-
-You can also build your label using pre-built fields. These common fields speed up integration because their `valueRegexes`, `anchorRegexes`, and `symbologies` are already predefined.
-
-Customization of pre-built fields is done via the `valueRegexes`, `anchorRegexes`, and `isOptional` methods, which allow you to specify the expected format of the field data.
-
-:::tip
-All pre-built fields come with default `valueRegexes` and `anchorRegexes` that are suitable for most use cases. **Calling either builder method is optional and will override the defaults**.
-
-The `resetAnchorRegexes()` method can be used to remove the default `anchorRegexes`, allowing you to rely solely on the `valueRegexes` for detection.
-:::
-
-import FeatureList from '@site/src/components/FeatureList';
-
-#### Barcode Fields
-
-
-
-#### Price and Weight Fields
-
-
-
-#### Date and Custom Text Fields
-
-
-
-#### Example: Hard disk drive label
-
-This example demonstrates how to configure a label definition for a hard disk drive (HDD) label, which typically includes common fields like serial number and part number.
-
-
-
-```dart
-// Create a serial number barcode field.
-// Pre-built fields like SerialNumberBarcode have predefined valueRegexes and anchorRegexes.
-final serialNumberField = SerialNumberBarcodeBuilder()
- .setSymbology(Symbology.code128)
- .build('serial-number');
-
-// Create a part number barcode field.
-final partNumberField = PartNumberBarcodeBuilder()
- .setSymbology(Symbology.code128)
- .build('part-number');
-
-// Create a label definition using the builder pattern.
-final hddLabel = LabelDefinition.builder()
- .addSerialNumberBarcode(serialNumberField)
- .addPartNumberBarcode(partNumberField)
- .build('hdd-label');
-
-// Create the label capture settings.
-final settings = LabelCaptureSettings.builder()
- .addLabel(hddLabel)
- .build();
-```
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/label-scanning.md b/versioned_docs/version-8.1.1/sdks/flutter/label-scanning.md
deleted file mode 100644
index 1fca1f79..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/label-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Label scanning enables you to capture and extract data from labels containing multiple barcodes and printed text, making it ideal for retail, logistics, and inventory management applications."
-toc_max_heading_level: 4
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Label Scanning
-
-import LabelScanning from '../../partials/_label-scanning.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-ar/get-started.md
deleted file mode 100644
index 6360bd51..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements: "
-
-sidebar_position: 2
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements:
-
-- Barcode AR: The data capture mode that is used for scan and check functionality.
-- A Barcode AR View: The pre-built UI elements used to highlight items to be checked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode AR Mode
-- Setup the Barcode AR View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-The first step to add find capabilities to your application is to create a new [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode AR Mode
-
-The main entry point for the Barcode AR Mode is the `BarcodeAr` object. You can configure the supported Symbologies through its [`BarcodeArSettings`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-ar-settings.html), and set up the list of items that you want MatrixScan AR to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```dart
-var settings = BarcodeArSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-The create the mode with the previously created settings:
-
-```dart
-var mode = BarcodeAr(settings);
-mode.setItemList(items);
-```
-
-## Setup the BarcodeArView
-
-MatrixScan AR’s built-in AR user interface includes buttons and overlays that guide the user through the scan and check process. By adding a [`BarcodeArView`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.check.ui.BarcodeArView), the scanning interface is added automatically to your application.
-
-The `BarcodeArView` is where you provide the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider) to supply the highlight and annotation information for the barcodes to be checked. If *null*, a default highlight is used and no annotations are provided.
-
-The `BarcodeArView` appearance can be customized through [`BarcodeArViewSettings`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-ar-view-settings.html#class-scandit.datacapture.barcode.check.ui.BarcodeArViewSettings), and the corresponding settings for your desired highlights and/or annotations, to match your application’s look and feel. The following settings can be customized:
-
-* Audio and haptic feedback
-* Torch button visibility and its position
-* Switch camera button visibility and its position
-* Zoom control visibility and its position
-* The size, colors, and styles of the highlight and annotation overlays
-
-```dart
-var viewSettings = BarcodeArViewSettings(
-// ...
-);
-```
-
-Next, create a `BarcodeArView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeArView` is automatically added to the provided parent view.
-
-```dart
-var barcodeArView = BarcodeArView.forModeWithViewSettings(dataCaptureContext, barcodeAr, viewSettings);
-```
-
-Connect the `BarcodeArView` to the Widget lifecycle. The widget is dependent on calling `widgetPaused` and `widgetResumed` to set up the camera and its overlays properly.
-
-```dart
-@override
-void didChangeAppLifecycleState(AppLifecycleState state) {
-if (state == AppLifecycleState.resumed) {
-// Resume scanning by calling the BarcodeArView widgetResumed function.
-// Under the hood, it re-enables the BarcodeAr mode and makes sure the view is properly
-// setup.
-barcodeArView.widgetResumed();
-} else {
-// Pause scanning by calling the BarcodeArView widgetPaused function.
-// Under the hood, it will disable the mode and free resources that are not needed in a
-// paused state.
-barcodeArView.widgetPaused();
-}
-}
-```
-
-## Register the Listener
-
-Register a [BarcodeArViewUiListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-ar-view.html#interface-scandit.datacapture.barcode.check.ui.IBarcodeArViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the session.
-
-```dart
-barcodeArView.uiListener = this
-
-@override
-void didTapFinishButton(Set foundItems) {
-}
-```
-
-## Start searching
-
-As soon as everything is set up, control the [BarcodeArView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.check.ui.BarcodeArView) to start the search.
-
-```dart
-barcodeArView.start();
-```
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-ar/intro.md
deleted file mode 100644
index 20b375a6..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# About MatrixScan AR
-
-import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/advanced.md
deleted file mode 100644
index 911e15cf..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-description: "MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Advanced Configurations
-
-MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs.
-
-## Scanning Against A List
-
-There is a function to set a list of expected barcodes if you are scanning against a manifest or item list. If this is used, a progress bar is added to the UI, so you can keep track of the process while scanning.
-
-When scanning against a list, the UI will also show red icons to mark scanned barcodes that aren’t present on the list.
-
-```dart
-List targetBarcodes = [];
-targetBarcodes.add(TargetBarcode.create("data", 1));
-var captureList = BarcodeCountCaptureList.create(this, targetBarcodes);
-barcodeCount.setBarcodeCountCaptureList(captureList);
-```
-
-## Clustering
-
-import Clustering from '../../../partials/count/_clustering.mdx'
-
-
-
-## Tote Mapping
-
-import Totes from '../../../partials/count/_tote-mapping.mdx'
-
-
-
-## Strap Mode
-
-It can be difficult to reach the shutter button if the smart device is attached to the user’s wrist by a strap or similar. In this instance, you can enable a floating shutter button that can be positioned by the end user in a more ergonomically suitable position.
-
-```dart
-barcodeCountView.shouldShowFloatingShutterButton = true;
-```
-
-## Filtering
-
-If you have several types of barcodes on your label/package, you may want to scan only one of them.
-
-In this case, you can filter the others out. This can be done by symbology, symbol count, or setting a regex.
-
-For example, you might want to scan only Code 128 barcodes and no PDF417 ones.
-
-```dart
-var settings = new BarcodeCountSettings();
-barcodeCountSettings.enableSymbologies(enabledSymbologies);
-
-Set excludedSymbologies = {};
-excludedSymbologies.add(Symbology.pdf417);
-var filterSettings = settings.filterSettings;
-filterSettings.excludedSymbologies(excludedSymbologies);
-```
-
-Or, you want to exclude all the barcodes starting with 4 numbers:
-
-```dart
-var settings = new BarcodeCountSettings();
-
-var filterSettings = settings.filterSettings;
-filterSettings.excludedCodesRegex("^1234.*");
-```
-
-By default the filters applied to the relevant barcodes are transparent, but you can use [`BarcodeFilterHighlightSettings`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-filter-highlight-settings.html#barcode-filter-highlight-settings) to change the color and level of transparency.
-
-
-
-## Clear Screen Button
-
-There are situations in which the user may find it helpful to clean up their screen (i.e. clear all the AR
-overlays) but keep the list of barcodes scanned.
-
-If this is the case, you can enable the “Clear screen” button.
-
-```dart
-barcodeCountView.shouldShowClearHighlightsButton = true;
-```
-
-## Customize Overlay Colors
-
-MatrixScan Count comes with recommended and user-tested AR overlays. However, if you wish to customize the overlay colors, once the overlay has been added, you can conform to the [BarcodeCountViewListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view-listener.html#interface-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener) interface. The methods [BarcodeCountViewListener.brushForRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForRecognizedBarcode) and [BarcodeCountViewListener.brushForUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForUnrecognizedBarcode) are invoked every time a new recognized or unrecognized barcode appears. These can be used to set a brush that will be used to highlight that specific barcode in the overlay. Keep in mind that these methods are relevant only when using the style [BarcodeCountViewStyle.dot](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view.html#value-scandit.datacapture.barcode.count.ui.BarcodeCountViewStyle.Dot).
-
-```dart
-@override
-Brush? brushForRecognizedBarcode(BarcodeCountView view, TrackedBarcode trackedBarcode) {
-// Return a custom brush
-}
-
-@override
-Brush? brushForUnrecognizedBarcode(BarcodeCountView view, TrackedBarcode trackedBarcode) {
-// Return a custom brush
-}
-```
-
-## Notifications
-
-If you want to be notified when a user taps on an overlay, you need to implement the[BarcodeCountViewListener.didTapRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnRecognizedBarcodeTapped) and [BarcodeCountViewListener.didTapUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped) methods.
-
-```dart
-@override
-void didTapRecognizedBarcode(BarcodeCountView view, TrackedBarcode trackedBarcode) {
-// Do something with the tapped barcode
-}
-
-@override
-void didTapUnrecognizedBarcode(BarcodeCountView view, TrackedBarcode trackedBarcode) {
-// Do something with the tapped barcode
-}
-```
-
-## Disable UI Elements
-
-The UI is an integral part of MatrixScan Count and we do not recommend that you use it without it. However,
-if you wish to disable UI elements you can do it as follows.
-
-Disable buttons:
-
-```dart
-barcodeCountView.shouldShowListButton = false;
-barcodeCountView.shouldShowExitButton = false;
-barcodeCountView.shouldShowShutterButton = false;
-```
-
-Disable feedback and hints:
-
-```dart
-barcodeCountView.shouldShowUserGuidanceView = false;
-barcodeCountView.shouldShowHints = false;
-```
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/get-started.md
deleted file mode 100644
index 997fe1aa..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,133 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Count to your application. "
-
-sidebar_position: 2
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Count to your application.
-
-The general steps are:
-
-1. Create a new Data Capture Context instance
-2. Configure the Barcode Count Mode
-3. Obtain camera instance and set frame source used
-4. Register the listener to be informed when scanned phase is over
-5. Set capture view and AR overlays
-6. Set up the camera so that it switches on when you are in scanning view
-7. Store and retrieve scanned barcodes
-8. Reset Barcode Count mode
-9. List and Exit callbacks
-
-## Create A New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```sh
-var dataCaptureContext = DataCaptureContext.forLicenseKey('-- ENTER YOUR SCANDIT LICENSE KEY HERE --');
-```
-
-## Configure The Barcode Count Mode
-
-The main entry point for the Barcode Count Mode is the [BarcodeCount](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) object. It is configured through [BarcodeCountSettings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count-settings.html#class-scandit.datacapture.barcode.count.BarcodeCountSettings) and allows you to register one or more listeners that are informed whenever a scan phase has finished.
-
-For this tutorial, we will set up Barcode Count for tracking EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```dart
-var settings = new BarcodeCountSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-If you are sure that your environment will only have unique barcodes (i.e. no duplicated values), you can also enable [BarcodeCountSettings.expectsOnlyUniqueBarcodes](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count-settings.html#property-scandit.datacapture.barcode.count.BarcodeCountSettings.ExpectsOnlyUniqueBarcodes). This option improves scanning performance as long as you are sure that no duplicates will be present. Next, create a
-[BarcodeCount](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) instance with the [Data Capture Context](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) and the settings initialized in the previous step:
-
-```dart
-var barcodeCount = BarcodeCount(settings);
-dataCaptureContext.addMode(barcodeCount);
-```
-
-## Obtain Camera Instance And Set Frame Source Used
-
-Our recommended camera settings should be used to achieve the best performance and user experience. The following couple of lines show how to get the recommended settings for MatrixScan Count and create the camera from it:
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```dart
-dataCaptureContext.setFrameSource(camera);
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [BarcodeCountListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface and register the listener.
-
-```dart
-barcodeCount.addListener(this);
-```
-
-[BarcodeCountListener.didScan()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan) is called when the scan phase has finished and results can be retrieved from [BarcodeCountSession](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession).
-
-## Set Capture View And AR Overlays
-
-MatrixScan Count’s built-in AR user interface includes buttons and overlays that guide the user through the capturing process. By adding a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) to your view hierarchy:
-
-```dart
-var barcodeCountView = BarcodeCountView.forContextWithMode(dataCaptureContext, barcodeCount);
-```
-
-## Set Up The Camera So That It Switches On When You Are In Scanning View
-
-The camera is not automatically turned on when you are in a scanning view. You need to set up the camera so that it switches on when needed and it switches off when not needed anymore. Similarly [BarcodeCount](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) should also be enabled and disabled. For instance, you should switch off the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is not visible anymore (including when the app goes in the background), similarly you want to switch on the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is visible (including when the app goes to the foreground). One way to achieve this is the following:
-
-```dart
-@override
-void didChangeAppLifecycleState(AppLifecycleState state) {
-if (state == AppLifecycleState.resumed) {
-camera.switchToDesiredState(FrameSourceState.on);
-} else if (state == AppLifecycleState.paused) {
-camera.switchToDesiredState(FrameSourceState.off);
-}
-}
-```
-
-## Store And Retrieve Scanned Barcodes
-
-The values captured as part of the scanning process are part of the [session](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession), and the session is not accessible outside [BarcodeCountListener.didScan()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan). Therefore, we recommend that you store the values to present a list, for example when the user taps the list icon. To do this, make a copy of [BarcodeCountSession.recognizedBarcodes](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count-session.html#property-scandit.datacapture.barcode.count.BarcodeCountSession.RecognizedBarcodes):
-
-```dart
-@override
-void didScan(BarcodeCount barcodeCount, BarcodeCountSession session, Future Function() getFrameData) {
- allRecognizedBarcodes = session.recognizedBarcodes.values;
-}
-```
-
-## Reset Barcode Count Mode
-
-When the scanning process is over, you need to reset the mode to make it ready for the next process. This clears the list of barcodes scanned and all the AR overlays.
-
-To reset Barcode Count’s scanning process, you need to call the [BarcodeCount.reset()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-count.html#method-scandit.datacapture.barcode.count.BarcodeCount.Reset) method.
-
-```dart
-barcodeCount.reset();
-```
-
-## List And Exit Callbacks
-
-The UI includes two icons (buttons) named “List” and “Exit”. The SDK provides the callbacks so you can add the desired action when those icons are tapped by the user.
-
-```dart
-@override
-void didTapListButton(BarcodeCountView view) {
-// Show the current progress but the order is not completed
-}
-
-@override
-void didTapExitButton(BarcodeCountView view) {
-// The order is completed
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/intro.md
deleted file mode 100644
index 26a90c75..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-count/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# About MatrixScan Count
-
-import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/advanced.md
deleted file mode 100644
index 1e635b18..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-description: "MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## Set up a listener on the BarcodeFind mode
-
-You may want more fine-grained knowledge over the different events happening during the life of the BarcodeFind mode, such as when the search starts, pauses and stops. To do this, you can directly register a [BarcodeFindListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself.
-
-Be aware that these listeners will be called from a background thread.
-
-```dart
-mode.addListener(this)
-
-class BarcodeFindListenerImpl implements BarcodeFindListener {
- @override
- void didPauseSearch(Set foundItems) {
- // The mode was paused
- }
-
- @override
- void didStartSearch() {
- // The mode was started
- }
-
- @override
- void didStopSearch(Set foundItems) {
- // The mode was stopped after the finish button was clicked
- }
-}
-```
-
-## UI configuration
-
-The [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) will by default show a set of UI elements, which can be optionally hidden:
-
-- A play/pause button
-- A finish button
-- A searched items carousel
-- Guidance hints
-
-There is also a progress bar but this is hidden by default.
-
-Each of these elements can be shown or hidden at will.
-
-```dart
-barcodeFindView.shouldShowCarousel = false;
-barcodeFindView.shouldShowProgressBar = true;
-// …
-```
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/get-started.md
deleted file mode 100644
index 6e5d6dc8..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,135 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements: "
-
-sidebar_position: 2
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-The general steps are:
-
-1. Create a new Data Capture Context instance.
-2. Configure the Barcode Find Mode.
-3. Setup the BarcodeFindView.
-4. Register a listener to be notified with found items
-5. Start searching
-
-## Create a new Data Capture Context instance
-
-The first step to add find capabilities to your application is to create a new [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Find Mode
-
-The main entry point for the Barcode Find Mode is the [BarcodeFind](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind) object. You can configure the supported Symbologies through its [BarcodeFindSettings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight (e.g. a list of products).
-
-For this tutorial, we will set up Barcode Find for tracking EAN13 codes. Change this to the correct symbologies for your use case (e.g. Code 128, Code 39…).
-
-First create the settings:
-
-```dart
-var settings = BarcodeFindSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-Then you have to create the list of items that will be actively searched for.
-
-In this tutorial, let’s look up two items based on their EAN13 codes. We will attach to the first item some optional information that can be used by the BarcodeFindView to display extra information.
-
-```dart
-var items = {
-BarcodeFindItem(BarcodeFindItemSearchOptions("9783598215438"),
-BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)),
-new BarcodeFindItem(
- BarcodeFindItemSearchOptions("9783598215414"), null) // Item information is optional, used for display only
- };
-```
-
-Create the mode with the previously created settings and set the items:
-
-```dart
-var mode = BarcodeFind(settings);
-mode.setItemList(items);
-```
-
-## Setup the BarcodeFindView
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView), the scanning interface (camera preview and searching UI elements) will be added automatically to your application.
-
-The BarcodeFindView appearance can be customized through [BarcodeFindViewSettings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings):
-
-- Colors of dots in augmented reality overlay
-- Enable sound and haptic alerts
-
-```dart
-var viewSettings = BarcodeFindViewSettings(
-Colors.green, // item in list color
-Colors.red, // item not in list color
-true, // sound enabled
-true // haptic enabled
-);
-```
-
-Construct a new BarcodeFindView.
-
-```dart
-var barcodeFindView = BarcodeFindView.forModeWithViewSettings(dataCaptureContext, barcodeFind, viewSettings);
-```
-
-Connect the BarcodeFindView to the Widget lifecycle. The widget is dependent on calling widgetPaused and widgetResumed to set up the camera and its overlays properly.
-
-```dart
-@override
-void didChangeAppLifecycleState(AppLifecycleState state) {
-if (state == AppLifecycleState.resumed) {
-// Resume finding by calling the BarcodeFindView widgetResumed function.
-// Under the hood, it re-enables the BarcodeFind mode and makes sure the view is properly
-// setup.
-barcodeFindView.widgetResumed();
-} else {
-// Pause finding by calling the BarcodeFindView widgetPaused function.
-// Under the hood, it will disable the mode and free resources that are not needed in a
-// paused state.
-barcodeFindView.widgetPaused();
-}
-}
-```
-
-## Register a listener to be notified with found items
-
-The BarcodeFindView displays next to its shutter button a handy “finish” button. Register a [BarcodeFindViewUiListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-find-view.html#interface-scandit.datacapture.barcode.find.ui.IBarcodeFindViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```dart
-barcodeFindView.uiListener = this
-
-@override
-void didTapFinishButton(Set foundItems) {
-// This method is called when the user presses the
-// finish button. It returns the list of all items that were found during
-// the session.
-}
-```
-
-## Start searching
-
-As soon as everything is set up, control the [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) to start the search.
-
-```dart
-barcodeFindView.startSearching();
-```
-
-This is the equivalent of pressing the “Play” button programmatically. It will start the search process, turn on the camera and hide the item carousel.
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/intro.md
deleted file mode 100644
index 99ba25c6..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-find/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/advanced.md
deleted file mode 100644
index a5a89db2..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-description: "MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Advanced Configurations
-
-MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.
-
-## BarcodePick Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodePick` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodePickListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-pick-listener.html#interface-scandit.datacapture.barcode.pick.IBarcodePickListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```dart
-mode.addListener(this)
-
- class BarcodePickListenerImpl implements BarcodePickListener
- {
- @override
- void onObservationStarted() {
- // The mode was started
- }
-
- @override
- void onObservationStopped {
- // The mode was stopped
- }
- }
-```
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/get-started.md
deleted file mode 100644
index 3c7c983c..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,143 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements: "
-
-sidebar_position: 2
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements:
-
-- Barcode Pick: The data capture mode that is used for scan and pick functionality.
-- A Barcode Pick View: The pre-built UI elements used to highlight items to be picked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Pick Mode
-- Setup the Barcode Pick View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Pick Mode
-
-The main entry point for the Barcode Pick Mode is the `BarcodePick` object. You can configure the supported Symbologies through its [`BarcodePickSettings`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-pick-settings.html), and set up the list of items that you want MatrixScan Pick to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```dart
-var settings = BarcodePickSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-Then you have to create the list of items that will be picked and quantity to be picked for each item.
-
-```dart
-var items = {
- new BarcodePickProduct(
- BarcodePickProductIdentifier("9783598215438")),
- BarcodePickProductQuantityToPick(3),
- new BarcodePickProduct(
- BarcodePickProductIdentifier("9783598215414")),
- BarcodePickProductQuantityToPick(3)
-};
-```
-
-Create the mode with the previously created settings:
-
-```dart
-var mode = BarcodePick(settings);
-```
-
-## Setup the `BarcodePickView`
-
-MatrixScan Pick’s built-in AR user interface includes buttons and overlays that guide the user through the scan and pick process. By adding a [`BarcodePickView`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-pick-view.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickView), the scanning interface is added automatically to your application.
-
-The `BarcodePickView` appearance can be customized through [`BarcodePickViewSettings`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-pick-view-settings.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickViewSettings) to match your application’s look and feel. The following settings can be customized:
-
-* Colors of dots in augmented reality overlay
-* Enable sound and haptic alerts
-* Guidelines text
-* Showing hints
-* Finish button
-* Pause button
-* Zoom button
-* Loading Dialog
-
-```dart
-var viewSettings = new BarcodePickViewSettings(
- // ...
-);
-```
-
-Construct a new `BarcodePickView`.
-
-```dart
-var BarcodePickView = BarcodePickView.forModeWithViewSettings(dataCaptureContext, BarcodePick, viewSettings);
-```
-
-Connect the `BarcodePickView` to the Widget lifecycle. The widget is dependent on calling `widgetPaused` and `widgetResumed` to set up the camera and its overlays properly.
-
-```dart
-@override
-void didChangeAppLifecycleState(AppLifecycleState state) {
- if (state == AppLifecycleState.resumed) {
- // Resume finding by calling the BarcodePickView widgetResumed function.
- // Under the hood, it re-enables the BarcodePick mode and makes sure the view is properly
- // setup.
- BarcodePickView.widgetResumed();
- } else {
- // Pause finding by calling the BarcodePickView widgetPaused function.
- // Under the hood, it will disable the mode and free resources that are not needed in a
- // paused state.
- BarcodePickView.widgetPaused();
- }
-}
-```
-
-## Register the Listener
-
-The `BarcodePickView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodePickViewUiListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-pick-view.html#interface-scandit.datacapture.barcode.pick.ui.IBarcodePickViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the session.
-
-```dart
-BarcodePickView.uiListener = this
-
-@override
-void didTapFinishButton(Set foundItems) {
- // This method is called when the user presses the
- // finish button. It returns the list of all items that were found during
- // the session.
-}
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `BarcodePickView.start()`.
-
-```dart
-BarcodePickView.start();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/intro.md
deleted file mode 100644
index 2e75d667..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-description: "MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# About MatrixScan Pick
-
-MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code.
-
-MatrixScan Pick is implemented through functionality provided by [`BarcodePick`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-pick.html).
-
-## UI Overview
-
-* MatrixScan Pick is inspired by the familiar paradigm of a camera, including a shutter button that the user operates in order start and pause the scanning view. The Finish button is used at any time to exit the workflow.
-* It highlights items with obvious and colorful visual dots on screen.
-* When paused, MatrixScan Pick freezes the display at the last view, even if the device is moved. The Play button transitions back to the live view.
-* Textual guidance is displayed from the beginning of the session and as the workflow progresses, informing of the user of changes in item status (i.e. Detected, Ignored, To-Pick, or Picked).
-* Status icons can be defined to provide further information to users for a given barcode. In the live view, the icons are displayed but not tappable. In the frozen view, the status icons can be tapped and expanded to provide additional textual information.
-* The Quick Start Guide takes you through the process to install the full UI. However, you can then customize it by choosing to remove any elements on the screen except for the AR overlays. This allows you to create custom UIs suitable for your own workflows.
-
-
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../barcode-symbologies.mdx) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/advanced.md
deleted file mode 100644
index 0fd0cd14..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/advanced.md
+++ /dev/null
@@ -1,131 +0,0 @@
----
-description: "There are two ways to add advanced AR overlays to a Data Capture View: "
-
-sidebar_position: 3
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
-
----
-
-# Adding AR Overlays
-
-There are two ways to add advanced AR overlays to a Data Capture View:
-
-- Take advantage of the [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, which provides a ready-to-use implementation for view-based AR overlays.
-- Provide your own custom implementation, using the function [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) to retrieve the barcode’s current screen position for each frame.
-
-:::note
-
-- The first way is the easiest, as it takes care of adding, removing and animating the overlay’s views whenever needed.
- It’s also flexible enough to cover the majority of use cases.
-- You can always handle touch events on the views you create like you normally would.
- :::
-
-## Using BarcodeBatchAdvancedOverlay
-
-As mentioned above, the advanced overlay combined with its [listener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) offers an easy way of adding augmentations to your [DataCaptureView](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView). In this guide we will add a view above each barcode showing its content.
-
-First of all, create a new instance of [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) and add it to the [DataCaptureView](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-
-```dart
-var overlay = BarcodeBatchAdvancedOverlay.forView(barcodeBatch, dataCaptureView);
-```
-
-At this point, you have two options.
-
-- Add a [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-- Use the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) to specify the view, anchor and offset for each barcode.
-
-:::note
-The second way will take priority over the first one, which means that if a view for a barcode has been set using [BarcodeBatchAdvancedOverlay.setWidgetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [BarcodeBatchAdvancedOverlayListener.widgetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) won’t be invoked for that specific barcode.
-:::
-
-Using [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener)
-
-- You need to implement [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener). This interface’s methods are invoked every time a barcode is newly tracked.
-- [BarcodeBatchAdvancedOverlayListener.widgetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning _null_ will show no view.
-- [BarcodeBatchAdvancedOverlayListener.anchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through [Anchor](https://docs.scandit.com/data-capture-sdk/flutter/core/api/anchor.html#enum-scandit.datacapture.core.Ancho). Be aware that it anchors the
- view’s center to the anchor point. To achieve anchoring the top of the view or the bottom etc. you will have to set an offset as explained in the next point.
-- [BarcodeBatchAdvancedOverlayListener.offsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [PointWithUnit](https://docs.scandit.com/data-capture-sdk/flutter/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```dart
-@override
-Widget widgetForTrackedBarcode(BarcodeBatchAdvancedOverlay overlay, TrackedBarcode trackedBarcode) {
-// Create and return the view you want to show for this tracked barcode. You can also return null, to have no view for
-this barcode.
-return ARWidget(trackedBarcode.barcode.data);
-}
-
-@override
-Anchor anchorForTrackedBarcode(BarcodeBatchAdvancedOverlay overlay, TrackedBarcode trackedBarcode) {
-// As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode
-quadrilateral.
-// Use the function 'offsetForTrackedBarcode' below to adjust the position of the view by providing an offset.
-return Anchor.topCenter;
-}
-
-@override
-PointWithUnit offsetForTrackedBarcode(BarcodeBatchAdvancedOverlay overlay, TrackedBarcode trackedBarcode) {
-// This is the offset that will be applied to the view.
-// You can use MeasureUnit.fraction to give a measure relative to the view itself, the sdk will take care of transforming this into pixel size.
-// We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by half of the view's height.
-return PointWithUnit(DoubleWithUnit(0, MeasureUnit.fraction), DoubleWithUnit(-1, MeasureUnit.fraction));
-}
-```
-
-Using the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay)
-
-The function [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) gives you access to a
-[session](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession), which contains all added, updated and removed tracked barcodes. From here you can create the view you want to display, and then call [BarcodeBatchAdvancedOverlay.setWidgetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), [BarcodeBatchAdvancedOverlay.setAnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode) and [BarcodeBatchAdvancedOverlay.setOffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```dart
-@override
-void didUpdateSession(BarcodeBatch barcodeBatch, BarcodeBatchSession session) {
-for (final trackedBarcode in session.addedTrackedBarcodes) {
-Widget arWidget = ARWidget(trackedBarcode.barcode.data);
-overlay.setWidgetForTrackedBarcode(arWidget, trackedBarcode);
-overlay.setAnchorForTrackedBarcode(Anchor.topCenter, trackedBarcode);
-overlay.setOffsetForTrackedBarcode(
-PointWithUnit(DoubleWithUnit(0, MeasureUnit.fraction), DoubleWithUnit(-1, MeasureUnit.fraction)),
-trackedBarcode);
-}
-}
-```
-
-## Provide your own custom implementation
-
-If you do not want to use the overlay, it is also possible to add augmented reality features based on the tracking identifier and the [quadrilateral](https://docs.scandit.com/data-capture-sdk/flutter/core/api/common.html#struct-scandit.datacapture.core.Quadrilateral) coordinates that every tracked barcode has. Below are some pointers.
-
-- Set a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) on the barcode tracking
-- In the [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function fetch the [added](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.AddedTrackedBarcodes) and [removed](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.RemovedTrackedBarcodes) tracked barcodes.
-- Create and show the views for the added barcodes.
-- Remove the views for the lost barcodes.
-- Add a method that is called 60fps when [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) is enabled. In this method, for each [TrackedBarcode](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/tracked-barcode.html#class-scandit.datacapture.barcode.batch.TrackedBarcode) on-screen, update the position based on
- [TrackedBarcode.location](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location). Please note that there is no need to animate the change of location, the change of position will happen frequently enough that the view will look as it is animated.
-
-:::note
-The frame coordinates from [TrackedBarcode.location](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location) need to be mapped to view coordinates, using [DataCaptureView.viewQuadrilateralForFrameQuadrilateral()](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#method-scandit.datacapture.core.ui.DataCaptureView.MapFrameQuadrilateralToView).
-:::
-
-```dart
-@override
-void didUpdateSession(BarcodeBatch barcodeBatch, BarcodeBatchSession session) {
-for (final lostTrackIdentifier in session.removedTrackedBarcodes) {
-// You now know the identifier of the tracked barcode that has been lost.
-// Usually here you would remove the views associated.
-}
-
-for (final trackedBarcode in session.addedTrackedBarcodes) {
-// Fixed identifier for the tracked barcode.
-var trackingIdentifier = trackedBarcode.identifier;
-
-// Current location of the tracked barcode.
-var location = trackedBarcode.location;
-view.viewQuadrilateralForFrameQuadrilateral(location).then((quadrilateral) => {
-// You now know the location of the tracked barcode.
-});
-}
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/get-started.md
deleted file mode 100644
index bb233fc7..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/get-started.md
+++ /dev/null
@@ -1,151 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan to your application. "
-
-sidebar_position: 2
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the MatrixScan mode
-- Using the built-in camera
-- Visualizing the scan process
-- Providing feedback
-- Disabling barcode tracking
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var context = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [BarcodeBatchSettings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) that will get informed whenever a new frame has been processed.
-
-Most of the times, you will not need to implement a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener), instead you will add a [BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and implement a [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-
-For this tutorial, we will setup Barcode Batch for tracking QR codes.
-
-```dart
-var settings = BarcodeBatchSettings()
-..enableSymbology(Symbology.qr, true);
-```
-
-Next, create a [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance with the data capture context and the settings initialized in the previous steps:
-
-```dart
-var barcodeBatch = BarcodeBatch(settings);
-dataCaptureContext.addMode(barcodeBatch);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```dart
-var cameraSettings = BarcodeBatch.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-var camera = Camera.defaultCamera..applySettings(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/flutter/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```dart
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.on](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```dart
-camera.switchToDesiredState(FrameSourceState.on);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```dart
-var dataCaptureView = DataCaptureView.forContext(dataCaptureContext);
-// Add the dataCaptureView to your widget tree
-```
-
-To visualize the results of Barcode Batch, first you need to add the following [overlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay):
-
-```dart
-var overlay = BarcodeBatchBasicOverlay.withBarcodeBatchForView(barcodeBatch, dataCaptureView);
-```
-
-Once the overlay has been added, you should implement the [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) interface. The method [BarcodeBatchBasicOverlayListener.brushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a [brush](https://docs.scandit.com/data-capture-sdk/flutter/core/api/ui/brush.html#class-scandit.datacapture.core.ui.Brush) that will be used to highlight that specific barcode in the [overlay](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay).
-
-```dart
-@override
-Brush brushForTrackedBarcode(BarcodeBatchBasicOverlay overlay, TrackedBarcode trackedBarcode) {// Return a custom
-Brush based on the tracked barcode.
-// Return a custom Brush based on the tracked barcode.
-}
-```
-
-If you would like to make the highlights tappable, you need to implement the [BarcodeBatchBasicOverlayListener.didTapTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped) method.
-
-```dart
-@override
-void didTapTrackedBarcode(BarcodeBatchBasicOverlay overlay, TrackedBarcode trackedBarcode) {
-// A tracked barcode was tapped.
-}
-```
-
-## Get Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) to provide a similar experience. Below, we use the default [Feedback](https://docs.scandit.com/data-capture-sdk/flutter/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it with your own sound or vibration if you want.
-
-Next, use this [feedback](https://docs.scandit.com/data-capture-sdk/flutter/core/api/feedback.html#class-scandit.datacapture.core.Feedback) in a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener):
-
-```dart
-class FeedbackListener implements BarcodeBatchListener {
-@override
-void didUpdateSession(BarcodeBatch barcodeBatch, BarcodeBatchSession session) {
-if (session.addedTrackedBarcodes.isNotEmpty) {
-feedback.emit();
-}
-}
-}
-```
-
-[BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The [session](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession) parameter contains information about the currently tracked barcodes, in particular, the newly recognized ones. We check if there are any and if so, we emit the feedback.
-
-As the last step, register the listener responsible for emitting the feedback with the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance.
-
-```dart
-barcodeBatch.addListener(feedbackListener);
-```
-
-## Disabling Barcode Batch
-
-To disable barcode tracking set [BarcodeBatch.isEnabled](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/barcode-batch.html#property-scandit.datacapture.barcode.batch.BarcodeBatch.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or put it in standby calling [SwitchToDesiredState](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of
-[StandBy](https://docs.scandit.com/data-capture-sdk/flutter/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.Standby).
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/intro.md
deleted file mode 100644
index 43bb92d3..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/matrixscan/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/flutter/migrate-5-to-6.mdx
deleted file mode 100644
index 3400c3b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/flutter/migrate-6-to-7.mdx
deleted file mode 100644
index f48d0c49..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/flutter/migrate-7-to-8.mdx
deleted file mode 100644
index 87e83e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/parser/get-started.md
deleted file mode 100644
index 3f907b90..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/parser/get-started.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-description: "The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: , and , , . "
-
-sidebar_position: 2
-pagination_prev: null
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/flutter/parser/hibc.html), [GS1 Application Identifier (https://docs.scandit.com/data-capture-sdk/flutter/parser/AI) system](https://docs.scandit.com/data-capture-sdk/flutter/parser/gs1ai.html) and [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/flutter/parser/swissqr.html), [VIN Vehicle Identification
-Number](https://docs.scandit.com/data-capture-sdk/flutter/parser/vin.html), [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/flutter/parser/iata-bcbp.html).
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Format-Specific Documentation
-
-- [Supported Data Formats](https://docs.scandit.com/data-capture-sdk/flutter/parser/formats.html)
-- [HIBC](https://docs.scandit.com/data-capture-sdk/flutter/parser/hibc.html)
-- [GS1 AI](https://docs.scandit.com/data-capture-sdk/flutter/parser/gs1ai.html)
-- [GS1 Digital Link](https://docs.scandit.com/data-capture-sdk/flutter/parser/gs1-digital-link.html)
-- [Swiss QR](https://docs.scandit.com/data-capture-sdk/flutter/parser/swissqr.html)
-- [VIN](https://docs.scandit.com/data-capture-sdk/flutter/parser/vin.html)
-- [IATA BCBP](https://docs.scandit.com/data-capture-sdk/flutter/parser/iata-bcbp.html)
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-First of all, include the ScanditParser library and its dependencies to your project, if any.
-
-## Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/release-notes.md b/versioned_docs/version-8.1.1/sdks/flutter/release-notes.md
deleted file mode 100644
index e55c924c..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/release-notes.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-description: "Release notes and updates for the Scandit Flutter SDK."
-toc_max_heading_level: 3
-displayed_sidebar: flutterSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Id
-
-* Fixed a memory issue leading to a persistent black screen during ID Capture startup
-
-#### Core
-
-* Fixed a crash in the DataCaptureView overlay management that could occur during rapid view updates
-* Fixed an issue where the camera preview appeared rotated 90 degrees in landscape orientation
-* Fixed scanning against a list in MatrixScan Count
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* [SparkScan](/sdks/flutter/sparkscan/intro.md) is not limited to only barcodes anymore, but can also scan items - in other words any combinations of barcodes and text present on a target to be scanned. The feature is available in beta at the moment, please contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-* Added, in `BarcodeAr`, new classes to create custom highlights (via `BarcodeArCustomHighlight`) and custom annotations (via `BarcodeArCustomAnnotation`).
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-* Our SDK can now scan the following documents both in single-side and double-side mode:
- - All Mexican DLs
- - Mexican Voter Cards
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-#### Smart Label Capture
-
-* Incremental improvements in accuracy across all use-cases for the OCR model powering Smart Label Capture.
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-#### Smart Label Capture
-
-* Validation Flow: Manually input values for barcodes will go through a stricter validation. Some values may no longer be accepted if they do not match the symbology specs for the symbology’s definition
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed a bug in the default color of BarcodeCapture highlights
-* Fixed an issue where popover annotations with HIGHLIGHT_TAP_AND_BARCODE_SCAN trigger could not be opened again
-* Fixed an issue in BarcodeSequence where camera would not be ON in portrait
-* Fixed an issue where SparkScan mini preview would sometimes stay in regular when entering target mode
-* Fixed the app becoming unresponsive after being in the background for extended periods
-* Added the `cameraStateOnStop` property to BarcodeFindView to optimize camera transitions when switching between modes
-* Fixed an issue where the successful notification in BarcodeFind was not displayed
-
-#### Id
-
-* Fixed an issue where front expiry date anonymization rectangle is erroneously drawn on front and back
-* Fixed a bug that prevented VizResult anonymization of the following fields: additionalAddressInformation, bloodType, employer, fathersName, issuingAuthority, maritalStatus, mothersName, placeOfBirth, profession, race, residentialStatus
-* Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses
-
-#### Smart Label Capture
-
-* Fixed an issue where LabelCapture fields would return default data in some frameworks
-
-#### Core
-
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-* Fixed an issue where barcode scanning would permanently stop after the app returned from background, particularly when camera permission dialogs were shown during initialization
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed an issue where the successful hint in BarcodeFind was not displayed
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed MatrixScan Count when using the “Scanning Against a List” feature which previously just ignored the given list
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* Upgraded all sample applications to build correctly with Flutter 3.35.3.
-
-#### Barcode
-
-* Updated the Gradle version for all sample applications to 8.14.3.
-* `BarcodeBatchBasicOverlay` and `BarcodeBatchBasicOverlayListener` now allow for nullable brushes.
-* MatrixScan AR now allows for the use of custom highlights and annotations.
-
-#### Smart Label Capture
-
-* We’re introducing an enhancement that makes Smart Label Capture more robust and scalable by complementing its on-device model with a larger, more capable model. When the on-device model can’t capture certain labels, the SDK automatically escalates to this enhancement to handle complex or unforeseen cases with high accuracy and reliability. This capability is currently available in `beta`. If you’re interested in trying it, please contact Scandit Support. For configuration details, see `labelDefinition.adaptiveRecognitionEngine`.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-* Removed the `ExtendedSparkScanViewUiListener` as the same functionality is offered by `SparkScanViewUiListener`.
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`.
-
-### Bug Fixes
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/flutter/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/flutter/scanning-composite-codes.mdx
deleted file mode 100644
index d517a134..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/single-scanning.md b/versioned_docs/version-8.1.1/sdks/flutter/single-scanning.md
deleted file mode 100644
index d8ab179e..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/single-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import SingleScanning from '../../partials/_single-scanning.mdx'; "
-
-toc_max_heading_level: 4
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Single Scanning
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/advanced.md
deleted file mode 100644
index 8f554957..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/advanced.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-description: "SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: flutter
-keywords:
- - flutter
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Hardware Button Control
-
-Allowing the end user to control the scanner with hardware buttons can be useful if your users typically wear gloves. It can also improve ergonomics in some workflows.
-
-SparkScan offers a built-in API to let you do this via [SparkScanViewSettings.hardwareTriggerEnabled](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled).
-
-### Trigger Error State
-
-You may want to introduce logic in your app to show an error message when scanning specific barcodes (e.g. barcodes already added to the list, barcodes from the wrong lot etc.). SparkScan offers a built-in error state you can easily set to trigger an error feedback prompt to the user.
-
-You can customize:
-
-- The text message.
-- The timeout of the error message: the scanner will be paused for the specified amount of time, but the user can quickly restart the scanning process by tapping the trigger button.
-
- :::tip
- A high timeout (>10s) typically requires the users to interact with the UI to start scanning again. This is a good choice when you want to interrupt the scanning workflow (e.g. because a wrong barcode is scanned and some actions need to be performed). A small timeout (\<2s) could allow the user to scan again without having to interact with the app, just momentarily pausing the workflow to acknowledge that a “special” barcode has been scanned.
- :::
-
-- The color of the flashing screen upon scan. You can enable or disable the visual feedback via [SparkScanViewSettings.visualFeedbackEnabled](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.VisualFeedbackEnabled) and control the color via [SparkScanBarcodeErrorFeedback](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-barcode-feedback.html#class-scandit.datacapture.barcode.spark.feedback.Error).
-- The color of the highlight for the scanned barcode.
-- The feedback (sound, vibration).
-
-To emit an error, you have to implement a `barcode.spark.feedback.ISparkScanFeedbackDelegate` and set it to the `barcode.spark.ui.SparkScanView.FeedbackDelegate`:
-
-```dart
-sparkScanView.feedbackDelegate = this;
-```
-
-In the `scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate.GetFeedbackForBarcode` method you can then return an error or a success feedback:
-
-```dart
-@override
-SparkScanBarcodeFeedback? feedbackForBarcode(Barcode barcode) {
- if (isValidBarcode(barcode)) {
- return SparkScanBarcodeSuccessFeedback();
- } else {
- return SparkScanBarcodeErrorFeedback.fromMessage('This code should not have been scanned', Duration(seconds: 60));
- }
-}
-```
-
-You can have different error states triggered by different logic conditions. For example you can trigger an error state when a wrong barcode is scanned, and another one when a duplicate barcode is scanned. These errors can show different colors and have different timeouts.
-
-
- This error state for a code that should not have been scanned.
-
-
-
- This error state for a code that has been scanned more than once.
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan's built-in error state. Setting the `scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay` parameter to `0` allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode (SDCSparkScanViewSettings.defaultScanningMode). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SDCSparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled (`SDCSparkScanViewSettings.holdToScanEnabled`).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/get-started.md
deleted file mode 100644
index 5ef7016e..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/get-started.md
+++ /dev/null
@@ -1,117 +0,0 @@
----
-description: "This page describes the step-by-step instructions that helps you to add SparkScan to your application: "
-
-sidebar_position: 2
-framework: flutter
-keywords:
- - flutter
----
-
-# Get Started
-
-This page describes the step-by-step instructions that helps you to add SparkScan to your application:
-
-- Create a new Data Capture Context instance
-- Configure the Spark Scan Mode
-- Create the SparkScanView with the desired settings and bind it to the application’s lifecycle
-- Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs
-
-## Prerequisites
-
-- The latest stable version of the [Flutter SDK](https://pub.dev/publishers/scandit.com/packages).
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-- If you have not already done so, see [this guide](../add-sdk.md) for information on how to add the Scandit Data Capture SDK to your project
-
-:::note
-Devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-## Create a New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```dart
-var dataCaptureContext = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through SparkScanSettings and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we set up SparkScan for scanning EAN13 codes. You can change this to the correct symbologies for your use case (for instance, Code 128, Code 39…).
-
-```dart
-var settings = SparkScanSettings();
-settings.enableSymbologies({ Symbology.ean13Upca });
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```dart
-var viewSettings = SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-## Create the SparkScan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) appearance can be customized through [SparkScanViewSettings](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view-settings.html).
-
-```dart
-SparkScanViewSettings viewSettings = new SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-By adding a [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView), the scanning interface (camera preview and scanning UI elements) gets added automatically to your application.
-
-You can add a [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) to your view hierarchy:
-
-```dart
-var sparkScanView = SparkScanView.forContext(YOUR_WIDGET_TREE_BODY, widget.dataCaptureContext, sparkScan, null);
-```
-
-Additionally, make sure to call [`SparkScanView.onPause()`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.OnPause) in your app state handling logic. You have to call this for the correct functioning of the [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView).
-
-```dart
-@override
-void didChangeAppLifecycleState(AppLifecycleState state) {
- if (state != AppLifecycleState.resumed) {
- sparkScanView.onPause()
- }
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [SparkScanListener](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode.
-
-```dart
-// Register self as a listener to monitor the spark scan session.
-sparkScan.addListener(this);
-```
-
-[SparkScanListener.didScan()](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved from the first object in the provided barcodes list: [SparkScanSession.newlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode).
-
-:::note
-Note that this list only contains one barcode entry.
-:::
-
-```dart
-@override
-void didScan(SparkScan sparkScan, SparkScanSession session, Future getFrameData()) {
- if (session.newlyRecognizedBarcode.isEmpty) return;
-
- // Gather the recognized barcode
- var barcode = session.newlyRecognizedBarcode[0];
-
- // Do something with the recognized barcode
-}
-```
-
-## Scan Some Barcodes
-
-Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can
-print out.
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/intro.md
deleted file mode 100644
index 2f92bace..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/sparkscan/intro.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-description: "SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows, such as inventory management in retail, or goods receiving in logistics. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: flutter
-keywords:
- - flutter
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows, such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying additional scanning modes, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/flutter/symbology-properties.mdx
deleted file mode 100644
index 56b87782..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/flutter/system-requirements.mdx
deleted file mode 100644
index 1ae4f584..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/flutter/test.md b/versioned_docs/version-8.1.1/sdks/flutter/test.md
deleted file mode 100644
index b37bbcb6..00000000
--- a/versioned_docs/version-8.1.1/sdks/flutter/test.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Scandit Samples
-
-This repository contains both simple and advanced samples that show how you can use various features of the Scandit Data Capture SDK. The simple samples allow you to get going quickly, while the advanced samples show you how to use additional settings and setup the scanner for the best performance and user experience.
-
-For details about all available samples, see the documentation for your preferred framework:
-
-* [iOS](https://github.com/Scandit/datacapture-ios-samples)
-* [Android](https://github.com/Scandit/datacapture-android-samples)
-* [Web](https://github.com/Scandit/datacapture-web-samples)
-* [React Native](https://github.com/Scandit/datacapture-react-native-samples)
-* [Flutter](https://github.com/Scandit/datacapture-flutter-samples)
-* [Capacitor](https://github.com/Scandit/datacapture-capacitor-samples)
-* [Cordova](https://github.com/Scandit/datacapture-cordova-samples)
-* [.NET](https://github.com/Scandit/datacapture-dotnet-samples/tree/master)
-* [Titanium](https://github.com/Scandit/datacapture-titanium-samples)
-
-## Trial Signup
-
-To add the Scandit Data Capture SDK to your app, [sign up for your Scandit Developer Account](https://ssl.scandit.com/dashboard/sign-up?p=test) and get instant access to your license key.
-
-## Support
-
-Our support engineers can be reached at [support@scandit.com](mailto:support@scandit.com).
-
-## License
-
-[Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)
diff --git a/versioned_docs/version-8.1.1/sdks/ios/add-sdk.md b/versioned_docs/version-8.1.1/sdks/ios/add-sdk.md
deleted file mode 100644
index bd6111ce..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/add-sdk.md
+++ /dev/null
@@ -1,146 +0,0 @@
----
-description: "This page describes how to integrate the Scandit Data Capture SDK into your iOS project. The SDK can be added via: "
-
-sidebar_position: 1
-toc_max_heading_level: 4
-framework: ios
-keywords:
- - ios
----
-
-# Installation
-
-This page describes how to integrate the Scandit Data Capture SDK into your iOS project. The SDK can be added via:
-
-- [CocoaPods](#install-via-package-manager)
-- [Carthage](#install-via-package-manager)
-- [Swift Package Manager](#install-via-package-manager)
-- [Import in Source Code](#import-in-source-code)
-
-## Prerequisites
-
-Before you begin, make sure you have the following prerequisites in place:
-
-- Latest version of Xcode
-- iOS project with a deployment target of iOS 14.0+
-
- :::note
- ID Capture requires a minimum deployment target of iOS 15.0.
- :::
-
-- Scandit license key, sign up for a [free trial](https://www.scandit.com/trial/) if you don't already have a license key
-
-### Internal Dependencies
-
-import InternalDependencies from '../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Install via Package Manager
-
-
-
-
-
-[CocoaPods](https://cocoapods.org/) is a dependency manager for Swift and Objective-C Cocoa projects. To integrate the Scandit Data Capture SDK into your Xcode project using CocoaPods, specify the required pods for your use case, detailed above in [Internal Dependencies](#internal-dependencies), in your `Podfile`:
-
-```ruby
-pod 'ScanditCaptureCore',
-# Add the necessary pods based on the features needed for your use case
-```
-
-
-
-
-
-[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
-
-To integrate the Scandit Data Capture SDK into your Xcode project using Carthage, specify it in your `Cartfile`:
-
-```ruby
-binary "https://ssl.scandit.com/sdk/download/carthage/ScanditCaptureCore.json"
-```
-
-You also need to add the corresponding binaries based on the features you need as detailed above in [Internal Dependencies](#internal-dependencies).
-
-For example, if you want to add the [`ScanditBarcodeCapture`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api.html) API, you need to add the following Carthage binary:
-
-```ruby
-binary "https://ssl.scandit.com/sdk/download/carthage/ScanditBarcodeCapture.json"
-```
-
-
-
-
-
-To integrate the Scandit Data Capture SDK into your Xcode project using Swift Package Manager, add the frameworks you want to add in the _Package Dependencies_ section of your project.
-
-
-
-Add our SPM package repository:
-
-```shell
-https://github.com/Scandit/datacapture-spm
-```
-
-Or if you prefer checking out git repositories via SSH:
-
-```shell
-git@github.com:Scandit/datacapture-spm.git
-```
-
-You also need to add the corresponding frameworks based on the features you need as detailed in [Internal Dependencies](#internal-dependencies).
-
-
-
-
-## Add the Frameworks Manually
-
-Adding the frameworks manually is a single step process when using the XCFramework archives.
-
-All you need to do is drag the frameworks into the _Frameworks, Libraries, and Embedded Content_ section of your target. Make sure to select _Embed and Sign_ for the _Embed_ option.
-
-Please note that you will always need at least `ScanditCaptureCore.xcframework` which contains the shared functionality used by the other data capture modules.
-
-
-
-:::note
-When building the project, by default Xcode will look for the frameworks in the root folder of the project.
-
-If you choose to copy the frameworks in a different location, don’t forget to update the `FRAMEWORK_SEARCH_PATHS` build setting accordingly.
-:::
-
-## Import in Source Code
-
-To import the Scandit Data Capture SDK into your source code, add the following import statement:
-
-
-
-
-```swift
-import ScanditCaptureCore
-import ScanditBarcodeCapture
-import ScanditLabelCapture
-import ScanditIdCapture
-import ScanditParser
-```
-
-
-
-
-```objectivec
-@import ScanditCaptureCore;
-@import ScanditBarcodeCapture;
-@import ScanditLabelCapture;
-@import ScanditIdCapture;
-@import ScanditParser;
-```
-
-
-
-
-## Additional Information
-
-import OSSLicense from '../../partials/_third-party-licenses.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/ios/ai-powered-barcode-scanning.md
deleted file mode 100644
index 44dff798..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: ios
-keywords:
- - ios
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index 5d3e37a1..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-description: "Learn about the available symbologies and the corresponding configurations and extensions available."
-
-sidebar_position: 3
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following code shows you how to enable scanning Code 128 codes for barcode capture:
-
-```swift
-let settings = BarcodeCaptureSettings()
-settings.set(symbology: .code128, enabled: true)
-```
-
-import CapturePresents from '../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies such as Code 128, Code 39, Code 93 or Interleaved Two of Five can store variable-length data. As an example, Code 39 can be used to store a string anywhere from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies. If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below code shows how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```swift
-let settings = BarcodeCaptureSettings()
-let symbologySettings = settings.settings(for: .code128)
-symbologySettings.activeSymbolCounts = Set(6...8)
-```
-
-import CalculateSymbolCount from '../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-
-When you enable a symbology as described above, only dark-on-bright codes are enabled (see [`SDCSymbologySettings.enabled`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsEnabled)). When you also want to read bright-on-dark codes, color-inverted reading for that symbology must also be enabled (see [`SDCSymbologySettings.colorInvertedEnabled:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsColorInvertedEnabled)).
-
-The following code shows how to enable color-inverted reading for Code 128:
-
-```swift
-let settings = BarcodeCaptureSettings()
-let symbologySettings = settings.settings(for: .code128)
-symbologySettings.isColorInvertedEnabled = true
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that always gets enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum).Enforcing an optional checksum reduces false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes get discarded as the checksum doesn’t match. All available checksums per symbology can be found in [symbology properties](../symbology-properties.mdx).
-
-You can enforce a specific checksum by setting it through [`SDCSymbologySettings.checksums`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```swift
-let settings = BarcodeCaptureSettings()
-let symbologySettings = settings.settings(for: .code39)
-symbologySettings.checksums = [.mod43]
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [`SDCSymbologySettings.setExtension:enabled:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```swift
-let settings = BarcodeCaptureSettings()
-let symbologySettings = settings.settings(for: .code39)
-symbologySettings.set(extension: "full_ascii", enabled: true)
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/get-started-with-swift-ui.md
deleted file mode 100644
index 57e9191b..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,222 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit Barcode Capture.
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the barcode scanning logic following the main [Get Started guide](./get-started.md)
-2. **Create a SwiftUI wrapper**: Use `UIViewControllerRepresentable` to integrate the `UIViewController`
-3. **Use in your SwiftUI app**: Add the SwiftUI view to your app's view hierarchy
-
-The core barcode scanning implementation (data capture context, settings, camera setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for Barcode Scanning
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the barcode scanning functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `BarcodeCaptureViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditBarcodeCapture
-import UIKit
-
-class BarcodeCaptureViewController: UIViewController {
- private var context: DataCaptureContext!
- private var camera: Camera?
- private var barcodeCapture: BarcodeCapture!
- private var captureView: DataCaptureView!
- private var overlay: BarcodeCaptureOverlay!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupRecognition()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodeCapture.isEnabled = true
- camera?.switch(toDesiredState: .on)
- }
-
- override func viewDidDisappear(_ animated: Bool) {
- super.viewDidDisappear(animated)
- barcodeCapture.isEnabled = false
- camera?.switch(toDesiredState: .off)
- }
-
- func setupRecognition() {
- // Follow the implementation from the main Get Started guide:
- // 1. Create data capture context
- // 2. Configure barcode scanning settings
- // 3. Register the barcode capture listener
- // 4. Use the built-in camera
- // 5. Create capture view and overlay
- }
-}
-
-extension BarcodeCaptureViewController: BarcodeCaptureListener {
- func barcodeCapture(_ barcodeCapture: BarcodeCapture,
- didScanIn session: BarcodeCaptureSession,
- frameData: FrameData) {
- // Handle barcode scanning results
- // See the main Get Started guide
- }
-}
-```
-
-## Create a SwiftUI View using UIViewControllerRepresentable
-
-Now create a SwiftUI wrapper that integrates the `UIViewController` into your SwiftUI app:
-
-```swift
-import SwiftUI
-import UIKit
-
-struct BarcodeCaptureRepresentable: UIViewControllerRepresentable {
- typealias UIViewControllerType = BarcodeCaptureViewController
-
- func makeUIViewController(context: Context) -> BarcodeCaptureViewController {
- return BarcodeCaptureViewController()
- }
-
- func updateUIViewController(_ uiViewController: BarcodeCaptureViewController, context: Context) {
- // Update the view controller if needed
- }
-}
-```
-
-## Use the SwiftUI View in Your App
-
-Finally, use the `BarcodeCaptureRepresentable` in your SwiftUI app:
-
-```swift
-import SwiftUI
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- BarcodeCaptureRepresentable()
- }
- }
-}
-```
-
-Or within another SwiftUI view:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- BarcodeCaptureRepresentable()
- .navigationTitle("Barcode Scanner")
- }
- }
-}
-```
-
-## Alternative: Using UIViewRepresentable
-
-As an alternative to wrapping a `UIViewController`, you can implement the barcode scanning functionality directly using `UIViewRepresentable`. This approach creates the capture view directly without an intermediate view controller:
-
-```swift
-import ScanditBarcodeCapture
-import SwiftUI
-
-struct BarcodeCaptureView: UIViewRepresentable {
- private let dataCaptureContext: DataCaptureContext
- private let barcodeCapture: BarcodeCapture
- private let listener: Listener
-
- init(onBarcodeScanned: @escaping (Barcode) -> Void) {
- // Create the data capture context
- DataCaptureContext.initialize(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
- dataCaptureContext = DataCaptureContext.shared
-
- // Configure barcode capture settings
- let settings = BarcodeCaptureSettings()
- // ...
-
- // Create barcode capture mode
- barcodeCapture = BarcodeCapture(context: dataCaptureContext, settings: settings)
-
- // Create the listener instance.
- // IMPORTANT: You must assign the listener to a strong property
- // to prevent it from being deallocated
- listener = Listener(onBarcodeScanned: onBarcodeScanned)
- barcodeCapture.addListener(listener)
- }
-
- func makeUIView(context: Context) -> UIView {
- if let camera = Camera.default {
- // Apply recommended camera settings
- let cameraSettings = BarcodeCapture.recommendedCameraSettings
- camera.apply(cameraSettings)
-
- // Turn on the camera
- dataCaptureContext.setFrameSource(camera)
- camera.switch(toDesiredState: .on)
- } else {
- print("Camera not available")
- }
-
- // Enable barcode capture
- barcodeCapture.isEnabled = true
-
- // Create the capture view
- let captureView = DataCaptureView(context: dataCaptureContext, frame: .zero)
- captureView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-
- // Create the overlay if desired
- // ...
-
- return captureView
- }
-
- func updateUIView(_ uiView: UIView, context: Context) {
- // Update the view if needed
- }
-}
-
-private class Listener: NSObject, BarcodeCaptureListener {
- private let onBarcodeScanned: (Barcode) -> Void
-
- init(onBarcodeScanned: @escaping (Barcode) -> Void) {
- self.onBarcodeScanned = onBarcodeScanned
- }
-
- func barcodeCapture(_ barcodeCapture: BarcodeCapture,
- didScanIn session: BarcodeCaptureSession,
- frameData: FrameData) {
- guard let barcode = session.newlyRecognizedBarcode else { return }
- DispatchQueue.main.async {
- self.onBarcodeScanned(barcode)
- }
- }
-}
-```
-
-You can then use this view directly in your SwiftUI app:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- VStack {
- BarcodeCaptureView { barcode in
- // Handle the scanned barcode
- }
- .navigationTitle("Barcode Scanner")
- }
- }
- }
-}
-```
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/get-started.md
deleted file mode 100644
index bc736a64..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/barcode-capture/get-started.md
+++ /dev/null
@@ -1,154 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Capture to your application. "
-
-sidebar_position: 2
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Create your barcode capture settings and enable the barcode symbologies you want to read
-- Create a new barcode capture mode instance and initialize it
-- Register a barcode capture listener to receive scan events
-- Process successful scans according to your application’s needs and decide whether more codes will be scanned or the scanning process should be stopped
-- Obtain a camera instance and set it as the frame source on the data capture context
-- Display the camera preview by creating a data capture view
-- If displaying a preview, optionally create a new overlay and add it to data capture view for better visual feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Configure Barcode Scanning Settings
-
-Barcode scanning is orchestrated by the [`SDCBarcodeCapture`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) [data capture mode](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [`SDCBarcodeCaptureSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-Here we will setup barcode scanning for a small list of barcode types, called [symbologies](../barcode-symbologies.mdx). The list of symbologies to enable is application specific. We recommend that you only enable the symbologies your application requires. If you are not familiar with the symbologies that are relevant for your use case, you can use [capture presets](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/capture-preset.html#enum-scandit.datacapture.barcode.CapturePreset) that are tailored for different verticals (e.g. retail, logistics).
-
-```swift
-let settings = BarcodeCaptureSettings()
-settings.set(symbology: .code128, enabled: true)
-settings.set(symbology: .code39, enabled: true)
-settings.set(symbology: .qr, enabled: true)
-settings.set(symbology: .ean8, enabled: true)
-settings.set(symbology: .upce, enabled: true)
-settings.set(symbology: .ean13UPCA, enabled: true)
-```
-
-:::note
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [`SDCBarcodeCaptureSettings.codeDuplicateFilter`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around `500` or even `-1` if you do not want codes to be scanned more than once.
-:::
-
-Next, create a `SDCBarcodeCapture` instance with the settings initialized in the previous step:
-
-```swift
-barcodeCapture = BarcodeCapture(context: context, settings: settings)
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [`SDCBarcodeCaptureListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [`SDCBarcodeCapture.addListener:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First conform to the `SDCBarcodeCaptureListener` protocol. For example:
-
-```swift
-extension ViewController: BarcodeCaptureListener {
- func barcodeCapture(_ barcodeCapture: BarcodeCapture,
- didScanIn session: BarcodeCaptureSession,
- frameData: FrameData) {
- let recognizedBarcodes = session.newlyRecognizedBarcode
- for barcode in recognizedBarcodes {
- // Do something with the barcode.
- }
- }
-}
-```
-
-Then add the listener:
-
-```swift
-barcodeCapture.addListener(self)
-```
-
-### Rejecting Barcodes
-
-To prevent scanning unwanted codes, you can reject them by adding the desired logic to the `onBarcodeScanned` method. This will prevent the barcode from being added to the session and will not trigger the `onSessionUpdated` method.
-
-The example below will only scan barcodes beginning with the digits `09` and ignore all others, using a transparent brush to distinguish a rejected barcode from a recognized one:
-
-```swift
-...
-guard barcodeData.hasPrefix("09:") else {
- self.overlay.brush = Brush.transparent
- return
-}
-...
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device.
-
-:::note
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [`NSCameraUsageDescription`](https://developer.apple.com/documentation/bundleresources/information_property_list/nscamerausagedescription) key in your app’s `Info.plist` file.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```swift
-let cameraSettings = BarcodeCapture.recommendedCameraSettings
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-let camera = Camera.default
-camera?.apply(cameraSettings)
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [`SDCDataCaptureContext.setFrameSource:completionHandler:`](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync).
-
-The camera is off by default and must be turned on. This is done by calling [`SDCFrameSource.switchToDesiredState:completionHandler:`](https://docs.scandit.com/data-capture-sdk/ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [`SDCFrameSourceStateOn`](https://docs.scandit.com/data-capture-sdk/ios/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```swift
-context.setFrameSource(camera)
-
-
-camera?.switch(toDesiredState: .on)
-```
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a `SDCDataCaptureView` to your view hierarchy:
-
-```swift
-let captureView = DataCaptureView(for: context, frame: view.bounds)
-captureView.dataCaptureContext = context
-captureView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-view.addSubview(captureView)
-To visualize the results of barcode scanning, the following overlay can be added:
-
-let overlay = BarcodeCaptureOverlay(barcodeCapture: barcodeCapture, view: captureView)
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [`SDCBarcodeCapture.enabled`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to `NO`.
-
-The effect is immediate: no more frames will be processed after the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/ios/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/ios/barcode-generator.md
deleted file mode 100644
index 0a66dca1..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/barcode-generator.md
+++ /dev/null
@@ -1,102 +0,0 @@
----
-description: "The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes. "
-
-sidebar_label: Get Started
-pagination_prev: null
-pagination_next: null
----
-
-# Barcode Generator
-
-The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes.
-
-The Barcode Generator supports the following formats:
-
-* Code 39
-* Code 128
-* EAN 13
-* UPCA
-* ITF
-* QR
-* DataMatrix
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Generating Barcodes
-
-To generate barcodes, you need to create a [`SDCDataCaptureContext`](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`SDCBarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.BarcodeGeneratorBuilder), and use the method of [`SDCBarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) for the symbology you are interested in, in this example Code 128.
-
-```swift
-let context = DataCaptureContext(licenseKey: licenseKey)
-let builder = BarcodeGenerator.code128BarcodeGeneratorBuilder(with: context)
-```
-
-You can configure the colors used in the resulting image:
-
-```swift
-builder.foregroundColor = .black
-builder.backgroundColor = .white
-```
-
-When the builder is configured get the `SDCBarcodeGenerator` and try to generate the image:
-
-```swift
-do {
- let generator = try builder.build()
- let image = try generator.generate(with: dataString, imageWidth: 200.0)
- // Use the image
-} catch {
- // Handle the error
- print(error)
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-generator.html) for more information.
-
-## Generating QR Codes
-
-To generate barcodes, you need to create a [`SDCDataCaptureContext`](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`SDCQRCodeBarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder) using the method of [`SDCBarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) specific for QR codes.
-
-```swift
-let context = DataCaptureContext(licenseKey: licenseKey)
-let builder = BarcodeGenerator.qrCodeBarcodeGeneratorBuilder(with: context)
-```
-
-You can configure the colors used in the resulting image:
-
-```swift
-builder.foregroundColor = .black
-builder.backgroundColor = .white
-```
-
-There are two settings that can be configured for QR codes: [`SDCQRCodeBarcodeGeneratorBuilder.errorCorrectionLevel`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithErrorCorrectionLevel) and [`SDCQRCodeBarcodeGeneratorBuilder.versionNumber`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithVersionNumber).
-
-```swift
-builder.errorCorrectionLevel = .medium
-builder.versionNumber = 4
-```
-
-When the builder is configured get the `SDCBarcodeGenerator` and try to generate the image:
-
-```swift
-do {
- let generator = try builder.build()
- let image = try generator.generate(with: dataString, imageWidth: 200.0)
- // Use the image
-} catch {
- // Handle the error
- print(error)
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-generator.html) for more information.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/get-started-with-swift-ui.md
deleted file mode 100644
index 165b187c..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,225 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit Barcode Selection.
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add Barcode Selection to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the barcode selection logic following the main [Get Started guide](./get-started.md)
-2. **Create a SwiftUI wrapper**: Use `UIViewControllerRepresentable` to integrate the `UIViewController`
-3. **Use in your SwiftUI app**: Add the SwiftUI view to your app's view hierarchy
-
-The core barcode selection implementation (data capture context, settings, camera setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for Barcode Selection
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the barcode selection functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `BarcodeSelectionViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditBarcodeCapture
-import UIKit
-
-class BarcodeSelectionViewController: UIViewController {
- private var context: DataCaptureContext!
- private var camera: Camera?
- private var barcodeSelection: BarcodeSelection!
- private var captureView: DataCaptureView!
- private var overlay: BarcodeSelectionBasicOverlay!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupRecognition()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodeSelection.isEnabled = true
- camera?.switch(toDesiredState: .on)
- }
-
- override func viewDidDisappear(_ animated: Bool) {
- super.viewDidDisappear(animated)
- barcodeSelection.isEnabled = false
- camera?.switch(toDesiredState: .off)
- }
-
- func setupRecognition() {
- // Follow the implementation from the main Get Started guide:
- // 1. Create data capture context
- // 2. Configure the Barcode Selection Mode
- // 3. Register the listener to receive scan events
- // 4. Obtain the camera instance and set as frame source
- // 5. Create capture view and overlay
- }
-}
-
-extension BarcodeSelectionViewController: BarcodeSelectionListener {
- func barcodeSelection(_ barcodeSelection: BarcodeSelection,
- didUpdateSelection session: BarcodeSelectionSession,
- frameData: FrameData?) {
- // Handle barcode selection results
- // See the main Get Started guide
- }
-}
-```
-
-## Create a SwiftUI View using UIViewControllerRepresentable
-
-Now create a SwiftUI wrapper that integrates the UIViewController into your SwiftUI app:
-
-```swift
-import SwiftUI
-import UIKit
-
-struct BarcodeSelectionRepresentable: UIViewControllerRepresentable {
- typealias UIViewControllerType = BarcodeSelectionViewController
-
- func makeUIViewController(context: Context) -> BarcodeSelectionViewController {
- return BarcodeSelectionViewController()
- }
-
- func updateUIViewController(_ uiViewController: BarcodeSelectionViewController, context: Context) {
- // Update the view controller if needed
- }
-}
-```
-
-## Use the SwiftUI View in Your App
-
-Finally, use the `BarcodeSelectionRepresentable` in your SwiftUI app:
-
-```swift
-import SwiftUI
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- BarcodeSelectionRepresentable()
- }
- }
-}
-```
-
-Or within another SwiftUI view:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- BarcodeSelectionRepresentable()
- .navigationTitle("Barcode Selection")
- }
- }
-}
-```
-
-## Alternative: Using UIViewRepresentable
-
-As an alternative to wrapping a `UIViewController`, you can implement the barcode selection functionality directly using `UIViewRepresentable`. This approach creates the capture view directly without an intermediate view controller:
-
-```swift
-import ScanditBarcodeCapture
-import SwiftUI
-
-struct BarcodeSelectionView: UIViewRepresentable {
- private let dataCaptureContext: DataCaptureContext
- private let barcodeSelection: BarcodeSelection
- private let listener: Listener
-
- init(onBarcodeSelectionUpdated: @escaping ([Barcode]) -> Void) {
- // Create the data capture context
- DataCaptureContext.initialize(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
- dataCaptureContext = DataCaptureContext.shared
-
- // Configure barcode selection settings
- let settings = BarcodeSelectionSettings()
- // ...
-
- // Create barcode selection mode
- barcodeSelection = BarcodeSelection(context: dataCaptureContext, settings: settings)
-
- // Create the listener instance.
- // IMPORTANT: You must assign the listener to a strong property
- // to prevent it from being deallocated
- listener = Listener(onBarcodeSelectionUpdated: onBarcodeSelectionUpdated)
- barcodeSelection.addListener(listener)
- }
-
- func makeUIView(context: Context) -> UIView {
- if let camera = Camera.default {
- // Apply recommended camera settings
- let cameraSettings = BarcodeSelection.recommendedCameraSettings
- camera.apply(cameraSettings)
-
- // Turn on the camera
- dataCaptureContext.setFrameSource(camera)
- camera.switch(toDesiredState: .on)
- } else {
- print("Camera not available")
- }
-
- // Enable barcode selection
- barcodeSelection.isEnabled = true
-
- // Create the capture view
- let captureView = DataCaptureView(context: dataCaptureContext, frame: .zero)
- captureView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-
- // Create the overlay
- let overlay = BarcodeSelectionBasicOverlay(barcodeSelection: barcodeSelection,
- view: captureView,
- style: .frame)
- captureView.addOverlay(overlay)
-
- return captureView
- }
-
- func updateUIView(_ uiView: UIView, context: Context) {
- // Update the view if needed
- }
-}
-
-private class Listener: NSObject, BarcodeSelectionListener {
- private let onBarcodeSelectionUpdated: ([Barcode]) -> Void
-
- init(onBarcodeSelectionUpdated: @escaping ([Barcode]) -> Void) {
- self.onBarcodeSelectionUpdated = onBarcodeSelectionUpdated
- }
-
- func barcodeSelection(_ barcodeSelection: BarcodeSelection,
- didUpdateSelection session: BarcodeSelectionSession,
- frameData: FrameData?) {
- let selectedBarcodes = session.selectedBarcodes
- DispatchQueue.main.async {
- self.onBarcodeSelectionUpdated(selectedBarcodes)
- }
- }
-}
-```
-
-You can then use this view directly in your SwiftUI app:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- VStack {
- BarcodeSelectionView { barcodes in
- // Handle the selected barcodes
- }
- .navigationTitle("Barcode Selection")
- }
- }
- }
-}
-```
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/get-started.md
deleted file mode 100644
index fb60d3c6..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/get-started.md
+++ /dev/null
@@ -1,155 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Selection to your application. "
-
-sidebar_position: 2
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/ios/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-In this guide you will learn step-by-step how to add Barcode Selection to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Selection settings
-- Creating a new Barcode Selection mode instance
-- Registering the listener to receive scan events:
- - Processing the successful scans according to your application’s needs, e.g. by looking up information in a database
- - Deciding whether more codes will be scanned, or the scanning process should be stopped
-- Obtaining the camera instance and set as frame source
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Configure the Barcode Selection Mode
-
-Barcode selection is orchestrated by the [`SDCBarcodeSelection`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) data capture mode. It is configured via [`SDCBarcodeSelectionSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and allows you to register one or more listeners for when new codes have been selected.
-
-Here we setup barcode scanning for the desired barcode [symbologies](../barcode-symbologies.mdx). The list of symbologies to enable is highly application specific, and we recommend that you **only enable the list of symbologies your application requires**:
-
-```swift
-let settings = BarcodeSelectionSettings()
-settings.set(symbology: .code128, enabled: true)
-settings.set(symbology: .ean8, enabled: true)
-settings.set(symbology: .upce, enabled: true)
-settings.set(symbology: .ean13UPCA, enabled: true)
-```
-
-And then create a `SDCBarcodeSelection` instance with the Data Capture Context and the settings initialized in the previous step:
-
-```swift
-let barcodeSelection = BarcodeSelection(context: context, settings: settings)
-```
-
-### Selection Types
-
-The behavior of Barcode Selection can be changed by using a different [selection type](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-type.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionType). This defines the method used by `SDCBarcodeSelection` to select codes. There are two types:
-
-- [`SDCBarcodeSelectionTapSelection`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection): Allows the user to select barcodes by tapping on them. Requires the MatrixScan add-on.
-- [`SDCBarcodeSelectionAimerSelection`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-aimer-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAimerSelection): Allows the user to select barcodes by aiming at them.
-
-#### `SDCBarcodeSelectionTapSelection`
-
-You can select to automatically freeze the camera preview to make the selection easier via [`SDCBarcodeSelectionTapSelection.freezeBehavior`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.FreezeBehavior).
-
-Using [`SDCBarcodeSelectionTapSelection.tapBehavior`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.TapBehavior) you can further decide if a second tap on a barcode means that the barcode is unselected or if it is selected another time (increasing the counter).
-
-#### `SDCBarcodeSelectionAimerSelection`
-
-With this selection mode it is possible to choose between two different [selection strategies](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-strategy.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionStrategy):
-
-- [`SDCBarcodeSelectionAutoSelectionStrategy`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAutoSelectionStrategy): Barcodes are selected automatically when aiming at them.
-- [`SDCBarcodeSelectionManualSelectionStrategy`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionManualSelectionStrategy): Barcodes are selected when aiming at them and tapping anywhere on the screen.
-
-### Single Barcode Selection
-
-If you want to automatically select a barcode when it is the only one on screen, turn on [`SDCBarcodeSelectionSettings.singleBarcodeAutoDetection`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-settings.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionSettings.SingleBarcodeAutoDetection):
-
-```swift
-settings.singleBarcodeAutoDetection = true
-```
-
-## Registering the Listener
-
-To get informed whenever a new code has been recognized, add a [`SDCBarcodeSelectionListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener), implementing the listener methods to suit your application’s needs.
-
-First conform to the `SDCBarcodeSelectionListener` protocol. For example:
-
-```swift
-extension ScanViewController: BarcodeSelectionListener {
- func barcodeSelection(_ barcodeSelection: BarcodeSelection,
- didUpdateSelection session: BarcodeSelectionSession,
- frameData: FrameData?) {
- let newlySelectedBarcodes = session.newlySelectedBarcodes
- // Do something with the newly selected barcodes.
- }
-}
-```
-
-Then register the listener to the `SDCBarcodeSelection` instance:
-
-```swift
-barcodeSelection.addListener(self)
-```
-
-## Obtaining the Camera Instance and Set as Frame Source
-
-The data capture context supports using different frame sources to perform recognition, here we assume that you will use the built-in camera of the device.
-
-:::note
-In iOS, the user must explicitly grant permission for each app to access the camera. Your app needs to provide static messages to display when the system asks for camera permission. To do that include the [`NSCameraUsageDescription`](https://developer.apple.com/documentation/bundleresources/information_property_list/nscamerausagedescription) key in your app’s `Info.plist` file.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode:
-
-```swift
-let cameraSettings = BarcodeSelection.recommendedCameraSettings
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-let camera = Camera.default
-camera?.apply(cameraSettings)
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [`SDCDataCaptureContext.setFrameSource:completionHandler:`](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```swift
-context.setFrameSource(camera)
-```
-
-The camera is off by default and must be turned on. This is done by calling:
-
-```swift
-camera?.switch(toDesiredState: .on)
-```
-
-## Disabling Barcode Selection
-
-To disable barcode selection, for instance when the selection is complete, set [`SDCBarcodeSelection.enabled`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelection.IsEnabled) to `NO`.
-
-The effect is immediate, no more frames will be processed after the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off:
-
-```swift
-camera?.switch(toDesiredState: .off)
-```
diff --git a/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/intro.md
deleted file mode 100644
index ede851ab..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/barcode-selection/intro.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-description: "Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenario where there are multiple barcodes present. This includes the following: "
-
-sidebar_position: 1
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# About Barcode Selection
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/ios/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenario where there are multiple barcodes present. This includes the following:
-
-- A crowded shelf where users want to scan the correct barcode to report stockouts or perform a cycle count.
-- An order catalog with barcodes printed closely together.
-- A label that has several types of barcodes; however users are only interested in scanning barcodes that have the same type, but cannot select them programmatically.
-
-Barcode Selection provides two key capabilities:
-
-- **Aim to Select** allows users to select one code at a time. This is especially useful for one-handed operation.
-- **Tap to Select** is a quick way for users to select several codes from the same view. Selection is done by tapping on highlighted barcodes in the live camera preview or on a frozen screen. Tapping on codes while keeping the smartphone steady can be tricky, and freezing the screen allows for ergonomic use.
-
-:::warning
-Barcode Selection does not support handling of duplicate codes. If a code appears twice in the visible preview both instances will be marked as selected even if only one of them was selected.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/ios/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/ios/barcode-symbologies.mdx
deleted file mode 100644
index 75d3810a..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/ios/batch-scanning.md
deleted file mode 100644
index 5be64709..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/batch-scanning.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "Batch scanning enables you to capture and interact with multiple barcodes simultaneously, making it ideal for inventory management, retail, and logistics applications."
-toc_max_heading_level: 4
-
-
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# Batch Scanning
-
-import BatchScanning from '../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/ios/core-concepts.mdx
deleted file mode 100644
index 81c9f5d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/ios/extension-codes.mdx
deleted file mode 100644
index 2ab9349a..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/ios/features-by-framework.mdx
deleted file mode 100644
index 5f33c395..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/ios/id-capture/advanced.md
deleted file mode 100644
index afb10a32..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/id-capture/advanced.md
+++ /dev/null
@@ -1,158 +0,0 @@
----
-description: "There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features. "
-
-sidebar_position: 4
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Decode EU Driver Licenses
-
-By default, ID Capture doesn’t extract data from the table on the back of European Driver Licenses. If you are interested in this data, you may enable the extraction by calling:
-
-
-
-
-
-```swift
-settings.decodeBackOfEuropeanDrivingLicense = true
-```
-
-
-
-
-
-```objectivec
-settings.decodeBackOfEuropeanDrivingLicense = YES;
-```
-
-
-
-
-
-:::warning
-To use this feature, you will need to include the `ScanditIdEuropeDrivingLicense` module in your project. See the [module overview](/sdks/ios/id-capture/get-started.md#module-overview) for details.
-:::
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/ios/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-
-
-
-
-```swift
-// Default value:
-settings.anonymizationMode = .fieldsOnly
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.anonymizationMode = .fieldsAndImages
-
-// Only images are anonymized:
-settings.anonymizationMode = .imagesOnly
-
-// No anonymization:
-settings.anonymizationMode = .none
-```
-
-
-
-
-
-```objectivec
-// Default value:
-settings.anonymizationMode = SDCIdAnonymizationModeFieldsOnly;
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.anonymizationMode = SDCIdAnonymizationModeFieldsAndImages;
-
-// Only images are anonymized:
-settings.anonymizationMode = SDCIdAnonymizationModeImagesOnly;
-
-// No anonymization:
-settings.anonymizationMode = SDCIdAnonymizationModeNone;
-```
-
-
-
-
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object.
-
-:::tip
-Face and Cropped Document can be extracted only by either `SingleSideScanner` with `visualInspectionZone` enabled or by `FullDocumentScanner`.
-In the case of `FullDocumentScanner`, if the front & the back side of a document are scanned, Cropped Document and Full Frame are returned for both sides.
-:::
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-
-
-
-
-```swift
-// Holder's picture as printed on a document:
-settings.resultShouldContainImage(true, for: .face)
-
-// Cropped image of a document:
-settings.resultShouldContainImage(true, for: .croppedDocument)
-
-// Full camera frame that contains the document:
-settings.resultShouldContainImage(true, for: .frame)
-```
-
-
-
-
-
-```objectivec
-// Holder's picture as printed on a document:
-[settings resultShouldContainImage:YES forImageType:SDCIdImageTypeFace];
-
-// Cropped image of a document:
-[settings resultShouldContainImage:YES forImageType:SDCIdImageTypeCroppedDocument];
-
-// Full camera frame that contains the document:
-[settings resultShouldContainImage:YES forImageType:SDCIdImageTypeFrame];
-```
-
-
-
-
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `SDCCapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `SDCCapturedId` object for a US Driver License will contain different fields than a `SDCCapturedId` object for a Passport.
-
-For a rejected document, a [SDCRejectionReason](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed automatically using the following settings:
-
-* [IdCaptureSettings.rejectForgedAamvaBarcodes](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectForgedAamvaBarcodes): Automatically rejects documents whose AAMVA barcode fails authenticity validation.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/id-capture/get-started.md
deleted file mode 100644
index 24974b7b..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/id-capture/get-started.md
+++ /dev/null
@@ -1,457 +0,0 @@
----
-description: "This page will guide you through the process of adding ID Capture to your iOS application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards. "
-
-sidebar_position: 2
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-This page will guide you through the process of adding ID Capture to your iOS application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Accessing a Camera
-- Configuring the Capture Settings
-- Implementing a Listener to Receive Scan Results
-- Setting up the Capture View and Overlay
-- Starting the Capture Process
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. See the [installation guide](/sdks/ios/add-sdk.md) for details.
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import IdModuleOverview from '../../../partials/get-started/_id-module-overview-ios.mdx';
-
-
-
-### Mobile ID Scanning
-
-ID Capture supports Bluetooth to scan mobile identity documents. The App Store requires the `NSBluetoothAlwaysUsageDescription` key to be present in your app's `Info.plist` when this module is included, even if you are not actively using this feature.
-
-To resolve this issue, add the following entry to your `Info.plist` file:
-
-```xml
-NSBluetoothAlwaysUsageDescription
-Required to scan mobile identity documents via Bluetooth.
-```
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Access a Camera
-
-Next, you need to create a new instance of the [`SDCCamera`](https://docs.scandit.com/data-capture-sdk/ios/core/api/camera.html#class-scandit.datacapture.core.Camera) class to indicate the camera that will be used to stream previews and to capture images. The camera settings are also configured, in this case, we use the `recommendedCameraSettings` that come withe ID Capture SDK.
-
-
-
-
-
-```swift
-camera = Camera.default
-context.setFrameSource(camera, completionHandler: nil)
-
-// Use the recommended camera settings for the IdCapture mode.
-let recommendedCameraSettings = IdCapture.recommendedCameraSettings
-camera?.apply(recommendedCameraSettings)
-```
-
-
-
-
-
-```objectivec
-SDCCamera *camera = [SDCCamera defaultCamera];
-[dataCaptureContext setFrameSource:camera completionHandler:nil];
-
-auto recommendedCameraSettings = [SDCIdCapture recommendedCameraSettings];
-[camera applySettings:recommendedCameraSettings completionHandler:nil];
-```
-
-
-
-
-
-## Configure the Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type to use and the documents that should be accepted and/or rejected.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) for all the available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-
-
-
-
-```swift
-var acceptedDocuments = [IdCaptureDocument]()
-var rejectedDocuments = [IdCaptureDocument]()
-
-// Passports from any region:
-acceptedDocuments.append(Passport(region: .any))
-
-// Only documents issued by a specific country:
-acceptedDocuments.append(IdCard(region: .germany))
-
-// Standardized documents issued in Europe:
-acceptedDocuments.append(IdCard(region: .euAndSchengen))
-acceptedDocuments.append(DriverLicense(region: .euAndSchengen))
-
-// Regional documents:
-acceptedDocuments.append(RegionSpecific(subtype: .apecBusinessTravelCard))
-acceptedDocuments.append(RegionSpecific(subtype: .chinaExitEntryPermit))
-
-// Reject passports from certain regions:
-rejectedDocuments.append(Passport(region: .cuba))
-
-// Configure:
-let settings = IdCaptureSettings()
-settings.acceptedDocuments = acceptedDocuments
-settings.rejectedDocuments = rejectedDocuments
-
-// Capture only one-side documents and a given zone
-// Capture only barcodes
-settings.scannerType = SingleSideScanner(enablingBarcode: true,
- machineReadableZone: false,
- visualInspectionZone: false)
-
-// Capture only Machine Readable Zone (MRZ)
-settings.scannerType = SingleSideScanner(enablingBarcode: false,
- machineReadableZone: true,
- visualInspectionZone: false)
-
-// Capture only Visual Inspection Zone (VIZ)
-settings.scannerType = SingleSideScanner(enablingBarcode: false,
- machineReadableZone: false,
- visualInspectionZone: true)
-
-// Full document scanner
-settings.scannerType = FullDocumentScanner()
-```
-
-
-
-
-
-```objectivec
-NSMutableArray *acceptedDocuments = [NSMutableArray new];
-NSMutableArray *rejectedDocuments = [NSMutableArray new];
-
-// Passports from any region:
-[acceptedDocuments addObject:[SDCPassport documentWithRegion:SDCIdCaptureRegionAny]];
-
-// Only documents issued by a specific country:
-[acceptedDocuments addObject:[SDCIdCard documentWithRegion:SDCIdCaptureRegionGermany]];
-
-// Standardized documents issued in Europe:
-[acceptedDocuments addObject:[SDCIdCard documentWithRegion:SDCIdCaptureRegionEUAndSchengen]];
-[acceptedDocuments addObject:[SDCDriverLicense documentWithRegion:SDCIdCaptureRegionEUAndSchengen]];
-
-// Regional documents:
-[acceptedDocuments addObject:[SDCRegionSpecific documentWithSubtype:SDCIdCaptureRegionSpecificSubtypeApecBusinessTravelCard]];
-[acceptedDocuments addObject:[SDCRegionSpecific documentWithSubtype:SDCIdCaptureRegionSpecificSubtypeChinaExitEntryPermit]];
-
-// Reject passports from certain regions:
-[rejectedDocuments addObject:[SDCPassport documentWithRegion:SDCIdCaptureRegionCuba]];
-
-// Configure:
-SDCIdCaptureSettings *settings = [SDCIdCaptureSettings new];
-settings.acceptedDocuments = acceptedDocuments;
-settings.rejectedDocuments = rejectedDocuments;
-
-// Capture only one-side documents and a given zone
-// Capture only barcodes
-settings.scannerType = [SDCSingleSideScanner scannerEnablingBarcode:YES
- machineReadableZone:NO
- visualInspectionZone:NO];
-
-// Capture only Machine Readable Zone (MRZ)
-settings.scannerType = [SDCSingleSideScanner scannerEnablingBarcode:NO
- machineReadableZone:YES
- visualInspectionZone:NO];
-
-// Capture only Visual Inspection Zone (VIZ)
-settings.scannerType = [SDCSingleSideScanner scannerEnablingBarcode:NO
- machineReadableZone:NO
- visualInspectionZone:YES];
-
-// Full document scanner
-settings.scannerType = [SDCFullDocumentScanner scanner];
-```
-
-
-
-
-
-Create a new ID Capture mode with the chosen settings:
-
-
-
-
-
-```swift
-idCapture = IdCapture(context: context, settings: idCaptureSettings)
-```
-
-
-
-
-
-```objectivec
-SDCIdCapture *idCapture = [SDCIdCapture idCaptureWithContext:dataCaptureContext settings:idCaptureSettings];
-```
-
-
-
-
-
-## Implement a Listener
-
-To receive scan results, implement and [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener). The listener provides two callbacks: `didCapture` and `didReject`
-
-
-
-
-
-```swift
-extension IdCaptureViewController: IdCaptureListener {
-
- func idCapture(_ idCapture: IdCapture, didCapture capturedId: CapturedId) {
- // Success! Handle extracted data here.
- }
-
- func idCapture(_ idCapture: IdCapture,
- didReject capturedId: CapturedId?,
- reason: RejectionReason) {
- // Something went wrong. Inspect the reason to determine the follow-up action.
- }
-}
-
-idCapture.addListener(self)
-```
-
-
-
-
-
-```objectivec
-- (void)idCapture:(SDCIdCapture *)idCapture didCapture:(SDCCapturedId *)capturedId {
- // Success! Handle extracted data here.
-}
-
-- (void)idCapture:(SDCIdCapture *)idCapture
- didReject:(nullable SDCCapturedId *)capturedId
- reason:(SDCRejectionReason)rejectionReason {
- // Something went wrong. Inspect the reason to determine the follow-up action.
-}
-
-[idCapture addListener:self];
-```
-
-
-
-
-
-### Handling Success
-
-Capture results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-For more specific information, use its non-null result properties (e.g. [CapturedId.barcode](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/captured-id.html#property-scandit.datacapture.id.CapturedId.Barcode)).
-
-On a successful scan you may read the extracted data from `CapturedId`:
-
-
-
-
-
-```swift
-func idCapture(_ idCapture: IdCapture, didCapture capturedId: CapturedId) {
- let fullName = capturedId.fullName
- let dateOfBirth = capturedId.dateOfBirth
- let dateOfExpiry = capturedId.dateOfExpiry
- let documentNumber = capturedId.documentNumber
-
- // Process data:
- processData(fullName, dateOfBirth, dateOfExpiry, documentNumber)
-}
-```
-
-
-
-
-
-```objectivec
-- (void)idCapture:(SDCIdCapture *)idCapture didCapture:(SDCCapturedId *)capturedId {
- NSString *fullName = capturedId.fullName;
- NSDate *dateOfBirth = capturedId.dateOfBirth;
- NSDate *dateOfExpiry = capturedId.dateOfExpiry;
- NSString *documentNumber = capturedId.documentNumber;
-
- // Process data:
- [self processData:fullName dateOfBirth:dateOfBirth dateOfExpiry:dateOfExpiry documentNumber:documentNumber];
-}
-```
-
-
-
-
-
-:::tip
-All data fields are optional, so it's important to verify whether the required information is present if some of the accepted documents may not contain certain data.
-:::
-
-### Handling Rejection
-
-The ID scanning process may fail for various reasons. Start by inspecting [`RejectionReason`](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) to understand the cause.
-
-You may wish to implement the follow-up action based on the reason of failure:
-
-
-
-
-
-```swift
-func idCapture(_ idCapture: IdCapture,
- didReject capturedId: CapturedId?,
- reason: RejectionReason) {
- if reason == .timeout {
- // Ask the user to retry, or offer alternative input method.
- } else if reason == .notAcceptedDocumentType {
- // Ask the user to provide alternative document.
- } else {
- // Handle other rejection reasons, if necessary.
- }
-}
-```
-
-
-
-
-
-```objectivec
-- (void)idCapture:(SDCIdCapture *)idCapture
- didReject:(nullable SDCCapturedId *)capturedId
- reason:(SDCRejectionReason)rejectionReason {
- if (rejectionReason == SDCRejectionReasonTimeout) {
- // Ask the user to retry, or offer alternative input method.
- } else if (rejectionReason == SDCRejectionReasonNotAcceptedDocumentType) {
- // Ask the user to provide alternative document.
- } else {
- // Handle other rejection reasons, if necessary.
- }
-}
-```
-
-
-
-
-
-## Set up Capture View and Overlay
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [`SDCDataCaptureView`](https://docs.scandit.com/data-capture-sdk/ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-
-
-
-
-```swift
-let dataCaptureView = DataCaptureView(context: dataCaptureContext, frame: .zero)
-view.addSubview(dataCaptureView)
-
-dataCaptureView.translatesAutoresizingMaskIntoConstraints = false
-view.addConstraints([
- dataCaptureView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
- dataCaptureView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
- dataCaptureView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
- dataCaptureView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)
-])
-```
-
-
-
-
-
-```objectivec
-SDCDataCaptureView *dataCaptureView =
- [SDCDataCaptureView dataCaptureViewForContext:dataCaptureContext frame:CGRectZero];
-
-dataCaptureView.translatesAutoresizingMaskIntoConstraints = NO;
-[self.view addSubview:dataCaptureView];
-[self.view addConstraint:[dataCaptureView.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor]];
-[self.view addConstraint:[dataCaptureView.bottomAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor]];
-[self.view addConstraint:[dataCaptureView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor]];
-[self.view addConstraint:[dataCaptureView.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor]];
-```
-
-
-
-
-
-Then, add a [`SDCIdCaptureOverlay`](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) to the view:
-
-
-
-
-
-```swift
-let overlay = IdCaptureOverlay(idCapture: idCapture, view: captureView)
-```
-
-
-
-
-
-```objectivec
-SDCIdCaptureOverlay *overlay = [SDCIdCaptureOverlay overlayWithIdCapture:idCapture view:dataCaptureView];
-```
-
-
-
-
-
-The overlay chooses the displayed UI automatically, based on the selected `SDCIdCaptureSettings`.
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-
-
-
-
-```swift
-camera?.switch(toDesiredState: .on)
-```
-
-
-
-
-
-```objectivec
-[camera switchToDesiredState:SDCFrameSourceStateOn];
-```
-
-
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/ios/id-capture/intro.md
deleted file mode 100644
index 0a99201f..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/id-capture/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx'; "
-
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-toc_max_heading_level: 4
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/ios/id-capture/supported-documents.md
deleted file mode 100644
index c971967c..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/id-capture/supported-documents.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "Scandit ID Capture provides various types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type. "
-
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: ios
-keywords:
- - ios
----
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/ios/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/img/embedded-binaries.png b/versioned_docs/version-8.1.1/sdks/ios/img/embedded-binaries.png
deleted file mode 100644
index fb31108c..00000000
Binary files a/versioned_docs/version-8.1.1/sdks/ios/img/embedded-binaries.png and /dev/null differ
diff --git a/versioned_docs/version-8.1.1/sdks/ios/img/spm.png b/versioned_docs/version-8.1.1/sdks/ios/img/spm.png
deleted file mode 100644
index b2eaf507..00000000
Binary files a/versioned_docs/version-8.1.1/sdks/ios/img/spm.png and /dev/null differ
diff --git a/versioned_docs/version-8.1.1/sdks/ios/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/ios/label-capture/advanced.md
deleted file mode 100644
index 05a12820..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/label-capture/advanced.md
+++ /dev/null
@@ -1,199 +0,0 @@
----
-description: "Guide to customizing overlays in the Scandit iOS Label Capture SDK."
-sidebar_position: 3
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Advanced Configurations
-
-
-## Customize the Overlay Appearance
-
-To customize the appearance of the overlay, you can implement a [LabelCaptureBasicOverlayDelegate](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/ui/label-capture-basic-overlay-listener.html#label-capture-basic-overlay-delegate).
-
-The method [brushForLabel](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForLabel) is called every time a label is captured, and [brushForField](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForField) is called for each of its fields to determine the brush for the label or field.
-
-```swift
-import ScanditLabelCapture
-
-extension YourScanViewController: LabelCaptureBasicOverlayDelegate {
- func labelCaptureBasicOverlay(_ overlay: LabelCaptureBasicOverlay,
- brushFor field: LabelField,
- of label: CapturedLabel) -> Brush? {
- return brush(for: field)
- }
-
- func labelCaptureBasicOverlay(_ overlay: LabelCaptureBasicOverlay,
- brushFor label: CapturedLabel) -> Brush? {
- /*
- * Customize the appearance of the overlay for the full label.
- * In this example, we always disable label overlays by returning nil.
- */
- return nil
- }
-
- func labelCaptureBasicOverlay(_ overlay: LabelCaptureBasicOverlay,
- didTap label: CapturedLabel) {
- /*
- * Handle user tap gestures on the label.
- */
- }
-
- private func brush(for field: LabelField) -> Brush {
- let fillColor: UIColor
- let strokeColor: UIColor
- switch Field(rawValue: field.name) {
- case "":
- fillColor = .systemCyan.withAlphaComponent(0.5)
- strokeColor = .systemCyan
- case "":
- fillColor = .systemOrange.withAlphaComponent(0.5)
- strokeColor = .systemOrange
- case .none:
- fillColor = .clear
- strokeColor = .clear
- }
- return Brush(fill: fillColor, stroke: strokeColor, strokeWidth: 1)
- }
-}
-```
-
-## Advanced Overlay
-
-For more advanced use cases, such as adding custom views or implementing Augmented Reality (AR) features, you can use the `LabelCaptureAdvancedOverlay`. The example below creates an advanced overlay, configuring it to display a styled warning message below expiry date fields when they're close to expiring, while ignoring other fields.
-
-```swift
-import ScanditLabelCapture
-
-// Create an advanced overlay that allows for custom views to be added over detected label fields
-// This is the key component for implementing Augmented Reality features
-let advancedOverlay = LabelCaptureAdvancedOverlay(labelCapture: labelCapture, dataCaptureView: dataCaptureView)
-
-// Configure the advanced overlay with a delegate that handles AR content creation and positioning
-advancedOverlay.delegate = self
-
-extension YourScanViewController: LabelCaptureAdvancedOverlayDelegate {
-
- // This method is called when a label is detected - we return nil since we're only adding AR elements to specific fields, not the entire label
- func labelCaptureAdvancedOverlay(_ overlay: LabelCaptureAdvancedOverlay,
- viewFor capturedLabel: CapturedLabel) -> UIView? {
- return nil
- }
-
- // This defines where on the detected label the AR view would be anchored
- func labelCaptureAdvancedOverlay(_ overlay: LabelCaptureAdvancedOverlay,
- anchorFor capturedLabel: CapturedLabel) -> Anchor {
- return .center
- }
-
- // This defines the offset from the anchor point for the label's AR view
- func labelCaptureAdvancedOverlay(_ overlay: LabelCaptureAdvancedOverlay,
- offsetFor capturedLabel: CapturedLabel,
- view: UIView) -> PointWithUnit {
- return PointWithUnit(x: 0, y: 0, unit: .pixel)
- }
-
- // This method is called when a field is detected in a label
- func labelCaptureAdvancedOverlay(_ overlay: LabelCaptureAdvancedOverlay,
- viewFor labelField: LabelField) -> UIView? {
- // We only want to create AR elements for expiry date fields that are text-based
- if labelField.name.lowercased().contains("expiry") && labelField.type == .text {
-
- // Check if scanned expiry date is too close to actual date
- let daysUntilExpiry = daysUntilExpiry(from: labelField.text) // Your method
- let dayLimit = 3
-
- if daysUntilExpiry < dayLimit {
- // Create and configure the AR element - a UILabel with appropriate styling
- // This view will appear as an overlay on the camera feed
- let warningLabel = UILabel()
- warningLabel.text = "Item expires soon!"
- warningLabel.textColor = .white
- warningLabel.backgroundColor = .red
- warningLabel.textAlignment = .center
- warningLabel.layer.cornerRadius = 8
- warningLabel.layer.masksToBounds = true
- warningLabel.font = UIFont.boldSystemFont(ofSize: 14)
-
- // Add padding
- warningLabel.frame = CGRect(x: 0, y: 0, width: 200, height: 40)
-
- return warningLabel
- }
- }
- // Return nil for any fields that aren't expiry dates, which means no AR overlay
- return nil
- }
-
- // This defines where on the detected field the AR view should be anchored
- // .bottomCenter places it right below the expiry date text for better visibility
- func labelCaptureAdvancedOverlay(_ overlay: LabelCaptureAdvancedOverlay,
- anchorFor labelField: LabelField) -> Anchor {
- return .bottomCenter
- }
-
- // This defines the offset from the anchor point
- func labelCaptureAdvancedOverlay(_ overlay: LabelCaptureAdvancedOverlay,
- offsetFor labelField: LabelField,
- view: UIView) -> PointWithUnit {
- return PointWithUnit(x: 0, y: 22, unit: .dip)
- }
-}
-```
-
-## Validation Flow
-
-Implementing a validation flow in your Smart Label Capture application differs from the [Get Started](/sdks/ios/label-capture/get-started.md) steps outlined earlier as follows:
-
-### Visualize the Scan Process
-
-Validation flow uses a different overlay, the `LabelCaptureValidationFlowOverlay`. This overlay provides a user interface that guides users through the label capture process, including validation steps.
-
-```swift
-// Create the overlay
-let validationFlowOverlay = LabelCaptureValidationFlowOverlay(
- labelCapture: labelCapture,
- dataCaptureView: dataCaptureView
-)
-
-// Set the delegate to receive validation events
-validationFlowOverlay.delegate = self
-```
-
-### Adjust the Hint Messages
-
-```swift
-// Configure the validation flow with custom settings
-let validationSettings = LabelCaptureValidationFlowSettings()
-validationSettings.missingFieldsHintText = "Please add this field"
-validationSettings.standbyHintText = "No label detected, camera paused"
-validationSettings.validationHintText = "fields captured" // X/Y (X fields out of total Y) is shown in front of this string
-validationSettings.validationErrorText = "Input not valid"
-validationSettings.requiredFieldErrorText = "This field is required"
-validationSettings.manualInputButtonText = "Add info manually"
-
-// Apply the settings to the overlay
-validationFlowOverlay.applySettings(validationSettings)
-```
-
-### Define a Listener
-
-To handle validation events, implement the `LabelCaptureValidationFlowOverlayDelegate` protocol.
-
-```swift
-extension YourScanViewController: LabelCaptureValidationFlowOverlayDelegate {
- // This is called by the validation flow overlay when a label has been fully captured and validated
- func labelCaptureValidationFlowOverlay(_ overlay: LabelCaptureValidationFlowOverlay,
- didCaptureLabelWith fields: [LabelField]) {
-
- let barcodeData = fields.first { $0.name == "" }?.barcode?.data
- let expiryDate = fields.first { $0.name == "" }?.text
-
- // Handle the captured values
- }
-}
-```
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/label-capture/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/label-capture/get-started-with-swift-ui.md
deleted file mode 100644
index 01371c64..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/label-capture/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,229 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit Label Capture.
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add Smart Label Capture to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the Smart Label Capture logic following the main [Get Started guide](./get-started.md)
-2. **Create a SwiftUI wrapper**: Use `UIViewControllerRepresentable` to integrate the `UIViewController`
-3. **Use in your SwiftUI app**: Add the SwiftUI view to your app's view hierarchy
-
-The core Smart Label Capture implementation (data capture context, settings, camera setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for Smart Label Capture
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the Smart Label Capture functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `LabelCaptureViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditLabelCapture
-import UIKit
-
-class LabelCaptureViewController: UIViewController {
- private var context: DataCaptureContext!
- private var camera: Camera?
- private var labelCapture: LabelCapture!
- private var dataCaptureView: DataCaptureView!
- private var labelCaptureOverlay: LabelCaptureBasicOverlay!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupRecognition()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- labelCapture.isEnabled = true
- camera?.switch(toDesiredState: .on)
- }
-
- override func viewDidDisappear(_ animated: Bool) {
- super.viewDidDisappear(animated)
- labelCapture.isEnabled = false
- camera?.switch(toDesiredState: .off)
- }
-
- func setupRecognition() {
- // Follow the implementation from the Get Started guide:
- // 1. Initialize the Data Capture context
- // 2. Initialize the Label Capture mode with label definitions
- // 3. Add listener to handle captured labels
- // 4. Visualize the scan process with DataCaptureView and overlays
- // 5. Configure and start the camera
- }
-}
-
-extension LabelCaptureViewController: LabelCaptureListener {
- func labelCapture(_ labelCapture: LabelCapture,
- didUpdateSession session: LabelCaptureSession,
- frameData: FrameData) {
- // Handle label capture results
- // See the main Get Started guide
- }
-}
-```
-
-## Create a SwiftUI View using UIViewControllerRepresentable
-
-Now create a SwiftUI wrapper that integrates the UIViewController into your SwiftUI app:
-
-```swift
-import SwiftUI
-import UIKit
-
-struct LabelCaptureRepresentable: UIViewControllerRepresentable {
- typealias UIViewControllerType = LabelCaptureViewController
-
- func makeUIViewController(context: Context) -> LabelCaptureViewController {
- return LabelCaptureViewController()
- }
-
- func updateUIViewController(_ uiViewController: LabelCaptureViewController, context: Context) {
- // Update the view controller if needed
- }
-}
-```
-
-## Use the SwiftUI View in Your App
-
-Finally, use the `LabelCaptureRepresentable` in your SwiftUI app:
-
-```swift
-import SwiftUI
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- LabelCaptureRepresentable()
- }
- }
-}
-```
-
-Or within another SwiftUI view:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- LabelCaptureRepresentable()
- .navigationTitle("Smart Label Capture")
- }
- }
-}
-```
-
-## Alternative: Using UIViewRepresentable
-
-As an alternative to wrapping a `UIViewController`, you can implement the Smart Label Capture functionality directly using `UIViewRepresentable`. This approach creates the capture view directly without an intermediate view controller:
-
-```swift
-import ScanditLabelCapture
-import SwiftUI
-
-struct LabelCaptureView: UIViewRepresentable {
- private let dataCaptureContext: DataCaptureContext
- private let labelCapture: LabelCapture
- private let listener: Listener
-
- init(labelDefinitions: [LabelDefinition],
- onLabelCaptured: @escaping ([CapturedLabel]) -> Void) {
- // Create the data capture context
- DataCaptureContext.initialize(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
- dataCaptureContext = DataCaptureContext.shared
-
- // Configure Label Capture settings
- guard let settings = try? LabelCaptureSettings(labelDefinitions: labelDefinitions) else {
- // Handle error here
- // ...
- }
-
- // Create Label Capture mode
- labelCapture = LabelCapture(context: dataCaptureContext, settings: settings)
-
- // Create the listener
- // IMPORTANT: You must assign the listener to a strong property
- // to prevent it from being deallocated
- listener = Listener(onLabelCaptured: onLabelCaptured)
- labelCapture.addListener(listener)
- }
-
- func makeUIView(context: Context) -> UIView {
- if let camera = Camera.default {
- // Apply recommended camera settings
- let cameraSettings = LabelCapture.recommendedCameraSettings
- camera.apply(cameraSettings)
-
- // Turn on the camera
- dataCaptureContext.setFrameSource(camera)
- camera.switch(toDesiredState: .on)
- } else {
- print("Camera not available")
- }
-
- // Enable Label Capture
- labelCapture.isEnabled = true
-
- // Create the capture view
- let captureView = DataCaptureView(context: dataCaptureContext, frame: .zero)
- captureView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-
- // Create the overlay
- let overlay = LabelCaptureBasicOverlay(labelCapture: labelCapture, view: captureView)
- captureView.addOverlay(overlay)
-
- return captureView
- }
-
- func updateUIView(_ uiView: UIView, context: Context) {
- // Update the view if needed
- }
-}
-
-private class Listener: NSObject, LabelCaptureListener {
- private let onLabelCaptured: ([CapturedLabel]) -> Void
-
- init(onLabelCaptured: @escaping ([CapturedLabel]) -> Void) {
- self.onLabelCaptured = onLabelCaptured
- }
-
- func labelCapture(_ labelCapture: LabelCapture,
- didUpdate session: LabelCaptureSession,
- frameData: FrameData) {
- let capturedLabels = session.capturedLabels
- guard capturedLabels.count > 0 else { return }
- DispatchQueue.main.async {
- self.onLabelCaptured(capturedLabels)
- }
- }
-}
-```
-
-You can then use this view directly in your SwiftUI app:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- VStack {
- LabelCaptureView(
- labelDefinitions: labelDefinitions,
- onLabelCaptured: { labels in
- // Handle captured labels
- }
- )
- .navigationTitle("Smart Label Capture")
- }
- }
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/label-capture/get-started.md
deleted file mode 100644
index 318ed539..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/label-capture/get-started.md
+++ /dev/null
@@ -1,230 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Smart Label Capture to your application. "
-
-sidebar_position: 2
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Smart Label Capture to your application.
-
-The general steps are:
-
-- Create a view controller
-- Initialize the Data Capture context
-- Initialize the Label Capture mode
-- Implement a listener to handle captured labels
-- Visualize the scan process
-- Start the camera
-- Provide feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you have added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import LabelCaptureModuleOverview from '../../../partials/get-started/_smart-label-capture-module-overview.mdx';
-
-
-
-## Create a view controller
-
-```swift
-import ScanditLabelCapture
-
-class YourScanViewController: UIViewController {
- private var context: DataCaptureContext!
- private var labelCapture: LabelCapture!
- private var dataCaptureView: DataCaptureView!
- private var labelCaptureOverlay: LabelCaptureBasicOverlay!
- private var camera: Camera?
-
- override func viewDidLoad() {
- super.viewDidLoad()
- /* Initialize the components as lined out in the following sections */
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- /* Start the camera */
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- /* Stop the camera, disable capture mode */
- }
-
- // ...
-}
-```
-
-## Initialize the Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Initialize the Label Capture Mode
-
-The main entry point for the Label Capture Mode is the [LabelCapture](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/label-capture.html#class-scandit.datacapture.label.LabelCapture) object.
-
-It is configured through [LabelCaptureSettings](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/label-capture-settings.html#class-scandit.datacapture.label.LabelCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) that get informed whenever a new frame has been processed.
-
-```swift
-let labelCaptureSettings = try LabelCaptureSettings {
- LabelDefinition("") {
- /*
- * Add a barcode field with the expected symbologies and pattern.
- * You can omit the valueRegexes if the content of the barcode is unknown.
- */
- CustomBarcode(
- name: "",
- symbologies: [.ean13UPCA, .code128]
- )
- .valueRegexes(["\\d{12,14}"])
-
- /*
- * Add a text field for capturing expiry dates.
- * The field is set as mandatory by default.
- */
- ExpiryDateText(name: "")
- }
-}
-
-/*
-* Create the label capture mode with the settings
-* and data capture context created earlier
-*/
-labelCapture = LabelCapture(context: context, settings: labelCaptureSettings)
-
-/*
-* Add a listener to the label capture mode, see the following section
-* for more information on implementing the listener
-*/
-labelCapture.addListener(self)
-```
-
-## Implement a Listener to Handle Captured Labels
-
-To get informed whenever a new label has been recognized, add a [LabelCaptureListener](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) through [LabelCapture.addListener()](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/label-capture.html#method-scandit.datacapture.label.LabelCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First conform to the `LabelCaptureListener` interface. Here is an example of how to implement a listener that processes the captured labels based on the label capture settings defined above:
-
-```swift
-extension YourScanViewController: LabelCaptureListener {
- func labelCapture(
- _ labelCapture: LabelCapture,
- didUpdate session: LabelCaptureSession,
- frameData: FrameData
- ) {
- /*
- * The did update callback is called for every processed frame.
- * Check if the session contains any captured labels;
- * if not, continue capturing.
- */
- guard let label = session.capturedLabels.first else { return }
-
- /*
- * Given the label capture settings defined above, barcode data will always be present.
- */
- guard let barcodeField = label.field(for: ""),
- let barcodeData = barcodeField.barcode?.data else { return }
-
- /*
- * The expiry date field is optional.
- * Check for nil in your result handling.
- */
- let expiryDate = label.field(for: "").text
-
- /*
- * Emit feedback to notify the user that a label has been captured.
- */
- Feedback.default.emit()
-
- DispatchQueue.main.async {
- camera?.switch(toDesiredState: .off)
- labelCapture.isEnabled = false
- /*
- * Handle the captured barcode and expiry date here.
- */
- }
- }
-}
-```
-## Visualize the Scan Process
-
-The capture process can be visualized by adding a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy. The view controls the UI elements, such as the viewfinder and overlays, that are shown to visualize captured labels.
-
-To visualize the results of Label Capture, you can choose between two overlays, [LabelCaptureBasicOverlay](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/ui/label-capture-basic-overlay.html#label-capture-basic-overlay) and [LabelCaptureAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/ui/label-capture-advanced-overlay.html#label-capture-advanced-overlay).
-
-Here is an example of how to add a `LabelCaptureBasicOverlay` to the `DataCaptureView`:
-
-```swift
-/*
-* Create the data capture view and attach it to the data capture context created earlier.
-*/
-dataCaptureView = DataCaptureView(context: dataCaptureContext, frame: .zero)
-
-/*
-* Add the data capture view to your view hierarchy, e.g. with insertSubview.
-*/
-containerView.insertSubview(dataCaptureView, at: 0)
-
-/*
-* Create the overlay with the label capture mode and data capture view created earlier.
-*/
-labelCaptureOverlay = LabelCaptureBasicOverlay(labelCapture: labelCapture, view: dataCaptureView)
-labelCaptureOverlay.viewfinder = RectangularViewfinder(style: .square)
-```
-
-:::tip
-See the [Advanced Configurations](advanced.md) section for more information about how to customize the appearance of the overlays and how to use the advanced overlay to display arbitrary iOS views such as text views, icons or images.
-:::
-
-## Start the Camera
-
-Next, you need to create a new instance of the [`SDCCamera`](https://docs.scandit.com/data-capture-sdk/ios/core/api/camera.html#class-scandit.datacapture.core.Camera) class to indicate the camera that will be used to stream previews and capture images.
-
-You can initialize the camera with the recommended settings for Label Capture:
-
-```swift
-camera = Camera.default
-context.setFrameSource(camera, completionHandler: nil)
-
-let recommendedCameraSettings = LabelCapture.recommendedCameraSettings
-camera?.apply(recommendedCameraSettings)
-```
-
-Once the Camera, DataCaptureContext, DataCaptureView and LabelCapture are initialized, you can switch on the camera to start capturing labels.
-
-This can be done in the `viewWillAppear` method of your view controller, or once a user presses continue scanning after handling a previous scan.
-
-```swift
-camera?.switch(toDesiredState: .on)
-```
-
-## Provide Feedback
-
-Smart Label Capture provides customizable feedback, emitted automatically when a label is recognized and successfully processed, configurable via [`LabelCapture.feedback`](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/label-capture.html#property-scandit.datacapture.label.LabelCapture.Feedback).
-
-You can use the default feedback, or configure your own sound or vibration.
-
-:::tip
-If you already have a [Feedback](https://docs.scandit.com/data-capture-sdk/ios/core/api/feedback.html#class-scandit.datacapture.core.Feedback) instance implemented in your application, remove it to avoid double feedback.
-:::
-
-```swift
-labelCapture.feedback = LabelCaptureFeedback.default
-```
-
-:::note
-Audio feedback is only played if the device is not muted.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/ios/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/ios/label-capture/intro.md
deleted file mode 100644
index 077edc79..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/label-capture/intro.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-description: "import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx'; "
-
-sidebar_label: About Smart Label Capture
-title: About Smart Label Capture
-toc_max_heading_level: 4
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx';
-
-
-
-import ValidationFlow from '../../../partials/intro/_about_validation_flow.mdx';
-
-
-
-See [here](./advanced.md#validation-flow) for more details.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/label-capture/label-definitions.md b/versioned_docs/version-8.1.1/sdks/ios/label-capture/label-definitions.md
deleted file mode 100644
index 337d6d20..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/label-capture/label-definitions.md
+++ /dev/null
@@ -1,149 +0,0 @@
----
-description: "Smart Label Capture provides a API, enabling you to configure and extract structured data from predefined and custom labels. This feature provides a flexible way to recognize and decode fields within a specific label layout such as price tags, VIN labels, or packaging stickers without needing to write custom code for each label type. "
-
-framework: ios
-toc_max_heading_level: 4
-keywords:
- - ios
----
-
-# Label Definitions
-
-Smart Label Capture provides a [Label Definition](https://docs.scandit.com/data-capture-sdk/ios/label-capture/api/label-definition.html#label-definition) API, enabling you to configure and extract structured data from predefined and custom labels. This feature provides a flexible way to recognize and decode fields within a specific label layout such as price tags, VIN labels, or packaging stickers without needing to write custom code for each label type.
-
-A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans.
-
-There are two approaches to using label definitions:
-
-- [**Pre-built Labels**](#pre-built-labels)
-- [**Custom Labels**](#custom-labels)
-
-## Pre-built Labels
-
-Smart Label Capture includes ready-made label definitions for common use cases. These pre-built options let you recognize and extract information from standard label types without creating custom configurations:
-
-
-
-### Example: Price label
-
-Configure a pre-built label definition for price labels, such as those found in retail environments:
-
-
-
-```swift
-let settings = try LabelCaptureSettings {
- LabelDefinition.priceCapture(withName: "price-label")
-}
-```
-
-## Custom Labels
-
-If Smart Label Capture’s pre-built options don’t fit your needs, define a custom label instead. Custom labels can combine your own fields with any of the available pre-built ones.
-
-:::tip
-The following characters are recognized: `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()-./:,$¶"`.
-:::
-
-### Custom Fields
-
-There are two types of custom fields you can define:
-
-
-
-The following fluent methods are available to configure custom fields:
-
-| Method | Optional | Description |
-|--------|----------|-------------|
-| `valueRegex()` / `valueRegexes()` | No | The regex patterns that identify the target string in the scanned content. |
-| `anchorRegex()` / `anchorRegexes()` | Yes | Used to specify keywords or phrases that help identify the context of the field. This is particularly useful when the label contains multiple fields that could match the same pattern (e.g., when both packaging and expiry dates are present). |
-| `symbologies` (init param) | No | The barcode symbologies to match for barcode fields. This is important for ensuring that the field only captures data from specific barcode types, enhancing accuracy and relevance. |
-| `optional()` | Yes | Whether the field is optional or mandatory. This is helpful when certain fields may not be present on every scan. |
-
-#### Example: Fish Shipping Box
-
-This example shows how to create a custom label definition for a fish shipping box, which includes fields for barcode and batch number.
-
-
-
-```swift
-let settings = try LabelCaptureSettings {
- LabelDefinition("shipping-label") {
- CustomBarcode(
- name: "barcode-field",
- symbologies: [.code128]
- )
-
- CustomText(name: "batch-number-field")
- .anchorRegexes(["Batch"])
- .valueRegexes(["FZ\\d{5,10}"])
- .optional(true)
- }
-}
-```
-
-### Pre-built Fields
-
-You can also configure your label by using pre-built fields. These are some common fields provided for faster integration, with all value regex patterns and anchor regex patterns already predefined.
-
-Customization of pre-built fields is done via the `valueRegex()`, `valueRegexes()`, `anchorRegex()`, `anchorRegexes()`, and `optional()` fluent methods, which allow you to specify the expected format of the field data.
-
-:::tip
-All pre-built fields come with default value and anchor regex patterns that are suitable for most use cases. **Using these methods is optional and will override the defaults**.
-
-The `resetAnchorRegexes()` method can be used to remove the default anchor regexes, allowing you to rely solely on the value patterns for detection.
-:::
-
-import FeatureList from '@site/src/components/FeatureList';
-
-#### Barcode Fields
-
-
-
-#### Price and Weight Fields
-
-
-
-#### Date and Custom Text Fields
-
-
-
-#### Example: Hard disk drive label
-
-This example demonstrates how to configure a label definition for a hard disk drive (HDD) label, which typically includes common fields like serial number and part number.
-
-
-
-```swift
-let settings = try LabelCaptureSettings {
- LabelDefinition("hdd-label") {
- SerialNumberBarcode(name: "serial-number")
- PartNumberBarcode(name: "part-number")
- }
-}
-```
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/label-scanning.md b/versioned_docs/version-8.1.1/sdks/ios/label-scanning.md
deleted file mode 100644
index e6cc0e24..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/label-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Label scanning enables you to capture and extract data from labels containing multiple barcodes and printed text, making it ideal for retail, logistics, and inventory management applications."
-toc_max_heading_level: 4
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# Label Scanning
-
-import LabelScanning from '../../partials/_label-scanning.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/get-started-with-swift-ui.md
deleted file mode 100644
index 5ce94785..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,220 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit MatrixScan AR.
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add MatrixScan AR to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the MatrixScan AR logic following the main [Get Started guide](./get-started.md)
-2. **Create a SwiftUI wrapper**: Use `UIViewControllerRepresentable` to integrate the `UIViewController`
-3. **Use in your SwiftUI app**: Add the SwiftUI view to your app's view hierarchy
-
-The core MatrixScan AR implementation (data capture context, settings, camera setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for MatrixScan AR
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the MatrixScan AR functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `MatrixScanArViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditBarcodeCapture
-import UIKit
-
-class MatrixScanArViewController: UIViewController {
- private var context: DataCaptureContext!
- private var barcodeAr: BarcodeAr!
- private var barcodeArView: BarcodeArView!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupRecognition()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodeArView.start()
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- barcodeArView.stop()
- }
-
- func setupRecognition() {
- // Follow the implementation from the Get Started guide:
- // 1. Create data capture context
- // 2. Configure the Barcode AR Mode
- // 3. Setup the Barcode AR View
- // 4. Register the providers
- }
-}
-
-extension MatrixScanArViewController: BarcodeArAnnotationProvider {
- func annotation(for barcode: Barcode,
- completionHandler: @escaping ((any UIView & BarcodeArAnnotation)?) -> Void) {
- // Provide annotations for barcodes
- // See the main Get Started guide
- }
-}
-
-extension MatrixScanArViewController: BarcodeArHighlightProvider {
- func highlight(for barcode: Barcode,
- completionHandler: @escaping ((any UIView & BarcodeArHighlight)?) -> Void) {
- // Provide highlights for barcodes
- // See the main Get Started guide
- }
-}
-
-extension MatrixScanArViewController: BarcodeArViewUIDelegate {
- func barcodeAr(_ barcodeAr: BarcodeAr,
- didTapHighlightFor barcode: Barcode,
- highlight: any UIView & BarcodeArHighlight) {
- // Handle tap events
- }
-}
-```
-
-## Create a SwiftUI View using UIViewControllerRepresentable
-
-Now create a SwiftUI wrapper that integrates the UIViewController into your SwiftUI app:
-
-```swift
-import SwiftUI
-import UIKit
-
-struct MatrixScanArRepresentable: UIViewControllerRepresentable {
- typealias UIViewControllerType = MatrixScanArViewController
-
- func makeUIViewController(context: Context) -> MatrixScanArViewController {
- return MatrixScanArViewController()
- }
-
- func updateUIViewController(_ uiViewController: MatrixScanArViewController, context: Context) {
- // Update the view controller if needed
- }
-}
-```
-
-## Use the SwiftUI View in Your App
-
-Finally, use the `MatrixScanArRepresentable` in your SwiftUI app:
-
-```swift
-import SwiftUI
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- MatrixScanArRepresentable()
- }
- }
-}
-```
-
-Or within another SwiftUI view:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- MatrixScanArRepresentable()
- .navigationTitle("MatrixScan AR")
- }
- }
-}
-```
-
-## Alternative: Using UIViewRepresentable
-
-As an alternative to wrapping a `UIViewController`, you can implement the MatrixScan AR functionality directly using `UIViewRepresentable`. This approach creates the AR view directly without an intermediate view controller:
-
-```swift
-import ScanditBarcodeCapture
-import SwiftUI
-
-struct MatrixScanArView: UIViewRepresentable {
- private let dataCaptureContext: DataCaptureContext
- private let barcodeAr: BarcodeAr
- private let highlightProvider: HighlightProvider
- private let annotationProvider: AnnotationProvider
-
- init() {
- // Create the data capture context
- DataCaptureContext.initialize(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
- dataCaptureContext = DataCaptureContext.shared
-
- // Configure Barcode AR settings
- let settings = BarcodeArSettings()
- // ...
-
- // Create Barcode AR mode
- barcodeAr = BarcodeAr(context: dataCaptureContext, settings: settings)
-
- // Create providers
- highlightProvider = HighlightProvider()
- annotationProvider = AnnotationProvider()
- }
-
- func makeUIView(context: Context) -> UIView {
- let view = UIView()
-
- // Configure Barcode AR view settings
- let viewSettings = BarcodeArViewSettings()
- // ...
-
- // Create the Barcode AR view
- let barcodeArView = BarcodeArView(parentView: view,
- barcodeAr: barcodeAr,
- settings: viewSettings,
- cameraSettings: nil)
- barcodeArView.highlightProvider = highlightProvider
- barcodeArView.annotationProvider = annotationProvider
-
- // Start the AR view
- barcodeArView.start()
-
- return view
- }
-
- func updateUIView(_ uiView: UIView, context: Context) {
- // Update the view if needed
- }
-}
-
-private class HighlightProvider: NSObject, BarcodeArHighlightProvider {
- func highlight(for barcode: Barcode) async -> (any UIView & BarcodeArHighlight)? {
- // Provide highlights for barcodes
- // ...
- }
-}
-
-private class AnnotationProvider: NSObject, BarcodeArAnnotationProvider {
- func annotation(for barcode: Barcode) async -> (any UIView & BarcodeArAnnotation)? {
- // Provide annotations for barcodes
- // ...
- }
-}
-```
-
-You can then use this view directly in your SwiftUI app:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- VStack {
- MatrixScanArView()
- .navigationTitle("MatrixScan AR")
- }
- }
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/get-started.md
deleted file mode 100644
index 498f0145..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,158 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements: "
-
-sidebar_position: 2
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements:
-
-- Barcode AR: The data capture mode that is used for scan and check functionality.
-- A Barcode AR View: The pre-built UI elements used to highlight items to be checked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode AR Mode
-- Setup the Barcode AR View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Configure the Barcode AR Mode
-
-The main entry point for the Barcode AR Mode is the `BarcodeAr` object. You can configure the supported Symbologies through its [`BarcodeArSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-ar-settings.html).
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```swift
-let settings = BarcodeArSettings()
-settings.set(symbology: .ean13UPCA, enabled: true)
-```
-
-Then create the mode with the previously created settings:
-
-```swift
-let mode = BarcodeAr(context: context,
- settings: settings)
-```
-
-## Setup the `BarcodeArView`
-
-MatrixScan AR’s built-in AR user interface includes buttons and overlays that guide the user through the scan and check process. By adding a [`BarcodeArView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.ar.ui.BarcodeArView), the scanning interface is added automatically to your application.
-
-The `BarcodeArView` is where you provide the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.ar.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.ar.ui.BarcodeArView.AnnotationProvider) to supply the highlight and annotation information for the barcodes to be checked. If *null*, a default highlight is used and no annotations are provided.
-
-The `BarcodeArView` appearance can be customized through [`BarcodeArViewSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-ar-view-settings.html#class-scandit.datacapture.barcode.ar.ui.BarcodeArViewSettings), properties on the`BarcodeArView`, and the corresponding settings for your desired highlights and/or annotations, to match your application’s look and feel. The following settings can be customized:
-
-* Audio and haptic feedback
-* Camera position
-* Torch button visibility and its position
-* Switch camera button visibility and its position
-* Zoom control visibility and its position
-* The size, colors, and styles of the highlights and annotations
-
-```swift
-let viewSettings = BarcodeArViewSettings()
-viewSettings.hapticEnabled = false
-viewSettings.soundEnabled = false
-viewSettings.defaultCameraPosition = .userFacing
-```
-
-Next, create a `BarcodeArView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeArView` is automatically added to the provided parent view.
-
-```swift
-let barcodeArView = BarcodeArView(parentView: parentView,
- barcodeAr: barcodeAr,
- settings: viewSettings,
- cameraSettings: BarcodeAr.recommendedCameraSettings)
-barcodeArView.shouldShowCameraSwitchControl = true
-barcodeArView.shouldShowTorchControl = true
-barcodeArView.shouldShowZoomControl = true
-barcodeArView.cameraSwitchControlPosition = .topRight
-barcodeArView.torchControlPosition = .bottomRight
-barcodeArView.zoomControlPosition = .topLeft
-```
-
-Configure the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.ar.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.ar.ui.BarcodeArView.AnnotationProvider).
-
-```swift
-extension ViewController: BarcodeArAnnotationProvider {
- func annotation(for barcode: Barcode,
- completionHandler: @escaping ((any UIView & BarcodeArAnnotation)?) -> Void) {
- let annotation = BarcodeArStatusIconAnnotation(barcode: barcode)
- annotation.text = "Example annotation"
- completionHandler(annotation)
- }
-}
-
-extension ViewController: BarcodeArHighlightProvider {
- func highlight(for barcode: Barcode,
- completionHandler: @escaping ((any UIView & BarcodeArHighlight)?) -> Void) {
- let highlight = BarcodeArRectangleHighlight(barcode: barcode)
- completionHandler(highlight)
- }
-}
-```
-
-And set them to the view:
-
-```swift
-barcodeArView.annotationProvider = self
-barcodeArView.highlightProvider = self
-```
-
-Connect the `BarcodeArView` to the iOS lifecycle. The view is dependent on calling `BarcodeArView.start()` and `BarcodeArView.stop()` to set up the camera and its overlays properly.
-
-```swift
-override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodeArView.start()
-}
-
-override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- barcodeArView.stop()
-}
-```
-
-## Register the Listener
-
-If you want a callback when a highlight is tapped, register a [BarcodeArViewUIDelegate](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-ar-view.html#interface-scandit.datacapture.barcode.ar.ui.IBarcodeArViewUiListener).
-
-```swift
-extension ViewController: BarcodeArViewUIDelegate {
- func barcodeAr(_ barcodeAr: BarcodeAr,
- didTapHighlightFor barcode: Barcode,
- highlight: any UIView & BarcodeArHighlight) {
- // Handle tap
- }
-}
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `barcodeArView.start()`.
-
-```swift
-override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodeArView.start()
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/intro.md
deleted file mode 100644
index 8520e9cb..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# About MatrixScan AR
-
-import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/advanced.md
deleted file mode 100644
index 81df9d61..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,150 +0,0 @@
----
-description: "MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Advanced Configurations
-
-MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs.
-
-## Scanning Against a List
-
-There is a function to set a list of expected barcodes if you are scanning against a manifest or item list. If this is used, a progress bar is added to the UI so you can keep track of the process while scanning.
-
-When scanning against a list, the UI will also show red icons to mark scanned barcodes that aren’t present on the list. To set the list of expected barcodes, use the following code:
-
-```swift
-let targetBarcodes = Set(arrayLiteral: TargetBarcode(data: "data", quantity: 1))
-let captureList = BarcodeCountCaptureList(listener: self, targetBarcodes: targetBarcodes)
-barcodeCount.setCaptureList(captureList)
-```
-
-## Barcode Count Status
-
-This feature is used to provide users with more details regarding the items they’re scanning in order to aid effective handling. The icons appear as an AR overlay after tapping the “Status Mode” button and can be used to highlight the following:
-
-
-
-See the [Expiry Management Sample](https://github.com/Scandit/datacapture-ios-samples/tree/master/03_Advanced_Batch_Scanning_Samples/02_Counting_and_Receiving/ExpiryManagementSample)
-
- for an example of how to use this feature.
-
-## Clustering
-
-import Clustering from '../../../partials/count/_clustering.mdx'
-
-
-
-## Tote Mapping
-
-import Totes from '../../../partials/count/_tote-mapping.mdx'
-
-
-
-## Strap Mode
-
-It can be difficult to reach the shutter button if the smart device is attached to the user’s wrist by a strap or similar.
-
-You can enable a floating shutter button that can be positioned by the end user in a more ergonomically suitable position:
-
-```swift
-barcodeCountView.shouldShowFloatingShutterButton = true
-```
-
-## Filtering
-
-If there several types of barcodes on your label you may want to scan only one of them. In this case, you can filter the others out by symbology, symbol count, or setting a regex.
-
-For example, you might want to scan only Code 128 barcodes and no PDF417 barcodes. You can do this by setting the following:
-
-```swift
-let filterSettings = BarcodeFilterSettings()
-filterSettings.excludedSymbologies = [.pdf417]
-
-let barcodeCountSettings = BarcodeCountSettings()
-barcodeCountSettings.set(symbology: .code128, enabled: true))
-barcodeCountSettings.set(symbology: .pdf417, enabled: true))
-barcodeCountSettings.filterSettings = filterSettings
-```
-
-Or to exclude all the barcodes starting with 4 numbers:
-
-```swift
-let filterSettings = BarcodeFilterSettings()
-settings.excludedCodesRegex = "^1234.*"
-
-let barcodeCountSettings = BarcodeCountSettings()
-barcodeCountSettings.filterSettings = filterSettings
-```
-
-By default the filters applied to the relevant barcodes are transparent, but you can use [`BarcodeFilterHighlightSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-filter-highlight-settings.html#barcode-filter-highlight-settings) to change the color and level of transparency.
-
-
-
-## Clear Screen Button
-
-There are situations in which the user may find it helpful to clean up their screen (i.e. clear all the AR overlays) but keep the list of barcodes scanned.
-
-For this you can enable the “Clear screen” button:
-
-```swift
-barcodeCountView.shouldShowClearHighlightsButton = true
-```
-
-## Customizing the AR Overlays
-
-MatrixScan Count comes with recommended and user-tested AR overlays. You can customize the overlay colors once the overlay has been added according to the [`SDCBarcodeCountViewDelegate`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-count-view-listener.html#interface-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener) protocol.
-
-The methods [`SDCBarcodeCountViewDelegate.barcodeCountView:brushForRecognizedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForRecognizedBarcode) and [`SDCBarcodeCountViewDelegate.barcodeCountView:brushForUnrecognizedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForUnrecognizedBarcode) are invoked every time a new recognized or unrecognized barcode appears. These can be used to set a brush that will highlight that specific barcode in the overlay. Keep in mind that these methods are relevant only when using the style [`SDCBarcodeCountViewStyleDot`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-count-view.html#value-scandit.datacapture.barcode.count.ui.BarcodeCountViewStyle.Dot).
-
-```swift
-func barcodeCountView(_ view: BarcodeCountView,
- brushForRecognizedBarcode trackedBarcode: TrackedBarcode) -> Brush? {
- // Return a custom brush
-}
-
-func barcodeCountView(_ view: BarcodeCountView,
- brushForUnrecognizedBarcode trackedBarcode: TrackedBarcode) -> Brush? {
- // Return a custom brush
-}
-```
-
-## Notifications
-
-To be notified when a user taps on an overlay, you need to implement the [`SDCBarcodeCountViewDelegate.barcodeCountView:didTapRecognizedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnRecognizedBarcodeTapped) and [`SDCBarcodeCountViewDelegate.barcodeCountView:didTapUnrecognizedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped) methods:
-
-```swift
-func barcodeCountView(_ view: BarcodeCountView,
- didTapRecognizedBarcode trackedBarcode: TrackedBarcode) {
- // Do something with the tapped barcode
-}
-
-func barcodeCountView(_ view: BarcodeCountView,
- didTapUnrecognizedBarcode trackedBarcode: TrackedBarcode) {
- // Do something with the tapped barcode
-}
-```
-
-## Disable UI Elements
-
-The UI is an integral part of MatrixScan Count and we do not recommend that you use it without it. However, if you wish to disable UI elements you can so as follows.
-
-To disable buttons:
-
-```swift
-barcodeCountView.shouldShowListButton = false
-barcodeCountView.shouldShowExitButton = false
-barcodeCountView.shouldShowShutterButton = false
-```
-
-To disable feedback and hints:
-
-```swift
-barcodeCountView.shouldShowHints = false
-barcodeCountView.shouldShowUserGuidanceView = false
-```
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/get-started-with-swift-ui.md
deleted file mode 100644
index 11154a72..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,228 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit MatrixScan Count.
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add MatrixScan Count to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the MatrixScan Count logic following the main [Get Started guide](./get-started.md)
-2. **Create a SwiftUI wrapper**: Use `UIViewControllerRepresentable` to integrate the `UIViewController`
-3. **Use in your SwiftUI app**: Add the SwiftUI view to your app's view hierarchy
-
-The core MatrixScan Count implementation (data capture context, settings, camera setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for MatrixScan Count
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the MatrixScan Count functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `MatrixScanCountViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditBarcodeCapture
-import UIKit
-
-class MatrixScanCountViewController: UIViewController {
- private var context: DataCaptureContext!
- private var camera: Camera?
- private var barcodeCount: BarcodeCount!
- private var barcodeCountView: BarcodeCountView!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupRecognition()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- camera?.switch(toDesiredState: .on)
- }
-
- override func viewDidDisappear(_ animated: Bool) {
- super.viewDidDisappear(animated)
- camera?.switch(toDesiredState: .off)
- }
-
- func setupRecognition() {
- // Follow the implementation from the Get Started guide:
- // 1. Create data capture context
- // 2. Configure the Barcode Count Mode
- // 3. Obtain the camera instance and set frame source
- // 4. Register the listener to be informed when scan phase is complete
- // 5. Set the capture view and AR overlays
- // 6. Configure UI delegate for list and exit callbacks
- }
-}
-
-extension MatrixScanCountViewController: BarcodeCountListener {
- func barcodeCount(_ barcodeCount: BarcodeCount,
- didScanIn session: BarcodeCountSession,
- frameData: FrameData) {
- // Handle barcode count results
- // See the main Get Started guide
- }
-}
-
-extension MatrixScanCountViewController: BarcodeCountViewUIDelegate {
- func listButtonTapped(for view: BarcodeCountView) {
- // Handle list button tap
- }
-
- func exitButtonTapped(for view: BarcodeCountView) {
- // Handle exit button tap
- }
-}
-```
-
-## Create a SwiftUI View using UIViewControllerRepresentable
-
-Now create a SwiftUI wrapper that integrates the UIViewController into your SwiftUI app:
-
-```swift
-import SwiftUI
-import UIKit
-
-struct MatrixScanCountRepresentable: UIViewControllerRepresentable {
- typealias UIViewControllerType = MatrixScanCountViewController
-
- func makeUIViewController(context: Context) -> MatrixScanCountViewController {
- return MatrixScanCountViewController()
- }
-
- func updateUIViewController(_ uiViewController: MatrixScanCountViewController, context: Context) {
- // Update the view controller if needed
- }
-}
-```
-
-## Use the SwiftUI View in Your App
-
-Finally, use the `MatrixScanCountRepresentable` in your SwiftUI app:
-
-```swift
-import SwiftUI
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- MatrixScanCountRepresentable()
- }
- }
-}
-```
-
-Or within another SwiftUI view:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- MatrixScanCountRepresentable()
- .navigationTitle("MatrixScan Count")
- }
- }
-}
-```
-
-## Alternative: Using UIViewRepresentable
-
-As an alternative to wrapping a `UIViewController`, you can implement the MatrixScan Count functionality directly using `UIViewRepresentable`. This approach creates the count view directly without an intermediate view controller:
-
-```swift
-import ScanditBarcodeCapture
-import SwiftUI
-
-struct MatrixScanCountView: UIViewRepresentable {
- private let dataCaptureContext: DataCaptureContext
- private let barcodeCount: BarcodeCount
- private let listener: Listener
-
- init(onBarcodeCountUpdated: @escaping ([Barcode]) -> Void) {
- // Create the data capture context
- DataCaptureContext.initialize(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
- dataCaptureContext = DataCaptureContext.shared
-
- // Configure Barcode Count settings
- let settings = BarcodeCountSettings()
- // ...
-
- // Create Barcode Count mode
- barcodeCount = BarcodeCount(context: dataCaptureContext, settings: settings)
-
- // Create the listener and UI delegate
- // IMPORTANT: You must assign these to strong properties
- // to prevent them from being deallocated
- listener = Listener(onBarcodeCountUpdated: onBarcodeCountUpdated)
- barcodeCount.addListener(listener)
- }
-
- func makeUIView(context: Context) -> UIView {
- if let camera = Camera.default {
- // Apply recommended camera settings
- let cameraSettings = BarcodeCount.recommendedCameraSettings
- camera.apply(cameraSettings)
-
- // Turn on the camera
- dataCaptureContext.setFrameSource(camera)
- camera.switch(toDesiredState: .on)
- } else {
- print("Camera not available")
- }
-
- // Enable Barcode Count
- barcodeCount.isEnabled = true
-
- // Create the Barcode Count view
- let barcodeCountView = BarcodeCountView(frame: .zero,
- context: dataCaptureContext,
- barcodeCount: barcodeCount)
- barcodeCountView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-
- return barcodeCountView
- }
-
- func updateUIView(_ uiView: UIView, context: Context) {
- // Update the view if needed
- }
-}
-
-private class Listener: NSObject, BarcodeCountListener {
- private let onBarcodeCountUpdated: ([Barcode]) -> Void
-
- init(onBarcodeCountUpdated: @escaping ([Barcode]) -> Void) {
- self.onBarcodeCountUpdated = onBarcodeCountUpdated
- }
-
- func barcodeCount(_ barcodeCount: BarcodeCount,
- didScanIn session: BarcodeCountSession,
- frameData: FrameData) {
- let barcodes = session.recognizedBarcodes
- DispatchQueue.main.async {
- self.onBarcodeCountUpdated(barcodes)
- }
- }
-}
-```
-
-You can then use this view directly in your SwiftUI app:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- VStack {
- MatrixScanCountView { barcodes in
- // Handle recognized barcodes
- }
- .navigationTitle("MatrixScan Count")
- }
- }
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/get-started.md
deleted file mode 100644
index 4885be0a..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,166 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Count to your application. "
-
-sidebar_position: 2
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Count to your application.
-
-:::note
-MatrixScan Count is implemented via [`SDCBarcodeCount`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount).
-:::
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Count Mode
-- Obtaining the camera instance and set frame source
-- Registering the listener to be informed when scan phase is complete
-- Setting the capture view and AR overlays
-- Configuring the camera for scanning view
-- Storing and retrieving the captured barcodes
-- Resetting the Barcode Count Mode
-- List and exit callbacks
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Configure the Barcode Count Mode
-
-The main entry point for the Barcode Count Mode is the `SDCBarcodeCount` object. It is configured through [`SDCBarcodeCountSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count-settings.html#class-scandit.datacapture.barcode.count.BarcodeCountSettings) and allows you to register one or more listeners that are informed whenever a scan phase has finished.
-
-Here we will set up Barcode Count for tracking EAN13 codes, but you should change this to the correct symbologies for your use case. If you are sure that your environment will only have unique barcodes, you can also enable [`SDCBarcodeCountSettings.expectsOnlyUniqueBarcodes`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count-settings.html#property-scandit.datacapture.barcode.count.BarcodeCountSettings.ExpectsOnlyUniqueBarcodes). This option improves scanning performance as long as you are sure that no duplicates will be present.
-
-```swift
-let settings = BarcodeCountSettings()
-settings.set(symbology: .ean13UPCA, enabled: true)
-```
-
-Next, create a `SDCBarcodeCount` instance with the Data Capture Context and the settings initialized in the previous step:
-
-```swift
-let barcodeCount = BarcodeCount(context: context, settings: settings)
-```
-
-## Camera Instance And Set Frame Source
-
-Our recommended camera settings should be used to achieve the best performance and user experience. The following code shows how to get the recommended settings for MatrixScan Count and create the camera from it:
-
-```swift
-let cameraSettings = BarcodeCount.recommendedCameraSettings
-
-let camera = Camera.default
-camera?.apply(cameraSettings)
-```
-
-Because the frame source is configurable the data capture context must be told which frame source to use. This is done with a call to [`SDCDataCaptureContext.setFrameSource:completionHandler:`](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```swift
-context.setFrameSource(camera)
-```
-
-## Registering the Listener
-
-To keep track of the barcodes that have been scanned, implement the [`SDCBarcodeCountListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) protocol and register the listener.
-
-```swift
-// Register self as a listener to monitor the barcode count session.
-barcodeCount.add(self)
-```
-
-[`SDCBarcodeCountListener.barcodeCount:didScanInSession:frameData:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan) is called when the scan phase has finished and results can be retrieved from [`SDCBarcodeCountSession`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession).
-
-## Setting the Capture View and AR Overlays
-
-MatrixScan Count’s built-in AR user interface includes buttons and overlays that guide the user through the capturing process. By adding a [`SDCBarcodeCountView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) the scanning interface will be added automatically to your application.
-
-Add a `SDCBarcodeCountView` to your view hierarchy:
-
-```swift
-let barcodeCountView = BarcodeCountView(frame: view.bounds, context: context, barcodeCount: barcodeCount)
-barcodeCountView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-view.addSubview(barcodeCountView)
-```
-
-## Configuring the Camera for Scanning View
-
-The camera is not automatically turned on when you are in a scanning view. You need to set up the camera so that it switches on when needed and it switches off when not needed anymore.
-
-Similarly `SDCBarcodeCount` should also be enabled and disabled. For example, you should switch off the camera when the `SDCBarcodeCountView` is not visible and switch on the camera when the `SDCBarcodeCountView` is visible. For example:
-
-```swift
-override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- camera?.switch(toDesiredState: .on)
-}
-
-override func viewDidDisappear(_ animated: Bool) {
- super.viewDidDisappear(animated)
- camera?.switch(toDesiredState: .off)
-}
-```
-
-## Store And Retrieve Scanned Barcodes
-
-The values captured as part of the scanning process are part of the [`session`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession), and the session is not accessible outside `SDCBarcodeCountListener.barcodeCount:didScanInSession:frameData:`.
-
-We recommend you store the values to present a list, for example when the user taps the list icon. To do this, make a copy of [`SDCBarcodeCountSession.recognizedBarcodes`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count-session.html#property-scandit.datacapture.barcode.count.BarcodeCountSession.RecognizedBarcodes):
-
-```swift
-extension ViewController: BarcodeCountListener {
- func barcodeCount(_ barcodeCount: BarcodeCount,
- didScanIn session: BarcodeCountSession,
- frameData: FrameData) {
- // Gather all the recognized barcodes
- let allRecognizedBarcodes = session.recognizedBarcodes.map({ $0.value })
- // This method is invoked from a recognition internal thread.
- // Dispatch to the main thread to update the internal barcode list.
- DispatchQueue.main.async {
- // Update the internal list
- self.allRecognizedBarcodes = allRecognizedBarcodes
- }
- }
-}
-```
-
-## Resetting the Barcode Count Mode
-
-When the scanning process is over, you need to reset the mode to make it ready for the next process. This clears the list of barcodes scanned and all the AR overlays.
-
-To reset Barcode Count’s scanning process, call the [`SDCBarcodeCount.reset`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-count.html#method-scandit.datacapture.barcode.count.BarcodeCount.Reset) method:
-
-```swift
-barcodeCount.reset()
-```
-
-## List and Exit Callbacks
-
-The UI includes two icons (buttons): “List” and “Exit”. The SDK provides the callbacks so you can add the desired action when those icons are tapped by the user:
-
-```swift
-extension ViewController: BarcodeCountViewUIDelegate {
- func listButtonTapped(for view: BarcodeCountView) {
- // Show the current progress but the order is not completed
- }
-
- func exitButtonTapped(for view: BarcodeCountView) {
- // The order is completed
- }
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/intro.md
deleted file mode 100644
index 9f77c0a3..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-count/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# About MatrixScan Count
-
-import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/advanced.md
deleted file mode 100644
index 2362f9b0..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-description: "MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## BarcodeFind Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodeFind` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`SDCBarcodeFindListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```swift
-mode.addListener(self)
-
-extension PlaygroundViewController: BarcodeFindListener {
- func barcodeFind(_ barcodeFind: BarcodeFind,
- didPauseSearch foundItems: Set) {
- // The mode was paused
- }
-
- func barcodeFindDidStartSearch(_ barcodeFind: BarcodeFind) {
- // The mode was started
- }
-
- func barcodeFind(_ barcodeFind: BarcodeFind,
- didStopSearch foundItems: Set) {
- // The mode was stopped
- }
-}
-```
-
-## Multiple criteria
-
-You can assign different brushes to each BarcodeFindItem, so they appear visually different to the end user. This can be used to make some items stand out more, or to help the user mentally group certain items together.
-
-```swift
-let availableBrush = Brush(fill: .green.withAlphaComponent(0.2), stroke: .green, strokeWidth: 1)
-let expiredBrush = Brush(fill: .red.withAlphaComponent(0.2), stroke: .red, strokeWidth: 1)
-
-var items = Set()
-items.insert(BarcodeFindItem(
- searchOptions: BarcodeFindItemSearchOptions(barcodeData: "9783598215438", brush: availableBrush),
- content: BarcodeFindItemContent(
- info: "Mini Screwdriver Set",
- additionalInfo: "(6-Piece)",
- image: nil)
-))
-items.insert(BarcodeFindItem(
- searchOptions: BarcodeFindItemSearchOptions(barcodeData: "9783598215414", brush: expiredBrush),
- content: nil
-))
-```
-
-## Set Up a Transformation
-
-Sometimes the barcode data needs to be transformed. For example, if the barcode contains the product identifier and other information, when a product is scanned, the barcode data is first parsed (via a transformation) and then the input list is checked.
-
-First conform to the [`SDCBarcodeFindTransformer`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-find-transformer.html#interface-scandit.datacapture.barcode.find.IBarcodeFindTransformer) protocol. For example, if you want to only consider the first 5 characters:
-
-```swift
-class Transformer: NSObject, BarcodeFindTransformer {
- func transformBarcodeData(_ data: String) -> String? {
- return String(data.prefix(5))
- }
-}
-```
-
-Then the transformer needs to be set so it can be used by Barcode Find:
-
-```swift
-barcodeFind.setBarcodeTransformer(Transformer())
-```
-
-## UI Customization
-
-The [`SDCBarcodeFindView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) by default shows a set of UI elements, any of which can be optionally hidden:
-
-- Play/Pause button
-- Finish button
-- Searched items carousel
-- Guidance hints
-- Progress bar (hidden by default)
-
-Each of these elements can be shown or hidden as needed. For example:
-
-```swift
-barcodeFindView.shouldShowCarousel = false
-barcodeFindView.shouldShowProgressBar = true
-```
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/get-started-with-swift-ui.md
deleted file mode 100644
index 145cd8ac..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,228 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit MatrixScan Find.
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the MatrixScan Find logic following the main [Get Started guide](./get-started.md)
-2. **Create a SwiftUI wrapper**: Use `UIViewControllerRepresentable` to integrate the `UIViewController`
-3. **Use in your SwiftUI app**: Add the SwiftUI view to your app's view hierarchy
-
-The core MatrixScan Find implementation (data capture context, settings, camera setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for MatrixScan Find
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the MatrixScan Find functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `MatrixScanFindViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditBarcodeCapture
-import UIKit
-
-class MatrixScanFindViewController: UIViewController {
- private var context: DataCaptureContext!
- private var barcodeFind: BarcodeFind!
- private var barcodeFindView: BarcodeFindView!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupRecognition()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodeFindView.prepareSearching()
- }
-
- override func viewDidAppear(_ animated: Bool) {
- super.viewDidAppear(animated)
- barcodeFindView.startSearching()
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- barcodeFindView.stopSearching()
- }
-
- func setupRecognition() {
- // Follow the implementation from the Get Started guide:
- // 1. Create data capture context
- // 2. Configure the Barcode Find Mode
- // 3. Setup the Barcode Find View
- // 4. Register the UI delegate to handle finish button
- }
-}
-
-extension MatrixScanFindViewController: BarcodeFindViewUIDelegate {
- func barcodeFindView(_ view: BarcodeFindView,
- didTapFinishButton foundItems: Set) {
- // Handle finish button tap
- }
-}
-```
-
-## Create a SwiftUI View using UIViewControllerRepresentable
-
-Now create a SwiftUI wrapper that integrates the UIViewController into your SwiftUI app:
-
-```swift
-import SwiftUI
-import UIKit
-
-struct MatrixScanFindRepresentable: UIViewControllerRepresentable {
- typealias UIViewControllerType = MatrixScanFindViewController
-
- func makeUIViewController(context: Context) -> MatrixScanFindViewController {
- return MatrixScanFindViewController()
- }
-
- func updateUIViewController(_ uiViewController: MatrixScanFindViewController, context: Context) {
- // Update the view controller if needed
- }
-}
-```
-
-## Use the SwiftUI View in Your App
-
-Finally, use the `MatrixScanFindRepresentable` in your SwiftUI app:
-
-```swift
-import SwiftUI
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- MatrixScanFindRepresentable()
- }
- }
-}
-```
-
-Or within another SwiftUI view:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- MatrixScanFindRepresentable()
- .navigationTitle("MatrixScan Find")
- }
- }
-}
-```
-
-## Alternative: Using UIViewRepresentable
-
-As an alternative to wrapping a `UIViewController`, you can implement the MatrixScan Find functionality directly using `UIViewRepresentable`. This approach creates the find view directly without an intermediate view controller:
-
-```swift
-import ScanditBarcodeCapture
-import SwiftUI
-
-struct MatrixScanFindView: UIViewRepresentable {
-
- let itemsToFind: Set
- let onFinishButtonTapped: (Set) -> Void
-
- init(itemsToFind: Set, onFinishButtonTapped: @escaping (Set) -> Void) {
- self.itemsToFind = itemsToFind
- self.onFinishButtonTapped = onFinishButtonTapped
- }
-
- func makeCoordinator() -> Coordinator {
- return Coordinator()
- }
-
- func makeUIView(context: Context) -> UIView {
- let view = UIView()
-
- // Set the callback on the coordinator
- context.coordinator.onFinishButtonTapped = onFinishButtonTapped
-
- // Set the items to find on the mode
- context.coordinator.barcodeFind.setItemList(itemsToFind)
-
- // Configure Barcode Find view settings
- let viewSettings = BarcodeFindViewSettings()
- // ...
-
- // Create the Barcode Find view
- let barcodeFindView = BarcodeFindView(parentView: view,
- context: context.coordinator.dataCaptureContext,
- barcodeFind: context.coordinator.barcodeFind,
- settings: viewSettings)
- barcodeFindView.uiDelegate = context.coordinator
-
- // Prepare and start searching
- barcodeFindView.prepareSearching()
- barcodeFindView.startSearching()
-
- return view
- }
-
- func updateUIView(_ uiView: UIView, context: Context) {
- // Update callback
- context.coordinator.onFinishButtonTapped = onFinishButtonTapped
-
- // Update items
- context.coordinator.barcodeFind.setItemList(itemsToFind)
- }
-
- class Coordinator: NSObject, BarcodeFindViewUIDelegate {
- let dataCaptureContext: DataCaptureContext
- let barcodeFind: BarcodeFind
- var onFinishButtonTapped: ((Set) -> Void)?
-
- override init() {
- // Create the data capture context
- DataCaptureContext.initialize(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
- dataCaptureContext = DataCaptureContext.shared
-
- // Configure Barcode Find settings
- let settings = BarcodeFindSettings()
- settings.set(symbology: .ean13UPCA, enabled: true)
-
- // Create Barcode Find mode (items will be set later)
- barcodeFind = BarcodeFind(settings: settings)
-
- super.init()
- }
-
- func barcodeFindView(_ view: BarcodeFindView,
- didTapFinishButton foundItems: Set) {
- DispatchQueue.main.async {
- self.onFinishButtonTapped?(foundItems)
- }
- }
- }
-}
-```
-
-You can then use this view directly in your SwiftUI app:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- VStack {
- MatrixScanFindView(
- itemsToFind: itemsToFind,
- onFinishButtonTapped: { foundItems in
- // Handle found items
- }
- )
- .edgesIgnoringSafeArea(.all)
- }
- }
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/get-started.md
deleted file mode 100644
index 4f039b3b..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,143 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements: "
-
-sidebar_position: 2
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-:::note
-MatrixScan Count is implemented via [`SDCBarcodeFind`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind).
-:::
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Find Mode
-- Setup the Barcode Find View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Configure the Barcode Count Mode
-
-The main entry point for the Barcode Find Mode is the [`SDCBarcodeFind`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind) object. You can configure the supported Symbologies through its [`SDCBarcodeFindSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```swift
-let settings = BarcodeFindSettings()
-settings.set(symbology: .ean13UPCA, enabled: true)
-```
-
-Next, create the list of items that will be actively searched for. We will also attach some optional information to the first item that can be used by the [`BarcodeFindView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) to display extra information:
-
-```swift
-var items = Set()
-items.insert(BarcodeFindItem(
- searchOptions: BarcodeFindItemSearchOptions(barcodeData: "9783598215438"),
- content: BarcodeFindItemContent(
- info: "Mini Screwdriver Set",
- additionalInfo: "(6-Piece)",
- image: nil)
-))
-items.insert(BarcodeFindItem(
- searchOptions: BarcodeFindItemSearchOptions(barcodeData: "9783598215414"),
- content: nil // Content information is optional, used for display only
-))
-```
-
-Finally, create a [`SDCBarcodeFind`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind) instance with the Data Capture Context and the settings initialized in the previous step:
-
-```swift
-let barcodeFind = BarcodeFind(context: context, settings: settings)
-mode.setItemsList(items)
-```
-
-## Setup the `BarcodeFindView`
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a `SDCBarcodeFindView`, the scanning interface is added automatically to your application.
-
-The [`BarcodeFindView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) appearance can be customized through [`SDCBarcodeFindViewSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings) to match your application’s look and feel. For example, you can change the color of the dots that are overlaid on top of the items that are found and enable sound and haptic alerts.
-
-```swift
-let viewSettings = BarcodeFindViewSettings()
-viewSettings.inListItemColor = .green
-viewSettings.notInListItemColor = .red
-viewSettings.soundEnabled = true
-viewSettings.hapticEnabled = true
-```
-
-Next, create a `SDCBarcodeFindView` instance with the Data Capture Context and the settings initialized in the previous step. he BarcodeFindView is automatically added to the provided parent view.
-
-```swift
-let barcodeFindView = BarcodeFindView(parentView: view, context: context, barcodeFind: mode, settings: viewSettings)
-```
-
-Last, connect the [`BarcodeFindView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) to the iOS view controller lifecycle.
-
-:::note
-Be sure to call `BarcodeFindView.prepareSearching()` on your `UIViewController`’s [`viewWillAppear`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621510-viewwillappear) method to ensure optimal start up time.
-:::
-
-```swift
-override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodeFindView.prepareSearching()
-}
-
-override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- barcodeFindView.stopSearching()
-}
-```
-
-## Register the Listener
-
-The [`BarcodeFindView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) displays a **Finish** button next to its shutter button.
-
-Here we register a [`SDCBarcodeFindViewUIDelegate`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-find-view.html#interface-scandit.datacapture.barcode.find.ui.IBarcodeFindViewUiListener) to be notified what items have been found once the finish button is pressed, and then navigate back to the previous screen to finish the find session.
-
-```swift
-barcodeFindView.uiDelegate = self
-
-extension ViewController: BarcodeFindViewUIDelegate {
- func barcodeFindView(_ view: BarcodeFindView,
- didTapFinishButton foundItems: Set) {
- navigationController?.popViewController(animated: true)
- }
-}
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `barcodeFindView.startSearching()`.
-
-```swift
-override func viewDidAppear(_ animated: Bool) {
- super.viewDidAppear(animated)
- barcodeFindView.startSearching()
-}
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/intro.md
deleted file mode 100644
index 3aa656bf..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-find/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/advanced.md
deleted file mode 100644
index 512a28ac..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-description: "MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Advanced Configurations
-
-MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.
-
-## BarcodePick Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodePick` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodePickListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-pick-listener.html#interface-scandit.datacapture.barcode.pick.IBarcodePickListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```swift
-extension ViewController: BarcodePickListener {
- func barcodePick(_ barcodePick: BarcodePick, didUpdate session: BarcodePickSession) {
- // This callback will be invoked on a background thread every frame. The session object contains
- // updated the newly tracked items.
- }
-}
-```
-
-## BarcodePickAction Listener
-
-You may want to be notified when a user interacts with the UI of the `BarcodePick` mode, which can then be used to reject specific pick/unpick actions.
-
-```swift
-extension ViewController: BarcodePickActionListener {
- func didPickItem(withData data: String, completionHandler: @escaping (Bool) -> Void) {
- // Perform the needed checks, and invoke completionHandler(true/false) to allow/reject
- // the current pick action
- completionHandler(true)
- }
-
- func didUnpickItem(withData data: String, completionHandler: @escaping (Bool) -> Void) {
- // Perform the needed checks, and invoke completionHandler(true/false) to allow/reject
- // the current unpick action
- completionHandler(true)
- }
-}
-```
-
-## BarcodePickScanning Listener
-
-You can register a [`BarcodePickScanningListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-pick-scanning-listener.html#interface-scandit.datacapture.barcode.pick.IBarcodePickScanningListener) on the mode, which can be used to listen to every time the pick state changes.
-
-```swift
-extension ViewController: BarcodePickScanningListener {
- func barcodePick(_ barcodePick: BarcodePick, didUpdate scanningSession: BarcodePickScanningSession) {
- // This callback will be invoked on a background thread every time the picked state of some item changes.
- // The session object contains the list of picked and scanned items.
- }
-
- func barcodePick(_ barcodePick: BarcodePick, didComplete scanningSession: BarcodePickScanningSession) {
- // This callback is invoked when all the registered items needing picking have been picked.
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/get-started-with-swift-ui.md
deleted file mode 100644
index b5b7c88a..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,260 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit MatrixScan Pick.
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the MatrixScan Pick logic following the main [Get Started guide](./get-started.md)
-2. **Create a SwiftUI wrapper**: Use `UIViewControllerRepresentable` to integrate the `UIViewController`
-3. **Use in your SwiftUI app**: Add the SwiftUI view to your app's view hierarchy
-
-The core MatrixScan Pick implementation (data capture context, settings, camera setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for MatrixScan Pick
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the MatrixScan Pick functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `MatrixScanPickViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditBarcodeCapture
-import UIKit
-
-class MatrixScanPickViewController: UIViewController {
- private var context: DataCaptureContext!
- private var barcodePick: BarcodePick!
- private var barcodePickView: BarcodePickView!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupRecognition()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodePickView.start()
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- barcodePickView.pause()
- if isMovingFromParent {
- barcodePickView.stop()
- }
- }
-
- func setupRecognition() {
- // Follow the implementation from the Get Started guide:
- // 1. Create data capture context
- // 2. Configure the Barcode Pick Mode with product provider
- // 3. Setup the Barcode Pick View
- // 4. Register the UI delegate and view listener
- }
-}
-
-extension MatrixScanPickViewController: BarcodePickAsyncMapperProductProviderDelegate {
- func mapItems(_ items: [String], completionHandler: @escaping ([BarcodePickProductProviderCallbackItem]) -> Void) {
- // Map scanned items to products
- // See the main Get Started guide
- }
-}
-
-extension MatrixScanPickViewController: BarcodePickViewUIDelegate {
- func barcodePickViewDidTapFinishButton(_ view: BarcodePickView) {
- // Handle finish button tap
- }
-}
-
-extension MatrixScanPickViewController: BarcodePickViewListener {
- func barcodePickViewDidStartScanning(_ view: BarcodePickView) {
- // Handle scanning started
- }
-
- func barcodePickViewDidFreezeScanning(_ view: BarcodePickView) {
- // Handle scanning frozen
- }
-
- func barcodePickViewDidPauseScanning(_ view: BarcodePickView) {
- // Handle scanning paused
- }
-
- func barcodePickViewDidStopScanning(_ view: BarcodePickView) {
- // Handle scanning stopped
- }
-}
-```
-
-## Create a SwiftUI View using UIViewControllerRepresentable
-
-Now create a SwiftUI wrapper that integrates the `UIViewController` into your SwiftUI app:
-
-```swift
-import SwiftUI
-import UIKit
-
-struct MatrixScanPickRepresentable: UIViewControllerRepresentable {
- typealias UIViewControllerType = MatrixScanPickViewController
-
- func makeUIViewController(context: Context) -> MatrixScanPickViewController {
- return MatrixScanPickViewController()
- }
-
- func updateUIViewController(_ uiViewController: MatrixScanPickViewController, context: Context) {
- // Update the view controller if needed
- }
-}
-```
-
-## Use the SwiftUI View in Your App
-
-Finally, use the `MatrixScanPickRepresentable` in your SwiftUI app:
-
-```swift
-import SwiftUI
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- MatrixScanPickRepresentable()
- }
- }
-}
-```
-
-Or within another SwiftUI view:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- MatrixScanPickRepresentable()
- .navigationTitle("MatrixScan Pick")
- }
- }
-}
-```
-
-## Alternative: Using UIViewRepresentable
-
-As an alternative to wrapping a `UIViewController`, you can implement the MatrixScan Pick functionality directly using `UIViewRepresentable`. This approach creates the pick view directly without an intermediate view controller:
-
-```swift
-import ScanditBarcodeCapture
-import SwiftUI
-
-struct MatrixScanPickView: UIViewRepresentable {
- private let dataCaptureContext: DataCaptureContext
- private let barcodePick: BarcodePick
- private let productProviderDelegate: ProductProviderDelegate
- private let uiDelegate: UIDelegate
-
- init(products: Set,
- productMapper: @escaping ([String]) async -> [BarcodePickProductProviderCallbackItem],
- onFinishButtonTapped: @escaping () -> Void) {
- // Create the data capture context
- DataCaptureContext.initialize(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
- dataCaptureContext = DataCaptureContext.shared
-
- // Configure Barcode Pick settings
- let settings = BarcodePickSettings()
- // ...
-
- // Create product provider with delegate.
- // IMPORTANT: You must assign the delegate to a strong property
- // to prevent it from being deallocated
- productProviderDelegate = ProductProviderDelegate(productMapper: productMapper)
- let productProvider = BarcodePickAsyncMapperProductProvider(products: products,
- providerDelegate: productProviderDelegate)
-
- // Create Barcode Pick mode with product provider
- barcodePick = BarcodePick(context: dataCaptureContext,
- settings: settings,
- productProvider: productProvider)
-
- // Create the UI delegate
- uiDelegate = UIDelegate(onFinishButtonTapped: onFinishButtonTapped)
- }
-
- func makeUIView(context: Context) -> UIView {
- // Configure Barcode Pick view settings
- let viewSettings = BarcodePickViewSettings()
- // ...
-
- // Create the Barcode Pick view
- let barcodePickView = BarcodePickView(frame: .zero,
- context: dataCaptureContext,
- barcodePick: barcodePick,
- settings: viewSettings)
- barcodePickView.uiDelegate = uiDelegate
-
- // Start the pick view
- barcodePickView.start()
-
- return barcodePickView
- }
-
- func updateUIView(_ uiView: UIView, context: Context) {
- // Update the view if needed
- }
-}
-
-private class ProductProviderDelegate: NSObject, BarcodePickAsyncMapperProductProviderDelegate {
- private let productMapper: ([String]) async -> [BarcodePickProductProviderCallbackItem]
-
- init(productMapper: @escaping ([String]) async -> [BarcodePickProductProviderCallbackItem]) {
- self.productMapper = productMapper
- super.init()
- }
-
- func mapItems(_ items: [String]) async -> [BarcodePickProductProviderCallbackItem] {
- return await productMapper(items)
- }
-}
-
-private class UIDelegate: NSObject, BarcodePickViewUIDelegate {
- private let onFinishButtonTapped: () -> Void
-
- init(onFinishButtonTapped: @escaping () -> Void) {
- self.onFinishButtonTapped = onFinishButtonTapped
- }
-
- func barcodePickViewDidTapFinishButton(_ view: BarcodePickView) {
- DispatchQueue.main.async {
- self.onFinishButtonTapped()
- }
- }
-}
-```
-
-You can then use this view directly in your SwiftUI app:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- VStack {
- MatrixScanPickView(
- products: productsToPick,
- productMapper: { items in
- // Map scanned items to products
- // ...
- },
- onFinishButtonTapped: {
- // Handle finish button tap
- },
- )
- .navigationTitle("MatrixScan Pick")
- }
- }
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/get-started.md
deleted file mode 100644
index 8790c9ad..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,196 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements: "
-
-sidebar_position: 2
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements:
-
-- Barcode Pick: The data capture mode that is used for scan and pick functionality.
-- A Barcode Pick View: The pre-built UI elements used to highlight items to be picked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Pick Mode
-- Setup the Barcode Pick View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Configure the Barcode Pick Mode
-
-The main entry point for the Barcode Pick Mode is the `BarcodePick` object. You can configure the supported Symbologies through its [`BarcodePickSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-pick-settings.html), and set up the list of items that you want MatrixScan Pick to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```swift
-let settings = BarcodePickSettings()
-settings.set(symbology: .ean13UPCA, enabled: true)
-```
-
-Then you have to create the product provider for the Barcode Pick mode. This provider is responsible for providing the items that should be highlighted in the AR view. Note that in this example we are using a hardcoded list of items, but in a real-world scenario, you would fetch this list from your backend.
-
-```swift
-let productDatabase: [ProductDatabaseEntry] = [
- .init(
- identifier: "product_1",
- quantity: 2,
- items: [
- "9783598215438",
- "9783598215414",
- "9783598215441",
- "9783598215412"
- ]),
- .init(
- identifier: "product_2",
- quantity: 3,
- items: [
- "9783598215471",
- "9783598215481",
- "9783598215458",
- "9783598215498",
- "9783598215421"
- ])
-]
-
-var products: Set = []
-productDatabase.forEach { entry in
- products.insert(.init(identifier: entry.identifier,
- quantityToPick: entry.quantity))
-}
-
-let productProvider = BarcodePickAsyncMapperProductProvider(products: products,
- providerDelegate: self)
-```
-
-And the product provider delegate:
-
-```swift
-extension ViewController: BarcodePickAsyncMapperProductProviderDelegate {
- func mapItems(_ items: [String], completionHandler: @escaping ([BarcodePickProductProviderCallbackItem]) -> Void) {
- var result: [BarcodePickProductProviderCallbackItem] = []
- // Use the scanned items list to retrieve the identifier of the product they belong to.
- // This should be an async query in real world scenarios if there are a lot of products/items to loop.
- items.forEach { item in
- if let product = productDatabase.first(where: { entry in
- entry.items.contains(item)
- }) {
- result.append(.init(itemData: item,
- productIdentifier: product.identifier))
- }
- }
-
- completionHandler(result)
- }
-}
-```
-
-Then create the mode with the previously created settings:
-
-```swift
-let mode = BarcodePick(context: context,
- settings: settings,
- productProvider: productProvider)
-```
-
-## Setup the `BarcodePickView`
-
-MatrixScan Pick’s built-in AR user interface includes buttons and overlays that guide the user through the scan and pick process. By adding a [`BarcodePickView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-pick-view.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickView), the scanning interface is added automatically to your application.
-
-The `BarcodePickView` appearance can be customized through [`BarcodePickViewSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-pick-view-settings.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickViewSettings) to match your application’s look and feel. The following settings can be customized:
-
-* Colors of dots in augmented reality overlay
-* Enable sound and haptic alerts
-* Guidelines text
-* Showing hints
-* Finish button
-* Pause button
-* Zoom button
-* Loading Dialog
-
-```swift
-let viewSettings = BarcodePickViewSettings()
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-Next, create a `BarcodePickView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodePickView` is automatically added to the provided parent view.
-
-```swift
-let BarcodePickView = BarcodePickView(parentView: view, context: context, BarcodePick: mode, settings: viewSettings)
-```
-
-Connect the `BarcodePickView` to the iOS view controller lifecycle. In particular, make sure to call `BarcodePickView.prepareSearching()` on your UIViewController’s [`viewWillAppear`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621510-viewwillappear) method to make sure that start up time is optimal.
-
-```swift
-override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodePickView.start()
-}
-
-override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- barcodePickView.pause()
- if isMovingFromParent {
- barcodePickView.stop()
- }
-}
-```
-
-And the BarcodePickViewUIDelegate:
-
-```swift
-extension ViewController: BarcodePickViewUIDelegate {
- func barcodePickViewDidTapFinishButton(_ view: BarcodePickView) {
- navigationController?.popViewController(animated: true)
- }
-}
-```
-
-## Register the Listener
-
-The `BarcodePickView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodePickViewListener](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-pick-view-listener.html#interface-scandit.datacapture.barcode.pick.ui.BarcodePickViewListener) to be notified what items have been found once the finish button is pressed.
-
-```swift
-extension ViewController: BarcodePickViewListener {
- func barcodePickViewDidStartScanning(_ view: BarcodePickView) {}
-
- func barcodePickViewDidFreezeScanning(_ view: BarcodePickView) {}
-
- func barcodePickViewDidPauseScanning(_ view: BarcodePickView) {}
-
- func barcodePickViewDidStopScanning(_ view: BarcodePickView) {}
-}
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `barcodePickView.start()`.
-
-```swift
-override func viewDidAppear(_ animated: Bool) {
- super.viewDidAppear(animated)
- BarcodePickView.start()
-}
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/intro.md
deleted file mode 100644
index cea6bb6e..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-description: "MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# About MatrixScan Pick
-
-MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code.
-
-MatrixScan Pick is implemented through functionality provided by [`BarcodePick`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-pick.html).
-
-## UI Overview
-
-* MatrixScan Pick is inspired by the familiar paradigm of a camera, including a shutter button that the user operates in order start and pause the scanning view. The Finish button is used at any time to exit the workflow.
-* It highlights items with obvious and colorful visual dots on screen.
-* When paused, MatrixScan Pick freezes the display at the last view, even if the device is moved. The Play button transitions back to the live view.
-* Textual guidance is displayed from the beginning of the session and as the workflow progresses, informing of the user of changes in item status (i.e. Detected, Ignored, To-Pick, or Picked).
-* Status icons can be defined to provide further information to users for a given barcode. In the live view, the icons are displayed but not tappable. In the frozen view, the status icons can be tapped and expanded to provide additional textual information.
-* The Quick Start Guide takes you through the process to install the full UI. However, you can then customize it by choosing to remove any elements on the screen except for the AR overlays. This allows you to create custom UIs suitable for your own workflows.
-
-
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../barcode-symbologies.mdx) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan/advanced.md
deleted file mode 100644
index ff5b8168..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan/advanced.md
+++ /dev/null
@@ -1,143 +0,0 @@
----
-description: "In the previous section we covered how to vizualize the scan process using the . In this section we will cover how to add custom AR overlays to your MatrixScan application. "
-
-sidebar_position: 3
-pagination_next: null
-framework: ios
-keywords:
- - ios
-
----
-
-# Adding AR Overlays
-
-In the previous section we covered how to vizualize the scan process using the [`BarcodeBatchBasicOverlay`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay). In this section we will cover how to add custom AR overlays to your MatrixScan application.
-
-There are two ways to add custom AR overlays to your application:
-
-* Using the [`BarcodeBatchAdvancedOverlay`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, our ready-to-use implementation for view-based AR overlays.
-* Provide your own fully custom implementation by using the [`SDCBarcodeBatchListener.barcodeBatch:didUpdate:frameData:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function to retrieve the tracking information and implement your own AR overlay.
-
-The first option is the easiest and recommended approach for most applications. It covers adding, removing, and animating the overlay’s views whenever needed and is also flexible enough to cover the majority of use cases.
-
-## Using BarcodeBatchAdvancedOverlay
-
-The advanced overlay combined with its listener offers an easy way of adding augmentations to your [`SDCDataCaptureView`](https://docs.scandit.com/data-capture-sdk/ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView). In this example we'll add a view above each barcode showing its content.
-
-First, create a new instance of `SDCBarcodeBatchAdvancedOverlay` and add it to your `SDCDataCaptureView`:
-
-```swift
-let overlay = BarcodeBatchAdvancedOverlay(barcodeBatch: barcodeBatch, for: captureView)
-```
-
-There are two ways to proceed from here:
-
-* Add a [`SDCBarcodeBatchAdvancedOverlayDelegate`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-* Use the `setters` in the [`overlay`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) to specify the view, anchor, and offset for each barcode.
-
-:::note
-The second way will take priority over the first one, meaning that if a view for a barcode has been set using [`SDCBarcodeBatchAdvancedOverlay.setView:forTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [`SDCBarcodeBatchAdvancedOverlayDelegate.barcodeBatchAdvancedOverlay:viewForTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) won’t be invoked for that specific barcode.
-:::
-
-### Using the Delegate
-
-For this option, keep in mind that:
-
-* You need to conform to `SDCBarcodeBatchAdvancedOverlayDelegate`. This protocol’s methods are invoked every time a barcode is newly tracked.
-* [`SDCBarcodeBatchAdvancedOverlayDelegate.barcodeBatchAdvancedOverlay:viewForTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning `nil` will show no view.
-* [`SDCBarcodeBatchAdvancedOverlayDelegate.barcodeBatchAdvancedOverlay:anchorForTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through [`SDCAnchor`](https://docs.scandit.com/data-capture-sdk/ios/core/api/anchor.html#enum-scandit.datacapture.core.Anchor). Be aware that it anchors the view’s center to the anchor point. To achieve anchoring the top of the view or the bottom you will have to set an offset.
-* [`SDCBarcodeBatchAdvancedOverlayDelegate.barcodeBatchAdvancedOverlay:offsetForTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [`SDCPointWithUnit`](https://docs.scandit.com/data-capture-sdk/ios/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```swift
-func barcodeBatchAdvancedOverlay(_ overlay: BarcodeBatchAdvancedOverlay,
- viewFor trackedBarcode: TrackedBarcode) -> UIView? {
- // Create and return the view you want to show for this tracked barcode. You can also return nil, to have no view for this barcode.
- let label = UILabel()
- label.text = trackedBarcode.barcode.data
- label.backgroundColor = .white
- label.sizeToFit()
- return label
-}
-
-func barcodeBatchAdvancedOverlay(_ overlay: BarcodeBatchAdvancedOverlay,
- anchorFor trackedBarcode: TrackedBarcode) -> Anchor {
- // As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode quadrilateral.
- // Use the function below to adjust the position of the view by providing an offset.
- return .topCenter
-}
-
-func barcodeBatchAdvancedOverlay(_ overlay: BarcodeBatchAdvancedOverlay,
- offsetFor trackedBarcode: TrackedBarcode) -> PointWithUnit {
-
- // This is the offset that will be applied to the view.
- // You can use .fraction to give a measure relative to the view itself, the sdk will take care of transforming this into pixel size.
- // We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by half of the view's height.
- return PointWithUnit(
- x: FloatWithUnit(value: 0, unit: .fraction),
- y: FloatWithUnit(value: -1, unit: .fraction)
- )
-}
-```
-
-### Using the Setters
-
-The function [`SDCBarcodeBatchListener.barcodeBatch:didUpdate:frameData:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) gives you access to a [session](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession). This session object contains all added, updated, and removed tracked barcodes.
-
-From there you can create the view you want to display, and then call:
-* [`SDCBarcodeBatchAdvancedOverlay.setView:forTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode)
-* [`SDCBarcodeBatchAdvancedOverlay.setAnchor:forTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode)
-* [`SDCBarcodeBatchAdvancedOverlay.setOffset:forTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```swift
-func barcodeBatch(_ barcodeBatch: BarcodeBatch,
- didUpdate session: BarcodeBatchSession,
- frameData: FrameData) {
- DispatchQueue.main.async {
- for trackedBarcode in session.addedTrackedBarcodes {
- let label = UILabel()
- label.text = trackedBarcode.barcode.data
- label.backgroundColor = .white
- label.sizeToFit()
- self.overlay.setView(label, for: trackedBarcode)
- self.overlay.setAnchor(.topCenter, for: trackedBarcode)
- let point = PointWithUnit(x: FloatWithUnit(value: 0, unit: .fraction),
- y: FloatWithUnit(value: -1, unit: .fraction))
- self.overlay.setOffset(point, for: trackedBarcode)
- }
- }
-}
-```
-
-## Using Custom Implementations
-
-If you do not want to use the overlay, it is also possible to add augmented reality features based on the tracking identifier and the [quadrilateral](https://docs.scandit.com/data-capture-sdk/ios/core/api/common.html#struct-scandit.datacapture.core.Quadrilateral) coordinates of every tracked barcode. When doing so, keep the following in mind:
-
-* Set a [`SDCBarcodeBatchListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) on the barcode tracking
-* In the [`SDCBarcodeBatchListener.barcodeBatch:didUpdate:frameData:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function fetch the [added](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.AddedTrackedBarcodes) and [removed](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.RemovedTrackedBarcodes) tracked barcodes
-* Create and show the views for the added barcodes
-* Remove the views for the lost barcode
-* Via [`CADisplayLink`](https://developer.apple.com/documentation/quartzcore/cadisplaylink), add a method called 60fps when [`SDCBarcodeBatch`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) is enabled. In this method, for each [`SDCTrackedBarcode`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/tracked-barcode.html#class-scandit.datacapture.barcode.batch.TrackedBarcode) on-screen, update the position based on [`SDCTrackedBarcode.location`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location). There is no need to animate the change of location, the change of position will happen frequently enough that the view will look animated.
-* The frame coordinates from `SDCTrackedBarcode.location` need to be mapped to view coordinates using [`SDCDataCaptureView.viewQuadrilateralForFrameQuadrilateral:`](https://docs.scandit.com/data-capture-sdk/ios/core/api/ui/data-capture-view.html#method-scandit.datacapture.core.ui.DataCaptureView.MapFrameQuadrilateralToView).
-
-```swift
-func barcodeBatch(_ barcodeBatch: BarcodeBatch,
- didUpdate session: BarcodeBatchSession,
- frameData: FrameData) {
- DispatchQueue.main.async {
- for lostTrackIdentifier in session.removedTrackedBarcodes {
- // You now know the identifier of the tracked barcode that has been lost. Usually here you would remove the views associated.
- }
-
- for trackedBarcode in session.addedTrackedBarcodes {
- // Fixed identifier for the tracked barcode.
- let trackingIdentifier = trackedBarcode.identifier
-
- // Current location of the tracked barcode.
- let location = trackedBarcode.location
- let quadrilateral = self.captureView.viewQuadrilateral(forFrameQuadrilateral: location)
-
- // You now know this new tracking's identifier and location. Usually here you would create and show the views.
- }
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan/get-started-with-swift-ui.md
deleted file mode 100644
index 632cce44..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,221 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit MatrixScan.
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add MatrixScan to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the MatrixScan logic following the main [Get Started guide](./get-started.md)
-2. **Create a SwiftUI wrapper**: Use `UIViewControllerRepresentable` to integrate the `UIViewController`
-3. **Use in your SwiftUI app**: Add the SwiftUI view to your app's view hierarchy
-
-The core MatrixScan implementation (data capture context, settings, camera setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for MatrixScan
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the MatrixScan functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `MatrixScanViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditBarcodeCapture
-import UIKit
-
-class MatrixScanViewController: UIViewController {
- private var context: DataCaptureContext!
- private var camera: Camera?
- private var barcodeBatch: BarcodeBatch!
- private var captureView: DataCaptureView!
- private var overlay: BarcodeBatchBasicOverlay!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupRecognition()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- barcodeBatch.isEnabled = true
- camera?.switch(toDesiredState: .on)
- }
-
- override func viewDidDisappear(_ animated: Bool) {
- super.viewDidDisappear(animated)
- barcodeBatch.isEnabled = false
- camera?.switch(toDesiredState: .off)
- }
-
- func setupRecognition() {
- // Follow the implementation from the Get Started guide:
- // 1. Create data capture context
- // 2. Configure the Barcode Batch Mode
- // 3. Use the built-in camera
- // 4. Visualize the scan process
- // 5. Provide feedback
- }
-}
-
-extension MatrixScanViewController: BarcodeBatchBasicOverlayDelegate {
- func barcodeBatchBasicOverlay(_ overlay: BarcodeBatchBasicOverlay,
- didTapTrackedBarcode trackedBarcode: TrackedBarcode) {
- // Handle barcode tap
- // See the main Get Started guide
- }
-}
-```
-
-## Create a SwiftUI View using UIViewControllerRepresentable
-
-Now create a SwiftUI wrapper that integrates the UIViewController into your SwiftUI app:
-
-```swift
-import SwiftUI
-import UIKit
-
-struct MatrixScanRepresentable: UIViewControllerRepresentable {
- typealias UIViewControllerType = MatrixScanViewController
-
- func makeUIViewController(context: Context) -> MatrixScanViewController {
- return MatrixScanViewController()
- }
-
- func updateUIViewController(_ uiViewController: MatrixScanViewController, context: Context) {
- // Update the view controller if needed
- }
-}
-```
-
-## Use the SwiftUI View in Your App
-
-Finally, use the `MatrixScanRepresentable` in your SwiftUI app:
-
-```swift
-import SwiftUI
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- MatrixScanRepresentable()
- }
- }
-}
-```
-
-Or within another SwiftUI view:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- MatrixScanRepresentable()
- .navigationTitle("MatrixScan")
- }
- }
-}
-```
-
-## Alternative: Using UIViewRepresentable
-
-As an alternative to wrapping a `UIViewController`, you can implement the MatrixScan functionality directly using `UIViewRepresentable`. This approach creates the capture view directly without an intermediate view controller:
-
-```swift
-import ScanditBarcodeCapture
-import SwiftUI
-
-struct MatrixScanView: UIViewRepresentable {
- private let dataCaptureContext: DataCaptureContext
- private let barcodeBatch: BarcodeBatch
- private let listener: Listener
-
- init(onBarcodeBatchUpdated: @escaping ([TrackedBarcode]) -> Void) {
- // Create the data capture context
- DataCaptureContext.initialize(licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --")
- dataCaptureContext = DataCaptureContext.shared
-
- // Configure barcode batch settings
- let settings = BarcodeBatchSettings()
- // ...
-
- // Create barcode batch mode
- barcodeBatch = BarcodeBatch(context: dataCaptureContext, settings: settings)
-
- // Create the listener instance.
- // IMPORTANT: You must assign the listener to a strong property
- // to prevent it from being deallocated
- listener = Listener(onBarcodeBatchUpdated: onBarcodeBatchUpdated)
- barcodeBatch.addListener(listener)
- }
-
- func makeUIView(context: Context) -> UIView {
- if let camera = Camera.default {
- // Apply recommended camera settings
- let cameraSettings = BarcodeBatch.recommendedCameraSettings
- camera.apply(cameraSettings)
-
- // Turn on the camera
- dataCaptureContext.setFrameSource(camera)
- camera.switch(toDesiredState: .on)
- } else {
- print("Camera not available")
- }
-
- // Enable Barcode Batch
- barcodeBatch.isEnabled = true
-
- // Create the capture view
- let captureView = DataCaptureView(context: dataCaptureContext, frame: .zero)
- captureView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-
- // Create the overlay
- let overlay = BarcodeBatchBasicOverlay(barcodeBatch: barcodeBatch, view: captureView, style: .frame)
- captureView.addOverlay(overlay)
-
- return captureView
- }
-
- func updateUIView(_ uiView: UIView, context: Context) {
- // Update the view if needed
- }
-}
-
-private class Listener: NSObject, BarcodeBatchListener {
- private let onBarcodeBatchUpdated: ([TrackedBarcode]) -> Void
-
- init(onBarcodeBatchUpdated: @escaping ([TrackedBarcode]) -> Void) {
- self.onBarcodeBatchUpdated = onBarcodeBatchUpdated
- }
-
- func barcodeBatch(_ barcodeBatch: BarcodeBatch,
- didUpdate session: BarcodeBatchSession,
- frameData: FrameData) {
- let trackedBarcodes = session.trackedBarcodes.values.map { $0 }
- DispatchQueue.main.async {
- self.onBarcodeBatchUpdated(trackedBarcodes)
- }
- }
-}
-```
-
-You can then use this view directly in your SwiftUI app:
-
-```swift
-struct ContentView: View {
- var body: some View {
- NavigationView {
- VStack {
- MatrixScanView { trackedBarcodes in
- // Handle the tracked barcodes
- }
- .navigationTitle("MatrixScan")
- }
- }
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan/get-started.md
deleted file mode 100644
index 5cbe41b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan/get-started.md
+++ /dev/null
@@ -1,169 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan to your application. "
-
-sidebar_position: 2
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the MatrixScan mode
-- Using the built-in camera
-- Visualizing the scan process
-- Providing feedback
-- Disabling barcode tracking
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [`SDcBarcodeBatch`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [`SDCBarcodeBatchSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows to register one or more listeners that will get informed whenever a new frame has been processed.
-
-:::note
-Typically you will not need to conform to a [`SDCBarcodeBatchListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener), instead you will add a [`SDCBarcodeBatchBasicOverlay`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and conform to a [`SDCBarcodeBatchBasicOverlayDelegate`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-:::
-
-Here we will setup Barcode Batch for tracking QR codes:
-
-```swift
-let settings = BarcodeBatchSettings()
-settings.set(symbology: .qr, enabled: true)
-```
-
-Next, create a [`SDcBarcodeBatch`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance with the data capture context and the settings initialized in the previous steps:
-
-```swift
-barcodeBatch = BarcodeBatch(context: context, settings: settings)
-```
-
-## Use the Built-in Camera
-
-:::note
-In iOS the user must explicitly grant permission to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission by including the [`NSCameraUsageDescription`](https://developer.apple.com/documentation/bundleresources/information_property_list/nscamerausagedescription) key in your app’s `Info.plist` file.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode.
-
-```swift
-let cameraSettings = BarcodeBatch.recommendedCameraSettings
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-let camera = Camera.default
-camera?.apply(cameraSettings)
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [`SDCDataCaptureContext.setFrameSource:completionHandler:`](https://docs.scandit.com/data-capture-sdk/ios/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```swift
-context.setFrameSource(camera)
-```
-
-The camera is off by default and must be turned on. This is done by calling [`SDCFrameSource.switchToDesiredState:completionHandler:`](https://docs.scandit.com/data-capture-sdk/ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [`SDCFrameSourceStateOn`](https://docs.scandit.com/data-capture-sdk/ios/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```swift
-camera?.switch(toDesiredState: .on)
-```
-
-## Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [`SDCDataCaptureView`](https://docs.scandit.com/data-capture-sdk/ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```swift
-let captureView = DataCaptureView(for: context, frame: view.bounds)
-captureView.dataCaptureContext = context
-captureView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-view.addSubview(captureView)
-```
-
-To visualize the results of Barcode Batch, first you need to add the following overlay:
-
-```swift
-let overlay = BarcodeBatchBasicOverlay(barcodeBatch: barcodeBatch, view: captureView)
-```
-
-Once the overlay has been added, you should conform to the [`SDCBarcodeBatchBasicOverlayDelegate`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) protocol. The method [`SDCBarcodeBatchBasicOverlayDelegate.barcodeBatchBasicOverlay:brushForTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a brush used to highlight that specific barcode in the overlay.
-
-```swift
-extension ViewController: BarcodeBatchBasicOverlayDelegate {
- func barcodeBatchBasicOverlay(_ overlay: BarcodeBatchBasicOverlay,
- brushFor trackedBarcode: TrackedBarcode) -> Brush? {
- // Return a custom Brush based on the tracked barcode.
- }
-}
-```
-
-If you would like to make the highlights tappable, you need to implement the [`SDCBarcodeBatchBasicOverlayDelegate.barcodeBatchBasicOverlay:didTapTrackedBarcode:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped) method.
-
-```swift
-extension ViewController: BarcodeBatchBasicOverlayDelegate {
- func barcodeBatchBasicOverlay(_ overlay: BarcodeBatchBasicOverlay,
- didTap trackedBarcode: TrackedBarcode) {
- // A tracked barcode was tapped.
- }
-}
-```
-
-## Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a [`SDCBarcodeBatchListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) to provide a similar experience.
-
-Here, we use the default [`SDCFeedback`](https://docs.scandit.com/data-capture-sdk/ios/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it with your own sound or vibration.
-
-```swift
-override func viewDidLoad() {
- super.viewDidLoad()
- feedback = Feedback.default
-}
-```
-
-Next, use this feedback in a `SDCBarcodeBatchListener`:
-
-```swift
-extension ScanningViewController: BarcodeBatchListener {
- func barcodeBatch(_ barcodeBatch: BarcodeBatch,
- didUpdate session: BarcodeBatchSession,
- frameData: FrameData) {
- if !session.addedTrackedBarcodes.isEmpty {
- feedback?.emit()
- }
- }
-}
-```
-
-[`SDCBarcodeBatchListener.barcodeBatch:didUpdate:frameData:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The session parameter contains information about the currently tracked barcodes. We check if there are any newly recognized barcodes and emit the feedback if so.
-
-As the last step, register the delegate responsible for emitting the feedback with the [`SDcBarcodeBatch`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance.
-
-```swift
-barcodeBatch.addListener(self)
-```
-
-## Disable Barcode Batch
-
-To disable barcode tracking set [`SDCBarcodeBatch.enabled`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/barcode-batch.html#property-scandit.datacapture.barcode.batch.BarcodeBatch.IsEnabled) to `NO`.
-
-The effect is immediate, no more frames will be processed after the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or put it in standby calling [`SwitchToDesiredState`](https://docs.scandit.com/data-capture-sdk/ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of `StandBy`.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/ios/matrixscan/intro.md
deleted file mode 100644
index 3c4e4274..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/matrixscan/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx'
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/ios/migrate-5-to-6.mdx
deleted file mode 100644
index 3400c3b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/ios/migrate-6-to-7.mdx
deleted file mode 100644
index f48d0c49..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/ios/migrate-7-to-8.mdx
deleted file mode 100644
index 87e83e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/parser/get-started.md
deleted file mode 100644
index beaad07d..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/parser/get-started.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-description: "The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: , and , , . "
-
-sidebar_position: 2
-pagination_prev: null
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/ios/parser/hibc.html), [GS1 Application Identifier system](https://docs.scandit.com/data-capture-sdk/ios/parser/gs1ai.html) and [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/ios/parser/swissqr.html), [VIN Vehicle Identification Number](https://docs.scandit.com/data-capture-sdk/ios/parser/vin.html), [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/ios/parser/iata-bcbp.html).
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Format-Specific Documentation
-
-- [Supported Data Formats](https://docs.scandit.com/data-capture-sdk/ios/parser/formats.html)
-- [HIBC](https://docs.scandit.com/data-capture-sdk/ios/parser/hibc.html)
-- [GS1 AI](https://docs.scandit.com/data-capture-sdk/ios/parser/gs1ai.html)
-- [GS1 Digital Link](https://docs.scandit.com/data-capture-sdk/ios/parser/gs1-digital-link.html)
-- [Swiss QR](https://docs.scandit.com/data-capture-sdk/ios/parser/swissqr.html)
-- [VIN](https://docs.scandit.com/data-capture-sdk/ios/parser/vin.html)
-- [IATA BCBP](https://docs.scandit.com/data-capture-sdk/ios/parser/iata-bcbp.html)
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-First of all, include the ScanditParser library and its dependencies to your project, if any.
-
-### Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/release-notes.md b/versioned_docs/version-8.1.1/sdks/ios/release-notes.md
deleted file mode 100644
index 20709f3c..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/release-notes.md
+++ /dev/null
@@ -1,222 +0,0 @@
----
-description: "Release notes and updates for the Scandit iOS SDK."
-toc_max_heading_level: 3
-displayed_sidebar: iosSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Core
-
-* Fixed an issue where the camera preview appeared rotated 90 degrees in landscape orientation
-* Fixed an issue where the interface and video feed could have different visual orientations
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-* Added, in `BarcodeAr`, a `BarcodeArFilter` interface to selectively control which barcodes are displayed in the AR overlay based on custom filtering logic. You can set a filter via `BarcodeAr.SetBarcodeFilter`.
-* Added `ScanditIconType.Slash` which can be used in `BarcodeArStatusIconAnnotationAnchor`.
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added rejectionTimeoutSeconds to IdCaptureSettings allowing customers to use timeout other than default (6s). Minimum timeout is 1s.
-* Added IdCaptureLite to CocoaPods. It is identical to IdCapture but without the dependency on ScanditIDC. This reduces the app size for customers that do not require VIZ scanning capabilities
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-* Our SDK can now scan the following documents both in single-side and double-side mode:
- - All Mexican DLs
- - Mexican Voter Cards
-
-#### Smart Label Capture
-
-* It's now possible to use Swift's result builder pattern to build a `LabelDefinition`
-
-#### Core
-
-* Added support for QuadHD resolution to provide improved performance and extended range for MatrixScan modes on slower devices
-* Added Electronic Product Code (EPC) parser
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-#### Smart Label Capture
-
-* Incremental improvements in accuracy across all use-cases for the OCR model powering Smart Label Capture.
-* Some Label Capture API have been refined for Swift. For example:
- - `CustomBarcode(name: "barcode", symbologies: [NSNumber(value: Symbology.ean13UPCA.rawValue)])`
- - now becomes `CustomBarcode(name: "barcode", symbologies: [.ean13UPCA])`
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-#### Smart Label Capture
-
-* Validation Flow: Manually input values for barcodes will go through a stricter validation. Some values may no longer be accepted if they do not match the symbology specs for the symbology’s definition
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Added the `cameraStateOnStop` property to BarcodeFindView to optimize camera transitions when switching between modes
-
-#### Id
-
-* Fixed an issue where front expiry date anonymization rectangle is erroneously drawn on front and back
-* Fixed a bug that prevented VizResult anonymization of the following fields: additionalAddressInformation, bloodType, employer, fathersName, issuingAuthority, maritalStatus, mothersName, placeOfBirth, profession, race, residentialStatus
-* Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses
-
-#### Core
-
-* Fixed a small memory leak that affected fresh install runs only
-* Fixed an issue where barcode scanning would permanently stop after the app returned from background, particularly when camera permission dialogs were shown during initialization
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### New Features
-
-#### Barcode
-
-* Added, in `BarcodeAr`, a `BarcodeArFilter` interface to selectively control which barcodes are displayed in the AR overlay based on custom filtering logic. You can set a filter via `BarcodeAr.SetBarcodeFilter`.
-* Fixed an issue where the optional and location fields of BarcodeDefinition and TextDefinition could not be set with builder methods
-
-#### Id
-
-* Added IdCaptureLite to CocoaPods. It is identical to IdCapture but without the dependency on ScanditIDC. This reduces the app size for customers that do not require VIZ scanning capabilities
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* The minimum iOS version is now 14.
-
-#### Barcode
-
-* SparkScan is not limited to only barcodes anymore, but can also scan items - in other words any combinations of barcodes and text present on a target to be scanned. The feature is available in beta at the moment, please contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out.
-
-#### Smart Label Capture
-
-* We’re introducing an enhancement that makes Smart Label Capture more robust and scalable by complementing its on-device model with a larger, more capable model. When the on-device model can’t capture certain labels, the SDK automatically escalates to this enhancement to handle complex or unforeseen cases with high accuracy and reliability. This capability is currently available in `beta`. If you’re interested in trying it, please contact Scandit Support. For configuration details, see `labelDefinition.adaptiveRecognitionEngine`.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-
-#### Label
-
-* The `LabelFieldDefinition` API has been updated with the following changes:
- * Renamed property: `pattern` → `valueRegex`, `patterns` → `valueRegexes`
- * Renamed property: `dataTypePattern` → `anchorRegex`, `dataTypePatterns` → `anchorRegexes`
-* Our Receipt Scanning Capture feature, available in beta (contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out), has been updated to improve performance and the API:
- * `ReceiptScanningResult`:
- * Removed properties: `storeNumber`, `storeStreet`, `storeZip`, `storeState`, `storePhone`, `paymentMethod`, and `paymentCurrency`.
- * Added property: `storeAddress` - Full address of the store (Street Number, Street, City, State, NPA).
- * Renamed property: `paymentSubtotal` → `paymentPreTaxTotal` - Total balance before taxes are applied.
- * `ReceiptScanningLineItem`:
- * Removed property: `category`.
- * Renamed properties: `price` → `unitPrice` (Price for a single unit of the item), `total` → `totalPrice` (Total price for a specific product, quantity × unitPrice).
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`.
-
-### Bug Fixes
-
-#### Core
-
-* Fixed an issue where macro mode would not be maintained when resuming the app from background, causing the camera to switch unexpectedly.
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-#### Barcode
-
-* All previously deprecated APIs have been removed in this release.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/ios/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/ios/scanning-composite-codes.mdx
deleted file mode 100644
index d517a134..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/single-scanning.md b/versioned_docs/version-8.1.1/sdks/ios/single-scanning.md
deleted file mode 100644
index d4428221..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/single-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import SingleScanning from '../../partials/_single-scanning.mdx'; "
-
-toc_max_heading_level: 4
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# Single Scanning
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/ios/sparkscan/advanced.md
deleted file mode 100644
index 8e4a5476..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/sparkscan/advanced.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-description: "SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: ios
-keywords:
- - ios
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Hardware Button Control
-
-Allowing the end user to control the scanner with hardware buttons can be useful if your users typically wear gloves. It can also improve ergonomics in some workflows.
-
-SparkScan offers a built-in API to let you do this via [`SDCSparkScanViewSettings.hardwareTriggerEnabled`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled).
-
-### Trigger Error State
-
-You may want to introduce logic in your app to show an error message when scanning specific barcodes (e.g. barcodes already added to the list, barcodes from the wrong lot etc.). SparkScan offers a built-in error state you can easily set to trigger an error feedback prompt to the user.
-
-You can customize:
-
-* The text message.
-- The timeout of the error message: the scanner will be paused for the specified amount of time, but the user can quickly restart the scanning process by tapping the trigger button.
-
- :::tip
- A high timeout (>10s) typically requires the users to interact with the UI to start scanning again. This is a good choice when you want to interrupt the scanning workflow (e.g. because a wrong barcode is scanned and some actions need to be performed). A small timeout (\<2s) could allow the user to scan again without having to interact with the app, just momentarily pausing the workflow to acknowledge that a “special” barcode has been scanned.
- :::
-
-* The color of the flashing screen upon scan. You can enable or disable the visual feedback via [`SDCSparkScanViewSettings.visualFeedbackEnabled`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.VisualFeedbackEnabled) and you can control the color via [`SDCSparkScanViewFeedback`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view-feedback.html#class-scandit.datacapture.barcode.spark.ui.SparkScanViewFeedback).
-* The color of the highlight for the scanned barcode.
-* The feedback (sound, vibration).
-
-To emit an error, you have to implement a [SDCSparkScanFeedbackDelegate](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/spark-scan-feedback-delegate.html#interface-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate) and set it to the [SparkScanView](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView):
-
-```swift
-sparkScanView.feedbackDelegate = self
-```
-
-In the [SDCSparkScanFeedbackDelegate.feedbackForBarcode](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/spark-scan-feedback-delegate.html#method-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate.GetFeedbackForBarcode) you can then return an error or a success feedback:
-
-```swift
-extension ViewController: SparkScanFeedbackDelegate {
- func feedback(for barcode: Barcode) -> SparkScanBarcodeFeedback? {
- guard !barcode.isRejected else {
- return SparkScanBarcodeErrorFeedback(message: "This code should not have been scanned",
- resumeCapturingDelay: 60)
- }
- return SparkScanBarcodeSuccessFeedback()
- }
-}
-```
-
-You can have different error states triggered by different logic conditions. For example you can trigger an error state when a wrong barcode is scanned, and another one when a duplicate barcode is scanned. These errors can show different colors and have different timeouts.
-
-
- This error state for a code that should not have been scanned.
-
-
-
- This error state for a code that has been scanned more than once.
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan’s built-in error state. Setting the [SDCSparkScanBarcodeErrorFeedback.resumeCapturingDelay](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to `0` allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SDCSparkScanView](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode ([SDCSparkScanViewSettings.defaultScanningMode](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.DefaultScanningMode)). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SDCSparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled ([`SDCSparkScanViewSettings.holdToScanEnabled`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HoldToScanEnabled)).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
diff --git a/versioned_docs/version-8.1.1/sdks/ios/sparkscan/get-started-with-swift-ui.md b/versioned_docs/version-8.1.1/sdks/ios/sparkscan/get-started-with-swift-ui.md
deleted file mode 100644
index 42011552..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/sparkscan/get-started-with-swift-ui.md
+++ /dev/null
@@ -1,150 +0,0 @@
----
-description: Get Started With SwiftUI and Scandit SparkScan.
-framework: ios
-keywords:
- - ios
----
-
-# Get Started With SwiftUI
-
-In this guide you will learn step-by-step how to add SparkScan to your application using SwiftUI.
-
-The general steps are:
-
-1. **Create a UIViewController**: Implement the SparkScan logic following the main [Get Started guide](./get-started.md)
-2. **Use the withSparkScan view modifier**: Apply the SparkScan view controller to your SwiftUI views
-3. **Integrate into your SwiftUI app**: Use the view modifier in your SwiftUI view hierarchy
-
-The core SparkScan implementation (data capture context, settings, SparkScanView setup, etc.) remains the same as described in the main guide.
-
-## Create a UIViewController for SparkScan
-
-To integrate the Scandit Data Capture SDK with SwiftUI, you'll need to create a `UIViewController` that handles the SparkScan functionality. This follows the same implementation as described in the main [Get Started guide](./get-started.md).
-
-Create a `SparkScanViewController` class that implements all the steps from the UIKit guide:
-
-```swift
-import ScanditBarcodeCapture
-import UIKit
-
-class SparkScanViewController: UIViewController {
- private var context: DataCaptureContext!
- private var sparkScan: SparkScan!
- private var sparkScanView: SparkScanView!
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupSparkScan()
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- sparkScanView.prepareScanning()
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- sparkScanView.stopScanning()
- }
-
- func setupSparkScan() {
- // Follow the implementation from the Get Started guide:
- // 1. Create data capture context
- // 2. Configure the SparkScan Mode
- // 3. Create the SparkScan View
- // 4. Register the listener
- }
-}
-
-extension SparkScanViewController: SparkScanListener {
- func sparkScan(_ sparkScan: SparkScan,
- didScanIn session: SparkScanSession,
- frameData: FrameData?) {
- // Handle SparkScan results
- // See the main Get Started guide
- }
-}
-```
-
-## Use the withSparkScan View Modifier
-
-SparkScan provides a convenient SwiftUI view modifier called `withSparkScan` that allows you to easily integrate SparkScan into your SwiftUI view hierarchy.
-
-Use the `withSparkScan` view modifier on any SwiftUI view, passing your SparkScan view controller instance:
-
-```swift
-import SwiftUI
-import ScanditBarcodeCapture
-
-struct ContentView: View {
- let sparkScanViewController = SparkScanViewController()
-
- var body: some View {
- VStack {
- Image(systemName: "barcode.viewfinder")
- .imageScale(.large)
- .foregroundStyle(.tint)
- Text("Scan barcodes with SparkScan")
- }
- .withSparkScan(sparkScanViewController)
- }
-}
-```
-
-## Use SparkScan in Your SwiftUI App
-
-You can use SparkScan in your main app view:
-
-```swift
-import SwiftUI
-import ScanditBarcodeCapture
-
-@main
-struct MyApp: App {
- var body: some Scene {
- WindowGroup {
- ContentView()
- }
- }
-}
-```
-
-Or integrate it into more complex view hierarchies:
-
-```swift
-struct MainView: View {
- let sparkScanViewController = SparkScanViewController()
-
- var body: some View {
- NavigationView {
- TabView {
- ScanningView()
- .withSparkScan(sparkScanViewController)
- .tabItem {
- Image(systemName: "barcode.viewfinder")
- Text("Scan")
- }
-
- HistoryView()
- .tabItem {
- Image(systemName: "list.bullet")
- Text("History")
- }
- }
- .navigationTitle("SparkScan Demo")
- }
- }
-}
-
-struct ScanningView: View {
- var body: some View {
- VStack {
- Text("Point camera at barcodes")
- .font(.headline)
- .padding()
-
- Spacer()
- }
- }
-}
-```
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/ios/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/ios/sparkscan/get-started.md
deleted file mode 100644
index 7af1d2df..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/sparkscan/get-started.md
+++ /dev/null
@@ -1,118 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add SparkScan to your application by: "
-
-sidebar_position: 2
-framework: ios
-keywords:
- - ios
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add SparkScan to your application by:
-
-- Creating a new Data Capture Context instance
-- Configuring the Spark Scan Mode
-- Creating the SparkScanView with the desired settings and binding it to the application’s lifecycle
-- Registering the listener to be informed when new barcodes are scanned and updating the UI accordingly
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-import DataCaptureContextIos from '../../../partials/get-started/_create-data-capture-context-ios.mdx';
-
-
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through SparkScanSettings and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we will set up SparkScan for scanning EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```swift
-let settings = SparkScanSettings()
-settings.set(symbology: .ean13UPCA, enabled: true)
-sparkScan.apply(settings, completionHandler: nil)
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```swift
-let sparkScan = SparkScan(settings: settings)
-```
-
-## Create the SparkScan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view.html) appearance can be customized through [`SparkScanViewSettings`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view-settings.html).
-
-```swift
-let viewSettings = SparkScanViewSettings()
-// setup the desired settings by updating the viewSettings object
-```
-
-By adding a [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view.html), the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view.html) to your view hierarchy:
-
-Construct a new [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view.html), and it is automatically added to the provided parentView:
-
-```swift
-let sparkScanView = SparkScanView(parentView: view, context: context, sparkScan: sparkScan, settings: viewSettings)
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-Additionally, make sure to call [`SDCSparkScanView.prepareScanning`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.PrepareScanning) and [`SDCSparkScanView.stopScanning`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.StopScanning) in your UIViewController’s [`viewWillAppear`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621510-viewwillappear) and [`viewWillDisappear`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621485-viewwilldisappear) callbacks, to make sure that start up time is optimal and scanning is stopped when the app is going in the background.
-
-```swift
-override func viewWillAppear(animated: Bool) {
- super.viewWillAppear(animated)
- sparkScanView.prepareScanning()
-}
-
-override func viewWillDisappear(animated: Bool) {
- super.viewWillDisappear(animated)
- sparkScanView.stopScanning()
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [`SDCSparkScanListener`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) protocol and register the listener to the SparkScan mode.
-
-```swift
-// Register self as a listener to monitor the spark scan session.
-sparkScan.addListener(self)
-```
-
-[`SDCSparkScanListener.sparkScan:didScanInSession:frameData:`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved from the first object in the provided barcodes list: [`SDCSparkScanSession.newlyRecognizedBarcode`](https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode).
-
-Please note that this list only contains one barcode entry.
-
-```swift
-extension ViewController: SparkScanListener {
- func sparkScan(_ sparkScan: SparkScan,
- didScanIn session: SparkScanSession,
- frameData: FrameData?) {
- // Gather the recognized barcode
- let barcode = session.newlyRecognizedBarcode.first
- // This method is invoked from a recognition internal thread.
- // Dispatch to the main thread to update the internal barcode list.
- DispatchQueue.main.async {
- // Update the internal list and the UI with the barcode retrieved above
- self.latestBarcode = barcode
-
- // Handle the barcode
- }
- }
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/ios/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/ios/sparkscan/intro.md
deleted file mode 100644
index 690c1705..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/sparkscan/intro.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-description: "SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics. "
-
-sidebar_position: 1
-displayed_sidebar: iosSidebar
-pagination_prev: null
-framework: ios
-keywords:
- - ios
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying additional scanning modes, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/ios/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/ios/symbology-properties.mdx
deleted file mode 100644
index 56b87782..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/ios/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/ios/system-requirements.mdx
deleted file mode 100644
index 1ae4f584..00000000
--- a/versioned_docs/version-8.1.1/sdks/ios/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/add-sdk.md b/versioned_docs/version-8.1.1/sdks/linux/add-sdk.md
deleted file mode 100644
index db969e19..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/add-sdk.md
+++ /dev/null
@@ -1,144 +0,0 @@
----
-toc_max_heading_level: 4
-pagination_next: null
-framework: linux
-keywords:
- - linux
----
-
-# Installation
-
-This page describes how to integrate the Scandit Data Capture SDK into your Linux project.
-
-The Scandit Data Capture SDK for Linux is provided as a Debian package.
-
-## Prerequisites
-
-Before you begin, make sure you have the following prerequisites in place:
-
-* Meet the [system requirements](/sdks/web/system-requirements/#linux)
-* Download the Scandit SDK for Linux from the [Scandit dashboard](https://ssl.scandit.com/dashboard/sign-in)
-* Have a valid Scandit license key
-
-## Installation
-
-To install the Scandit SDK, use the following command while specifying the correct version number and architecture:
-
-```bash
-$ sudo dpkg -i libscandit-barcodescanner-X.Y.Z-architecture.deb
-```
-
-The architecture you need to use depends on your system:
-
-- amd64 for 64bit x86 systems
-- arm64 for 64bit ARM systems such as the Nvidia Jetson TX2 or the Raspberry Pi 4 or 5
-
-For example, if using a 64bit x86 Ubuntu desktop the correct command would be:
-
-```bash
-$ sudo dpkg -i libscandit-barcodescanner-5.27.1-amd64.deb
-```
-
-## Python API
-
-The Python bindings for the Scandit SDK are located in the zip file. To use
-them, you need to ensure that they are located in a path that Python
-searches for modules. One way to achieve this is to extend the `PYTHONPATH`
-to also list the directory that contains `scanditsdk.py`
-
-Note that the Python bindings are provided on a best-effort basis. They
-aren't an officially supported product from Scandit.
-
-## Raspberry Pi's
-
-The SDK supports the Raspberry Pi 3, 4 and 5. The camera has to support
-Video4Linux2 (V4L2). The following steps are required to setup V4L2:
-
-```bash
-$ sudo apt-get install v4l-utils
-```
-
-Put bcm2835-v4l2 into `/etc/modules-load.d/modules.conf`.
-Reboot the device.
-
-## Sample Applications
-
-All sample applications are contained the samples directory and have the following dependencies:
-
- * Camera samples: Video4Linux2 for camera access:
-
- `$ sudo apt-get install libv4l-dev`
-
- * CommandLineBarcodeScannerImageProcessingSample: SDL2 for loading images.
-
- `$ sudo apt-get install libsdl2-dev libsdl2-image-dev`
-
- * CommandLineBarcodeScannerImageProcessingSample.py: SDL2 for python3 also for image loading.
-
- `$ sudo apt-get install python3-sdl2`
-
- * CommandLineBarcodeGeneratorSample: libpng for generating the output image.
-
- `$ sudo apt-get install libpng-dev`
-
-Insert your license key to all sample source files.
-
-Compile:
-```bash
-$ cd samples
-$ make
-```
-
-Execute the image processing sample:
-```bash
-$ ./CommandLineBarcodeScannerImageProcessingSample ean13-code.png
-```
-
-Execute the camera sample:
-```bash
-$ ./CommandLineBarcodeScannerCameraSample /dev/video0 640 480
-```
-
-Execute the MatrixScan sample:
-```bash
-$ ./CommandLineMatrixScanCameraSample /dev/video0 1920 1080
-```
-
-Execute the barcode generator sample:
-```bash
-$ ./CommandLineBarcodeGeneratorSample
-```
-
-Execute the Python image processing sample:
-```bash
-$ python CommandLineBarcodeScannerImageProcessingSample.py ean13-code.png
-```
-
-### Gstreamer
-
-Refer to the documentation in `samples/gstreamer/README.md`.
-
-### OpenCV
-
-OpenCV barcode scanner samples are in `samples/opencv_py_demo` folder.
-
-These examples configure the SDK for a single image use case without any
-resource restrictions.
-
-* OpenCvCppSample.cpp: OpenCV C++ API sample:
-
-```
- mkdir build
- cd build
- cmake ..
- make
-```
-
-* OpenCvPySample.py: OpenCV Python API sample:
-
- 1. Copy ../public_api/python/scanditsdk.py locally
- 2. Update LD_LIBRARY_PATH variable with a path to libscanditsdk.so library, e.g.
-
-```
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/$USER/scanditsdk/lib
-```
diff --git a/versioned_docs/version-8.1.1/sdks/linux/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/linux/ai-powered-barcode-scanning.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/add-on-codes.md b/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/add-on-codes.md
deleted file mode 100644
index af70225c..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/add-on-codes.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-sidebar_position: 1
-pagination_next: null
-framework: linux
-keywords:
- - linux
----
-
-# Scan add-on / extension codes
-
-The Scandit SDK supports add-on codes (also known as Extension Codes) for EAN-8, EAN-13, UPC-A and UPC-E codes.
-These codes encode additional product data like an issue number, date or price. There is a two (EAN-2/two-digit add-on) and a
-five digit (EAN-5/five-digit add-on) version.
-
-
-
-
-## Enable add-on codes in the SDK
-
-* Enable both the main symbologies (e.g. EAN-13) and the add-on symbology (e.g. two-digit add-on) that you want to scan.
-* Set the number of codes to scan in a frame to 2.
-
-Accumulate scan results until two codes were scanned that fulfill the following conditions:
-1. One corresponds to the main symbology
-2. The other one corresponds to a symbology extension
-
-The data of the two scanned codes is then returned as two separate results.
-Be aware that it can happen that only the main code is found in a particular frame. Isolated extension
-codes are never returned as a result.
-
-### Example
-
-Settings setup for EAN-13/UPC-A codes with a 3 or 5 digit add-on on Linux:
-
-```c
- ScBarcodeScannerSettings *settings = sc_barcode_scanner_settings_new();
- sc_barcode_scanner_settings_set_symbology_enabled(settings, SC_SYMBOLOGY_EAN13_UPCA, SC_TRUE);
- sc_barcode_scanner_settings_set_symbology_enabled(settings, SC_SYMBOLOGY_TWO_DIGIT_ADD_ON, SC_TRUE);
- sc_barcode_scanner_settings_set_symbology_enabled(settings, SC_SYMBOLOGY_FIVE_DIGIT_ADD_ON, SC_TRUE);
- sc_barcode_scanner_settings_set_max_number_of_codes_per_frame(settings, 2);
-
- ScBarcodeScanner *sc_barcode_scanner_new_with_settings(context, settings);
-```
-
-The Add-On code and the main code (EAN13/UPCA, EAN8, or UPCE) are returned as two separate codes and the result needs to be combined from the scan session. A possible implementation of the result collection can look like this:
-
-```c
- ScBool addon_code_found(ScBarcodeScannerSession const *session) {
- ScBarcode *other_code = NULL;
- ScBarcode *addon_code = NULL;
-
- ScBarcodeArray *codes = sc_barcode_scanner_session_get_newly_localized_codes(session);
- // will contain 0 to 2 codes.
- uint32_t const count = sc_barcode_array_get_size(codes);
- for (uint32_t i = 0; i < count; i++) {
- ScBarcode *code = sc_barcode_array_get_item_at(codes, i);
- if (sc_barcode_get_symbology(code) == SC_SYMBOLOGY_TWO_DIGIT_ADD_ON ||
- sc_barcode_get_symbology(code) == SC_SYMBOLOGY_FIVE_DIGIT_ADD_ON) {
- addon_code = code;
- } else {
- other_code = code;
- }
- }
-
- if (addon_code != NULL && other_code != NULL) {
- // concatenate or process the data using sc_barcode_get_data()
- return SC_TRUE;
- }
-
- // only a main code or no code was found
- return SC_FALSE;
- }
-```
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/composite-codes.md b/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/composite-codes.md
deleted file mode 100644
index 4a28e5a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/composite-codes.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-sidebar_position: 5
-pagination_next: null
-framework: linux
-keywords:
- - linux
----
-
-# Scan composite codes
-
-Composite codes are combinations of a linear (1d) barcode and a 2d code.
-The linear component encodes the item’s primary identification. The 2d component describes
-additional data like a batch number or expiration date.
-
-The Scandit SDK version 4.14 or newer supports all GS1 Composite Codes as defined in
-ISO/IEC 24723:2010. The specification defines three different types; A, B and C.
-
-The 1d component of a composite A or B code can be any of the following symbologies:
-* EAN/UPC symbology (EAN-13, EAN-8, UPC-A, or UPC-E)
-* GS1-128 (Code 128)
-* Any member of the GS1 DataBar family
-Version C supports GS1-128 as the linear component only.
-
-The 2d component of a composite code is either a PDF417 or a MicroPDF417.
-
-## Enable composite codes in the SDK
-
-* Enable all 1d symbologies required by the desired composite code type (see above).
-* Enable the required 2d symbology supported by the composite type (PDF417 or MicroPDF417).
-* Set the number of codes to scan in a frame to 2.
-
-Accumulate scan results until a 1d and a 2d code were scanned that fulfill the following conditions:
-1. EAN/UPC or GS1-128 code with the composite flag set to unknown or linked or a
- GS1 DataBar code with the composite flag set to linked.
-2. A PDF417 or MicroPDF417 code with the composite flag set to GS1_A, GS1_B or GS1_C.
-
-Concatenate the results from the linear and the 2d code into one valid GS1 encoded result.
-
-## GS1 Composite Code A (CC-A)
-
-
-
-* Extends a linear GS1 barcode using an additional MicroPDF417 code.
-* Optimized to use as little space as possible.
-* Only a special set of MicroPDF417 column, row and error correction level combinations can be used.
-* Data is encoded in a special base 928 compaction mode.
-* Three column version has no left row address patterns.
-
-## GS1 Composite Code B (CC-B)
-
-
-
-* Extends a linear GS1 barcode using an additional MicroPDF417 code.
-* A subset of the MicroPDF417 column and row combinations can be used.
-* Marked by the (Micro)PDF417 symbol 920 at the first position.
-* (Micro)PDF417 data is encoded in byte compaction mode.
-
-## GS1 Composite Code C (CC-C)
-
-
-
-* Extends a GS1-128 (Code 128) barcode using an additional PDF417 code.
-* Same encoding as CC-B.
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index 7d15514a..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,222 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: linux
-keywords:
- - linux
----
-
-# Configure Barcode Symbologies
-
-Symbologies often have different properties, such as symbol count (length of the barcode) or inverted colors (printed white on black). To provide optimal performances, some properties/values are disabled by default in our SDK.
-
-You might need to scan a symbology whose properties are by default disabled. This article explains you how to enable the specific properties and which one are available per symbology.
-
-## Setting Symbology Properties
-
-You can set the properties of a symbology using the methods of the `ScSymbologySettings` class. You can get the symbology settings of Code128 as follows:
-
-```c
-ScSymbologySettings *symbology_settings = sc_barcode_scanner_settings_get_symbology_settings(settings, SC_SYMBOLOGY_CODE128)
-```
-
-Some symbologies have optional checksums. A specific checksum method can be set in the following way:
-
-```c
-sc_symbology_settings_set_checksums(symbology_settings, SC_CHECKSUM_MOD_10);
-```
-
-Symbologies may also have a certain length range configured by default. The length of a barcode can be checked using the "Any Code" mode of our demo app (Apple/Play Store). A new length range can be set by the dedicated symbol count method on the ScSymbologySettings class.
-
-```c
-uint16_t symbol_counts[] = {
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
-};
-sc_symbology_settings_set_active_symbol_counts(symbology_settings, symbol_counts, sizeof(symbol_counts));
-```
-
-When working with symbologies printed white on black (default is black on white), you can set it using the dedicated inverted color method on the `ScSymbologySettings` class.
-
-```c
-sc_symbology_settings_set_color_inverted_enabled(symbology_settings, SC_TRUE);
-```
-
-Symbologies may also have optional extensions/properties, as detailed in the next section. You can enforce these properties through a generic method on the `ScSymbologySettings` class.
-
-```c
-sc_symbology_settings_set_extension_enabled(symbology_settings, "relaxed_sharp_quiet_zone_check", SC_TRUE);
-```
-
-Some symbologies support Optical Character Recognition (OCR) as a fallback when scanning fails. When the extension is enabled, an optional regular expression can be used to constrain results to a specific format, using the following method on the `ScSymbologySettings` class:
-
-```c
-sc_symbology_settings_set_ocr_fallback_regex(symbology_settings, regex);
-```
-
-## 1D Symbology Properties
-
-Keep the following in mind when configuring 1D symbologies:
-
-* All symbologies and all extensions are disabled by default when using the low-level API.
-* Color-inverted (bright bars on dark background) decoding for symbologies that support it is disabled and must be explicitly enabled.
-* Optional checksum digits (e.g. for interleaved 2 of 5 codes, or MSI-Plessey codes) are always returned as part of the data.
-
-| Symbology | Mandatory Checksums | Supported Optional Checksums | Default Optional Checksum | Default Symbol Count Range | Supported Symbol Count Range | Color-Inverted Codes | Extensions | Generator Support |
-|-------------------------------|---------------------|-----------------------------------|--------------------------------|-------------------------------------------------|------------------------------|---------------------------|------------------------------------------------------------------|-------------------|
-| EAN-13 / UPC-A | mod10 | | | 12 | 12 | yes | ocr_fallback, remove_leading_upca_zero, strict | yes |
-| EAN-8 | mod10 | | | 8 | 8 | yes | strict | no |
-| UPC-E | mod10 | | | 6 | 6 | yes | return_as_upca, remove_leading_upca_zero, strict | no |
-| Two-Digit Add-on | mod10 | | | 2 | 2 | yes | strict | no |
-| Five-Digit Add-on | mod10 | | | 5 | 5 | yes | strict | no |
-| MSI Plessey | none | mod10, mod11, mod1010, mod1110 | mod10 | 6-32 | 3-32 | no | strict | no |
-| Code 128 | mod103 | | | 6-40 (includes 1 checksum and 2 guard symbols) | 4-50 | yes | ocr_fallback, strip_leading_fnc11 , strict | yes |
-| Code 11 | none | mod11 | mod11 | 7-20 (includes 0-2 checksum digits) | 3-32 | no | strict | no |
-| Code 25 | none | mod10 | | 7-20 | 3-32 | no | strict | no |
-| IATA 2 of 5 | none | mod1010 | | 7-20 | 3-32 | no | strict | no |
-| Matrix 2 of 5 | none | mod10 | | 7-20 | 3-32 | no | strict | no |
-| Code 32 | mod10 | | | 8 (plus one check digit) | 8 | no | strict | no |
-| Code 39 | none | mod43 | | 6-40 (includes 2 guard symbols) | 3-50 | yes | ocr_fallback, full_ascii, relaxed_sharp_quiet_zone_check, strict | yes |
-| Code 93 | mod47 | | | 6-40 (includes 2 checksums and 2 guard symbols) | 5-60 | no | full_ascii2 , strict | no |
-| Codabar | none | mod16, mod11 | | 7-20 (includes 2 guard symbols) | 3-34 | no | ocr_fallback, strict, remove_delimiter_data | no |
-| GS1 DataBar 14 | mod10 | | | 2 (encoding 14 digits) | 2 | no | strict | no |
-| GS1 DataBar Expanded | mod211 | | | 1-11 (encoding 1-74 characters) | 1-11 | no | strict | no |
-| GS1 DataBar Limited | mod89 | | | 1 (encoding 14 digits) | 1 | no | relaxed_sharp_quiet_zone_check, strict | no |
-| Interleaved-Two-of-Five (ITF) | none | mod10 | | 6-40 | 4-50 | no | strict | yes |
-| Royal Mail 4-State | mod36 | | | 7-24 | 4-50 | no | fluorescent_orange_ink | no |
-| KIX | none | | | 7-24 | 7-24 | no | | no |
-| LAPA | none | | | 16 | 16 | no | | no |
-| USPS Intelligent Mail | none | | | 65 | 65 | no | | no |
-| UPU 4-State | none | | | 19 or 25 | 19 or 25 | no | fluorescent_orange_ink, swiss_post_decoding | no |
-| Australian Post 4-State | none | | | 10-41 (10 digits, 0-31 customer info characters)| 10-41 | no | one of force_table_c, force_table_n, decode_bar_states | no |
-| French Post | none | | | - | - | no | fluorescent_orange_ink | no |
-
-1: Enabled by default
-2: Always enabled
-
-## 2D Symbology Properties
-
-Keep the following in mind when configuring 2D symbologies:
-
-* All symbologies and all extensions are disabled by default when using the low-level API.
-* Color-inverted decoding for symbologies that support it is disabled and must be explicitly enabled, except where mentioned.
-
-| Symbology | Color-Inverted Codes | Extensions | Generator Support |
-|---------------|---------------------------|----------------------------------------------------------|-------------------|
-| ArUco | yes | | no |
-| Aztec Code | yes | | yes |
-| Data Matrix | yes | strip_leading_fnc11 , direct_part_marking_mode | yes |
-| DotCode | yes | | no |
-| MaxiCode | no | | no |
-| MicroPDF417 | no | | no |
-| PDF417 | no | | no |
-| QR Code | yes1 | strict | yes |
-| Micro QR Code | yes1 | | no |
-
-1: Enabled by default.
-
-## Symbology Extensions
-
-| Extension Name | Description |
-|-----------------|-------------|
-| full_ascii | Interprets the Code39 code data using two symbols per output character to encode all ASCII characters. |
-| relaxed_sharp_quiet_zone_check | Enables scanning codes that have quiet zones (white area before and after the code) that are significantly smaller than allowed by the symbology specification. Use this extension if you are having difficulties to scan codes due to quiet zone violations. However, enabling it may come at the cost of more false positives under certain circumstances. |
-| return_as_upca | Transforms the UPCE result into its EAN-13/UPC-A representation. |
-| remove_leading_upca_zero | Removes the leading zero digit from the result if the UPC-A representation extension 'return_as_upca' is enabled. |
-| strip_leading_fnc1 | Removes the leading FNC1 character that indicates a GS1 code. To determine whether a certain code is a GS1 code, use sc_barcode_is_gs1_data_carrier. |
-| direct_part_marking_mode | Use this mode to improve scan performance when reading direct part marked (DPM) Data Matrix codes. Enabling this extension comes at the cost of increased frame processing times. It is recommended to restrict the scanning area to a smaller part of the image for best performance. |
-| strict | Enforce strict standard adherence to eliminate false positives in blurry, irregular or damaged barcodes at the cost of reduced scan performance. |
-| fluorescent_orange_ink | Enables the scanning of low contrast fluorescent orange codes. Enabling this option can have a negative impact on the scan performance of other symbologies. |
-| force_table_c | (For Australian Post 4-State) Forces decoding of Australian Post 4-State customer information with Table C. |
-| force_table_n | (For Australian Post 4-State) Forces decoding of Australian Post 4-State customer information with Table N. |
-| decode_bar_states | (For Australian Post 4-State) Returns the error-corrected customer information bars as a string of the bar states, A for ascending, D for descending, T for tracker and F for full. |
-| swiss_post_decoding | Enables scanning of proprietary Swiss Post UPU 4-State symbology. |
-| remove_delimiter_data | Removes start and stop patterns from the result of scanning a Codabar code. |
-| ocr_fallback | Enables Optical Character Recognition of text as a fallback when other readers fail. For more details, refer to section "Using OCR Fallback Symbology Extension". |
-
-## Using OCR Fallback Symbology Extension
-
-When enabled, the OCR Fallback symbology extension performs text detection and recognition next to detected codes. This extension requires Smart Scan Intention which is available in SparkScan, Barcode Capture, or through the Linux settings preset `SC_PRESET_SINGLE_CODE_HAND_HELD`. It also requires the LabelText module.
-
-OCR Fallback is triggered after 1 second of unsuccessful decoding while remaining stationary. The duration can be customized by setting the `ocr_fallback_smart_stationary_timeout` engine property with a value in milliseconds.
-
-When the scanner is configured with multiple symbologies enabled with OCR Fallback, OCR is performed for each symbology in a hard-coded sequence. As soon as a result is detected that is valid for one symbology, OCR Fallback ends and the result is returned.
-
-For some symbologies with overlapping character set and no checkum algorithms for the printed text label, this may cause unwanted results. For instance, a Code128 label may be misidentified as Code39, or vice-versa, depending on the order of execution. It is advised to configure different OCR regular expressions for each symbology when possible, so that codes are identified properly.
-
-When no OCR regular expression is configured for Code128 or Code39, results returned by OCR Fallback may only contain alpha-numerical characters to reduce false-positives. Characters detected through OCR that are non-alpha-numerical are removed from results. To scan codes containing non-alpha-numerical characters, such as spaces or dashes, it is required to configure a regular expression that matches those characters.
-
-## Calculating Symbol Counts for Variable-Length Symbologies
-
-The length of data encoded in variable-length symbologies such as Code 128, Codabar, Code 39 etc. is measured as the number of symbols. Depending on the symbology, the symbol count includes the start and end symbol, and/or checksum characters. The following list shows how to calculate the number of symbols for each variable-length symbology. These counts can be used as the input to [`sc_symbology_settings_set_active_symbol_counts`](https://docs.scandit.com/stable/c_api/struct_sc_symbology_settings.html#a0f06eab88bee48cb45ed96af0f170d16).
-
-### Interleaved-Two-of-Five
-
-The number of symbols corresponds to the number of digits in the code. Note that the number of digits must be even.
-
-Example: the code `“1234567890123”` has a symbol count of 14. For the active symbol count calculation, optional checksum digits are treated like normal data symbols.
-
-### Codabar
-
-The number of symbols corresponds to the number of digits in the code, plus the start and end symbols.
-
-Example: the code `“A2334253D”` has a symbol count of 7 + 2 = 9.
-
-### Code 11
-
-The number of symbols corresponds to the number of digits in the code, plus one or two checksum symbols. For less than ten digits in the code, one checksum symbol is added. Two checksum symbols are added for ten or more digits in the code.
-
-Example: the code `“912-34956”` (`“912-349566”`) has a symbol count of 9 + 1 = 10. The code `“912-3495-6”` (`“912-3495-638”`) has a symbol count of 10 + 2 = 12.
-
-### Code 128
-
-The number of symbols depends on the encoding used (A, B or C). All encodings require a start, an end and a checksum symbol. The ASCII encoding modes (A and B) store each character in one symbol.
-
-Example: the code `“ABC123”` in mode A has a symbol count of 6 + 2 + 1 = 9.
-
-The numeric encoding mode (C) encodes pairs of digits in one symbol.
-
-Example: the code `“123456”` has a symbol count of 3 + 2 + 1 = 6.
-
-Some encoders switch modes inside the code using switch symbols to optimize the code length. In this case the exact encoding used is needed to compute the number of symbols.
-
-### Code 93
-
-The number of symbols corresponds to the number of characters in the code, plus the start and end symbols and 2 checksum digits. Shift characters used in “extended code93” are treated as normal data symbols.
-
-Example: the code `“ABCDE12345”` has a symbol count of 10 + 2 + 2 = 14.
-
-### Code 39
-
-The number of symbols corresponds to the number of characters in the code, plus the start and end symbols. Note that the start and end symbols are not included in the returned barcode data.
-
-Example: the code `“4F70050378196356D”` (`“*4F70050378196356D”`) has a symbol count of 17 + 2 = 19.
-
-### MSI Plessey and Code 25
-
-The number of symbols corresponds to the number of digits in the code.
-
-Example: the code `“12345674”` has a symbol count of 8. For the active symbol count calculation, optional checksum digits are treated like normal data symbols.
-
-### GS1 DataBar 14
-
-The symbol count corresponds to the number of finder patterns in the code. Each finder is accompanied by two data segments.
-
-### GS1 DataBar Expanded
-
-The symbol count cannot be changed. All lengths defined by the standard are supported.
-
-### RM4SCC
-
-The number of symbols corresponds to the number of characters in the code, including the checksum character.
-
-### KIX
-
-The number of symbols corresponds to the number of characters in the code.
-
-### UPU 4-State
-
-The number of symbols corresponds to the number of code words. Two lengths are supported, 19 or 25 codewords with a maximum number of error correcting codewords of 6 or 12 respectively.
-
-### Australian Post 4-State
-
-The number of symbol corresponds to 10 digit FCC and DPID codes, and up to 31 characters representing the customer information bar states.
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/configure-with-json.md b/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/configure-with-json.md
deleted file mode 100644
index bb094b4d..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/configure-with-json.md
+++ /dev/null
@@ -1,145 +0,0 @@
----
-sidebar_position: 2
-pagination_prev: null
-framework: linux
-keywords:
- - linux
----
-
-# Configure with JSON
-
-This document describes the JSON format understood by the [`sc_barcode_scanner_settings_new_from_json()`](https://docs.scandit.com/stable/c_api/struct_sc_barcode_scanner_settings.html#a12865e80efbcf01cac8bc8c749032663) function.
-
-## JSON Format
-
-The top-level must always be a dictionary (object) containing one or more key-value pairs. In the simplest form, an empty dictionary can be passed to the function. This will return a default barcode scanner settings instance with all symbologies disabled. All other properties have their default value. In general, missing properties are left at their default value, so only the properties that need to be changed away from their default need to be specified. Key-value pairs not understood the by JSON parser are ignored as if they were not specified.
-
-The following table shows the symbology names understood by the JSON parser:
-
-
-Click to expand
-
-| Symbology | JSON Name (case is ignored) |
-|----------------------------|----------------------------------|
-| ArUco | aruco |
-| Australia Post 4State | australian-post-4state |
-| Aztec | aztec |
-| Codabar | codabar |
-| Code 11 | code11 |
-| Code 128 | code128 |
-| Code 32 | code32 |
-| Code 39 | code39 |
-| Code 93 | code93 |
-| DataBar 14 | databar |
-| DataBar Expanded | databar-expanded |
-| DataBar Limited | databar-limited |
-| DataMatrix | data-matrix |
-| DotCode | dotcode |
-| EAN13 / UPCA | ean13upca |
-| EAN8 | ean8 |
-| Five-Digit-Add-On | five-digit-add-on |
-| French Post (La Poste) | french-post |
-| IATA 2of5 | iata2of5 |
-| Interleaved 2 of 5 | itf |
-| KIX | kix |
-| LAPA 4SC | lapa4sc |
-| Matrix 2of5 | matrix2of5 |
-| MaxiCode | maxicode |
-| MicroPDF417 | micropdf417 |
-| Micro QR | microqr |
-| MSI-Plessey | msi-plessey |
-| PDF417 | pdf417 |
-| QR Code | qr |
-| Royal Mail 4State | rm4scc |
-| Standard 2 of 5 (Code 25) | code25 |
-| Two-Digit-Add-On | two-digit-add-on |
-| UPCE | upce |
-| UPU 4State | upu-4state |
-| USPS Intelligent Mail | usps-intelligent-mail |
-
-
-
-## Symbology Settings
-
-By default, all symbologies are disabled. To enable a symbology, it must be listed under the `"symbologies"` key. Symbologies can either be a dictionary, or an array of symbology names:
-
-```json
-{
- "symbologies" : [ "ean13upca", "ean8", "code128" ]
-}
-```
-
-When using a dictionary, further symbology options can be specified, such as extensions to enable, used checksums etc.:
-
-```json
-{
- "symbologies" : {
- "code128" : true,
- "ean13upca" : {
- "extensions" : ["remove_leading_upca_zero"]
- },
- "itf" : {
- "checksums" : [ "mod10" ]
- }
- }
-}
-```
-
-The following options are currently supported:
-
-* `enabled`: boolean indicating whether the symbology should be enabled. When using the dictionary form, `enabled` is automatically set to true.
-* `colorInvertedEnabled`: boolean indicating whether color-inverted codes of that symbology should be decoded. Default is false.
-* `activeSymbolCounts`: array of integers specifying the active symbol counts for the symbology. See [`sc_symbology_settings_set_active_symbol_counts`](https://docs.scandit.com/stable/c_api/struct_sc_symbology_settings.html#a0f06eab88bee48cb45ed96af0f170d16) for details.
-* `extensions`: Extensions to be enabled for the symbology.
-* `checksums`: List of optional checksums to use for the symbology.
-
-Depending on the symbology, some of these properties are ignored. See [Configure Barcode Symbologies](/sdks/linux/barcode-capture/configure-barcode-symbologies.md) for details.
-
-## Code Location and Search Area
-
-To customize the search area and code location hints, you can use the `codeLocation1d`, `codeLocation2d`, `searchArea` and `codeDirectionHint` properties.
-
-### Search Area
-
-To customize the search area, set the `searchArea` property by defining the rectangle with `x`, `y`, `width`, and `height`.
-
-```json
-{
- "searchArea" : {
- "x" : 0.0, "y" : 0.0, "width" : 1.0, "height" : 0.5
- }
-}
-```
-
-### Code Location
-
-To customize code location 1d and code location 2d, use the `codeLocation1d` and `codeLocation2d` properties. They consist of a rectangle, the area, and a constraint.
-
-```json
-{
- "codeLocation1d" : {
- "area" : {"x" : 0.0, "y" : 0.0, "width" : 1.0, "height" : 0.5 },
- "constraint" : "restrict" // or "hint"
- }
-}
-```
-
-Constraint must either be `"restrict"`, or `"hint"`.
-
-### Code Direction Hint
-
-To customize the code direction hint, use the `codeDirectionHint` property.
-
-```json
-{
- "codeDirectionHint" : "left-to-right"
-}
-```
-
-The code direction hint must either be `"left-to-right"`, `"right-to-left"`, `"bottom-to-top"`, `"top-to-bottom"`, `"none"`, `"vertical"`, or `"horizontal"`.
-
-## Additional Properties
-
-`maxNumberOfCodesPerFrame` sets the maximum number of codes per frame, see [`sc_barcode_scanner_settings_set_max_number_of_codes_per_frame()`](https://docs.scandit.com/stable/c_api/struct_sc_barcode_scanner_settings.html#a941eb7ee16744e83ef86ad14c66391cf).
-`codeDuplicateFilter` sets the code duplicate filter, see [`sc_barcode_scanner_settings_set_code_duplicate_filter()`](https://docs.scandit.com/stable/c_api/struct_sc_barcode_scanner_settings.html#a3b6890b17a508e4931767c1e4bbc6483).
-`arucoDictionaryPreset` sets the ArUco dictionary preset, see [`sc_aruco_dictionary_from_preset()`](https://docs.scandit.com/stable/c_api/struct_sc_aruco_dictionary.html#a32620469440760f6a07e09ebb9a9bb1e).
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/structured-append-codes.md b/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/structured-append-codes.md
deleted file mode 100644
index 0b373faf..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-capture/structured-append-codes.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-sidebar_position: 1
-pagination_next: null
-framework: linux
-keywords:
- - linux
----
-
-# Scan structured append codes
-
-Structured append mode is a standardized mechanism for spliting message data across a sequence of codes when
-it wouldn't fit a single code capabilities.
-Since version 7.6, the Scandit SDK supports structured append mode (also known as Extension Codes) for QR, DataMatrix, Aztec, PDF417/MicroPDF417 - we have added a number of functions to `ScBarcode` API to allow querying whether given scanned code belongs to a structured append codes sequence and which place in the sequence it occupies:
-
-- `char const *sc_barcode_get_file_id(ScBarcode const *barcode)` function returns structured append sequence id which should match across all codes belonging to the same sequence.
-- `int32_t sc_barcode_get_segment_index(ScBarcode const *barcode)` function returns a code's absolute position within a sequence.
-- `int32_t sc_barcode_get_segment_count(ScBarcode const *barcode)` function returns an expected number of codes within a sequence.
-
-For more details see `include/Scandit/ScBarcode.h`.
-
-## Enable structured append codes in the SDK
-
-There is nothing special required from the user in order to enable structured append scanning support - just enable the symbologies that you would like to scan an in case the scanned codes happen to be a structured append sequence the information would be returned via the above mentioned APIs.
-
-### Example
-
-Given the following four QR codes
-
-
-
-
-
-
-Settings setup for structured append QR codes on Linux:
-
-```c
- ScBarcodeScanner *scanner = sc_barcode_scanner_new(context);
-
- ScBarcodeScannerSettings *settings = sc_barcode_scanner_settings_new();
- sc_barcode_scanner_settings_set_symbology_enabled(settings, SC_SYMBOLOGY_QR, SC_TRUE);
- ScContextStatus status = sc_barcode_scanned_apply_settings(scanner, settings);
-```
-
-The structured append codes are returned as four separate codes and they need to be combined from the scan session. A possible implementation of the result collection can look like this:
-
-```c
-char const *structured_append_sequence_id = NULL;
-char const *structured_append_sequence[32] = {0};
-int structured_append_sequence_expected_segments_count = -1;
-
-void extract_new_structured_append_codes(ScBarcodeScannerSession const *session) {
- ScBarcodeArray *codes = sc_barcode_scanner_session_get_newly_recognized_codes(session);
- // will contain 0 to 4 codes.
- uint32_t const count = sc_barcode_array_get_size(codes);
- for (uint32_t i = 0; i < count; i++) {
- ScBarcode *code = sc_barcode_array_get_item_at(codes, i);
- char const *code_file_id = sc_barcode_get_file_id(code);
- if (code_file_id) {
- if (!structured_append_sequence_id) {
- structured_append_sequence_id = code_file_id;
- structured_append_sequence_expected_segments_count = sc_barcode_get_segment_count(code)
-
- int segment_index = sc_barcode_get_segment_index(code);
- ScByteArray segment_data = sc_barcode_get_data(code);
- if (segment_data.size > 0) {
- char *segment_data_copy = (char *)malloc(segment_data.size);
- memcpy(segment_data_copy, segment_data.str, segment_data.size);
- structured_append_sequence[segment_index] = segment_data_copy;
- }
- sc_byte_array_free(segment_data);
- } else if (std::strcmp(structured_append_sequence_id, code_file_id) != 0) {
- // found different structured append sequences
- break;
- }
- } else {
- // code does not belong to a sequence
- }
- }
-
- sc_barcode_array_release(codes);
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/linux/barcode-generator.md
deleted file mode 100644
index 3f49c864..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-generator.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-displayed_sidebar: linuxSidebar
-sidebar_label: JSON Settings
----
-
-# Barcode Generator
-
-The Barcode Generator is a simple API to generate barcodes directly from the Scandit SDK. This document describes the JSON format understood by the [`sc_barcode_generator_set_options()`](https://docs.scandit.com/stable/c_api/struct_sc_barcode_generator.html#a045a2b9474895067e8eb1610ae6c5fef) function.
-
-## General Options
-
-* `foregroundColor`: 4-tuple of integers [r, g, b, a] with `r`, `g`, `b` and `a` being in the range [0, 255]
-* `backgroundColor`: 4-tuple of integers [r, g, b, a] with `r`, `g`, `b` and `a` being in the range [0, 255]
-
-## 2D Symbologies
-
-### QR Code
-
-* `errorCorrectionLevel`: string, may be `"L"` (up to 7% damage), `"M"` (up to 15% damage), `"Q"` (up to 25% damage) or `"H"` (up to 30% damage). Default correction level is `"M"`.
-* `versionNumber`: positive integer, overrides desired version number. Version number is automatically chosen if not set. Barcode generation might fail if version number is too small.
- ```json
- {
- "foregroundColor" : [ 255, 0, 0, 255 ],
- "backgroundColor" : [ 0, 0, 255, 255 ],
- "errorCorrectionLevel": "Q"
- }
- ```
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/barcode-selection/get-started.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-selection/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/linux/barcode-selection/intro.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-selection/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/linux/barcode-symbologies.mdx
deleted file mode 100644
index 86cebbb1..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/barcode-symbologies.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/linux/batch-scanning.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/batch-scanning.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/linux/extension-codes.mdx
deleted file mode 100644
index 9b1839d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/extension-codes.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/linux/id-capture/advanced.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/id-capture/advanced.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/id-capture/get-started.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/id-capture/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/linux/id-capture/intro.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/id-capture/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/linux/id-capture/supported-documents.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/id-capture/supported-documents.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/linux/label-capture/advanced.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/label-capture/advanced.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/label-capture/get-started.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/label-capture/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/linux/label-capture/intro.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/label-capture/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-ar/get-started.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-ar/intro.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/advanced.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/get-started.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/intro.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-count/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/advanced.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/get-started.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/intro.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-find/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/advanced.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/get-started.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/intro.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan/get-started.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/linux/matrixscan/intro.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/matrixscan/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/overview.md b/versioned_docs/version-8.1.1/sdks/linux/overview.md
deleted file mode 100644
index bfe2c15b..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/overview.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-toc_max_heading_level: 4
-pagination_next: null
-framework: linux
-keywords:
- - linux
- - debian
- - ubuntu
----
-
-# Overview
-
-The Scandit SDK C API offers a low-level interface to the Data Capture SDK. The low-level API is the default interface on Linux but it is also available for Android and iOS.
-
-This interface is very limited compared to the Data Capture API provided in the SDKs for all platforms. It allows you to pass image data directly to the data capture modules, such as barcode scanning. The API does not include a user interface, image or stream management, or advanced camera control. On Linux a basic camera interface for Video4Linux 2 (V4L2) cameras is provided.
-
-If you are creating a mobile application for Android and/or iOS where the Scandit SDK is the only camera user, then you **should not** use the low-level API and use the Data Capture API instead. Possible scenarios requiring the low-level API include building:
-
-* An embedded system with custom camera handling.
-* A batch or single image processing system on an embedded system or server
-* A mobile application where multiple consumers (other vision frameworks) access the camera stream and therefore the camera control can not be done by the Scandit Data Capture API.
-
-## Features
-
-The low-level API offers single and multi barcode scanning, barcode tracking (MatrixScan), barcode generation and barcode data parsing.
-
-### Single Barcodes Scanning
-
-Scanning one barcode or one group of barcodes is the default behavior of the low-level API. Valid groups are EAN/UPC with [add-on codes](barcode-capture/add-on-codes.md) or [composite codes](barcode-capture/composite-codes.md). If you implement a hand held use-case, we recommend using the `SC_PRESET_SINGLE_CODE_HAND_HELD` barcode scanner settings preset. The single scan preset provides some of the SparkScan features on the mobile API, such as smart scan intention and OCR fallback.
-
-### Multi Barcode Scanning and Tracking
-
-Scanning multiple barcodes in an image can be implemented in two ways; by enabling multi-scan in the barcode scanner settings (see `sc_barcode_scanner_settings_set_multi_scan_enabled`) or by using the tracking API (see `ScObjectTracker`). A license key with the `tracking` feature enabled is required for both approaches. Please [contact Scandit support](mailto:support@scandit.com) if you need such a license.
-
-Barcode tracking identifies and follows multiple codes over time. It can be used to count objects or anchor augmented reality (AR) markers on objects, similar to the functionality of MatrixScan on the mobile API.
-
-## Low-level API Concepts
-
-### Memory Management Rules
-
-Object represented by opaque pointers in Scandit SDK internally use reference counting. To claim ownership of an object, the reference count of the object is increased and decreased again when the object is no longer needed. When the reference count drops to zero, e.g. the object has no owners, the object is deallocated (freed).
-
-To claim ownership of an object use one of the `sc_*_retain` functions, and use `sc_*_release` when you finish using it.
-
-Some objects returned by functions are automatically owned by the caller and must be released after use, while others must be retained manually, if required. The following rules apply:
-
-* Objects created by you (using any of the `*_new` functions) must be released after use by you.
-* Objects returned by functions that explicitly state they transfer ownership to you, must be released after use. An examples of such a function is [`sc_barcode_scanner_session_get_newly_recognized_codes()`](https://docs.scandit.com/stable/c_api/struct_sc_barcode_scanner_session.html#a090af0487a5928ca5893baa66d94f946).
-* You must release objects on which you called `sc_*_retain`
-
-### Image Coordinate System
-
-All (relative) coordinates used in the barcode scanner SDK are defined in image coordinates of the frame in memory. The origin, coordinate (0,0), is in the upper left corner. The x-direction (width) points to the right and the y-direction (height) points downwards.
-
-Be aware that the camera sensors of most devices capture images in landscape mode and the display on screen depends on the device orientation and does not necessarily correspond to the layout of the camera image in memory. Different screen coordinate systems and use-cases require mirroring and/or rotation to obtain the correct location areas or code directions in image space. The inverse transform has to be applied if the location of a recognized code should be displayed in screen space.
-
-## Low-Level API Performance
-
-By default the Scandit SDK is optimized for real-time video streaming. In general barcodes in the image will not be decoded in every frame. Instead the engine tries to skip bad frames to meet real-time processing constraints.
-
-Single image processing use-cases, for example scanning a scanned or photographed document, require a specific setup.
-
-* Use a YUV or Grayscale image input format. RGB(A) will be converted internally.
-* Use an image resolution between 800x600 to 1920x1080. 1280x720 is recommended.
-* Make sure to have an area of at least 320x160 pixels when setting a restricted code location area for barcode localization.
-* Having SIMD CPU support (NEON or SSE) improves execution times.
-* Pre-cropping the image is not required. The SDK can find the barcodes in the image.
-* Pre-processing (filter, blur, binarize) the image is not recommended. Provide natural images.
-* Very long codes require that you setup the symbol counts that you want to scan.
-* Blurry decoding using your custom camera and camera lens will not perform as well as high-end iOS or Android devices. Please [contact us](mailto:support@scandit.com) if specific optimizations for your camera are desired.
-
-### Video Streaming Use-Case
-
-The default barcode scanner settings (`SC_PRESET_NONE`) offer a balance speed to accuracy performance on frame sequences for single and multi-scan use-cases. To achieve comparable results as the high level Data Capture API, you have to create barcode specific camera control algorithms that adjust exposure and auto-focus. The `ScCamera` implementations currently provided do not implement this. The recommended input resolution is FullHD (1080p) or 4KUHD (2160p) for extra range.
-
-For scenarios where a hand held device is used to scan a single barcode in a static scene, the barcode scanner preset `SC_PRESET_SINGLE_CODE_HAND_HELD` should be set.
-Among other optimizations, this preset enables Smart Scan Intention, which prevents scans in the background or during fast movement.
-
-A frame sequence should only be restarted (see `sc_recognition_context_start_new_frame_sequence`) if the frame stream is discontinuous, e.g. when the camera is switched off or temporarily stopped.
-
-### Single Image Processing Use-Case
-
-There are barcode scanner presets to improve the scan robustness. For SDK versions before 7.0, `SC_PRESET_ENABLE_SINGLE_FRAME_MODE` can be set. For SDK versions 7.1 or later `SC_PRESET_HIGH_EFFORT` should be set. These presets try to achieve the best accuracy by spending more time per frame than the default preset. The settings are optimized for high power devices or non real-time requirements. They supports single or multi-code scanning and is recommended for single image or cloud processing use-cases.
-
-Recommendations:
-* The recommended input resolution is FullHD (1080p) or 4KUHD (2160p).
-* A new frame sequence should be started for every new input image by calling `sc_recognition_context_start_new_frame_sequence`.
-* The input image should be uncompressed. JPEG encoded image data is often poor as it contains block artifacts.
-* Try to acquire images that are as sharp as possible and don't contain motion blur.
-* Disable the code duplicate filter in the session configuration.
-
-Despite following above recommendations your single image processing will not perform the same as a mobile app based solution. The Data Capture API on mobile uses a video stream to scan. Scanning from a single image will never perform as well as scanning from a video stream, as the probability of getting a good picture of a code is much lower with just one image. In addition, the SDK can't control the camera based on previous frames if a single image is used. Real-time adjustment of auto-focus and exposure which is optimized for barcode scanning make a significant difference.
-
-### Multi-Threading
-
-Dynamic threading is used internally to accelerate the execution if available. The functions of the SDK library are not thread-safe. All context and scanner calls have to happen in the same thread.
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/parser/get-started.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/parser/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/release-notes.md b/versioned_docs/version-8.1.1/sdks/linux/release-notes.md
deleted file mode 100644
index 973590a4..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/release-notes.md
+++ /dev/null
@@ -1,115 +0,0 @@
----
-toc_max_heading_level: 3
-displayed_sidebar: linuxSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: linux
-keywords:
- - linux
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a typo in the ProcessFrameResult.message function of SDK Python bindings
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-* Updated `ScProcessFrameResult` struct definition with additional detailed error information.
-* Modified `sc_barcode_scanner_apply_settings` to return `ScContextStatus` with detailed error information.
-* Added `sc_context_status_free` to public API to free `ScContextStatus` structures holding detailed error information.
-* Added `sc_process_frame_result_free` to public API to free `ScProcessFrameResult` structures holding detailed error information.
-* Modified `sc_parser_new_with_context` to take `ScContextStatus *` as the last param instead of just the `ScContextStatusFlag *`.
-* Improved and accelerated scanning for 1d symbologies at low resolution, in particular Code 128.
-
-### Bug Fixes
-
-* Updated Minimum Android API Level to 24 (from 21).
-* Unscanned default barcode locations are no longer added as a result to the scan session.
-* Removed the following barcode scanner settings APIs in favor of the new max locations to process per frame APIs:
- * `sc_barcode_scanner_settings_get_max_number_of_codes_per_frame` (use `sc_barcode_scanner_settings_get_max_num_locations_to_process_per_frame`)
- * `sc_barcode_scanner_settings_set_max_number_of_codes_per_frame` (use `sc_barcode_scanner_settings_set_max_num_locations_to_process_per_frame`)
- * Added corresponding Python bindings: `max_num_locations_to_process_per_frame` property on `BarcodeScannerSettings`
-* Added barcode scanner settings option to switch from single to multi-scan scanning. Multi-scan requires a tracking license.
- * `sc_barcode_scanner_settings_set_multi_scan_enabled`
- * `sc_barcode_scanner_settings_get_multi_scan_enabled`
- * Python: added `BarcodeScannerSettings.multi_scan_enabled` property
-* Replaced Royal Mail symbology string identifier from `rm4scc` to `royal-mail-4state`.
-* Removed `sc_barcode_scanner_new_with_settings` API in favor of newly added `sc_barcode_scanner_new` that does not accept settings. New scanner instance must be configured by `sc_barcode_scanner_apply_settings` call.
-* Removed `sc_context_status_flag_get_message`.
-* Removed deprecated focus mode APIs:
- * Removed `sc_barcode_scanner_settings_get_focus_mode` and `sc_barcode_scanner_settings_set_focus_mode`. Set code direction hint to `SC_CODE_DIRECTION_NONE` for devices without auto-focus.
- * Python API: removed `focus_mode` property from `BarcodeScannerSettings` class
- * Removed `focusMode` field from barcode scanner settings JSON serialization
-* Removed deprecated constant `SC_SYMBOLOGY_RM4SCC` (use `SC_SYMBOLOGY_ROYAL_MAIL_4STATE` instead).
-* In the public API, changed all `_retain` and `_release` functions on opaque pointers to accept const pointers.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/linux/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/samples.md b/versioned_docs/version-8.1.1/sdks/linux/samples.md
deleted file mode 100644
index ddd2f3b8..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/samples.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-sidebar_position: 2
-toc_max_heading_level: 5
-sidebar_label: 'Samples'
-pagination_next: null
-framework: linux
-keywords:
- - linux
----
-
-# Sample Programs
-
-This page provides a list of sample programs that demonstrate how to use the Scandit Data Capture SDK for C / Linux.
-
-All sample applications are contained the samples directory of the SDK package.
-
-## Prerequisites
-
-Before you begin, make sure you have the following prerequisites in place for the relevant samples:
-
-### Scanner Samples
-
-Requires Video4Linux2 for camera access, install it with:
-
-```bash
-$ sudo apt-get install libv4l-dev`
-```
-
-### Image Processing Samples
-
-If using C, requires SDL2 for loading images, install it with:
-
-```bash
-$ sudo apt-get install libsdl2-dev libsdl2-image-dev
-```
-
-If using Python3, requires SDL2 for python3 also for image loading, install it with:
-
-```bash
-$ sudo apt-get install python3-sdl2
-```
-
-### Barcode Generator Sample
-
-Requires libpng for generating the output image, install it with:
-
-```bash
-$ sudo apt-get install libpng-dev
-```
-
-### License Key
-
-You must insert your license key to all sample source files before compiling and running them. Sign up for a [free trial](https://www.scandit.com/trial/) if you don't already have a license key.
-
-## Running the Samples
-
-To run the samples, follow these steps:
-
-1. Open a terminal and navigate to the SDK package directory.
-2. Compile the samples.
- ```bash
- $ cd samples
- $ make
- ```
-3. Execute the desired sample program, for example:
- ```bash
- $ ./CommandLineBarcodeScannerImageProcessingSample ean13-code.png
- ```
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/linux/scanning-composite-codes.mdx
deleted file mode 100644
index becf0653..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/single-scanning.md b/versioned_docs/version-8.1.1/sdks/linux/single-scanning.md
deleted file mode 100644
index 717aa802..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/single-scanning.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-toc_max_heading_level: 4
-pagination_prev: null
-displayed_sidebar: linuxSidebar
-framework: linux
-keywords:
- - linux
----
-
-# Single Scanning
-
-:::note
-SparkScan is not available for Linux.
-:::
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/linux/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/linux/sparkscan/advanced.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/sparkscan/advanced.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/linux/sparkscan/get-started.md
deleted file mode 100644
index aaaaf4a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/sparkscan/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/linux/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/linux/sparkscan/intro.md
deleted file mode 100644
index 88271c0e..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/sparkscan/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: linuxSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/linux/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/linux/symbology-properties.mdx
deleted file mode 100644
index c109057a..00000000
--- a/versioned_docs/version-8.1.1/sdks/linux/symbology-properties.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/add-sdk.md b/versioned_docs/version-8.1.1/sdks/net/android/add-sdk.md
deleted file mode 100644
index d03c8e8c..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/add-sdk.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-# Installation
-
-This guide shows you how to add the Scandit Data Capture SDK to current existing project.
-
-## Prerequisites
-
-- The latest stable version of [Visual Studio](https://visualstudio.microsoft.com/).
-- A [.NET SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0).
-- A .NET for Android project with target SDK version 23 (Android 6, Marshmallow) or higher.
-
- :::note
- ID Capture requires a minimum target SDK version of 24.
- :::
-
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-
-:::tip
-Android devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps-no-label-capture.mdx';
-
-
-
-## Get a License Key
-
-1. [Sign up](https://ssl.scandit.com/dashboard/sign-up?p=test) or [Sign in](https://ssl.scandit.com/dashboard/sign-in) to your Scandit account
-2. Create a project
-3. Create a license key
-
-If you have a paid subscription, please reach out to [Scandit Support](mailto:support@scandit.com) if you need a new license key.
-
-## Add the SDK
-
-The Scandit Data Capture SDK is distributed as [NuGet packages](https://www.nuget.org/packages?q=scandit).
-
-You will always need to add the `Scandit.DataCapture.Core` package, which contains the core functionality used by the other data capture packages. When developing MAUI applications you will also need to add the `Scandit.DataCapture.Core.Maui` package.
-
-In addition, depending on the data capture task, you will need a reference to:
-
-| Functionality | Description | Required Module(s) |
-| --- | --- | --- |
-| Barcode Capture | [ScanditBarcodeCapture API](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api.html) if you want to use barcode-related functionality, such as barcode capture or MatrixScan. | _com.scandit.datacapture:barcode_ |
-| Parser | [ScanditParser API](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/api.html) if you want to parse data strings, for instance, as found in barcodes, into a set of key-value mappings. | _com.scandit.datacapture:parser_ |
-| ID Capture | [ScanditIdCapture API](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api.html) if you want to scan personal identification documents, such as identity cards, passports or visas. | _com.scandit.datacapture:id_ |
-
-:::tip
-You can safely remove `Scandit.DataCapture.Barcode`, `Scandit.DataCapture.Parser`, or `Scandit.DataCapture.IdCapture` dependencies if you are not going to use their features.
-:::
-
-
-## Additional Information
-
-### Content Providers
-
-On Android, the Scandit SDK uses content providers to initialize the scanning capabilities properly. If your own content providers depend on the Scandit SDK, choose an **initOrder** lower than 10 to make sure the SDK is ready first.
-
-If not specified, **initOrder** is zero by default and you have nothing to worry about.
-
-Check [the official `` documentation](https://developer.android.com/guide/topics/manifest/provider-element).
-
-### Camera Permissions
-
-When using the Scandit Data Capture SDK you will want to set the camera as the frame source for various capture modes. On .NET for Android or MAUI, you have to request camera permissions in your own application before starting scanning. To see how you can achieve this, take a look at our [samples](https://github.com/Scandit/datacapture-dotnet-samples/tree/master).
-
-import OSSLicense from '../../../partials/_third-party-licenses-csharp.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/net/android/ai-powered-barcode-scanning.md
deleted file mode 100644
index a1f87099..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/net/android/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index f0d1206c..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following code shows how to enable scanning Code 128 codes for Barcode Capture:
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-settings.EnableSymbology(Symbology.Code128, true);
-```
-
-import CapturePresents from '../../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below lines of code show how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-SymbologySettings symbologySettings = settings.GetSymbologySettings(Symbology.Code128);
-HashSet activeSymbolCounts = new HashSet(new short[] { 6, 7, 8 });
-symbologySettings.ActiveSymbolCounts = activeSymbolCounts;
-```
-
-import CalculateSymbolCount from '../../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you also want to read bright-on-dark codes, color-inverted reading for that symbology must also be enabled (see [SymbologySettings.ColorInvertedEnabled](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsColorInvertedEnabled)):
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-SymbologySettings symbologySettings = settings.GetSymbologySettings(Symbology.Code128);
-symbologySettings.ColorInvertedEnabled = true;
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that will always be enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum). Enforcing an optional checksum will reduce false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes get discarded as the checksum doesn’t match. All available checksums per symbology can be found in [symbology properties](../symbology-properties.mdx).
-
-You can enforce a specific checksum by setting it through [SymbologySettings.Checksums](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-SymbologySettings symbologySettings = settings.GetSymbologySettings(Symbology.Code39);
-symbologySettings.Checksums = Checksum.Mod43;
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [SymbologySettings.SetExtensionEnabled()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-SymbologySettings symbologySettings = settings.GetSymbologySettings(Symbology.Code39);
-symbologySettings.SetExtensionEnabled("full_ascii", true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/barcode-capture/get-started.md
deleted file mode 100644
index 74b555ce..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/barcode-capture/get-started.md
+++ /dev/null
@@ -1,192 +0,0 @@
----
-sidebar_position: 2
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Create your barcode capture settings and enable the barcode symbologies you want to read
-- Create a new barcode capture mode instance and initialize it
-- Register a barcode capture listener to receive scan events
-- Process successful scans according to your application’s needs and decide whether more codes will be scanned or the scanning process should be stopped
-- Obtain a camera instance and set it as the frame source on the data capture context
-- Display the camera preview by creating a data capture view
-- If displaying a preview, optionally create a new overlay and add it to data capture view for better visual feedback
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Scanning Behavior
-
-Barcode scanning is orchestrated by the [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) [data capture mode](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-HashSet symbologies = new HashSet()
-{
-Symbology.Code128,
-Symbology.Code39,
-Symbology.Qr,
-Symbology.Ean8,
-Symbology.Upce,
-Symbology.Ean13Upca
-};
-settings.EnableSymbologies(symbologies);
-```
-
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.CodeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around 500 or even \-1 if you do not want codes to be scanned more than once.
-
-Next, create a [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance with the settings initialized in the previous step:
-
-```csharp
-barcodeCapture = BarcodeCapture.Create(context, settings);
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [IBarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [BarcodeCapture.AddListener()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [IBarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface. For example:
-
-```csharp
-public void OnBarcodeScanned(BarcodeCapture barcodeCapture, BarcodeCaptureSession session, IFrameData frameData)
-{
-IList barcodes = session?.NewlyRecognizedBarcode;
-// Do something with the barcodes
-}
-```
-
-Then add the listener:
-
-```csharp
-barcodeCapture.AddListener(this);
-```
-
-Alternatively to register [IBarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface it is possible to subscribe to corresponding events. For example:
-
-```csharp
-barcodeCapture.BarcodeScanned += (object sender, BarcodeCaptureEventArgs args) =>
-{
-IList barcodes = args.Session?.NewlyRecognizedBarcode;
-// Do something with the barcodes
-}
-```
-
-### Rejecting Barcodes
-
-To prevent scanning unwanted codes, you can reject them by adding the desired logic to the `didScan` method. This will prevent the barcode from being added to the session and will not trigger the `didUpdateSession` method.
-
-The example below will only scan barcodes beginning with the digits `09` and ignore all others, using a transparent brush to distinguish a rejected barcode from a recognized one:
-
-```csharp
-...
-if (barcode.Data?.StartsWith("09:") == false)
-{
- this.overlay.Brush = Brush.TransparentBrush;
- return;
-}
-...
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Permissions in Android](https://learn.microsoft.com/en-us/xamarin/android/app-fundamentals/permissions) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```csharp
-camera = Camera.GetDefaultCamera();
-camera?.ApplySettingsAsync(BarcodeCapture.RecommendedCameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.SetFrameSourceAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```csharp
-context.SetFrameSourceAsync(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [IFrameSource.SwitchToDesiredStateAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```csharp
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```csharp
-DataCaptureView dataCaptureView = DataCaptureView.Create(this, dataCaptureContext);
-SetContentView(dataCaptureView);
-```
-
-Alternatively you can use a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) from XAML in your MAUI application. For example:
-
-```xml
-
-
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MainPage : ContentPage
-{
-public MainPage()
-{
-InitializeComponent();
-
-// Initialization of DataCaptureView happens on handler changed event.
-dataCaptureView.HandlerChanged += DataCaptureViewHandlerChanged;
-}
-
-private void DataCaptureViewHandlerChanged(object? sender, EventArgs e)
-{
-// Your dataCaptureView configuration goes here, e.g. add overlay
-}
-}
-```
-
-For MAUI development add [Scandit.DataCapture.Core.Maui](https://www.nuget.org/packages/Scandit.DataCapture.Core.Maui) NuGet package into your project.
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```csharp
-BarcodeCaptureOverlay overlay = BarcodeCaptureOverlay.Create(barcodeCapture, dataCaptureView);
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [BarcodeCapture.Enabled](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to _false_.
-
-The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/net/android/barcode-generator.md
deleted file mode 100644
index cab908d5..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/barcode-generator.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: netAndroidSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/barcode-selection/get-started.md
deleted file mode 100644
index 96c42a1b..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/barcode-selection/get-started.md
+++ /dev/null
@@ -1,175 +0,0 @@
----
-sidebar_position: 2
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/net/android/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-In this guide you will learn step-by-step how to add Barcode Selection to your application.
-
-The general steps are:
-
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode selection settings](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and choose the right configuration.
-- Create a new [barcode selection mode](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance and initialize it with the settings created above.
-- Register a [barcode selection listener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-selection-basic-overlay.html#class-scandit.datacapture.barcode.selection.ui.BarcodeSelectionBasicOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Selection Behavior
-
-_Symbologies_
-
-Barcode selection is orchestrated by the [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) [data capture mode](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). It is configured through [BarcodeSelectionSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) that will get informed whenever new codes have been selected.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```csharp
-BarcodeSelectionSettings settings = BarcodeSelectionSettings.Create();
-HashSet symbologies = new HashSet()
- {
- Symbology.Qr,
- Symbology.Ean8,
- Symbology.Upce,
- Symbology.Ean13Upca
- };
- settings.EnableSymbologies(symbologies);
-```
-
-_Selection Types_
-
-The behavior of Barcode Selection can be changed by using a different [selection type](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-type.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionType). This defines the method used by [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) to select codes. Currently there are two types.
-
-If you want the user to select barcodes with a tap, then use [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection). This selection type can automatically freeze the camera preview to make the selection easier. You can configure the freezing behavior via [BarcodeSelectionTapSelection.FreezeBehavior](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.FreezeBehavior). With [BarcodeSelectionTapSelection.TapBehavior](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.TapBehavior) you can decide if a second tap on a barcode means that the barcode is unselected or if it is selected another time (increasing the counter).
-
-:::note
-Using [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection) requires the MatrixScan add-on.
-:::
-
-If you want the selection to happen automatically based on where the user points the camera, then use [BarcodeSelectionAimerSelection](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-aimer-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAimerSelection). It is possible to choose between two different [selection strategies](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-strategy.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionStrategy). Use [BarcodeSelectionAutoSelectionStrategy](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAutoSelectionStrategy) if you want the barcodes to be selected automatically when aiming at them as soon as the intention is understood by our internal algorithms. Use [BarcodeSelectionManualSelectionStrategy](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionManualSelectionStrategy) if you want the barcodes to be selected when aiming at them and tapping anywhere on the screen.
-
-_Single Barcode Auto Detection_
-
-If you want to automatically select a barcode when it is the only one on screen, turn on [BarcodeSelectionSettings.SingleBarcodeAutoDetection](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-settings.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionSettings.SingleBarcodeAutoDetection).
-
-_Creating the mode_
-
-Next, create a [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance with the settings initialized in the previous step:
-
-```csharp
-barcodeSelection = BarcodeSelection.Create(context, settings);
-```
-
-## Register the Barcode Selection Listener
-
-To get informed whenever a new code has been recognized, add a [IBarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) through [BarcodeSelection.AddListener()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection.html#method-scandit.datacapture.barcode.selection.BarcodeSelection.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [IBarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) interface. For example:
-
-```csharp
-public class MyBarcodeSelectionListener : Java.Lang.Object, IBarcodeSelectionListener
-{
-public void OnObservationStarted(BarcodeSelection barcodeSelection)
-{
-// Called when Barcode Selection is started.
-// We don't use this callback in this guide.
-}
-
-public void OnObservationStopped(BarcodeSelection barcodeSelection)
-{
-// Called when Barcode Selection is stopped.
-// We don't use this callback in this guide.
-}
-
-public void OnSessionUpdated(
-BarcodeSelection barcodeSelection,
-BarcodeSelectionSession session,
-IFrameData frameData)
-{
-// Called every new frame.
-// We don't use this callback in this guide.
-}
-
-public void OnSelectionUpdated(
-BarcodeSelection barcodeSelection,
-BarcodeSelectionSession session,
-IFrameData frameData)
-{
-IList newlySelectedBarcodes = session.NewlySelectedBarcodes;
-IList selectedBarcodes = session.SelectedBarcodes;
-IList newlyUnselectedBarcodes = session.NewlyUnselectedBarcodes;
-// Do something with the retrieved barcodes.
-}
-}
-```
-
-Then add the listener:
-
-```csharp
-barcodeSelection.AddListener(new MyBarcodeSelectionListener());
-```
-
-Alternatively to register [IBarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) interface it is possible to subscribe to corresponding events. For example:
-
-```csharp
-barcodeSelection.SelectionUpdated += (object sender, BarcodeSelectionEventArgs args) =>
-{
-IList newlySelectedBarcodes = args.Session.NewlySelectedBarcodes;
-IList selectedBarcodes = args.Session.SelectedBarcodes;
-IList newlyUnselectedBarcodes = args.Session.NewlyUnselectedBarcodes;
-// Do something with the retrieved barcodes.
-}
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Permissions in Android](https://learn.microsoft.com/en-us/xamarin/android/app-fundamentals/permissions) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```csharp
-var cameraSettings = BarcodeSelection.RecommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-camera = Camera.GetDefaultCamera();
-camera?.ApplySettingsAsync(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.SetFrameSourceAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```csharp
-context.SetFrameSourceAsync(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [IFrameSource.SwitchToDesiredStateAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```csharp
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-
-
-## Disabling Barcode Selection
-
-To disable barcode selection, for instance when the selection is complete, set [BarcodeSelection.Enabled](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelection.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/barcode-selection/intro.md
deleted file mode 100644
index 73fc3d91..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/barcode-selection/intro.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# About Barcode Selection
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/net/android/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes.
-
-Barcode Selection provides two key capabilities:
-
-- **Aim to Select** allows users to select one code at a time. This is especially useful for one-handed operation.
-- **Tap to Select** is a quick way for users to select several codes from the same view. Selection is done by tapping on highlighted barcodes in the live camera preview or on a frozen screen.
-
-:::warning
-Barcode Selection does not support handling of duplicate codes. If a code appears twice in the visible preview both instances will be marked as selected even if only one of them was selected.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/net/android/barcode-symbologies.mdx
deleted file mode 100644
index 26d40506..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/net/android/batch-scanning.md
deleted file mode 100644
index f3635424..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/batch-scanning.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Batch Scanning
-
-import BatchScanning from '../../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/net/android/core-concepts.mdx
deleted file mode 100644
index 12fb11ef..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/net/android/extension-codes.mdx
deleted file mode 100644
index 487c03ad..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/net/android/features-by-framework.mdx
deleted file mode 100644
index b0bc01dd..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/net/android/id-capture/advanced.md
deleted file mode 100644
index 2625f9f7..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/id-capture/advanced.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-sidebar_position: 4
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/net/android/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-```csharp
-// Default value:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_ONLY);
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_AND_IMAGES);
-
-// Only images are anonymized:
-settings.setAnyonymizationMode(IdAnonymizationMode.IMAGES_ONLY);
-
-// No anonymization:
-settings.setAnyonymizationMode(IdAnonymizationMode.NONE);
-```
-
-## Document Capture Zones
-
-By default, a new instance of [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) creates a single-sided scanner type with no accepted or rejected documents.
-
-To change this, use the `scannerType` method to set the scanner type to either [SingleSideScanner](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-scanner.html#single-side-scanner) or [FullDocumentScanner](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-scanner.html#full-document-scanner).
-
-
-The `FullDocumentScanner` extracts all document information by default. If using the `SingleSideScanner`, you can specify the document zones to extract:
-
-```csharp
-// To extract data from barcodes on IDs
-SingleSideScanner.barcode(true);
-// To extract data from the visual inspection zone (VIZ) on IDs
-SingleSideScanner.visualInspectionZone(true);
-// To extract data from the machine-readable zone (MRZ) on IDs
-SingleSideScanner.machineReadableZone(true);
-```
-
-## Configure Accepted and Rejected Documents
-
-To configure the documents that should be accepted and/or rejected, use the `acceptedDocuments` and `rejectedDocuments` methods in `IdCaptureSettings`.
-
-These methods are used in conjunction with the [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) and [IdCaptureRegion](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-region.html#enum-scandit.datacapture.id.IdCaptureRegion) enums to enable highly flexible document filtering as may be desired in your application.
-
-For example, to accept only US Driver Licenses:
-
-```csharp
-settings.AcceptedDocuments = IdDocumentType.DriverLicense | IdDocumentType.Region.US;
-```
-
-Or to accept all Passports *except* those from the US:
-
-```csharp
-settings.AcceptedDocuments = IdDocumentType.Passport;
-settings.RejectedDocuments = IdDocumentType.Region.US;
-```
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `CapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `CapturedId` object for a US Driver License will contain different fields than a `CapturedId` object for a Passport.
-
-For a rejected document, a [RejectionReason](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed automatically using the following settings:
-
-* [IdCaptureSettings.rejectForgedAamvaBarcodes](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectForgedAamvaBarcodes): Automatically rejects documents whose AAMVA barcode fails authenticity validation.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/id-capture/get-started.md
deleted file mode 100644
index b193d848..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/id-capture/get-started.md
+++ /dev/null
@@ -1,220 +0,0 @@
----
-sidebar_position: 2
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-This page will guide you through the process of adding ID Capture to your .NET application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Accessing a Camera
-- Configuring the Capture Settings
-- Implementing a Listener to Receive Scan Results
-- Setting up the Capture View and Overlay
-- Starting the Capture Process
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](/sdks/net/android/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import IdModuleOverview from '../../../../partials/get-started/_id-module-overview-no-eu-dl.mdx';
-
-
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Add the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```csharp
-camera = Camera.GetDefaultCamera();
-
-if (camera != null)
-{
-// Use the settings recommended by id capture.
-camera.ApplySettingsAsync(IdCapture.RecommendedCameraSettings);
-context.SetFrameSourceAsync(camera);
-}
-```
-
-## Create ID Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type and the accepted and rejected documents.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) for all the available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-```csharp
-IdCaptureSettings settings = new IdCaptureSettings
-{
-AcceptedDocuments = IdDocumentType.Passport | IdDocumentType.DriverLicense,
-RejectedDocuments = IdDocumentType.IdCard,
-};
-```
-
-## Implement the Listener
-
-To receive scan results, implement [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener).
-
-Capture results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-For more specific information, use its non-null result properties (e.g. [CapturedId.barcode](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/captured-id.html#property-scandit.datacapture.id.CapturedId.Barcode)).
-
-```csharp
-public class MyListener : Java.Lang.Object, IIdCaptureListener
-{
-public void OnIdCaptured(IdCapture mode, IdCaptureSession session, IFrameData data)
-{
-CapturedId capturedId = session.NewlyCapturedId;
-
-// The recognized fields of the captured ID can vary based on the type.
-if (capturedId.CapturedResultType == CapturedResultType.MrzResult)
-{
-// Handle the information extracted.
-}
-else if (capturedId.CapturedResultType == CapturedResultType.VizResult)
-{
-// Handle the information extracted.
-}
-else if (capturedId.CapturedResultType == CapturedResultType.BarcodeResult)
-{
-// Handle the information extracted.
-}
-}
-
-public void OnErrorEncountered(IdCapture mode, Throwable error, IdCaptureSession session, IFrameData data)
-{
-// Implement to handle an error encountered during the capture process.
-}
-
-public void OnObservationStarted(IdCapture mode)
-{ }
-
-public void OnObservationStopped(IdCapture mode)
-{ }
-}
-```
-
-Alternatively to register [IIdCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener) interface it is possible to subscribe to corresponding events. For example:
-
-```csharp
-idCapture.IdCaptured += (object sender, IdCaptureEventArgs args) =>
-{
-CapturedId capturedId = args.Session.NewlyCapturedId;
-
-// The recognized fields of the captured ID can vary based on the type.
-if (capturedId.CapturedResultType == CapturedResultType.MrzResult)
-{
-// Handle the information extracted.
-}
-else if (capturedId.CapturedResultType == CapturedResultType.VizResult)
-{
-// Handle the information extracted.
-}
-else if (capturedId.CapturedResultType == CapturedResultType.BarcodeResult)
-{
-// Handle the information extracted.
-}
-};
-```
-
-Create a new ID Capture mode with the chosen settings. Then register the listener:
-
-```csharp
-idCapture = IdCapture.Create(context, settings);
-idCapture.AddListener(new MyListener())
-```
-
-## Set up Capture View and Overlay
-
-When using the built-in camera as [frameSource](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#interface-scandit.datacapture.core.IFrameSource), you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```csharp
-DataCaptureView dataCaptureView = DataCaptureView.Create(this, dataCaptureContext);
-SetContentView(dataCaptureView);
-```
-
-Alternatively you can use a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) from XAML in your MAUI application. For example:
-
-```xml
-
-
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MainPage : ContentPage
-{
-public MainPage()
-{
-InitializeComponent();
-
-// Initialization of DataCaptureView happens on handler changed event.
-dataCaptureView.HandlerChanged += DataCaptureViewHandlerChanged;
-}
-
-private void DataCaptureViewHandlerChanged(object? sender, EventArgs e)
-{
-// Your dataCaptureView configuration goes here, e.g. add overlay
-}
-}
-```
-
-For MAUI development add the [Scandit.DataCapture.Core.Maui](https://www.nuget.org/packages/Scandit.DataCapture.Core.Maui) NuGet package into your project.
-
-Then create an instance of [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) attached to the view:
-
-```csharp
-overlay = IdCaptureOverlay.Create(idCapture, dataCaptureView);
-```
-
-The overlay chooses the displayed UI automatically, based on the selected [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings).
-
-If you prefer to show a different UI or to temporarily hide it, set the appropriate [IdCaptureOverlay.idLayout](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/ui/id-capture-overlay.html#property-scandit.datacapture.id.ui.IdCaptureOverlay.IdLayout).
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-```csharp
-camera.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-And this is it. You can now scan documents.
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/id-capture/intro.md
deleted file mode 100644
index 637efa33..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/id-capture/intro.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-import AboutIdCapture from '../../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/net/android/id-capture/supported-documents.md
deleted file mode 100644
index e44f9e10..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/id-capture/supported-documents.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/net/android/label-capture/advanced.md
deleted file mode 100644
index 1a5828e8..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/label-capture/advanced.md
+++ /dev/null
@@ -1,265 +0,0 @@
----
-description: "Guide to customizing overlays in the Scandit .NET Android Label Capture SDK."
-sidebar_position: 3
-pagination_next: null
-framework: net-android
-keywords:
- - net-android
----
-
-# Advanced Configurations
-
-## Customization of the Overlays
-
-### Basic Overlay
-
-To customize the appearance of an overlay you can implement a [ILabelCaptureBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/ui/label-capture-basic-overlay-listener.html#interface-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener) and/or [ILabelCaptureAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/ui/label-capture-advanced-overlay-listener.html) interface, depending on the overlay(s) you are using.
-
-The method [BrushForLabel()](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForLabel) is called every time a label is captured, and [BrushForField()](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForField) is called for each of its fields to determine the brush for the label or field.
-
-```csharp
-public class BasicOverlayListener : Java.Lang.Object, ILabelCaptureBasicOverlayListener
-{
- private readonly Context context;
-
- public BasicOverlayListener(Context context)
- {
- this.context = context;
- }
-
- /*
- * Customize the appearance of the overlay for the individual fields.
- */
- public Brush? BrushForField(
- LabelCaptureBasicOverlay overlay,
- LabelField field,
- CapturedLabel label)
- {
- return field.Name switch
- {
- "" => new Brush(
- fillColor: new Color(context.GetColor(Resource.Color.barcode_highlight)),
- strokeColor: new Color(context.GetColor(Resource.Color.barcode_highlight)),
- strokeWidth: 1f
- ),
- "" => new Brush(
- fillColor: new Color(context.GetColor(Resource.Color.expiry_date_highlight)),
- strokeColor: new Color(context.GetColor(Resource.Color.expiry_date_highlight)),
- strokeWidth: 1f
- ),
- _ => null
- };
- }
-
- /*
- * Customize the appearance of the overlay for the full label.
- * In this example, we disable label overlays by returning null always.
- */
- public Brush? BrushForLabel(
- LabelCaptureBasicOverlay overlay,
- CapturedLabel label)
- {
- return null;
- }
-
- public void OnLabelTapped(
- LabelCaptureBasicOverlay overlay,
- CapturedLabel label)
- {
- /*
- * Handle the user tap gesture on the label.
- */
- }
-}
-
-// Set the listener on the overlay
-overlay.Listener = new BasicOverlayListener(context);
-```
-
-:::tip
-You can also use `LabelCaptureBasicOverlay.LabelBrush`, `LabelCaptureBasicOverlay.CapturedFieldBrush`, and `LabelCaptureBasicOverlay.PredictedFieldBrush` properties to configure the overlay if you don't need to customize the appearance based on the name or content of the fields.
-:::
-
-### Advanced Overlay
-
-For more advanced use cases, such as adding custom views or implementing Augmented Reality (AR) features, you can use the `LabelCaptureAdvancedOverlay`. The example below creates an advanced overlay, configuring it to display a styled warning message below expiry date fields when they're close to expiring, while ignoring other fields.
-
-```csharp
-// Create an advanced overlay that allows for custom views to be added over detected label fields
-// This is the key component for implementing Augmented Reality features
-var advancedOverlay = LabelCaptureAdvancedOverlay.Create(labelCapture);
-
-// Add the overlay to the data capture view
-dataCaptureView.AddOverlay(advancedOverlay);
-
-// Configure the advanced overlay with a listener that handles AR content creation and positioning
-advancedOverlay.Listener = new AdvancedOverlayListener(this);
-
-public class AdvancedOverlayListener : Java.Lang.Object, ILabelCaptureAdvancedOverlayListener
-{
- private readonly Context context;
-
- public AdvancedOverlayListener(Context context)
- {
- this.context = context;
- }
-
- // This method is called when a label is detected - we return null since we're only adding AR elements to specific fields, not the entire label
- public View? ViewForCapturedLabel(
- LabelCaptureAdvancedOverlay overlay,
- CapturedLabel capturedLabel)
- {
- return null;
- }
-
- // This defines where on the detected label the AR view would be anchored
- public Anchor AnchorForCapturedLabel(
- LabelCaptureAdvancedOverlay overlay,
- CapturedLabel capturedLabel)
- {
- return Anchor.Center;
- }
-
- // This defines the offset from the anchor point for the label's AR view
- public PointWithUnit OffsetForCapturedLabel(
- LabelCaptureAdvancedOverlay overlay,
- CapturedLabel capturedLabel,
- View view)
- {
- return new PointWithUnit(0f, 0f, MeasureUnit.Pixel);
- }
-
- // This method is called when a field is detected in a label
- public View? ViewForCapturedLabelField(
- LabelCaptureAdvancedOverlay overlay,
- LabelField labelField)
- {
- // We only want to create AR elements for expiry date fields that are text-based
- if (labelField.Name.ToLower().Contains("expiry") && labelField.Type == LabelFieldType.Text)
- {
- //
- // data extraction from expiry date field and days until expiry date calculation
- //
-
- // Check if scanned expiry date is too close to actual date
- var daysUntilExpiry = CalculateDaysUntilExpiry(labelField.Text);
- var dayLimit = 3;
-
- if (daysUntilExpiry < dayLimit)
- {
- // Create and configure the AR element - a TextView with appropriate styling
- // This view will appear as an overlay on the camera feed
- var textView = new TextView(context)
- {
- Text = "Item expires soon!",
- TextSize = 14f
- };
- textView.SetTextColor(Android.Graphics.Color.White);
- textView.SetBackgroundColor(Android.Graphics.Color.Red);
- textView.SetPadding(16, 8, 16, 8);
-
- // Add an icon to the left of the text for visual guidance
- // This enhances the AR experience by providing clear visual cues
- var drawable = ContextCompat.GetDrawable(context, Resource.Drawable.ic_warning);
- if (drawable != null)
- {
- drawable.SetBounds(0, 0, drawable.IntrinsicWidth, drawable.IntrinsicHeight);
- textView.SetCompoundDrawables(drawable, null, null, null);
- }
- textView.CompoundDrawablePadding = 16; // Add some padding between icon and text
-
- return textView;
- }
- }
- // Return null for any fields that aren't expiry dates, which means no AR overlay
- return null;
- }
-
- // This defines where on the detected field the AR view should be anchored
- // BottomCenter places it right below the expiry date text for better visibility
- public Anchor AnchorForCapturedLabelField(
- LabelCaptureAdvancedOverlay overlay,
- LabelField labelField)
- {
- return Anchor.BottomCenter;
- }
-
- // This defines the offset from the anchor point
- public PointWithUnit OffsetForCapturedLabelField(
- LabelCaptureAdvancedOverlay overlay,
- LabelField labelField,
- View view)
- {
- return new PointWithUnit(0f, 22f, MeasureUnit.Dip);
- }
-
- private int CalculateDaysUntilExpiry(string? expiryDateText)
- {
- // Parse the expiry date and calculate days remaining
- // Implementation depends on your date format
- return 0; // placeholder
- }
-}
-```
-
-## Validation Flow
-
-Implementing a validation flow in your Smart Label Capture application differs from the [Get Started](/sdks/net/android/label-capture/get-started.md) steps outlined earlier as follows:
-
-### Visualize the Scan Process
-
-Validation flow uses a different overlay, the [LabelCaptureValidationFlowOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/ui/label-capture-validation-flow-overlay.html). This overlay provides a user interface that guides users through the label capture process, including validation steps.
-
-```csharp
-// Create the validation flow overlay with the label capture mode and data capture view
-var validationFlowOverlay = LabelCaptureValidationFlowOverlay.Create(labelCapture, dataCaptureView);
-
-// Set the listener to receive validation events
-validationFlowOverlay.Listener = new ValidationFlowListener();
-```
-
-### Adjust the Hint Messages
-
-```csharp
-// Configure the validation flow with custom settings
-var validationSettings = LabelCaptureValidationFlowSettings.Create();
-validationSettings.MissingFieldsHintText = "Please add this field";
-validationSettings.StandbyHintText = "No label detected, camera paused";
-validationSettings.ValidationHintText = "fields captured"; // X/Y (X fields out of total Y) is shown in front of this string
-validationSettings.ValidationErrorText = "Input not valid";
-validationSettings.RequiredFieldErrorText = "This field is required";
-validationSettings.ManualInputButtonText = "Add info manually";
-
-// Apply the settings to the overlay
-validationFlowOverlay.ApplySettings(validationSettings);
-```
-
-### Define a Listener
-
-To handle validation events, implement the [ILabelCaptureValidationFlowListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/ui/label-capture-validation-flow-listener.html) interface.
-
-```csharp
-public class ValidationFlowListener : Java.Lang.Object, ILabelCaptureValidationFlowListener
-{
- // This is called by the validation flow overlay when a label has been fully captured and validated
- public void OnValidationFlowLabelCaptured(IList fields)
- {
- string? barcodeData = null;
- string? expiryDate = null;
-
- foreach (var field in fields)
- {
- if (field.Name == "")
- {
- barcodeData = field.Barcode?.Data;
- }
- else if (field.Name == "")
- {
- expiryDate = field.Text;
- }
- }
-
- // Process the captured and validated data
- }
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/label-capture/get-started.md
deleted file mode 100644
index 0ab6c572..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/label-capture/get-started.md
+++ /dev/null
@@ -1,264 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Smart Label Capture to your application. "
-
-sidebar_position: 2
-framework: net-android
-keywords:
- - net-android
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Smart Label Capture to your application.
-
-The general steps are:
-
-- Create a new Data Capture Context instance
-- Configure the LabelCapture mode
-- Define a listener to handle captured labels
-- Visualize the scan process
-- Start the camera
-- Provide feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/net/android/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import LabelCaptureModuleOverview from '../../../../partials/get-started/_smart-label-capture-module-overview-dotnet.mdx';
-
-
-
-## Create a Data Capture Context
-
-import DataCaptureContextDotNet from '../../../../partials/get-started/_create-data-capture-context-dotnet.mdx';
-
-
-
-## Configure the Label Capture Mode
-
-The main entry point for the Label Capture Mode is the [LabelCapture](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/label-capture.html#class-scandit.datacapture.label.LabelCapture) object.
-
-It is configured through [LabelCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/label-capture-settings.html#class-scandit.datacapture.label.LabelCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) that get informed whenever a new frame has been processed.
-
-:::tip
-You can use Label Definitions provided in Smart Label Capture to set pre-built label types or define your label using pre-built fields. For more information, see the [Label Definitions](label-definitions.md) section.
-:::
-
-```csharp
-using Scandit.DataCapture.Label.Capture;
-using Scandit.DataCapture.Label.Data;
-using Scandit.DataCapture.Barcode.Data;
-
-// Build field definitions
-var fields = new List();
-
-// Add a custom barcode field with the expected symbologies
-var customBarcode = CustomBarcode.Builder()
- .SetSymbologies(new List
- {
- Symbology.Ean13Upca,
- Symbology.Gs1DatabarExpanded,
- Symbology.Code128
- })
- .Build("");
-fields.Add(customBarcode);
-
-// Add an expiry date text field
-var expiryDateText = ExpiryDateText.Builder()
- .SetLabelDateFormat(new LabelDateFormat(LabelDateComponentFormat.MDY, acceptPartialDates: false))
- .Build("");
-fields.Add(expiryDateText);
-
-// Create the label definition with the fields
-var labelDefinition = LabelDefinition.Create("", fields);
-
-// Create the settings with the label definition
-var settings = LabelCaptureSettings.Create(new List { labelDefinition });
-
-// Create the label capture mode with the settings and data capture context
-var labelCapture = LabelCapture.Create(dataCaptureContext, settings);
-```
-
-## Define a Listener to Handle Captured Labels
-
-To get informed whenever a new label has been recognized, add a [ILabelCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) through [LabelCapture.AddListener()](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/label-capture.html#method-scandit.datacapture.label.LabelCapture.AddListener) and implement the listener methods to suit your application's needs.
-
-First implement the `ILabelCaptureListener` interface. Here is an example of how to implement a listener that processes the captured labels based on the label capture settings defined above:
-
-```csharp
-public class LabelCaptureRepository : Java.Lang.Object, ILabelCaptureListener
-{
- public void OnSessionUpdated(LabelCapture labelCapture, LabelCaptureSession session, IFrameData frameData)
- {
- /*
- * The session update callback is called for every processed frame.
- * Check if the session contains any captured labels;
- * if not, continue capturing.
- */
- var labels = session.CapturedLabels;
-
- if (labels.Count > 0)
- {
- var label = labels[0];
-
- /*
- * Given the label capture settings defined above,
- * the barcode field would always be present.
- */
- var barcodeData = label.Fields
- .FirstOrDefault(field => field.Name == "")
- ?.Barcode?.Data;
-
- /*
- * The expiry date field is optional.
- * Check for null in your result handling.
- */
- var expiryDate = label.Fields
- .FirstOrDefault(field => field.Name == "")
- ?.Text;
-
- /*
- * Disable the label capture mode after a label has been captured
- * to prevent it from capturing the same label multiple times.
- */
- labelCapture.Enabled = false;
-
- /*
- * Consider handling the results on a background thread to avoid
- * blocking the main thread when processing data.
- */
- Task.Run(() =>
- {
- HandleResults(barcodeData, expiryDate);
- });
- }
- }
-
- public void OnObservationStarted(LabelCapture labelCapture)
- {
- // Called when the listener is added to LabelCapture
- }
-
- public void OnObservationStopped(LabelCapture labelCapture)
- {
- // Called when the listener is removed from LabelCapture
- }
-
- private void HandleResults(string? barcodeData, string? expiryDate)
- {
- // Process the captured data
- }
-}
-```
-
-Then add the listener to the label capture instance:
-
-```csharp
-var listener = new LabelCaptureRepository();
-labelCapture.AddListener(listener);
-```
-
-## Visualize the Scan Process
-
-The capture process can be visualized by adding a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy. The view controls what UI elements such as the viewfinder, as well as the overlays that are shown to visualize captured labels.
-
-To visualize the results of Label Capture you can use two overlays:
-
-- [LabelCaptureBasicOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/ui/label-capture-basic-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureBasicOverlay)
-- [LabelCaptureAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/ui/label-capture-advanced-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureAdvancedOverlay)
-
-:::tip
-The overlays can be used independently of each other, but you can also use both at the same time as each can serve to extend the functionality of the other.
-:::
-
-Here is an example of how to add a `LabelCaptureBasicOverlay` to the `DataCaptureView`:
-
-```csharp
-/*
- * Create the data capture view and attach it to the data capture context created earlier.
- */
-var dataCaptureView = DataCaptureView.Create(this, dataCaptureContext);
-
-/*
- * Add the data capture view to your view hierarchy
- */
-var container = /* get your containing view here, e.g. FindViewById */;
-container.AddView(
- dataCaptureView,
- new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent)
-);
-
-/*
- * Create the overlay with the label capture mode.
- */
-var overlay = LabelCaptureBasicOverlay.Create(labelCapture);
-
-/*
- * Add the overlay to the data capture view.
- */
-dataCaptureView.AddOverlay(overlay);
-
-/*
- * Optionally, set a viewfinder to guide the user.
- */
-overlay.Viewfinder = new RectangularViewfinder(RectangularViewfinderStyle.Square);
-```
-
-:::tip
-See the [Advanced Configurations](advanced.md) section for more information about how to customize the appearance of the overlays and how to use the advanced overlay to display arbitrary Android views such as text views, icons or images.
-:::
-
-## Start the Camera
-
-Next, you need to create a new instance of the [Camera](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/camera.html#class-scandit.datacapture.core.Camera) class to indicate the camera to stream previews and to capture images.
-
-When initializing the camera, you can pass the recommended camera settings for Label Capture using the [LabelCapture.RecommendedCameraSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/label-capture.html#property-scandit.datacapture.label.LabelCapture.RecommendedCameraSettings) static property.
-
-```csharp
-var cameraSettings = LabelCapture.RecommendedCameraSettings;
-var camera = Camera.GetDefaultCamera(cameraSettings);
-
-if (camera == null)
-{
- throw new InvalidOperationException("Failed to init camera!");
-}
-
-dataCaptureContext.SetFrameSourceAsync(camera);
-```
-
-Once the Camera, DataCaptureContext, DataCaptureView and LabelCapture are initialized, you can switch on the camera to start capturing labels.
-Typically, this is done on resuming the view and when the user granted permission to use the camera, or once the user pressed continue scanning after handling a previous scan.
-
-```csharp
-camera.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-## Provide Feedback
-
-Smart Label Capture provides customizable feedback, emitted automatically when a label is recognized and successfully processed, configurable via [`LabelCapture.Feedback`](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/label-capture.html#property-scandit.datacapture.label.LabelCapture.Feedback).
-
-You can use the default feedback, or configure your own sound or vibration.
-
-:::tip
-If you already have a [Feedback](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/feedback.html#class-scandit.datacapture.core.Feedback) instance implemented in your application, remove it to avoid double feedback.
-:::
-
-```csharp
-// Use the default feedback (vibration and beep sound)
-labelCapture.Feedback = LabelCaptureFeedback.Default;
-
-// Or customize the feedback
-var customFeedback = LabelCaptureFeedback.Default;
-customFeedback.Success = new Feedback(Vibration.DefaultVibration, sound: null);
-labelCapture.Feedback = customFeedback;
-```
-
-:::note
-Audio feedback is only played if the device is not muted.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/label-capture/intro.md
deleted file mode 100644
index 42bfde72..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/label-capture/intro.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-description: "import AboutLabelCapture from '../../../../partials/intro/_about-smart-label-capture.mdx'; "
-
-sidebar_label: About Smart Label Capture
-title: About Smart Label Capture
-toc_max_heading_level: 4
-pagination_prev: null
-framework: net-android
-keywords:
- - net-android
----
-
-import AboutLabelCapture from '../../../../partials/intro/_about-smart-label-capture.mdx';
-
-
-
-import ValidationFlow from '../../../../partials/intro/_about_validation_flow.mdx';
-
-
-
-See [here](./advanced.md#validation-flow) for more details.
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/label-capture/label-definitions.md b/versioned_docs/version-8.1.1/sdks/net/android/label-capture/label-definitions.md
deleted file mode 100644
index ffa64539..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/label-capture/label-definitions.md
+++ /dev/null
@@ -1,141 +0,0 @@
----
-description: "A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans. "
-
-framework: net-android
-keywords:
- - net-android
-toc_max_heading_level: 4
----
-
-# Label Definitions
-
-A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans.
-
-Smart Label Capture provides a [Label Definition](https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api/label-definition.html#label-definition) API, enabling you to configure and extract structured data from predefined and custom labels. This feature provides a flexible way to recognize and decode fields within a specific label layout such as price tags, VIN labels, or packaging stickers without needing to write custom code for each label type.
-
-## Custom Labels
-
-If Smart Label Capture's pre-built options don't fit your needs, define a custom label instead. Custom labels can combine your own fields with any of the available pre-built ones.
-
-:::tip
-The following characters are recognized: `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()-./:,$¶"`.
-:::
-
-### Custom Fields
-
-There are two types of custom fields you can define:
-
-
-
-The following methods are available to configure custom fields:
-
-| Method | Optional | Description |
-|--------|----------|-------------|
-| `ValueRegexes` | No | The regex patterns that identify the target string in the scanned content. |
-| `AnchorRegexes` | Yes | Used to specify keywords or phrases that help identify the context of the field. This is particularly useful when the label contains multiple fields that could match the same pattern (e.g., when both packaging and expiry dates are present). |
-| `Symbologies` | No | The barcode symbologies to match for barcode fields. This is important for ensuring that the field only captures data from specific barcode types, enhancing accuracy and relevance. |
-| `IsOptional` | Yes | Whether the field is optional or mandatory. This is helpful when certain fields may not be present on every scan. |
-
-#### Example: Fish Shipping Box
-
-This example shows how to create a custom label definition for a fish shipping box, which includes fields for barcode and batch number.
-
-
-
-```csharp
-// Build field definitions
-var fields = new List();
-
-// Add a custom barcode field with the expected symbology
-var barcodeField = CustomBarcode.Builder()
- .SetSymbology(Symbology.Code128)
- .Build("barcode-field");
-fields.Add(barcodeField);
-
-// Add a custom text field for the batch number
-var batchNumberField = CustomText.Builder()
- .SetAnchorRegex("Batch")
- .SetValueRegex("FZ\\d{5,10}")
- .IsOptional(true)
- .Build("batch-number-field");
-fields.Add(batchNumberField);
-
-// Create the label definition with the fields
-var labelDefinition = LabelDefinition.Create("shipping-label", fields);
-
-// Create the settings with the label definition
-var settings = LabelCaptureSettings.Create(new List { labelDefinition });
-```
-
-### Pre-built Fields
-
-You can also build your label using pre-built fields. These common fields speed up integration because their `ValueRegexes`, `AnchorRegexes`, and `Symbologies` are already predefined.
-
-Customization of pre-built fields is done via the `ValueRegexes`, `AnchorRegexes`, and `IsOptional` methods, which allow you to specify the expected format of the field data.
-
-:::tip
-All pre-built fields come with default `ValueRegexes` and `AnchorRegexes` that are suitable for most use cases. **Using either method is optional and will override the defaults**.
-
-The `ResetAnchorRegexes` method can be used to remove the default `AnchorRegexes`, allowing you to rely solely on the `ValueRegexes` for detection.
-:::
-
-import FeatureList from '@site/src/components/FeatureList';
-
-#### Barcode Fields
-
-
-
-#### Price and Weight Fields
-
-
-
-#### Date and Custom Text Fields
-
-
-
-#### Example: Hard disk drive label
-
-This example demonstrates how to configure a label definition for a hard disk drive (HDD) label, which typically includes common fields like serial number and part number.
-
-
-
-```csharp
-// Build field definitions using pre-built barcode fields
-var fields = new List();
-
-// Add a serial number barcode field
-var serialNumberField = SerialNumberBarcode.Builder()
- .Build("serial-number");
-fields.Add(serialNumberField);
-
-// Add a part number barcode field
-var partNumberField = PartNumberBarcode.Builder()
- .Build("part-number");
-fields.Add(partNumberField);
-
-// Create the label definition with the fields
-var labelDefinition = LabelDefinition.Create("hdd-label", fields);
-
-// Create the settings with the label definition
-var settings = LabelCaptureSettings.Create(new List { labelDefinition });
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/label-scanning.md b/versioned_docs/version-8.1.1/sdks/net/android/label-scanning.md
deleted file mode 100644
index 1c03fefa..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/label-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Label scanning enables you to capture and extract data from labels containing multiple barcodes and printed text, making it ideal for retail, logistics, and inventory management applications."
-toc_max_heading_level: 4
-pagination_prev: null
-framework: net-android
-keywords:
- - net-android
----
-
-# Label Scanning
-
-import LabelScanning from '../../../partials/_label-scanning.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-ar/get-started.md
deleted file mode 100644
index 9b375e35..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,146 +0,0 @@
----
-sidebar_position: 2
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements:
-
-- Barcode AR: The data capture mode that is used for scan and check functionality.
-- A Barcode AR View: The pre-built UI elements used to highlight items to be checked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode AR Mode
-- Setup the Barcode AR View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/net/android/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode AR Mode
-
-The main entry point for the Barcode AR Mode is the `BarcodeAr` object. You can configure the supported Symbologies through its [`BarcodeArSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-ar-settings.html).
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```csharp
-BarcodeArSettings settings = new BarcodeArSettings();
-settings.SetSymbologyEnabled(Symbology.EAN13_UPCA, true);
-```
-
-Then create the mode with the previously created settings:
-
-```csharp
-BarcodeAr mode = new BarcodeAr(dataCaptureContext, settings);
-```
-
-## Setup the `BarcodeArView`
-
-MatrixScan AR’s built-in AR user interface includes buttons and overlays that guide the user through the scan and check process. By adding a [`BarcodeArView`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.check.ui.BarcodeArView), the scanning interface is added automatically to your application.
-
-The `BarcodeArView` is where you provide the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider) to supply the highlight and annotation information for the barcodes to be checked. If *null*, a default highlight is used and no annotations are provided.
-
-The `BarcodeArView` appearance can be customized through [`BarcodeArViewSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-ar-view-settings.html#class-scandit.datacapture.barcode.check.ui.BarcodeArViewSettings), properties on the`BarcodeArView`, and the corresponding settings for your desired highlights and/or annotations, to match your application’s look and feel. The following settings can be customized:
-
-* Audio and haptic feedback
-* Camera position
-* Torch button visibility and its position
-* Switch camera button visibility and its position
-* Zoom control visibility and its position
-* The size, colors, and styles of the highlights and annotations
-
-```csharp
-BarcodeArViewSettings viewSettings = new BarcodeArViewSettings();
-viewSettings.HapticEnabled(false);
-viewSettings.SoundEnabled(false);
-viewSettings.DefaultCameraPosition(CameraPosition.USER_FACING);
-```
-
-Next, create a `BarcodeArView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeArView` is automatically added to the provided parent view.
-
-```csharp
-BarcodeArView barcodeArView = BarcodeArView(parentView, barcodeAr, dataCaptureContext, viewSettings);
-barcodeArView.ShouldShowCameraSwitchControl(true);
-barcodeArView.ShouldShowTorchControl(true);
-barcodeArView.ShouldShowZoomControl(true);
-barcodeArView.CameraSwitchControlPosition(Anchor.TOP_RIGHT);
-barcodeArView.TorchControlPosition(Anchor.BOTTOM_RIGHT);
-barcodeArView.ZoomControlPosition(Anchor.TOP_LEFT);
-```
-
-Configure the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider).
-
-```csharp
-public class AnnotationProvider : BarcodeArAnnotationProvider
-{
- public void AnnotationForBarcode(Context context, Barcode barcode, ICallback callback)
- {
- var annotation = new BarcodeArStatusIconAnnotation(context, barcode);
- annotation.Text = "Example annotation";
- callback.OnData(annotation);
- }
-}
-
-public class HighlightProvider : BarcodeArHighlightProvider
-{
- public void HighlightForBarcode(Context context, Barcode barcode, ICallback callback)
- {
- callback.OnData(new BarcodeArRectangleHighlight(context, barcode));
- }
-}
-```
-
-And set them to the view:
-
-```csharp
-barcodeArView.HighlightProvider(new HighlightProvider());
-barcodeArView.AnnotationProvider(new AnnotationProvider());
-```
-
-## Register the Listener
-
-If you want a callback when a highlight is tapped, register a [BarcodeArViewUiListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-ar-view.html#interface-scandit.datacapture.barcode.check.ui.IBarcodeArViewUiListener).
-
-```csharp
-barcodeArView.SetUiListener(new BarcodeArViewUiListener());
-
-public class BarcodeArViewUiListener : BarcodeArViewUiListener
-{
- public void OnHighlightForBarcodeTapped(BarcodeAr barcodeAr, Barcode barcode, BarcodeArHighlight highlight, View highlightView)
- {
- // Handle tap
- }
-}
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling:
-
-```csharp
-barcodeArView.Start();
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-ar/intro.md
deleted file mode 100644
index a170e3b4..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-displayed_sidebar: netIosSidebar
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# About MatrixScan AR
-
-import AboutMatrixScanCheck from '../../../../partials/intro/_about-matrixscan-ar.mdx'
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/advanced.md
deleted file mode 100644
index 6fdf4e06..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,136 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Advanced Configurations
-
-MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs.
-
-## Scanning Against A List
-
-There is a function to set a list of expected barcodes if you are scanning against a manifest or item list. If this is used, a progress bar is added to the UI, so you can keep track of the process while scanning.
-
-When scanning against a list, the UI will also show red icons to mark scanned barcodes that aren’t present on the list.
-
-```csharp
-List targetBarcodes = new List();
-targetBarcodes.Add(TargetBarcode.Create("data", 1));
-BarcodeCountCaptureList captureList = BarcodeCountCaptureList.Create(this, targetBarcodes);
-barcodeCount.SetBarcodeCountCaptureList(captureList);
-```
-
-## Barcode Count Status
-
-This feature is used to provide users with more details regarding the items they’re scanning in order to aid effective handling. The icons (available as part of the SDK) appear as an AR overlay after tapping the “Status Mode” button and can be used to highlight the following:
-
-- Expired products
-- Items requiring quality inspection
-- Items that are low in stock
-- Wrong items
-- Fragile items
-
-## Clustering
-
-import Clustering from '../../../../partials/count/_clustering.mdx'
-
-
-
-## Strap Mode
-
-It can be difficult to reach the shutter button if the smart device is attached to the user’s wrist by a strap or similar. In this instance, you can enable a floating shutter button that can be positioned by the end user in a more ergonomically suitable position.
-
-```csharp
-barcodeCountView.ShouldShowFloatingShutterButton = true;
-```
-
-## Filtering
-
-If you have several types of barcodes on your label/package, you may want to scan only one of them.
-
-In this case, you can filter the others out. This can be done by symbology, symbol count, or setting a regex.
-
-For example, you might want to scan only Code 128 barcodes and no PDF417 ones.
-
-```csharp
-BarcodeCountSettings settings = new BarcodeCountSettings();
-barcodeCountSettings.EnableSymbologies(enabledSymbologies);
-
-settings.FilterSettings.ExcludedSymbologies = new[] { Symbology.Pdf417 };
-```
-
-Or, you want to exclude all the barcodes starting with 4 numbers:
-
-```csharp
-BarcodeCountSettings settings = new BarcodeCountSettings();
-
-settings.FilterSettings.ExcludedCodesRegex = "^1234.\*";
-```
-
-By default the filters applied to the relevant barcodes are transparent, but you can use [`BarcodeFilterHighlightSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-filter-highlight-settings.html#barcode-filter-highlight-settings) to change the color and level of transparency.
-
-
-
-## Clear Screen Button
-
-There are situations in which the user may find it helpful to clean up their screen (i.e. clear all the AR overlays) but keep the list of barcodes scanned.
-
-If this is the case, you can enable the “Clear screen” button.
-
-```csharp
-barcodeCountView.ShouldShowClearHighlightsButton = true;
-```
-
-## Customize Overlay Colors
-
-MatrixScan Count comes with recommended and user-tested AR overlays. However, if you wish to customize the overlay colors, once the overlay has been added, you can conform to the [IBarcodeCountViewListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view-listener.html#interface-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener) interface. The methods [IBarcodeCountViewListener.BrushForRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForRecognizedBarcode) and [IBarcodeCountViewListener.BrushForUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForUnrecognizedBarcode) are invoked every time a new recognized or unrecognized barcode appears. These can be used to set a brush that will be used to highlight that specific barcode in the overlay. Keep in mind that these methods are relevant only when using the style [BarcodeCountViewStyle.Dot](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view.html#value-scandit.datacapture.barcode.count.ui.BarcodeCountViewStyle.Dot).
-
-```csharp
-public Brush BrushForRecognizedBarcode(BarcodeCountView view, TrackedBarcode trackedBarcode)
-{
-// Return a custom brush
-}
-
-public Brush BrushForUnrecognizedBarcode(BarcodeCountView view, TrackedBarcode trackedBarcode)
-{
-// Return a custom brush
-}
-```
-
-## Notifications
-
-If you want to be notified when a user taps on an overlay, you need to implement the [IBarcodeCountViewListener.OnRecognizedBarcodeTapped()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnRecognizedBarcodeTapped) and [IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped) methods.
-
-```csharp
-public void OnRecognizedBarcodeTapped(BarcodeCountView view, TrackedBarcode trackedBarcode)
-{
-// Do something with the tapped barcode
-}
-
-public void OnUnrecognizedBarcodeTapped(BarcodeCountView view, TrackedBarcode trackedBarcode)
-{
-// Do something with the tapped barcode
-}
-```
-
-## Disable UI Elements
-
-The UI is an integral part of MatrixScan Count and we do not recommend that you use it without it. However, if you wish to disable UI elements you can do it as follows.
-
-Disable buttons:
-
-```csharp
-barcodeCountView.ShouldShowListButton = false;
-barcodeCountView.ShouldShowExitButton = false;
-barcodeCountView.ShouldShowShutterButton = false;
-```
-
-Disable feedback and hints:
-
-```csharp
-barcodeCountView.ShouldShowUserGuidanceView = false;
-barcodeCountView.ShouldShowHints = false;
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/get-started.md
deleted file mode 100644
index 981ef82f..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,179 +0,0 @@
----
-sidebar_position: 2
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Count to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Count Mode
-- Obtaining the camera instance and set frame source
-- Registering the listener to be informed when scan phase is complete
-- Setting the capture view and AR overlays
-- Configuring the camera for scanning view
-- Storing and retrieving the captured barcodes
-- Resetting the Barcode Count Mode
-- List and exit callbacks
-
-## Create A New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure The Barcode Count Mode
-
-The main entry point for the Barcode Count Mode is the [BarcodeCount](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) object. It is configured through [BarcodeCountSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-settings.html#class-scandit.datacapture.barcode.count.BarcodeCountSettings) and allows you to register one or more listeners that are informed whenever a scan phase has finished.
-
-For this tutorial, we will set up Barcode Count for tracking EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```csharp
-BarcodeCountSettings settings = new BarcodeCountSettings();
-settings.SetSymbologyEnabled(Symbology.Ean13Upca, true);
-```
-
-If you are sure that your environment will only have unique barcodes (i.e. no duplicated values), you can also enable [BarcodeCountSettings.ExpectsOnlyUniqueBarcodes](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-settings.html#property-scandit.datacapture.barcode.count.BarcodeCountSettings.ExpectsOnlyUniqueBarcodes). This option improves scanning performance as long as you are sure that no duplicates will be present. Next, create a [BarcodeCount](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) instance with the [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) and the settings initialized in the previous step:
-
-```csharp
-BarcodeCount barcodeCount = BarcodeCount.Create(dataCaptureContext, settings);
-```
-
-## Obtain Camera Instance And Set Frame Source Used
-
-Our recommended camera settings should be used to achieve the best performance and user experience. The following couple of lines show how to get the recommended settings for MatrixScan Count and create the camera from it:
-
-```csharp
-CameraSettings cameraSettings = BarcodeCount.RecommendedCameraSettings;
-
-Camera camera = Camera.DefaultCamera;
-camera.ApplySettingsAsync(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.SetFrameSourceAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```csharp
-dataCaptureContext.SetFrameSourceAsync(camera);
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [IBarcodeCountListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface and register the listener.
-
-```csharp
-// Register self as a listener to monitor the barcode count session.
-barcodeCount.AddListener(this);
-```
-
-[IBarcodeCountListener.OnScan()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan) is called when the scan phase has finished and results can be retrieved from [BarcodeCountSession](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession).
-
-Alternatively to register [IBarcodeCountListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface it is possible to subscribe to corresponding event. For example:
-
-```csharp
-barcodeCount.Scanned += (object sender, BarcodeCountEventArgs args) =>
-{
-};
-```
-
-## Set Capture View And AR Overlays
-
-MatrixScan Count’s built-in AR user interface includes buttons and overlays that guide the user through the capturing process. By adding a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) to your view hierarchy:
-
-```csharp
-BarcodeCountView barcodeCountView = BarcodeCountView.Create(context, dataCaptureContext, barcodeCount);
-```
-
-You can use a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) from XAML in your MAUI application.
-
-```xml
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MyScanPage : ContentPage
-{
-public MyScanPage()
-{
-this.InitializeComponent();
-
-// Initialization of BarcodeCountView happens on handler changed event.
-this.barcodeCountView.HandlerChanged += BarcodeCountViewHandlerChanged;
-}
-
-private void BarcodeCountViewHandlerChanged(object sender, EventArgs e)
-{
-// Your BarcodeCountView configuration goes here, e.g. subscribe for buttons tap events
-}
-}
-```
-
-For MAUI development add [Scandit.DataCapture.Barcode.Maui](https://www.nuget.org/packages/Scandit.DataCapture.Barcode.Maui) NuGet package into your project.
-
-## Set Up The Camera So That It Switches On When You Are In Scanning View
-
-The camera is not automatically turned on when you are in a scanning view. You need to set up the camera so that it switches on when needed and it switches off when not needed anymore. Similarly [BarcodeCount](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) should also be enabled and disabled. For instance, you should switch off the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is not visible anymore (including when the app goes in the background), similarly you want to switch on the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is visible (including when the app goes to the foreground). One way to achieve this is the following:
-
-```csharp
-protected override void OnPause()
-{
-camera.SwitchToDesiredStateAsync(FrameSourceState.Off);
-base.OnPause();
-}
-
-protected override void OnResume()
-{
-camera.SwitchToDesiredStateAsync(FrameSourceState.On);
-base.OnResume();
-}
-```
-
-## Store And Retrieve Scanned Barcodes
-
-The values captured as part of the scanning process are part of the [session](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession), and the session is not accessible outside [IBarcodeCountListener.OnScan()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan). Therefore, we recommend that you store the values to present a list, for example when the user taps the list icon. To do this, make a copy of [BarcodeCountSession.RecognizedBarcodes](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count-session.html#property-scandit.datacapture.barcode.count.BarcodeCountSession.RecognizedBarcodes):
-
-## Reset Barcode Count Mode
-
-When the scanning process is over, you need to reset the mode to make it ready for the next process. This clears the list of barcodes scanned and all the AR overlays.
-
-To reset Barcode Count’s scanning process, you need to call the [BarcodeCount.Reset()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-count.html#method-scandit.datacapture.barcode.count.BarcodeCount.Reset) method.
-
-```csharp
-barcodeCount.Reset();
-```
-
-## List And Exit Callbacks
-
-The UI includes two icons (buttons) named “List” and “Exit”. The SDK provides events so you can add the desired action when those icons are tapped by the user.
-
-```csharp
-barcodeCountView.ListButtonTapped += (object sender, ListButtonTappedEventArgs args) =>
-{
-// Show the current progress but the order is not completed
-};
-
-barcodeCountView.ExitButtonTapped += (object sender, ExitButtonTappedEventArgs args) =>
-{
-// The order is completed
-};
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/intro.md
deleted file mode 100644
index eb1c6a7a..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-count/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# About MatrixScan Count
-
-import AboutMatrixScanCount from '../../../../partials/intro/_about-matrixscan-count.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/advanced.md
deleted file mode 100644
index 9948cb84..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## BarcodeFind Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the BarcodeFind mode, such as when the search starts, pauses and stops. To do this, you can directly register a [IBarcodeFindListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself.
-
-Be aware that these listeners will be called from a background thread.
-
-```csharp
-public class BarcodeFindListener : IBarcodeFindListener
-{
- public void OnSearchPaused(ICollection foundItems)
- {
- // The mode was paused
- }
-
- public void OnSearchStarted()
- {
- // The mode was started
- }
-
- public void OnSearchStopped(ICollection foundItems)
- {
- // The mode was stopped after the finish button was clicked
- }
-}
-
-private void Initialize()
-{
- barcodeFind.AddListener(new BarcodeFindListener())
-}
-```
-
-Alternatively it is possible to subscribe to corresponding events [BarcodeFind.SearchPaused](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-find.html#property-scandit.datacapture.barcode.find.BarcodeFind.SearchPaused), [BarcodeFind.SearchStarted](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-find.html#property-scandit.datacapture.barcode.find.BarcodeFind.SearchStarted) or [BarcodeFind.SearchStopped](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-find.html#property-scandit.datacapture.barcode.find.BarcodeFind.SearchStopped). For example:
-
-```csharp
-barcodeFind.SearchStarted += (object? sender, EventArgs args) =>
-{
- // The mode was started
-};
-barcodeFind.SearchPaused += (object? sender, BarcodeFindEventArgs args) =>
-{
- // The mode was paused
-};
-barcodeFind.SearchStopped += (object? sender, BarcodeFindEventArgs args) =>
-{
- // The mode was stopped after the finish button was clicked
-};
-```
-
-## UI configuration
-
-The [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) will by default show a set of UI elements, which can be optionally hidden:
-
-- A play/pause button
-- A finish button
-- A searched items carousel
-- Guidance hints
-
-There is also a progress bar but this is hidden by default.
-
-Each of these elements can be shown or hidden at will.
-
-```csharp
-barcodeFindView.ShouldShowCarousel = false;
-barcodeFindView.ShouldShowProgressBar = true;
-// …
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/get-started.md
deleted file mode 100644
index dd46594c..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,128 +0,0 @@
----
-sidebar_position: 2
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Find Mode
-- Setup the Barcode Find View
-- Registering the Listener to notify about found items
-
-## Create a Data Capture Context
-
-The first step to add find capabilities to your application is to create a new [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Find Mode
-
-The main entry point for the Barcode Find Mode is the [BarcodeFind](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind) object. You can configure the supported Symbologies through its [BarcodeFindSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight (e.g. a list of products).
-
-For this tutorial, we will set up Barcode Find for tracking EAN13 codes. Change this to the correct symbologies for your use case (e.g. Code 128, Code 39…).
-
-First create the settings:
-
-```csharp
-BarcodeFindSettings settings = new BarcodeFindSettings();
-settings.EnableSymbology(Symbology.Ean13Upca, true);
-```
-
-Then you have to create the list of items that will be actively searched for.
-
-In this tutorial, let’s look up two items based on their EAN13 codes. We will attach to the first item some optional information that can be used by the BarcodeFindView to display extra information.
-
-```csharp
-ICollection items = new HashSet()
-{
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215438"),
- new BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)),
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215414"),
- null) // Item information is optional, used for display only
-};
-```
-
-Create the mode with the previously created settings and set the items:
-
-```csharp
-BarcodeFind mode = new BarcodeFind(settings);
-mode.SetItemList(items);
-```
-
-## Setup the BarcodeFindView
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView), the scanning interface (camera preview and searching UI elements) will be added automatically to your application.
-
-The BarcodeFindView appearance can be customized through [BarcodeFindViewSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings):
-
-- Colors of dots in augmented reality overlay
-- Enable sound and haptic alerts
-
-```csharp
-BarcodeFindViewSettings viewSettings = new BarcodeFindViewSettings();
-```
-
-Construct a new BarcodeFindView. The BarcodeFindView is automatically added to the provided parent view.
-
-(The parent view can be any subclass of ViewGroup, such as FrameLayout, …)
-
-```csharp
-BarcodeFindView barcodeFindView = BarcodeFindView.Create(parentView, dataCaptureContext, barcodeFind, viewSettings);
-```
-
-Connect the BarcodeFindView to the Android lifecycle. The view is dependent on calling onPause and onResume to set up the camera and its overlays properly.
-
-```csharp
-public override void OnResume()
-{
-base.OnResume();
-barcodeFindView.OnResume();
-}
-
-public override void OnPause()
-{
-base.OnPause();
-barcodeFindView.OnPause();
-}
-```
-
-## Subscribe to view events to be notified with found items
-
-The BarcodeFindView displays next to its shutter button a handy “finish” button. Subscribe to a [BarcodeFindView.FinishButtonTapped](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-find-view.html#property-scandit.datacapture.barcode.find.ui.BarcodeFindView.FinishButtonTapped) event to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```csharp
-barcodeFindView.FinishButtonTapped += (object? sender, FinishButtonTappedEventArgs e) =>
-{
-RequireActivity().OnBackPressed();
-};
-```
-
-## Start searching
-
-As soon as everything is set up, control the [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) to start the search.
-
-```csharp
-barcodeFindView.StartSearching();
-```
-
-This is the equivalent of pressing the “Play” button programmatically. It will start the search process, turn on the camera and hide the item carousel.
-
-## Samples
-
-The best way to start working with the Scandit Data Capture SDK is to run one of our sample apps. [See the full list of available samples](https://github.com/Scandit/datacapture-dotnet-samples/tree/master).
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/intro.md
deleted file mode 100644
index 2ca52a82..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-find/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/advanced.md
deleted file mode 100644
index 849422cf..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Advanced Configurations
-
-MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.
-
-## BarcodePick Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodePick` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodePickListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-pick-listener.html#interface-scandit.datacapture.barcode.pick.IBarcodePickListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```csharp
-public class BarcodePickListener : IBarcodePickListener
-{
- public void onObservationStopped(ICollection foundItems)
- {
- // The mode was paused
- }
-
- public void onObservationStarted()
- {
- // The mode was started
- }
-}
-
-private void Initialize()
-{
- BarcodePick.AddListener(new BarcodePickListener())
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/get-started.md
deleted file mode 100644
index 10ee6bd9..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,231 +0,0 @@
----
-sidebar_position: 2
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements:
-
-- Barcode Pick: The data capture mode that is used for scan and pick functionality.
-- A Barcode Pick View: The pre-built UI elements used to highlight items to be picked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Pick Mode
-- Setup the Barcode Pick View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Pick Mode
-
-The main entry point for the Barcode Pick Mode is the `BarcodePick` object. You can configure the supported Symbologies through its [`BarcodePickSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-pick-settings.html), and set up the list of items that you want MatrixScan Pick to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```csharp
-BarcodePickSettings settings = new BarcodePickSettings();
-settings.EnableSymbology(Symbology.Ean13Upca, true);
-```
-
-Then you have to create the list of items that will be picked and quantity to be picked for each item.
-
-```csharp
-ICollection items = new HashSet()
-{
- new BarcodePickProduct(
- new BarcodePickProductIdentifier("9783598215438"),
- new BarcodePickProductQuantityToPick(3),
- new BarcodePickProduct(
- new BarcodePickProductIdentifier("9783598215414"),
- new BarcodePickProductQuantityToPick(3)
-};
-```
-
-Create the mode with the previously created settings:
-
-```csharp
-BarcodePick mode = new BarcodePick(settings);
-```
-
-## Setup the `BarcodePickView`
-
-MatrixScan Pick’s built-in AR user interface includes buttons and overlays that guide the user through the scan and pick process. By adding a [`BarcodePickView`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-pick-view.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickView), the scanning interface is added automatically to your application.
-
-The `BarcodePickView` appearance can be customized through [`BarcodePickViewSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-pick-view-settings.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickViewSettings) to match your application’s look and feel. The following settings can be customized:
-
-* Colors of dots in augmented reality overlay
-* Enable sound and haptic alerts
-* Guidelines text
-* Showing hints
-* Finish button
-* Pause button
-* Zoom button
-* Loading Dialog
-
-```csharp
-BarcodePickViewSettings viewSettings = new BarcodePickViewSettings();
-// ...
-```
-(The parent view can be any subclass of ViewGroup, such as FrameLayout, …)
-
-Construct a new `BarcodePickView`. The `BarcodePickView` is automatically added to the provided parent view.
-
-```csharp
-let BarcodePickView = BarcodePickView(parentView: view, context: context, BarcodePick: mode, settings: viewSettings)
-```
-
-You can use a `BarcodePickView` from XAML in your MAUI application.
-
-```xml
-
-
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MyFindBarcodePage : ContentPage
-{
- public MyFindBarcodePage()
- {
- this.InitializeComponent();
-
- // Initialization of BarcodePickView happens on handler changed event.
- this.BarcodePickView.HandlerChanged += SetupBarcodePickView;
- }
-
- private void SetupBarcodePickView(object? sender, EventArgs args)
- {
- // Your BarcodePickView configuration goes here, e.g. subscribe for button tap events
- }
-}
-```
-
-:::important
-For MAUI development add the [`Scandit.DataCapture.Barcode.Maui`](https://www.nuget.org/packages/Scandit.DataCapture.Barcode.Maui) NuGet package into your project.
-:::
-
-Connect the `BarcodePickView` to the Android lifecycle. The view is dependent on calling `BarcodePickView.onPause()` and `BarcodePickView.onResume()` to set up the camera and its overlays properly.
-
-```csharp
-@Override
-public void onResume() {
- super.onResume();
- barcodePickView.onResume();
-}
-
-@Override
-public void onPause() {
- super.onPause();
- barcodePickView.onPause();
-}
-```
-
-If your are developing on MAUI then connect the BarcodePickView to the MAUI page lifecycle.
-
-In particular, make sure to call `BarcodePickView.OnResume` on your [`Element.HandlerChanged`](https://learn.microsoft.com/en-us/dotnet/api/microsoft.maui.controls.element.handlerchanged) event and `BarcodePickView.OnPause` on your [`Page.OnDisappearing`](https://learn.microsoft.com/en-us/dotnet/api/microsoft.maui.controls.page.ondisappearing).
-
-```csharp
-public FindBarcodePage()
-{
- this.BarcodePickView.HandlerChanged += SetupBarcodePickView;
-}
-
-private void SetupBarcodePickView(object? sender, EventArgs args)
-{
- #if __ANDROID__
- this.BarcodePickView.OnResume();
- #endif
-}
-
-protected override void OnDisappearing()
-{
- base.OnDisappearing();
- this.BarcodePickView.StopSearching();
- this.BarcodePickView.OnPause();
-}
-```
-
-## Subscribe to View Events
-
-The `BarcodePickView` displays a **Finish** button next to its shutter button.
-
-Subscribe to a `BarcodePickView.onFinishButtonTapped` event to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```csharp
-BarcodePickView.FinishButtonTapped += (object? sender, FinishButtonTappedEventArgs e) =>
-{
- RequireActivity().OnBackPressed();
-};
-```
-
-However, this convenient “finish” button is not supported with MAUI development. You can create the button manually and invoke `BarcodePickView.StopSearching` to achieve the same functionality. The following code snippet demonstrates how to do this:
-
-`FindBarcodePage.xaml`:
-```csharp
-
- (...)
-
-
-```
-
-`FindBarcodePage.xaml.cs`:
-```csharp
-private void FinishButtonClicked(object? sender, EventArgs args)
-{
- if (Application.Current?.MainPage is NavigationPage navigation)
- {
- BarcodePickView.StopSearching();
- navigation.PopToRootAsync(animated: true);
- }
-}
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `BarcodePickView.start()`.
-
-```csharp
-BarcodePickView.start();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/intro.md
deleted file mode 100644
index 4c7c91d3..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# About MatrixScan Pick
-
-MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code.
-
-MatrixScan Pick is implemented through functionality provided by [`BarcodePick`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-pick.html).
-
-## UI Overview
-
-* MatrixScan Pick is inspired by the familiar paradigm of a camera, including a shutter button that the user operates in order start and pause the scanning view. The Finish button is used at any time to exit the workflow.
-* It highlights items with obvious and colorful visual dots on screen.
-* When paused, MatrixScan Pick freezes the display at the last view, even if the device is moved. The Play button transitions back to the live view.
-* Textual guidance is displayed from the beginning of the session and as the workflow progresses, informing of the user of changes in item status (i.e. Detected, Ignored, To-Pick, or Picked).
-* Status icons can be defined to provide further information to users for a given barcode. In the live view, the icons are displayed but not tappable. In the frozen view, the status icons can be tapped and expanded to provide additional textual information.
-* The Quick Start Guide takes you through the process to install the full UI. However, you can then customize it by choosing to remove any elements on the screen except for the AR overlays. This allows you to create custom UIs suitable for your own workflows.
-
-
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../barcode-symbologies.mdx) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/advanced.md
deleted file mode 100644
index 7cda44bf..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/advanced.md
+++ /dev/null
@@ -1,154 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
-
----
-
-# Adding AR Overlays
-
-There are two ways to add advanced AR overlays to a Data Capture View:
-
-- Take advantage of the [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, which provides a ready-to-use implementation for view-based AR overlays.
-- Provide your own custom implementation, using the function [IBarcodeBatchListener.OnSessionUpdated()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) to retrieve the barcode’s current screen position for each frame.
-
-:::note
-
-- The first way is the easiest, as it takes care of adding, removing and animating the overlay’s views whenever needed. It’s also flexible enough to cover the majority of use cases.
-- You can always handle touch events on the views you create like you normally would.
- :::
-
-## Using BarcodeBatchAdvancedOverlay
-
-As mentioned above, the advanced overlay combined with its [listener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) offers an easy way of adding augmentations to your [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView). In this guide we will add a view above each barcode showing its content.
-
-First of all, create a new instance of [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) and add it to the [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-
-```csharp
-BarcodeBatchAdvancedOverlay overlay = BarcodeBatchAdvancedOverlay.Create(barcodeBatch, dataCaptureView);
-```
-
-At this point, you have two options.
-
-- Add a [IBarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-- Use the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) to specify the view, anchor and offset for each barcode.
-
-:::note
-The second way will take priority over the first one, which means that if a view for a barcode has been set using [BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) won’t be invoked for that specific barcode.
-:::
-
-Using [IBarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener)
-
-- You need to implement [IBarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener). This interface’s methods are invoked every time a barcode is newly tracked.
-- [IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning _null_ will show no view.
-- [IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through [Anchor](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/anchor.html#enum-scandit.datacapture.core.Anchor). Be aware that it anchors the view’s center to the anchor point. To achieve anchoring the top of the view or the bottom etc. you will have to set an offset as explained in the next point.
-- [IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [PointWithUnit](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```csharp
-public View ViewForTrackedBarcode(BarcodeBatchAdvancedOverlay overlay, TrackedBarcode trackedBarcode)
-{
-// Create and return the view you want to show for this tracked barcode. You can also return null, to have no view for this barcode.
-TextView textView = new TextView(this);
-textView.SetBackgroundColor(Color.White);
-textView.LayoutParameters = new ViewGroup.LayoutParams(
-ViewGroup.LayoutParams.WrapContent,
-ViewGroup.LayoutParams.WrapContent);
-textView.Text = trackedBarcode.Barcode.Data;
-return textView;
-}
-
-public Anchor AnchorForTrackedBarcode(
-BarcodeBatchAdvancedOverlay overlay,
-TrackedBarcode trackedBarcode)
-{
-// As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode quadrilateral.
-// Use the function 'OffsetForTrackedBarcode' below to adjust the position of the view by providing an offset.
-return Anchor.TopCenter;
-}
-
-public PointWithUnit OffsetForTrackedBarcode(
-BarcodeBatchAdvancedOverlay overlay,
-TrackedBarcode trackedBarcode,
-View view)
-{
-// This is the offset that will be applied to the view.
-// You can use MeasureUnit.Fraction to give a measure relative to the view itself, the sdk will take care of transforming this into pixel size.
-// We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by half of the view's height.
-return new PointWithUnit(
-new FloatWithUnit(0f, MeasureUnit.Fraction),
-new FloatWithUnit(-1f, MeasureUnit.Fraction));
-}
-```
-
-Using the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay)
-
-The function [IBarcodeBatchListener.OnSessionUpdated()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) gives you access to a [session](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession), which contains all added, updated and removed tracked barcodes. From here you can create the view you want to display, and then call [BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), [BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode) and [BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```csharp
-public void OnSessionUpdated(BarcodeBatch mode, BarcodeBatchSession session, IFrameData data)
-{
-// Be careful, this function is not invoked on the main thread!
-RunOnUiThread(() => {
-foreach (TrackedBarcode trackedBarcode in session.AddedTrackedBarcodes) {
-TextView textView = new TextView(this);
-textView.SetBackgroundColor(Color.White);
-textView.LayoutParameters =
-new ViewGroup.LayoutParams(
-ViewGroup.LayoutParams.WrapContent,
-ViewGroup.LayoutParams.WrapContent);
-
-textView.Text = trackedBarcode.Barcode.Data;
-overlay.SetViewForTrackedBarcode(trackedBarcode, textView);
-overlay.SetAnchorForTrackedBarcode(trackedBarcode, Anchor.TopCenter);
-overlay.SetOffsetForTrackedBarcode(
-trackedBarcode,
-new PointWithUnit(
-new FloatWithUnit(0f, MeasureUnit.Fraction),
-new FloatWithUnit(-1f, MeasureUnit.Fraction)
-)
-);
-}
-});
-}
-```
-
-## Provide your own custom implementation
-
-If you do not want to use the overlay, it is also possible to add augmented reality features based on the tracking identifier and the [quadrilateral](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/common.html#struct-scandit.datacapture.core.Quadrilateral) coordinates that every tracked barcode has. Below are some pointers.
-
-- Set a [IBarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) on the barcode tracking
-- In the [IBarcodeBatchListener.OnSessionUpdated()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function fetch the [added](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.AddedTrackedBarcodes) and [removed](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.RemovedTrackedBarcodes) tracked barcodes.
-- Create and show the views for the added barcodes.
-- Remove the views for the lost barcodes.
-- Add a method that is called 60fps when [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) is enabled. In this method, for each [TrackedBarcode](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/tracked-barcode.html#class-scandit.datacapture.barcode.batch.TrackedBarcode) on-screen, update the position based on [TrackedBarcode.Location](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location). Please note that there is no need to animate the change of location, the change of position will happen frequently enough that the view will look as it is animated.
-
-:::note
-The frame coordinates from [TrackedBarcode.Location](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location) need to be mapped to view coordinates, using [DataCaptureView.MapFrameQuadrilateralToView()](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#method-scandit.datacapture.core.ui.DataCaptureView.MapFrameQuadrilateralToView).
-:::
-
-```csharp
-public void OnSessionUpdated(BarcodeBatch mode, BarcodeBatchSession session, IFrameData data)
-{
-// Be careful, this function is not invoked on the main thread!
-RunOnUiThread(() => {
-foreach (int lostTrackIdentifier in session.RemovedTrackedBarcodes) {
-// You now know the identifier of the tracked barcode that has been lost. Usually here you would remove the views
-associated.
-}
-
-foreach (TrackedBarcode trackedBarcode in session.AddedTrackedBarcodes)
-{
-// Fixed identifier for the tracked barcode.
-int trackingIdentifier = trackedBarcode.Identifier;
-
-// Current location of the tracked barcode.
-Quadrilateral location = trackedBarcode.Location;
-Quadrilateral quadrilateral = dataCaptureView.MapFrameQuadrilateralToView(location);
-
-// You now know this new tracking's identifier and location. Usually here you would create and show the views.
-}
-});
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/get-started.md
deleted file mode 100644
index ca9a0be1..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/get-started.md
+++ /dev/null
@@ -1,207 +0,0 @@
----
-sidebar_position: 2
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the MatrixScan mode
-- Using the built-in camera
-- Visualizing the scan process
-- Providing feedback
-- Disabling barcode tracking
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [BarcodeBatchSettings](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) that will get informed whenever a new frame has been processed.
-
-Most of the times, you will not need to implement a [IBarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener), instead you will add a
-[BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and implement a [IBarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-
-For this tutorial, we will setup Barcode Batch for tracking QR codes.
-
-```csharp
-BarcodeBatchSettings settings = BarcodeBatchSettings.Create();
-settings.EnableSymbology(Symbology.Qr, true);
-```
-
-Next, create a [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance with the data capture context and the settings initialized in the previous steps:
-
-```csharp
-BarcodeBatch barcodeBatch = BarcodeBatch.Create(context, settings);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Permissions in Android](https://learn.microsoft.com/en-us/xamarin/android/app-fundamentals/permissions) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```csharp
-camera = Camera.GetDefaultCamera();
-camera?.ApplySettingsAsync(BarcodeBatch.RecommendedCameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.SetFrameSourceAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```csharp
-context.SetFrameSourceAsync(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [IFrameSource.SwitchToDesiredStateAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```csharp
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```csharp
-DataCaptureView dataCaptureView = DataCaptureView.Create(this, dataCaptureContext);
-SetContentView(dataCaptureView);
-```
-
-Alternatively you can use a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) from XAML in your MAUI application. For example:
-
-```xml
-
-
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MainPage : ContentPage
-{
-public MainPage()
-{
-InitializeComponent();
-
-// Initialization of DataCaptureView happens on handler changed event.
-dataCaptureView.HandlerChanged += DataCaptureViewHandlerChanged;
-}
-
-private void DataCaptureViewHandlerChanged(object? sender, EventArgs e)
-{
-// Your dataCaptureView configuration goes here, e.g. add overlay
-}
-}
-```
-
-For MAUI development add [Scandit.DataCapture.Core.Maui](https://www.nuget.org/packages/Scandit.DataCapture.Core.Maui) NuGet package into your project.
-
-To visualize the results of Barcode Batch, first you need to add the following [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay):
-
-```csharp
-BarcodeBatchBasicOverlay overlay = BarcodeBatchBasicOverlay.Create(barcodeBatch, dataCaptureView);
-```
-
-Once the overlay has been added, you should implement the [IBarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) interface. The method [IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a [brush](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/ui/brush.html#class-scandit.datacapture.core.ui.Brush) that will be used to highlight that specific barcode in the [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay).
-
-```csharp
-public Brush BrushForTrackedBarcode(BarcodeBatchBasicOverlay overlay, TrackedBarcode trackedBarcode)
-{
-// Return a custom Brush based on the tracked barcode.
-}
-```
-
-If you would like to make the highlights tappable, you need to implement the [IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped) method.
-
-```csharp
-public void OnTrackedBarcodeTapped(BarcodeBatchBasicOverlay overlay, TrackedBarcode trackedBarcode)
-{
-// A tracked barcode was tapped.
-}
-```
-
-## Get Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a
-[IBarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) to provide a similar experience. Below, we use the default [Feedback](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it with your own sound or vibration if you want.
-
-```csharp
-protected override void OnResume()
-{
-base.OnResume();
-feedback = Feedback.DefaultFeedback;
-}
-
-protected override void OnPause()
-{
-base.OnPause();
-feedback.Dispose();
-}
-```
-
-Next, use this [feedback](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/feedback.html#class-scandit.datacapture.core.Feedback) in a [IBarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener):
-
-```csharp
-public class FeedbackListener : Java.Lang.Object, IBarcodeBatchListener
-{
-public void OnObservationStarted(BarcodeBatch barcodeBatch)
-{
-// Called when Barcode Batch is started.
-// We don't use this callback in this guide.
-}
-
-public void OnObservationStopped(BarcodeBatch barcodeBatch)
-{
-// Called when Barcode Batch is stopped.
-// We don't use this callback in this guide.
-}
-
-public void OnSessionUpdated(BarcodeBatch barcodeBatch, BarcodeBatchSession session, IFrameData frameData)
-{
-if (session.AddedTrackedBarcodes.Any())
-{
-this.feedback.Emit();
-}
-}
-}
-```
-
-[IBarcodeBatchListener.OnSessionUpdated()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The [session](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession) parameter contains information about the currently tracked barcodes, in particular, the newly recognized ones. We check if there are any and if so, we emit the feedback.
-
-As the last step, register the listener responsible for emitting the feedback with the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance.
-
-```csharp
-barcodeBatch.AddListener(feedbackListener);
-```
-
-## Disabling Barcode Batch
-
-To disable barcode tracking set [BarcodeBatch.Enabled](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/barcode-batch.html#property-scandit.datacapture.barcode.batch.BarcodeBatch.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or put it in standby calling [SwitchToDesiredState](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [StandBy](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.Standby).
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/intro.md
deleted file mode 100644
index 0f70c6f3..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/matrixscan/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../../partials/intro/_about-matrixscan.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/net/android/migrate-5-to-6.mdx
deleted file mode 100644
index 66a85a41..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/net/android/migrate-6-to-7.mdx
deleted file mode 100644
index 209d01ec..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/net/android/migrate-7-to-8.mdx
deleted file mode 100644
index 544f2fba..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/parser/get-started.md
deleted file mode 100644
index 454ec0fb..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/parser/get-started.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-sidebar_position: 2
-pagination_prev: null
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/hibc.html), [GS1 Application Identifier (https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/AI) system](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/gs1ai.html) and [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/swissqr.html), [VIN Vehicle Identification Number](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/vin.html), [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/iata-bcbp.html).
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Format-Specific Documentation
-
-- [Supported Data Formats](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/formats.html)
-- [HIBC](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/hibc.html)
-- [GS1 AI](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/gs1ai.html)
-- [GS1 Digital Link](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/gs1-digital-link.html)
-- [Swiss QR](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/swissqr.html)
-- [VIN](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/vin.html)
-- [IATA BCBP](https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/iata-bcbp.html)
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/release-notes.md b/versioned_docs/version-8.1.1/sdks/net/android/release-notes.md
deleted file mode 100644
index d5aa0ad8..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/release-notes.md
+++ /dev/null
@@ -1,180 +0,0 @@
----
-toc_max_heading_level: 3
-displayed_sidebar: netAndroidSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Id
-
-* Fixed a memory issue leading to a persistent black screen during ID Capture startup
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-* Added, in `BarcodeAr`, a new annotation type (`BarcodeArResponsiveAnnotation`), which automatically switches between close-up and far-away info annotations based on the barcode's size on screen
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-* Our SDK can now scan the following documents both in single-side and double-side mode:
- - All Mexican DLs
- - Mexican Voter Cards
-
-#### Smart Label Capture
-
-* [Smart Label Capture](/sdks/net/android/label-capture/intro.md) is now available on .NET for Android. It enables multi-modal data capture, extracting barcode and text data from labels simultaneously and making complex data entry up to 7 times faster. Ideal for labels containing serial numbers, weights, or expiry dates, it improves accuracy, reduces errors, and prevents revenue loss from incorrect information.
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the ["strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the ["ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 ("Missing Resource")
-
-#### Core
-
-* Added the `CodeDuplicate` class to simplify setting special sentinel values for the CodeDuplicateFilter property across barcode scanning modes.
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed a bug in the default color of BarcodeCapture highlights
-* Fixed an issue where popover annotations with HIGHLIGHT_TAP_AND_BARCODE_SCAN trigger could not be opened again
-* Fixed an issue in BarcodeSequence where camera would not be ON in portrait
-* Fixed an issue where SparkScan mini preview would sometimes stay in regular when entering target mode
-* Fixed the app becoming unresponsive after being in the background for extended periods
-* Fixed an issue where the successful notification in BarcodeFind was not displayed
-
-#### Id
-
-* Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses
-
-#### Core
-
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed an issue where the successful hint in BarcodeFind was not displayed
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* We've fundamentally redesigned our .NET SDK's architecture to better align with the modern .NET ecosystem!
- * **Platform-Agnostic .net8.0 and net9.0 Targets**: The SDK now includes generic net8.0 and .net9.0 targets. This allows you to reference `Scandit.DataCapture.Core` and related packages directly from non-UI projects, such as class libraries or unit test projects. This makes it significantly easier to build modular, testable applications following principles like Clean Architecture.
-* **Mandatory SDK Initialization**: Due to the architectural changes, the SDK now requires explicit initialization at application startup. The public API has not changed, but you must add the corresponding initialization code to your application for the SDK to function correctly.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`.
-
-### Bug Fixes
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-#### Barcode
-
-* All previously deprecated APIs have been removed in this release.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/net/android/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/net/android/scanning-composite-codes.mdx
deleted file mode 100644
index 01c74e9e..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/single-scanning.md b/versioned_docs/version-8.1.1/sdks/net/android/single-scanning.md
deleted file mode 100644
index 9634a5ca..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/single-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-toc_max_heading_level: 4
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Single Scanning
-
-import SingleScanning from '../../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/advanced.md
deleted file mode 100644
index 96dbaa21..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/advanced.md
+++ /dev/null
@@ -1,130 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Hardware Button Control
-
-Allowing the end user to control the scanner with hardware buttons can be useful if your users typically wear gloves. It can also improve ergonomics in some workflows.
-
-SparkScan offers a built-in API to let you do this via [scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled).
-
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan’s built-in error state. Setting the [SDCSparkScanBarcodeErrorFeedback.resumeCapturingDelay](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to `0` allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode (SDCSparkScanViewSettings.DefaultScanningMode). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SDCSparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled (`SDCSparkScanViewSettings.HoldToScanEnabled`).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/get-started.md
deleted file mode 100644
index fd6847a1..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/get-started.md
+++ /dev/null
@@ -1,179 +0,0 @@
----
-sidebar_position: 2
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add SparkScan to your application by:
-
-- Create a new Data Capture Context instance.
-- Configure the Spark Scan Mode.
-- Create the SparkScanView with the desired settings and bind it to the application’s lifecycle.
-- Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs.
-
-## Create a New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through SparkScanSettings and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we will set up SparkScan for scanning EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```csharp
-SparkScanSettings settings = new SparkScanSettings();
-HashSet symbologies = new HashSet()
-{
-Symbology.Ean13Upca
-};
-settings.EnableSymbologies(symbologies);
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```csharp
-SparkScan sparkScan = new SparkScan(settings);
-```
-
-## Setup the Spark Scan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/spark-scan-view.html) appearance can be customized through [`SparkScanViewSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/spark-scan-view-settings.html).
-
-```csharp
-SparkScanViewSettings viewSettings = new SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-By adding a [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/spark-scan-view.html), the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/spark-scan-view.html) to your view hierarchy:
-
-Construct a new SparkScan view. The SparkScan view is automatically added to the provided parentView (preferably an instance of [SparkScanCoordinatorLayout](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanCoordinatorLayout)):
-
-```csharp
-SparkScanView sparkScanView = SparkScanView.Create(parentView, dataCaptureContext, sparkScan, viewSettings);
-```
-
-When developing on MAUI the SparkScan view should be added as the last item to [AbsoluteLayout](https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/absolutelayout) or [RelativeLayout](https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/relativelayout), to make sure other UI components are visible.
-
-```xml
-
-
-
-
-
-
-
-
-
-```
-
-When developing on MAUI, make sure to call SparkScanView.OnAppearing and SparkScanView.OnDisappearing in your [Page.OnAppearing](https://learn.microsoft.com/en-us/dotnet/api/xamarin.forms.page.onappearing) and [Page.OnDisappearing](https://learn.microsoft.com/en-us/dotnet/api/xamarin.forms.page.ondisappearing) callbacks, to make sure that start up time is optimal and scanning is stopped when the app is going in the background.
-
-```csharp
-protected override void OnAppearing()
-{
-base.OnAppearing();
-this.SparkScanView.OnAppearing();
-}
-
-protected override void OnDisappearing()
-{
-base.OnDisappearing();
-this.SparkScanView.OnDisappearing();
-}
-```
-
-Additionally, make sure to call sparkScanView.onPause() and sparkScanView.onResume() in your Fragment/Activity onPause and onResume callbacks. You have to call these for the correct functioning of the SparkScanView.
-
-```csharp
-protected override void OnPause()
-{
-sparkScanView.OnPause();
-base.OnPause();
-}
-
-protected override void OnResume()
-{
-sparkScanView.OnResume();
-base.OnResume();
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [ISparkScanListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode.
-
-```csharp
-// Register self as a listener to monitor the spark scan session.
-sparkScan.AddListener(this);
-```
-
-[ISparkScanListener.OnBarcodeScanned()](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved from the first object in the provided barcodes list: [SparkScanSession.NewlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode). Please note that this list only contains one barcode entry.
-
-```csharp
-public void OnBarcodeScanned(SparkScan sparkScan, SparkScanSession session, IFrameData? data)
-{
-if (session.NewlyRecognizedBarcode.Count == 0)
-{
-return;
-}
-
-// Gather the recognized barcode
-Barcode barcode = session.NewlyRecognizedBarcode[0];
-
-// This method is invoked from a recognition internal thread.
-// Run the specified action in the UI thread to update the internal barcode list.
-RunOnUiThread(() =>
-{
-// Update the internal list and the UI with the barcode retrieved above
-this.latestBarcode = barcode;
-});
-}
-```
-
-Alternatively to register [ISparkScanListener](https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface it is possible to subscribe to corresponding events. For example:
-
-```csharp
-sparkScan.BarcodeScanned += (object sender, SparkScanEventArgs args) =>
-{
-if (args.Session.NewlyRecognizedBarcode.Count == 0)
-{
-return;
-}
-
-// Gather the recognized barcode
-Barcode barcode = args.Session.NewlyRecognizedBarcode[0];
-
-// This method is invoked from a recognition internal thread.
-// Run the specified action in the UI thread to update the internal barcode list.
-RunOnUiThread(() =>
-{
-// Update the internal list and the UI with the barcode retrieved above
-this.latestBarcode = barcode;
-
-// Emit sound and vibration feedback
-this.sparkScanView.EmitFeedback(new SparkScanViewSuccessFeedback());
-});
-}
-```
-
-## Scan Some Barcodes
-
-Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can print out.
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/intro.md
deleted file mode 100644
index f662276a..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/sparkscan/intro.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netAndroid
-keywords:
- - netAndroid
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying additional scanning modes, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/net/android/symbology-properties.mdx
deleted file mode 100644
index 0bdaf87a..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/android/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/net/android/system-requirements.mdx
deleted file mode 100644
index 5472b13e..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/android/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/add-sdk.md b/versioned_docs/version-8.1.1/sdks/net/ios/add-sdk.md
deleted file mode 100644
index 6dab8c5e..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/add-sdk.md
+++ /dev/null
@@ -1,75 +0,0 @@
----
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-# Installation
-
-This guide shows you how to add the Scandit Data Capture SDK to current existing project.
-
-## Prerequisites
-
-- The latest stable version of [Visual Studio](https://visualstudio.microsoft.com/).
-- A [.NET SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0).
-- A .NET for iOS project with minimum iOS deployment target of 14.0 or higher.
-
- :::note
- ID Capture requires a minimum iOS deployment target of 15.0.
- :::
-
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-
-:::tip
-Android devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps-no-label-capture.mdx';
-
-
-
-## Get a License Key
-
-1. [Sign up](https://ssl.scandit.com/dashboard/sign-up?p=test) or [Sign in](https://ssl.scandit.com/dashboard/sign-in) to your Scandit account
-2. Create a project
-3. Create a license key
-
-If you have a paid subscription, please reach out to [Scandit Support](mailto:support@scandit.com) if you need a new license key.
-
-## Add the SDK
-
-The Scandit Data Capture SDK is distributed as [NuGet packages](https://www.nuget.org/packages?q=scandit).
-
-You will always need to add the `Scandit.DataCapture.Core` package, which contains the core functionality used by the other data capture packages. When developing MAUI applications you will also need to add the `Scandit.DataCapture.Core.Maui` package.
-
-In addition, depending on the data capture task, you will need a reference to:
-
-| Functionality | Description | Required Module(s) |
-| --- | --- | --- |
-| Barcode Capture | [ScanditBarcodeCapture API](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api.html) if you want to use barcode-related functionality, such as barcode capture or MatrixScan. | _com.scandit.datacapture:barcode_ |
-| Parser | [ScanditParser API](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/api.html) if you want to parse data strings, for instance, as found in barcodes, into a set of key-value mappings. | _com.scandit.datacapture:parser_ |
-| ID Capture | [ScanditIdCapture API](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api.html) if you want to scan personal identification documents, such as identity cards, passports or visas. | _com.scandit.datacapture:id_ |
-
-:::tip
-You can safely remove `Scandit.DataCapture.Barcode`, `Scandit.DataCapture.Parser`, or `Scandit.DataCapture.IdCapture` dependencies if you are not going to use their features.
-:::
-
-## Additional Information
-
-### Camera Permissions
-
-When using the Scandit Data Capture SDK you will want to set the camera as the frame source for various capture modes. On .NET for iOS, you have to set the “Privacy - Camera Usage Description” field in the Info.plist file.
-
-When using the Scandit Data Capture SDK in MAUI application additionally you have to request camera permissions in your own application before starting scanning. To see how you can achieve this, take a look at our [samples](https://github.com/Scandit/datacapture-dotnet-samples/tree/master).
-
-import OSSLicense from '../../../partials/_third-party-licenses-csharp.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/net/ios/ai-powered-barcode-scanning.md
deleted file mode 100644
index cff13dce..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: netIos
-keywords:
- - netIos
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/net/ios/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index 132cc758..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following code shows how to enable scanning Code 128 codes for Barcode Capture:
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-settings.EnableSymbology(Symbology.Code128, true);
-```
-
-import CapturePresents from '../../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below lines of code show how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-SymbologySettings symbologySettings = settings.GetSymbologySettings(Symbology.Code128);
-HashSet activeSymbolCounts = new HashSet(new short[] { 6, 7, 8 });
-symbologySettings.ActiveSymbolCounts = activeSymbolCounts;
-```
-
-import CalculateSymbolCount from '../../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you also want to read bright-on-dark codes, color-inverted reading for that symbology must also be enabled (see [SymbologySettings.ColorInvertedEnabled](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsColorInvertedEnabled)):
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-SymbologySettings symbologySettings = settings.GetSymbologySettings(Symbology.Code128);
-symbologySettings.ColorInvertedEnabled = true;
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that will always be enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum). Enforcing an optional checksum will reduce false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes get discarded as the checksum doesn’t match. All available checksums per symbology can be found in [symbology properties](../symbology-properties.mdx).
-
-You can enforce a specific checksum by setting it through [SymbologySettings.Checksums](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-SymbologySettings symbologySettings = settings.GetSymbologySettings(Symbology.Code39);
-symbologySettings.Checksums = Checksum.Mod43;
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [SymbologySettings.SetExtensionEnabled()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-SymbologySettings symbologySettings = settings.GetSymbologySettings(Symbology.Code39);
-symbologySettings.SetExtensionEnabled("full_ascii", true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/barcode-capture/get-started.md
deleted file mode 100644
index 2a2f3b6f..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-capture/get-started.md
+++ /dev/null
@@ -1,196 +0,0 @@
----
-sidebar_position: 2
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Create your barcode capture settings and enable the barcode symbologies you want to read
-- Create a new barcode capture mode instance and initialize it
-- Register a barcode capture listener to receive scan events
-- Process successful scans according to your application’s needs and decide whether more codes will be scanned or the scanning process should be stopped
-- Obtain a camera instance and set it as the frame source on the data capture context
-- Display the camera preview by creating a data capture view
-- If displaying a preview, optionally create a new overlay and add it to data capture view for better visual feedback
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Scanning Behavior
-
-Barcode scanning is orchestrated by the [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) [data capture mode](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```csharp
-BarcodeCaptureSettings settings = BarcodeCaptureSettings.Create();
-HashSet symbologies = new HashSet()
- {
- Symbology.Code128,
- Symbology.Code39,
- Symbology.Qr,
- Symbology.Ean8,
- Symbology.Upce,
- Symbology.Ean13Upca
- };
- settings.EnableSymbologies(symbologies);
-```
-
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.CodeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around 500 or even \-1 if you do not want codes to be scanned more than once.
-
-Next, create a [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance with the settings initialized in the previous step:
-
-```csharp
-barcodeCapture = BarcodeCapture.Create(context, settings);
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [IBarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [BarcodeCapture.AddListener()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [IBarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface. For example:
-
-```csharp
-public void OnBarcodeScanned(BarcodeCapture barcodeCapture, BarcodeCaptureSession session, IFrameData frameData)
-{
-IList barcodes = session?.NewlyRecognizedBarcode;
-// Do something with the barcodes
-
-// Dispose the frame when you have finished processing it. If the frame is not properly disposed,
-// different issues could arise, e.g. a frozen, non-responsive, or "severely stuttering" video feed.
-frameData.Dispose();
-}
-```
-
-Then add the listener:
-
-```csharp
-barcodeCapture.AddListener(this);
-```
-
-Alternatively to register [IBarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface it is possible to subscribe to corresponding events. For example:
-
-```csharp
-barcodeCapture.BarcodeScanned += (object sender, BarcodeCaptureEventArgs args) =>
-{
-IList barcodes = args.Session?.NewlyRecognizedBarcode;
-// Do something with the barcodes
-}
-```
-
-### Rejecting Barcodes
-
-To prevent scanning unwanted codes, you can reject them by adding the desired logic to the `didScan` method. This will prevent the barcode from being added to the session and will not trigger the `didUpdateSession` method.
-
-The example below will only scan barcodes beginning with the digits `09` and ignore all others, using a transparent brush to distinguish a rejected barcode from a recognized one:
-
-```csharp
-...
-if (barcode.Data?.StartsWith("09:") == false)
-{
- this.overlay.Brush = Brush.TransparentBrush;
- return;
-}
-...
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://learn.microsoft.com/en-us/xamarin/ios/app-fundamentals/security-privacy?tabs=macos#:~:text=NSCameraUsageDescription) key in your app’s Info.plist file.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```csharp
-camera = Camera.GetDefaultCamera();
-camera?.ApplySettingsAsync(BarcodeCapture.RecommendedCameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.SetFrameSourceAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```csharp
-context.SetFrameSourceAsync(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [IFrameSource.SwitchToDesiredStateAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```csharp
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```csharp
-DataCaptureView dataCaptureView = DataCaptureView.Create(dataCaptureContext, View.Bounds);
-View.AddSubview(dataCaptureView);
-```
-
-Alternatively you can use a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) from XAML in your MAUI application. For example:
-
-```xml
-
-
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MainPage : ContentPage
-{
-public MainPage()
-{
-InitializeComponent();
-
-// Initialization of DataCaptureView happens on handler changed event.
-dataCaptureView.HandlerChanged += DataCaptureViewHandlerChanged;
-}
-
-private void DataCaptureViewHandlerChanged(object? sender, EventArgs e)
-{
-// Your dataCaptureView configuration goes here, e.g. add overlay
-}
-}
-```
-
-For MAUI development add [Scandit.DataCapture.Core.Maui](https://www.nuget.org/packages/Scandit.DataCapture.Core.Maui) NuGet package into your project.
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```csharp
-BarcodeCaptureOverlay overlay = BarcodeCaptureOverlay.Create(barcodeCapture, dataCaptureView);
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [BarcodeCapture.Enabled](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to _false_.
-
-The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/net/ios/barcode-generator.md
deleted file mode 100644
index e1af1b08..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-generator.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: netIosSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/barcode-selection/get-started.md
deleted file mode 100644
index 47c6541b..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-selection/get-started.md
+++ /dev/null
@@ -1,183 +0,0 @@
----
-sidebar_position: 2
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/net/ios/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-In this guide you will learn step-by-step how to add Barcode Selection to your application.
-
-The general steps are:
-
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode selection settings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and choose the right configuration.
-- Create a new [barcode selection mode](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance and initialize it with the settings created above.
-- Register a [barcode selection listener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-selection-basic-overlay.html#class-scandit.datacapture.barcode.selection.ui.BarcodeSelectionBasicOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Selection Behavior
-
-_Symbologies_
-
-Barcode selection is orchestrated by the [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) [data capture mode](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). It is configured through [BarcodeSelectionSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) that will get informed whenever new codes have been selected.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```csharp
-BarcodeSelectionSettings settings = BarcodeSelectionSettings.Create();
-HashSet symbologies = new HashSet()
-{
-Symbology.Qr,
-Symbology.Ean8,
-Symbology.Upce,
-Symbology.Ean13Upca
-};
-settings.EnableSymbologies(symbologies);
-```
-
-_Selection Types_
-
-The behavior of Barcode Selection can be changed by using a different [selection type](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-type.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionType). This defines the method used by [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) to select codes. Currently there are two types.
-
-If you want the user to select barcodes with a tap, then use [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection). This selection type can automatically freeze the camera preview to make the selection easier. You can configure the freezing behavior via [BarcodeSelectionTapSelection.FreezeBehavior](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.FreezeBehavior). With [BarcodeSelectionTapSelection.TapBehavior](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.TapBehavior) you can decide if a second tap on a barcode means that the barcode is unselected or if it is selected another time (increasing the counter).
-
-:::note
-Using [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection) requires the MatrixScan add-on.
-:::
-
-If you want the selection to happen automatically based on where the user points the camera, then use [BarcodeSelectionAimerSelection](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-aimer-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAimerSelection). It is possible to choose between two different [selection strategies](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-strategy.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionStrategy). Use [BarcodeSelectionAutoSelectionStrategy](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAutoSelectionStrategy) if you want the barcodes to be selected automatically when aiming at them as soon as the intention is understood by our internal algorithms. Use [BarcodeSelectionManualSelectionStrategy](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionManualSelectionStrategy) if you want the barcodes to be selected when aiming at them and tapping anywhere on the screen.
-
-_Single Barcode Auto Detection_
-
-If you want to automatically select a barcode when it is the only one on screen, turn on [BarcodeSelectionSettings.SingleBarcodeAutoDetection](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-settings.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionSettings.SingleBarcodeAutoDetection).
-
-_Creating the mode_
-
-Next, create a [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance with the settings initialized in the previous step:
-
-```csharp
-barcodeSelection = BarcodeSelection.Create(context, settings);
-```
-
-## Register the Barcode Selection Listener
-
-To get informed whenever a new code has been recognized, add a [IBarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) through [BarcodeSelection.AddListener()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection.html#method-scandit.datacapture.barcode.selection.BarcodeSelection.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [IBarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) interface. For example:
-
-```csharp
-public class MyBarcodeSelectionListener : NSObject, IBarcodeSelectionListener
-{
-public void OnObservationStarted(BarcodeSelection barcodeSelection)
-{
-// Called when Barcode Selection is started.
-// We don't use this callback in this guide.
-}
-
-public void OnObservationStopped(BarcodeSelection barcodeSelection)
-{
-// Called when Barcode Selection is stopped.
-// We don't use this callback in this guide.
-}
-
-public void OnSessionUpdated(
-BarcodeSelection barcodeSelection,
-BarcodeSelectionSession session,
-IFrameData frameData)
-{
-// Called every new frame.
-// We don't use this callback in this guide.
-
-// Dispose the frame when you have finished processing it. If the frame is not properly disposed,
-// different issues could arise, e.g. a frozen, non-responsive, or "severely stuttering" video feed.
-frameData.Dispose();
-}
-
-public void OnSelectionUpdated(
-BarcodeSelection barcodeSelection,
-BarcodeSelectionSession session,
-IFrameData frameData)
-{
-IList newlySelectedBarcodes = session.NewlySelectedBarcodes;
-IList selectedBarcodes = session.SelectedBarcodes;
-IList newlyUnselectedBarcodes = session.NewlyUnselectedBarcodes;
-// Do something with the retrieved barcodes.
-
-// Dispose the frame when you have finished processing it. If the frame is not properly disposed,
-// different issues could arise, e.g. a frozen, non-responsive, or "severely stuttering" video feed.
-frameData.Dispose();
-}
-}
-```
-
-Then add the listener:
-
-```csharp
-barcodeSelection.AddListener(new MyBarcodeSelectionListener());
-```
-
-Alternatively to register [IBarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) interface it is possible to subscribe to corresponding events. For example:
-
-```csharp
-barcodeSelection.SelectionUpdated += (object sender, BarcodeSelectionEventArgs args) =>
-{
-IList newlySelectedBarcodes = args.Session.NewlySelectedBarcodes;
-IList selectedBarcodes = args.Session.SelectedBarcodes;
-IList newlyUnselectedBarcodes = args.Session.NewlyUnselectedBarcodes;
-// Do something with the retrieved barcodes.
-}
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://learn.microsoft.com/en-us/xamarin/ios/app-fundamentals/security-privacy?tabs=macos#:~:text=NSCameraUsageDescription) key in your app’s Info.plist file.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```csharp
-var cameraSettings = BarcodeSelection.RecommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-camera = Camera.GetDefaultCamera();
-camera?.ApplySettingsAsync(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.SetFrameSourceAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```csharp
-context.SetFrameSourceAsync(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [IFrameSource.SwitchToDesiredStateAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```csharp
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-
-
-## Disabling Barcode Selection
-
-To disable barcode selection, for instance when the selection is complete, set [BarcodeSelection.Enabled](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelection.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/barcode-selection/intro.md
deleted file mode 100644
index 8c344f50..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-selection/intro.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# About Barcode Selection
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/net/ios/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes.
-
-Barcode Selection provides two key capabilities:
-
-- **Aim to Select** allows users to select one code at a time. This is especially useful for one-handed operation.
-- **Tap to Select** is a quick way for users to select several codes from the same view. Selection is done by tapping on highlighted barcodes in the live camera preview or on a frozen screen.
-
-:::warning
-Barcode Selection does not support handling of duplicate codes. If a code appears twice in the visible preview both instances will be marked as selected even if only one of them was selected.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/barcode-symbologies.mdx
deleted file mode 100644
index 26d40506..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/net/ios/batch-scanning.md
deleted file mode 100644
index ecc8e5bd..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/batch-scanning.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Batch Scanning
-
-import BatchScanning from '../../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/core-concepts.mdx
deleted file mode 100644
index 12fb11ef..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/extension-codes.mdx
deleted file mode 100644
index 487c03ad..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/features-by-framework.mdx
deleted file mode 100644
index b0bc01dd..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/advanced.md
deleted file mode 100644
index ff2f91d6..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/advanced.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-sidebar_position: 4
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/net/ios/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-```csharp
-// Default value:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_ONLY);
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_AND_IMAGES);
-
-// Only images are anonymized:
-settings.setAnyonymizationMode(IdAnonymizationMode.IMAGES_ONLY);
-
-// No anonymization:
-settings.setAnyonymizationMode(IdAnonymizationMode.NONE);
-```
-
-## Document Capture Zones
-
-By default, a new instance of [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) creates a single-sided scanner type with no accepted or rejected documents.
-
-To change this, use the `scannerType` method to set the scanner type to either [SingleSideScanner](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-scanner.html#single-side-scanner) or [FullDocumentScanner](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-scanner.html#full-document-scanner).
-
-
-The `FullDocumentScanner` extracts all document information by default. If using the `SingleSideScanner`, you can specify the document zones to extract:
-
-```csharp
-// To extract data from barcodes on IDs
-SingleSideScanner.barcode(true);
-// To extract data from the visual inspection zone (VIZ) on IDs
-SingleSideScanner.visualInspectionZone(true);
-// To extract data from the machine-readable zone (MRZ) on IDs
-SingleSideScanner.machineReadableZone(true);
-```
-
-## Configure Accepted and Rejected Documents
-
-To configure the documents that should be accepted and/or rejected, use the `acceptedDocuments` and `rejectedDocuments` methods in `IdCaptureSettings`.
-
-These methods are used in conjunction with the [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) and [IdCaptureRegion](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-region.html#enum-scandit.datacapture.id.IdCaptureRegion) enums to enable highly flexible document filtering as may be desired in your application.
-
-For example, to accept only US Driver Licenses:
-
-```csharp
-settings.AcceptedDocuments = IdDocumentType.DriverLicense | IdDocumentType.Region.US;
-```
-
-Or to accept all Passports *except* those from the US:
-
-```csharp
-settings.AcceptedDocuments = IdDocumentType.Passport;
-settings.RejectedDocuments = IdDocumentType.Region.US;
-```
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `CapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `CapturedId` object for a US Driver License will contain different fields than a `CapturedId` object for a Passport.
-
-For a rejected document, a [RejectionReason](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed automatically using the following settings:
-
-* [IdCaptureSettings.rejectForgedAamvaBarcodes](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectForgedAamvaBarcodes): Automatically rejects documents whose AAMVA barcode fails authenticity validation.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/get-started.md
deleted file mode 100644
index a655b1f2..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/get-started.md
+++ /dev/null
@@ -1,220 +0,0 @@
----
-sidebar_position: 2
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-This page will guide you through the process of adding ID Capture to your .NET application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Accessing a Camera
-- Configuring the Capture Settings
-- Implementing a Listener to Receive Scan Results
-- Setting up the Capture View and Overlay
-- Starting the Capture Process
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](/sdks/net/ios/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import IdModuleOverview from '../../../../partials/get-started/_id-module-overview.mdx';
-
-
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Add the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```csharp
-camera = Camera.GetDefaultCamera();
-
-if (camera != null)
-{
-// Use the settings recommended by id capture.
-camera.ApplySettingsAsync(IdCapture.RecommendedCameraSettings);
-context.SetFrameSourceAsync(camera);
-}
-```
-
-## Create ID Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type and the accepted and rejected documents.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) for all the available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-```csharp
-IdCaptureSettings settings = new IdCaptureSettings
-{
-AcceptedDocuments = IdDocumentType.Passport | IdDocumentType.DriverLicense,
-RejectedDocuments = IdDocumentType.IdCard,
-};
-```
-
-## Implement the Listener
-
-To receive scan results, implement [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener).
-
-Capture results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-For more specific information, use its non-null result properties (e.g. [CapturedId.barcode](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/captured-id.html#property-scandit.datacapture.id.CapturedId.Barcode)).
-
-```csharp
-public class MyListener : Java.Lang.Object, IIdCaptureListener
-{
-public void OnIdCaptured(IdCapture mode, IdCaptureSession session, IFrameData data)
-{
-CapturedId capturedId = session.NewlyCapturedId;
-
-// The recognized fields of the captured ID can vary based on the type.
-if (capturedId.CapturedResultType == CapturedResultType.MrzResult)
-{
-// Handle the information extracted.
-}
-else if (capturedId.CapturedResultType == CapturedResultType.VizResult)
-{
-// Handle the information extracted.
-}
-else if (capturedId.CapturedResultType == CapturedResultType.BarcodeResult)
-{
-// Handle the information extracted.
-}
-}
-
-public void OnErrorEncountered(IdCapture mode, Throwable error, IdCaptureSession session, IFrameData data)
-{
-// Implement to handle an error encountered during the capture process.
-}
-
-public void OnObservationStarted(IdCapture mode)
-{ }
-
-public void OnObservationStopped(IdCapture mode)
-{ }
-}
-```
-
-Alternatively to register [IIdCaptureListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener) interface it is possible to subscribe to corresponding events. For example:
-
-```csharp
-idCapture.IdCaptured += (object sender, IdCaptureEventArgs args) =>
-{
-CapturedId capturedId = args.Session.NewlyCapturedId;
-
-// The recognized fields of the captured ID can vary based on the type.
-if (capturedId.CapturedResultType == CapturedResultType.MrzResult)
-{
-// Handle the information extracted.
-}
-else if (capturedId.CapturedResultType == CapturedResultType.VizResult)
-{
-// Handle the information extracted.
-}
-else if (capturedId.CapturedResultType == CapturedResultType.BarcodeResult)
-{
-// Handle the information extracted.
-}
-};
-```
-
-Create a new ID Capture mode with the chosen settings. Then register the listener:
-
-```csharp
-idCapture = IdCapture.Create(context, settings);
-idCapture.AddListener(new MyListener())
-```
-
-## Set up Capture View and Overlay
-
-When using the built-in camera as [frameSource](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#interface-scandit.datacapture.core.IFrameSource), you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```csharp
-DataCaptureView dataCaptureView = DataCaptureView.Create(this, dataCaptureContext);
-SetContentView(dataCaptureView);
-```
-
-Alternatively you can use a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) from XAML in your MAUI application. For example:
-
-```xml
-
-
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MainPage : ContentPage
-{
-public MainPage()
-{
-InitializeComponent();
-
-// Initialization of DataCaptureView happens on handler changed event.
-dataCaptureView.HandlerChanged += DataCaptureViewHandlerChanged;
-}
-
-private void DataCaptureViewHandlerChanged(object? sender, EventArgs e)
-{
-// Your dataCaptureView configuration goes here, e.g. add overlay
-}
-}
-```
-
-For MAUI development add the [Scandit.DataCapture.Core.Maui](https://www.nuget.org/packages/Scandit.DataCapture.Core.Maui) NuGet package into your project.
-
-Then create an instance of [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) attached to the view:
-
-```csharp
-overlay = IdCaptureOverlay.Create(idCapture, dataCaptureView);
-```
-
-The overlay chooses the displayed UI automatically, based on the selected [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings).
-
-If you prefer to show a different UI or to temporarily hide it, set the appropriate [IdCaptureOverlay.idLayout](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/ui/id-capture-overlay.html#property-scandit.datacapture.id.ui.IdCaptureOverlay.IdLayout).
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-```csharp
-camera.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-And this is it. You can now scan documents.
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/intro.md
deleted file mode 100644
index 0081085c..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/intro.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-import AboutIdCapture from '../../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/supported-documents.md
deleted file mode 100644
index 0318ce1a..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/id-capture/supported-documents.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: netIos
-keywords:
- - netIos
----
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/advanced.md
deleted file mode 100644
index 94437698..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/advanced.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: netIosSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/get-started.md
deleted file mode 100644
index 94437698..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/get-started.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: netIosSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/intro.md
deleted file mode 100644
index 94437698..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/label-capture/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: netIosSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-ar/get-started.md
deleted file mode 100644
index 76dbca4e..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,146 +0,0 @@
----
-sidebar_position: 2
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements:
-
-- Barcode AR: The data capture mode that is used for scan and check functionality.
-- A Barcode AR View: The pre-built UI elements used to highlight items to be checked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode AR Mode
-- Setup the Barcode AR View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/net/ios/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Internal Dependencies
-
-import InternalDependencies from '../../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode AR Mode
-
-The main entry point for the Barcode AR Mode is the `BarcodeAr` object. You can configure the supported Symbologies through its [`BarcodeArSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-ar-settings.html).
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```csharp
-BarcodeArSettings settings = new BarcodeArSettings();
-settings.SetSymbologyEnabled(Symbology.EAN13_UPCA, true);
-```
-
-Then create the mode with the previously created settings:
-
-```csharp
-BarcodeAr mode = new BarcodeAr(dataCaptureContext, settings);
-```
-
-## Setup the `BarcodeArView`
-
-MatrixScan AR’s built-in AR user interface includes buttons and overlays that guide the user through the scan and check process. By adding a [`BarcodeArView`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.check.ui.BarcodeArView), the scanning interface is added automatically to your application.
-
-The `BarcodeArView` is where you provide the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider) to supply the highlight and annotation information for the barcodes to be checked. If *null*, a default highlight is used and no annotations are provided.
-
-The `BarcodeArView` appearance can be customized through [`BarcodeArViewSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-ar-view-settings.html#class-scandit.datacapture.barcode.check.ui.BarcodeArViewSettings), properties on the`BarcodeArView`, and the corresponding settings for your desired highlights and/or annotations, to match your application’s look and feel. The following settings can be customized:
-
-* Audio and haptic feedback
-* Camera position
-* Torch button visibility and its position
-* Switch camera button visibility and its position
-* Zoom control visibility and its position
-* The size, colors, and styles of the highlights and annotations
-
-```csharp
-BarcodeArViewSettings viewSettings = new BarcodeArViewSettings();
-viewSettings.HapticEnabled(false);
-viewSettings.SoundEnabled(false);
-viewSettings.DefaultCameraPosition(CameraPosition.USER_FACING);
-```
-
-Next, create a `BarcodeArView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeArView` is automatically added to the provided parent view.
-
-```csharp
-BarcodeArView barcodeArView = BarcodeArView(parentView, barcodeAr, dataCaptureContext, viewSettings);
-barcodeArView.ShouldShowCameraSwitchControl(true);
-barcodeArView.ShouldShowTorchControl(true);
-barcodeArView.ShouldShowZoomControl(true);
-barcodeArView.CameraSwitchControlPosition(Anchor.TOP_RIGHT);
-barcodeArView.TorchControlPosition(Anchor.BOTTOM_RIGHT);
-barcodeArView.ZoomControlPosition(Anchor.TOP_LEFT);
-```
-
-Configure the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider).
-
-```csharp
-public class AnnotationProvider : BarcodeArAnnotationProvider
-{
- public void AnnotationForBarcode(Context context, Barcode barcode, ICallback callback)
- {
- var annotation = new BarcodeArStatusIconAnnotation(context, barcode);
- annotation.Text = "Example annotation";
- callback.OnData(annotation);
- }
-}
-
-public class HighlightProvider : BarcodeArHighlightProvider
-{
- public void HighlightForBarcode(Context context, Barcode barcode, ICallback callback)
- {
- callback.OnData(new BarcodeArRectangleHighlight(context, barcode));
- }
-}
-```
-
-And set them to the view:
-
-```csharp
-barcodeArView.HighlightProvider(new HighlightProvider());
-barcodeArView.AnnotationProvider(new AnnotationProvider());
-```
-
-## Register the Listener
-
-If you want a callback when a highlight is tapped, register a [BarcodeArViewUiListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-ar-view.html#interface-scandit.datacapture.barcode.check.ui.IBarcodeArViewUiListener).
-
-```csharp
-barcodeArView.SetUiListener(new BarcodeArViewUiListener());
-
-public class BarcodeArViewUiListener : BarcodeArViewUiListener
-{
- public void OnHighlightForBarcodeTapped(BarcodeAr barcodeAr, Barcode barcode, BarcodeArHighlight highlight, View highlightView)
- {
- // Handle tap
- }
-}
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling:
-
-```csharp
-barcodeArView.Start();
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-ar/intro.md
deleted file mode 100644
index 601f43f1..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-displayed_sidebar: netIosSidebar
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# About MatrixScan AR
-
-import AboutMatrixScanCheck from '../../../../partials/intro/_about-matrixscan-ar.mdx'
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/advanced.md
deleted file mode 100644
index 93ce3848..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,136 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Advanced Configurations
-
-MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs.
-
-## Scanning Against A List
-
-There is a function to set a list of expected barcodes if you are scanning against a manifest or item list. If this is used, a progress bar is added to the UI, so you can keep track of the process while scanning.
-
-When scanning against a list, the UI will also show red icons to mark scanned barcodes that aren’t present on the list.
-
-```csharp
-List targetBarcodes = new List();
-targetBarcodes.Add(TargetBarcode.Create("data", 1));
-BarcodeCountCaptureList captureList = BarcodeCountCaptureList.Create(this, targetBarcodes);
-barcodeCount.SetBarcodeCountCaptureList(captureList);
-```
-
-## Barcode Count Status
-
-This feature is used to provide users with more details regarding the items they’re scanning in order to aid effective handling. The icons (available as part of the SDK) appear as an AR overlay after tapping the “Status Mode” button and can be used to highlight the following:
-
-- Expired products
-- Items requiring quality inspection
-- Items that are low in stock
-- Wrong items
-- Fragile items
-
-## Clustering
-
-import Clustering from '../../../../partials/count/_clustering.mdx'
-
-
-
-## Strap Mode
-
-It can be difficult to reach the shutter button if the smart device is attached to the user’s wrist by a strap or similar. In this instance, you can enable a floating shutter button that can be positioned by the end user in a more ergonomically suitable position.
-
-```csharp
-barcodeCountView.ShouldShowFloatingShutterButton = true;
-```
-
-## Filtering
-
-If you have several types of barcodes on your label/package, you may want to scan only one of them.
-
-In this case, you can filter the others out. This can be done by symbology, symbol count, or setting a regex.
-
-For example, you might want to scan only Code 128 barcodes and no PDF417 ones.
-
-```csharp
-BarcodeCountSettings settings = new BarcodeCountSettings();
-barcodeCountSettings.EnableSymbologies(enabledSymbologies);
-
-settings.FilterSettings.ExcludedSymbologies = new[] { Symbology.Pdf417 };
-```
-
-Or, you want to exclude all the barcodes starting with 4 numbers:
-
-```csharp
-BarcodeCountSettings settings = new BarcodeCountSettings();
-
-settings.FilterSettings.ExcludedCodesRegex = "^1234.*";
-```
-
-By default the filters applied to the relevant barcodes are transparent, but you can use [`BarcodeFilterHighlightSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-filter-highlight-settings.html#barcode-filter-highlight-settings) to change the color and level of transparency.
-
-
-
-## Clear Screen Button
-
-There are situations in which the user may find it helpful to clean up their screen (i.e. clear all the AR overlays) but keep the list of barcodes scanned.
-
-If this is the case, you can enable the “Clear screen” button.
-
-```csharp
-barcodeCountView.ShouldShowClearHighlightsButton = true;
-```
-
-## Customize Overlay Colors
-
-MatrixScan Count comes with recommended and user-tested AR overlays. However, if you wish to customize the overlay colors, once the overlay has been added, you can conform to the [IBarcodeCountViewListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view-listener.html#interface-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener) interface. The methods [IBarcodeCountViewListener.BrushForRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForRecognizedBarcode) and [IBarcodeCountViewListener.BrushForUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForUnrecognizedBarcode) are invoked every time a new recognized or unrecognized barcode appears. These can be used to set a brush that will be used to highlight that specific barcode in the overlay. Keep in mind that these methods are relevant only when using the style [BarcodeCountViewStyle.Dot](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view.html#value-scandit.datacapture.barcode.count.ui.BarcodeCountViewStyle.Dot).
-
-```csharp
-public Brush BrushForRecognizedBarcode(BarcodeCountView view, TrackedBarcode trackedBarcode)
-{
-// Return a custom brush
-}
-
-public Brush BrushForUnrecognizedBarcode(BarcodeCountView view, TrackedBarcode trackedBarcode)
-{
-// Return a custom brush
-}
-```
-
-## Notifications
-
-If you want to be notified when a user taps on an overlay, you need to implement the [IBarcodeCountViewListener.OnRecognizedBarcodeTapped()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnRecognizedBarcodeTapped) and [IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped) methods.
-
-```csharp
-public void OnRecognizedBarcodeTapped(BarcodeCountView view, TrackedBarcode trackedBarcode)
-{
-// Do something with the tapped barcode
-}
-
-public void OnUnrecognizedBarcodeTapped(BarcodeCountView view, TrackedBarcode trackedBarcode)
-{
-// Do something with the tapped barcode
-}
-```
-
-## Disable UI Elements
-
-The UI is an integral part of MatrixScan Count and we do not recommend that you use it without it. However, if you wish to disable UI elements you can do it as follows.
-
-Disable buttons:
-
-```csharp
-barcodeCountView.ShouldShowListButton = false;
-barcodeCountView.ShouldShowExitButton = false;
-barcodeCountView.ShouldShowShutterButton = false;
-```
-
-Disable feedback and hints:
-
-```csharp
-barcodeCountView.ShouldShowUserGuidanceView = false;
-barcodeCountView.ShouldShowHints = false;
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/get-started.md
deleted file mode 100644
index 8e846dc9..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,180 +0,0 @@
----
-sidebar_position: 2
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Count to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Count Mode
-- Obtaining the camera instance and set frame source
-- Registering the listener to be informed when scan phase is complete
-- Setting the capture view and AR overlays
-- Configuring the camera for scanning view
-- Storing and retrieving the captured barcodes
-- Resetting the Barcode Count Mode
-- List and exit callbacks
-
-## Create A New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure The Barcode Count Mode
-
-The main entry point for the Barcode Count Mode is the [BarcodeCount](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) object. It is configured through [BarcodeCountSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-settings.html#class-scandit.datacapture.barcode.count.BarcodeCountSettings) and allows you to register one or more listeners that are informed whenever a scan phase has finished.
-
-For this tutorial, we will set up Barcode Count for tracking EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```csharp
-BarcodeCountSettings settings = new BarcodeCountSettings();
-settings.SetSymbologyEnabled(Symbology.Ean13Upca, true);
-```
-
-If you are sure that your environment will only have unique barcodes (i.e. no duplicated values), you can also enable [BarcodeCountSettings.ExpectsOnlyUniqueBarcodes](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-settings.html#property-scandit.datacapture.barcode.count.BarcodeCountSettings.ExpectsOnlyUniqueBarcodes). This option improves scanning performance as long as you are sure that no duplicates will be present. Next, create a [BarcodeCount](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) instance with the [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) and the settings initialized in the previous step:
-
-```csharp
-BarcodeCount barcodeCount = BarcodeCount.Create(dataCaptureContext, settings);
-```
-
-## Obtain Camera Instance And Set Frame Source Used
-
-Our recommended camera settings should be used to achieve the best performance and user experience. The following couple of lines show how to get the recommended settings for MatrixScan Count and create the camera from it:
-
-```csharp
-CameraSettings cameraSettings = BarcodeCount.RecommendedCameraSettings;
-
-Camera camera = Camera.DefaultCamera;
-camera.ApplySettingsAsync(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.SetFrameSourceAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```csharp
-dataCaptureContext.SetFrameSourceAsync(camera);
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [IBarcodeCountListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface and register the listener.
-
-```csharp
-// Register self as a listener to monitor the barcode count session.
-barcodeCount.AddListener(this);
-```
-
-[IBarcodeCountListener.OnScan()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan) is called when the scan phase has finished and results can be retrieved from [BarcodeCountSession](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession).
-
-Alternatively to register [IBarcodeCountListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface it is possible to subscribe to corresponding event. For example:
-
-```csharp
-barcodeCount.Scanned += (object sender, BarcodeCountEventArgs args) =>
-{
-};
-```
-
-## Set Capture View And AR Overlays
-
-MatrixScan Count’s built-in AR user interface includes buttons and overlays that guide the user through the capturing process. By adding a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) to your view hierarchy:
-
-```csharp
-BarcodeCountView barcodeCountView = BarcodeCountView.Create(View.Bounds, dataCaptureContext, barcodeCount);
-```
-
-You can use a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) from XAML in your MAUI application.
-
-```xml
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MyScanPage : ContentPage
-{
-public MyScanPage()
-{
-this.InitializeComponent();
-
-// Initialization of BarcodeCountView happens on handler changed event.
-this.barcodeCountView.HandlerChanged += BarcodeCountViewHandlerChanged;
-}
-
-private void BarcodeCountViewHandlerChanged(object sender, EventArgs e)
-{
-// Your BarcodeCountView configuration goes here, e.g. subscribe for buttons tap events
-}
-}
-```
-
-For MAUI development add [Scandit.DataCapture.Barcode.Maui](https://www.nuget.org/packages/Scandit.DataCapture.Barcode.Maui) NuGet package into your project.
-
-## Set Up The Camera So That It Switches On When You Are In Scanning View
-
-The camera is not automatically turned on when you are in a scanning view. You need to set up the camera so that it switches on when needed and it switches off when not needed anymore. Similarly [BarcodeCount](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) should also be enabled and disabled. For instance, you should switch off the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is not visible anymore (including when the app goes in the background), similarly you want to switch on the camera when the
-[BarcodeCountView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is visible (including when the app goes to the foreground). One way to achieve this is the following:
-
-```csharp
-public override void ViewWillDisappear(bool animated)
-{
-camera.SwitchToDesiredStateAsync(FrameSourceState.Off);
-base.ViewWillDisappear(animated);
-}
-
-public override void ViewWillAppear(bool animated)
-{
-camera.SwitchToDesiredStateAsync(FrameSourceState.On);
-base.ViewWillAppear(animated);
-}
-```
-
-## Store And Retrieve Scanned Barcodes
-
-The values captured as part of the scanning process are part of the [session](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession), and the session is not accessible outside [IBarcodeCountListener.OnScan()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan). Therefore, we recommend that you store the values to present a list, for example when the user taps the list icon. To do this, make a copy of [BarcodeCountSession.RecognizedBarcodes](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count-session.html#property-scandit.datacapture.barcode.count.BarcodeCountSession.RecognizedBarcodes).
-
-## Reset Barcode Count Mode
-
-When the scanning process is over, you need to reset the mode to make it ready for the next process. This clears the list of barcodes scanned and all the AR overlays.
-
-To reset Barcode Count’s scanning process, you need to call the [BarcodeCount.Reset()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-count.html#method-scandit.datacapture.barcode.count.BarcodeCount.Reset) method.
-
-```csharp
-barcodeCount.Reset();
-```
-
-## List And Exit Callbacks
-
-The UI includes two icons (buttons) named “List” and “Exit”. The SDK provides events so you can add the desired action when those icons are tapped by the user.
-
-```csharp
-barcodeCountView.ListButtonTapped += (object sender, ListButtonTappedEventArgs args) =>
-{
-// Show the current progress but the order is not completed
-};
-
-barcodeCountView.ExitButtonTapped += (object sender, ExitButtonTappedEventArgs args) =>
-{
-// The order is completed
-};
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/intro.md
deleted file mode 100644
index 12a359e1..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-count/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# About MatrixScan Count
-
-import AboutMatrixScanCount from '../../../../partials/intro/_about-matrixscan-count.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/advanced.md
deleted file mode 100644
index 09a2c5e7..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## BarcodeFind Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the BarcodeFind mode, such as when the search starts, pauses and stops. To do this, you can directly register a [IBarcodeFindListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself.
-
-Be aware that these listeners will be called from a background thread.
-
-```csharp
-public class BarcodeFindListener : IBarcodeFindListener
-{
-public void OnSearchPaused(ICollection foundItems)
- {
- // The mode was paused
- }
-
- public void OnSearchStarted()
- {
- // The mode was started
- }
-
- public void OnSearchStopped(ICollection foundItems)
-{
-// The mode was stopped after the finish button was clicked
-}
-}
-
-private void Initialize()
-{
-barcodeFind.AddListener(new BarcodeFindListener())
-}
-```
-
-Alternatively it is possible to subscribe to corresponding events [BarcodeFind.SearchPaused](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-find.html#property-scandit.datacapture.barcode.find.BarcodeFind.SearchPaused), [BarcodeFind.SearchStarted](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-find.html#property-scandit.datacapture.barcode.find.BarcodeFind.SearchStarted) or [BarcodeFind.SearchStopped](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-find.html#property-scandit.datacapture.barcode.find.BarcodeFind.SearchStopped). For example:
-
-```csharp
-barcodeFind.SearchStarted += (object? sender, EventArgs args) =>
-{
-// The mode was started
-};
-barcodeFind.SearchPaused += (object? sender, BarcodeFindEventArgs args) =>
-{
-// The mode was paused
-};
-barcodeFind.SearchStopped += (object? sender, BarcodeFindEventArgs args) =>
-{
-// The mode was stopped after the finish button was clicked
-};
-```
-
-## UI configuration
-
-The [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) will by default show a set of UI elements, which can be optionally hidden:
-
-- A play/pause button
-- A finish button
-- A searched items carousel
-- Guidance hints
-
-There is also a progress bar but this is hidden by default.
-
-Each of these elements can be shown or hidden at will.
-
-```csharp
-barcodeFindView.ShouldShowCarousel = false;
-barcodeFindView.ShouldShowProgressBar = true;
-// …
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/get-started.md
deleted file mode 100644
index 76f9b956..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-sidebar_position: 2
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Find Mode
-- Setup the Barcode Find View
-- Registering the Listener to notify about found items
-
-## Create a Data Capture Context
-
-The first step to add find capabilities to your application is to create a new [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Find Mode
-
-The main entry point for the Barcode Find Mode is the [BarcodeFind](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind) object. You can configure the supported Symbologies through its [BarcodeFindSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight (e.g. a list of products).
-
-For this tutorial, we will set up Barcode Find for tracking EAN13 codes. Change this to the correct symbologies for your use case (e.g. Code 128, Code 39…).
-
-First create the settings:
-
-```csharp
-BarcodeFindSettings settings = new BarcodeFindSettings();
-settings.EnableSymbology(Symbology.Ean13Upca, true);
-```
-
-Then you have to create the list of items that will be actively searched for.
-
-In this tutorial, let’s look up two items based on their EAN13 codes. We will attach to the first item some optional information that can be used by the BarcodeFindView to display extra information.
-
-```csharp
-ICollection items = new HashSet()
- {
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215438"),
- new BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)),
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215414"),
- null) // Item information is optional, used for display only
- };
-```
-
-Create the mode with the previously created settings and set the items:
-
-```csharp
-BarcodeFind mode = new BarcodeFind(settings);
-mode.SetItemList(items);
-```
-
-## Setup the BarcodeFindView
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView), the scanning interface (camera preview and searching UI elements) will be added automatically to your application.
-
-The BarcodeFindView appearance can be customized through [BarcodeFindViewSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings):
-
-- Colors of dots in augmented reality overlay
-- Enable sound and haptic alerts
-
-```csharp
-BarcodeFindViewSettings viewSettings = new BarcodeFindViewSettings();
-```
-
-Construct a new BarcodeFindView. The BarcodeFindView is automatically added to the provided parent view.
-
-```csharp
-BarcodeFindView barcodeFindView = BarcodeFindView.Create(parentView, dataCaptureContext, barcodeFind,
-viewSettings);
-```
-
-Connect the BarcodeFindView to the iOS view controller lifecycle. In particular, make sure to call BarcodeFindView.PrepareSearching() on your UIViewController’s [ViewWillAppear](https://learn.microsoft.com/en-us/dotnet/api/uikit.uiviewcontroller.viewwillappear) method to make sure that start up time is optimal.
-
-```csharp
-public override void ViewWillAppear(bool animated)
-{
-base.ViewWillAppear(animated);
-barcodeFindView.PrepareSearching();
-}
-
-public override void ViewWillDisappear(bool animated)
-{
-base.ViewWillDisappear(animated);
-barcodeFindView.StopSearching();
-}
-```
-
-## Subscribe to view events to be notified with found items
-
-The BarcodeFindView displays next to its shutter button a handy “finish” button. Subscribe to a [BarcodeFindView.FinishButtonTapped](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-find-view.html#property-scandit.datacapture.barcode.find.ui.BarcodeFindView.FinishButtonTapped) event to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```csharp
-barcodeFindView.FinishButtonTapped += (object? sender, FinishButtonTappedEventArgs e) =>
-{
-RequireActivity().OnBackPressed();
-};
-```
-
-## Start searching
-
-As soon as everything is set up, control the [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) to start the search.
-
-```csharp
-barcodeFindView.StartSearching();
-```
-
-This is the equivalent of pressing the “Play” button programmatically. It will start the search process, turn on the camera and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/intro.md
deleted file mode 100644
index cd76f63d..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-find/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/advanced.md
deleted file mode 100644
index 22345e1f..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Advanced Configurations
-
-MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.
-
-## BarcodePick Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodePick` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodePickListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-pick-listener.html#interface-scandit.datacapture.barcode.pick.IBarcodePickListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```csharp
-public class BarcodePickListener : IBarcodePickListener
-{
- public void onObservationStopped(ICollection foundItems)
- {
- // The mode was paused
- }
-
- public void onObservationStarted()
- {
- // The mode was started
- }
-}
-
-private void Initialize()
-{
- BarcodePick.AddListener(new BarcodePickListener())
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/get-started.md
deleted file mode 100644
index ce41808b..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,230 +0,0 @@
----
-sidebar_position: 2
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements:
-
-- Barcode Pick: The data capture mode that is used for scan and pick functionality.
-- A Barcode Pick View: The pre-built UI elements used to highlight items to be picked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Pick Mode
-- Setup the Barcode Pick View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Pick Mode
-
-The main entry point for the Barcode Pick Mode is the `BarcodePick` object. You can configure the supported Symbologies through its [`BarcodePickSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-pick-settings.html), and set up the list of items that you want MatrixScan Pick to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```csharp
-BarcodePickSettings settings = new BarcodePickSettings();
-settings.EnableSymbology(Symbology.Ean13Upca, true);
-```
-
-Then you have to create the list of items that will be picked and quantity to be picked for each item.
-
-```csharp
-ICollection items = new HashSet()
-{
- new BarcodePickProduct(
- new BarcodePickProductIdentifier("9783598215438"),
- new BarcodePickProductQuantityToPick(3),
- new BarcodePickProduct(
- new BarcodePickProductIdentifier("9783598215414"),
- new BarcodePickProductQuantityToPick(3)
-};
-```
-
-Create the mode with the previously created settings:
-
-```csharp
-BarcodePick mode = new BarcodePick(settings);
-```
-
-## Setup the `BarcodePickView`
-
-MatrixScan Pick’s built-in AR user interface includes buttons and overlays that guide the user through the scan and pick process. By adding a [`BarcodePickView`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-pick-view.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickView), the scanning interface is added automatically to your application.
-
-The `BarcodePickView` appearance can be customized through [`BarcodePickViewSettings`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-pick-view-settings.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickViewSettings) to match your application’s look and feel. The following settings can be customized:
-
-* Colors of dots in augmented reality overlay
-* Enable sound and haptic alerts
-* Guidelines text
-* Showing hints
-* Finish button
-* Pause button
-* Zoom button
-* Loading Dialog
-
-```csharp
-BarcodePickViewSettings viewSettings = new BarcodePickViewSettings();
-// ...
-```
-(The parent view can be any subclass of ViewGroup, such as FrameLayout, …)
-
-Construct a new `BarcodePickView`. The `BarcodePickView` is automatically added to the provided parent view.
-
-```csharp
-let BarcodePickView = BarcodePickView(parentView: view, context: context, BarcodePick: mode, settings: viewSettings)
-```
-
-You can use a `BarcodePickView` from XAML in your MAUI application.
-
-```xml
-
-
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MyFindBarcodePage : ContentPage
-{
- public MyFindBarcodePage()
- {
- this.InitializeComponent();
-
- // Initialization of BarcodePickView happens on handler changed event.
- this.BarcodePickView.HandlerChanged += SetupBarcodePickView;
- }
-
- private void SetupBarcodePickView(object? sender, EventArgs args)
- {
- // Your BarcodePickView configuration goes here, e.g. subscribe for button tap events
- }
-}
-```
-
-:::important
-For MAUI development add the [`Scandit.DataCapture.Barcode.Maui`](https://www.nuget.org/packages/Scandit.DataCapture.Barcode.Maui) NuGet package into your project.
-:::
-
-Connect the `BarcodePickView` to the iOS view controller lifecycle. In particular, make sure to call `BarcodePickView.prepareSearching()` on your UIViewController’s [`viewWillAppear`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621510-viewwillappear) method to make sure that start up time is optimal.
-
-```csharp
-public override void ViewWillAppear(bool animated)
-{
- base.ViewWillAppear(animated);
- BarcodePickView.PrepareSearching();
-}
-
-public override void ViewWillDisappear(bool animated)
-{
- base.ViewWillDisappear(animated);
- BarcodePickView.StopSearching();
-}
-```
-
-If your are developing on MAUI then connect the BarcodePickView to the MAUI page lifecycle.
-
-In particular, make sure to call `BarcodePickView.OnResume` on your [`Element.HandlerChanged`](https://learn.microsoft.com/en-us/dotnet/api/microsoft.maui.controls.element.handlerchanged) event and `BarcodePickView.OnPause` on your [`Page.OnDisappearing`](https://learn.microsoft.com/en-us/dotnet/api/microsoft.maui.controls.page.ondisappearing).
-
-```csharp
-public FindBarcodePage()
-{
- this.BarcodePickView.HandlerChanged += SetupBarcodePickView;
-}
-
-private void SetupBarcodePickView(object? sender, EventArgs args)
-{
- #if __IOS__
- this.BarcodePickView.PrepareSearching();
- #endif
-}
-
-protected override void OnDisappearing()
-{
- base.OnDisappearing();
- this.BarcodePickView.StopSearching();
-}
-```
-
-## Subscribe to View Events
-
-The `BarcodePickView` displays a **Finish** button next to its shutter button.
-
-Subscribe to a `BarcodePickView.onFinishButtonTapped` event to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```csharp
-BarcodePickView.FinishButtonTapped += (object? sender, FinishButtonTappedEventArgs e) =>
-{
- NavigationController?.PopViewController(animated: true);
-};
-```
-
-However, this convenient “finish” button is not supported with MAUI development. You can create the button manually and invoke `BarcodePickView.StopSearching` to achieve the same functionality. The following code snippet demonstrates how to do this:
-
-`FindBarcodePage.xaml`:
-```csharp
-
- (...)
-
-
-```
-
-`FindBarcodePage.xaml.cs`:
-```csharp
-private void FinishButtonClicked(object? sender, EventArgs args)
-{
- if (Application.Current?.MainPage is NavigationPage navigation)
- {
- BarcodePickView.StopSearching();
- navigation.PopToRootAsync(animated: true);
- }
-}
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `BarcodePickView.start()`.
-
-```csharp
-BarcodePickView.start();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/intro.md
deleted file mode 100644
index 5916b15a..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# About MatrixScan Pick
-
-MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code.
-
-MatrixScan Pick is implemented through functionality provided by [`BarcodePick`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-pick.html).
-
-## UI Overview
-
-* MatrixScan Pick is inspired by the familiar paradigm of a camera, including a shutter button that the user operates in order start and pause the scanning view. The Finish button is used at any time to exit the workflow.
-* It highlights items with obvious and colorful visual dots on screen.
-* When paused, MatrixScan Pick freezes the display at the last view, even if the device is moved. The Play button transitions back to the live view.
-* Textual guidance is displayed from the beginning of the session and as the workflow progresses, informing of the user of changes in item status (i.e. Detected, Ignored, To-Pick, or Picked).
-* Status icons can be defined to provide further information to users for a given barcode. In the live view, the icons are displayed but not tappable. In the frozen view, the status icons can be tapped and expanded to provide additional textual information.
-* The Quick Start Guide takes you through the process to install the full UI. However, you can then customize it by choosing to remove any elements on the screen except for the AR overlays. This allows you to create custom UIs suitable for your own workflows.
-
-
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../barcode-symbologies.mdx) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/advanced.md
deleted file mode 100644
index a63af30c..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/advanced.md
+++ /dev/null
@@ -1,160 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
-
----
-
-# Adding AR Overlays
-
-There are two ways to add advanced AR overlays to a Data Capture View:
-
-- Take advantage of the [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, which provides a ready-to-use implementation for view-based AR overlays.
-- Provide your own custom implementation, using the function [IBarcodeBatchListener.OnSessionUpdated()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) to retrieve the barcode’s current screen position for each frame.
-
-:::note
-
-- The first way is the easiest, as it takes care of adding, removing and animating the overlay’s views whenever needed. It’s also flexible enough to cover the majority of use cases.
-- You can always handle touch events on the views you create like you normally would.
- :::
-
-## Using BarcodeBatchAdvancedOverlay
-
-As mentioned above, the advanced overlay combined with its [listener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) offers an easy way of adding augmentations to your [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView). In this guide we will add a view above each barcode showing its content.
-
-First of all, create a new instance of [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) and add it to the [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-
-```csharp
-BarcodeBatchAdvancedOverlay overlay = BarcodeBatchAdvancedOverlay.Create(barcodeBatch, dataCaptureView);
-```
-
-At this point, you have two options.
-
-- Add a [IBarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-- Use the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) to specify the view, anchor and offset for each barcode.
-
-:::note
-The second way will take priority over the first one, which means that if a view for a barcode has been set using [BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) won’t be invoked for that specific barcode.
-:::
-
-Using [IBarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener)
-
-- You need to implement [IBarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener). This interface’s methods are invoked every time a barcode is newly tracked.
-- [IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning _null_ will show no view.
-- [IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through [Anchor](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/anchor.html#enum-scandit.datacapture.core.Anchor). Be aware that it anchors the view’s center to the anchor point. To achieve anchoring the top of the view or the bottom etc. you will have to set an offset as explained in the next point.
-- [IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [PointWithUnit](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```csharp
-public View ViewForTrackedBarcode(BarcodeBatchAdvancedOverlay overlay, TrackedBarcode trackedBarcode)
-{
-// Create and return the view you want to show for this tracked barcode. You can also return null, to have no view for
-this barcode.
-UITextView textView = new UITextView(new CGRect(0, 0, 200, 50));
-textView.BackgroundColor = UIColor.White;
-textView.Text = trackedBarcode.Barcode.Data;
-return textView;
-}
-
-public Anchor AnchorForTrackedBarcode(
-BarcodeBatchAdvancedOverlay overlay,
-TrackedBarcode trackedBarcode)
-{
-// As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode
-quadrilateral.
-// Use the function 'OffsetForTrackedBarcode' below to adjust the position of the view by providing an offset.
-return Anchor.TopCenter;
-}
-
-public PointWithUnit OffsetForTrackedBarcode(
-BarcodeBatchAdvancedOverlay overlay,
-TrackedBarcode trackedBarcode)
-{
-// This is the offset that will be applied to the view.
-// You can use MeasureUnit.Fraction to give a measure relative to the view itself, the sdk will take care of
-transforming this into pixel size.
-// We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by
-half of the view's height.
-return new PointWithUnit(
-new FloatWithUnit(0f, MeasureUnit.Fraction),
-new FloatWithUnit(-1f, MeasureUnit.Fraction));
-}
-```
-
-Using the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay)
-
-The function [IBarcodeBatchListener.OnSessionUpdated()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) gives you access to a [session](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession), which contains all added, updated and removed tracked barcodes. From here you can create the view you want to display, and then call [BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), [BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode) and [BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```csharp
-public void OnSessionUpdated(BarcodeBatch barcodeBatch, BarcodeBatchSession session, IFrameData frameData)
-{
-// Be careful, this method is not necessarily invoked on the main thread!
-DispatchQueue.MainQueue.DispatchAsync(() =>
-{
-foreach (TrackedBarcode trackedBarcode in session.AddedTrackedBarcodes)
-{
-UITextView textView = new UITextView(new CGRect(0, 0, 200, 50));
-textView.BackgroundColor = UIColor.White;
-textView.Text = trackedBarcode.Barcode.Data;
-overlay.SetViewForTrackedBarcode(trackedBarcode, textView);
-overlay.SetAnchorForTrackedBarcode(trackedBarcode, Anchor.TopCenter);
-overlay.SetOffsetForTrackedBarcode(
-trackedBarcode,
-new PointWithUnit(
-new FloatWithUnit(0f, MeasureUnit.Fraction),
-new FloatWithUnit(-1f, MeasureUnit.Fraction)
-)
-);
-}
-});
-// Dispose the frame when you have finished processing it. If the frame is not properly disposed,
-// different issues could arise, e.g. a frozen, non-responsive, or "severely stuttering" video feed.
-frameData.Dispose();
-}
-```
-
-## Provide your own custom implementation
-
-If you do not want to use the overlay, it is also possible to add augmented reality features based on the tracking identifier and the [quadrilateral](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/common.html#struct-scandit.datacapture.core.Quadrilateral) coordinates that every tracked barcode has. Below are some pointers.
-
-- Set a [IBarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) on the barcode tracking
-- In the [IBarcodeBatchListener.OnSessionUpdated()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function fetch the [added](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.AddedTrackedBarcodes) and [removed](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.RemovedTrackedBarcodes) tracked barcodes.
-- Create and show the views for the added barcodes.
-- Remove the views for the lost barcodes.
-- Add a method that is called 60fps when [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) is enabled. In this method, for each [TrackedBarcode](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/tracked-barcode.html#class-scandit.datacapture.barcode.batch.TrackedBarcode) on-screen, update the position based on [TrackedBarcode.Location](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location).
-
-Please note that there is no need to animate the change of location, the change of position will happen frequently enough that the view will look as it is animated.
-
-:::note
-The frame coordinates from [TrackedBarcode.Location](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location) need to be mapped to view coordinates, using [DataCaptureView.MapFrameQuadrilateralToView()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#method-scandit.datacapture.core.ui.DataCaptureView.MapFrameQuadrilateralToView).
-:::
-
-```csharp
-public void OnSessionUpdated(BarcodeBatch mode, BarcodeBatchSession session, IFrameData frameData)
-{
-// Be careful, this function is not invoked on the main thread!
-DispatchQueue.MainQueue.DispatchAsync(() =>
-{
-foreach (int lostTrackIdentifier in session.RemovedTrackedBarcodes) {
-// You now know the identifier of the tracked barcode that has been lost. Usually here you would remove the views
-associated.
-}
-
-foreach (TrackedBarcode trackedBarcode in session.AddedTrackedBarcodes)
-{
-// Fixed identifier for the tracked barcode.
-int trackingIdentifier = trackedBarcode.Identifier;
-
-// Current location of the tracked barcode.
-Quadrilateral location = trackedBarcode.Location;
-Quadrilateral quadrilateral = dataCaptureView.MapFrameQuadrilateralToView(location);
-
-// You now know this new tracking's identifier and location. Usually here you would create and show the views.
-}
-});
-// Dispose the frame when you have finished processing it. If the frame is not properly disposed,
-// different issues could arise, e.g. a frozen, non-responsive, or "severely stuttering" video feed.
-frameData.Dispose();
-}
-```
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/get-started.md
deleted file mode 100644
index 72349761..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/get-started.md
+++ /dev/null
@@ -1,200 +0,0 @@
----
-sidebar_position: 2
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the MatrixScan mode
-- Using the built-in camera
-- Visualizing the scan process
-- Providing feedback
-- Disabling barcode tracking
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [BarcodeBatchSettings](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) that will get informed whenever a new frame has been processed.
-
-Most of the times, you will not need to implement a [IBarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener), instead you will add a
-[BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and implement a [IBarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-
-For this tutorial, we will setup Barcode Batch for tracking QR codes.
-
-```csharp
-BarcodeBatchSettings settings = BarcodeBatchSettings.Create();
-settings.EnableSymbology(Symbology.Qr, true);
-```
-
-Next, create a [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance with the data capture context and the settings initialized in the previous steps:
-
-```csharp
-BarcodeBatch barcodeBatch = BarcodeBatch.Create(context, settings);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://learn.microsoft.com/en-us/xamarin/ios/app-fundamentals/security-privacy?tabs=macos#:~:text=NSCameraUsageDescription) key in your app’s Info.plist file.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the
-recommended settings and create the camera from it:
-
-```csharp
-camera = Camera.GetDefaultCamera();
-camera?.ApplySettingsAsync(BarcodeBatch.RecommendedCameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.SetFrameSourceAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```csharp
-context.SetFrameSourceAsync(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [IFrameSource.SwitchToDesiredStateAsync()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```csharp
-camera?.SwitchToDesiredStateAsync(FrameSourceState.On);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```csharp
-DataCaptureView dataCaptureView = DataCaptureView.Create(dataCaptureContext, View.Bounds);
-View.AddSubview(dataCaptureView);
-```
-
-Alternatively you can use a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) from XAML in your MAUI application. For example:
-
-```xml
-
-
-
-
-
-
-
-```
-
-You can configure your view in the code behind class. For example:
-
-```csharp
-public partial class MainPage : ContentPage
-{
-public MainPage()
-{
-InitializeComponent();
-
-// Initialization of DataCaptureView happens on handler changed event.
-dataCaptureView.HandlerChanged += DataCaptureViewHandlerChanged;
-}
-
-private void DataCaptureViewHandlerChanged(object? sender, EventArgs e)
-{
-// Your dataCaptureView configuration goes here, e.g. add overlay
-}
-}
-```
-
-For MAUI development add [Scandit.DataCapture.Core.Maui](https://www.nuget.org/packages/Scandit.DataCapture.Core.Maui) NuGet package into your project.
-
-To visualize the results of Barcode Batch, first you need to add the following [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay):
-
-```csharp
-BarcodeBatchBasicOverlay overlay = BarcodeBatchBasicOverlay.Create(barcodeBatch, dataCaptureView);
-```
-
-Once the overlay has been added, you should implement the [IBarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) interface. The method [IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a [brush](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/ui/brush.html#class-scandit.datacapture.core.ui.Brush) that will be used to highlight that specific barcode in the [overlay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay).
-
-```csharp
-public Brush BrushForTrackedBarcode(BarcodeBatchBasicOverlay overlay, TrackedBarcode trackedBarcode)
-{
-// Return a custom Brush based on the tracked barcode.
-}
-```
-
-If you would like to make the highlights tappable, you need to implement the [IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped) method.
-
-```csharp
-public void OnTrackedBarcodeTapped(BarcodeBatchBasicOverlay overlay, TrackedBarcode trackedBarcode)
-{
-// A tracked barcode was tapped.
-}
-```
-
-## Get Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a [IBarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) to provide a similar experience. Below, we use the default [Feedback](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it with your own sound or vibration if you want.
-
-```csharp
-public override void ViewDidLoad()
-{
-base.ViewDidLoad();
-feedback = Feedback.DefaultFeedback;
-}
-```
-
-Next, use this [feedback](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/feedback.html#class-scandit.datacapture.core.Feedback) in a [IBarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener):
-
-```csharp
-public class FeedbackListener : Foundation.NSObject, IBarcodeBatchListener
-{
-public void OnObservationStarted(BarcodeBatch barcodeBatch)
-{
-// Called when Barcode Batch is started.
-// We don't use this callback in this guide.
-}
-
-public void OnObservationStopped(BarcodeBatch barcodeBatch)
-{
-// Called when Barcode Batch is stopped.
-// We don't use this callback in this guide.
-}
-
-public void OnSessionUpdated(BarcodeBatch barcodeBatch, BarcodeBatchSession session, IFrameData frameData)
-{
-if (session.AddedTrackedBarcodes.Any())
-{
-this.feedback.Emit();
-}
-}
-}
-```
-
-[IBarcodeBatchListener.OnSessionUpdated()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The [session](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession) parameter contains information about the currently tracked barcodes, in particular, the newly recognized ones. We check if there are any and if so, we emit the feedback.
-
-As the last step, register the listener responsible for emitting the feedback with the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance.
-
-```csharp
-barcodeBatch.AddListener(feedbackListener);
-```
-
-## Disabling Barcode Batch
-
-To disable barcode tracking set [BarcodeBatch.Enabled](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/barcode-batch.html#property-scandit.datacapture.barcode.batch.BarcodeBatch.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or put it in standby calling [SwitchToDesiredState](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [StandBy](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.Standby).
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/intro.md
deleted file mode 100644
index 51727f48..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/matrixscan/intro.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../../partials/intro/_about-matrixscan.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/migrate-5-to-6.mdx
deleted file mode 100644
index 66a85a41..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/migrate-6-to-7.mdx
deleted file mode 100644
index 209d01ec..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/migrate-7-to-8.mdx
deleted file mode 100644
index 544f2fba..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/parser/get-started.md
deleted file mode 100644
index 7c36fb17..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/parser/get-started.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-sidebar_position: 2
-pagination_prev: null
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/hibc.html), [GS1 Application Identifier (https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/AI) system](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/gs1ai.html) and [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/swissqr.html), [VIN Vehicle Identification Number](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/vin.html), [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/iata-bcbp.html).
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Format-Specific Documentation
-
-- [Supported Data Formats](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/formats.html)
-- [HIBC](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/hibc.html)
-- [GS1 AI](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/gs1ai.html)
-- [GS1 Digital Link](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/gs1-digital-link.html)
-- [Swiss QR](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/swissqr.html)
-- [VIN](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/vin.html)
-- [IATA BCBP](https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/iata-bcbp.html)
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/release-notes.md b/versioned_docs/version-8.1.1/sdks/net/ios/release-notes.md
deleted file mode 100644
index ba84a176..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/release-notes.md
+++ /dev/null
@@ -1,167 +0,0 @@
----
-toc_max_heading_level: 3
-displayed_sidebar: netIosSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Core
-
-* Fixed an issue where the camera preview appeared rotated 90 degrees in landscape orientation
-* Fixed an issue where the interface and video feed could have different visual orientations
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-* Added, in `BarcodeAr`, a new annotation type (`BarcodeArResponsiveAnnotation`), which automatically switches between close-up and far-away info annotations based on the barcode's size on screen
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-* Our SDK can now scan the following documents both in single-side and double-side mode:
- - All Mexican DLs
- - Mexican Voter Cards
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the ["strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the ["ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 ("Missing Resource")
-
-#### Core
-
-* Added the `CodeDuplicate` class to simplify setting special sentinel values for the CodeDuplicateFilter property across barcode scanning modes.
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Added the `cameraStateOnStop` property to BarcodeFindView to optimize camera transitions when switching between modes
-
-#### Id
-
-* Fixed an issue where front expiry date anonymization rectangle is erroneously drawn on front and back
-* Fixed a bug that prevented VizResult anonymization of the following fields: additionalAddressInformation, bloodType, employer, fathersName, issuingAuthority, maritalStatus, mothersName, placeOfBirth, profession, race, residentialStatus
-* Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses
-
-#### Core
-
-* Fixed a small memory leak that affected fresh install runs only
-* Fixed an issue where barcode scanning would permanently stop after the app returned from background, particularly when camera permission dialogs were shown during initialization
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* We've fundamentally redesigned our .NET SDK's architecture to better align with the modern .NET ecosystem!
- * **Platform-Agnostic .net8.0 and net9.0 Targets**: The SDK now includes generic net8.0 and .net9.0 targets. This allows you to reference `Scandit.DataCapture.Core` and related packages directly from non-UI projects, such as class libraries or unit test projects. This makes it significantly easier to build modular, testable applications following principles like Clean Architecture.
-* **Mandatory SDK Initialization**: Due to the architectural changes, the SDK now requires explicit initialization at application startup. The public API has not changed, but you must add the corresponding initialization code to your application for the SDK to function correctly.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`.
-
-### Bug Fixes
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-#### Barcode
-
-* All previously deprecated APIs have been removed in this release.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/net/ios/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/scanning-composite-codes.mdx
deleted file mode 100644
index 01c74e9e..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/single-scanning.md b/versioned_docs/version-8.1.1/sdks/net/ios/single-scanning.md
deleted file mode 100644
index 3c0b0de3..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/single-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-toc_max_heading_level: 4
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Single Scanning
-
-import SingleScanning from '../../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/advanced.md
deleted file mode 100644
index edf90ace..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/advanced.md
+++ /dev/null
@@ -1,130 +0,0 @@
----
-sidebar_position: 3
-pagination_next: null
-framework: netIos
-keywords:
- - netIos
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Hardware Button Control
-
-Allowing the end user to control the scanner with hardware buttons can be useful if your users typically wear gloves. It can also improve ergonomics in some workflows.
-
-SparkScan offers a built-in API to let you do this via [scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled).
-
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan’s built-in error state. Setting the [SDCSparkScanBarcodeErrorFeedback.resumeCapturingDelay](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to `0` allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode (SDCSparkScanViewSettings.DefaultScanningMode). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SDCSparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled (`SDCSparkScanViewSettings.HoldToScanEnabled`).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/get-started.md
deleted file mode 100644
index 30a9d065..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/get-started.md
+++ /dev/null
@@ -1,182 +0,0 @@
----
-sidebar_position: 2
-framework: netIos
-keywords:
- - netIos
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add SparkScan to your application by:
-
-- Create a new Data Capture Context instance.
-- Configure the Spark Scan Mode.
-- Create the SparkScanView with the desired settings and bind it to the application’s lifecycle.
-- Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs.
-
-## Create a New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```csharp
-DataCaptureContext dataCaptureContext = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through SparkScanSettings and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we will set up SparkScan for scanning EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```csharp
-SparkScanSettings settings = new SparkScanSettings();
-HashSet symbologies = new HashSet()
-{
-Symbology.Ean13Upca
-};
-settings.EnableSymbologies(symbologies);
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```csharp
-SparkScan sparkScan = new SparkScan(settings);
-```
-
-## Setup the Spark Scan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The SparkScanView appearance can be customized through SparkScanViewSettings.
-
-```csharp
-SparkScanViewSettings viewSettings = new SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-By adding a [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/spark-scan-view.html), the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/spark-scan-view.html) to your view hierarchy:
-
-Construct a new SparkScan view. The SparkScan view is automatically added to the provided parentView:
-
-```csharp
-SparkScanView sparkScanView = SparkScanView.Create(parentView, dataCaptureContext, sparkScan, viewSettings);
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-When developing on MAUI the SparkScan view should be added as the last item to [AbsoluteLayout](https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/absolutelayout) or [RelativeLayout](https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/relativelayout), to make sure other UI components are visible.
-
-```xml
-
-
-
-
-
-
-
-
-
-```
-
-Additionally, make sure to call [SparkScanView.ViewWillAppear()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.ViewWillAppear) and [SparkScanView.ViewWillDisappear()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.ViewWillDisappear) in your UIViewController’s [ViewWillAppear](https://learn.microsoft.com/en-us/dotnet/api/uikit.uiviewcontroller.viewwillappear) and [ViewWillDisappear](https://learn.microsoft.com/en-us/dotnet/api/uikit.uiviewcontroller.viewwilldisappear)
-callbacks, to make sure that start up time is optimal and scanning is stopped when the app is going in the background.
-
-```csharp
-public override void ViewWillAppear(bool animated)
-{
-base.ViewWillAppear(animated);
-sparkScanView.ViewWillAppear();
-}
-
-public override void ViewWillDisappear(bool animated)
-{
-base.ViewWillDisappear(animated);
-sparkScanView.ViewWillDisappear();
-}
-```
-
-When developing on MAUI, make sure to call SparkScanView.OnAppearing and SparkScanView.OnDisappearing in your [Page.OnAppearing](https://learn.microsoft.com/en-us/dotnet/api/xamarin.forms.page.onappearing) and [Page.OnDisappearing](https://learn.microsoft.com/en-us/dotnet/api/xamarin.forms.page.ondisappearing) callbacks, to make sure that start up time is optimal and scanning is stopped when the app is going in the background.
-
-```csharp
-protected override void OnAppearing()
-{
-base.OnAppearing();
-this.SparkScanView.OnAppearing();
-}
-
-protected override void OnDisappearing()
-{
-base.OnDisappearing();
-this.SparkScanView.OnDisappearing();
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [ISparkScanListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode.
-
-```csharp
-// Register self as a listener to monitor the spark scan session.
-sparkScan.AddListener(this);
-```
-
-[ISparkScanListener.OnBarcodeScanned()](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can
-be retrieved from the first object in the provided barcodes list:
-[SparkScanSession.NewlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode). Please note that this list only contains one barcode entry.
-
-```csharp
-public void OnBarcodeScanned(SparkScan sparkScan, SparkScanSession session, IFrameData? data)
-{
-if (session.NewlyRecognizedBarcode.Count == 0)
-{
-return;
-}
-
-// Gather the recognized barcode
-Barcode barcode = session.NewlyRecognizedBarcode[0];
-
-// This method is invoked from a recognition internal thread.
-// Run the specified action in the UI thread to update the internal barcode list.
-DispatchQueue.MainQueue.DispatchAsync(() =>
-{
-// Update the internal list and the UI with the barcode retrieved above
-this.latestBarcode = barcode;
-});
-}
-```
-
-Alternatively to register [ISparkScanListener](https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface it is possible to subscribe to corresponding events. For example:
-
-```csharp
-sparkScan.BarcodeScanned += (object sender, SparkScanEventArgs args) =>
-{
-if (args.Session.NewlyRecognizedBarcode.Count == 0)
-{
-return;
-}
-
-// Gather the recognized barcode
-Barcode barcode = args.Session.NewlyRecognizedBarcode[0];
-
-// This method is invoked from a recognition internal thread.
-// Run the specified action in the UI thread to update the internal barcode list.
-DispatchQueue.MainQueue.DispatchAsync(() =>
-{
-// Update the internal list and the UI with the barcode retrieved above
-this.latestBarcode = barcode;
-
-// Emit sound and vibration feedback
-this.sparkScanView.EmitFeedback(new SparkScanViewSuccessFeedback());
-});
-}
-```
-
-## Scan Some Barcodes
-
-Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can print out.
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/intro.md
deleted file mode 100644
index 90ee6ef0..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/sparkscan/intro.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-sidebar_position: 1
-pagination_prev: null
-framework: netIos
-keywords:
- - netIos
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying additional scanning modes, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/symbology-properties.mdx
deleted file mode 100644
index 0bdaf87a..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/net/ios/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/net/ios/system-requirements.mdx
deleted file mode 100644
index 5472b13e..00000000
--- a/versioned_docs/version-8.1.1/sdks/net/ios/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/add-sdk.md b/versioned_docs/version-8.1.1/sdks/react-native/add-sdk.md
deleted file mode 100644
index ca771e28..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/add-sdk.md
+++ /dev/null
@@ -1,243 +0,0 @@
----
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_next: null
-framework: react
-keywords:
- - react
----
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-# Installation
-
-This guide shows you how to add the Scandit Data Capture SDK to your existing project.
-
-## Prerequisites
-
-- The latest stable version of [React Native CLI and other related tools and dependencies](https://reactnative.dev/docs/environment-setup).
-- A project with:
- - minimum node version of 18 or higher.
- - minimum iOS deployment target of 14.0 or higher (15.0 or higher for ID Capture)
- - an Android project with target SDK version 23 (Android 6, Marshmallow) or higher (version 24 or higher for ID Capture)
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-
-:::tip
-Android devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-### Internal Dependencies
-
-Certain Scandit Data Capture SDK modules have package dependencies.
-
-| Module | Dependencies | Optional Dependencies |
-| ----------- | ----------- | ----------- |
-| *scandit-react-native-datacapture-core* | None | None |
-| *scandit-react-native-datacapture-barcode* | *scandit-react-native-datacapture-core* | None |
-| *scandit-react-native-datacapture-id* | *scandit-react-native-datacapture-core* | *scandit-react-native-datacapture-id-europe-driving-license* *scandit-react-native-datacapture-id-aamva-barcode-verification* *scandit-react-native-datacapture-id-voided-detection* |
-| *scandit-react-native-datacapture-parser* | None | None |
-| *scandit-react-native-datacapture-label* | *scandit-react-native-datacapture-core* *scandit-react-native-datacapture-barcode* | *scandit-react-native-datacapture-label-text* *scandit-react-native-datacapture-price-label* |
-
-:::tip
-When using ID Capture or Label Capture, consult the respective module's getting started guides to identify the optional dependencies required for your use case. The modules you need to include will vary based on the features you intend to use.
-
-Please be aware that your license may only cover a subset of Barcode and/or ID Capture features. If you require additional features, [contact us](mailto:support@scandit.com).
-:::
-
-## Get a License Key
-
-1. [Sign up](https://ssl.scandit.com/dashboard/sign-up?p=test) or [Sign in](https://ssl.scandit.com/dashboard/sign-in) to your Scandit account
-2. Create a project
-3. Create a license key
-
-If you have a paid subscription, please reach out to [Scandit Support](mailto:support@scandit.com) if you need a new license key.
-
-## Add the SDK
-
-Choose your preferred installation method below. Installing from the package registry is simpler and recommended for most users, while manual installation gives you more control over the SDK version.
-
-:::tip
-You should always make sure to add the `scandit-react-native-datacapture-core` plugin, as all other plugins depend on it.
-:::
-
-### Create a new project
-
-If you do not have a React Native project yet that you'll use, you should create a new one.
-
-```sh
-react-native init HelloScandit
-cd HelloScandit
-```
-
-
-
-
-### Install from Package Registry
-
-To add Scandit plugins from the package registry, run the corresponding commands from your project's root folder.
-
-**Install the core plugin (required):**
-
-
-
- ```sh
- yarn add scandit-react-native-datacapture-core
- ```
-
-
- ```sh
- npm install scandit-react-native-datacapture-core
- ```
-
-
-
-**Then add the plugin(s) for your desired functionality:**
-
-
-
- ```sh
- # For barcode scanning
- yarn add scandit-react-native-datacapture-barcode
-
- # For ID capture
- yarn add scandit-react-native-datacapture-id
-
- # For label capture
- yarn add scandit-react-native-datacapture-label
- ```
-
-
- ```sh
- # For barcode scanning
- npm install scandit-react-native-datacapture-barcode
-
- # For ID capture
- npm install scandit-react-native-datacapture-id
-
- # For label capture
- npm install scandit-react-native-datacapture-label
- ```
-
-
-
-:::tip
-You can add only the plugins you need as described in the [Internal Dependencies](#internal-dependencies) section. You can also specify a version `@`.
-:::
-
-
-
-
-### Install Manually from Dashboard
-
-#### Step 1: Download the SDK from Scandit Dashboard
-
-1. Navigate to the [Scandit Dashboard Downloads page](https://ssl.scandit.com/dashboard/downloads)
-2. Sign in to your Scandit account
-3. Locate the **React Native** section
-4. Click the **Download** button to download the latest React Native SDK archive (`.zip` file)
-
-#### Step 2: Extract and locate the plugins
-
-1. Extract the downloaded `.zip` file to a location of your choice (e.g., `~/Downloads/scandit-react-native-sdk/`)
-2. The extracted archive contains multiple React Native plugin folders, each representing a different SDK module.
-
-#### Step 3: Install the plugins to your project
-
-Navigate to your React Native project root directory and install the plugins using their local paths.
-
-**Install the core plugin (required):**
-
-
-
- ```sh
- yarn add file:../path/to/extracted/scandit-react-native-datacapture-core
- ```
-
-
- ```sh
- npm install file:../path/to/extracted/scandit-react-native-datacapture-core
- ```
-
-
-
-**Then add the plugin(s) for your desired functionality:**
-
-
-
- ```sh
- # For barcode scanning
- yarn add file:../path/to/extracted/scandit-react-native-datacapture-barcode
-
- # For ID capture
- yarn add file:../path/to/extracted/scandit-react-native-datacapture-id
-
- # For label capture
- yarn add file:../path/to/extracted/scandit-react-native-datacapture-label
- ```
-
-
- ```sh
- # For barcode scanning
- npm install file:../path/to/extracted/scandit-react-native-datacapture-barcode
-
- # For ID capture
- npm install file:../path/to/extracted/scandit-react-native-datacapture-id
-
- # For label capture
- npm install file:../path/to/extracted/scandit-react-native-datacapture-label
- ```
-
-
-
-
-
-
-### Additional steps on iOS
-
-1. Camera permissions are required to stream the frame source data into various capture modes. You need to set the “Privacy - Camera Usage Description” field in the Info.plist file for iOS.
-
-```xml
-NSCameraUsageDescription
-Access to the camera is required for scanning.
-```
-
-
-
-2. Then, install the iOS Cocoapods after installing the React Native `node_modules`:
-
-```sh
-cd ios && pod install && cd ..
-```
-
-## Additional Information
-
-### Android Content Providers
-
-On Android, the Scandit SDK uses content providers to initialize the scanning capabilities properly. If your own content providers depend on the Scandit SDK, choose an **initOrder** lower than 10 to make sure the SDK is ready first.
-
-If not specified, **initOrder** is zero by default and you have nothing to worry about.
-
-Check [the official `` documentation](https://developer.android.com/guide/topics/manifest/provider-element).
-
-### Camera Permissions
-
-When using the Scandit Data Capture SDK you will want to set the camera as the frame source for various capture modes. On Android, you have to request camera permissions in your own application before starting scanning. To see how you can achieve this, take a look at our [samples](https://github.com/Scandit/datacapture-react-native-samples).
-
-import OSSLicense from '../../partials/_third-party-licenses-js.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/react-native/ai-powered-barcode-scanning.md
deleted file mode 100644
index aa6dd046..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: react-native
-keywords:
- - react-native
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/react-native/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index 0d9b45a9..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-description: "Learn about the available symbologies and the corresponding configurations and extensions available."
-
-sidebar_position: 3
-pagination_next: null
-framework: react
-keywords:
- - react
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following code shows how to enable scanning Code 128 codes for Barcode Capture:
-
-```js
-const settings = new BarcodeCaptureSettings();
-settings.enableSymbology(Symbology.Code128, true);
-```
-
-import CapturePresents from '../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below lines of code show how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```js
-const settings = new BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(Symbology.Code128);
-symbologySettings.activeSymbolCounts = [6, 7, 8];
-```
-
-import CalculateSymbolCount from '../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you enable a symbology as described above, only dark-on-bright codes are enabled (see [SymbologySettings.isEnabled](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsEnabled)). When you also want to read bright-on-dark codes, color-inverted reading for that symbology must also be enabled (see [SymbologySettings.isColorInvertedEnabled](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsColorInvertedEnabled)):
-
-```js
-const settings = new BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(Symbology.Code128);
-symbologySettings.isColorInvertedEnabled = true;
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that will always be enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum). Enforcing an optional checksum will reduce false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes get discarded as the checksum doesn’t match. All available checksums per symbology can be found in [symbology properties](../symbology-properties.mdx).
-
-You can enforce a specific checksum by setting it through [SymbologySettings.checksums](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```js
-const settings = new BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(Symbology.Code39);
-symbologySettings.checksums = [Checksum.Mod43];
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [SymbologySettings.setExtensionEnabled()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```js
-const settings = new BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(Symbology.Code39);
-symbologySettings.setExtensionEnabled('full_ascii', true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/barcode-capture/get-started.md
deleted file mode 100644
index b1f2d4a8..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/barcode-capture/get-started.md
+++ /dev/null
@@ -1,263 +0,0 @@
----
-sidebar_position: 2
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application.
-
-The general steps are:
-
-- Include the ScanditBarcodeCapture library and its dependencies to your project, if any.
-- Create a new [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and enable the [BarcodeSymbologies](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology) you want to read in your application.
-- Create a new [BarcodeCaptureMode](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance and initialize it with the settings created above.
-- Register a [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [Camera](https://docs.scandit.com/data-capture-sdk/react-native/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [BarcodeCaptureOverlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) and add it to [DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## 1. Obtain a Scandit License Key
-
-A valid Scandit Data Capture SDK license key is required enable any capture mode. Sign into your Scandit account and create a new Scandit license key or copy an existing one.
-
-:::tip
-You can create or copy your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-For new projects, create a new _cross-platform_ license key. Depending on the type of license key, it may require entering an iOS Bundle ID and/or Android App ID. If these values are not identical between platforms, the Bundle ID and App ID can both be entered separated by a comma.
-
-## 2. Download the Scandit SDK
-Add the Scandit SDK dependencies to your current project. Lean more about the [installation requirements](/sdks/react-native/add-sdk).
-
-
-
- ```sh
- npm i scandit-react-native-datacapture-core scandit-react-native-datacapture-barcode
- ```
-
-
- ```sh
- yarn add scandit-react-native-datacapture-core scandit-react-native-datacapture-barcode
- ```
-
-
- ```sh
- pnpm add scandit-react-native-datacapture-core scandit-react-native-datacapture-barcode
- ```
-
-
- ```sh
- bun add scandit-react-native-datacapture-core scandit-react-native-datacapture-barcode
- ```
-
-
-
-## 3. Create the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## 4. Configure the Barcode Scanning Behavior
-
-[BarcodeCapture](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) is one of the [DataCaptureMode](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode) options within the Scandit SDK which scans individual barcodes.
-
-This mode is attached to a [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) and configured by applying the [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings). Then, attaching the [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) will provide new [Barcode](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode.html#class-scandit.datacapture.barcode.Barcode) values when recognized.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called a [Symbology](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific.
-
-Each additional Symbology may reduce recognition speed, therefore only enable the symbologies your application requires.
-
-
-
- ```ts
- const settings = new BarcodeCaptureSettings();
- settings.codeDuplicateFilter = 300; // optionally add a 300ms timeout between scanning identical barcodes
- settings.enableSymbologies([
- Symbology.Code128,
- Symbology.Code39,
- Symbology.QR,
- Symbology.EAN8,
- Symbology.UPCE,
- Symbology.EAN13UPCA,
- ]);
-
- // Create a BarcodeCapture instance with the BarcodeCaptureSettings applied.
- const barcodeCapture = new BarcodeCapture(settings);
- context.addMode(barcodeCapture);
- ```
-
-
- ```js
- const settings = new BarcodeCaptureSettings();
- settings.codeDuplicateFilter = 300; // optionally add a 300ms timeout between scanning identical barcodes
- settings.enableSymbologies([
- Symbology.Code128,
- Symbology.Code39,
- Symbology.QR,
- Symbology.EAN8,
- Symbology.UPCE,
- Symbology.EAN13UPCA,
- ]);
-
- // Create a BarcodeCapture instance with the BarcodeCaptureSettings applied.
- const barcodeCapture = new BarcodeCapture(settings);
-context.addMode(barcodeCapture);
- ```
-
-
-
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.codeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around 500 or even \-1 if you do not want codes to be scanned more than once.
-
-## 5. Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through
-[BarcodeCapture.addListener()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface. For example:
-
-
-
- ```ts
- const barcodeCaptureListener: BarcodeCaptureListener = {
- didScan: async (
- barcodeCapture: BarcodeCapture,
- session: BarcodeCaptureSession,
- getFrameData: () => Promise
- ) => {
- const barcode = session.newlyRecognizedBarcode;
- // Do something with the barcodes
- },
- };
-
- // Add the BarcodeCaptureListener to the BarcodeCapture mode.
- barcodeCapture.addListener(barcodeCaptureListener);
- ```
-
-
- ```js
- const barcodeCaptureListener = {
- didScan: async (
- barcodeCapture,
- session,
- getFrameData
- ) => {
- const barcode = session.newlyRecognizedBarcode;
- // Do something with the barcodes
- },
- };
-
- // Add the BarcodeCaptureListener to the BarcodeCapture mode.
- barcodeCapture.addListener(barcodeCaptureListener);
- ```
-
-
-
-### Rejecting Barcodes
-
-To prevent scanning unwanted codes, you can reject them by adding the desired logic to the `didScan` method. This will prevent the barcode from being added to the session and will not trigger the `didUpdateSession` method.
-
-The example below will only scan barcodes beginning with the digits `09` and ignore all others, using a transparent brush to distinguish a rejected barcode from a recognized one:
-
-```js
-if (!barcode.data?.startsWith('09:')) {
- overlay.brush = Brush.transparent;
- return;
-}
-```
-
-## Use the Built-in Camera
-
-The `DataCaptureContext` supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription)
-key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-
-
- ```ts
- const cameraSettings = BarcodeCapture.recommendedCameraSettings;
- // cameraSettings.preferredResolution = VideoResolution.FullHD; // or adjust default camera settings
-
- const camera = Camera.withSettings(cameraSettings);
-
- // Attaches the Camera object as FrameSource to the DataCaptureContext
- context.setFrameSource(camera);
-
- ... // Setup the BarcodeCaptureMode, BarcodeCaptureListener, etc.
-
- camera.switchToDesiredState(FrameSourceState.On);
- ```
-
-
- ```js
- const cameraSettings = BarcodeCapture.recommendedCameraSettings;
- // cameraSettings.preferredResolution = VideoResolution.FullHD; // or adjust default camera settings
-
- const camera = Camera.withSettings(cameraSettings);
-
- // Attaches the Camera object as FrameSource to the DataCaptureContext
- context.setFrameSource(camera);
-
- ... // Setup the BarcodeCaptureMode, BarcodeCaptureListener, etc.
-
- camera.switchToDesiredState(FrameSourceState.On);
- ```
-
-
-
-The FrameSource for the `DataCaptureContext` configurable by calling [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-The camera is off by default. To turn it on, call [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On).
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-
-```
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```js
-const overlay = BarcodeCaptureOverlay.withBarcodeCaptureForView(
- barcodeCapture,
- view
-);
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [BarcodeCapture.isEnabled](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to _false_.
-
-The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/react-native/barcode-generator.md
deleted file mode 100644
index 4ad4aa06..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/barcode-generator.md
+++ /dev/null
@@ -1,94 +0,0 @@
----
-description: "The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes. "
-
-displayed_sidebar: reactnativeSidebar
-sidebar_label: Get Started
-pagination_prev: null
-pagination_next: null
----
-
-# Barcode Generator
-
-The Barcode Generator is a simple tool to generate barcodes directly from the Scandit SDK. In this guide, we will show you how to use the Barcode Generator to generate barcodes and QR codes.
-
-The Barcode Generator supports the following formats:
-
-* Code 39
-* Code 128
-* EAN 13
-* UPCA
-* ITF
-* QR
-* DataMatrix
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/react-native/add-sdk).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Generating Barcodes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`BarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.BarcodeGeneratorBuilder), and use the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) for the symbology you are interested in, in this example Code 128.
-
-You can configure the colors used in the resulting image:
-
-```javascript
-const DataCaptureContext = Scandit.DataCaptureContext.forLicenseKey(licenseKey);
-const builder = new Scandit.BarcodeGenerator.Code128BarcodeGeneratorBuilder(dataCaptureContext)
- .withBackgroundColor(Color.WHITE)
- .withForegroundColor(Color.BLACK);
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```javascript
-try {
- const generator = await builder.build();
- const image = await generator.generate(dataString, 200);
- // Use the image
-} catch (error) {
- // Handle the error
- console.error(error);
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-generator.html) for more information.
-
-## Generating QR Codes
-
-To generate barcodes, you need to create a [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-With the context you can then instantiate a [`QRCodeBarcodeGeneratorBuilder`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-generator-builder.html#class-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder) using the method of [`BarcodeGenerator`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-generator.html#class-scandit.datacapture.barcode.generator.BarcodeGenerator) specific for QR codes.
-
-You can configure the colors used in the resulting image, and the two settings that can be configured for QR codes: [`QRCodeBarcodeGeneratorBuilder.errorCorrectionLevel`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithErrorCorrectionLevel) and [`QRCodeBarcodeGeneratorBuilder.versionNumber`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-generator-builder.html#method-scandit.datacapture.barcode.generator.QrCodeBarcodeGeneratorBuilder.WithVersionNumber).
-
-```javascript
-const DataCaptureContext = Scandit.DataCaptureContext.forLicenseKey(licenseKey);
-const builder = new Scandit.BarcodeGenerator.QrCodeBarcodeGeneratorBuilder(dataCaptureContext)
- .withBackgroundColor(Color.WHITE)
- .withForegroundColor(Color.BLACK)
- .withErrorCorrectionLevel(Scandit.QrCodeErrorCorrectionLevel.MEDIUM)
- .withVersionNumber(4);
-```
-
-When the builder is configured get the `BarcodeGenerator` and try to generate the image:
-
-```javascript
-try {
- const generator = await builder.build();
- const image = await generator.generate(dataString, 200);
- // Use the image
-} catch (error) {
- // Handle the error
- console.error(error);
-}
-```
-
-See the complete [API reference](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-generator.html) for more information.
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/barcode-selection/get-started.md
deleted file mode 100644
index 46485cc8..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/barcode-selection/get-started.md
+++ /dev/null
@@ -1,149 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Selection to your application. "
-
-sidebar_position: 2
-pagination_next: null
-framework: react
-keywords:
- - react
----
-
-# Get Started
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/react-native/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-In this guide you will learn step-by-step how to add Barcode Selection to your application.
-
-The general steps are:
-
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode selection settings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and choose the right configuration.
-- Create a new [barcode selection mode](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection 'barcode selection mode class') instance and initialize it with the settings created above.
-- Register a [barcode selection listener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/react-native/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-selection-basic-overlay.html#class-scandit.datacapture.barcode.selection.ui.BarcodeSelectionBasicOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## Configure the Barcode Selection Behavior
-
-_Symbologies_
-
-Barcode selection is orchestrated by the [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) [data capture mode](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). It is configured through [BarcodeSelectionSettings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-settings.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) that will get informed whenever new codes have been selected.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```js
-const settings = new BarcodeSelectionSettings();
-settings.enableSymbologies([
- Symbology.Code128,
- Symbology.EAN8,
- Symbology.UPCE,
- Symbology.EAN13UPCA,
-]);
-```
-
-_Selection Types_
-
-The behavior of Barcode Selection can be changed by using a different [selection type](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-type.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionType). This defines the method used by [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) to select codes. Currently there are two types.
-
-If you want the user to select barcodes with a tap, then use [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection). This selection type can automatically freeze the camera preview to make the selection easier. You can configure the freezing behavior via [BarcodeSelectionTapSelection.freezeBehavior](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.FreezeBehavior). With [BarcodeSelectionTapSelection.tapBehavior](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-tap-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection.TapBehavior) you can decide if a second tap on a barcode means that the barcode is unselected or if it is selected another time (increasing the counter).
-
-:::note
-Using [BarcodeSelectionTapSelection](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-tap-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionTapSelection) requires the MatrixScan add-on.
-:::
-
-If you want the selection to happen automatically based on where the user points the camera, then use [BarcodeSelectionAimerSelection](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-aimer-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAimerSelection). It is possible to choose between two different [selection strategies](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-strategy.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionStrategy). Use [BarcodeSelectionAutoSelectionStrategy](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionAutoSelectionStrategy) if you want the barcodes to be selected automatically when aiming at them as soon as the intention is understood by our internal algorithms. Use [BarcodeSelectionManualSelectionStrategy](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-strategy.html#class-scandit.datacapture.barcode.selection.BarcodeSelectionManualSelectionStrategy) if you want the barcodes to be selected when aiming at them and tapping anywhere on the screen.
-
-_Single Barcode Auto Detection_
-
-If you want to automatically select a barcode when it is the only one on screen, turn on [BarcodeSelectionSettings.singleBarcodeAutoDetection](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-settings.html#property-scandit.datacapture.barcode.selection.BarcodeSelectionSettings.SingleBarcodeAutoDetection).
-
-_Creating the mode_
-
-Next, create a [BarcodeSelection](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection.html#class-scandit.datacapture.barcode.selection.BarcodeSelection) instance with the settings initialized in the previous step:
-
-```js
-const barcodeSelection = new BarcodeSelection(settings);
-context.addMode(barcodeSelection);
-```
-
-## Register the Barcode Selection Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) through [BarcodeSelection.addListener()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection.html#method-scandit.datacapture.barcode.selection.BarcodeSelection.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeSelectionListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection-listener.html#interface-scandit.datacapture.barcode.selection.IBarcodeSelectionListener) interface. For example:
-
-```js
-const listener = {
- didUpdateSelection: (barcodeSelection, session) => {
- const newlySelectedBarcodes = session.newlySelectedBarcodes;
- // Do something with the barcodes
- },
-};
-```
-
-Then add the listener:
-
-```js
-barcodeSelection.addListener(listener);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-const cameraSettings = BarcodeSelection.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Camera.default;
-
-if (camera) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(FrameSourceState.On);
-```
-
-
-
-## Disabling Barcode Selection
-
-To disable barcode selection, for instance when the selection is complete, set [BarcodeSelection.isEnabled](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-selection.html#property-scandit.datacapture.barcode.selection.BarcodeSelection.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/barcode-selection/intro.md
deleted file mode 100644
index e0d0f212..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/barcode-selection/intro.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-description: "Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# About Barcode Selection
-
-:::warning
-We recommend using **SparkScan** or **Barcode Capture API** instead of Barcode Selection. With the new [AI-powered features](/sdks/react-native/ai-powered-barcode-scanning), barcode selection in crowded environments is done without the need of a dedicated API. This API will be deprecated.
-:::
-
-Barcode Selection enables you to increase scanning accuracy and prevent users from scanning the wrong code in scenarios where there are multiple barcodes present, such as a crowded shelf, an order catalog with barcodes printed closely together, or a label with multiple barcodes.
-
-Barcode Selection provides two key capabilities:
-
-- **Aim to Select** allows users to select one code at a time. This is especially useful for one-handed operation.
-- **Tap to Select** is a quick way for users to select several codes from the same view. Selection is done by tapping on highlighted barcodes in the live camera preview or on a frozen screen.
-
-:::warning
-Barcode Selection does not support handling of duplicate codes. If a code appears twice in the visible preview both instances will be marked as selected even if only one of them was selected.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/react-native/barcode-symbologies.mdx
deleted file mode 100644
index 75d3810a..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/react-native/batch-scanning.md
deleted file mode 100644
index 9988d402..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/batch-scanning.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "Batch scanning enables you to capture and interact with multiple barcodes simultaneously, making it ideal for inventory management, retail, and logistics applications."
-toc_max_heading_level: 4
-
-
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# Batch Scanning
-
-import BatchScanning from '../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/react-native/core-concepts.mdx
deleted file mode 100644
index 81c9f5d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/react-native/extension-codes.mdx
deleted file mode 100644
index 2ab9349a..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/react-native/features-by-framework.mdx
deleted file mode 100644
index 5f33c395..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/react-native/id-capture/advanced.md
deleted file mode 100644
index 28b8b096..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/id-capture/advanced.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-description: "There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features. "
-
-sidebar_position: 4
-pagination_next: null
-framework: react
-keywords:
- - react
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/react-native/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-```js
-// Default value:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_ONLY);
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_AND_IMAGES);
-
-// Only images are anonymized:
-settings.setAnyonymizationMode(IdAnonymizationMode.IMAGES_ONLY);
-
-// No anonymization:
-settings.setAnyonymizationMode(IdAnonymizationMode.NONE);
-```
-
-## Document Capture Zones
-
-By default, a new instance of [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) creates a single-sided scanner type with no accepted or rejected documents.
-
-To change this, use the `scannerType` method to set the scanner type to either [SingleSideScanner](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-scanner.html#single-side-scanner) or [FullDocumentScanner](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-scanner.html#full-document-scanner).
-
-
-The `FullDocumentScanner` extracts all document information by default. If using the `SingleSideScanner`, you can specify the document zones to extract:
-
-```js
-// To extract data from barcodes on IDs
-SingleSideScanner.barcode(true);
-// To extract data from the visual inspection zone (VIZ) on IDs
-SingleSideScanner.visualInspectionZone(true);
-// To extract data from the machine-readable zone (MRZ) on IDs
-SingleSideScanner.machineReadableZone(true);
-```
-
-## Configure Accepted and Rejected Documents
-
-To configure the documents that should be accepted and/or rejected, use the `acceptedDocuments` and `rejectedDocuments` methods in `IdCaptureSettings`.
-
-These methods are used in conjunction with the [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) and [IdCaptureRegion](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-region.html#enum-scandit.datacapture.id.IdCaptureRegion) enums to enable highly flexible document filtering as may be desired in your application.
-
-For example, to accept only US Driver Licenses:
-
-```js
-settings.acceptedDocuments(DRIVER_LICENSE, Region.US);
-```
-
-Or to accept all Passports *except* those from the US:
-
-```js
-settings.acceptedDocuments(PASSPORT);
-settings.rejectedDocuments(Region.US);
-```
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `CapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `CapturedId` object for a US Driver License will contain different fields than a `CapturedId` object for a Passport.
-
-For a rejected document, a [RejectionReason](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed automatically using the following settings:
-
-* [IdCaptureSettings.rejectForgedAamvaBarcodes](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectForgedAamvaBarcodes): Automatically rejects documents whose AAMVA barcode fails authenticity validation.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/id-capture/get-started.md
deleted file mode 100644
index 01a5e02f..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/id-capture/get-started.md
+++ /dev/null
@@ -1,148 +0,0 @@
----
-description: "This page will guide you through the process of adding ID Capture to your React Native application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards. "
-
-sidebar_position: 2
-framework: react
-keywords:
- - react
----
-
-# Get Started
-
-This page will guide you through the process of adding ID Capture to your React Native application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards.
-
-The general steps are:
-
-- Create a new Data Capture Context instance
-- Access a Camera
-- Configure the Capture Settings
-- Implement a Listener to Receive Scan Results
-- Set-up the Capture View and Overlay
-- Start the Capture Process
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with your integration, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. See the [installation guide](/sdks/react-native/add-sdk.md) for details.
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import IdModuleOverview from '../../../partials/get-started/_id-module-overview-no-eu-dl.mdx';
-
-
-
-## Create the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## Add the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/react-native/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```js
-const camera = Camera.default;
-context.setFrameSource(camera);
-
-const cameraSettings = IdCapture.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-if (camera != null) {
- camera.applySettings(cameraSettings);
-}
-```
-
-## Configure the Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type to use and the documents that should be accepted and/or rejected.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) for all the available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-```js
-const settings = new IdCaptureSettings();
-settings.scannerType = SingleSideScanner(); // To scan only one-sided documents
-// settings.scannerType = FullDocumentScanner(); // To scan both sides of the document
-
-settings.acceptedDocuments.push(
- new DriverLicense(IdCaptureRegion.Any),
- new Passport(IdCaptureRegion.Any)
-);
-settings.rejectedDocuments.push(
- new IdCard(IdCaptureRegion.Any)
-);
-```
-
-## Implement the Listener
-
-To receive scan results, implement and [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener).
-
-Capture results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-For more specific information, use its non-null result properties (e.g. [CapturedId.barcode](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/captured-id.html#property-scandit.datacapture.id.CapturedId.Barcode)).
-
-```js
-const listener = {
- didCaptureId: (idCapture, session) => {
- if (session.newlyCapturedId.isPassport() = true) {
- // Handle the information extracted.
- } else if (session.newlyCapturedId.isDriverLicense() = true) {
- // Handle the information extracted.
- }
- },
- didFailWithError: (idCapture, error, session) => {
- // Handle the error.
- },
-};
-```
-
-Create a new ID Capture mode with the chosen settings. Then register the listener:
-
-```js
-const idCapture = new IdCapture(settings);
-context.addMode(idCapture);
-idCapture.addListener(listener);
-```
-
-## Set up Capture View and Overlay
-
-When using the built-in camera as frame source, you may typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-
-```
-
-Then, add an instance of [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) to the view:
-
-```js
-let overlay = IdCaptureOverlay.withIdCaptureForView(
- idCapture,
- this.viewRef.current
-);
-```
-
-The overlay chooses the displayed UI automatically, based on the selected [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings).
-
-If you prefer to show a different UI or to temporarily hide it, set the appropriate [IdCaptureOverlay.idLayout](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/ui/id-capture-overlay.html#property-scandit.datacapture.id.ui.IdCaptureOverlay.IdLayout).
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-```js
-camera.switchToDesiredState(FrameSourceState.On);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/id-capture/intro.md
deleted file mode 100644
index 193f0986..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/id-capture/intro.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx'; "
-
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/react-native/id-capture/supported-documents.md
deleted file mode 100644
index 299ac7db..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/id-capture/supported-documents.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "Scandit ID Capture provides various types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type. "
-
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: react-native
-keywords:
- - react-native
----
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/img/info-file.png b/versioned_docs/version-8.1.1/sdks/react-native/img/info-file.png
deleted file mode 100644
index 723d11e7..00000000
Binary files a/versioned_docs/version-8.1.1/sdks/react-native/img/info-file.png and /dev/null differ
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/react-native/label-capture/advanced.md
deleted file mode 100644
index 15aac921..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/label-capture/advanced.md
+++ /dev/null
@@ -1,253 +0,0 @@
----
-description: "Guide to customizing overlays in the Scandit React Native Label Capture SDK."
-sidebar_position: 3
-pagination_next: null
-framework: react-native
-keywords:
- - react-native
----
-
-# Advanced Configurations
-
-## Customize the Overlay Appearance
-
-To customize the appearance of the overlay, you can implement a [LabelCaptureBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/ui/label-capture-basic-overlay-listener.html#interface-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener).
-
-The method [brushForLabel()](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForLabel) is called every time a label captured and [brushForFieldOfLabel()](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForFieldOfLabel) is called for each of its fields to determine the brush for the label or field.
-
-```js
-import { useMemo, useEffect, useRef } from 'react';
-import { Brush, Color } from 'scandit-react-native-datacapture-core';
-import {
- LabelCaptureBasicOverlay,
- LabelCaptureBasicOverlayListener,
-} from 'scandit-react-native-datacapture-label';
-
-// Create the overlay for the label capture mode.
-const basicOverlay = useMemo(() => {
- return new LabelCaptureBasicOverlay(labelCapture);
-}, [labelCapture]);
-
-// Create a listener to customize the appearance of captured labels and fields.
-const overlayListener = useMemo(() => ({
- /**
- * Called for each field of a captured label to determine its brush.
- * Return a Brush to customize the field's appearance, or null to use the default.
- */
- brushForFieldOfLabel: (overlay, field, label) => {
- // Create colors with transparency (alpha 0.5 = 50% opacity).
- const cyanColor = Color.fromRGBA(0, 255, 255, 0.5);
- const orangeColor = Color.fromRGBA(255, 165, 0, 0.5);
-
- switch (field.name) {
- case "Barcode":
- // Highlight barcode fields with a cyan color.
- return new Brush(cyanColor, cyanColor, 0);
- case "Expiry Date":
- // Highlight expiry date fields with an orange color.
- return new Brush(orangeColor, orangeColor, 0);
- default:
- // Use a transparent brush for other fields.
- return Brush.transparent;
- }
- },
- /**
- * Called for each captured label to determine its brush.
- * Return a Brush to customize the label's appearance, or null to use the default.
- */
- brushForLabel: (overlay, label) => {
- // Use a transparent brush for the label itself.
- return Brush.transparent;
- },
- /**
- * Called when the user taps on a label.
- */
- didTapLabel: (overlay, label) => {
- // Handle user tap gestures on the label.
- }
-}), []);
-
-// Set up the overlay with the listener and add it to the view.
-useEffect(() => {
- // Assign the listener to the overlay.
- basicOverlay.listener = overlayListener;
-
- // Add the overlay to the data capture view.
- dataCaptureViewRef.current?.addOverlay(basicOverlay);
-
- return () => {
- // Clean up: remove the listener and overlay.
- basicOverlay.listener = null;
- dataCaptureViewRef.current?.removeOverlay(basicOverlay);
- };
-}, [basicOverlay, overlayListener]);
-```
-
-:::tip
-Use brush colors with transparency (alpha < 100%) to not occlude the captured barcodes or texts.
-:::
-
-## Advanced Overlay
-
-For more advanced use cases, such as adding custom views or implementing Augmented Reality (AR) features, you can use the `LabelCaptureAdvancedOverlay`. The example below creates an advanced overlay, configuring it to display a styled warning message below expiry date fields when they're close to expiring, while ignoring other fields.
-
-```jsx
-import React, { useMemo } from 'react';
-import { View, Text, StyleSheet } from 'react-native';
-
-// Create an advanced overlay that allows for custom views to be added over detected label fields
-// This is the key component for implementing Augmented Reality features
-const advancedOverlay = useMemo(() => {
- return new LabelCaptureAdvancedOverlay(labelCapture, dataCaptureView);
-}, [labelCapture, dataCaptureView]);
-
-// Configure the advanced overlay with a listener that handles AR content creation and positioning
-const advancedOverlayListener = useMemo(() => ({
- // This method is called when a label is detected - we return null since we're only adding AR elements to specific fields, not the entire label
- viewForCapturedLabel: (overlay, capturedLabel) => {
- return null;
- },
-
- // This defines where on the detected label the AR view would be anchored
- anchorForCapturedLabel: (overlay, capturedLabel) => {
- return Anchor.Center;
- },
-
- // This defines the offset from the anchor point for the label's AR view
- offsetForCapturedLabel: (overlay, capturedLabel, view) => {
- return new PointWithUnit(0, 0, MeasureUnit.Pixel);
- },
-
- // This method is called when a field is detected in a label
- viewForCapturedLabelField: (overlay, labelField) => {
- // We only want to create AR elements for expiry date fields that are text-based
- if (labelField.name.toLowerCase().includes("expiry") && labelField.type === LabelFieldType.Text) {
-
- // Check if scanned expiry date is too close to actual date
- const daysUntilExpiry = daysUntilExpiryFunction(labelField.text); // Your method
- const dayLimit = 3;
-
- if (daysUntilExpiry < dayLimit) {
- // Create and configure the AR element - a React Native View with appropriate styling
- // This view will appear as an overlay on the camera feed
- return (
-
- Item expires soon!
-
- );
- }
- }
- // Return null for any fields that aren't expiry dates, which means no AR overlay
- return null;
- },
-
- // This defines where on the detected field the AR view should be anchored
- // BottomCenter places it right below the expiry date text for better visibility
- anchorForCapturedLabelField: (overlay, labelField) => {
- return Anchor.BottomCenter;
- },
-
- // This defines the offset from the anchor point
- offsetForCapturedLabelField: (overlay, labelField, view) => {
- return new PointWithUnit(0, 22, MeasureUnit.Dip);
- }
-}), []);
-
-const styles = StyleSheet.create({
- warningContainer: {
- backgroundColor: 'red',
- paddingHorizontal: 16,
- paddingVertical: 8,
- borderRadius: 8,
- flexDirection: 'row',
- alignItems: 'center',
- },
- warningText: {
- color: 'white',
- fontWeight: 'bold',
- fontSize: 14,
- },
-});
-
-useEffect(() => {
- // Assign the overlay listener to the overlay
- advancedOverlay.listener = advancedOverlayListener;
-
- return () => {
- // Clean up
- advancedOverlay.listener = null;
- };
-}, [advancedOverlay, advancedOverlayListener]);
-```
-
-## Validation Flow
-
-Implementing a validation flow in your Smart Label Capture application differs from the [Get Started](/sdks/react-native/label-capture/get-started.md) steps outlined earlier as follows:
-
-### Visualize the Scan Process
-
-Validation flow uses a different overlay, the `LabelCaptureValidationFlowOverlay`. This overlay provides a user interface that guides users through the label capture process, including validation steps.
-
-```jsx
-import React, { useMemo } from 'react';
-
-const validationFlowOverlay = useMemo(() => {
- return new LabelCaptureValidationFlowOverlay(labelCapture, dataCaptureView);
-}, [labelCapture, dataCaptureView]);
-
-// Set the listener to receive validation events
-useEffect(() => {
- validationFlowOverlay.listener = validationFlowListener;
-
- return () => {
- validationFlowOverlay.listener = null;
- };
-}, [validationFlowOverlay, validationFlowListener]);
-```
-
-### Adjust the Hint Messages
-
-```jsx
-import React, { useMemo } from 'react';
-
-const validationSettings = useMemo(() => {
- const settings = new LabelCaptureValidationFlowSettings();
- settings.missingFieldsHintText = "Please add this field";
- settings.standbyHintText = "No label detected, camera paused";
- settings.validationHintText = "fields captured"; // X/Y (X fields out of total Y) is shown in front of this string
- settings.validationErrorText = "Input not valid";
- settings.requiredFieldErrorText = "This field is required";
- settings.manualInputButtonText = "Add info manually";
-
- return settings;
-}, []);
-
-// Apply the settings to the overlay
-useEffect(() => {
- validationFlowOverlay.applySettings(validationSettings);
-}, [validationFlowOverlay, validationSettings]);
-```
-
-### Define a Listener
-
-To handle validation events, implement the `LabelCaptureValidationFlowOverlayListener` interface.
-
-```jsx
-const validationFlowListener = useMemo(() => ({
- // This is called by the validation flow overlay when a label has been fully captured and validated
- onValidationFlowLabelCaptured: (fields) => {
- let barcodeData = null;
- let expiryDate = null;
-
- fields.forEach(field => {
- if (field.name === "") {
- barcodeData = field.barcode?.data;
- } else if (field.name === "") {
- expiryDate = field.text;
- }
- });
-
- // Handle the captured values
- }
-}), []);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/label-capture/get-started.md
deleted file mode 100644
index 4a87892c..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/label-capture/get-started.md
+++ /dev/null
@@ -1,290 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Smart Label Capture to your application. "
-
-sidebar_position: 2
-framework: react-native
-keywords:
- - react-native
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Smart Label Capture to your application.
-
-The general steps are:
-
-- Create a component to handle the capture process
-- Initialize the Data Capture Context
-- Initialize the Label Capture Mode
-- Implement a listener to handle captured labels
-- Visualize the scan process
-- Start the camera
-- Provide feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/react-native/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import LabelCaptureModuleOverview from '../../../partials/get-started/_smart-label-capture-module-overview.mdx';
-
-
-
-## Create a Component to Handle the Capture Process {#create-component}
-
-To start capturing labels, you need to setup and configure the Data Capture Context, Camera, and Label Capture Mode.
-
-You can then add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy to display the camera preview on the screen together with UI elements that guide the user through the capture process.
-
-You can create a component that initializes all the necessary objects and adds the DataCaptureView to the view hierarchy.
-
-```js
-import { DataCaptureView } from "scandit-react-native-datacapture-core"
-
-export const YourDataCaptureView = (props: Props) => {
- const { /* ... */ } = props
-
- const dataCaptureViewRef = useRef(null)
-
- const [dataCaptureContext] = // see Data Capture Context section
- const camera = // see Camera section
-
- const labelCapture = useMemo(() => {
- // Initialize as described in the Label Capture Mode section
- }, [dataCaptureContext])
-
- const labelCaptureListener = useMemo(() => ({
- // Implement a listener as described in the Implement a Listener section
- }), [onLabelCaptured])
-
- const labelCaptureOverlay = useMemo(() => {
- // Initialize the overlay as described in the Visualize the Scan Process section
- }, [labelCapture])
-
-
- // Add listener to the LabelCapture mode
- useEffect(() => {
- labelCapture.addListener(labelCaptureListener)
- return () => {
- labelCapture.removeListener(labelCaptureListener)
- }
- }, [labelCapture, labelCaptureListener])
-
- // Add the overlay to the DataCaptureView
- useEffect(() => {
- const dataCaptureView = dataCaptureViewRef.current
- dataCaptureView?.addOverlay(basicOverlay)
- return () => {
- dataCaptureView?.removeOverlay(basicOverlay)
- }
- }, [basicOverlay, basicOverlayListener])
-
- // Subscribe to the AppState and start/stop the camera
- // as described in the Start the Camera section
-
- return (
-
-
-
- )
-}
-```
-
-## Initialize the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## Initialize the Label Capture Mode
-
-The main entry point for the Label Capture Mode is the [LabelCapture](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/label-capture.html#class-scandit.datacapture.label.LabelCapture) object.
-
-It is configured through [LabelCaptureSettings](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/label-capture-settings.html#class-scandit.datacapture.label.LabelCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) that get informed whenever a new frame has been processed.
-
-```js
-import { useMemo } from 'react';
-import { Symbology } from 'scandit-react-native-datacapture-barcode';
-import {
- CustomBarcode,
- ExpiryDateText,
- LabelCapture,
- LabelCaptureSettings,
- LabelDefinition,
-} from 'scandit-react-native-datacapture-label';
-
-const labelCapture = useMemo(() => {
- // Create a barcode field with the expected symbologies.
- const barcodeField = CustomBarcode.initWithNameAndSymbologies('Barcode', [
- Symbology.EAN13UPCA,
- Symbology.Code128,
- ]);
- barcodeField.optional = false;
-
- // Create an expiry date text field using the ExpiryDateText preset.
- const expiryDateField = new ExpiryDateText('Expiry Date');
- expiryDateField.optional = true;
-
- // Create a label definition with the fields created above.
- const labelDefinition = new LabelDefinition('Product Label');
- labelDefinition.fields = [barcodeField, expiryDateField];
-
- // Create the label capture settings from the label definition.
- const settings = LabelCaptureSettings.settingsFromLabelDefinitions([labelDefinition], {});
-
- // Create the label capture mode with the settings.
- const labelCapture = new LabelCapture(settings);
-
- // Add the mode to the data capture context created earlier.
- dataCaptureContext.addMode(labelCapture);
-
- return labelCapture;
-}, [dataCaptureContext]);
-```
-
-## Implement a Listener to Handle Captured Labels
-
-To get informed whenever a new label has been recognized, add a [LabelCaptureListener](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) through [LabelCapture.addListener()](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/label-capture.html#method-scandit.datacapture.label.LabelCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First conform to the `LabelCaptureListener` interface. Here is an example of how to implement a listener that processes the captured labels based on the label capture settings defined above.
-
-Remember to add and remove listeners as described in the [Create Component](#create-component) section.
-
-```js
-import { useMemo } from 'react';
-import { Feedback } from 'scandit-react-native-datacapture-core';
-import { LabelCaptureListener } from 'scandit-react-native-datacapture-label';
-
-const labelCaptureListener = useMemo(() => ({
- didUpdateSession: (labelCapture, session) => {
- // The session update callback is called for every processed frame.
- // Early return if no label has been captured.
- if (session.capturedLabels.length === 0) {
- return;
- }
-
- // Process each captured label.
- session.capturedLabels.forEach((capturedLabel) => {
- const fields = capturedLabel.fields;
-
- // Access the barcode field by its name (as defined in the label definition).
- // The barcode property contains the scanned barcode data.
- const barcodeField = fields.find((field) => field.name === 'Barcode');
- const barcodeData = barcodeField?.barcode?.data;
-
- // Access the expiry date field. Use the text property for OCR-captured text,
- // or the asDate() method to get a parsed LabelDateResult.
- const expiryDateField = fields.find((field) => field.name === 'Expiry Date');
- const expiryDateText = expiryDateField?.text;
- const expiryDateResult = expiryDateField?.asDate();
-
- // Handle the captured data as needed, for example:
- // - Update your app's state
- // - Navigate to a results screen
- // - Send data to your backend
- console.log('Barcode:', barcodeData);
- console.log('Expiry Date:', expiryDateText);
- });
-
- // Disable label capture to prevent capturing the same labels multiple times.
- // Re-enable it when you're ready to scan again.
- labelCapture.isEnabled = false;
-
- // Emit feedback to indicate a successful scan.
- // See the Feedback section for customization options.
- Feedback.defaultFeedback.emit();
- }
-}), []);
-```
-
-## Visualize the Scan Process
-
-The capture process can be visualized by adding a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy. The view controls the UI elements, such as the viewfinder and overlays, that are shown to visualize captured labels.
-
-To visualize the results of Label Capture, you can choose between two overlays, [LabelCaptureBasicOverlay](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/ui/label-capture-basic-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureBasicOverlay) and [LabelCaptureAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/ui/label-capture-advanced-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureAdvancedOverlay).
-
-Here is an example of how to add a `LabelCaptureBasicOverlay` to the `DataCaptureView`. Remember to add and remove overlays from the data capture view as described in the [Create Component](#create-component) section.
-
-```js
-import { useMemo } from 'react';
-import { RectangularViewfinder, RectangularViewfinderStyle } from 'scandit-react-native-datacapture-core';
-import { LabelCaptureBasicOverlay } from 'scandit-react-native-datacapture-label';
-
-const labelCaptureOverlay = useMemo(() => {
- // Create the overlay for the label capture mode created earlier.
- const overlay = new LabelCaptureBasicOverlay(labelCapture);
-
- // Optionally, add a viewfinder to guide users through the capture process.
- const viewfinder = new RectangularViewfinder(RectangularViewfinderStyle.Square);
- overlay.viewfinder = viewfinder;
-
- return overlay;
-}, [labelCapture]);
-```
-
-:::tip
-See the [Advanced Configurations](advanced.md) section for more information about how to customize the appearance of the overlays and how to use the advanced overlay to display arbitrary Android views such as text views, icons or images.
-:::
-
-## Start the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/react-native/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```js
-import { Camera, FrameSourceState } from 'scandit-react-native-datacapture-core';
-import { LabelCapture } from 'scandit-react-native-datacapture-label';
-
-// Get the default camera (usually the back-facing camera).
-const camera = Camera.default;
-
-// Set the camera as the frame source for the data capture context.
-dataCaptureContext.setFrameSource(camera);
-
-// Use the recommended camera settings for label capture.
-const cameraSettings = LabelCapture.createRecommendedCameraSettings();
-
-// Depending on the use case, further camera settings adjustments can be made here.
-camera?.applySettings(cameraSettings);
-```
-
-Once the Camera, DataCaptureContext, DataCaptureView and LabelCapture are initialized, you can switch on the camera to start capturing labels.
-
-Typically, this is done once the view becomes active and the user granted permission to use the camera, or once the user presses continue scanning after handling a previous scan.
-
-```js
-// Turn on the camera to start capturing labels.
-await camera.switchToDesiredState(FrameSourceState.On);
-```
-
-Please refer to the available [sample apps](https://github.com/Scandit/datacapture-react-native-samples) for detailed examples of camera permission handling and view lifecycle management.
-
-## Provide Feedback
-
-Label Capture doesn’t emit feedback (sound or vibration) by default when a new label is recognized, as it may be that the label is not complete and you choose to ignore it and wait for the next recognition.
-
-However, we provide a `Feedback` class that you can use to emit feedback when a label is recognized and successfully processed.
-
-Here, we use the default [Feedback](https://docs.scandit.com/data-capture-sdk/react-native/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it with your own sound or vibration.
-
-```js
-import { Feedback } from 'scandit-react-native-datacapture-core';
-
-// Get the default feedback configuration.
-const feedback = Feedback.defaultFeedback;
-```
-
-After creating the feedback, you can emit it on successful scans with `feedback.emit()`. See the `LabelCaptureListener` implementation above for more information.
-
-:::note
-Audio feedback is only played if the device is not muted.
-:::
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/label-capture/intro.md
deleted file mode 100644
index dd0abdd6..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/label-capture/intro.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-description: "import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx'; "
-
-sidebar_label: About Smart Label Capture
-title: About Smart Label Capture
-toc_max_heading_level: 4
-pagination_prev: null
-framework: react-native
-keywords:
- - react-native
----
-
-import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx';
-
-
-
-import ValidationFlow from '../../../partials/intro/_about_validation_flow.mdx';
-
-
-
-See [here](./advanced.md#validation-flow) for more details.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/label-capture/label-definitions.md b/versioned_docs/version-8.1.1/sdks/react-native/label-capture/label-definitions.md
deleted file mode 100644
index e9a26877..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/label-capture/label-definitions.md
+++ /dev/null
@@ -1,181 +0,0 @@
----
-description: "A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans. "
-
-framework: react
-toc_max_heading_level: 4
-keywords:
- - react
----
-
-# Label Definitions
-
-A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans.
-
-Smart Label Capture provides a [Label Definition](https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api/label-definition.html#label-definition) API, enabling you to configure and extract structured data from predefined and custom labels. This feature provides a flexible way to recognize and decode fields within a specific label layout such as price tags, VIN labels, or packaging stickers without needing to write custom code for each label type.
-
-There are two approaches to using label definitions:
-
-- [**Pre-built Labels**](#pre-built-labels)
-- [**Custom Labels**](#custom-labels)
-
-## Pre-built Labels
-
-Smart Label Capture includes ready-made label definitions for common use cases. These pre-built options let you recognize and extract information from standard label types without creating custom configurations:
-
-
-
-### Example: Price label
-
-Use `LabelDefinition.createPriceCaptureDefinition()` to create a pre-built label definition for price labels, such as those found in retail environments:
-
-
-
-```js
-import { LabelCaptureSettings, LabelDefinition } from 'scandit-react-native-datacapture-label';
-
-// Create a pre-built price capture label definition.
-const priceLabel = LabelDefinition.createPriceCaptureDefinition('price-label');
-
-// Create the label capture settings from the label definition.
-const settings = LabelCaptureSettings.settingsFromLabelDefinitions([priceLabel], {});
-```
-
-## Custom Labels
-
-If Smart Label Capture’s pre-built options don’t fit your needs, define a custom label instead. Custom labels can combine your own fields with any of the available pre-built ones.
-
-:::tip
-The following characters are recognized: `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()-./:,$¶"`.
-:::
-
-### Custom Fields
-
-There are two types of custom fields you can define:
-
-
-
-The following properties are available to configure custom fields:
-
-| Property | Required | Description |
-|----------|----------|-------------|
-| `valueRegexes` | Yes | The regex patterns that identify the target string in the scanned content. |
-| `anchorRegexes` | No | Used to specify keywords or phrases that help identify the context of the field. This is particularly useful when the label contains multiple fields that could match the same pattern (e.g., when both packaging and expiry dates are present). |
-| `symbologies` | Yes (barcode fields) | The barcode symbologies to match for barcode fields. This is important for ensuring that the field only captures data from specific barcode types, enhancing accuracy and relevance. |
-| `optional` | No | Whether the field is optional or mandatory. This is helpful when certain fields may not be present on every scan. |
-
-#### Example: Fish Shipping Box
-
-This example shows how to create a custom label definition for a fish shipping box, which includes fields for barcode and batch number.
-
-
-
-```js
-import { Symbology } from 'scandit-react-native-datacapture-barcode';
-import {
- CustomBarcode,
- CustomText,
- LabelCaptureSettings,
- LabelDefinition,
-} from 'scandit-react-native-datacapture-label';
-
-// Create a custom label definition for a fish shipping box.
-const shippingLabel = new LabelDefinition('shipping-label');
-
-// Add a barcode field with Code 128 symbology.
-const barcodeField = CustomBarcode.initWithNameAndSymbology('barcode-field', Symbology.Code128);
-shippingLabel.addField(barcodeField);
-
-// Add a custom text field for the batch number.
-// Use anchorRegexes to specify keywords that help identify the field context.
-// Use valueRegexes to specify the expected format of the field data.
-const batchNumberField = new CustomText('batch-number-field');
-batchNumberField.anchorRegexes = ['Batch'];
-batchNumberField.valueRegexes = ['FZ\\d{5,10}'];
-batchNumberField.optional = true;
-shippingLabel.addField(batchNumberField);
-
-// Create the label capture settings from the label definition.
-const settings = LabelCaptureSettings.settingsFromLabelDefinitions([shippingLabel], {});
-```
-
-### Pre-built Fields
-
-You can also build your label using pre-built fields. These common fields speed up integration because their `valueRegexes`, `anchorRegexes`, and `symbologies` are already predefined.
-
-Customization of pre-built fields is done via the `valueRegexes`, `anchorRegexes`, and `isOptional` methods, which allow you to specify the expected format of the field data.
-
-:::tip
-All pre-built fields come with default `valueRegexes` and `anchorRegexes` that are suitable for most use cases. **Setting either property is optional and will override the defaults**.
-
-You can set `anchorRegexes` to an empty array to remove the default anchor patterns, allowing you to rely solely on the `valueRegexes` for detection.
-:::
-
-import FeatureList from '@site/src/components/FeatureList';
-
-#### Barcode Fields
-
-
-
-#### Price and Weight Fields
-
-
-
-#### Date and Custom Text Fields
-
-
-
-#### Example: Hard disk drive label
-
-This example demonstrates how to configure a label definition for a hard disk drive (HDD) label, which typically includes common fields like serial number and part number.
-
-
-
-```js
-import { Symbology } from 'scandit-react-native-datacapture-barcode';
-import {
- LabelCaptureSettings,
- LabelDefinition,
- PartNumberBarcode,
- SerialNumberBarcode,
-} from 'scandit-react-native-datacapture-label';
-
-// Create a custom label definition for an HDD label.
-const hddLabel = new LabelDefinition('hdd-label');
-
-// Add a serial number barcode field.
-// Pre-built fields like SerialNumberBarcode have predefined valueRegexes and anchorRegexes.
-const serialNumberField = SerialNumberBarcode.initWithNameAndSymbology('serial-number', Symbology.Code128);
-hddLabel.addField(serialNumberField);
-
-// Add a part number barcode field.
-const partNumberField = PartNumberBarcode.initWithNameAndSymbology('part-number', Symbology.Code128);
-hddLabel.addField(partNumberField);
-
-// Create the label capture settings from the label definition.
-const settings = LabelCaptureSettings.settingsFromLabelDefinitions([hddLabel], {});
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/label-scanning.md b/versioned_docs/version-8.1.1/sdks/react-native/label-scanning.md
deleted file mode 100644
index fc458e24..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/label-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Label scanning enables you to capture and extract data from labels containing multiple barcodes and printed text, making it ideal for retail, logistics, and inventory management applications."
-toc_max_heading_level: 4
-pagination_prev: null
-framework: react-native
-keywords:
- - react-native
----
-
-# Label Scanning
-
-import LabelScanning from '../../partials/_label-scanning.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-ar/get-started.md
deleted file mode 100644
index 40d2b0a0..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements: "
-
-sidebar_position: 2
-framework: react
-keywords:
- - react
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements:
-
-- Barcode AR: The data capture mode that is used for scan and check functionality.
-- A Barcode AR View: The pre-built UI elements used to highlight items to be checked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode AR Mode
-- Setup the Barcode AR View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## Configure the Barcode AR Mode
-
-The main entry point for the Barcode AR Mode is the `BarcodeAr` object. You can configure the supported Symbologies through its [`BarcodeArSettings`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-ar-settings.html), and set up the list of items that you want MatrixScan AR to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```js
-const settings = BarcodeArSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-The create the mode with the previously created settings:
-
-```js
-const mode = new BarcodeAr(settings);
-```
-
-## Setup the `BarcodeArView`
-
-MatrixScan AR’s built-in AR user interface includes buttons and overlays that guide the user through the scan and check process. By adding a [`BarcodeArView`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.check.ui.BarcodeArView), the scanning interface is added automatically to your application.
-
-The `BarcodeArView` is where you provide the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider) to supply the highlight and annotation information for the barcodes to be checked. If *null*, a default highlight is used and no annotations are provided.
-
-The `BarcodeArView` appearance can be customized through [`BarcodeArViewSettings`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-ar-view-settings.html#class-scandit.datacapture.barcode.check.ui.BarcodeArViewSettings), and the corresponding settings for your desired highlights and/or annotations, to match your application’s look and feel. The following settings can be customized:
-
-* Audio and haptic feedback
-* Torch button visibility and its position
-* Switch camera button visibility and its position
-* Zoom control visibility and its position
-* The size, colors, and styles of the highlight and annotation overlays
-
-```js
-const viewSettings = new BarcodeArViewSettings();
-```
-
-Next, create a `BarcodeArView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeArView` is automatically added to the provided parent view.
-
-```js
-let barcodeAr;
- {
- barcodeArView = view;
- // Handle the view as needed, for example
- barcodeArView.startSearching();
- }}
-> ;
-```
-
-## Register the Listener
-
-The `BarcodeArView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodeArViewUiListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-ar-view.html#interface-scandit.datacapture.barcode.check.ui.IBarcodeArViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```js
-barcodeArView.barcodeArViewUiListener = {
- didTapFinishButton(foundItems: BarcodeArItem[]) {
- },
-};
-```
-
-## Start searching
-
-As soon as everything is set up, control the [BarcodeArView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.check.ui.BarcodeArView) to start the search.
-
-```js
-barcodeArView.start();
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-ar/intro.md
deleted file mode 100644
index 9d8fed5c..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# About MatrixScan AR
-
-import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/advanced.md
deleted file mode 100644
index 7fda0130..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-description: "MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: react
-keywords:
- - react
----
-
-# Advanced Configurations
-
-MatrixScan Count is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Count to best fit your needs.
-
-## Scanning Against A List
-
-There is a function to set a list of expected barcodes if you are scanning against a manifest or item list. If this is used, a progress bar is added to the UI, so you can keep track of the process while scanning.
-
-When scanning against a list, the UI will also show red icons to mark scanned barcodes that aren’t present on the list.
-
-```js
-const barcodeCountCaptureListListener = {
- didUpdateSession: (barcodeCountCaptureList, session) => {
- // Handling the session
- },
-};
-
-const targetBarcodes = [TargetBarcode.create('data', 1)];
-const barcodeCountCaptureList = BarcodeCountCaptureList.create(
- barcodeCountCaptureListListener,
- targetBarcodes
-);
-barcodeCount.setBarcodeCountCaptureList(barcodeCountCaptureList);
-```
-
-## Clustering
-
-import Clustering from '../../../partials/count/_clustering.mdx'
-
-
-
-## Tote Mapping
-
-import Totes from '../../../partials/count/_tote-mapping.mdx'
-
-
-
-## Strap Mode
-
-It can be difficult to reach the shutter button if the smart device is attached to the user’s wrist by a strap or similar. In this instance, you can enable a floating shutter button that can be positioned by the end user in a more ergonomically suitable position.
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowFloatingShutterButton = true;
- }
- }}
- />
-);
-```
-
-## Filtering
-
-If you have several types of barcodes on your label/package, you may want to scan only one of them.
-
-In this case, you can filter the others out. This can be done by symbology, symbol count, or setting a regex.
-
-For example, you might want to scan only Code 128 barcodes and no PDF417 ones.
-
-```js
-const settings = new BarcodeCountSettings();
-barcodeCountSettings.enableSymbologies(enabledSymbologies);
-
-const excludedSymbologies = [Symbology.PDF417];
-const filterSettings = settings.filterSettings;
-filterSettings.excludedSymbologies = excludedSymbologies;
-```
-
-Or, you want to exclude all the barcodes starting with 4 numbers:
-
-```js
-const settings = new BarcodeCountSettings();
-
-const filterSettings = settings.filterSettings;
-filterSettings.excludedCodesRegex = '^1234.*';
-```
-
-By default the filters applied to the relevant barcodes are transparent, but you can use [`BarcodeFilterHighlightSettings`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-filter-highlight-settings.html#barcode-filter-highlight-settings) to change the color and level of transparency.
-
-
-
-## Clear Screen Button
-
-There are situations in which the user may find it helpful to clean up their screen (i.e. clear all the AR overlays) but keep the list of barcodes scanned.
-
-If this is the case, you can enable the “Clear screen” button.
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowClearHighlightsButton = true;
- }
- }}
- />
-);
-```
-
-## Customize Overlay Colors
-
-MatrixScan Count comes with recommended and user-tested AR overlays. However, if you wish to customize the overlay colors, once the overlay has been added, you can conform to the [BarcodeCountViewListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view-listener.html#interface-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener) interface. The methods [BarcodeCountViewListener.brushForRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForRecognizedBarcode) and [BarcodeCountViewListener.brushForUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.BrushForUnrecognizedBarcode) are invoked every time a new recognized or unrecognized barcode appears. These can be used to set a brush that will be used to highlight that specific barcode in the overlay. Keep in mind that these methods are relevant only when using the style [BarcodeCountViewStyle.Dot](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view.html#value-scandit.datacapture.barcode.count.ui.BarcodeCountViewStyle.Dot).
-
-```js
-const viewListener = {
- brushForRecognizedBarcode(view, trackedBarcode) {
- // Return a custom brush
- },
-
- brushForUnrecognizedBarcode(view, trackedBarcode) {
- // Return a custom brush
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.listener = viewListener;
- }
- }}
- />
-);
-```
-
-## Notifications
-
-If you want to be notified when a user taps on an overlay, you need to implement the[BarcodeCountViewListener.didTapRecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnRecognizedBarcodeTapped) and [BarcodeCountViewListener.didTapUnrecognizedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view-listener.html#method-scandit.datacapture.barcode.count.ui.IBarcodeCountViewListener.OnUnrecognizedBarcodeTapped) methods.
-
-```js
-const viewListener = {
- didTapRecognizedBarcode: (view, trackedBarcode) => {
- console.log(
- `Tapped recognized barcode with data ${trackedBarcode.barcode.data}`
- );
- },
- didTapUnrecognizedBarcode: (view, trackedBarcode) => {
- console.log(
- `Tapped unrecognized barcode with data ${trackedBarcode.barcode.data}`
- );
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.listener = viewListener;
- }
- }}
- />
-);
-```
-
-## Disable UI Elements
-
-The UI is an integral part of MatrixScan Count and we do not recommend that you use it without it.
-However, if you wish to disable UI elements you can do it as follows.
-
-Disable buttons:
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowListButton = false;
- view.shouldShowExitButton = false;
- view.shouldShowShutterButton = false;
- }
- }}
- />
-);
-```
-
-Disable feedback and hints:
-
-```js
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.shouldShowUserGuidanceView = false;
- view.shouldShowHints = false;
- }
- }}
- />
-);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/get-started.md
deleted file mode 100644
index d0f9fbd0..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,162 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Count to your application. "
-
-sidebar_position: 2
-framework: react
-keywords:
- - react
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Count to your application.
-
-The general steps are:
-
-1. Create a new Data Capture Context instance
-2. Configure the Barcode Count Mode
-3. Obtain camera instance and set frame source used
-4. Register the listener to be informed when scanned phase is over
-5. Set capture view and AR overlays
-6. Set up the camera so that it switches on when you are in scanning view
-7. Store and retrieve scanned barcodes
-8. Reset Barcode Count mode
-9. List and Exit callbacks
-
-## Create A New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure The Barcode Count Mode
-
-The main entry point for the Barcode Count Mode is the [BarcodeCount](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) object. It is configured through [BarcodeCountSettings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count-settings.html#class-scandit.datacapture.barcode.count.BarcodeCountSettings) and allows you to register one or more listeners that are informed whenever a scan phase has finished.
-
-For this tutorial, we will set up Barcode Count for tracking EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```js
-const settings = new BarcodeCountSettings();
-settings.enableSymbologies([Symbology.EAN13UPCA]);
-```
-
-If you are sure that your environment will only have unique barcodes (i.e. no duplicated values), you can also enable [BarcodeCountSettings.expectsOnlyUniqueBarcodes](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count-settings.html#property-scandit.datacapture.barcode.count.BarcodeCountSettings.ExpectsOnlyUniqueBarcodes). This option improves scanning performance as long as you are sure that no duplicates will be present. Next, create a [BarcodeCount](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) instance with the [Data Capture Context](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) and the settings initialized in the previous step:
-
-```js
-const barcodeCount = new BarcodeCount(settings);
-context.addMode(barcodeCount);
-```
-
-## Obtain Camera Instance And Set Frame Source Used
-
-Our recommended camera settings should be used to achieve the best performance and user experience. The following couple of lines show how to get the recommended settings for MatrixScan Count and create the camera from it:
-
-```js
-const cameraSettings = new CameraSettings();
-
-const camera = Camera.default;
-camera.applySettings(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the [BarcodeCountListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count-listener.html#interface-scandit.datacapture.barcode.count.IBarcodeCountListener) interface and register the listener.
-
-[BarcodeCountListener.didScan()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan) is called when the scan phase has finished and results can be retrieved from [BarcodeCountSession](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession).
-
-## Set Capture View And AR Overlays
-
-MatrixScan Count’s built-in AR user interface includes buttons and overlays that guide the user through the capturing process. By adding a
-[BarcodeCountView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) to your view hierarchy:
-
-```js
-const barcodeCountViewComponent = (
-
-);
-```
-
-## Set Up The Camera So That It Switches On When You Are In Scanning View
-
-The camera is not automatically turned on when you are in a scanning view. You need to set up the camera so that it switches on when needed and it switches off when not needed anymore. Similarly [BarcodeCount](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count.html#class-scandit.datacapture.barcode.count.BarcodeCount) should also be enabled and disabled. For instance, you should switch off the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is not visible anymore (including when the app goes in the background), similarly you want to switch on the camera when the [BarcodeCountView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-count-view.html#class-scandit.datacapture.barcode.count.ui.BarcodeCountView) is visible (including when the app goes to the foreground). One way to achieve this is the following:
-
-```js
-componentDidMount() {
-handleAppStateChangeSubscription = AppState.addEventListener('change', handleAppStateChange);
-}
-
-componentWillUnmount() {
-handleAppStateChangeSubscription.remove();
-}
-
-handleAppStateChange = async (nextAppState) => {
-if (nextAppState.match(/inactive|background/)) {
-camera.switchToDesiredState(FrameSourceState.Off);
-} else {
-camera.switchToDesiredState(FrameSourceState.On);
-}
-}
-```
-
-## Store And Retrieve Scanned Barcodes
-
-The values captured as part of the scanning process are part of the [session](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count-session.html#class-scandit.datacapture.barcode.count.BarcodeCountSession), and the session is not accessible outside [BarcodeCountListener.didScan()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count-listener.html#method-scandit.datacapture.barcode.count.IBarcodeCountListener.OnScan). Therefore, we recommend that you store the values to present a list, for example when the user taps the list icon. To do this, make a copy of [BarcodeCountSession.recognizedBarcodes](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count-session.html#property-scandit.datacapture.barcode.count.BarcodeCountSession.RecognizedBarcodes):
-
-```js
-const listener = {
- didScan: (barcodeCapture, session, getFrameData) => {
- const allRecognizedBarcodes = session.recognizedBarcodes;
-
- // Handle barcodes
- },
-};
-
-barcodeCount.addListener(listener);
-```
-
-## Reset Barcode Count Mode
-
-When the scanning process is over, you need to reset the mode to make it ready for the next process. This clears the list of barcodes scanned and all the AR overlays.
-
-To reset Barcode Count’s scanning process, you need to call the [BarcodeCount.reset()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-count.html#method-scandit.datacapture.barcode.count.BarcodeCount.Reset) method.
-
-```js
-barcodeCount.reset();
-```
-
-## List And Exit Callbacks
-
-The UI includes two icons (buttons) named “List” and “Exit”. The SDK provides the callbacks so you can add the desired action when those icons are tapped by the user.
-
-```js
-const viewUiListener = {
- didTapListButton: (view) => {
- // Show the current progress but the order is not completed
- },
-
- didTapExitButton: (view) => {
- // The order is completed
- },
-};
-
-const barcodeCountViewComponent = (
- {
- if (view) {
- view.uiListener = viewUiListener;
- }
- }}
- />
-);
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/intro.md
deleted file mode 100644
index 548108c4..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-count/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# About MatrixScan Count
-
-import AboutMatrixScanCount from '../../../partials/intro/_about-matrixscan-count.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/advanced.md
deleted file mode 100644
index ca55ec65..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-description: "MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: react
-keywords:
- - react
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## Set up a listener on the BarcodeFind mode
-
-You may want more fine-grained knowledge over the different events happening during the life of the BarcodeFind mode, such as when the search starts, pauses and stops. To do this, you can directly register a [BarcodeFindListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself.
-
-Be aware that these listeners will be called from a background thread.
-
-```js
-mode.addListener({
- didStartSearch() {
- // The mode was started
- },
-
- didPauseSearch(foundItems: BarcodeFindItem[]) {
- // The mode was paused
- },
-
- didStopSearch(foundItems: BarcodeFindItem[]) {
- // The mode was stopped after the finish button was clicked
- },
-});
-```
-
-## UI configuration
-
-The [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) will by default show a set of UI elements, which can be optionally hidden:
-
-- A play/pause button
-- A finish button
-- A searched items carousel
-- Guidance hints
-
-There is also a progress bar but this is hidden by default.
-
-Each of these elements can be shown or hidden at will.
-
-```js
-barcodeFindView.shouldShowCarousel = false;
-barcodeFindView.shouldShowProgressBar = true;
-// …
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/get-started.md
deleted file mode 100644
index 18b669bc..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,115 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements: "
-
-sidebar_position: 2
-framework: react
-keywords:
- - react
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-The general steps are:
-
-1. Create a new Data Capture Context instance.
-2. Configure the Barcode Find Mode.
-3. Setup the BarcodeFindView.
-4. Register a listener to be notified with found items
-5. Start searching
-
-## Create the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## Configure the Barcode Find Mode
-
-The main entry point for the Barcode Find Mode is the [BarcodeFind](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind) object. You can configure the supported Symbologies through its [BarcodeFindSettings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight (e.g. a list of products).
-
-For this tutorial, we will set up Barcode Find for tracking EAN13 codes. Change this to the correct symbologies for your use case (e.g. Code 128, Code 39…).
-
-First create the settings:
-
-```js
-const settings = BarcodeFindSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-Then you have to create the list of items that will be actively searched for.
-
-In this tutorial, let’s look up two items based on their EAN13 codes. We will attach to the first item some optional information that can be used by the BarcodeFindView to display extra information.
-
-```js
-const items = [
-new BarcodeFindItem(new BarcodeFindItemSearchOptions("9783598215438"),
-new BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)),
-new BarcodeFindItem(new BarcodeFindItemSearchOptions("9783598215414"), null) // Item information is optional, used for
-display only
-]
-
-Create the mode with the previously created settings and set the items:
-
-const mode = new BarcodeFind(settings);
-mode.setItemList(items);
-```
-
-## Setup the BarcodeFindView
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView), the scanning interface (camera preview and searching UI elements) will be added automatically to your application.
-
-The BarcodeFindView appearance can be customized through [BarcodeFindViewSettings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings):
-
-- Colors of dots in augmented reality overlay
-- Enable sound and haptic alerts
-
-```js
-const viewSettings = new BarcodeFindViewSettings();
-```
-
-Construct a new BarcodeFindView. The BarcodeFindView is automatically added to the provided parent view.
-
-```js
-let barcodeFind;
- {
- barcodeFindView = view;
- // Handle the view as needed, for example
- barcodeFindView.startSearching();
- }}
-> ;
-```
-
-## Register a listener to be notified with found items
-
-The BarcodeFindView displays next to its shutter button a handy “finish” button. Register a [BarcodeFindViewUiListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-find-view.html#interface-scandit.datacapture.barcode.find.ui.IBarcodeFindViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```js
-barcodeFindView.barcodeFindViewUiListener = {
- didTapFinishButton(foundItems: BarcodeFindItem[]) {
- // This method is called when the user presses the
- // finish button. It returns the list of all items that were found during
- // the session.
- },
-};
-```
-
-## Start searching
-
-As soon as everything is set up, control the [BarcodeFindView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView) to start the search.
-
-```js
-barcodeFindView.startSearching();
-```
-
-This is the equivalent of pressing the “Play” button programmatically. It will start the search process, turn on the camera and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/intro.md
deleted file mode 100644
index b316c46e..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-find/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/advanced.md
deleted file mode 100644
index a611eba0..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: react
-keywords:
- - react
----
-
-# Advanced Configurations
-
-MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.
-
-## BarcodePick Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodePick` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodePickListener`](https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api/barcode-pick-listener.html#interface-scandit.datacapture.barcode.pick.IBarcodePickListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```javascript
-mode.addListener({
- onObservationStarted() {
- // The mode was started
- },
-
- onObservationStopped(foundItems: BarcodeFindItem[]) {
- // The mode was stopped after the finish button was clicked
- },
-});
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/get-started.md
deleted file mode 100644
index 0de2fad4..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,127 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements: "
-
-sidebar_position: 2
-framework: react
-keywords:
- - react
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Pick to your application. Implementing MatrixScan Pick involves two primary elements:
-
-- Barcode Pick: The data capture mode that is used for scan and pick functionality.
-- A Barcode Pick View: The pre-built UI elements used to highlight items to be picked.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Pick Mode
-- Setup the Barcode Pick View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## Configure the Barcode Pick Mode
-
-The main entry point for the Barcode Pick Mode is the `BarcodePick` object. You can configure the supported Symbologies through its [`BarcodePickSettings`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-pick-settings.html), and set up the list of items that you want MatrixScan Pick to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```javascript
-const settings = BarcodePickSettings();
-settings.enableSymbology(Symbology.ean13Upca, true);
-```
-
-Then you have to create the list of items that will be picked and quantity to be picked for each item.
-
-```javascript
-const items = [
- new BarcodePickProduct(new BarcodePickProductIdentifier("9783598215438"),
- new BarcodePickProductQuantityToPick(3),
- new BarcodePickProduct(new BarcodePickProductIdentifier("9783598215414"), new BarcodePickProductQuantityToPick(3)
-]
-```
-
-Create the mode with the previously created settings:
-
-```javascript
-const mode = new BarcodePick(settings);
-```
-
-## Setup the `BarcodePickView`
-
-MatrixScan Pick’s built-in AR user interface includes buttons and overlays that guide the user through the scan and pick process. By adding a [`BarcodePickView`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-pick-view.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickView), the scanning interface is added automatically to your application.
-
-The `BarcodePickView` appearance can be customized through [`BarcodePickViewSettings`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-pick-view-settings.html#class-scandit.datacapture.barcode.pick.ui.BarcodePickViewSettings) to match your application’s look and feel. The following settings can be customized:
-
-* Colors of dots in augmented reality overlay
-* Enable sound and haptic alerts
-* Guidelines text
-* Showing hints
-* Finish button
-* Pause button
-* Zoom button
-* Loading Dialog
-
-```javascript
-const viewSettings = new BarcodePickViewSettings();
-// ...
-```
-
-Construct a new `BarcodePickView`. The `BarcodePickView` is automatically added to the provided parent view.
-
-```javascript
-let BarcodePick;
- {
- BarcodePickView = view;
- // Handle the view as needed, for example
- BarcodePickView.start();
- }}
->
-```
-
-## Register the Listener
-
-The `BarcodePickView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodePickViewUiListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-pick-view.html#interface-scandit.datacapture.barcode.pick.ui.IBarcodePickViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-In this tutorial, we will then navigate back to the previous screen to finish the find session.
-
-```javascript
-BarcodePickView.BarcodePickViewUiListener = {
- didTapFinishButton(foundItems: BarcodePickProduct[]) {
- // This method is called when the user presses the
- // finish button. It returns the list of all items that were found during
- // the session.
- }
-};
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `BarcodePickView.start()`.
-
-```javascript
-BarcodePickView.start();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/intro.md
deleted file mode 100644
index c9c7ad4b..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-description: "MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# About MatrixScan Pick
-
-MatrixScan Pick is a pre-built UI that uses augmented reality overlays to highlight specific items that need to be picked. Whereas MatrixScan AR is fully customizable, MatrixScan Pick is a pre-built solution that allows you to add a scan and pick experience with augmented reality to an existing native app, with just a few lines of code.
-
-MatrixScan Pick is implemented through functionality provided by [`BarcodePick`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-pick.html).
-
-## UI Overview
-
-* MatrixScan Pick is inspired by the familiar paradigm of a camera, including a shutter button that the user operates in order start and pause the scanning view. The Finish button is used at any time to exit the workflow.
-* It highlights items with obvious and colorful visual dots on screen.
-* When paused, MatrixScan Pick freezes the display at the last view, even if the device is moved. The Play button transitions back to the live view.
-* Textual guidance is displayed from the beginning of the session and as the workflow progresses, informing of the user of changes in item status (i.e. Detected, Ignored, To-Pick, or Picked).
-* Status icons can be defined to provide further information to users for a given barcode. In the live view, the icons are displayed but not tappable. In the frozen view, the status icons can be tapped and expanded to provide additional textual information.
-* The Quick Start Guide takes you through the process to install the full UI. However, you can then customize it by choosing to remove any elements on the screen except for the AR overlays. This allows you to create custom UIs suitable for your own workflows.
-
-
-
-## Supported Symbologies
-
-MatrixScan Find supports all [symbologies](../barcode-symbologies.mdx) **except** DotCode, MaxiCode and postal codes (KIX, RM4SCC).
-
-If you are not familiar with the symbologies that are relevant for your use case, you can use capture presets that are tailored for different verticals (e.g. retail, logistics, etc.).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/advanced.md
deleted file mode 100644
index a98fd8c9..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/advanced.md
+++ /dev/null
@@ -1,157 +0,0 @@
----
-description: "In the previous section we covered how to vizualize the scan process using the `BarcodeBatchBasicOverlay`. In this section we will cover how to add custom AR overlays to your MatrixScan application. "
-
-sidebar_position: 3
-pagination_next: null
-framework: react
-keywords:
- - react
-
----
-
-# Adding AR Overlays
-
-In the previous section we covered how to vizualize the scan process using the `BarcodeBatchBasicOverlay`. In this section we will cover how to add custom AR overlays to your MatrixScan application.
-
-:::tip
-When using the new React Native architecture on iOS, ensure that your React Native version is `>= 0.79` and that your app delegate implements the `ScanditReactNativeFactoryContainer` protocol available in our React-Native core module.
-
-If you have followed the [React Native upgrade guide](https://raw.githubusercontent.com/react-native-community/rn-diff-purge/release/0.79.2/RnDiffApp/ios/RnDiffApp/AppDelegate.swift), you should already have the required property implemented.
-:::
-
-There are two ways to add custom AR overlays to your application:
-
-- Using the [`BarcodeBatchAdvancedOverlay`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, our ready-to-use implementation for view-based AR overlays.
-- Provide your own fully custom implementation by using the [`BarcodeBatchListener.didUpdateSession()`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function to retrieve the tracking information and implement your own AR overlay.
-
-The first option is the easiest and recommended approach for most applications. It covers adding, removing, and animating the overlay’s views whenever needed and is also flexible enough to cover the majority of use cases.
-
-## Using BarcodeBatchAdvancedOverlay
-
-As mentioned above, the advanced overlay combined with its [listener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) offers an easy way of adding augmentations to your [DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView). In this guide we will add a view above each barcode showing its content.
-
-First of all, create a new instance of [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) and add it to the
-[DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-
-```js
-const overlay = BarcodeBatchAdvancedOverlay.withBarcodeBatchForView(
- barcodeBatch,
- view
-);
-```
-
-At this point, you have two options.
-
-- Add a [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-- Use the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) to specify the view, anchor and offset for each barcode.
-
-:::note
-The second way will take priority over the first one, which means that if a view for a barcode has been set using [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) won’t be invoked for that specific barcode.
-:::
-
-Using [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener)
-
-- You need to implement [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener). This interface’s methods are invoked every time a barcode is newly tracked.
-- [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning _null_ will show no view.
-- [BarcodeBatchAdvancedOverlayListener.anchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through [Anchor](https://docs.scandit.com/data-capture-sdk/react-native/core/api/anchor.html#enum-scandit.datacapture.core.Anchor 'Anchor enum'). Be aware that it anchors the view’s center to the anchor point. To achieve anchoring the top of the view or the bottom etc. you will have to set an offset as explained in the next point.
-- [BarcodeBatchAdvancedOverlayListener.offsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [PointWithUnit](https://docs.scandit.com/data-capture-sdk/react-native/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```js
-// The component must be registered: `AppRegistry.registerComponent('ARView', () => ARView)` e.g. in index.js
-class ARView extends BarcodeBatchAdvancedOverlayView {
-render() {
-return {this.props.barcodeData}
-}
-}
-
-// ...
-
-overlay.listener = {
-viewForTrackedBarcode: (overlay, trackedBarcode) => {
-// Create and return the view you want to show for this tracked barcode. You can also return null, to have no view
-for this barcode.
-return new ARView({barcodeData: trackedBarcode.barcode.data});
-},
-
-anchorForTrackedBarcode: (overlay, trackedBarcode) => {
-// As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode
-quadrilateral.
-// Use the function 'offsetForTrackedBarcode' below to adjust the position of the view by providing an offset.
-return Anchor.TopCenter;
-},
-
-offsetForTrackedBarcode: (overlay, trackedBarcode) => {
-// This is the offset that will be applied to the view.
-// You can use .Fraction to give a measure relative to the view itself, the SDK will take care of transforming this
-into pixel size.
-// We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by
-half of the view's height.
-return new PointWithUnit(
-new NumberWithUnit(0, MeasureUnit.Fraction),
-new NumberWithUnit(-1, MeasureUnit.Fraction),
-);
-},
-};
-```
-
-Using the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay)
-
-The function [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) gives you access to a
-[session](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession), which contains all added, updated and removed tracked barcodes. From here you can create the view you want to display, and then call [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), [BarcodeBatchAdvancedOverlay.setAnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode) and [BarcodeBatchAdvancedOverlay.setOffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```js
-didUpdateSession: (barcodeBatch, session) => {
- session.addedTrackedBarcodes.map((trackedBarcode) => {
- let trackedBarcodeView = new ARView({
- barcodeData: trackedBarcode.barcode.data,
- });
-
- this.overlay.setViewForTrackedBarcode(trackedBarcodeView, trackedBarcode);
- this.overlay.setAnchorForTrackedBarcode(Anchor.TopCenter, trackedBarcode);
- this.overlay.setOffsetForTrackedBarcode(
- new PointWithUnit(
- new NumberWithUnit(0, MeasureUnit.Fraction),
- new NumberWithUnit(-1, MeasureUnit.Fraction)
- ),
- trackedBarcode
- );
- });
-};
-```
-
-## Provide your own custom implementation
-
-If you do not want to use the overlay, it is also possible to add augmented reality features based on the tracking identifier and the [quadrilateral](https://docs.scandit.com/data-capture-sdk/react-native/core/api/common.html#struct-scandit.datacapture.core.Quadrilateral) coordinates that every tracked barcode has. Below are some pointers.
-
-- Set a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) on the barcode tracking
-- In the [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function fetch the [added](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.AddedTrackedBarcodes) and [removed](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.RemovedTrackedBarcodes) tracked barcodes.
-- Create and show the views for the added barcodes.
-- Remove the views for the lost barcodes.
-- Add a method that is called 60fps when [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) is enabled. In this method, for each [TrackedBarcode](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/tracked-barcode.html#class-scandit.datacapture.barcode.batch.TrackedBarcode) on-screen, update the position based on [TrackedBarcode.location](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location). Please note that there is no need to animate the change of location, the change of position will happen frequently enough that the view will look as it is animated.
-
-:::note
-The frame coordinates from [TrackedBarcode.location](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location) need to be mapped to view coordinates, using
-[DataCaptureView.viewQuadrilateralForFrameQuadrilateral()](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#method-scandit.datacapture.core.ui.DataCaptureView.MapFrameQuadrilateralToView).
-:::
-
-```js
-didUpdateSession: (barcodeBatch, session) => {
- session.removedTrackedBarcodes.map((lostTrackIdentifier) => {
- // You now know the identifier of the tracked barcode that has been lost.
- // Usually here you would remove the views associated.
- });
-
- session.addedTrackedBarcodes.map((trackedBarcode) => {
- // Fixed identifier for the tracked barcode.
- const trackingIdentifier = trackedBarcode.identifier;
-
- // Current location of the tracked barcode.
- const location = trackedBarcode.location;
- view
- .viewQuadrilateralForFrameQuadrilateral(location)
- .then((quadrilateral) => {
- // You now know the location of the tracked barcode.
- });
- });
-};
-```
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/get-started.md
deleted file mode 100644
index e1a722b4..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/get-started.md
+++ /dev/null
@@ -1,158 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan to your application. "
-
-framework: react
-keywords:
- - react
-
----
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the MatrixScan mode
-- Using the built-in camera
-- Visualizing the scan process
-- Providing feedback
-- Disabling barcode tracking
-
-## Create the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [BarcodeBatchSettings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) that will get informed whenever a new frame has been processed.
-
-Most of the times, you will not need to implement a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener), instead you will add a [BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and implement a [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-
-For this tutorial, we will setup Barcode Batch for tracking QR codes.
-
-```js
-const settings = new BarcodeBatchSettings();
-settings.enableSymbology(Symbology.QR, true);
-```
-
-Next, create a [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance with the data capture context and the settings initialized in the previous steps:
-
-```js
-const barcodeBatch = new BarcodeBatch(settings);
-context.addMode(barcodeBatch);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-:::important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-const cameraSettings = BarcodeBatch.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Camera.default;
-if (camera != null) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/react-native/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(FrameSourceState.On);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-
-```
-
-To visualize the results of Barcode Batch, first you need to add the following [overlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay):
-
-```js
-const overlay = BarcodeBatchBasicOverlay.withBarcodeBatchForView(
- barcodeBatch,
- view
-);
-```
-
-Once the overlay has been added, you should implement the [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) interface. The method [BarcodeBatchBasicOverlayListener.brushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a [brush](https://docs.scandit.com/data-capture-sdk/react-native/core/api/ui/brush.html#class-scandit.datacapture.core.ui.Brush) that will be used to highlight that specific barcode in the [overlay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay).
-
-```js
-overlay.listener = {
- brushForTrackedBarcode: (overlay, trackedBarcode) => {
- // Return a custom Brush based on the tracked barcode.
- },
-};
-```
-
-If you would like to make the highlights tappable, you need to implement the [BarcodeBatchBasicOverlayListener.didTapTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped) method.
-
-```js
-overlay.listener = {
- didTapTrackedBarcode: (overlay, trackedBarcode) => {
- // A tracked barcode was tapped.
- },
-};
-```
-
-## Get Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a
-[BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) to provide a similar experience. Below, we use the default [Feedback](https://docs.scandit.com/data-capture-sdk/react-native/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it with your own sound or vibration if you want.
-
-```js
-const feedback = Feedback.defaultFeedback;
-```
-
-Next, use this [feedback](https://docs.scandit.com/data-capture-sdk/react-native/core/api/feedback.html#class-scandit.datacapture.core.Feedback) in a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener):
-
-```js
-const feedbackListener = {
- didUpdateSession: (barcodeBatch, session) => {
- if (session.addedTrackedBarcodes.length > 0) {
- feedback.emit();
- }
- },
-};
-```
-
-[BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The [session](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession) parameter contains information about the currently tracked barcodes, in particular, the newly recognized ones. We check if there are any and if so, we emit the feedback.
-
-As the last step, register the listener responsible for emitting the feedback with the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance.
-
-```js
-barcodeBatch.addListener(feedbackListener);
-```
-
-## Disabling Barcode Batch
-
-To disable barcode tracking set [BarcodeBatch.isEnabled](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/barcode-batch.html#property-scandit.datacapture.barcode.batch.BarcodeBatch.IsEnabled) to _false_. The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or put it in standby calling [SwitchToDesiredState](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of
-[StandBy](https://docs.scandit.com/data-capture-sdk/react-native/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.Standby).
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/intro.md
deleted file mode 100644
index ca1503d1..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/matrixscan/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/react-native/migrate-5-to-6.mdx
deleted file mode 100644
index 3400c3b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/react-native/migrate-6-to-7.mdx
deleted file mode 100644
index f48d0c49..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/react-native/migrate-7-to-8.mdx
deleted file mode 100644
index 87e83e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/parser/get-started.md
deleted file mode 100644
index 25585c0a..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/parser/get-started.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-description: "The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: , and , , . "
-
-sidebar_position: 2
-pagination_prev: null
-pagination_next: null
-framework: react
-keywords:
- - react
----
-
-# Get Started
-
-The parser parses data strings, e.g. as found in barcodes, into a set of key-value mappings. In this guide, you will know briefly how to use a parser and what types of parser are currently supported by Scandit. These data formats are supported: [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/react-native/parser/hibc.html), [GS1 Application Identifier (https://docs.scandit.com/data-capture-sdk/react-native/parser/AI) system](https://docs.scandit.com/data-capture-sdk/react-native/parser/gs1ai.html) and [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/react-native/parser/swissqr.html), [VIN Vehicle Identification Number](https://docs.scandit.com/data-capture-sdk/react-native/parser/vin.html), [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/react-native/parser/iata-bcbp.html).
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Format-Specific Documentation
-
-- [Supported Data Formats](https://docs.scandit.com/data-capture-sdk/react-native/parser/formats.html)
-- [HIBC](https://docs.scandit.com/data-capture-sdk/react-native/parser/hibc.html)
-- [GS1 AI](https://docs.scandit.com/data-capture-sdk/react-native/parser/gs1ai.html)
-- [GS1 Digital Link](https://docs.scandit.com/data-capture-sdk/react-native/parser/gs1-digital-link.html)
-- [Swiss QR](https://docs.scandit.com/data-capture-sdk/react-native/parser/swissqr.html)
-- [VIN](https://docs.scandit.com/data-capture-sdk/react-native/parser/vin.html)
-- [IATA BCBP](https://docs.scandit.com/data-capture-sdk/react-native/parser/iata-bcbp.html)
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-First of all, include the ScanditParser library and its dependencies to your project, if any.
-
-## Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/release-notes.md b/versioned_docs/version-8.1.1/sdks/react-native/release-notes.md
deleted file mode 100644
index 92250fd5..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/release-notes.md
+++ /dev/null
@@ -1,222 +0,0 @@
----
-description: "Release notes and updates for the Scandit React Native SDK."
-toc_max_heading_level: 3
-displayed_sidebar: reactnativeSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Id
-
-* Fixed a memory issue leading to a persistent black screen during ID Capture startup
-
-#### Core
-
-* Fixed a crash in the DataCaptureView overlay management that could occur during rapid view updates
-* Fixed an issue where the camera preview appeared rotated 90 degrees in landscape orientation
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* [SparkScan](/sdks/react-native/sparkscan/intro.md) is not limited to only barcodes anymore, but can also scan items - in other words any combinations of barcodes and text present on a target to be scanned. The feature is available in beta at the moment, please contact [Scandit Support](mailto:support@scandit.com) if you are interested in trying it out.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-* Added, in `BarcodeAr`, new classes to create custom highlights (via `BarcodeArCustomHighlight`) and custom annotations (via `BarcodeArCustomAnnotation`).
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-* Our SDK can now scan the following documents both in single-side and double-side mode:
- - All Mexican DLs
- - Mexican Voter Cards
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-#### Smart Label Capture
-
-* Incremental improvements in accuracy across all use-cases for the OCR model powering Smart Label Capture.
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-#### Smart Label Capture
-
-* Validation Flow: Manually input values for barcodes will go through a stricter validation. Some values may no longer be accepted if they do not match the symbology specs for the symbology’s definition
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed a bug in the default color of BarcodeCapture highlights
-* Fixed an issue where popover annotations with HIGHLIGHT_TAP_AND_BARCODE_SCAN trigger could not be opened again
-* Fixed an issue in BarcodeSequence where camera would not be ON in portrait
-* Fixed an issue where SparkScan mini preview would sometimes stay in regular when entering target mode
-* Fixed the app becoming unresponsive after being in the background for extended periods
-* Added the `cameraStateOnStop` property to BarcodeFindView to optimize camera transitions when switching between modes
-* Fixed an issue where the successful notification in BarcodeFind was not displayed
-
-#### Id
-
-* Fixed an issue where front expiry date anonymization rectangle is erroneously drawn on front and back
-* Fixed a bug that prevented VizResult anonymization of the following fields: additionalAddressInformation, bloodType, employer, fathersName, issuingAuthority, maritalStatus, mothersName, placeOfBirth, profession, race, residentialStatus
-* Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses
-
-#### Smart Label Capture
-
-* Fixed an issue where LabelCapture fields would return default data in some frameworks
-
-#### Core
-
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-* Fixed an issue where barcode scanning would permanently stop after the app returned from background, particularly when camera permission dialogs were shown during initialization
-* Fixed a bug where getIsTorchAvailable() would return null on Android
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed an issue where the successful hint in BarcodeFind was not displayed
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* Upgraded all sample applications to React Native 0.81.4 and enabled the new architecture.
-
-#### Barcode
-
-* All sample applications have been updated to more closely align with React Native best practices.
-* `BarcodeBatchBasicOverlay` and `BarcodeBatchBasicOverlayListener` now allow for nullable brushes.
-* MatrixScan AR now allows for the use of custom highlights and annotations.
-* Updated the Gradle version for all sample applications to 8.14.3.
-
-#### Smart Label Capture
-
-* We’re introducing an enhancement that makes Smart Label Capture more robust and scalable by complementing its on-device model with a larger, more capable model. When the on-device model can’t capture certain labels, the SDK automatically escalates to this enhancement to handle complex or unforeseen cases with high accuracy and reliability. This capability is currently available in `beta`. If you’re interested in trying it, please contact Scandit Support. For configuration details, see `labelDefinition.adaptiveRecognitionEngine`.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-
-#### Label
-
-* The `LabelFieldDefinition` API has been updated with the following changes:
- * Renamed property: `pattern` → `valueRegex`, `patterns` → `valueRegexes`
- * Renamed property: `dataTypePattern` → `anchorRegex`, `dataTypePatterns` → `anchorRegexes`
-* Receipt Scanning API has been updated with the following changes:
- * `ReceiptScanningResult`:
- * Removed properties: `storeNumber`, `storeStreet`, `storeZip`, `storeState`, `storePhone`, `paymentMethod`, and `paymentCurrency`.
- * Added property: `storeAddress` - Full address of the store (Street Number, Street, City, State, NPA).
- * Renamed property: `paymentSubtotal` → `paymentPreTaxTotal` - Total balance before taxes are applied.
- * `ReceiptScanningLineItem`:
- * Removed property: `category`.
- * Renamed properties: `price` → `unitPrice` (Price for a single unit of the item), `total` → `totalPrice` (Total price for a specific product, quantity × unitPrice).
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`.
-
-### Bug Fixes
-
-#### Core
-
-* Fixed handling of `ImageFrameSource` turn on and off calls.
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-#### Barcode
-
-* All previously deprecated APIs have been removed in this release.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/react-native/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/react-native/scanning-composite-codes.mdx
deleted file mode 100644
index d517a134..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/single-scanning.md b/versioned_docs/version-8.1.1/sdks/react-native/single-scanning.md
deleted file mode 100644
index 903d2cae..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/single-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import SingleScanning from '../../partials/_single-scanning.mdx'; "
-
-toc_max_heading_level: 4
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# Single Scanning
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/advanced.md
deleted file mode 100644
index a0c44603..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/advanced.md
+++ /dev/null
@@ -1,159 +0,0 @@
----
-description: "SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: react
-keywords:
- - react
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Hardware Button Control
-
-Allowing the end user to control the scanner with hardware buttons can be useful if your users typically wear gloves. It can also improve ergonomics in some workflows.
-
-SparkScan offers a built-in API to let you do this via [scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HardwareTriggerEnabled).
-
-### Trigger Error State
-
-You may want to introduce logic in your app to show an error message when scanning specific barcodes (e.g. barcodes already added to the list, barcodes from the wrong lot etc.). SparkScan offers a built-in error state you can easily set to trigger an error feedback prompt to the user.
-
-You can customize:
-
-* The text message.
-- The timeout of the error message: the scanner will be paused for the specified amount of time, but the user can quickly restart the scanning process by tapping the trigger button.
-
- :::tip
- A high timeout (>10s) typically requires the users to interact with the UI to start scanning again. This is a good choice when you want to interrupt the scanning workflow (e.g. because a wrong barcode is scanned and some actions need to be performed). A small timeout (\<2s) could allow the user to scan again without having to interact with the app, just momentarily pausing the workflow to acknowledge that a “special” barcode has been scanned.
- :::
-
-* The color of the flashing screen upon scan. You can enable or disable the visual feedback via `scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.VisualFeedbackEnabled` and control the color via `scandit.datacapture.barcode.spark.ui.SparkScanViewFeedback`.
-* The color of the highlight for the scanned barcode.
-* The feedback (sound, vibration).
-
-To emit an error, you have to implement a [SDCSparkScanFeedbackDelegate](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/spark-scan-feedback-delegate.html#interface-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate) and set it to the [SparkScanView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-view.html#property-scandit.datacapture.barcode.spark.ui.SparkScanView.FeedbackDelegate):
-
-```js
-sparkScanView.feedbackDelegate = sparkScanFeedbackDelegate;
-```
-
-In the [SDCSparkScanFeedbackDelegate.feedbackForBarcode](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/spark-scan-feedback-delegate.html#method-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate.GetFeedbackForBarcode) you can then return an error or a success feedback:
-
-```js
-const sparkScanFeedbackDelegate = {
- feedbackForBarcode: (barcode: Barcode) => {
- if (isValidBarcode(barcode)) {
- return new SparkScanBarcodeSuccessFeedback();
- } else {
- return new SparkScanBarcodeErrorFeedback(
- 'This code should not have been scanned',
- 60 * 1000,
- Color.fromHex('#FF0000'),
- new Brush(Color.fromHex('#FF0000'), Color.fromHex('#FF0000'), 1),
- );
- }
- },
-};
-```
-
-You can have different error states triggered by different logic conditions. For example you can trigger an error state when a wrong barcode is scanned, and another one when a duplicate barcode is scanned. These errors can show different colors and have different timeouts.
-
-
- This error state for a code that should not have been scanned.
-
-
-
- This error state for a code that has been scanned more than once.
-
-
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan’s built-in error state. Setting the [SDCSparkScanBarcodeErrorFeedback.resumeCapturingDelay](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to `0` allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## React Navigation
-
-When using the `SparkScanView` component with React Navigation and `headerShown: true`, you may encounter an issue where the Buttons within your `SparkScanView` don't respond to touch events.
-
-This is a known issue with React Navigation's header implementation. The navigation header can interfere with touch event handling for components rendered within certain custom views like `SparkScanView`. While the buttons appear to be functioning visually, their `onPress` events do not trigger when the screen includes a header.
-
-Try the following if you encounter this issue:
-
-**Use TouchableOpacity instead of Button**
-
-```jsx
- handleButtonPress()}>
- Scan
-
-```
-or
-
-```jsx
- handleButtonPress()}>
- Scan
-
-```
-
-**Ensure you're importing TouchableOpacity from 'react-native'**
-
-Some users have found that using the `TouchableOpacity` component from `react-native-gesture-handler` causes issues, while the one from `react-native` works correctly.
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode (SparkScanViewSettings.defaultScanningMode). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled ([`SparkScanViewSettings.holdToScanEnabled`](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HoldToScanEnabled)).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/get-started.md
deleted file mode 100644
index 0cf910c2..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/get-started.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are: "
-
-sidebar_position: 2
-framework: react
-keywords:
- - react
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are:
-
-1. Create a new Data Capture Context instance.
-2. Configure the Spark Scan Mode.
-3. Create the SparkScanView with the desired settings and bind it to the application’s lifecycle.
-4. Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs.
-
-## Prerequisites
-
-- The latest stable version of [React Native CLI and other related tools and dependencies](https://reactnative.dev/docs/environment-setup).
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-- If you have not already done so, see [this guide](../add-sdk.md) for information on how to add the Scandit Data Capture SDK to your project.
-
-:::warning
-Android devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-## Create the Data Capture Context
-
-import DataCaptureContextReactNative from '../../../partials/get-started/_create-data-capture-context-react-native.mdx';
-
-
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through [SparkScanSettings](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/spark-scan-settings.html) and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we will set up SparkScan for scanning EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```js
-const settings = new SparkScanSettings();
-settings.enableSymbologies([Symbology.EAN13UPCA]);
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```js
-const sparkScan = SparkScan.forSettings(settings);
-```
-
-## Setup the Spark Scan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The [SparkScanView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) appearance can be customized through SparkScanViewSettings.
-
-```js
-const viewSettings = new SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-By adding a [SparkScanView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView), the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a SparkScanView to your view hierarchy:
-
-Construct a new SparkScan view. The SparkScan view is automatically added to the provided parentView:
-
-```js
-const sparkScanComponent = (
-
-);
-```
-
-Additionally, make sure to call [SparkScanView.stopScanning()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.StopScanning) in your app state handling logic. You have to call this for the correct functioning of the
-[SparkScanView](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView).
-
-```js
-componentWillUnmount() {
-sparkScanComponent.stopScanning();
-}
-
-handleAppStateChange = async (nextAppState) => {
-if (nextAppState.match(/inactive|background/)) {
-sparkScanComponent.stopScanning();
-}
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the
-[SparkScanListener](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode.
-
-```js
-// Register a listener object to monitor the spark scan session.
-
-const listener = {
- didScan: (sparkScan, session, getFrameData) => {
- // Gather the recognized barcode
- const barcode = session.newlyRecognizedBarcode[0];
-
- // Handle the barcode
- },
-};
-
-sparkScan.addListener(listener);
-```
-
-[SparkScanListener.didScan()](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved from the first object in the provided barcodes list:
-[SparkScanSession.newlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode). Please note that this list only contains one barcode entry.
-
-## Scan Some Barcodes
-
-Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can
-print out.
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/intro.md
deleted file mode 100644
index 784a8091..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/sparkscan/intro.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-description: "SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: react
-keywords:
- - react
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying additional scanning modes, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/react-native/symbology-properties.mdx
deleted file mode 100644
index 56b87782..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/react-native/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/react-native/system-requirements.mdx
deleted file mode 100644
index 1ae4f584..00000000
--- a/versioned_docs/version-8.1.1/sdks/react-native/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/add-sdk.md b/versioned_docs/version-8.1.1/sdks/titanium/add-sdk.md
deleted file mode 100644
index 81271c93..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/add-sdk.md
+++ /dev/null
@@ -1,96 +0,0 @@
----
-description: "Guide to integrating the Scandit Data Capture SDK into your project."
-
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_next: null
-framework: titanium
-keywords:
- - titanium
----
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-# Installation
-
-This page describes how to integrate the Scandit Data Capture SDK into your Titanium project.
-
-## Prerequisites
-
-- The latest stable version of the [Titanium SDK and other related tools and dependencies](https://titaniumsdk.com/guide/Titanium%5FSDK/Titanium%5FSDK%5FGetting%5FStarted/).
-- A project with minimum iOS deployment target of 14.0 or higher. Or an Android project with target SDK version 23 (Android 6, Marshmallow) or higher.
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-
-:::tip
-Android devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-## Get a License Key
-
-1. [Sign up](https://ssl.scandit.com/dashboard/sign-up?p=test) or [Sign in](https://ssl.scandit.com/dashboard/sign-in) to your Scandit account
-2. Create a project
-3. Create a license key
-
-If you have a paid subscription, please reach out to [Scandit Support](mailto:support@scandit.com) if you need a new license key.
-
-## Add the SDK
-
-Currently we support adding the Scandit Data Capture SDK Titanium modules to your project in two ways. The simplest way is to use the npm registry, alternatively you can manually download the modules and add them to your project.
-
-### Create a new project
-
-If you do not have a Titanium project yet that you’ll use, you should create a new one.
-
-```sh
-ti create -t app -n
-```
-
-### Add the SDK via npm
-
-To add our plugins from the npm registry, you can run these commands from your project’s root folder:
-
-```sh
-npm install scandit-titanium-datacapture-core
-npm install scandit-titanium-datacapture-barcode
-```
-
-:::tip
-You can also specify a version `@`.
-:::
-
-### Add the SDK manually
-
-You need to declare the modules you want to use in the app’s `tiapp.xml` file:
-
-```xml
-
- com.scandit.ti.datacapture.core
- com.scandit.ti.datacapture.barcode
- com.scandit.ti.datacapture.barcode
- com.scandit.ti.datacapture.core
-
-```
-
-After you download the archive containing all the modules from the [Scandit Dashboard](https://ssl.scandit.com/dashboard/downloads), unzip the archive.
-
-It includes the available Titanium modules, including the `scandit-titanium-datacapture-core` module that all other modules depend on. Now you need to copy the the required modules to the root folder of the application.
-
-Sticking with the current example, it means that you need:
-
-- The barcode module for Android.
-- The core module for Android.
-- The barcode module for iOS.
-- The core module for iOS.
-
-## Additional Information
-
-### Camera Permissions
-
-When using the Scandit Data Capture SDK you will want to set the camera as the frame source for various capture modes. On Android, you have to request camera permissions in your own application before starting scanning. To see how you can achieve this, take a look at our [samples](https://github.com/Scandit/datacapture-titanium-samples).
-
-Remember that, if you want to use the camera as the frame source for barcode capture you need to set the “Privacy - Camera Usage Description” field in the Info.plist file for iOS.
-
-import OSSLicense from '../../partials/_third-party-licenses-js.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/titanium/ai-powered-barcode-scanning.md
deleted file mode 100644
index 0a245df8..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/titanium/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index 4d3ff3f2..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,113 +0,0 @@
----
-description: "Learn about the available symbologies and the corresponding configurations and extensions available."
-
-sidebar_position: 3
-pagination_next: null
-framework: titanium
-keywords:
- - titanium
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following lines of code show you how to enable scanning Code 128 codes for barcode capture:
-
-```js
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-settings.enableSymbology(ScanditBarcode.Symbology.Code128, true);
-```
-
-import CapturePresents from '../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below lines of code show how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```js
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- ScanditBarcode.Symbology.Code128
-);
-symbologySettings.activeSymbolCounts = [6, 7, 8];
-
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- ScanditBarcode.Symbology.Code128
-);
-symbologySettings.activeSymbolCounts = [6, 7, 8];
-```
-
-import CalculateSymbolCount from '../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you enable a symbology as described above, only dark-on-bright codes are enabled (see [SymbologySettings.isEnabled](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsEnabled 'SymbologySettings.isEnabled property')). When you also want to read bright-on-dark codes, color-inverted reading for that symbology must also be enabled (see [SymbologySettings.isColorInvertedEnabled](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.IsColorInvertedEnabled)):
-
-```js
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- ScanditBarcode.Symbology.Code128
-);
-symbologySettings.isColorInvertedEnabled = true;
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that will always be enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum). Enforcing an optional checksum will reduce false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes will be discarded as they checksum doesn’t match. All available checksums per symbology can be found in the documentation on [symbology properties](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/symbology-properties.html).
-
-You can enforce a specific checksum by setting it through
-[SymbologySettings.checksums](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```js
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- ScanditBarcode.Symbology.Code39
-);
-symbologySettings.checksums = [ScanditBarcode.Checksum.Mod43];
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [SymbologySettings.setExtensionEnabled()](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```js
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- ScanditBarcode.Symbology.Code39
-);
-symbologySettings.setExtensionEnabled('full_ascii', true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/barcode-capture/get-started.md
deleted file mode 100644
index 4e69b8ef..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/barcode-capture/get-started.md
+++ /dev/null
@@ -1,144 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Capture to your application. "
-
-sidebar_position: 2
-pagination_prev: null
-framework: titanium
-keywords:
- - titanium
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application.
-
-The general steps are:
-
-- Include the ScanditBarcodeCapture library and its dependencies to your project, if any.
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/titanium/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) instance, initialized with your license key.
-- Create a [barcode capture settings](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and enable the [barcode symbologies](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology) you want to read in your application.
-- Create a new [barcode capture mode](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance and initialize it with the settings created above.
-- Register a [barcode capture listener](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/titanium/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](https://docs.scandit.com/data-capture-sdk/titanium/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-- If displaying a preview, optionally create a new [overlay](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) and add it to [data capture view](https://docs.scandit.com/data-capture-sdk/titanium/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) for a better visual feedback.
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/titanium/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-const context = ScanditCore.DataCaptureContext.forLicenseKey(
- '-- ENTER YOUR SCANDIT LICENSE KEY HERE --'
-);
-```
-
-## Configure the Barcode Scanning Behavior
-
-Barcode scanning is orchestrated by the [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) [data capture mode](https://docs.scandit.com/data-capture-sdk/titanium/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called [symbologies](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology). The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```js
-const settings = new ScanditBarcode.BarcodeCaptureSettings();
-settings.enableSymbologies([
- ScanditBarcode.Symbology.Code128,
- ScanditBarcode.Symbology.Code39,
- ScanditBarcode.Symbology.QR,
- ScanditBarcode.Symbology.EAN8,
- ScanditBarcode.Symbology.UPCE,
- ScanditBarcode.Symbology.EAN13UPCA,
-]);
-```
-
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.codeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around 500 or even -1 if you do not want codes to be scanned more than once.
-
-Next, create a [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance with the settings initialized in the previous step:
-
-```js
-const barcodeCapture = ScanditBarcode.BarcodeCapture.forContext(
- context,
- settings
-);
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [BarcodeCapture.addListener()](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface. For example:
-
-```js
-const listener = {
- didScan: (barcodeCapture, session) => {
- const recognizedBarcodes = session.newlyRecognizedBarcode;
- // Do something with the barcodes
- },
-};
-```
-
-Then add the listener:
-
-```js
-barcodeCapture.addListener(listener);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-::: important
-In iOS, the user must explicitly grant permission for each app to access cameras. Your app needs to provide static messages to display to the user when the system asks for camera permission. To do that include the [NSCameraUsageDescription](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/nscamerausagedescription) key in your app’s Info.plist file.
-:::
-
-:::important
-In Android, the user must explicitly grant permission for each app to access cameras. Your app needs to declare the use of the Camera permission in the AndroidManifest.xml file and request it at runtime so the user can grant or deny the permission. To do that follow the guidelines from [Request app permissions](https://developer.android.com/training/permissions/requesting) to request the android.permission.CAMERA permission.
-:::
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-const cameraSettings = ScanditBarcode.BarcodeCapture.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = ScanditCore.Camera.default;
-
-if (camera) {
- camera.applySettings(cameraSettings);
-}
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/titanium/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/titanium/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/titanium/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-camera.switchToDesiredState(ScanditCore.FrameSourceState.On);
-```
-
-
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/titanium/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-const dataCaptureView = new ScanditCore.DataCaptureView(context);
-dataCaptureView.addToContainer(window);
-```
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```js
-const overlay = ScanditBarcode.BarcodeCaptureOverlay.withBarcodeCaptureForView(
- barcodeCapture,
- view
-);
-```
-
-## Disabling Barcode Capture
-
-To disable barcode capture, for instance as a consequence of a barcode being recognized, set [BarcodeCapture.isEnabled](https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api/barcode-capture.html#property-scandit.datacapture.barcode.BarcodeCapture.IsEnabled) to _false_.
-
-The effect is immediate: no more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/titanium/barcode-generator.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/barcode-generator.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/barcode-selection/get-started.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/barcode-selection/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/barcode-selection/intro.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/barcode-selection/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/titanium/barcode-symbologies.mdx
deleted file mode 100644
index 75d3810a..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/titanium/batch-scanning.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/batch-scanning.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/titanium/core-concepts.mdx
deleted file mode 100644
index 81c9f5d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/titanium/extension-codes.mdx
deleted file mode 100644
index 2ab9349a..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/titanium/features-by-framework.mdx
deleted file mode 100644
index 5f33c395..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/titanium/id-capture/advanced.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/id-capture/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/id-capture/get-started.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/id-capture/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/id-capture/intro.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/id-capture/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/titanium/id-capture/supported-documents.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/id-capture/supported-documents.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/id-validate/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/id-validate/get-started.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/id-validate/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/id-validate/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/id-validate/intro.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/id-validate/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/titanium/label-capture/advanced.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/label-capture/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/label-capture/get-started.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/label-capture/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/label-capture/intro.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/label-capture/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-ar/get-started.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-ar/intro.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/advanced.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/get-started.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/intro.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-count/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/advanced.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/get-started.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/intro.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-find/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/advanced.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/get-started.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/intro.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan/get-started.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/matrixscan/intro.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/matrixscan/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/titanium/migrate-5-to-6.mdx
deleted file mode 100644
index 3400c3b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/titanium/migrate-6-to-7.mdx
deleted file mode 100644
index f48d0c49..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/titanium/migrate-7-to-8.mdx
deleted file mode 100644
index 87e83e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/parser/get-started.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/parser/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/release-notes.md b/versioned_docs/version-8.1.1/sdks/titanium/release-notes.md
deleted file mode 100644
index 2ecf33a8..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/release-notes.md
+++ /dev/null
@@ -1,137 +0,0 @@
----
-description: "Release notes and updates for the Scandit Titanium SDK."
-toc_max_heading_level: 3
-displayed_sidebar: titaniumSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: titanium
-keywords:
- - titanium
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Id
-
-* Fixed a memory issue leading to a persistent black screen during ID Capture startup
-
-#### Core
-
-* Fixed an issue where the camera preview appeared rotated 90 degrees in landscape orientation
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed a bug in the default color of BarcodeCapture highlights
-* Fixed an issue where popover annotations with HIGHLIGHT_TAP_AND_BARCODE_SCAN trigger could not be opened again
-* Fixed an issue in BarcodeSequence where camera would not be ON in portrait
-* Fixed an issue where SparkScan mini preview would sometimes stay in regular when entering target mode
-* Fixed the app becoming unresponsive after being in the background for extended periods
-* Added the `cameraStateOnStop` property to BarcodeFindView to optimize camera transitions when switching between modes
-
-#### Core
-
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-* Fixed an issue where barcode scanning would permanently stop after the app returned from background, particularly when camera permission dialogs were shown during initialization
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed an issue where the successful hint in BarcodeFind was not displayed
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed an issue where the camera would not restart when opened from another app
-* Fixed an issue where the interface and video feed could have different visual orientations
-* Fixed a bug that could in rare cases produce a black screen when starting the camera
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
- * Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
- * Automate the capture of any data format, barcode clustering, task handling or camera settings;
- * Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
- * Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
- * Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* Upgraded minimum Titanium SDK to `12.7.0.GA` and build modules with Titanium `13.0.0.GA` to enable 16 KB page size support.
-
-#### Barcode
-
-* Updated the Gradle version for all sample applications to 8.14.3.
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in Barcode Capture.
-
-### Bug Fixes
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/titanium/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/titanium/scanning-composite-codes.mdx
deleted file mode 100644
index d517a134..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/single-scanning.md b/versioned_docs/version-8.1.1/sdks/titanium/single-scanning.md
deleted file mode 100644
index 3061ce03..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/single-scanning.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-description: "import SingleScanning from '../../partials/_single-scanning.mdx'; "
-
-toc_max_heading_level: 4
-pagination_prev: null
-displayed_sidebar: titaniumSidebar
-framework: titanium
-keywords:
- - titanium
----
-
-# Single Scanning
-
-:::note
-SparkScan is not available for Titanium.
-:::
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/advanced.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/get-started.md
deleted file mode 100644
index 574eeb67..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/intro.md
deleted file mode 100644
index d4d33e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/sparkscan/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: titaniumSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/titanium/symbology-properties.mdx
deleted file mode 100644
index 56b87782..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/titanium/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/titanium/system-requirements.mdx
deleted file mode 100644
index 1ae4f584..00000000
--- a/versioned_docs/version-8.1.1/sdks/titanium/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/add-sdk.md b/versioned_docs/version-8.1.1/sdks/web/add-sdk.md
deleted file mode 100644
index b72e88ac..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/add-sdk.md
+++ /dev/null
@@ -1,613 +0,0 @@
----
-description: "This page describes how to integrate the Scandit Data Capture SDK into your web project. You can consume the Scandit Data Capture SDK Web packages in two ways: "
-
-sidebar_position: 1
-toc_max_heading_level: 3
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Installation
-
-This page describes how to integrate the Scandit Data Capture SDK into your web project.
-You can consume the Scandit Data Capture SDK Web packages in two ways:
-
-- as an external resource from a CDN in HTML
-- as package dependency via npm.
-
-## Prerequisites
-
-Before you begin, make sure you have the following prerequisites in place:
-
-- The latest stable version of Node.js and npm (required only if including and building the SDK as part of an app, instead of just including it as an external resource from a CDN in HTML).
-- Valid Scandit Data Capture SDK license, sign up for a [free trial](https://www.scandit.com/trial/) if you don't already have a license key
-
-For detailed information about system requirements, see [System Requirements](/sdks/web/system-requirements/#web-sdk).
-
-:::warning
-Devices running the Scandit Data Capture SDK need to have a GPU and run a browser capable of making it available (requires [WebGL - current support?](https://caniuse.com/#feat=webgl) and [OffscreenCanvas - current support?](https://caniuse.com/#feat=offscreencanvas)) or the performance will drastically decrease.
-:::
-
-## Package Information
-
-Scandit Data Capture SDKs [npm packages](https://www.npmjs.com/search?q=@scandit) are distributed under `@scandit/` scope.
-
-You need to add the `@scandit/web-datacapture-core` package, which contains the shared functionality used by the other data capture packages.
-
-If you're using `barcodecapture`-related functionalities,
-make sure to also add the:
-
-- `@scandit/web-datacapture-barcode` package, and/or
-- `@scandit/web-datacapture-parser` package
-
-`@scandit/web-datacapture-parser` package needs `@scandit/web-datacapture-barcode` as dependency.
-See the [Parser documentation](/sdks/web/parser/get-started.md) to learn more.
-
-If you want to scan personal identification documents, such as identity cards, passports or visas you need to add `@scandit/web-datacapture-id`.
-See the [ID Capture documentation](/sdks/web/id-capture/get-started.md) to learn more.
-
-:::tip
-You can safely remove _barcode_ or _id_ dependencies if you are not going to use their features.
-:::
-
-## Install via package manager
-
-To add the packages via your preferred package manager, run the following command from your project's root folder:
-
-
-
-
-
-```sh
-npm install --save @scandit/web-datacapture-core @scandit/web-datacapture-barcode
-```
-
-
-
-
-
-```sh
-yarn add @scandit/web-datacapture-core @scandit/web-datacapture-barcode
-```
-
-
-
-
-
-```sh
-pnpm add @scandit/web-datacapture-core @scandit/web-datacapture-barcode
-```
-
-
-
-
-
-```sh
-bun add @scandit/web-datacapture-core @scandit/web-datacapture-barcode
-```
-
-
-
-
-
-```sh
-deno add npm:@scandit/web-datacapture-core npm:@scandit/web-datacapture-barcode
-```
-
-
-
-
-
-:::note
-You can also specify a version @``.
-:::
-
-Then import the package in your JavaScript/TypeScript code by using:
-
-```js
-// Importing only the necessary items is recommended to allow bundler to optimize the code through tree-shaking
-import {
- DataCaptureContext,
- Camera,
-} from "@scandit/web-datacapture-core";
-import {
- BarcodeCapture,
- barcodeCaptureLoader,
-} from "@scandit/web-datacapture-barcode";
-
-// Insert your code here
-```
-
-## Install via CDN
-
-:::warning Important considerations when using CDNs
-CDNs offer a convenient way to get started but they introduce dependencies into your application. Your app's functionality becomes directly tied to the CDN's availability and performance. Any CDN outages or slowdowns will immediately affect your users' experience.
-
-For production environments, we recommend:
-
-1. **Self-hosting** the SDK files on your own infrastructure, where you are strongly encouraged to:
-
- - Configure optimal cache headers and compression settings
- - Set correct MIME types for .wasm, .js and .model files
- - Control Content-Length headers for accurate loading progress
- - Minimize request redirections and network latency
- - Implement your own fallback mechanisms
-
-2. If self-hosting isn't feasible, use a **paid enterprise CDN service** that provides:
- - Guaranteed uptime and performance metrics
- - Enterprise-grade support
-:::
-
-You can use the [jsDelivr](https://jsdelivr.com/) or [UNPKG](https://unpkg.com/) CDN to specify a certain version (or range) and include and import from our library as follows.
-
-:::note
-In alternative to jsdeliver, unpkg can be used:
-
-- [UNPKG Core](https://unpkg.com/@scandit/web-datacapture-core@8.x)
-- [UNPKG Barcode](https://unpkg.com/@scandit/web-datacapture-barcode@8.x)
-
-:::
-
-### Complete CDN Example
-
-```html
-
-
-
-
-
- Scandit CDN Simple sample
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-## Configure the Library
-
-The library needs to be configured and initialized before it can be used, this is done via the DataCaptureContext [`forLicenseKey`](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) function.
-Note that the configuration expects a valid license key as first argument.
-
-:::tip
-We recommend calling [`forLicenseKey`](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) as soon as possible in your application so that the files can be downloaded and the [`DataCaptureContext`](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) initialized before the capture process starts.
-:::
-
-The `LibraryLocation` configuration option must be provided and point to the location of the Scandit Data Capture `sdc-lib` location (external WebAssembly files): `scandit-datacapture-sdk\*.js` and `scandit-datacapture-sdk\*.wasm`.
-
-WebAssembly requires these separate files which are loaded by our main library at runtime.
-They can be found inside the `sdc-lib` folder you either added and installed via npm or access via a CDN.
-If you installed the library through npm, **these files should be copied and served correctly in a path that will be accessible by the SDK during initialization**.
-
-The configuration option that you provide should then point to the folder containing these files, either as a path of your website or an absolute URL (like the CDN one). **By default the library will look at the root of your website**.
-
-:::caution Version Matching Required
-The npm package version and the `sdc-lib` files must be from the exact same SDK version. For example, if you have `@scandit/web-datacapture-barcode@8.0.0` in your `package.json`, you must serve the `sdc-lib` folder from `node_modules/@scandit/web-datacapture-barcode@8.0.0/sdc-lib/`. **Mismatched versions will cause runtime errors and unexpected behavior.**
-:::
-
-In case a common CDN is used (jsDelivr or UNPKG) the library will automatically, internally set up the correct URLs pointing to the files needed for the matching library version.
-**It is highly recommended to handle the serving of these files yourself on your website/server, ensuring optimal compression, correct WASM files MIME type, no request redirections, and correct caching headers usage.**
-This will aid in faster loading.
-
-## Hosting the `sdc-lib` files
-
-We recommend serving the `sdc-lib` folder yourself.
-
-:::caution Important: Full Folder Copy and Version Matching
-You must copy the **entire `sdc-lib` folder recursively** from the installed Scandit package to your server. This includes all subdirectories and files. The `sdc-lib` folder must come from a package version that exactly matches your npm package version. For example, if you have `@scandit/web-datacapture-barcode@8.0.0`, you must copy the `sdc-lib` from `node_modules/@scandit/web-datacapture-barcode@8.0.0/sdc-lib/`.
-
-Additionally, you should copy `sdc-lib` from all installed Scandit packages (`@scandit/web-datacapture-core`, `@scandit/web-datacapture-barcode`, `@scandit/web-datacapture-id`, `@scandit/web-datacapture-parser`, etc.) to the same location.
-:::
-
-Once copied, be sure to serve the files correctly by setting up the correct MIME type for the `.wasm`, `.model`, and `.js` files. Some common examples are provided below:
-
-
-
-
-
-```csharp
-app.UseStaticFiles(new StaticFileOptions()
-{
- ServeUnknownFileTypes = true,
- DefaultContentType = "application/octet-stream"
-});
-```
-
-Or
-
-```csharp
-var provider = new Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider();
-provider.Mappings[".model"] = "application/octet-stream";
-provider.Mappings[".js"] = "application/javascript";
-provider.Mappings[".wasm"] = "application/wasm";
-```
-
-
-
-
-
-Add these MIME types to your `.htaccess` file or Apache configuration:
-
-```apache
-AddType application/wasm .wasm
-AddType application/octet-stream .model
-AddType application/javascript .js
-```
-
-
-
-
-
-Add these MIME types to your Nginx configuration file:
-
-```nginx
-types {
- application/wasm wasm;
- application/octet-stream model;
- application/javascript js;
-}
-```
-
-
-
-
-
-For Express.js, you can configure the MIME types like this:
-
-```javascript
-const express = require("express");
-const app = express();
-
-express.static.mime.define({ "application/wasm": ["wasm"] });
-express.static.mime.define({ "application/octet-stream": ["model"] });
-express.static.mime.define({ "application/javascript": ["js"] });
-app.use(express.static("self-hosted-sdc-lib")); // Serve static files from 'public' directory
-```
-
-
-
-
-
-For Flask, you can set the MIME types when serving the files:
-
-```python
-from flask import Flask, send_file
-
-app = Flask(__name__)
-
-@app.route('/self-hosted-sdc-lib/')
-def serve_file(filename):
- mimetype = None
- if filename.endswith('.wasm'):
- mimetype = 'application/wasm'
- elif filename.endswith('.model'):
- mimetype = 'application/octet-stream'
- elif filename.endswith('.js'):
- mimetype = 'application/javascript'
- return send_file(
- f'/self-hosted-sdc-lib/{filename}',
- mimetype=mimetype
- )
-```
-
-
-
-
-
-## Show loading status with default UI
-
-It could take a while the very first time to download the .wasm files.
-To show some visual feedback to the user about the loading status you have two options:
-
-- use the default UI provided with the SDK
-- subscribe to the loading status and update your own custom UI.
-
-Let's see how to do it with the default UI first:
-
-```ts
-import {
- DataCaptureView,
- DataCaptureContext,
-} from "@scandit/web-datacapture-core";
-import { idCaptureLoader } from "@scandit/web-datacapture-id";
-
-const view = new DataCaptureView();
-
-view.connectToElement(document.getElementById("data-capture-view"));
-view.showProgressBar();
-view.setProgressBarMessage("Loading ...");
-
-const context = await DataCaptureContext.forLicenseKey("-- ENTER LICENSE KEY HERE --", {
- libraryLocation: "/self-hosted-sdc-lib/",
- moduleLoaders: [idCaptureLoader({ enableVIZDocuments: true })],
-});
-
-view.hideProgressBar();
-
-await view.setContext(context);
-```
-
-## Show loading status with custom UI
-
-You can also subscribe for the [loading status](https://docs.scandit.com/data-capture-sdk/web/core/api/web/loading-status.html) of the library
-by simply attaching a listener like this:
-
-```ts
-import type { ProgressInfo } from "@scandit/web-datacapture-core";
-import { loadingStatus, DataCaptureContext } from "@scandit/web-datacapture-core";
-import { barcodeCaptureLoader } from "@scandit/web-datacapture-barcode";
-
-loadingStatus.subscribe((info: ProgressInfo) => {
- // updateUI(info.percentage, info.loadedBytes)
-});
-
-const context = await DataCaptureContext.forLicenseKey("SCANDIT_LICENSE_KEY", {
- libraryLocation: "/self-hosted-sdc-lib/",
- moduleLoaders: [barcodeCaptureLoader()],
-});
-```
-
-:::note
-The library files should be served with the proper header `Content-Length`. `Content-Encoding` should also be set if any compression is used.
-In case of missing information, the progress bar tries to show an estimated value, but can also not report progress at all for a while.
-:::
-
-## Additional Information
-
-### Server Side Rendering and Server Side Generation
-
-If you use a web framework that also renders on the server (SSR or SSG) it's recommended to execute the library only on the client turning off the rendering on the server.
-
-For more information:
-
-- [GatsbyJS - Using client side only packages](https://www.gatsbyjs.com/docs/using-client-side-only-packages/).
-- [NextJS - Lazy Loading with no ssr](https://nextjs.org/docs/pages/building-your-application/optimizing/lazy-loading#with-no-ssr).
-
-### Performance Optimization
-
-For information on how to improve runtime performance, see [Improve Runtime Performance by Enabling Browser Multithreading](/sdks/web/matrixscan/get-started/#improve-runtime-performance-by-enabling-browser-multithreading).
-
-### Camera Permissions
-
-When using the Scandit Data Capture SDK you will likely want to set the camera as the frame source for various capture modes.
-The camera permissions are handled by the browser, and can only be granted if a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts) is used and have been accepted by the user explicitly.
-
-### Progressive Web App (PWA)
-
-You can configure the scanner to work offline making the web app progressive (Progressive Web App). There are some settings to consider. If you use Workbox, a tool that uses workbox under the hood like [Vite PWA](https://vite-pwa-org.netlify.app/) plugin, you must also set these options:
-
-```js
-workbox: {
- globPatterns: ["**/*.{css,html,ico,png,svg,woff2}", "**/*.{wasm,js}"],
- maximumFileSizeToCacheInBytes: 10 * 1024 * 1024, // up to 10mb because of wasm files
- // Don't ignore version parameters - let each version have its own cache entry
- runtimeCaching: [
- {
- urlPattern: /^.*\.wasm(\?.*)?$/,
- handler: "NetworkFirst",
- options: {
- cacheName: "wasm-version-cache",
- expiration: {
- maxEntries: 2, // Keep only 2 versions to manage storage
- maxAgeSeconds: 60 * 60 * 24 * 30, // 30 days
- },
- // This ensures the version parameter is part of the cache key
- matchOptions: {
- ignoreSearch: false, // Don't ignore search parameters (like ?v=) as part of the cache key
- },
- networkTimeoutSeconds: 5, // Fallback to cache if network is slow
- },
- },
- {
- // Cache all other assets with NetworkFirst for example
- urlPattern: /^.*\.(js|css|html|png|jpg|jpeg|svg|ico|woff2)(\?.*)?$/,
- handler: "NetworkFirst",
- options: {
- cacheName: "app-assets-cache",
- expiration: {
- maxEntries: 100,
- maxAgeSeconds: 60 * 60 * 24 * 7, // 7 days
- },
- networkTimeoutSeconds: 3, // Fallback to cache if network is slow
- },
- },
- ],
- cleanupOutdatedCaches: true,
- // Skip waiting to activate new service worker immediately
- skipWaiting: true,
- clientsClaim: true,
-},
-```
-
-With these settings in place and the service worker correctly configured, you will be able to have a full offline scanning experience.
-
-:::warning
-On iOS there's an [issue](https://bugs.webkit.org/show_bug.cgi?id=252465) while accessing the video stream inside a progressive web app. The issue is flaky and gets reopened periodically.
-Check the [webkit tracker](https://bugs.webkit.org/buglist.cgi?quicksearch=pwa%20getUserMedia)
-if you experience similar issues.
-:::
-
-### Electron
-
-You can configure the Scandit SDK to work in an Electron app. The register method must be called inside the `main.ts` file passing down some dependencies and the `publicKey`. The `publicKey` will be used to decrypt the encrypted license key file that must be placed into the [`ConfigureOptions.licenseDataPath`](https://docs.scandit.com/data-capture-sdk/web/core/api/web/configure.html#property-scandit.datacapture.core.IConfigureOptions.LicenseDataPath) option:
-
-```ts
-// electron main.ts
-import { register, unregister } from '@scandit/web-datacapture-core/build/electron/main';
-import { app, BrowserWindow, ipcMain } from 'electron';
-import fs from 'node:fs/promises';
-import crypto from 'node:crypto';
-import path from 'node:path';
-
-const mainWindow = new BrowserWindow({
- ...,
-});
-
-register({ fs, ipcMain, app, path, crypto }, publicKey);
-
-app.on('window-all-closed', () => {
- if (process.platform !== 'darwin') {
- app.quit()
- unregister()
- }
-});
-```
-
-```ts
-// preload.ts
-import { ipcRenderer } from "electron";
-import { preloadBindings } from "@scandit/web-datacapture-core/build/electron/preload";
-preloadBindings(ipcRenderer);
-```
-
-```ts
-// renderer.ts
-import { DataCaptureContext } from "@scandit/web-datacapture-core";
-import { barcodeCaptureLoader } from "@scandit/web-datacapture-barcode";
-
-const context = await DataCaptureContext.forLicenseKeyInElectronPath("./out/renderer/data/sdc-license.data", {
- // In Electron context the license will be decrypted internally.
- // The path of the encrypted file is path.join(app.getAppPath(), licenseDataPath)
- libraryLocation: new URL("self-hosted-sdc-lib", document.baseURI).toString(),
- moduleLoaders: [barcodeCaptureLoader()],
-});
-```
-
-You can encrypt your license key with this small Node.js script. Then you should copy the `sdc-license.data` file in the `licenseDataPath` in order to be correctly read at runtime during initialization.
-
-You can also check the related [sample](https://github.com/Scandit/datacapture-web-samples/tree/master/ElectronBarcodeCaptureSimpleSample).
-
-```js
-const crypto = require("node:crypto");
-const fs = require("node:fs/promises");
-
-(async function createLicenseAndPublicKey() {
- const data = process.env.SDC_LICENSE_KEY;
- if (data == null || data === "") {
- throw new Error("could not encrypt empty or null string");
- }
-
- const key = crypto.randomBytes(32);
- const iv = crypto.randomBytes(16);
- const keyAndIV = `${key.toString("base64")}:${iv.toString("base64")}`;
-
- const cipher = crypto.createCipheriv("aes-256-cbc", key, iv);
- let encryptedText = cipher.update(text, "utf8", "hex");
- encryptedText += cipher.final("hex");
-
- await fs.writeFile("sdc-license.data", Buffer.from(encryptedText), "utf8");
- // Save the key to a file
- await fs.writeFile("sdc-public-key", keyAndIV, "utf8");
-})();
-```
-
-:::warning
-It is recommended to NOT store the public key locally. We also recommend
-you enable [source code protection](https://electron-vite.org/guide/source-code-protection) with [bytenode](https://github.com/bytenode/bytenode).
-:::
-
-import OSSLicense from '../../partials/\_third-party-licenses-js.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/ai-powered-barcode-scanning.md b/versioned_docs/version-8.1.1/sdks/web/ai-powered-barcode-scanning.md
deleted file mode 100644
index 6f7974b0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/ai-powered-barcode-scanning.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-description: "import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';"
-toc_max_heading_level: 4
-framework: web
-keywords:
- - web
----
-
-# AI-Powered Barcode Scanning
-
-import AIPoweredBarcodeScanning from '../../partials/_ai-powered-barcode-scanning.mdx';
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/barcode-capture/configure-barcode-symbologies.md b/versioned_docs/version-8.1.1/sdks/web/barcode-capture/configure-barcode-symbologies.md
deleted file mode 100644
index e6681eb0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/barcode-capture/configure-barcode-symbologies.md
+++ /dev/null
@@ -1,108 +0,0 @@
----
-description: "Learn about the available symbologies and the corresponding configurations and extensions available."
-
-sidebar_position: 3
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Configure Barcode Symbologies
-
-import Intro from '../../../partials/configure-symbologies/_intro.mdx'
-
-
-
-## Enable the Symbologies You Want to Read
-
-import EnableSymbologies from '../../../partials/configure-symbologies/_enable-symbologies.mdx'
-
-
-
-The following lines of code show you how to enable scanning Code 128 codes for barcode capture:
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-settings.enableSymbology(Scandit.Symbology.Code128, true);
-```
-
-import CapturePresents from '../../../partials/configure-symbologies/_capture-presents.mdx'
-
-
-
-## Configure the Active Symbol Count
-
-Barcode symbologies (such as Code 128, Code 39, Code 93, or Interleaved Two of Five) can store variable-length data. For example, Code 39 can be used to store a string from 1 to 40-50 symbols. There is no fixed upper limit, though there are practical limitations to the code’s length for it to still be conveniently readable by barcode scanners.
-
-For performance reasons, the Scandit Data Capture SDK limits the [possible symbol range](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.ActiveSymbolCounts) for variable-length symbologies.
-
-If you want to read codes that are shorter/longer than the specified default range or you want to tailor your app to only read codes of a certain length, you need to change the active symbol count of the symbology to accommodate the data length you want to use in your application.
-
-The below lines of code show how to change the active symbol count for Code 128 to read codes with 6, 7 and 8 symbols.
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code128
-);
-symbologySettings.activeSymbolCounts = [6, 7, 8];
-```
-
-import CalculateSymbolCount from '../../../partials/configure-symbologies/_calculate-symbol-count.mdx'
-
-
-
-## Read Bright-on-Dark Barcodes
-
-Most barcodes are printed using dark ink on a bright background. Some symbologies allow the colors to be inverted and can also be printed using bright ink on a dark background.
-
-This is not possible for all symbologies as it could lead to false reads when the symbology is not designed for this use case. See [symbology properties](../symbology-properties.mdx) to learn which symbologies allow color inversion.
-
-When you enable a symbology as described above, only dark-on-bright codes are enabled. If you also want to read bright-on-dark codes, color-inverted reading for that symbology must be enabled ( `SymbologySettings.isColorInvertedEnabled`).
-
-The following code shows how to enable color-inverted reading for Code 128:
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code128
-);
-symbologySettings.isColorInvertedEnabled = true;
-```
-
-## Enforce Checksums
-
-Some symbologies have a mandatory checksum that will always be enforced while others only have optional [checksums](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/checksum.html#enum-scandit.datacapture.barcode.Checksum). Enforcing an optional checksum will reduce false positives as an additional check can be performed.
-
-When enabling a checksum you have to make sure that the data of your codes contains the calculated checksum otherwise the codes get discarded as the checksum doesn’t match. All available checksums per symbology can be found in [symbology properties](../symbology-properties.mdx).
-
-You can enforce a specific checksum by setting it through [SymbologySettings.checksums](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/symbology-settings.html#property-scandit.datacapture.barcode.SymbologySettings.Checksums):
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code39
-);
-symbologySettings.checksums = [Scandit.Checksum.Mod43];
-```
-
-## Enable Symbology-Specific Extensions
-
-Some symbologies allow further configuration. These configuration options are available as symbology extensions that can be enabled/disabled for each symbology individually.
-
-Some extensions affect how the data in the code is formatted, others allow for more relaxed recognition modes that are disabled by default to eliminate false reads. All available extensions per symbology and a description of what they do can be found in the documentation on [symbology properties](../symbology-properties.mdx).
-
-To enable/disable a symbology extension, use [SymbologySettings.setExtensionEnabled()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/symbology-settings.html#method-scandit.datacapture.barcode.SymbologySettings.SetExtensionEnabled).
-
-The following code shows how to enable the full ASCII extension for Code 39.
-
-```js
-const settings = new Scandit.BarcodeCaptureSettings();
-const symbologySettings = settings.settingsForSymbology(
- Scandit.Symbology.Code39
-);
-symbologySettings.setExtensionEnabled('full_ascii', true);
-```
-
-This extension allows Code 39 to encode all 128 ASCII characters instead of only the 43 characters defined in the standard. The extension is disabled by default as it can lead to false reads when enabled.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/barcode-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/web/barcode-capture/get-started.md
deleted file mode 100644
index 23dbeb5d..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/barcode-capture/get-started.md
+++ /dev/null
@@ -1,195 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Barcode Capture to your application."
-sidebar_position: 2
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Barcode Capture to your application.
-
-The general steps are:
-
-- Include the ScanditBarcodeCapture library and its dependencies to your project, if any. See the [Installation guide](../add-sdk.md) for details.
-- Create a new [data capture context](#create-the-data-capture-context) instance, initialized with your license key.
-- Create a [barcode capture settings](#configure-the-barcode-scanning-behavior) and enable the [barcode symbologies](../barcode-symbologies.mdx) you want to read in your application.
-- Create a new [barcode capture mode](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance and initialize it with the settings created above.
-- Register a [barcode capture listener](#register-the-barcode-capture-listener) to receive scan events. Process the successful scans according to your application’s needs, e.g. by looking up information in a database. After a successful scan, decide whether more codes will be scanned, or the scanning process should be stopped.
-- Obtain a [camera](#use-the-built-in-camera) instance and set it as the frame source on the data capture context.
-- Display the camera preview by creating a [data capture view](#use-a-capture-view-to-visualize-the-scan-process).
-- If displaying a preview, optionally create a new [`overlay`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) and add it to data capture view for a better visual feedback.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to your [Scandit account](https://ssl.scandit.com/dashboard/sign-in?p=test).
-:::
-
-### Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create the Data Capture Context
-
-To initialize the library and create a data capture context, see the [Installation guide](../add-sdk.md#configure-the-library) for detailed information about configuration options, hosting the `sdc-lib` files, and loading status handling.
-
-For barcode capture, create the context like this:
-
-```ts
-import { DataCaptureContext } from '@scandit/web-datacapture-core';
-import { barcodeCaptureLoader } from '@scandit/web-datacapture-barcode';
-
-const context = await DataCaptureContext.forLicenseKey('-- ENTER YOUR SCANDIT LICENSE KEY HERE --', {
- libraryLocation: new URL('self-hosted-sdc-lib/', document.baseURI).toString(),
- moduleLoaders: [barcodeCaptureLoader()],
-});
-```
-
-:::note
-You must _await_ the returned promise as shown to be able to continue. For information about showing loading status and handling server-side rendering, see the [Installation guide](../add-sdk.md).
-:::
-
-## Configure the Barcode Scanning Behavior
-
-Barcode scanning is orchestrated by the [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) [data capture mode](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-mode.html#interface-scandit.datacapture.core.IDataCaptureMode). This class is the main entry point for scanning barcodes. It is configured through [BarcodeCaptureSettings](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture-settings.html#class-scandit.datacapture.barcode.BarcodeCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) that will get informed whenever new codes have been recognized.
-
-For this tutorial, we will setup barcode scanning for a small list of different barcode types, called symbologies. The list of symbologies to enable is highly application specific. We recommend that you only enable the list of symbologies your application requires.
-
-```ts
-import { BarcodeCaptureSettings, Symbology } from '@scandit/web-datacapture-barcode';
-
-const settings = new BarcodeCaptureSettings();
-settings.enableSymbologies([
- Symbology.Code128,
- Symbology.Code39,
- Symbology.QR,
- Symbology.EAN8,
- Symbology.UPCE,
- Symbology.EAN13UPCA,
-]);
-```
-
-If you are not disabling barcode capture immediately after having scanned the first code, consider setting the [BarcodeCaptureSettings.codeDuplicateFilter](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture-settings.html#property-scandit.datacapture.barcode.BarcodeCaptureSettings.CodeDuplicateFilter) to around 500 or even -1 if you do not want codes to be scanned more than once.
-
-Next, create a [BarcodeCapture](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture.html#class-scandit.datacapture.barcode.BarcodeCapture) instance with the settings initialized in the previous step:
-
-```ts
-import { BarcodeCapture } from '@scandit/web-datacapture-barcode';
-
-const barcodeCapture = await BarcodeCapture.forContext(
- context,
- settings
-);
-```
-
-## Register the Barcode Capture Listener
-
-To get informed whenever a new code has been recognized, add a [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) through [BarcodeCapture.addListener()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First implement the [BarcodeCaptureListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture-listener.html#interface-scandit.datacapture.barcode.IBarcodeCaptureListener) interface. For example:
-
-```ts
-import type { BarcodeCaptureListener, BarcodeCapture, BarcodeCaptureSession, Barcode } from '@scandit/web-datacapture-barcode';
-
-const listener: BarcodeCaptureListener = {
- didScan: (barcodeCapture: BarcodeCapture, session: BarcodeCaptureSession) => {
- const recognizedBarcode: Barcode = session.newlyRecognizedBarcode;
- // Do something with the barcode
- },
-};
-
-barcodeCapture.addListener(listener);
-```
-
-### Rejecting Barcodes
-
-To prevent scanning unwanted codes, you can reject them by adding the desired logic to the `didScan` callback. This will prevent the barcode from being processed further.
-
-The example below will only scan barcodes beginning with the digits `09` and ignore all others, using a transparent brush to distinguish a rejected barcode from a recognized one:
-
-```ts
-import { Brush } from '@scandit/web-datacapture-core';
-
-// ...
-if (!barcode.data || !barcode.data.startsWith('09:')) {
- overlay.brush = Brush.transparent;
- return;
-}
-// ...
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume that you use the built-in camera.
-
-When using the built-in camera, there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```ts
-import { Camera } from '@scandit/web-datacapture-core';
-import { BarcodeCapture } from '@scandit/web-datacapture-barcode';
-
-const cameraSettings = BarcodeCapture.recommendedCameraSettings;
-
-// Depending on the use case further camera settings adjustments can be made here.
-
-const camera = Camera.pickBestGuess();
-await camera.applySettings(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```ts
-await context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling [FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/web/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/web/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```ts
-import { FrameSourceState } from '@scandit/web-datacapture-core';
-
-await context.frameSource.switchToDesiredState(FrameSourceState.On);
-```
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frameSource, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process.
-
-To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```ts
-import { DataCaptureView } from '@scandit/web-datacapture-core';
-
-const view = await DataCaptureView.forContext(context);
-view.connectToElement(document.querySelector("#the-element-where-to-attach-the-view"));
-```
-
-To visualize the results of barcode scanning, the following [overlay](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-capture-overlay.html#class-scandit.datacapture.barcode.ui.BarcodeCaptureOverlay) can be added:
-
-```ts
-import { BarcodeCaptureOverlay } from '@scandit/web-datacapture-barcode';
-
-const overlay = await BarcodeCaptureOverlay.withBarcodeCaptureForView(
- barcodeCapture,
- view
-);
-```
-
-## Disabling Barcode Capture
-
-```ts
-await barcodeCapture.setEnabled(false);
-```
-
-To disable barcode capture, for instance, as a consequence of a barcode
-being recognized call [BarcodeCapture.setEnabled()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-capture.html#method-scandit.datacapture.barcode.BarcodeCapture.SetEnabled) passing false.
-
-The effect is immediate: no more frames will be processed after the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off.
diff --git a/versioned_docs/version-8.1.1/sdks/web/barcode-generator.md b/versioned_docs/version-8.1.1/sdks/web/barcode-generator.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/barcode-generator.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/barcode-selection/get-started.md b/versioned_docs/version-8.1.1/sdks/web/barcode-selection/get-started.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/barcode-selection/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/barcode-selection/intro.md b/versioned_docs/version-8.1.1/sdks/web/barcode-selection/intro.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/barcode-selection/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/barcode-symbologies.mdx b/versioned_docs/version-8.1.1/sdks/web/barcode-symbologies.mdx
deleted file mode 100644
index 75d3810a..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/barcode-symbologies.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page details the different barcode symbologies and their use cases."
-sidebar_label: 'Barcode Symbologies'
-title: 'Barcode Symbologies'
----
-
-import BarcodeSymbologies from '../../partials/_barcode-symbologies.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/batch-scanning.md b/versioned_docs/version-8.1.1/sdks/web/batch-scanning.md
deleted file mode 100644
index a9b4f351..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/batch-scanning.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "Batch scanning enables you to capture and interact with multiple barcodes simultaneously, making it ideal for inventory management, retail, and logistics applications."
-toc_max_heading_level: 4
-
-
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-# Batch Scanning
-
-import BatchScanning from '../../partials/_batch-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/core-concepts.mdx b/versioned_docs/version-8.1.1/sdks/web/core-concepts.mdx
deleted file mode 100644
index 81c9f5d9..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/core-concepts.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "This page gives an overview of the core concepts and terms used in the Scandit Data Capture SDK."
-sidebar_label: 'Core Concepts'
-title: 'Core Concepts'
----
-
-import CoreConcepts from '../../partials/_core-concepts.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/extension-codes.mdx b/versioned_docs/version-8.1.1/sdks/web/extension-codes.mdx
deleted file mode 100644
index 2ab9349a..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/extension-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Add-on Codes"
-sidebar_label: 'Add-on Codes'
-title: 'Add-on Codes'
----
-
-import ExtensionCodes from '../../partials/_extension-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/features-by-framework.mdx b/versioned_docs/version-8.1.1/sdks/web/features-by-framework.mdx
deleted file mode 100644
index 5f33c395..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/features-by-framework.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Features by Framework"
-sidebar_label: 'Features by Framework'
-title: 'Features by Framework'
----
-
-import FeaturesByFramework from '../../partials/_features-by-framework.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/getting-started.md b/versioned_docs/version-8.1.1/sdks/web/getting-started.md
deleted file mode 100644
index 2263ab17..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/getting-started.md
+++ /dev/null
@@ -1,177 +0,0 @@
----
-description: "This quick start guide will help you get up and running with SparkScan, the easiest way to get started with Scandit barcode scanning. "
-
-toc_max_heading_level: 2
-pagination_next: null
-displayed_sidebar: webSidebar
-framework: web
-keywords:
- - web
----
-
-# Quick Start Guide
-
-This quick start guide will help you get up and running with SparkScan, the easiest way to get started with Scandit barcode scanning.
-
-SparkScan provides top performance and optimized scanning UX with just a few lines of code, incorporating the best practices developed by Scandit across years of experience and billions of scans. The intentionally minimalistic UI floats on top of any smartphone application, without the need to adapt the existing app.
-
-The fastest way to get started is by running our sample application, so we'll cover that first. After that, we'll show you how to integrate SparkScan into your own application.
-
-## Prerequisites
-
-Before you start, make sure you have the following:
-
-- Most recent LTS versions of Node.js and npm installed on your machine. You can download them from the [Node.js website](https://nodejs.org/).
-- A Scandit License Key. You can get a free trial key by signing up for an account on the [Scandit website](https://ssl.scandit.com/dashboard/sign-up).
-
-## Sample Application
-
-In this section, we'll show you how to try SparkScan in minutes by running our sample application.
-
-### Running the Sample Application
-
-1. First we need a copy of the sample application. It is available on GitHub and also bundled with the SDK archive you can download from your Scandit account dashboard. Here we'll use the GitHub repository.
-
-```bash
-git clone https://github.com/Scandit/datacapture-web-samples.git
-```
-
-2. The repository contains many sample applications you can try. For this example, we'll use the **ListBuildingSample**. Navigate to the sample directory from the terminal or your preferred IDE:
-
-```bash
-cd datacapture-web-samples/ListBuildingSample
-```
-
-3. From the `/src/app` directory, open the `presented.ts` file and replace the `licenseKey` variable with your Scandit License Key:
-
-```typescript
-...
-licenseKey: "-- ENTER YOUR SCANDIT LICENSE KEY HERE --",
-...
-```
-
-4. Install the dependencies:
-
-```bash
-npm install
-```
-
-5. Start the development server:
-
-```bash
-npm run dev
-```
-
-6. Open your browser and navigate to `http://localhost:8888`. You should see the sample application running.
-
-## Integrating SparkScan into Your Application
-
-This section will guide you through the general steps for integrating SparkScan into your own application. There may be additional steps depending on your specific use case, and you can always reach out to [Scandit Support](mailto:support@scandit.com) with any issues.
-
-### 1. Installation
-
-First you need to install the required packages. You can this via npm:
-
-```bash
-# Core library
-npm install --save @scandit/web-datacapture-core
-
-# Barcode scanning functionality
-npm install --save @scandit/web-datacapture-barcode
-```
-
-### 2. Create the Context
-
-The first step is to create a context for the Data Capture tasks. This is done by creating an instance of the `DataCaptureContext` class:
-
-```typescript
-const context = DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
-```
-
-### 3. Configure SparkScan Settings
-
-Next, you need to configure your desired settings for SparkScan, such as the symbologies you want to scan. This is done by creating an instance of the `SparkScanSettings` class:
-
-```typescript
-const settings = new SparkScanSettings();
-settings.enabledSymbologies = [Symbology.EAN13, Symbology.Code128];
-settings.codeDuplicateFilter = 0;
-settings.ScanIntention = ScanIntention.Smart;
-await sparkScan.applySettings(settings);
-```
-
-In this example, we're:
-
-- Enabling both EAN-13 and Code 128 symbologies
-- Setting the code duplicate filter to 0, meaning the same code can be reported multiple times
-- Using the Smart [scan intention](https://docs.scandit.com/data-capture-sdk/web/core/api/scan-intention.html#enum-scandit.datacapture.core.ScanIntention) algorithm, to reduce the likelihood of unintended scans
-
-Lastly, we apply the settings to the SparkScan instance.
-
-### 4. Setup the SparkScanView
-
-Now we'll create and configure the scanner view and it's settings. This is done via the `SparkScanView` and `SparkScanViewSettings` classes:
-
-```typescript
-const viewSettings = new SparkScanViewSettings();
-viewSettings.defaultScanningMode = SparkScanScanningModeTarget;
-viewSettings.soundEnabled = true;
-viewSettings.hapticEnabled = false;
-```
-
-In this example, we're:
-
-- Setting the default scanning mode to `SparkScanScanningModeTarget` for precision scanning
-- Enabling sound feedback
-- Disabling haptic feedback
-
-Next, we create the `SparkScanView` instance, adding the scanning interface to the application:
-
-```typescript
-const sparkScanComponent = (
-
-);
-```
-
-In your application's state handling logic, you must also call the `stopScanning` method when the scanner is no longer needed:
-
-```typescript
-componentWillUnmount() {
-sparkScanComponent.stopScanning();
-}
-
-handleAppStateChange = async (nextAppState) => {
-if (nextAppState.match(/inactive|background/)) {
-sparkScanComponent.stopScanning();
-}
-};
-```
-
-### 5. Implement the Listener
-
-Lastly, you need to implement the listener to handle the scanned data. This is done by creating an instance of the [`SparkScanListener`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) class:
-
-```typescript
-const listener = {
- didScan: (sparkScan, session, getFrameData) => {
- // Gather the recognized barcode
- const barcode = session.newlyRecognizedBarcode[0];
-
- // Handle the barcode
- },
-};
-
-sparkScan.addListener(listener);
-```
-
-Here, `didScan()` is called when a barcode is recognized. You can access the recognized barcode data from the `SparkScanSession` object.
-
-### 6. Next Steps
-
-This guide provides a basic overview of how to integrate SparkScan into your application. For more detailed information, check out the [SparkScan documentation](/sdks/web/sparkscan/intro.md) and [SparkScan API Reference](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan.html).
-
-If you have any questions or need help, feel free to reach out to [Scandit Support](mailto:support@scandit.com).
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/id-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/web/id-capture/advanced.md
deleted file mode 100644
index cba8d4d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/id-capture/advanced.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-description: "There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features. "
-
-sidebar_position: 4
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Advanced Configurations
-
-There are several advanced configurations that can be used to customize the behavior of the ID Capture SDK and enable additional features.
-
-## Configure Data Anonymization
-
-By default, data extracted from documents is anonymized according to local regulations. See [Anonymized Documents](/sdks/web/id-capture/supported-documents.md#anonymized-documents) for more information.
-
-That means certain data from certain fields won’t be returned, even if it’s present on a document. You control the anonymization level with the following setting:
-
-```js
-// Default value:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_ONLY);
-
-// Sensitive data is additionally covered with black boxes on returned images:
-settings.setAnyonymizationMode(IdAnonymizationMode.FIELDS_AND_IMAGES);
-
-// Only images are anonymized:
-settings.setAnyonymizationMode(IdAnonymizationMode.IMAGES_ONLY);
-
-// No anonymization:
-settings.setAnyonymizationMode(IdAnonymizationMode.NONE);
-```
-
-## ID Images
-
-Your use can may require that you capture and extract images of the ID document. Use the [IdImageType](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-image-type.html#enum-scandit.datacapture.id.IdImageType) enum to specify the images you want to extract from the `CapturedId` object.
-
-:::tip
-Face and Cropped Document can be extracted only by either `SingleSideScanner` with `visualInspectionZone` enabled or by `FullDocumentScanner`.
-In the case of `FullDocumentScanner`, if the front & the back side of a document are scanned, Cropped Document and Full Frame are returned for both sides.
-:::
-
-For the full frame of the document, you can use [`setShouldPassImageTypeToResult`](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-settings.html#method-scandit.datacapture.id.IdCaptureSettings.SetShouldPassImageTypeToResult) when creating the `IdCaptureSettings` object. This will pass the image type to the result, which you can then access in the `CapturedId` object.
-
-```js
-// Holder's picture as printed on a document:
-settings.setShouldPassImageTypeToResult(ImageType.FACE);
-
-// Cropped image of a document:
-settings.setShouldPassImageTypeToResult(ImageType.CROPPED_DOCUMENT);
-
-// Full camera frame that contains the document:
-settings.setShouldPassImageTypeToResult(ImageType.FULL_FRAME);
-```
-
-## Callbacks and Scanning Workflows
-
-The ID Capture Listener provides two callbacks: `onIdCaptured` and `onIdRejected`. The `onIdCaptured` callback is called when an acceptable document is successfully captured, while the `onIdRejected` callback is called when a document is captured but rejected.
-
-For a successful capture, the `onIdCaptured` callback provides a `CapturedId` object that contains the extracted information from the document. This object is specific to the type of document scanned. For example, a `CapturedId` object for a US Driver License will contain different fields than a `CapturedId` object for a Passport.
-
-For a rejected document, a [RejectionReason](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) is provided in the `onIdRejected` callback to help you understand why the document was rejected and to take appropriate action. These are:
-
-* NOT_ACCEPTED_DOCUMENT_TYPE: The document is not in the list of accepted documents. In this scenario, you could direct the user to scan a different document.
-* INVALID_FORMAT: The document is in the list of accepted documents, but the format is invalid. In this scenario, you could direct the user to scan the document again.
-* DOCUMENT_VOIDED: The document is in the list of accepted documents, but the document is voided. In this scenario, you could direct the user to scan a different document.
-* TIMEOUT: The document was not scanned within the specified time. In this scenario, you could direct the user to scan the document again.
-
-## Detect Fake IDs
-
-*ID Validate* is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
-
-Fake ID detection can be performed as follows:
-
-* [AAMVABarcodeVerifier](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/aamva-barcode-verifier.html#class-scandit.datacapture.id.AamvaBarcodeVerifier): Validates the authenticity of the document by scanning the barcode on the back.
-* [IdCaptureSettings.rejectInconsistentData](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.RejectInconsistentData): Automatically rejects documents whose human‑readable data does not match the data encoded in the barcode or MRZ.
-
-To enable ID validation for your subscription, please reach out to [Scandit Support](mailto:support@scandit.com).
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/id-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/web/id-capture/get-started.md
deleted file mode 100644
index 9bc4c96d..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/id-capture/get-started.md
+++ /dev/null
@@ -1,342 +0,0 @@
----
-description: "This page will guide you through the process of adding ID Capture to your Web application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards. "
-
-sidebar_position: 2
-framework: web
-keywords:
- - web
----
-
-# Get Started
-
-This page will guide you through the process of adding ID Capture to your Web application. ID Capture is a mode of the Scandit Data Capture SDK that allows you to capture and extract information from personal identification documents, such as driver's licenses, passports, and ID cards.
-
-The general steps are:
-
-- Create a [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-- Access a [Camera](https://docs.scandit.com/data-capture-sdk/web/core/api/camera.html#class-scandit.datacapture.core.Camera).
-- Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scan process.
-- Implement an [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener) to receive scan results.
-- Set up [DataCaptureView](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) and [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) to see the camera feed and the scan UI.
-- Begin the scanning by adding an [IdCapture](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture.html#class-scandit.datacapture.id.IdCapture) to [DataCaptureContext](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext) and starting a camera.
-
-:::warning
-Using ID Capture at the same time as other modes (e.g. Barcode Capture) is not supported.
-:::
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](/sdks/web/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-Please note that your license may support only a subset of ID Capture features. If you would like to use additional features please contact us at [Scandit Support](mailto:support@scandit.com).
-
-### Configure and Initialize the Library
-
-In addition to the configuration detailed in the [installation guide](/sdks/web/add-sdk.md#configure-the-library), there are some additional steps required for ID Capture.
-
-For ID Capture, the result of [idCaptureLoader()](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture.html#method-scandit.datacapture.id.IdCaptureLoader) must be passed to the [ConfigureOptions.moduleLoaders](https://docs.scandit.com/data-capture-sdk/web/core/api/web/configure.html#property-scandit.datacapture.core.IConfigureOptions.ModuleLoaders) option.
-
-In this example, we will scan VIZ documents, so we also need to set [IdCaptureLoaderOptions.enableVIZDocuments](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture.html#property-scandit.datacapture.id.IIdCaptureLoaderOptions.EnableVIZDocuments) to `true`:
-
-```ts
-import { DataCaptureContext } from "@scandit/web-datacapture-core";
-import { idCaptureLoader } from "@scandit/web-datacapture-id";
-
-const context = await DataCaptureContext.forLicenseKey(
- "-- ENTER YOUR SCANDIT LICENSE KEY HERE --",
- {
- libraryLocation: "/self-hosted-sdc-lib/",
- moduleLoaders: [idCaptureLoader({ enableVIZDocuments: true })],
- }
-);
-```
-
-:::tip
-Avoid enabling VIZ documents if you only scan MRZs or barcodes, as it slows down the scanning initialization because more data must be downloaded.
-:::
-
-:::warning
-You must await the returned promise as shown to be able to continue.
-:::
-
-## Create the View
-
-When the scanning process is requested, it is good practice to keep the user informed about what is happening. The SDK may still be loading so you should display a view to the user as soon as possible.
-
-To do that, start by adding a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) and attach it to an HTML element in the page. For example, let's display a progress bar while the SDK is loading:
-
-```ts
-import { DataCaptureView } from "@scandit/web-datacapture-core";
-
-const view = new DataCaptureView();
-view.connectToElement(htmlElement);
-view.showProgressBar();
-```
-
-:::tip
-You may not need to do this so early if your application loads the SDK in the background (e.g. on startup) and the view is already available when the user requests scanning.
-:::
-
-## Attach Context to View
-
-If you already created a view earlier (as shown in the "Create the View" section), you should now attach the context to it:
-
-```js
-await view.setContext(context);
-```
-
-## Add the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/web/core/api/camera.html#class-scandit.datacapture.core.Camera "Camera class"):
-
-```ts
-import { Camera } from "@scandit/web-datacapture-core";
-import { IdCapture } from "@scandit/web-datacapture-id";
-
-# let the SDK pick the best camera for ID Capture
-const camera = Camera.pickBestGuess();
-# apply the optimized camera settings from ID Capture
-await camera.applySettings(IdCapture.recommendedCameraSettings);
-await context.setFrameSource(camera);
-```
-
-## Create ID Capture Settings
-
-Use [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings) to configure the scanner type to use and the documents that should be accepted and/or rejected.
-
-Check [IdCaptureDocumentType](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-document.html#enum-scandit.datacapture.id.IdCaptureDocumentType) for all available options.
-
-:::tip
-By default, [anonymized data](./advanced.md#configure-data-anonymization) is not returned in accordance with local regulations for specific documents. This setting can be disabled for testing purposes, but be sure to comply with local laws and requirements in production.
-:::
-
-```ts
-import {
- IdCapture,
- IdCaptureSettings,
- IdCard,
- Region,
- RegionSpecific,
- Passport,
- SingleSideScanner,
- FullDocumentScanner,
-} from "@scandit/web-datacapture-id";
-
-const settings = new IdCaptureSettings();
-
-// Documents from any region:
-settings.acceptedDocuments.push(new Passport(Region.Any));
-// Only documents issued by a specific country:
-settings.acceptedDocuments.push(new IdCard(Region.Germany));
-// Regional documents:
-settings.acceptedDocuments.push(new RegionSpecific.ApecBusinessTravelCard());
-
-// If we added passports for all regions like above, we can exclude some specific regions
-settings.rejectedDocuments.push(new Passport(Region.Cuba));
-
-// To scan only one-sided documents and a given zone:
-// Signature: SingleSideScanner(barcode: boolean, machineReadableZone boolean, visualInspectionZone: boolean)
-// This would only scan a single side document having an MRZ:
-settings.scanner = new IdCaptureScanner({
- physicalDocument: new SingleSideScanner(true, false, false),
-});
-
-// To scan both sides of the document:
-settings.scanner = new IdCaptureScanner({
- physicalDocument: new FullDocumentScanner(),
-});
-```
-
-Create a new ID Capture mode with the chosen settings:
-
-```ts
-const idCapture = await IdCapture.forContext(context, settings);
-```
-
-## Implement the listener
-
-To receive scan results, implement [IdCaptureListener](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-listener.html#interface-scandit.datacapture.id.IIdCaptureListener). The listener provides two important callbacks: `didCaptureId` and `didRejectId`.
-
-```ts
-import { type CapturedId, RejectionReason } from "@scandit/web-datacapture-id";
-
-idCapture.addListener({
- didCaptureId: (capturedId: CapturedId) => {
- // Success! Handle extracted data here.
- },
- didRejectId: (capturedId: CapturedId, reason: RejectionReason) => {
- // Something went wrong. Inspect the reason to determine the follow-up action.
- },
-});
-```
-
-When `didCaptureId` or `didRejectId` are called, IdCapture is automatically [reset](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture.html#method-scandit.datacapture.id.IdCapture.Reset) except when the rejection is due to a timeout (see [rejection reason](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/rejection-reason.html)).
-
-Note that the camera is still running, you may want to switch it off at this point.
-
-### Handling Success
-
-Captured results are delivered as a [CapturedId](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/captured-id.html#class-scandit.datacapture.id.CapturedId). This class contains data common for all kinds of personal identification documents.
-
-Note that if you scan boths sides of a document using the [FullDocumentScanner](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-scanner.html#full-document-scanner), this callback will only be executed once both sides have been successfully captured. If the document is known to have only one side, the callback will execute immediately after a successful scan of the first side. This behaviour can be modified with the setting [notifyOnSideCapture](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-settings.html#property-scandit.datacapture.id.IdCaptureSettings.NotifyOnSideCapture).
-
-On a successful scan you may read the extracted data from `capturedId`:
-
-```ts
-didCaptureId: async (capturedId: CapturedId) => {
- // stop processing new frames, we have a result
- await idCapture.setEnabled(false);
-
- const fullName = capturedId.fullName;
- const dateOfBirth = capturedId.dateOfBirth;
- const dateOfExpiry = capturedId.dateOfExpiry;
- const documentNumber = capturedId.documentNumber;
-
- // Process data:
- processData(fullName, dateOfBirth, dateOfExpiry, documentNumber);
-};
-```
-
-:::tip
-All data fields are optional, so it's important to verify whether the required information is present if some of the accepted documents may not contain certain data.
-:::
-
-### Handling Rejection
-
-The ID scanning process may fail for various reasons. Start from inspecting [RejectionReason](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/rejection-reason.html#enum-scandit.datacapture.id.RejectionReason) to understand the cause.
-
-Note that some data may still have been captured, you will find them in the first `capturedId` parameter of the callback.
-
-You may wish to implement the follow-up action based on the reason of failure:
-
-```ts
-didRejectId: (capturedId: CapturedId, reason: RejectionReason) => {
- if (reason === RejectionReason.Timeout) {
- // Ask the user to retry, or offer alternative input method.
- } else if (reason === RejectionReason.DocumentExpired) {
- // Ask the user to provide alternative document.
- } else if (reason === RejectionReason.NotAcceptedDocumentType) {
- // Inform the user which documents are accepted.
- } ...
-}
-```
-
-## Add an Overlay
-
-The overlay informs and guides the user during the scanning process. Create an instance of [IdCaptureOverlay](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/ui/id-capture-overlay.html#class-scandit.datacapture.id.ui.IdCaptureOverlay) for the existing view like so:
-
-```ts
-import { IdCaptureOverlay } from "@scandit/web-datacapture-id";
-
-const overlay = await IdCaptureOverlay.withIdCaptureForView(idCapture, view);
-```
-
-The overlay chooses the displayed UI automatically, based on the selected [IdCaptureSettings](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-settings.html#class-scandit.datacapture.id.IdCaptureSettings).
-
-If you prefer to show a different UI or to temporarily hide it, set the appropriate [IdCaptureOverlay.idLayout](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/ui/id-capture-overlay.html#property-scandit.datacapture.id.ui.IdCaptureOverlay.IdLayout).
-
-## Start the Capture Process
-
-Finally, turn on the camera to start scanning:
-
-```ts
-import { FrameSourceState } from "@scandit/web-datacapture-core";
-
-// ...
-
-await camera.switchToDesiredState(FrameSourceState.On);
-```
-
-You can also enable or disable IdCapture by using [setEnabled](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture.html#method-scandit.datacapture.id.IdCapture.SetEnabled) whenever you need to.
-
-## Complete IdCapture Example
-
-```js
-import {
- Camera,
- DataCaptureContext,
- DataCaptureView,
- FrameSourceState,
-} from "@scandit/web-datacapture-core";
-import {
- IdCapture,
- IdCaptureOverlay,
- IdCaptureSettings,
- IdCard,
- Passport,
- Region,
- FullDocumentScanner,
- IdCaptureScanner,
- RejectionReason,
- idCaptureLoader,
-} from "@scandit/web-datacapture-id";
-
-const context = await DataCaptureContext.forLicenseKey(
- "-- ENTER YOUR SCANDIT LICENSE KEY HERE --",
- {
- libraryLocation: "/self-hosted-sdc-lib/",
- moduleLoaders: [idCaptureLoader({ enableVIZDocuments: true })],
- }
-);
-
-const view = await DataCaptureView.forContext(context);
-view.connectToElement(document.body);
-
-const camera = Camera.pickBestGuess();
-await camera.applySettings(IdCapture.recommendedCameraSettings);
-await context.setFrameSource(camera);
-
-const settings = new IdCaptureSettings();
-settings.acceptedDocuments.push(new IdCard(Region.Any));
-settings.acceptedDocuments.push(new Passport(Region.Any));
-settings.scanner = new IdCaptureScanner({
- physicalDocument: new FullDocumentScanner(),
-});
-
-const idCapture = await IdCapture.forContext(context, settings);
-
-idCapture.addListener({
- didCaptureId: async (capturedId) => {
- await idCapture.setEnabled(false);
-
- console.log("Captured ID:", {
- fullName: capturedId.fullName,
- dateOfBirth: capturedId.dateOfBirth,
- documentNumber: capturedId.documentNumber,
- dateOfExpiry: capturedId.dateOfExpiry,
- });
- },
- didRejectId: (capturedId, reason) => {
- console.log("ID rejected:", reason);
-
- if (reason === RejectionReason.Timeout) {
- console.log("Scan timed out. Please try again.");
- } else if (reason === RejectionReason.NotAcceptedDocumentType) {
- console.log("Document type not accepted.");
- }
- },
-});
-
-const overlay = await IdCaptureOverlay.withIdCaptureForView(idCapture, view);
-
-async function mount() {
- await camera.switchToDesiredState(FrameSourceState.On);
- await idCapture.setEnabled(true);
-}
-
-async function unmount() {
- await camera.switchToDesiredState(FrameSourceState.Off);
- await idCapture.setEnabled(false);
-}
-
-mount().catch(async (error) => {
- console.error(error);
- await unmount();
-});
-```
-
-A more complete example can be found [here on StackBlitz](https://stackblitz.com/github/Scandit/datacapture-web-samples/tree/master/02_ID_Scanning_Samples/IdCaptureSimpleSample).
diff --git a/versioned_docs/version-8.1.1/sdks/web/id-capture/intro.md b/versioned_docs/version-8.1.1/sdks/web/id-capture/intro.md
deleted file mode 100644
index 19d2f034..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/id-capture/intro.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: "import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx'; "
-
-sidebar_label: About ID Capture
-title: About ID Capture and Validation
-sidebar_position: 1
-toc_max_heading_level: 4
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-import AboutIdCapture from '../../../partials/intro/_about-id-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/id-capture/supported-documents.md b/versioned_docs/version-8.1.1/sdks/web/id-capture/supported-documents.md
deleted file mode 100644
index e22c5c76..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/id-capture/supported-documents.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: "Scandit ID Capture provides various types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type. "
-
-sidebar_label: Supported Documents
-title: Supported Documents
-hide_title: true
-toc_min_heading_level: 2
-toc_max_heading_level: 4
-sidebar_position: 3
-framework: web
-keywords:
- - web
----
-
-## ID Scanning Supported Documents
-
-Scandit ID Capture provides various [IdCaptureScanner](https://docs.scandit.com/data-capture-sdk/web/id-capture/api/id-capture-scanner.html#id-capture-scanner) types, each designed for specific scanning workflows. These workflows can involve scanning either specific parts of a document or the entire document, including both the front and back sides. This section details the types of documents supported by each scanner type.
-
-import IdDocumentsFull from '../../../partials/advanced/_id-documents-full-document.mdx';
-
-
-
-import IdDocumentsSingleSide from '../../../partials/advanced/_id-documents-single-side.mdx';
-
-
-
-## ID Validation Supported Documents
-
-import IdValidateDocuments from '../../../partials/advanced/_id-documents-validate.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/label-capture/advanced.md b/versioned_docs/version-8.1.1/sdks/web/label-capture/advanced.md
deleted file mode 100644
index b1f9fa88..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/label-capture/advanced.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-description: "Guide to customizing overlays in the Scandit Web Label Capture SDK."
-sidebar_position: 3
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Advanced Configurations
-
-## Customize the Overlay Appearance
-
-To customize the appearance of the overlay, you can implement a [LabelCaptureBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/ui/label-capture-basic-overlay-listener.html#interface-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener).
-
-The method [brushForLabel()](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForLabel) is called every time a label captured and [brushForField()](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/ui/label-capture-basic-overlay-listener.html#method-scandit.datacapture.label.ui.ILabelCaptureBasicOverlayListener.BrushForField) is called for each of its fields to determine the brush for the label or field.
-
-```js
-const overlayListener = LabelCaptureBasicOverlayListener>(() => ({
- brushForFieldOfLabel: (_, field) => {
- switch (field.name) {
- case "":
- return new Brush(
- "rgba(0, 255, 255, 0.5)",
- "rgba(0, 255, 255, 0.5)",
- 0)
- case "":
- return new Brush(
- "rgba(255, 165, 0, 0.5)",
- "rgba(255, 165, 0, 0.5)",
- 0)
- default:
- return new Brush(
- Colors.transparentColor,
- Colors.transparentColor,
- 0)
- },
- brushForLabel() {
- return new Brush(Colors.transparentColor, Colors.transparentColor, 0)
- },
- didTapLabel() {
- /*
- * Handle user tap gestures on the label.
- */
- }
- }), [])
-
-useEffect(() => {
- /*
- * Assign the overlay listener to the overlay
- * before adding it to the data capture view.
- */
- overlay.listener = overlayListener
- const dataCaptureView = dataCaptureViewRef.current
- dataCaptureView.addOverlay(overlay)
- return () => {
- /*
- * Unassign the overlay listener from the overlay
- * before removing it from the data capture view.
- */
- overlay.listener = null
- dataCaptureView?.removeOverlay(overlay)
- }
-}, [])
-```
-
-:::tip
-Use brush colors with transparency (alpha < 100%) to not occlude the captured barcodes or texts.
-:::
-
-## Validation Flow
-
-Validation Flow is a workflow available in Smart Label Capture to improve the accuracy and completeness of scanned label data in real-world environments. See the [LabelCaptureValidationFlowOverlay](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/ui/label-capture-validation-flow-overlay.html) and [LabelCaptureValidationFlowSettings](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/ui/label-capture-validation-flow-settings.html) API references for implementation details.
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/label-capture/get-started.md b/versioned_docs/version-8.1.1/sdks/web/label-capture/get-started.md
deleted file mode 100644
index 2f0e9576..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/label-capture/get-started.md
+++ /dev/null
@@ -1,372 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add Smart Label Capture to your application."
-sidebar_position: 2
-framework: web
-keywords:
- - web
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add Smart Label Capture to your application.
-
-The general steps are:
-
-- Create a component to handle the capture process
-- Initialize the Data Capture Context
-- Initialize the Label Capture Mode
-- Implement a listener to handle captured labels
-- Visualize the scan process
-- Start the camera
-- Provide feedback
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this [guide](/sdks/web/add-sdk.md).
-
-:::tip
-You can retrieve your Scandit Data Capture SDK license key by signing in to your account [Dashboard](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Module Overview
-
-import LabelCaptureModuleOverview from '../../../partials/get-started/\_smart-label-capture-module-overview-web.mdx';
-
-
-
-## Initialize the Data Capture Context
-
-import DataCaptureContextWeb from '../../../partials/get-started/\_create-data-capture-context-web.mdx';
-
-
-
-## Initialize the Label Capture Mode
-
-The main entry point for the Label Capture Mode is the [LabelCapture](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/label-capture.html#class-scandit.datacapture.label.LabelCapture) object.
-
-It is configured through [LabelCaptureSettings](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/label-capture-settings.html#class-scandit.datacapture.label.LabelCaptureSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) that get informed whenever a new frame has been processed.
-
-```js
-import { Symbology } from "@scandit/web-datacapture-barcode";
-import {
- CustomBarcodeBuilder,
- LabelCapture,
- LabelCaptureSettings,
- LabelDefinitionBuilder,
- TotalPriceTextBuilder,
- UnitPriceTextBuilder,
- LabelDateFormat,
- WeightTextBuilder,
- ImeiOneBarcodeBuilder,
- ImeiTwoBarcodeBuilder,
- SerialNumberBarcodeBuilder,
-} from "@scandit/web-datacapture-label";
-
-const isofLabel = await new LabelDefinitionBuilder()
- .addCustomBarcode(
- // Create a barcode field with the expected symbologies
- await new CustomBarcodeBuilder()
- .isOptional(false)
- .setSymbology(Symbology.EAN13UPCA)
- .build("Barcode")
- )
- .addTotalPriceText(
- await new TotalPriceTextBuilder().isOptional(false).build("Total Price")
- )
- .addUnitPriceText(
- await new UnitPriceTextBuilder().isOptional(false).build("Unit Price")
- )
- .addExpiryDateText(
- await new ExpiryDateTextBuilder()
- .isOptional(false)
- .setLabelDateFormat(new LabelDateFormat(LabelDateComponentFormat.MDY))
- .build("Expiry Date")
- )
- .addWeightText(
- await new WeightTextBuilder().isOptional(false).build("Weight")
- )
- .build("ISOF Label");
-
-const smartDeviceLabel = await new LabelDefinitionBuilder()
- .addImeiOneBarcode(
- await new ImeiOneBarcodeBuilder()
- .isOptional(false)
- .setSymbology(Symbology.Code128)
- .build("IMEI")
- )
- .addImeiTwoBarcode(
- await new ImeiTwoBarcodeBuilder()
- .isOptional(false)
- .setSymbology(Symbology.Code128)
- .build("IMEI2")
- )
- .addSerialNumberBarcode(
- await new SerialNumberBarcodeBuilder()
- .isOptional(false)
- .setSymbology(Symbology.Code128)
- .build("Serial Number")
- )
- .addCustomBarcode(
- await new CustomBarcodeBuilder()
- .isOptional(false)
- .setSymbology(Symbology.Code128)
- .build("EID")
- )
- .build("Smart Device Label");
-
-const settings = await new LabelCaptureSettingsBuilder()
- .addLabel(isofLabel)
- .addLabel(smartDeviceLabel)
- .build();
-// Create the label capture mode with the settings and data capture context created earlier
-const mode = await LabelCapture.forContext(dataCaptureContext, settings);
-```
-
-## Implement a Listener to Handle Captured Labels
-
-To get informed whenever a new label has been recognized, add a [LabelCaptureListener](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/label-capture-listener.html#interface-scandit.datacapture.label.ILabelCaptureListener) through [LabelCapture.addListener()](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/label-capture.html#method-scandit.datacapture.label.LabelCapture.AddListener) and implement the listener methods to suit your application’s needs.
-
-First conform to the `LabelCaptureListener` interface. Here is an example of how to implement a listener that processes the captured labels based on the label capture settings defined above.
-
-```ts
-import {
- CapturedLabel,
- LabelCaptureListener,
-} from "@scandit/web-datacapture-label";
-import type {
- LabelCapture,
- LabelCaptureSession,
-} from "@scandit/web-datacapture-label";
-
-const labelCaptureListener: LabelCaptureListener = {
- async didUpdateSession(
- labelCapture: LabelCapture,
- session: LabelCaptureSession
- ) {
- /*
- * The session update callback is called for every processed frame.
- * Early return if no label has been captured.
- */
- if (!session.capturedLabels.length) return;
-
- session.capturedLabels.forEach((capturedLabel) => {
- const { fields } = capturedLabel;
-
- /*
- * Given the label capture settings defined above, barcode data will always be present.
- */
- const barcodeData = fields.find(
- (field) => field.name === ""
- )?.barcode?.data;
-
- /*
- * The expiry date is an optional field.
- * Check for null in your result handling.
- */
- const expiryDate = fields.find(
- (field) => field.name === ""
- )?.text;
-
- /*
- * Handle the captured data as needed, for example:
- * - Update your app's state
- * - Call a callback function
- * - Navigate to a results screen
- */
- onLabelCaptured({ barcodeData, expiryDate });
- });
-
- /*
- * Disable the label capture mode after all labels have been processed
- * to prevent it from capturing the same labels multiple times.
- */
- await labelCapture.setEnabled(false);
-
- /*
- * You may want to communicate a successful scan with vibration and audio feedback.
- * See the Feedback section for more information on how to customize the feedback.
- */
- Feedback.defaultFeedback.emit();
- },
-};
-```
-
-## Visualize the Scan Process
-
-The capture process can be visualized by adding a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy. The view controls the UI elements, such as the viewfinder and overlays, that are shown to visualize captured labels.
-
-To visualize the results of Label Capture, you can choose between two overlays, [LabelCaptureBasicOverlay](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/ui/label-capture-basic-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureBasicOverlay) and [LabelCaptureAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/ui/label-capture-advanced-overlay.html#class-scandit.datacapture.label.ui.LabelCaptureAdvancedOverlay).
-
-Here is an example of how to add a `LabelCaptureBasicOverlay` to the `DataCaptureView`.
-
-```js
-import {
- RectangularViewfinder,
- RectangularViewfinderStyle,
-} from "@scandit/web-datacapture-core";
-import {
- LabelCapture,
- LabelCaptureBasicOverlay,
-} from "@scandit/web-datacapture-label";
-
-// Create the overlay with the label capture mode created earlier
-const overlay = await LabelCaptureBasicOverlay.withLabelCapture(mode);
-await view.addOverlay(overlay);
-
-// Add a square viewfinder to the overlay to guide users through the capture process
-const viewfinder = new RectangularViewfinder(RectangularViewfinderStyle.Square);
-await overlay.setViewfinder(viewfinder);
-```
-
-:::tip
-See the [Advanced Configurations](advanced.md) section for more information about how to customize the appearance of the overlays and how to use the advanced overlay to display arbitrary Android views such as text views, icons or images.
-:::
-
-## Start the Camera
-
-You need to also create the [Camera](https://docs.scandit.com/data-capture-sdk/web/core/api/camera.html#class-scandit.datacapture.core.Camera):
-
-```js
-import { Camera } from "@scandit/web-datacapture-core";
-
-const camera = Camera.pickBestGuess();
-await context.setFrameSource(camera);
-
-const cameraSettings = LabelCapture.createRecommendedCameraSettings();
-
-// Depending on the use case further camera settings adjustments can be made here.
-await camera.applySettings(cameraSettings);
-```
-
-Once the `Camera`, `DataCaptureContext`, `DataCaptureView` and `LabelCapture` are initialized, you can switch on the camera to start capturing labels.
-
-Typically, this is done once the view becomes active and the user granted permission to use the camera, or once the user presses continue scanning after handling a previous scan.
-
-```js
-await camera.switchToDesiredState(FrameSourceState.On);
-```
-
-Please refer to the available [sample apps](https://github.com/Scandit/datacapture-web-samples) for detailed examples of camera permission handling and view lifecycle management.
-
-## Provide Feedback
-
-Smart Label Capture provides customizable feedback, emitted automatically when a label is recognized and successfully processed, configurable via [`LabelCapture.feedback`](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/label-capture.html#property-scandit.datacapture.label.LabelCapture.Feedback).
-
-You can use the default feedback, or configure your own sound or vibration.
-
-:::tip
-If you already have a [Feedback](https://docs.scandit.com/data-capture-sdk/web/core/api/feedback.html#class-scandit.datacapture.core.Feedback) instance implemented in your application, remove it to avoid double feedback.
-:::
-
-```js
-const feedback = LabelCaptureFeedback.default;
-```
-
-:::note
-Audio feedback is only played if the device is not muted.
-:::
-
-## Complete Label Capture Example
-
-```js
-import {
- Camera,
- DataCaptureContext,
- DataCaptureView,
- FrameSourceState,
- RectangularViewfinder,
- RectangularViewfinderStyle,
-} from "@scandit/web-datacapture-core";
-import { Symbology } from "@scandit/web-datacapture-barcode";
-import {
- CustomBarcodeBuilder,
- LabelCapture,
- LabelCaptureBasicOverlay,
- LabelCaptureSettingsBuilder,
- LabelDefinitionBuilder,
- TotalPriceTextBuilder,
- UnitPriceTextBuilder,
- labelCaptureLoader,
-} from "@scandit/web-datacapture-label";
-
-const context = await DataCaptureContext.forLicenseKey(
- "-- ENTER YOUR SCANDIT LICENSE KEY HERE --",
- {
- libraryLocation: "/self-hosted-sdc-lib/",
- moduleLoaders: [labelCaptureLoader()],
- }
-);
-
-const view = await DataCaptureView.forContext(context);
-view.connectToElement(document.body);
-
-const camera = Camera.pickBestGuess();
-await context.setFrameSource(camera);
-
-const cameraSettings = LabelCapture.createRecommendedCameraSettings();
-await camera.applySettings(cameraSettings);
-
-const priceLabel = await new LabelDefinitionBuilder()
- .addCustomBarcode(
- await new CustomBarcodeBuilder()
- .isOptional(false)
- .setSymbology(Symbology.EAN13UPCA)
- .build("Barcode")
- )
- .addTotalPriceText(
- await new TotalPriceTextBuilder().isOptional(false).build("Total Price")
- )
- .addUnitPriceText(
- await new UnitPriceTextBuilder().isOptional(false).build("Unit Price")
- )
- .build("Price Label");
-
-const settings = await new LabelCaptureSettingsBuilder()
- .addLabel(priceLabel)
- .build();
-
-const labelCapture = await LabelCapture.forContext(context, settings);
-
-labelCapture.addListener({
- didUpdateSession: async (labelCapture, session) => {
- session.capturedLabels.forEach((label) => {
- const barcode = label.fields.find((field) => field.name === "Barcode")
- ?.barcode?.data;
-
- const totalPrice = label.fields.find(
- (field) => field.name === "Total Price"
- )?.text;
-
- const unitPrice = label.fields.find(
- (field) => field.name === "Unit Price"
- )?.text;
-
- console.log("Captured:", { barcode, totalPrice, unitPrice });
- });
-
- await labelCapture.setEnabled(false);
- },
-});
-
-const overlay = await LabelCaptureBasicOverlay.withLabelCapture(labelCapture);
-await view.addOverlay(overlay);
-
-const viewfinder = new RectangularViewfinder(RectangularViewfinderStyle.Square);
-await overlay.setViewfinder(viewfinder);
-
-async function mount() {
- await camera.switchToDesiredState(FrameSourceState.On);
-}
-
-async function unmount() {
- await camera.switchToDesiredState(FrameSourceState.Off);
- await labelCapture.setEnabled(false);
-}
-
-mount().catch(async (error) => {
- console.error(error);
- await unmount();
-});
-```
-
-A more complete example can be found [here on StackBlitz](https://stackblitz.com/github/Scandit/datacapture-web-samples/tree/master/03_Advanced_Batch_Scanning_Samples/05_Smart_Label_Capture/LabelCaptureSimpleSample).
diff --git a/versioned_docs/version-8.1.1/sdks/web/label-capture/intro.md b/versioned_docs/version-8.1.1/sdks/web/label-capture/intro.md
deleted file mode 100644
index 045fe461..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/label-capture/intro.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-description: "Learn about Smart Label Capture, a feature that enhances label scanning accuracy and speed by leveraging machine learning technology."
-sidebar_label: About Smart Label Capture
-title: About Smart Label Capture
-toc_max_heading_level: 4
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-import AboutLabelCapture from '../../../partials/intro/_about-smart-label-capture.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/label-capture/label-definitions.md b/versioned_docs/version-8.1.1/sdks/web/label-capture/label-definitions.md
deleted file mode 100644
index 1dee7631..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/label-capture/label-definitions.md
+++ /dev/null
@@ -1,148 +0,0 @@
----
-description: "A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans."
-framework: web
-toc_max_heading_level: 4
-keywords:
- - web
----
-
-# Label Definitions
-
-A **Label Definition** is a configuration that defines the label, and its relevant fields, that Smart Label Capture should recognize and extract during scans.
-
-Smart Label Capture provides a [Label Definition](https://docs.scandit.com/data-capture-sdk/web/label-capture/api/label-definition.html#label-definition) API, enabling you to configure and extract structured data from predefined and custom labels. This feature provides a flexible way to recognize and decode fields within a specific label layout such as price tags, VIN labels, or packaging stickers without needing to write custom code for each label type.
-
-There are two approaches to using label definitions:
-
-- [**Pre-built Labels**](#pre-built-labels)
-- [**Custom Labels**](#custom-labels)
-
-## Pre-built Labels
-
-Smart Label Capture includes ready-made label definitions for common use cases. These pre-built options let you recognize and extract information from standard label types without creating custom configurations:
-
-
-
-### Example: Price label
-
-Use the `LabelCaptureSettings` builder to configure a pre-built label definition for price labels, such as those found in retail environments:
-
-
-
-```js
-const settings = LabelCaptureSettings.builder()
- .addLabel(LabelDefinition.createPriceCaptureDefinition("price-label"))
- .build();
-```
-
-## Custom Labels
-
-If Smart Label Capture’s pre-built options don’t fit your needs, define a custom label instead. Custom labels can combine your own fields with any of the available pre-built ones.
-
-:::tip
-The following characters are recognized: `0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()-./:,$¶"`.
-:::
-
-### Custom Fields
-
-There are two types of custom fields you can define:
-
-
-
-The following methods are available to configure custom fields:
-
-| Method | Optional | Description |
-|--------|----------|-------------|
-| `valueRegexes` | No | The regex patterns that identify the target string in the scanned content. |
-| `anchorRegexes` | Yes | Used to specify keywords or phrases that help identify the context of the field. This is particularly useful when the label contains multiple fields that could match the same pattern (e.g., when both packaging and expiry dates are present). |
-| `symbologies` | No | The barcode symbologies to match for barcode fields. This is important for ensuring that the field only captures data from specific barcode types, enhancing accuracy and relevance. |
-| `isOptional` | Yes | Whether the field is optional or mandatory. This is helpful when certain fields may not be present on every scan. |
-
-#### Example: Fish Shipping Box
-
-This example shows how to create a custom label definition for a fish shipping box, which includes fields for barcode and batch number.
-
-
-
-```js
-const settings = LabelCaptureSettings.builder()
- .addLabel(LabelDefinition.builder()
- .addCustomBarcode()
- .setSymbologies([Symbology.code128])
- .buildFluent("barcode-field")
- .addCustomText()
- .setAnchorRegexes(["Batch"])
- .setValueRegexes(["FZ\\d{5,10}"])
- .setOptional(true)
- .buildFluent("batch-number-field")
- .buildFluent("shipping-label"))
- .build();
-```
-
-### Pre-built Fields
-
-You can also build your label using pre-built fields. These common fields speed up integration because their `valueRegexes`, `anchorRegexes`, and `symbologies` are already predefined.
-
-Customization of pre-built fields is done via the `valueRegexes`, `anchorRegexes`, and `isOptional` methods, which allow you to specify the expected format of the field data.
-
-:::tip
-All pre-built fields come with default `valueRegexes` and `anchorRegexes` that are suitable for most use cases. **Using either method is optional and will override the defaults**.
-
-The `resetAnchorRegexes` method can be used to remove the default `anchorRegexes`, allowing you to rely solely on the `valueRegexes` for detection.
-:::
-
-import FeatureList from '@site/src/components/FeatureList';
-
-#### Barcode Fields
-
-
-
-#### Price and Weight Fields
-
-
-
-#### Date and Custom Text Fields
-
-
-
-#### Example: Hard disk drive label
-
-This example demonstrates how to configure a label definition for a hard disk drive (HDD) label, which typically includes common fields like serial number and part number.
-
-
-
-```js
-const settings = LabelCaptureSettings.builder()
- .addLabel(LabelDefinition.builder()
- .addSerialNumberBarcode()
- .buildFluent("serial-number")
- .addPartNumberBarcode()
- .buildFluent("part-number")
- .buildFluent("hdd-label"))
- .build();
-```
diff --git a/versioned_docs/version-8.1.1/sdks/web/label-scanning.md b/versioned_docs/version-8.1.1/sdks/web/label-scanning.md
deleted file mode 100644
index 249d742b..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/label-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Label scanning enables you to capture and extract data from labels containing multiple barcodes and printed text, making it ideal for retail, logistics, and inventory management applications."
-toc_max_heading_level: 4
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-# Label Scanning
-
-import LabelScanning from '../../partials/_label-scanning.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-ar/get-started.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-ar/get-started.md
deleted file mode 100644
index a688fbd7..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-ar/get-started.md
+++ /dev/null
@@ -1,133 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements: "
-
-sidebar_position: 2
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan AR to your application. Implementing MatrixScan AR involves two primary elements:
-
-- Barcode AR: The data capture mode that is used for scanning functionality.
-- A Barcode AR View: The pre-built UI elements used to highlight desired scanned items.
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode AR Mode
-- Setup the Barcode AR View
-- Registering the Listener to notify about found items
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context. Sdk must be configured first with a valid Scandit Data Capture SDK license key.
-
-```typescript
- const context = await DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --",
- libraryLocation: new URL("library/engine/", document.baseURI).toString(),
- moduleLoaders: [barcodeCaptureLoader({ highEndBlurryRecognition: false })],
- });
-
- const dataCaptureView = new DataCaptureView();
- // #root element should be present in .html document
- dataCaptureView.connectToElement(document.getElementById("root"));
-
- await dataCaptureView.setContext(context);
-```
-
-## Configure the Barcode AR Mode
-
-The main entry point for the Barcode AR Mode is the `BarcodeAr` object. You can configure the supported Symbologies through its [`BarcodeArSettings`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-ar-settings.html), and set up the list of items that you want MatrixScan AR to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```typescript
- const settings = new BarcodeArSettings();
- settings.enableSymbologies([Symbology.EAN13UPCA]);
- const barcodeAr = await BarcodeAr.forSettings(settings);
-```
-
-## Setup the `BarcodeArView`
-
-MatrixScan AR’s built-in AR user interface includes buttons and overlays that guide the user through the scan and check process. By adding a [`BarcodeArView`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-ar-view.html#class-scandit.datacapture.barcode.check.ui.BarcodeArView), the scanning interface is added automatically to your application.
-
-The `BarcodeArView` is where you provide the [`highlightProvider`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.HighlightProvider) and/or [`annotationProvider`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-ar-view.html#property-scandit.datacapture.barcode.check.ui.BarcodeArView.AnnotationProvider) to supply the highlight and annotation information for the barcodes to be checked. If *null*, a default highlight is used and no annotations are provided.
-
-The `BarcodeArView` appearance can be customized through [`BarcodeArViewSettings`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-ar-view-settings.html#class-scandit.datacapture.barcode.check.ui.BarcodeArViewSettings), and the corresponding settings for your desired highlights and/or annotations, to match your application’s look and feel. The following settings can be customized:
-
-- Audio and haptic feedback
-- Torch button visibility and its position
-- Switch camera button visibility and its position
-- Zoom control visibility and its position
-- The size, colors, and styles of the highlight and annotation overlays
-
-```typescript
-const soundEnabled = true;
-const hapticEnabled = true;
-
-const viewSettings = new BarcodeArViewSettings(soundEnabled, hapticEnabled);
-```
-
-Next, create a `BarcodeArView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeArView` is automatically added to the provided parent view.
-
-```typescript
-let barcodeArView = await BarcodeArView.createWithSettings(dataCaptureView, context, barcodeAr, viewSettings);
-
-// OR just create to use the default view settings and camera settings
-
-let barcodeArView = await BarcodeArView.create(dataCaptureView, context, barcodeAr);
-```
-
-## Register a Listener
-
-If you want a callback when an annotation is tapped, you can register a [BarcodeArInfoAnnotationListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-ar-info-annotation.html#interface-scandit.datacapture.barcode.ar.ui.IBarcodeArInfoAnnotationListener).
-
-```typescript
-
-barcodeArView.annotationProvider= {
- annotationForBarcode(barcode: Barcode, callback: (annotation: BarcodeArAnnotation) => void): void {
- const annotationArInfoListener: BarcodeArInfoAnnotationListener = {
- onInfoAnnotationTapped: (annotation) => {
- // Handle the tapped annotation
- }
- };
-
- const infoAnnotation = BarcodeArInfoAnnotation.create(barcode);
- infoAnnotation.isEntireAnnotationTappable = true;
- //... other properties
- infoAnnotation.listener = annotationArInfoListener;
- callback(infoAnnotation);
-}
-```
-
-## Register a listener for highlights click
-
-If you want a callback when an highlight is tapped, you can also register a `BarcodeArViewUiListener`
-
-```typescript
-const barcodeArViewUiListener: BarcodeArViewUiListener = {
- didTapHighlightForBarcode(barcodeAr: BarcodeAr, barcode: Barcode, highlight: BarcodeArHighlight): void {
- // handle click on highlight
- }
-}
-
-barcodeArView.listener = barcodeArViewUiListener;
-## Start Scanning
-
-With everything configured, you can now start scanning:
-
-```typescript
-await barcodeArView.start();
-```
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-ar/intro.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-ar/intro.md
deleted file mode 100644
index 9bbd6b53..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-ar/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-# About MatrixScan AR
-
-import AboutMatrixScanCheck from '../../../partials/intro/_about-matrixscan-ar.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/advanced.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/advanced.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/get-started.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/get-started.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/intro.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/intro.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-count/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/advanced.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/advanced.md
deleted file mode 100644
index 5d347105..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/advanced.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-description: "MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Advanced Configurations
-
-MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
-
-## BarcodeFind Listener
-
-You may want more fine-grained knowledge over the different events happening during the life of the `BarcodeFind` mode, such as when the search starts, pauses, and stops.
-
-To do this, you can directly register a [`BarcodeFindListener`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-find-listener.html#interface-scandit.datacapture.barcode.find.IBarcodeFindListener) on the mode itself, keeping in mind that these listeners are called from a background thread.
-
-```typescript
-barcodeFindMode.addListener({
- didStartSearch: () => {
- // The mode was started
- },
- didPauseSearch: (foundItems: BarcodeFindItem[]) => {
- // The mode was paused
- },
- didStopSearch: (foundItems: BarcodeFindItem[]) => {
- // The mode was stopped after the finish button was clicked
- }
-});
-```
-
-## UI Customization
-
-The `BarcodeFindView` by default shows a set of UI elements, any of which can be optionally hidden:
-
-- Play/Pause button
-- Finish button
-- Searched items carousel
-- Guidance hints
-- Progress bar (hidden by default)
-
-Each of these elements can be shown or hidden as needed. For example:
-
-```typescript
-barcodeFindView.setShouldShowCarousel(false);
-barcodeFindView.setShouldShowProgressBar(true);
-// …
-```
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/get-started.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/get-started.md
deleted file mode 100644
index 824e65b6..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/get-started.md
+++ /dev/null
@@ -1,127 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements: "
-
-sidebar_position: 2
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan Find to your application. Implementing MatrixScan Find involves two primary elements:
-
-- Barcode Find: The data capture mode that is used for search and find functionality.
-- A Barcode Find View: The pre-built UI elements used to highlight found items.
-
-:::note
-MatrixScan Find is implemented via [`BarcodeFind`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-find.html#class-scandit.datacapture.barcode.find.BarcodeFind).
-:::
-
-The general steps are:
-
-- Creating a new Data Capture Context instance
-- Configuring the Barcode Find Mode
-- Setup the Barcode Find View
-- Registering the Listener to be notified about found items
-
-## Create a Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new Data Capture Context with a valid Scandit Data Capture SDK license key.
-
-```typescript
- const context = await DataCaptureContext.forLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --", {
- libraryLocation: new URL("library/engine/", document.baseURI).toString(),
- moduleLoaders: [barcodeCaptureLoader({ highEndBlurryRecognition: false })],
- });
-
- const dataCaptureView = new DataCaptureView();
- // #root element should be present in .html document
- dataCaptureView.connectToElement(document.getElementById("root"));
-
- await dataCaptureView.setContext(context);
-```
-
-## Configure the Barcode Find Mode
-
-The main entry point for the Barcode Find Mode is the `BarcodeFind` object. You can configure the supported Symbologies through its [`BarcodeFindSettings`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-find-settings.html#class-scandit.datacapture.barcode.find.BarcodeFindSettings), and set up the list of items that you want MatrixScan Find to highlight.
-
-Here we configure it for tracking EAN13 codes, but you should change this to the correct symbologies for your use case.
-
-```typescript
- const settings = new BarcodeFindSettings();
- settings.enableSymbologies([Symbology.EAN13_UPCA]);
- const barcodeFind = await BarcodeFind.forSettings(settings);
-```
-
-Next, create the list of items that will be actively searched for. We will also attach some optional information to the first item that can be used by the `BarcodeFindView` to display extra information:
-
-```typescript
- const items: BarcodeFindItem[] = []
- items.push(
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215438"),
- new BarcodeFindItemContent("Mini Screwdriver Set", "(6-Piece)", null)
- )
- );
- items.push(
- new BarcodeFindItem(
- new BarcodeFindItemSearchOptions("9783598215414"),
- null // Item information is optional, used for display only
- )
- );
-```
-
-## Setup the `BarcodeFindView`
-
-MatrixScan Find’s built-in AR user interface includes buttons and overlays that guide the user through the searching process. By adding a [`BarcodeFindView`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-find-view.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindView), the scanning interface is added automatically to your application.
-
-The `BarcodeFindView` appearance can be customized through [`BarcodeFindViewSettings`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-find-view-settings.html#class-scandit.datacapture.barcode.find.ui.BarcodeFindViewSettings) to match your application’s look and feel. For example, you can change the color of the dots that are overlaid on top of the items that are found and enable sound and haptic alerts.
-
-```typescript
-const inListItemColorGreen = Color.fromHex("#00FF00");
-const notInListItemColorRed = Color.fromHex("#FF0000");
-const soundEnabled = true;
-const hapticEnabled = true;
-
-const viewSettings = new BarcodeFindViewSettings(inListItemColorGreen, notInListItemColorRed, soundEnabled, hapticEnabled);
-```
-
-Next, create a `BarcodeFindView` instance with the Data Capture Context and the settings initialized in the previous step. The `BarcodeFindView` is automatically added to the provided parent view.
-
-```typescript
-let barcodeFindView = await BarcodeFindView.createWithSettings(dataCaptureView, context, barcodeFind, viewSettings);
-
-// OR just create to use the default view settings and camera settings
-
-let barcodeFindView = await BarcodeFindView.create(dataCaptureView, context, barcodeFind);
-
-// finally set the item list to be searched
-await barcodeFind.setItemList(items);
-```
-
-## Register The Listener
-
-The `BarcodeFindView` displays a **Finish** button next to its shutter button.
-
-Register a [BarcodeFindViewUiListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-find-view.html#interface-scandit.datacapture.barcode.find.ui.IBarcodeFindViewUiListener) to be notified what items have been found once the finish button is pressed.
-
-```typescript
-barcodeFindView.setListener({
- didTapFinishButton: (foundItems: BarcodeFindItem[]) => {
- // do something with found items.
- // maybe relaunch the search
- }
-});
-```
-
-## Start Searching
-
-With everything configured, you can now start searching for items. This is done by calling `barcodeFindView.startSearching()`.
-
-```typescript
-barcodeFindView.startSearching();
-```
-
-This is the equivalent of pressing the Play button programmatically. It will start the search process, turn on the camera, and hide the item carousel.
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/intro.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/intro.md
deleted file mode 100644
index a4204648..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-find/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-# About MatrixScan Find
-
-import AboutFind from '../../../partials/intro/_about-matrixscan-find.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/advanced.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/advanced.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/advanced.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/get-started.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/get-started.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/get-started.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/intro.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/intro.md
deleted file mode 100644
index b48b60d0..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan-pick/intro.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-description: "This functionality is not currently supported in the selected framework. "
-
-displayed_sidebar: webSidebar
----
-
-# Page Unavailable
-
-This functionality is not currently supported in the selected framework.
-
----
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan/advanced.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan/advanced.md
deleted file mode 100644
index 5991c7ce..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan/advanced.md
+++ /dev/null
@@ -1,148 +0,0 @@
----
-description: "In the previous section we covered how to vizualize the scan process using the `BarcodeBatchBasicOverlay`. In this section we will cover how to add custom AR overlays to your MatrixScan application. "
-
-sidebar_position: 3
-pagination_next: null
-
-framework: web
-keywords:
- - web
----
-
-# Adding AR Overlays
-
-In the previous section we covered how to vizualize the scan process using the `BarcodeBatchBasicOverlay`. In this section we will cover how to add custom AR overlays to your MatrixScan application.
-
-There are two ways to add custom AR overlays to your application:
-
-- Using the [`BarcodeBatchAdvancedOverlay`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) class, our ready-to-use implementation for view-based AR overlays.
-- Provide your own fully custom implementation by using the [`BarcodeBatchListener.didUpdateSession()`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function to retrieve the tracking information and implement your own AR overlay.
-
-The first option is the easiest and recommended approach for most applications. It covers adding, removing, and animating the overlay’s views whenever needed and is also flexible enough to cover the majority of use cases.
-
-## Using BarcodeBatchAdvancedOverlay
-
-As mentioned above, the advanced overlay combined with its [listener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) offers an easy way of adding augmentations to your [DataCaptureView](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView). In this guide we will add a view above each barcode showing its content.
-
-First of all, create a new instance of [BarcodeBatchAdvancedOverlay](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) and add it to the
-[DataCaptureView](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView).
-
-```js
-const overlay = BarcodeBatchAdvancedOverlay.withBarcodeBatchForView(
- barcodeBatch,
- view
-);
-```
-
-At this point, you have two options.
-
-- Add a [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener) to the overlay.
-- Use the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay) to specify the view, anchor and offset for each barcode.
-
-:::note
-The second way will take priority over the first one, which means that if a view for a barcode has been set using [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), the function [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) won’t be invoked for that specific barcode.
-:::
-
-### Using [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener)
-
-- You need to implement [BarcodeBatchAdvancedOverlayListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener). This interface’s methods are invoked every time a barcode is newly tracked.
-- [BarcodeBatchAdvancedOverlayListener.viewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.ViewForTrackedBarcode) asks for a view to animate on top of the barcode. Returning _null_ will show no view.
-- [BarcodeBatchAdvancedOverlayListener.anchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.AnchorForTrackedBarcode) asks how to anchor the view to the barcode through [Anchor](https://docs.scandit.com/data-capture-sdk/web/core/api/anchor.html#enum-scandit.datacapture.core.Anchor 'Anchor enum'). Be aware that it anchors the view’s center to the anchor point. To achieve anchoring the top of the view or the bottom etc. you will have to set an offset as explained in the next point.
-- [BarcodeBatchAdvancedOverlayListener.offsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchAdvancedOverlayListener.OffsetForTrackedBarcode) asks for an offset that is applied on the already anchored view. This offset is expressed through a [PointWithUnit](https://docs.scandit.com/data-capture-sdk/web/core/api/common.html#struct-scandit.datacapture.core.PointWithUnit).
-
-```js
-import { PointWithUnit, MeasureUnit, NumberWithUnit, Anchor } from "@scandit/web-datacapture-core"
-import { TrackedBarcodeView } from "@scandit/web-datacapture-barcode"
-
-// ...
-overlay.listener = {
- viewForTrackedBarcode: (overlay, trackedBarcode) => {
- // Create and return the view you want to show for this tracked barcode. You can also return null, to have no view for this barcode.
- let element = document.createElement('span');
- element.innerText = trackedBarcode.barcode.data;
- element.style.backgroundColor = '#FFFFFFFF';
- return TrackedBarcodeView.withHTMLElement(element, null);
- },
-
- anchorForTrackedBarcode: (overlay, trackedBarcode) => {
- // As we want the view to be above the barcode, we anchor the view's center to the top-center of the barcode quadrilateral.
- // Use the function 'offsetForTrackedBarcode' below to adjust the position of the view by providing an offset.
- return Anchor.TopCenter;
- },
-
- offsetForTrackedBarcode: (overlay, trackedBarcode) => {
- // This is the offset that will be applied to the view.
- // You can use .fraction to give a measure relative to the view itself, the sdk will take care of transforming this into pixel size.
- // We now center horizontally and move up the view to make sure it's centered and above the barcode quadrilateral by half of the view's height.
- return new PointWithUnit(
- new NumberWithUnit(0, MeasureUnit.Fraction),
- new NumberWithUnit(-1, MeasureUnit.Fraction),
- );
- },
-};
-```
-
-### Using the setters in the [overlay](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay)
-
-The function [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) gives you access to a
-[session](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession), which contains all added, updated and removed tracked barcodes. From here you can create the view you want to display, and then call [BarcodeBatchAdvancedOverlay.setViewForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetViewForTrackedBarcode), [BarcodeBatchAdvancedOverlay.setAnchorForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetAnchorForTrackedBarcode) and [BarcodeBatchAdvancedOverlay.setOffsetForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-advanced-overlay.html#method-scandit.datacapture.barcode.batch.ui.BarcodeBatchAdvancedOverlay.SetOffsetForTrackedBarcode)
-
-```js
-import { PointWithUnit, MeasureUnit, NumberWithUnit, Anchor } from "@scandit/web-datacapture-core"
-import { TrackedBarcodeView } from "@scandit/web-datacapture-barcode"
-
-// ...
-barcodeBatch.addListener({
- didUpdateSession: (barcodeBatch, session) => {
- session.addedTrackedBarcodes.forEach(trackedBarcode => {
- let element = document.createElement('span');
- element.innerText = trackedBarcode.barcode.data;
- element.style.backgroundColor = '#FFFFFFFF';
- let trackedBarcodeView = TrackedBarcodeView.withHTMLElement(element, null);
-
- overlay.setViewForTrackedBarcode(trackedBarcodeView, trackedBarcode);
- overlay.setAnchorForTrackedBarcode(Anchor.TopCenter, trackedBarcode);
- overlay.setOffsetForTrackedBarcode(
- new PointWithUnit(
- new NumberWithUnit(0, MeasureUnit.Fraction), new NumberWithUnit(-1, MeasureUnit.Fraction)
- ), trackedBarcode);
- })
-});
-```
-
-## Provide your own custom implementation
-
-If you do not want to use the overlay, it is also possible to add augmented reality features based on the tracking identifier and the [quadrilateral](https://docs.scandit.com/data-capture-sdk/web/core/api/common.html#struct-scandit.datacapture.core.Quadrilateral) coordinates that every tracked barcode has. Below are some pointers.
-
-- Set a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) on the barcode tracking
-- In the [BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) function fetch the [added](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.AddedTrackedBarcodes) and [removed](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-session.html#property-scandit.datacapture.barcode.batch.BarcodeBatchSession.RemovedTrackedBarcodes) tracked barcodes.
-- Create and show the views for the added barcodes.
-- Remove the views for the lost barcodes.
-- Add a method that is called 60fps when [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) is enabled. In this method, for each [TrackedBarcode](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/tracked-barcode.html#class-scandit.datacapture.barcode.batch.TrackedBarcode) on-screen, update the position based on [TrackedBarcode.location](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location). Please note that there is no need to animate the change of location, the change of position will happen frequently enough that the view will look as it is animated.
-
-:::note
-The frame coordinates from [TrackedBarcode.location](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/tracked-barcode.html#property-scandit.datacapture.barcode.batch.TrackedBarcode.Location) need to be mapped to view coordinates, using
-[DataCaptureView.viewQuadrilateralForFrameQuadrilateral()](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#method-scandit.datacapture.core.ui.DataCaptureView.MapFrameQuadrilateralToView).
-:::
-
-```js
-didUpdateSession: (barcodeBatch, session) => {
- session.removedTrackedBarcodes.map((lostTrackIdentifier) => {
- // You now know the identifier of the tracked barcode that has been lost.
- // Usually here you would remove the views associated.
- });
-
- session.addedTrackedBarcodes.map((trackedBarcode) => {
- // Fixed identifier for the tracked barcode.
- const trackingIdentifier = trackedBarcode.identifier;
-
- // Current location of the tracked barcode.
- const location = trackedBarcode.location;
- view
- .viewQuadrilateralForFrameQuadrilateral(location)
- .then((quadrilateral) => {
- // You now know the location of the tracked barcode.
- });
- });
-};
-```
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan/get-started.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan/get-started.md
deleted file mode 100644
index 8bb5173c..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan/get-started.md
+++ /dev/null
@@ -1,562 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add MatrixScan to your application. "
-
-sidebar_position: 2
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add MatrixScan to your application.
-
-The general steps are:
-
-- Include the ScanditBarcodeCapture library and its dependencies to your project, if any.
-- Create a new [data capture context](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext), initialized with your license key.
-- Create a [barcode tracking settings](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) instance where you enable the [barcode symbologies](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/symbology.html#enum-scandit.datacapture.barcode.Symbology) you want to read in your application.
-- Create a new [barcode tracking](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object and initialize it with the settings created above.
-- Obtain a [camera](https://docs.scandit.com/data-capture-sdk/web/core/api/camera.html#class-scandit.datacapture.core.Camera) instance and set it as the frame source on the data capture context previously created.
-- Create a new [data capture view](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) and add a [basic overlay](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) instance to it for visual feedback.
-- Register an [overlay listener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) and implement [BrushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode), which is called whenever a new tracked barcode appears.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-### Improve runtime performance by enabling browser multithreading
-
-You can achieve better performance by enabling multithreading in any browser that supports it. Check the [Requirements Page](../../system-requirements) to know the minimum versions that can take advantage of multithreading.
-
-To enable multithreading you must set your site to be [crossOriginIsolated](https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated/). This will enable the SDK to use multithreading and significantly boost performance. If the environment supports it the SDK will automatically use multithreading. You can programmatically check for multithreading support using [BrowserHelper.checkMultithreadingSupport()](https://docs.scandit.com/data-capture-sdk/web/core/api/web/browser-compatibility.html#method-scandit.datacapture.core.BrowserHelper.CheckMultithreadingSupport).
-
-:::important
-Multithreading is particularly critical for MatrixScan as it significantly improves frame processing speed and tracking accuracy. Be sure to configure it correctly following this [tutorial](https://web.dev/coop-coep/). You can also check this [guide to enable cross-origin isolation](https://web.dev/cross-origin-isolation-guide/) and [safely reviving shared memory](https://hacks.mozilla.org/2020/07/safely-reviving-shared-memory/).
-:::
-
-#### Verify multithreading is enabled
-
-You can verify that multithreading is working correctly by checking the cross-origin isolation status:
-
-```js
-import { BrowserHelper } from "@scandit/web-datacapture-core";
-
-// Whether or not the browser supports SharedArrayBuffer, the page is served to be crossOriginIsolated and has support for nested web workers.
-const supportsMultithreading = await BrowserHelper.checkMultithreadingSupport();
-
-if (supportsMultithreading) {
- console.log("Multithreading is enabled and working!");
-} else {
- console.warn("Multithreading is not available. Check your cross-origin headers.");
-}
-
-```
-
-#### Configure cross-origin headers
-
-To enable cross-origin isolation, you need to set specific HTTP headers **on your HTML page** (not on the SDK files). The headers you need depend on whether you're self-hosting or using a CDN:
-
-:::warning CDN vs Self-Hosting
-If you're loading the SDK from a CDN (jsDelivr, UNPKG, etc.), you should use `Cross-Origin-Embedder-Policy: credentialless` instead of `require-corp` to avoid blocking cross-origin resources. Alternatively, **we strongly recommend self-hosting the SDK files** when using multithreading for better reliability and to avoid potential CDN CORS/CORP issues.
-:::
-
-**Choose the appropriate header configuration:**
-
-- **If self-hosting the SDK**: Use `Cross-Origin-Embedder-Policy: require-corp`
-- **If using a CDN**: Use `Cross-Origin-Embedder-Policy: credentialless` (requires modern browsers)
-
-Below are examples for common server setups:
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-
-
-
-
-Add these headers to your Nginx configuration file (usually in `/etc/nginx/sites-available/` or within a `server` block):
-
-**For self-hosted SDK:**
-
-```nginx
-server {
- # ... other configuration ...
-
- location / {
- add_header Cross-Origin-Embedder-Policy "require-corp" always;
- add_header Cross-Origin-Opener-Policy "same-origin" always;
-
- # ... other directives ...
- }
-}
-```
-
-**For CDN-hosted SDK:**
-
-```nginx
-server {
- # ... other configuration ...
-
- location / {
- add_header Cross-Origin-Embedder-Policy "credentialless" always;
- add_header Cross-Origin-Opener-Policy "same-origin" always;
-
- # ... other directives ...
- }
-}
-```
-
-After making changes, reload Nginx:
-
-```sh
-sudo nginx -t && sudo nginx -s reload
-```
-
-
-
-
-
-Add these headers to your `.htaccess` file or Apache configuration:
-
-**For self-hosted SDK:**
-
-```apache
-
- Header set Cross-Origin-Embedder-Policy "require-corp"
- Header set Cross-Origin-Opener-Policy "same-origin"
-
-```
-
-**For CDN-hosted SDK:**
-
-```apache
-
- Header set Cross-Origin-Embedder-Policy "credentialless"
- Header set Cross-Origin-Opener-Policy "same-origin"
-
-```
-
-Make sure `mod_headers` is enabled:
-
-```sh
-sudo a2enmod headers
-sudo systemctl restart apache2
-```
-
-
-
-
-
-For Express.js applications, add the headers using middleware:
-
-**For self-hosted SDK:**
-
-```javascript
-const express = require("express");
-const app = express();
-
-// Add cross-origin isolation headers
-app.use((req, res, next) => {
- res.setHeader("Cross-Origin-Embedder-Policy", "require-corp");
- res.setHeader("Cross-Origin-Opener-Policy", "same-origin");
- next();
-});
-
-// ... rest of your app configuration ...
-
-app.listen(3000);
-```
-
-**For CDN-hosted SDK:**
-
-```javascript
-const express = require("express");
-const app = express();
-
-// Add cross-origin isolation headers
-app.use((req, res, next) => {
- res.setHeader("Cross-Origin-Embedder-Policy", "credentialless");
- res.setHeader("Cross-Origin-Opener-Policy", "same-origin");
- next();
-});
-
-// ... rest of your app configuration ...
-
-app.listen(3000);
-```
-
-
-
-
-
-For Vite projects, create a custom plugin in your `vite.config.ts`:
-
-**For self-hosted SDK:**
-
-```typescript
-import { defineConfig, type PluginOption } from 'vite';
-
-function crossOriginIsolation(): PluginOption {
- return {
- name: 'vite-plugin-cross-origin-isolation',
- configureServer: (server) => {
- server.middlewares.use((_req, res, next) => {
- res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
- res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
- next();
- });
- },
- configurePreviewServer: (server) => {
- server.middlewares.use((_req, res, next) => {
- res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
- res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
- next();
- });
- },
- };
-}
-
-export default defineConfig({
- plugins: [crossOriginIsolation()],
- // ... other config
-});
-```
-
-**For CDN-hosted SDK:**
-
-```typescript
-import { defineConfig, type PluginOption } from 'vite';
-
-function crossOriginIsolation(): PluginOption {
- return {
- name: 'vite-plugin-cross-origin-isolation',
- configureServer: (server) => {
- server.middlewares.use((_req, res, next) => {
- res.setHeader('Cross-Origin-Embedder-Policy', 'credentialless');
- res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
- next();
- });
- },
- configurePreviewServer: (server) => {
- server.middlewares.use((_req, res, next) => {
- res.setHeader('Cross-Origin-Embedder-Policy', 'credentialless');
- res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
- next();
- });
- },
- };
-}
-
-export default defineConfig({
- plugins: [crossOriginIsolation()],
- // ... other config
-});
-```
-
-This plugin configures headers for both `vite dev` (development) and `vite preview` (production preview) modes.
-
-
-
-
-
-Create a `_headers` file in your publish directory (usually `public/` or `dist/`):
-
-**For self-hosted SDK:**
-
-```
-/*
- Cross-Origin-Embedder-Policy: require-corp
- Cross-Origin-Opener-Policy: same-origin
-```
-
-**For CDN-hosted SDK:**
-
-```
-/*
- Cross-Origin-Embedder-Policy: credentialless
- Cross-Origin-Opener-Policy: same-origin
-```
-
-
-
-
-
-Add the headers to your `vercel.json` configuration file:
-
-**For self-hosted SDK:**
-
-```json
-{
- "headers": [
- {
- "source": "/(.*)",
- "headers": [
- {
- "key": "Cross-Origin-Embedder-Policy",
- "value": "require-corp"
- },
- {
- "key": "Cross-Origin-Opener-Policy",
- "value": "same-origin"
- }
- ]
- }
- ]
-}
-```
-
-**For CDN-hosted SDK:**
-
-```json
-{
- "headers": [
- {
- "source": "/(.*)",
- "headers": [
- {
- "key": "Cross-Origin-Embedder-Policy",
- "value": "credentialless"
- },
- {
- "key": "Cross-Origin-Opener-Policy",
- "value": "same-origin"
- }
- ]
- }
- ]
-}
-```
-
-
-
-
-
-Add the headers in your `Program.cs` or `Startup.cs`:
-
-**For self-hosted SDK:**
-
-```csharp
-app.Use(async (context, next) =>
-{
- context.Response.Headers.Add("Cross-Origin-Embedder-Policy", "require-corp");
- context.Response.Headers.Add("Cross-Origin-Opener-Policy", "same-origin");
- await next();
-});
-```
-
-**For CDN-hosted SDK:**
-
-```csharp
-app.Use(async (context, next) =>
-{
- context.Response.Headers.Add("Cross-Origin-Embedder-Policy", "credentialless");
- context.Response.Headers.Add("Cross-Origin-Opener-Policy", "same-origin");
- await next();
-});
-```
-
-Or use middleware in `Program.cs` (change the COEP value as needed):
-
-```csharp
-app.UseMiddleware();
-
-// Middleware class:
-public class CrossOriginIsolationMiddleware
-{
- private readonly RequestDelegate _next;
- private readonly string _coepValue; // "require-corp" or "credentialless"
-
- public CrossOriginIsolationMiddleware(RequestDelegate next, string coepValue = "require-corp")
- {
- _next = next;
- _coepValue = coepValue;
- }
-
- public async Task InvokeAsync(HttpContext context)
- {
- context.Response.Headers.Add("Cross-Origin-Embedder-Policy", _coepValue);
- context.Response.Headers.Add("Cross-Origin-Opener-Policy", "same-origin");
- await _next(context);
- }
-}
-```
-
-
-
-
-
-:::note
-**Important notes:**
-
-- After configuring the headers, clear your browser cache and restart your development server to ensure the new headers take effect.
-- `Cross-Origin-Embedder-Policy: credentialless` requires Chrome 96+, Edge 96+, or other Chromium-based browsers. For older browser support, self-hosting with `require-corp` is more reliable.
-- Verify your configuration using `BrowserHelper.checkMultithreadingSupport()` - it should return `true` if multithreading is properly enabled (see [Verify multithreading is enabled](#verify-multithreading-is-enabled) above).
-- If you see CORS errors after enabling these headers, verify that all external resources (fonts, analytics, etc.) either use CORS or are self-hosted.
-
-:::
-
-### Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Create the Data Capture Context
-
-The first step to add capture capabilities to your application is to create a new [data capture context](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext).
-
-```js
-import { DataCaptureContext } from "@scandit/web-datacapture-core";
-import { barcodeCaptureLoader } from "@scandit/web-datacapture-barcode";
-
-const context = await DataCaptureContext.forLicenseKey('-- ENTER YOUR SCANDIT LICENSE KEY HERE --', {
- libraryLocation: new URL('library/engine/', document.baseURI).toString(),
- moduleLoaders: [barcodeCaptureLoader()],
-});
-```
-
-## Configure the Barcode Batch Mode
-
-The main entry point for the Barcode Batch Mode is the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) object. It is configured through [BarcodeBatchSettings](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-settings.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSettings) and allows you to register one or more [listeners](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) that will get informed whenever a new frame has been processed.
-
-Most of the time, you will not need to implement a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener), instead you will add a [BarcodeBatchBasicOverlay](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay) and implement a [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener).
-
-For this tutorial, we will setup Barcode Batch for tracking QR codes.
-
-```js
-import { BarcodeBatchSettings, Symbology } from "@scandit/web-datacapture-barcode";
-
-const settings = new BarcodeBatchSettings();
-settings.enableSymbologies([Symbology.QR]);
-```
-
-Next, create a [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance with the data capture context and the settings initialized in the previous steps:
-
-```js
-import { BarcodeBatch } from "@scandit/web-datacapture-barcode";
-
-const barcodeBatch = await BarcodeBatch.forContext(context, settings);
-```
-
-## Use the Built-in Camera
-
-The data capture context supports using different frame sources to perform recognition on. Most applications will use the built-in camera of the device, e.g. the world-facing camera of a device. The remainder of this tutorial will assume
-that you use the built-in camera.
-
-When using the built-in camera there are recommended settings for each capture mode. These should be used to achieve the best performance and user experience for the respective mode. The following couple of lines show how to get the recommended settings and create the camera from it:
-
-```js
-import { Camera } from "@scandit/web-datacapture-core";
-import { BarcodeBatch } from "@scandit/web-datacapture-barcode";
-
-const camera = Camera.pickBestGuess();
-
-const cameraSettings = BarcodeBatch.recommendedCameraSettings;
-await camera.applySettings(cameraSettings);
-```
-
-Because the frame source is configurable, the data capture context must be told which frame source to use. This is done with a call to [DataCaptureContext.setFrameSource()](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#method-scandit.datacapture.core.DataCaptureContext.SetFrameSourceAsync):
-
-```js
-await context.setFrameSource(camera);
-```
-
-The camera is off by default and must be turned on. This is done by calling
-[FrameSource.switchToDesiredState()](https://docs.scandit.com/data-capture-sdk/web/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of
-[FrameSourceState.On](https://docs.scandit.com/data-capture-sdk/web/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.On):
-
-```js
-await camera.switchToDesiredState(Scandit.FrameSourceState.On);
-```
-
-## Use a Capture View to Visualize the Scan Process
-
-When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a [DataCaptureView](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/data-capture-view.html#class-scandit.datacapture.core.ui.DataCaptureView) to your view hierarchy:
-
-```js
-import { DataCaptureView } from "@scandit/web-datacapture-core";
-
-const view = await DataCaptureView.forContext(context);
-view.connectToElement(htmlElement);
-```
-
-To visualize the results of Barcode Batch, first you need to add the following [overlay](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay):
-
-```js
-import { BarcodeBatchBasicOverlay } from "@scandit/web-datacapture-barcode";
-
-const overlay =
- await BarcodeBatchBasicOverlay.withBarcodeBatchForView(
- barcodeBatch,
- view
- );
-```
-
-Once the overlay has been added, you should implement the [BarcodeBatchBasicOverlayListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#interface-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener) interface. The method [BarcodeBatchBasicOverlayListener.brushForTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.BrushForTrackedBarcode) is invoked every time a new tracked barcode appears and it can be used to set a [brush](https://docs.scandit.com/data-capture-sdk/web/core/api/ui/brush.html#class-scandit.datacapture.core.ui.Brush) that will be used to highlight that specific barcode in the [overlay](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay.html#class-scandit.datacapture.barcode.batch.ui.BarcodeBatchBasicOverlay).
-
-```js
-overlay.listener = {
- brushForTrackedBarcode: (overlay, trackedBarcode) => {
- // Return a custom Brush based on the tracked barcode.
- },
-};
-```
-
-If you would like to make the highlights tappable, you need to implement the [BarcodeBatchBasicOverlayListener.didTapTrackedBarcode()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/barcode-batch-basic-overlay-listener.html#method-scandit.datacapture.barcode.batch.ui.IBarcodeBatchBasicOverlayListener.OnTrackedBarcodeTapped) method.
-
-```js
-overlay.listener = {
- didTapTrackedBarcode: (overlay, trackedBarcode) => {
- // A tracked barcode was tapped.
- },
-};
-```
-
-## Get Barcode Batch Feedback
-
-Barcode Batch, unlike Barcode Capture, doesn’t emit feedback (sound or vibration) when a new barcode is recognized. However, you may implement a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener) to provide a similar experience. Below, we use the default
-[Feedback](https://docs.scandit.com/data-capture-sdk/web/core/api/feedback.html#class-scandit.datacapture.core.Feedback), but you may configure it with your own sound or vibration if you want.
-
-Next, use this [feedback](https://docs.scandit.com/data-capture-sdk/web/core/api/feedback.html#class-scandit.datacapture.core.Feedback) in a [BarcodeBatchListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#interface-scandit.datacapture.barcode.batch.IBarcodeBatchListener):
-
-```js
-const feedbackListener = {
- didUpdateSession: (barcodeBatch, session) => {
- if (session.addedTrackedBarcodes.length > 0) {
- feedback.emit();
- }
- },
-};
-```
-
-[BarcodeBatchListener.didUpdateSession()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-listener.html#method-scandit.datacapture.barcode.batch.IBarcodeBatchListener.OnSessionUpdated) is invoked for every processed frame. The [session](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch-session.html#class-scandit.datacapture.barcode.batch.BarcodeBatchSession) parameter contains information about the currently tracked barcodes, in particular, the newly recognized ones. We check if there are any and if so, we emit the feedback.
-
-As the last step, register the listener responsible for emitting the feedback with the [BarcodeBatch](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch.html#class-scandit.datacapture.barcode.batch.BarcodeBatch) instance.
-
-```js
-barcodeBatch.addListener(feedbackListener);
-```
-
-## Disabling Barcode Batch
-
-To disable barcode tracking call [BarcodeBatch.setEnabled()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/barcode-batch.html#method-scandit.datacapture.barcode.batch.BarcodeBatch.SetEnabled) passing _false_. No more frames will be processed _after_ the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners.
-
-Note that disabling the capture mode does not stop the camera, the camera continues to stream frames until it is turned off or switched to standby by calling [SwitchToDesiredState](https://docs.scandit.com/data-capture-sdk/web/core/api/frame-source.html#method-scandit.datacapture.core.IFrameSource.SwitchToDesiredStateAsync) with a value of [StandBy](https://docs.scandit.com/data-capture-sdk/web/core/api/frame-source.html#value-scandit.datacapture.core.FrameSourceState.Standby).
-
-### Limitations[](#limitations 'Permalink to this headline')
-
-MatrixScan does not support the following symbologies:
-
-- DotCode
-- MaxiCode
-- All postal codes (KIX, RM4SCC)
-
-:::important
-Barcode Batch needs browser multithreading to run. Check the minimum browser support in the [Requirements Page](../../system-requirements) and how to enable it in [Improve runtime performance by enabling browser multithreading](#improve-runtime-performance-by-enabling-browser-multithreading), above.
-:::
diff --git a/versioned_docs/version-8.1.1/sdks/web/matrixscan/intro.md b/versioned_docs/version-8.1.1/sdks/web/matrixscan/intro.md
deleted file mode 100644
index 47c2ae2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/matrixscan/intro.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx' "
-
-sidebar_position: 1
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-# About MatrixScan
-
-import AboutMatrixScan from '../../../partials/intro/_about-matrixscan.mdx'
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/migrate-5-to-6.mdx b/versioned_docs/version-8.1.1/sdks/web/migrate-5-to-6.mdx
deleted file mode 100644
index 3400c3b2..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/migrate-5-to-6.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 5.x"
-sidebar_label: 'Migrate from 5.x to 6.x'
-title: 'Migrate from 5.x to 6.x'
----
-
-import Migrate5To6 from '../../partials/_migrate-5-to-6.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/migrate-6-to-7.mdx b/versioned_docs/version-8.1.1/sdks/web/migrate-6-to-7.mdx
deleted file mode 100644
index f48d0c49..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/migrate-6-to-7.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 6.x"
-sidebar_label: 'Migrate from 6.x to 7.x'
-title: 'Migrate from 6.x to 7.x'
----
-
-import Migrate6To7 from '../../partials/_migrate-6-to-7.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/migrate-7-to-8.mdx b/versioned_docs/version-8.1.1/sdks/web/migrate-7-to-8.mdx
deleted file mode 100644
index 87e83e2d..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/migrate-7-to-8.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Migrate from Barcode Scanner 7.x"
-sidebar_label: 'Migrate from 7.x to 8.x'
-title: 'Migrate from 7.x to 8.x'
----
-
-import Migrate7To8 from '../../partials/_migrate-7-to-8.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/parser/get-started.md b/versioned_docs/version-8.1.1/sdks/web/parser/get-started.md
deleted file mode 100644
index 216e26fe..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/parser/get-started.md
+++ /dev/null
@@ -1,223 +0,0 @@
----
-description: "The Parser parses data strings (as found in barcodes) into a set of key-value mappings. These data formats are supported: "
-
-sidebar_position: 2
-pagination_prev: null
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Get Started
-
-The Parser parses data strings (as found in barcodes) into a set of key-value mappings. These data formats are supported:
-
-- [Health Industry Bar Code (HIBC)](https://docs.scandit.com/data-capture-sdk/web/parser/hibc.html)
-- [GS1 Application Identifier system](https://docs.scandit.com/data-capture-sdk/web/parser/gs1ai.html)
-- [Swiss QR Codes](https://docs.scandit.com/data-capture-sdk/web/parser/swissqr.html)
-- [VIN Vehicle Identification Number](https://docs.scandit.com/data-capture-sdk/web/parser/vin.html)
-- [IATA Bar Coded Boarding Pass (BCBP)](https://docs.scandit.com/data-capture-sdk/web/parser/iata-bcbp.html)
-
-More data formats will be added in future releases. Please contact us if the data format you are using is not yet supported, or you want to use the parser on a currently unsupported platform.
-
-## Prerequisites
-
-Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out [this guide](../add-sdk.md).
-
-:::note
-You can retrieve your Scandit Data Capture SDK license key by signing in to [your Scandit account](https://ssl.scandit.com/dashboard/sign-in).
-:::
-
-First of all, include the ScanditParser library and its dependencies to your project, if any.
-
-### Internal dependencies
-
-import InternalDependencies from '../../../partials/get-started/_internal-deps.mdx';
-
-
-
-## Installation
-
-### Install via package manager
-
-To add the packages via your preferred package manager, run the following command from your project's root folder:
-
-
-
-
-
-```sh
-npm install --save @scandit/web-datacapture-core @scandit/web-datacapture-barcode @scandit/web-datacapture-parser
-```
-
-
-
-
-
-```sh
-yarn add @scandit/web-datacapture-core @scandit/web-datacapture-barcode @scandit/web-datacapture-parser
-```
-
-
-
-
-
-```sh
-pnpm add @scandit/web-datacapture-core @scandit/web-datacapture-barcode @scandit/web-datacapture-parser
-```
-
-
-
-
-
-```sh
-bun add @scandit/web-datacapture-core @scandit/web-datacapture-barcode @scandit/web-datacapture-parser
-```
-
-
-
-
-
-```sh
-deno add npm:@scandit/web-datacapture-core npm:@scandit/web-datacapture-barcode npm:@scandit/web-datacapture-parser
-```
-
-
-
-
-
-:::note
-You can also specify a version @``.
-:::
-
-### Install via CDN
-
-You can consume the packages through a CDN like [JSDelivr](https://www.jsdelivr.com/?query=%40scandit%2Fweb-datacapture-).
-
-:::warning Important considerations when using CDNs
-For important information about CDN risks and recommendations for production environments, see [Install via CDN](/sdks/web/add-sdk/#install-via-cdn).
-:::
-
-## Basic CDN Example
-
-```html
-
-
-
-
-
- Scandit Parser CDN Sample
-
-
-
-
-
-
-
-
-
-
-
-
- Parsed Data
-
- Close
-
-
-
-```
diff --git a/versioned_docs/version-8.1.1/sdks/web/release-notes.md b/versioned_docs/version-8.1.1/sdks/web/release-notes.md
deleted file mode 100644
index 47b8305e..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/release-notes.md
+++ /dev/null
@@ -1,207 +0,0 @@
----
-description: "Release notes and updates for the Scandit Web SDK."
-toc_max_heading_level: 3
-displayed_sidebar: webSidebar
-hide_title: true
-title: Release Notes
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-## 8.1.1
-
-**Released**: February 5, 2026
-
-### Performance Improvements
-
-#### Core
-
-* Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed an issue where the SparkScanView was not being disposed correctly
-
-#### Id
-
-* Removed the Centaurus dependency from the ID Capture package which was accidentally added in 8.1.0 but never actually used
-
-## 8.1.0
-
-**Released**: December 17, 2025
-
-### New Features
-
-#### Barcode
-
-* Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* Added SymbologySettings.ocrFallbackRegex, allowing you to filter or constrain results returned from OCR fallback.
-* Extended Aztec codes reader to support scanning mirrored codes.
-* Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
-* [SparkScan](/sdks/web/sparkscan/intro.md) now supports Smart Scan Selection. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Users might have to manually switch to a special, more precise scanning mode (Target Mode), which is inefficient. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a seamless and more intuitive scanning experience.
-* Added `ScanditIconType.Delete` and `ScanditIconType.Slash` which can be used in `BarcodeArStatusIconAnnotationAnchor`.
-
-#### Id
-
-* Added NationalityISO property that maps results from Nationality field to country ISO code
-* Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
-* Added rejectionTimeoutSeconds to IdCaptureSettings allowing customers to use timeout other than default (6s). Minimum timeout is 1s.
-* Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
-
-#### Core
-
-* Added Electronic Product Code (EPC) parser and GS1_DIGITAL_LINK parsers
-
-### Performance Improvements
-
-#### Barcode
-
-* Improved MicroQR detector tolerance to quiet zone violations
-* Improved suppression of incorrect Codabar recognitions when using the [“strict" symbology extension](../symbology-properties#symbology-extension-descriptions)
-
-#### Id
-
-* Improved success rate when scanning using the ImageFrameSource or the SingleImageUploader as frame source
-
-#### Smart Label Capture
-
-* Incremental improvements in accuracy across all use-cases for the OCR model powering Smart Label Capture.
-
-### Behavioral Changes
-
-#### Barcode
-
-* Enabling the [“ocr_fallback" symbology extension](../symbology-properties#symbology-extension-descriptions) with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
-
-#### Smart Label Capture
-
-* Validation Flow: Manually input values for barcodes will go through a stricter validation. Some values may no longer be accepted if they do not match the symbology specs for the symbology’s definition
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-* Fixed an issue that caused continuous scanning to stop working when rotating the device
-* Fixed an issue where FrameData was not usable for tracking modes
-
-#### Core
-
-* Fixed a small memory leak that affected fresh install runs only
-* Overcome orientation change limitation in iOS PWAs when display mode is fullscreen or standalone
-
-## 8.0.1
-
-**Released**: January 14, 2026
-
-### Bug Fixes
-
-#### Barcode
-
-* Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry `EAN13/UPCA` codes at a specific distance
-
-#### Core
-
-* Fixed a small memory leak that affected fresh install runs only
-
-## 8.0.0
-
-**Released**: November 4, 2025
-
-### New Features
-
-Scandit's SDK 8.0 marks the evolution of data capture from a high-performing scanning tool into an intelligent AI-powered workflow enabler. As frontline operations face mounting pressures with more data points to capture, increasingly complex workflows to navigate, and tighter resource constraints, SDK 8.0 delivers a set of innovations that:
-
-* Adapt its scanning settings and UI to context by analyzing the scanning environment and user intent;
-* Automate the capture of any data format, barcode clustering, task handling or camera settings;
-* Accelerate critical use cases to maximize ROI through intuitive, streamlined scanning workflows, using interactive AR-guidance, adaptive UI and out-of-the-box custom-branded passenger experiences.
-
-With SDK 8.0 businesses can transform data capture from a basic function to a strategic advantage. It enables intelligent scanning that:
-
-* Understands not just what is being scanned, but also what you want to scan and why you’re scanning it
-* Adapts accordingly by adjusting scanning settings and/or UI, understanding what comes next and how to guide users seamlessly through sophisticated tasks to ensure the highest level of productivity.
-
-#### Core
-
-* The `Camera` API has been completely redesigned for this release. See the [API reference](https://docs.scandit.com/data-capture-sdk/web/core/api/camera.html#camera) for complete details.
-* The minimum Chrome version supported is now 85+.
-* The `DataCaptureContext.create`, `createWithOptions` and `configure` methods have been removed in favor of `DataCaptureContext.forLicenseKey`.
-
-#### Barcode
-
-* Smart Scan Selection is now available in SparkScan for the Web SDK.
-* Adapted `SparkScanView` to now be usable as a web component. Also added a `SparkScanReactSample` to demonstrate this usage.
-* The following have been added to MatrixScan AR:
- * `BarcodeArView.getHighlightForBarcode`
- * `BarcodeAirView.getAnnotationForBarcode`
-
-#### Smart Label Capture
-
-* We’re introducing an enhancement that makes Smart Label Capture more robust and scalable by complementing its on-device model with a larger, more capable model. When the on-device model can’t capture certain labels, the SDK automatically escalates to this enhancement to handle complex or unforeseen cases with high accuracy and reliability. This capability is currently available in `beta`. If you’re interested in trying it, please contact Scandit Support. For configuration details, see `labelDefinition.adaptiveRecognitionEngine`.
-
-#### ID
-
-* Added `ElementsToRetain` to `MobileDocumentScanner`: The set of data elements that the application intends to retain from scanned mobile documents. This information is used to set the `IntentToRetain` flag in ISO 18013-5 mdoc requests, which is required for legal compliance with data protection standards. An empty set indicates no elements will be retained, and `IntentToRetain` will be set to `false` for all fields.
-* ID Capture now supports full-frame anonymization.
-* The result of `decodeMobileDriverLicenseViz`, which is currently returned as part of the `VizResult` within `CapturedId`, will now be provided through a new field named `mobileDocumentOcr`.
-* Added `CapturedId::isCitizenPassport`, which indicates whether the passport was issued to a citizen of the issuing country. Returns `false` for travel documents such as refugee, stateless, or alien passports, and for any passports issued by organizations rather than states.
-* The following Chinese travel permits now extract VIZ + MIZ data during double-sided scanning flows:
- * CT - Taiwan Residents Mainland Travel Permit
- * W - Mainland Residents Exit-Entry Permit to and from Hong Kong and Macao
- * CD - Mainland Residents Entry-Exit Permit to and from Taiwan
-
-### Behavioral Changes
-
-#### Barcode
-
-* Symbology `RM4SCC` has been renamed to `ROYAL_MAIL_4STATE`.
-* Changed the default highlight brush in SparkScan and Barcode Capture.
-
-#### Label
-
-* The `LabelFieldDefinition` API has been updated with the following changes:
- * Renamed property: `pattern` → `valueRegex`, `patterns` → `valueRegexes`
- * Renamed property: `dataTypePattern` → `anchorRegex`, `dataTypePatterns` → `anchorRegexes`
-* Receipt Scanning API has been updated with the following changes:
- * `ReceiptScanningResult`:
- * Removed properties: `storeNumber`, `storeStreet`, `storeZip`, `storeState`, `storePhone`, `paymentMethod`, and `paymentCurrency`.
- * Added property: `storeAddress` - Full address of the store (Street Number, Street, City, State, NPA).
- * Renamed property: `paymentSubtotal` → `paymentPreTaxTotal` - Total balance before taxes are applied.
- * `ReceiptScanningLineItem`:
- * Removed property: `category`.
- * Renamed properties: `price` → `unitPrice` (Price for a single unit of the item), `total` → `totalPrice` (Total price for a specific product, quantity × unitPrice).
-
-#### ID
-
-* The configuration for the following documents has been changed as detailed below:
- * Australian mobile driver licenses (mDL) are now treated as normal documents, with no separate mode.
- * US Green Cards are now treated as residence permits.
-* Removed the deprecated API `DateResult::toDate`. Use `DateResult::toLocalDate` or `DateResult::toUtcDate` instead.
-* `fullName` now an optional field on all `IdCapture` result types and `capturedMrz` now an optional field on `MrzResult`.
-
-### Bug Fixes
-
-#### ID
-
-* Fixed a bug that could get the scanner stuck when scanning a US passport card.
-* Fixed an issue where unavailable dates would not be properly set to `null` in an ID scan result.
-
-### Deprecations
-
-#### Core
-
-* `VideoResolution::Auto` is now deprecated. Please use the capture mode's `recommendedCameraSettings` for the best results.
-
-#### Barcode
-
-* All previously deprecated APIs have been removed in this release.
-* `DataCaptureContext.create`, `createWithOptions` and `configure` have been removed in favor of the `forLicenseKey` method.
-
-
-## 7.6.7
-
-Find earlier versions in the [release notes section of version 7](/7.6.7/sdks/web/release-notes)
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/scanning-composite-codes.mdx b/versioned_docs/version-8.1.1/sdks/web/scanning-composite-codes.mdx
deleted file mode 100644
index d517a134..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/scanning-composite-codes.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Composite Codes"
-sidebar_label: 'Composite Codes'
-title: 'Composite Codes'
----
-
-import ScanningCompositeCodes from '../../partials/_scanning-composite-codes.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/single-scanning.md b/versioned_docs/version-8.1.1/sdks/web/single-scanning.md
deleted file mode 100644
index 10f0b751..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/single-scanning.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "import SingleScanning from '../../partials/_single-scanning.mdx'; "
-
-toc_max_heading_level: 4
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-# Single Scanning
-
-import SingleScanning from '../../partials/_single-scanning.mdx';
-
-
\ No newline at end of file
diff --git a/versioned_docs/version-8.1.1/sdks/web/sparkscan/advanced.md b/versioned_docs/version-8.1.1/sdks/web/sparkscan/advanced.md
deleted file mode 100644
index 9e40a444..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/sparkscan/advanced.md
+++ /dev/null
@@ -1,120 +0,0 @@
----
-description: "SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs. "
-
-sidebar_position: 3
-pagination_next: null
-framework: web
-keywords:
- - web
----
-
-# Advanced Configurations
-
-SparkScan is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are some cases where you might want to customize the behavior of SparkScan. This guide will show you how to add additional capabilities and further customize SparkScan to best fit your needs.
-
-## Advanced Capabilities
-
-### Trigger Error State
-
-You may want to introduce logic in your app to show an error message when scanning specific barcodes (e.g. barcodes already added to the list, barcodes from the wrong lot etc.). SparkScan offers a built-in error state you can easily set to trigger an error feedback prompt to the user. You will be able to customize:
-
-- The text message
-- The timeout of the error message: the scanner will be paused for the specified amount of time, but the user can quickly restart the scanning process by tapping the trigger button
-
- :::tip
- A high timeout (>10s) typically requires the users to interact with the UI to start scanning again. This is a good choice when you want to interrupt the scanning workflow (e.g. because a wrong barcode is scanned and some actions need to be performed). A small timeout (\<2s) could allow the user to scan again without having to interact with the app, just momentarily pausing the workflow to acknowledge that a “special” barcode has been scanned.
- :::
-
-- The color of the flashing screen upon scan. You can enable or disable the visual feedback via [SparkScanViewSettings.visualFeedbackEnabled](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.VisualFeedbackEnabled) and you can control the color via [SparkScanBarcodeFeedback](https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api/ui/spark-scan-barcode-feedback.html#sparkscan-barcode-feedback).
-
-An error example is here reported:
-
-To emit an error, you have to implement a [`SparkScanFeedbackDelegate`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-feedback-delegate.html#interface-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate) and set it to the `SparkScanView`:
-
-```js
-sparkScanView.feedbackDelegate = sparkScanFeedbackDelegate;
-```
-
-In the [`SparkScanFeedbackDelegate.getFeedbackForBarcode()`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-feedback-delegate.html#method-scandit.datacapture.barcode.spark.feedback.ISparkScanFeedbackDelegate.GetFeedbackForBarcode) you can then return an error or a success feedback:
-
-```js
-const sparkScanFeedbackDelegate = {
- feedbackForBarcode: (barcode: Barcode) => {
- if (isValidBarcode(barcode)) {
- return new SparkScanBarcodeSuccessFeedback();
- } else {
- return new SparkScanBarcodeErrorFeedback(
- 'This code should not have been scanned',
- 60 * 1000,
- Color.fromHex('#FF0000'),
- new Brush(Color.fromHex('#FF0000'), Color.fromHex('#FF0000'), 1),
- );
- }
- },
-};
-```
-
-You can have different error states triggered by different logic conditions. These errors can show different colors and have different timeouts. For example:
-
-
- This error state for a code that should not have been scanned.
-
-
-
- This error state for a code that has been scanned more than once.
-
-
-### Reject Barcodes
-
-To prevent scanning unwanted barcodes (like those already listed or from incorrect lots), use SparkScan’s built-in error state. Setting the [`SparkScanBarcodeErrorFeedback.resumeCapturingDelay`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-barcode-feedback.html#property-scandit.datacapture.barcode.spark.feedback.Error.ResumeCapturingDelay) parameter to 0 allows the user to continue scanning immediately without pausing on rejected codes.
-
-## UI Customization
-
-:::tip
-Please refer to [SparkScanView](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) for the full list of parameters.
-:::
-
-import Customization from '../../../partials/advanced/_sparkscan-customization.mdx';
-
-
-
-## Workflow Options
-
-This section explains all the available options to configure SparkScan to best fit your case, in case you found something that didn't work well in the default configuration (that remains our recommended option).
-
-Developers can set a combination of scanning mode, scanning behavior and camera preview behavior - defining the initial state of the scanner. This can be done by setting the default scanning mode ([`SparkScanViewSettings.defaultScanningMode`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.DefaultScanningMode)). This combination allows for flexible configurations to suit different scanning needs.
-
-### Scanning Mode
-
-The scanning mode determines the programmatic presence of an aimer in the preview to help with precision scanning.
-
-| Mode | Description |
-| ----------- | --------------------------------------------------- |
-| **Default** | Generally recommended. This mode will display a small camera preview to aid with aiming. The preview size and zoom level can be adjusted as needed. User can aim easily at the intended barcode. |
-| **Target** | This mode will always add an aimer to the camera preview to precisely select the barcode to scan. This is recommended only when selecting among many close barcodes is the common task. |
-
-:::tip
-Even in the *Default* mode, SparkScan will automatically show an aimer when multiple barcodes are present in the view and no clear intention from the user to scan a single one is recorded ([`SparkScanSettings.ScanIntention`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-settings.html#property-scandit.datacapture.barcode.spark.SparkScanSettings.ScanIntention)). Enabling the *Target* mode will simply force this "precision selection" state to be on at all time.
-:::
-
-### Scanning Behavior
-
-The scanning behavior determines how barcodes are scanned - one at a time or continuously.
-
-| Behavior | Description |
-| ------------------- | ---------------------------------------------------------- |
-| **Single scan** | Scan one barcode at a time. The user needs to trigger the scanner every time to scan a barcode. This allows for a more controlled scanning and lower battery consumption. |
-| **Continuous scan** | Scan barcodes consecutively. The user needs to trigger the scanner once and barcodes will be scanned without any further interaction before each scan. This allows for a smoother experience when multiple barcodes need to be scanned consecutively. |
-
-:::tip
-Users can enable continuous scanning by holding down the trigger button. This gesture can be disabled ([`SparkScanViewSettings.holdToScanEnabled`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#property-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings.HoldToScanEnabled)).
-:::
-
-### Preview Behavior
-
-The preview behavior determines how the camera preview behaves when the scanner is not actively scanning.
-
-| Behavior | Description |
-| -------------- | -------------------------- |
-| **Default** | Preview fades away when the scanner is off. This lets the user check important information displayed by the app and reduces battery consumption. |
-| **Persistent** | Preview remains visible, but darkened, even when the scanner is off. This is useful for scenarios where you want to select a barcode (among many) or need to look through the preview at all times (to ensure the right scan) - especially if used in conjunction with the target mode. |
diff --git a/versioned_docs/version-8.1.1/sdks/web/sparkscan/get-started.md b/versioned_docs/version-8.1.1/sdks/web/sparkscan/get-started.md
deleted file mode 100644
index db9b6533..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/sparkscan/get-started.md
+++ /dev/null
@@ -1,239 +0,0 @@
----
-description: "In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are: "
-
-sidebar_position: 2
-framework: web
-keywords:
- - web
----
-
-# Get Started
-
-In this guide you will learn step-by-step how to add SparkScan to your application. The general steps are:
-
-1. Create a new Data Capture Context instance.
-2. Configure the Spark Scan Mode.
-3. Create the SparkScanView with the desired settings and bind it to the application’s lifecycle.
-4. Register the listener to be informed when new barcodes are scanned and update your data whenever this event occurs.
-
-## Prerequisites
-
-- The latest stable version of [Node.js and npm](https://nodejs.org/en/download/) (required only if including and building the SDK as part of an app, instead of just including it as an external resource from a CDN in HTML).
-- A valid Scandit Data Capture SDK license key. You can sign up for a free [test account](https://ssl.scandit.com/dashboard/sign-up?p=test&utm%5Fsource=documentation).
-- If you have not already done so, see [this guide](../add-sdk.md) for information on how to add the Scandit Data Capture SDK to your project
-
-:::note
-Devices running the Scandit Data Capture SDK need to have a GPU or the performance will drastically decrease.
-:::
-
-## Create a New Data Capture Context Instance
-
-The first step to add capture capabilities to your application is to create a new [Data Capture Context](https://docs.scandit.com/data-capture-sdk/web/core/api/data-capture-context.html#class-scandit.datacapture.core.DataCaptureContext). The context expects a valid Scandit Data Capture SDK license key during construction.
-
-```js
-import { DataCaptureContext } from "@scandit/web-datacapture-core";
-import {
- barcodeCaptureLoader,
- SparkScanSettings,
- SparkScan,
- SparkScanViewSettings,
-} from "@scandit/web-datacapture-barcode";
-
-const dataCaptureContext = await DataCaptureContext.forLicenseKey(
- "-- ENTER YOUR SCANDIT LICENSE KEY HERE --",
- {
- libraryLocation: new URL(
- "sdc-lib-self-hosted-path",
- document.baseURI
- ).toString(),
- // or use the cdn https://cdn.jsdelivr.net/npm/@scandit/web-datacapture-barcode@latest/sdc-lib/
- moduleLoaders: [barcodeCaptureLoader()],
- }
-);
-```
-
-## Configure the SparkScan Mode
-
-The SparkScan Mode is configured through [`SparkScanSettings`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-settings.html#class-scandit.datacapture.barcode.spark.SparkScanSettings) and allows you to register one or more listeners that are informed whenever a new barcode is scanned.
-
-For this tutorial, we will set up SparkScan for scanning EAN13 codes. Change this to the correct symbologies for your use case (for example, Code 128, Code 39…).
-
-```js
-const sparkScanSettings = new SparkScanSettings();
-sparkScanSettings.enableSymbologies([Symbology.EAN13UPCA]);
-```
-
-Next, create a SparkScan instance with the settings initialized in the previous step:
-
-```js
-const sparkScan = SparkScan.forSettings(this.sparkScanSettings);
-```
-
-## Setup the Spark Scan View
-
-The SparkScan built-in user interface includes the camera preview and scanning UI elements. These guide the user through the scanning process.
-
-The [`SparkScanView`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView) appearance can be customized through [`SparkScanViewSettings`](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view-settings.html#class-scandit.datacapture.barcode.spark.ui.SparkScanViewSettings).
-
-```js
-const sparkScanViewSettings = new SparkScanViewSettings();
-// setup the desired appearance settings by updating the fields in the object above
-```
-
-See the [SparkScan Workflow Options](./advanced.md#workflow-options) section for more information.
-
-By adding a `SparkScanView`, the scanning interface (camera preview and scanning UI elements) will be added automatically to your application.
-
-Add a `SparkScanView` to your view hierarchy. Construct a new SparkScan view. The `SparkScanView` is automatically added to the provided `parentView`:
-
-```js
-const sparkScanView = SparkScanView.forElement(
- document.body,
- dataCaptureContext,
- sparkScan,
- sparkScanViewSettings
-);
-
-// setup any desired view properties by updating the fields in the object above
-```
-
-Optionally you may set a feedback delegate on the SparkScanView, if you wish to validate barcodes and emit a success or error feedback based on certain conditions:
-
-```js
-sparkScanView.feedbackDelegate = {
- getFeedbackForBarcode: (barcode) => {
- // Replace the line below with your own validation logic
- if (isInvalidBarcode(barcode)) {
- // Return an error feedback for invalid barcodes
- return new SparkScanBarcodeErrorFeedback(
- "Invalid barcode.",
- 60_000 // How many ms to wait for scanning to be resumed
- );
- }
-
- // Return a success feedback for valid barcodes
- return new SparkScanBarcodeSuccessFeedback();
- },
-};
-```
-
-Once your app is ready to mount the SparkScanView, make sure to call [SparkScanView.prepareScanning()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.PrepareScanning):
-
-```js
-async connectedCallback() {
- await sparkScanView.prepareScanning();
-}
-```
-
-Additionally, make sure to call [SparkScanView.stopScanning()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view.html#method-scandit.datacapture.barcode.spark.ui.SparkScanView.StopScanning) when your app is unmounting. You have to call this for disposing the [SparkScanView](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/ui/spark-scan-view.html#class-scandit.datacapture.barcode.spark.ui.SparkScanView).
-
-```js
-async disconnectedCallback() {
- await sparkScanView.stopScanning();
-}
-```
-
-## Register the Listener
-
-To keep track of the barcodes that have been scanned, implement the
-[SparkScanListener](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-listener.html#interface-scandit.datacapture.barcode.spark.ISparkScanListener) interface and register the listener to the SparkScan mode.
-
-```js
-// Register a listener object to monitor the spark scan session.
-const listener = {
- didScan: (sparkScan, session, frameData) => {
- // Gather the recognized barcode
- const barcode = session.newlyRecognizedBarcode;
-
- if (barcode != null) {
- // Handle the barcode
- }
- },
-};
-
-sparkScan.addListener(listener);
-```
-
-[SparkScanListener.didScan()](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-listener.html#method-scandit.datacapture.barcode.spark.ISparkScanListener.OnBarcodeScanned) is called when a new barcode has been scanned. This result can be retrieved by using the
-[SparkScanSession.newlyRecognizedBarcode](https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api/spark-scan-session.html#property-scandit.datacapture.barcode.spark.SparkScanSession.NewlyRecognizedBarcode) property on the session object.
-
-## Complete SparkScan example
-
-```js
-import {
- SparkScan,
- SparkScanBarcodeErrorFeedback,
- SparkScanBarcodeSuccessFeedback,
- SparkScanSettings,
- SparkScanView,
- SparkScanViewSettings,
- Symbology,
-} from "@scandit/web-datacapture-barcode";
-import { DataCaptureContext } from "@scandit/web-datacapture-core";
-
-const context = await DataCaptureContext.forLicenseKey(
- "-- ENTER YOUR SCANDIT LICENSE KEY HERE --",
- {
- libraryLocation: "/self-hosted-sdc-lib/",
- moduleLoaders: [barcodeCaptureLoader()],
- }
-);
-
-const settings = new SparkScanSettings();
-settings.enableSymbologies([
- Symbology.EAN13UPCA,
- Symbology.Code128,
- Symbology.QR,
-]);
-
-const sparkScan = SparkScan.forSettings(settings);
-
-sparkScan.addListener({
- didScan: (sparkScan, session) => {
- const barcode = session.newlyRecognizedBarcode;
-
- if (barcode) {
- console.log("Scanned", barcode.symbology, barcode.data);
- }
- },
-});
-
-const viewSettings = new SparkScanViewSettings();
-
-const view = SparkScanView.forElement(
- document.body,
- context,
- sparkScan,
- viewSettings
-);
-
-view.feedbackDelegate = {
- getFeedbackForBarcode: (barcode) => {
- if (barcode.data === "5901234123457") {
- return new SparkScanBarcodeErrorFeedback("Invalid barcode.", 60_000);
- } else {
- return new SparkScanBarcodeSuccessFeedback();
- }
- },
-};
-
-async function mount() {
- await view.prepareScanning();
-}
-
-async function unmount() {
- await view.stopScanning();
-}
-
-mount().catch(async (error) => {
- console.error(error);
- await unmount();
-});
-```
-
-A more complete example can be found [here on StackBlitz](https://stackblitz.com/github/Scandit/datacapture-web-samples/tree/master/01_Single_Scanning_Samples/01_Barcode_Scanning_with_Pre-built_UI/ListBuildingSample).
-
-## Scan Some Barcodes
-
-Now that you’re up and running, go find some barcodes to scan. Don’t feel like getting up from your desk? Here’s a [handy pdf of barcodes](https://github.com/Scandit/.github/blob/main/images/PrintTheseBarcodes.pdf) you can
-print out.
diff --git a/versioned_docs/version-8.1.1/sdks/web/sparkscan/intro.md b/versioned_docs/version-8.1.1/sdks/web/sparkscan/intro.md
deleted file mode 100644
index a11a6533..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/sparkscan/intro.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-description: "SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics. "
-
-sidebar_position: 1
-pagination_prev: null
-framework: web
-keywords:
- - web
----
-
-# About SparkScan
-
-SparkScan is our pre-built smartphone scanning interface designed for high-performance barcode scanning. It fits on top of any smartphone application, providing an intuitive user interface for simple, fast and ergonomic scanning in scan-intensive workflows such as inventory management in retail, or goods receiving in logistics.
-
-SparkScan bundles multiple scanning features together and addresses many common challenges associated with scanning on smart devices. It is designed to be easily integrated into any application, and can be customized to fit your specific needs.
-
-## UI Overview
-
-The UI elements in SparkScan are intentionally minimalistic, meant to be overlayed on any application without the need to adapt the existing app while offering the best user experience.
-
-Two main elements compose the UI:
-
-
-
-- **Camera preview**: A small camera preview that helps with aiming and shows scan feedback. When not in use, the camera preview is hidden. It can be expanded and hosts easy to access controls (zoom level, flash etc).
-- **Trigger button**: A large-sized, semi-transparent floating button that users can drag to position it in the most ergonomic position. When not in use, the trigger button collapses to occupy less space.
-
-There are additional UI elements available for displaying advanced scanning mode, errors, or providing feedback to the user. These are described in the [Advanced](./advanced.md) section.
-
-## Workflow Description
-
-When SparkScan is started, the UI presents just the trigger button, collapsed. The user can move the trigger button by simply dragging it around: the position of the trigger button is remembered across sessions, so the user can place the button where it's the most comfortable to use.
-To start scanning, the user can simply tap on it.
-
-When the scanner is active, the mini preview is shown. The mini preview too can be placed anywhere in the view by simply pressing on it for a little while and then dragging it around. Also the position of the mini preview is remembered across sessions, so the user can place it where it prefers (e.g. not to cover an important information at the top of the app).
-
-In the default configuration:
-- Upon scan the user will receive audio/haptic feedback confirming the scan, and the mini preview will display the scanned barcode for a small amount of time before fading away.
-- Tapping on the trigger button or the mini preview will restart immediately the scanner.
-
-Upon completing the scanning process (or to interact with the customer app layer), the user can tap in any area outside the trigger button and the mini preview. This collapses the scanner button, going back to the initial state.
-
-If instead of tapping on the trigger button the user taps and holds it pressed, he will be able to scan multiple barcodes in a row. The scanner will stop when the trigger button is released.
-
-
- List building use case using SparkScan.
-
-
-The default workflow just described has been carefully designed as a result of extensive user testing and customer feedback from the field.
-
-But not all use-cases look the same, and your needs may differ for most users. That's why SparkScan comes with a set of options to configure the scanner and to best fit in the desired workflow. Check the [Workflow Options](./advanced.md#workflow-options) guide to discover more.
-
-## Supported Symbologies
-
-SparkScan supports all of the major symbologies listed here: [Barcode Symbologies](../barcode-symbologies.mdx).
-
-## AI-Powered Features
-
-SparkScan includes AI-powered scanning capabilities that enhance accuracy and user experience. These features automatically handle challenging scenarios such as avoiding unintentional scans, selecting barcodes in dense environments, scanning damaged barcodes with OCR fallback, and intelligently filtering duplicate scans. Learn more about these capabilities in our [AI-Powered Barcode Scanning](../ai-powered-barcode-scanning.md) guide.
diff --git a/versioned_docs/version-8.1.1/sdks/web/symbology-properties.mdx b/versioned_docs/version-8.1.1/sdks/web/symbology-properties.mdx
deleted file mode 100644
index 56b87782..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/symbology-properties.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "Symbology Properties"
-sidebar_label: 'Symbology Properties'
-title: 'Symbology Properties'
----
-
-import SymbologyProperties from '../../partials/_symbology-properties.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/sdks/web/system-requirements.mdx b/versioned_docs/version-8.1.1/sdks/web/system-requirements.mdx
deleted file mode 100644
index 1ae4f584..00000000
--- a/versioned_docs/version-8.1.1/sdks/web/system-requirements.mdx
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: "System Requirements"
-sidebar_label: 'System Requirements'
-title: 'System Requirements'
----
-
-import SystemRequirements from '../../partials/_system-requirements.mdx';
-
-
-
diff --git a/versioned_docs/version-8.1.1/symbology-properties.mdx b/versioned_docs/version-8.1.1/symbology-properties.mdx
deleted file mode 100644
index 7d5ed633..00000000
--- a/versioned_docs/version-8.1.1/symbology-properties.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: symbology-properties
-title: Symbology Properties
-sidebar_label: Symbology Properties
----
-
-import {Redirect} from '@docusaurus/router';
-
-
diff --git a/versioned_docs/version-8.1.1/system-requirements.mdx b/versioned_docs/version-8.1.1/system-requirements.mdx
deleted file mode 100644
index edbc6b94..00000000
--- a/versioned_docs/version-8.1.1/system-requirements.mdx
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: system-requirements
-title: System Requirements
-sidebar_label: System Requirements
----
-
-import {Redirect} from '@docusaurus/router';
-
-
diff --git a/versioned_sidebars/version-8.1.1-sidebars.json b/versioned_sidebars/version-8.1.1-sidebars.json
deleted file mode 100644
index 3f850c04..00000000
--- a/versioned_sidebars/version-8.1.1-sidebars.json
+++ /dev/null
@@ -1,2467 +0,0 @@
-{
- "sdcSidebar": [
- {
- "type": "category",
- "label": "Scandit Smart Data Capture",
- "items": [
- "core-concepts",
- "features-by-framework",
- "system-requirements",
- {
- "type": "category",
- "label": "Supported Symbologies and IDs",
- "collapsed": false,
- "items": [
- "barcode-symbologies",
- "symbology-properties",
- "extension-codes",
- "scanning-composite-codes",
- "id-documents"
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": false,
- "items": [
- "migrate-7-to-8",
- "migrate-6-to-7",
- "migrate-5-to-6"
- ]
- }
- ]
- }
- ],
- "expressSidebar": [
- {
- "type": "category",
- "label": "Scandit Express",
- "items": [
- "hosted/express/overview",
- {
- "type": "category",
- "label": "Getting Started",
- "items": [
- "hosted/express/getting-started/installation",
- "hosted/express/getting-started/rollout"
- ]
- },
- {
- "type": "category",
- "label": "Configuring Express",
- "items": [
- "hosted/express/configuration/index",
- "hosted/express/configuration/express-find",
- "hosted/express/configuration/inventory-count",
- "hosted/express/configuration/scan-labels",
- "hosted/express/configuration/id-check",
- "hosted/express/getting-started/safari-extension",
- {
- "type": "category",
- "label": "Device Pairing",
- "collapsed": false,
- "items": [
- "hosted/express/configuration/device-pairing/device-pairing",
- "hosted/express/configuration/device-pairing/bluetooth-pairing",
- "hosted/express/configuration/device-pairing/online-connection"
- ]
- },
- {
- "type": "category",
- "label": "Custom Data Transfer",
- "collapsed": false,
- "items": [
- "hosted/express/configuration/custom-data-transfer/overview",
- "hosted/express/configuration/custom-data-transfer/input-configuration",
- "hosted/express/configuration/custom-data-transfer/output-configuration"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Built-in Workflows",
- "items": [
- "hosted/express/workflows/overview",
- "hosted/express/workflows/task-management",
- "hosted/express/workflows/markdown"
- ]
- }
- ]
- }
- ],
- "boltSidebar": [
- {
- "type": "category",
- "label": "ID Bolt",
- "items": [
- "hosted/id-bolt/overview",
- "hosted/id-bolt/getting-started",
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- "hosted/id-bolt/api-overview",
- "hosted/id-bolt/document-selection",
- "hosted/id-bolt/validators",
- "hosted/id-bolt/data-handling",
- "hosted/id-bolt/callbacks",
- "hosted/id-bolt/workflow",
- "hosted/id-bolt/theming",
- "hosted/id-bolt/text-overrides",
- "hosted/id-bolt/advanced"
- ]
- },
- "hosted/id-bolt/release-notes",
- {
- "type": "link",
- "label": "Try the Demo",
- "href": "https://id-travel.demos.scandit.com/"
- }
- ]
- }
- ],
- "iosSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for iOS",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/ios/core-concepts",
- "sdks/ios/features-by-framework",
- "sdks/ios/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "FAQs",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/ios/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-ios-samples"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/ios/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/ios/sparkscan/intro",
- "sdks/ios/sparkscan/get-started",
- "sdks/ios/sparkscan/get-started-with-swift-ui",
- "sdks/ios/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/ios/barcode-capture/get-started",
- "sdks/ios/barcode-capture/get-started-with-swift-ui"
- ]
- },
- "sdks/ios/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/ios/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/ios/matrixscan/intro",
- "sdks/ios/matrixscan/get-started",
- "sdks/ios/matrixscan/get-started-with-swift-ui",
- "sdks/ios/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan AR",
- "items": [
- "sdks/ios/matrixscan-ar/intro",
- "sdks/ios/matrixscan-ar/get-started",
- "sdks/ios/matrixscan-ar/get-started-with-swift-ui"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Count",
- "items": [
- "sdks/ios/matrixscan-count/intro",
- "sdks/ios/matrixscan-count/get-started",
- "sdks/ios/matrixscan-count/get-started-with-swift-ui",
- "sdks/ios/matrixscan-count/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/ios/matrixscan-find/intro",
- "sdks/ios/matrixscan-find/get-started",
- "sdks/ios/matrixscan-find/get-started-with-swift-ui",
- "sdks/ios/matrixscan-find/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Pick",
- "items": [
- "sdks/ios/matrixscan-pick/intro",
- "sdks/ios/matrixscan-pick/get-started",
- "sdks/ios/matrixscan-pick/get-started-with-swift-ui",
- "sdks/ios/matrixscan-pick/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Label Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/ios/label-scanning"
- },
- "collapsed": true,
- "items": [
- "sdks/ios/label-capture/intro",
- "sdks/ios/label-capture/get-started",
- "sdks/ios/label-capture/get-started-with-swift-ui",
- "sdks/ios/label-capture/label-definitions",
- "sdks/ios/label-capture/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/ios/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Generator",
- "items": [
- "sdks/ios/barcode-generator"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/ios/barcode-selection/intro",
- "sdks/ios/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/ios/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/ios/symbology-properties",
- "sdks/ios/extension-codes",
- "sdks/ios/scanning-composite-codes",
- "sdks/ios/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Capture and Validation",
- "collapsed": false,
- "items": [
- "sdks/ios/id-capture/intro",
- "sdks/ios/id-capture/get-started",
- "sdks/ios/id-capture/supported-documents",
- "sdks/ios/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/ios/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/ios/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/ios/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditLabelCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/ios/label-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/ios/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/ios/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/ios/migrate-7-to-8",
- "sdks/ios/migrate-6-to-7",
- "sdks/ios/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/ios/release-notes"
- }
- ],
- "androidSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for Android",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/android/core-concepts",
- "sdks/android/features-by-framework",
- "sdks/android/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/android/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-android-samples"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/android/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/android/sparkscan/intro",
- "sdks/android/sparkscan/get-started",
- "sdks/android/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/android/barcode-capture/get-started"
- ]
- },
- "sdks/android/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/android/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/android/matrixscan/intro",
- "sdks/android/matrixscan/get-started",
- "sdks/android/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan AR",
- "items": [
- "sdks/android/matrixscan-ar/intro",
- "sdks/android/matrixscan-ar/get-started"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Count",
- "items": [
- "sdks/android/matrixscan-count/intro",
- "sdks/android/matrixscan-count/get-started",
- "sdks/android/matrixscan-count/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/android/matrixscan-find/intro",
- "sdks/android/matrixscan-find/get-started",
- "sdks/android/matrixscan-find/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Pick",
- "items": [
- "sdks/android/matrixscan-pick/intro",
- "sdks/android/matrixscan-pick/get-started",
- "sdks/android/matrixscan-pick/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Label Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/android/label-scanning"
- },
- "collapsed": true,
- "items": [
- "sdks/android/label-capture/intro",
- "sdks/android/label-capture/get-started",
- "sdks/android/label-capture/label-definitions",
- "sdks/android/label-capture/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/android/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Generator",
- "items": [
- "sdks/android/barcode-generator"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/android/barcode-selection/intro",
- "sdks/android/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/android/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/android/symbology-properties",
- "sdks/android/extension-codes",
- "sdks/android/scanning-composite-codes",
- "sdks/android/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Scanning and Validation",
- "collapsed": false,
- "items": [
- "sdks/android/id-capture/intro",
- "sdks/android/id-capture/get-started",
- "sdks/android/id-capture/supported-documents",
- "sdks/android/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/android/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/android/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/android/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditLabelCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/android/label-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/android/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/android/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/android/migrate-7-to-8",
- "sdks/android/migrate-6-to-7",
- "sdks/android/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/android/release-notes"
- }
- ],
- "webSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for Web",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/web/core-concepts",
- "sdks/web/features-by-framework",
- "sdks/web/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/web/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-web-samples"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/web/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/web/sparkscan/intro",
- "sdks/web/sparkscan/get-started",
- "sdks/web/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/web/barcode-capture/get-started"
- ]
- },
- "sdks/web/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/web/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/web/matrixscan/intro",
- "sdks/web/matrixscan/get-started",
- "sdks/web/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan AR",
- "items": [
- "sdks/web/matrixscan-ar/intro",
- "sdks/web/matrixscan-ar/get-started"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/web/matrixscan-find/intro",
- "sdks/web/matrixscan-find/get-started",
- "sdks/web/matrixscan-find/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Label Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/web/label-scanning"
- },
- "collapsed": true,
- "items": [
- "sdks/web/label-capture/intro",
- "sdks/web/label-capture/get-started",
- "sdks/web/label-capture/label-definitions",
- "sdks/web/label-capture/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/web/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/web/barcode-selection/intro",
- "sdks/web/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/web/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/web/symbology-properties",
- "sdks/web/extension-codes",
- "sdks/web/scanning-composite-codes",
- "sdks/web/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Capture and Validation",
- "collapsed": false,
- "items": [
- "sdks/web/id-capture/intro",
- "sdks/web/id-capture/get-started",
- "sdks/web/id-capture/supported-documents",
- "sdks/web/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/web/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/web/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/web/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditLabelCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/web/label-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/web/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/web/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/web/migrate-7-to-8",
- "sdks/web/migrate-6-to-7",
- "sdks/web/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/web/release-notes"
- }
- ],
- "cordovaSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for Cordova",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/cordova/core-concepts",
- "sdks/cordova/features-by-framework",
- "sdks/cordova/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/cordova/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-cordova-samples"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/cordova/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/cordova/sparkscan/intro",
- "sdks/cordova/sparkscan/get-started",
- "sdks/cordova/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/cordova/barcode-capture/get-started"
- ]
- },
- "sdks/cordova/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/cordova/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/cordova/matrixscan/intro",
- "sdks/cordova/matrixscan/get-started",
- "sdks/cordova/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Count",
- "items": [
- "sdks/cordova/matrixscan-count/intro",
- "sdks/cordova/matrixscan-count/get-started",
- "sdks/cordova/matrixscan-count/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/cordova/matrixscan-find/intro",
- "sdks/cordova/matrixscan-find/get-started",
- "sdks/cordova/matrixscan-find/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Pick",
- "items": [
- "sdks/cordova/matrixscan-pick/intro",
- "sdks/cordova/matrixscan-pick/get-started",
- "sdks/cordova/matrixscan-pick/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/cordova/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Generator",
- "items": [
- "sdks/cordova/barcode-generator"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/cordova/barcode-selection/intro",
- "sdks/cordova/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/cordova/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/cordova/symbology-properties",
- "sdks/cordova/extension-codes",
- "sdks/cordova/scanning-composite-codes",
- "sdks/cordova/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Capture and Validation",
- "collapsed": false,
- "items": [
- "sdks/cordova/id-capture/intro",
- "sdks/cordova/id-capture/get-started",
- "sdks/cordova/id-capture/supported-documents",
- "sdks/cordova/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/cordova/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/cordova/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/cordova/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/cordova/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/cordova/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/cordova/migrate-7-to-8",
- "sdks/cordova/migrate-6-to-7",
- "sdks/cordova/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/cordova/release-notes"
- }
- ],
- "reactnativeSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for React Native",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/react-native/core-concepts",
- "sdks/react-native/features-by-framework",
- "sdks/react-native/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/react-native/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-react-native-samples"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/react-native/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/react-native/sparkscan/intro",
- "sdks/react-native/sparkscan/get-started",
- "sdks/react-native/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/react-native/barcode-capture/get-started"
- ]
- },
- "sdks/react-native/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/react-native/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/react-native/matrixscan/intro",
- "sdks/react-native/matrixscan/get-started",
- "sdks/react-native/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan AR",
- "items": [
- "sdks/react-native/matrixscan-ar/intro",
- "sdks/react-native/matrixscan-ar/get-started"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Count",
- "items": [
- "sdks/react-native/matrixscan-count/intro",
- "sdks/react-native/matrixscan-count/get-started",
- "sdks/react-native/matrixscan-count/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/react-native/matrixscan-find/intro",
- "sdks/react-native/matrixscan-find/get-started",
- "sdks/react-native/matrixscan-find/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Pick",
- "items": [
- "sdks/react-native/matrixscan-pick/intro",
- "sdks/react-native/matrixscan-pick/get-started",
- "sdks/react-native/matrixscan-pick/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Label Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/react-native/label-scanning"
- },
- "collapsed": true,
- "items": [
- "sdks/react-native/label-capture/intro",
- "sdks/react-native/label-capture/get-started",
- "sdks/react-native/label-capture/label-definitions",
- "sdks/react-native/label-capture/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/react-native/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Generator",
- "items": [
- "sdks/react-native/barcode-generator"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/react-native/barcode-selection/intro",
- "sdks/react-native/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/cordova/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/cordova/symbology-properties",
- "sdks/cordova/extension-codes",
- "sdks/cordova/scanning-composite-codes",
- "sdks/react-native/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Capture and Validation",
- "collapsed": false,
- "items": [
- "sdks/react-native/id-capture/intro",
- "sdks/react-native/id-capture/get-started",
- "sdks/react-native/id-capture/supported-documents",
- "sdks/react-native/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/react-native/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/react-native/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/react-native/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditLabelCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/react-native/label-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/react-native/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/react-native/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/react-native/migrate-7-to-8",
- "sdks/react-native/migrate-6-to-7",
- "sdks/react-native/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/react-native/release-notes"
- }
- ],
- "flutterSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for Flutter",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/flutter/core-concepts",
- "sdks/flutter/features-by-framework",
- "sdks/flutter/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/flutter/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-flutter-samples"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/flutter/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/flutter/sparkscan/intro",
- "sdks/flutter/sparkscan/get-started",
- "sdks/flutter/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/flutter/barcode-capture/get-started"
- ]
- },
- "sdks/flutter/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/flutter/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/flutter/matrixscan/intro",
- "sdks/flutter/matrixscan/get-started",
- "sdks/flutter/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan AR",
- "items": [
- "sdks/flutter/matrixscan-ar/intro",
- "sdks/flutter/matrixscan-ar/get-started"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Count",
- "items": [
- "sdks/flutter/matrixscan-count/intro",
- "sdks/flutter/matrixscan-count/get-started",
- "sdks/flutter/matrixscan-count/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/flutter/matrixscan-find/intro",
- "sdks/flutter/matrixscan-find/get-started",
- "sdks/flutter/matrixscan-find/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Pick",
- "items": [
- "sdks/flutter/matrixscan-pick/intro",
- "sdks/flutter/matrixscan-pick/get-started",
- "sdks/flutter/matrixscan-pick/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Label Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/flutter/label-scanning"
- },
- "collapsed": true,
- "items": [
- "sdks/flutter/label-capture/intro",
- "sdks/flutter/label-capture/get-started",
- "sdks/flutter/label-capture/label-definitions",
- "sdks/flutter/label-capture/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/flutter/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/flutter/barcode-selection/intro",
- "sdks/flutter/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/react-native/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/react-native/symbology-properties",
- "sdks/react-native/extension-codes",
- "sdks/react-native/scanning-composite-codes",
- "sdks/flutter/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Capture and Validation",
- "collapsed": false,
- "items": [
- "sdks/flutter/id-capture/intro",
- "sdks/flutter/id-capture/get-started",
- "sdks/flutter/id-capture/supported-documents",
- "sdks/flutter/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/flutter/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/flutter/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/flutter/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditLabelCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/flutter/label-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/flutter/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/flutter/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/flutter/migrate-7-to-8",
- "sdks/flutter/migrate-6-to-7",
- "sdks/flutter/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/flutter/release-notes"
- }
- ],
- "capacitorSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for Capacitor",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/capacitor/core-concepts",
- "sdks/capacitor/features-by-framework",
- "sdks/capacitor/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/capacitor/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-capacitor-samples"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/capacitor/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/capacitor/sparkscan/intro",
- "sdks/capacitor/sparkscan/get-started",
- "sdks/capacitor/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/capacitor/barcode-capture/get-started"
- ]
- },
- "sdks/capacitor/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/capacitor/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/capacitor/matrixscan/intro",
- "sdks/capacitor/matrixscan/get-started",
- "sdks/capacitor/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Count",
- "items": [
- "sdks/capacitor/matrixscan-count/intro",
- "sdks/capacitor/matrixscan-count/get-started",
- "sdks/capacitor/matrixscan-count/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/capacitor/matrixscan-find/intro",
- "sdks/capacitor/matrixscan-find/get-started",
- "sdks/capacitor/matrixscan-find/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Pick",
- "items": [
- "sdks/capacitor/matrixscan-pick/intro",
- "sdks/capacitor/matrixscan-pick/get-started",
- "sdks/capacitor/matrixscan-pick/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Label Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/capacitor/label-scanning"
- },
- "collapsed": true,
- "items": [
- "sdks/capacitor/label-capture/intro",
- "sdks/capacitor/label-capture/get-started",
- "sdks/capacitor/label-capture/label-definitions",
- "sdks/capacitor/label-capture/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/capacitor/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Generator",
- "items": [
- "sdks/capacitor/barcode-generator"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/capacitor/barcode-selection/intro",
- "sdks/capacitor/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/flutter/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/flutter/symbology-properties",
- "sdks/flutter/extension-codes",
- "sdks/flutter/scanning-composite-codes",
- "sdks/capacitor/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Capture and Validation",
- "collapsed": false,
- "items": [
- "sdks/capacitor/id-capture/intro",
- "sdks/capacitor/id-capture/get-started",
- "sdks/capacitor/id-capture/supported-documents",
- "sdks/capacitor/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/capacitor/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/capacitor/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/capacitor/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/capacitor/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/capacitor/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/capacitor/migrate-7-to-8",
- "sdks/capacitor/migrate-6-to-7",
- "sdks/capacitor/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/capacitor/release-notes"
- }
- ],
- "titaniumSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for Titanium",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/titanium/core-concepts",
- "sdks/titanium/features-by-framework",
- "sdks/titanium/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/titanium/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-titanium-samples"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/titanium/barcode-capture/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/titanium/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/titanium/symbology-properties",
- "sdks/titanium/extension-codes",
- "sdks/titanium/scanning-composite-codes",
- "sdks/titanium/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/titanium/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/titanium/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/titanium/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/titanium/migrate-7-to-8",
- "sdks/titanium/migrate-6-to-7",
- "sdks/titanium/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/titanium/release-notes"
- }
- ],
- "netIosSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for .NET iOS",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/net/ios/core-concepts",
- "sdks/net/ios/features-by-framework",
- "sdks/net/ios/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/net/ios/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-dotnet-samples/tree/master"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/net/ios/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/net/ios/sparkscan/intro",
- "sdks/net/ios/sparkscan/get-started",
- "sdks/net/ios/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/net/ios/barcode-capture/get-started"
- ]
- },
- "sdks/net/ios/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/net/ios/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/net/ios/matrixscan/intro",
- "sdks/net/ios/matrixscan/get-started",
- "sdks/net/ios/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan AR",
- "items": [
- "sdks/net/ios/matrixscan-ar/intro",
- "sdks/net/ios/matrixscan-ar/get-started"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Count",
- "items": [
- "sdks/net/ios/matrixscan-count/intro",
- "sdks/net/ios/matrixscan-count/get-started",
- "sdks/net/ios/matrixscan-count/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/net/ios/matrixscan-find/intro",
- "sdks/net/ios/matrixscan-find/get-started",
- "sdks/net/ios/matrixscan-find/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Pick",
- "items": [
- "sdks/net/ios/matrixscan-pick/intro",
- "sdks/net/ios/matrixscan-pick/get-started",
- "sdks/net/ios/matrixscan-pick/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/net/ios/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/net/ios/barcode-selection/intro",
- "sdks/net/ios/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/net/ios/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/net/ios/symbology-properties",
- "sdks/net/ios/extension-codes",
- "sdks/net/ios/scanning-composite-codes",
- "sdks/net/ios/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Capture and Validation",
- "collapsed": false,
- "items": [
- "sdks/net/ios/id-capture/intro",
- "sdks/net/ios/id-capture/get-started",
- "sdks/net/ios/id-capture/supported-documents",
- "sdks/net/ios/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.ios/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/net/ios/migrate-7-to-8",
- "sdks/net/ios/migrate-6-to-7",
- "sdks/net/ios/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/net/ios/release-notes"
- }
- ],
- "netAndroidSidebar": [
- {
- "type": "category",
- "label": "Data Capture SDK for .NET Android",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Data Capture Basics",
- "collapsed": true,
- "items": [
- "sdks/net/android/core-concepts",
- "sdks/net/android/features-by-framework",
- "sdks/net/android/system-requirements"
- ]
- },
- {
- "type": "link",
- "label": "Frequently Asked Questions",
- "href": "https://support.scandit.com/hc/en-us"
- },
- "sdks/net/android/add-sdk",
- {
- "type": "link",
- "label": "Samples",
- "href": "https://github.com/Scandit/datacapture-dotnet-samples/tree/master"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- {
- "type": "category",
- "label": "Single Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/net/android/single-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "SparkScan",
- "items": [
- "sdks/net/android/sparkscan/intro",
- "sdks/net/android/sparkscan/get-started",
- "sdks/net/android/sparkscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Capture API",
- "items": [
- "sdks/net/android/barcode-capture/get-started"
- ]
- },
- "sdks/net/android/ai-powered-barcode-scanning"
- ]
- },
- {
- "type": "category",
- "label": "Batch Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/net/android/batch-scanning"
- },
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "MatrixScan Batch",
- "items": [
- "sdks/net/android/matrixscan/intro",
- "sdks/net/android/matrixscan/get-started",
- "sdks/net/android/matrixscan/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan AR",
- "items": [
- "sdks/net/android/matrixscan-ar/intro",
- "sdks/net/android/matrixscan-ar/get-started"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Count",
- "items": [
- "sdks/net/android/matrixscan-count/intro",
- "sdks/net/android/matrixscan-count/get-started",
- "sdks/net/android/matrixscan-count/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Find",
- "items": [
- "sdks/net/android/matrixscan-find/intro",
- "sdks/net/android/matrixscan-find/get-started",
- "sdks/net/android/matrixscan-find/advanced"
- ]
- },
- {
- "type": "category",
- "label": "MatrixScan Pick",
- "items": [
- "sdks/net/android/matrixscan-pick/intro",
- "sdks/net/android/matrixscan-pick/get-started",
- "sdks/net/android/matrixscan-pick/advanced"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Label Scanning",
- "link": {
- "type": "doc",
- "id": "sdks/net/android/label-scanning"
- },
- "collapsed": true,
- "items": [
- "sdks/net/android/label-capture/intro",
- "sdks/net/android/label-capture/get-started",
- "sdks/net/android/label-capture/label-definitions",
- "sdks/net/android/label-capture/advanced"
- ]
- },
- {
- "type": "category",
- "label": "Additional Functionalities",
- "collapsed": true,
- "items": [
- {
- "type": "category",
- "label": "Parser",
- "items": [
- "sdks/net/android/parser/get-started"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Selection",
- "items": [
- "sdks/net/android/barcode-selection/intro",
- "sdks/net/android/barcode-selection/get-started"
- ]
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/net/android/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/net/android/symbology-properties",
- "sdks/net/android/extension-codes",
- "sdks/net/android/scanning-composite-codes",
- "sdks/net/android/barcode-capture/configure-barcode-symbologies"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "ID Capture and Validation",
- "collapsed": false,
- "items": [
- "sdks/net/android/id-capture/intro",
- "sdks/net/android/id-capture/get-started",
- "sdks/net/android/id-capture/supported-documents",
- "sdks/net/android/id-capture/advanced",
- {
- "type": "link",
- "label": "ID Bolt Documentation",
- "href": "https://docs.scandit.com/hosted/id-bolt/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "API Reference",
- "items": [
- {
- "type": "link",
- "label": "ScanditCaptureCore",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/core/api.html"
- },
- {
- "type": "link",
- "label": "ScanditBarcodeCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/barcode-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditIdCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/id-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditLabelCapture",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/label-capture/api.html"
- },
- {
- "type": "link",
- "label": "ScanditParser",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/parser/api.html"
- },
- {
- "type": "link",
- "label": "Index",
- "href": "https://docs.scandit.com/data-capture-sdk/dotnet.android/genindex.html"
- }
- ]
- },
- {
- "type": "category",
- "label": "Migration Guides",
- "collapsed": true,
- "items": [
- "sdks/net/android/migrate-7-to-8",
- "sdks/net/android/migrate-6-to-7",
- "sdks/net/android/migrate-5-to-6"
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/net/android/release-notes"
- }
- ],
- "linuxSidebar": [
- {
- "type": "category",
- "label": "Scandit SDK for C / Linux",
- "collapsed": false,
- "items": [
- "sdks/linux/overview",
- "sdks/linux/add-sdk",
- "sdks/linux/samples"
- ]
- },
- {
- "type": "category",
- "label": "Barcode Scanning",
- "collapsed": false,
- "items": [
- "sdks/linux/barcode-capture/configure-with-json",
- {
- "type": "category",
- "label": "Barcode Symbologies",
- "link": {
- "type": "doc",
- "id": "sdks/linux/barcode-symbologies"
- },
- "collapsed": true,
- "items": [
- "sdks/linux/symbology-properties",
- "sdks/linux/extension-codes",
- "sdks/linux/scanning-composite-codes",
- "sdks/linux/barcode-capture/configure-barcode-symbologies",
- "sdks/linux/barcode-capture/add-on-codes",
- "sdks/linux/barcode-capture/composite-codes"
- ]
- },
- {
- "type": "link",
- "label": "Scandit Express Documentation",
- "href": "https://docs.scandit.com/hosted/express/overview/"
- }
- ]
- },
- {
- "type": "category",
- "label": "Barcode Generation",
- "collapsed": false,
- "items": [
- "sdks/linux/barcode-generator"
- ]
- },
- {
- "type": "category",
- "label": "Reference",
- "items": [
- {
- "type": "link",
- "label": "Data Structures",
- "href": "https://docs.scandit.com/stable/c_api/annotated.html"
- },
- {
- "type": "link",
- "label": "Data Fields",
- "href": "https://docs.scandit.com/stable/c_api/functions.html"
- },
- {
- "type": "link",
- "label": "Files",
- "href": "https://docs.scandit.com/stable/c_api/files.html"
- }
- ]
- },
- {
- "type": "doc",
- "label": "Release Notes",
- "id": "sdks/linux/release-notes"
- }
- ]
-}
diff --git a/versions.json b/versions.json
index 02f8a5d3..0a5d389b 100644
--- a/versions.json
+++ b/versions.json
@@ -1,5 +1,4 @@
[
- "8.1.1",
"7.6.7",
"6.28.7"
]